Advertisement
Guest User

Untitled

a guest
May 13th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.90 KB | None | 0 0
  1. #TouhouDanmakufu[Player]
  2. #ScriptVersion[3]
  3. #ID["A"]
  4. #Title["Team A"]
  5. #Text["Player"]
  6. #ReplayName["Team A"]
  7.  
  8. #include "./player_resource.txt"
  9. let animFrame = 0;
  10. let animFrame2 = 0;
  11. let count = -1;
  12. let BasePower = 4;
  13. let alive = true;
  14. let switchAlive = true;
  15. let IsPlayerFocused = false;
  16.  
  17. let ShotData = GetCSD ~ "shotdata.txt";
  18. let PlayerSprite = GetMD ~ "script/img/sprite/playerA.png";
  19. let HitboxSprite = GetMD ~ "script/img/sprite/hitbox.png";
  20. let CrystalSprite = GetMD ~ "script/img/sprite/optionA.png";
  21. let FireSprite = GetMD ~ "script/img/sprite/fire.png";
  22.  
  23. let PlayerShoot = GetMD ~ "script/sfx/player_se/se_plst00.wav";
  24. let PlayerDead = GetMD ~ "script/sfx/player_se/se_pldead00.wav";
  25. let PlayerGraze = GetMD ~ "script/sfx/player_se/se_graze.wav";
  26. let PlayerSwitch = GetMD ~ "script/sfx/player_se/se_poss00.wav";
  27.  
  28. @Initialize {
  29. LoadPlayerShotData(ShotData);
  30. SetPlayerSpeed(3.7 + 0.3,2 - 0.3); //3.7, 2
  31.  
  32. ObjPlayer_AddIntersectionCircleA1(PlayerID, 0, 0, 1.5, 20);
  33. SetPlayerClip(0+13, 0+15, 384-13, 448-15);
  34. SetPlayerDownStateFrame(120);
  35. SetPlayerRebirthFrame(15); //counter bomb
  36. SetPlayerAutoItemCollectLine(120);
  37.  
  38. RenderPlayer;
  39. RenderHitBox;
  40. RenderBasicShot;
  41.  
  42. }
  43.  
  44.  
  45. @Event {
  46. alternative(GetEventType)
  47.  
  48. case(EV_REQUEST_SPELL) {
  49. if(GetPlayerSpell > 0){
  50. SetScriptResult(true);
  51. }
  52. else {
  53. SetScriptResult(false);
  54. }
  55. }
  56.  
  57. case(EV_GRAZE){
  58. SE_Play(PlayerGraze, 100);
  59. loop(GrazePartNum){
  60. Particle(GetPlayerX, GetPlayerY, rand(0,360), 0.8, 2, 1);
  61. }
  62. }
  63.  
  64. case(EV_PLAYER_SHOOTDOWN){
  65. switchAlive = false;
  66. ObjRender_SetAlpha(PlayerObj, 0);
  67. ObjRender_SetAlpha(hitbox, 0);
  68. ObjRender_SetAlpha(hitbox2, 0);
  69. SetForbidPlayerShot(true);
  70. SetForbidPlayerSpell(true);
  71. }
  72.  
  73. case(EV_HIT){
  74. loop(32){
  75. TexEffect(GetPlayerX+rand(-50,50), GetPlayerY+rand(-50,50), rand(0,360), 255, 5, 1);
  76. TexEffect(GetPlayerX+rand(-50,50), GetPlayerY+rand(-50,50), rand(0,360), 255, rand(3,5), 2);
  77. TexEffect(GetPlayerX+rand(-50,50), GetPlayerY+rand(-50,50), rand(0,360), 255, 3, 1);
  78. }
  79. alive = false;
  80. SE_Play(PlayerDead, 60);
  81. SetForbidPlayerShot(true);
  82. }
  83.  
  84. case(EV_PLAYER_REBIRTH){
  85. alive = true;
  86. switchAlive = true;
  87. SetPlayerInvincibilityFrame(180);
  88. Blink(PlayerObj);
  89. loop(1){yield;}
  90. Revive(PlayerObj);
  91. ObjRender_SetAlpha(PlayerObj, 255);
  92. }
  93. }
  94.  
  95. @MainLoop {
  96. if(GetVirtualKeyState(ShiftKey) == KEY_PUSH || GetVirtualKeyState(ShiftKey) == KEY_HOLD && alive ){
  97. IsPlayerFocused = true;
  98. PlayerSprite = GetMD ~ "script/img/sprite/player2.png";
  99. }
  100. if(GetVirtualKeyState(ShiftKey) == KEY_PUSH && alive){
  101. loop(16){
  102. SE_Play(PlayerSwitch, 75);
  103. TexEffect(GetPlayerX, GetPlayerY, rand(0,360), 80, 1.5, 2);
  104. }
  105. }
  106. if(GetVirtualKeyState(ShiftKey) == KEY_PULL && alive){
  107. IsPlayerFocused = false;
  108. PlayerSprite = GetMD ~ "script/img/sprite/player1.png";
  109. loop(32){
  110. SE_Play(PlayerSwitch, 75);
  111. TexEffect(GetPlayerX, GetPlayerY, rand(0,360), 100, 1.4, 1);
  112. }
  113. }
  114. if(switchAlive == false){
  115. IsPlayerFocused = false;
  116. PlayerSprite = GetCSD ~ "player1.png";
  117. }
  118. yield;
  119. }
  120. task RenderBasicShot{
  121. let frame = 0;
  122. let ShotPerFrame = 3;
  123. let Speed = 20;
  124. let Damage = 3;
  125. loop{
  126. frame+=1;
  127. if(frame > ShotPerFrame){
  128. frame = ShotPerFrame;
  129. }
  130. if(GetVirtualKeyState(VK_SHOT) == KEY_PUSH || GetVirtualKeyState(VK_SHOT) == KEY_HOLD){
  131. if(frame >= ShotPerFrame && alive && IsPermitPlayerShot){
  132. //ObjSound_Play(shotSound);
  133. if(IsPlayerFocused == true){
  134. if(BasePower == 1){
  135. SE_Play(PlayerShoot, 40);
  136. CreatePlayerShotA1(GetPlayerX+10, GetPlayerY+45, Speed, 270-1, Damage,1, 1);
  137. CreatePlayerShotA1(GetPlayerX-10, GetPlayerY+45, Speed, 270+1, Damage,1, 1);
  138. //total: 6 damage
  139. //BasicShot(GetPlayerX, GetPlayerY+45-50, Speed, 270+1, Damage,1, 1);
  140. }
  141. if(BasePower == 2){
  142. SE_Play(PlayerShoot, 40);
  143. CreatePlayerShotA1(GetPlayerX+10, GetPlayerY+45, Speed, 270-1, Damage,1, 1);
  144. CreatePlayerShotA1(GetPlayerX, GetPlayerY+45, Speed, 270, Damage/3,1, 1);
  145. CreatePlayerShotA1(GetPlayerX-10, GetPlayerY+45, Speed, 270+1, Damage,1, 1);
  146. //total: 7 damage
  147. }
  148. if(BasePower == 3){
  149. SE_Play(PlayerShoot, 40);
  150. CreatePlayerShotA1(GetPlayerX-20, GetPlayerY+45, Speed, 270+2, Damage/3,1, 1);
  151. CreatePlayerShotA1(GetPlayerX-7.5, GetPlayerY+45, Speed, 270+1, Damage,1, 1);
  152. CreatePlayerShotA1(GetPlayerX+7.5, GetPlayerY+45, Speed, 270-1, Damage,1, 1);
  153. CreatePlayerShotA1(GetPlayerX+20, GetPlayerY+45, Speed, 270-2, Damage/3,1, 1);
  154. //total: 8 damage
  155. }
  156. if(BasePower == 4){
  157. SE_Play(PlayerShoot, 40);
  158. CreatePlayerShotA1(GetPlayerX-20, GetPlayerY+45, Speed, 270+2, Damage/2,1, 1);
  159. CreatePlayerShotA1(GetPlayerX-10, GetPlayerY+45, Speed, 270+1, Damage/2,1, 1);
  160. CreatePlayerShotA1(GetPlayerX, GetPlayerY+45, Speed, 270, Damage,1, 1);
  161. CreatePlayerShotA1(GetPlayerX+10, GetPlayerY+45, Speed, 270-1, Damage/2,1, 1);
  162. CreatePlayerShotA1(GetPlayerX+20, GetPlayerY+45, Speed, 270-2, Damage/2, 1,1);
  163.  
  164. //total: 9 damage
  165. }
  166.  
  167. }
  168. else {
  169. if(BasePower == 1){
  170. SE_Play(PlayerShoot, 40);
  171. CreatePlayerShotA1(GetPlayerX-5, GetPlayerY+45, Speed, 270-1, Damage,1, 2);
  172. CreatePlayerShotA1(GetPlayerX+5, GetPlayerY+45, Speed, 270+1, Damage,1, 2);
  173. }
  174. if(BasePower == 2){
  175. SE_Play(PlayerShoot, 40);
  176. CreatePlayerShotA1(GetPlayerX-5, GetPlayerY+45, Speed, 270-1, Damage,1, 2);
  177. CreatePlayerShotA1(GetPlayerX, GetPlayerY+45, Speed, 270, Damage/3,1, 2);
  178. CreatePlayerShotA1(GetPlayerX+5, GetPlayerY+45, Speed, 270+1, Damage,1, 2);
  179. }
  180. if(BasePower == 3){
  181. SE_Play(PlayerShoot, 40);
  182. CreatePlayerShotA1(GetPlayerX-10, GetPlayerY+45, Speed, 270-2, Damage/3,1, 2);
  183. CreatePlayerShotA1(GetPlayerX-2.5, GetPlayerY+45, Speed, 270-0.75, Damage,1, 2);
  184. CreatePlayerShotA1(GetPlayerX+2.5, GetPlayerY+45, Speed, 270+0.75, Damage,1, 2);
  185. CreatePlayerShotA1(GetPlayerX+10, GetPlayerY+45, Speed, 270+2, Damage/3,1, 2);
  186. }
  187. if(BasePower == 4){
  188. SE_Play(PlayerShoot, 40);
  189. CreatePlayerShotA1(GetPlayerX-10, GetPlayerY+45, Speed, 270-2, Damage/2,1, 2);
  190. CreatePlayerShotA1(GetPlayerX-5, GetPlayerY+45, Speed, 270-1, Damage/2,1, 2);
  191. CreatePlayerShotA1(GetPlayerX, GetPlayerY+45, Speed, 270, Damage,1, 2);
  192. CreatePlayerShotA1(GetPlayerX+5, GetPlayerY+45, Speed, 270+1, Damage/2,1, 2);
  193. CreatePlayerShotA1(GetPlayerX+10, GetPlayerY+45, Speed, 270+2, Damage/2,1, 2);
  194. }
  195. }
  196. frame = 0;
  197. }
  198. }
  199. yield;
  200. }
  201. }
  202.  
  203.  
  204. task RenderPlayer {
  205. ObjPrim_SetTexture(PlayerObj, PlayerSprite);
  206. Obj_SetRenderPriorityI(PlayerObj, 43);
  207. ObjRender_SetBlendType(PlayerObj, BLEND_ALPHA);
  208. ObjRender_SetAngleXYZ(PlayerObj, 0, 0, 0);
  209. ObjRender_SetScaleXYZ(PlayerObj, 1, 1, 0);
  210. ObjRender_SetAlpha(PlayerObj, 255);
  211.  
  212. ObjSprite2D_SetSourceRect(PlayerObj, 0,0, 32, 48);
  213. ObjSprite2D_SetDestCenter(PlayerObj);
  214. let left = 32; let top = 48; let right = 32; let bottom = 48;
  215. while(!Obj_IsDeleted(PlayerObj)){
  216. ObjPrim_SetTexture(PlayerObj, PlayerSprite);
  217. ObjRender_SetPosition(PlayerObj, GetPlayerX, GetPlayerY, 0);
  218.  
  219. if(GetVirtualKeyState(VK_LEFT) == KEY_PUSH || GetVirtualKeyState(VK_LEFT) == KEY_HOLD){
  220. ObjRender_SetAngleY(PlayerObj, 0);
  221. if(animFrame2 < 15) { ObjSprite2D_SetSourceRect(PlayerObj,left*0, top*1, right*1, bottom*2); }
  222. if(animFrame2 >= 15 && animFrame2 < 30) { ObjSprite2D_SetSourceRect(PlayerObj,left*1, top*1, right*2, bottom*2); }
  223. if(animFrame2 >= 30 && animFrame2 < 45) { ObjSprite2D_SetSourceRect(PlayerObj,left*2, top*1, right*3, bottom*2); }
  224. if(animFrame2 >= 45 && animFrame2 < 60) { ObjSprite2D_SetSourceRect(PlayerObj,left*3, top*1, right*4, bottom*2); }
  225. if(animFrame2 >= 60 && animFrame2 < 75) { ObjSprite2D_SetSourceRect(PlayerObj,left*4, top*1, right*5, bottom*2); }
  226. if(animFrame2 >= 75 && animFrame2 < 90) { ObjSprite2D_SetSourceRect(PlayerObj,left*5, top*1, right*6, bottom*2); }
  227. if(animFrame2 >= 90 && animFrame2 < 105) { ObjSprite2D_SetSourceRect(PlayerObj,left*6, top*1, right*7, bottom*2); }
  228. if(animFrame2 >= 105 && animFrame2 < 120) { ObjSprite2D_SetSourceRect(PlayerObj,left*7, top*1, right*8, bottom*2); }
  229. if(animFrame2 >= 120) { ObjSprite2D_SetSourceRect(PlayerObj,left*7, top*1, right*8, bottom*2); }
  230. ObjRender_SetAngleXYZ(PlayerObj, 0, 0, 0);
  231. }
  232. else if(GetVirtualKeyState(VK_RIGHT) == KEY_PUSH || GetVirtualKeyState(VK_RIGHT) == KEY_HOLD){
  233. if(animFrame2 < 15) { ObjSprite2D_SetSourceRect(PlayerObj,left*0, top*2, right*1, bottom*3); }
  234. if(animFrame2 >= 15 && animFrame2 < 30) { ObjSprite2D_SetSourceRect(PlayerObj,left*1, top*2, right*2, bottom*3); }
  235. if(animFrame2 >= 30 && animFrame2 < 45) { ObjSprite2D_SetSourceRect(PlayerObj,left*2, top*2, right*3, bottom*3); }
  236. if(animFrame2 >= 45 && animFrame2 < 60) { ObjSprite2D_SetSourceRect(PlayerObj,left*3, top*2, right*4, bottom*3); }
  237. if(animFrame2 >= 60 && animFrame2 < 75) { ObjSprite2D_SetSourceRect(PlayerObj,left*4, top*2, right*5, bottom*3); }
  238. if(animFrame2 >= 75 && animFrame2 < 90) { ObjSprite2D_SetSourceRect(PlayerObj,left*5, top*2, right*6, bottom*3); }
  239. if(animFrame2 >= 90 && animFrame2 < 105) { ObjSprite2D_SetSourceRect(PlayerObj,left*6, top*2, right*7, bottom*3); }
  240. if(animFrame2 >= 105 && animFrame2 < 120) { ObjSprite2D_SetSourceRect(PlayerObj,left*7, top*2, right*8, bottom*3); }
  241. if(animFrame2 >= 120) { ObjSprite2D_SetSourceRect(PlayerObj,left*7, top*2, right*8, bottom*3); }
  242. ObjRender_SetAngleXYZ(PlayerObj, 0, 0, 0);
  243. }
  244. else{
  245. if(animFrame < 15) { ObjSprite2D_SetSourceRect(PlayerObj,left*0, top*0, right*1, bottom*1); }
  246. if(animFrame >= 15 && animFrame < 30) { ObjSprite2D_SetSourceRect(PlayerObj,left*1, top*0, right*2, bottom*1); }
  247. if(animFrame >= 30 && animFrame < 45) { ObjSprite2D_SetSourceRect(PlayerObj,left*2, top*0, right*3, bottom*1); }
  248. if(animFrame >= 45 && animFrame < 60) { ObjSprite2D_SetSourceRect(PlayerObj,left*3, top*0, right*4, bottom*1); }
  249. if(animFrame >= 60 && animFrame < 75) { ObjSprite2D_SetSourceRect(PlayerObj,left*4, top*0, right*5, bottom*1); }
  250. if(animFrame >= 75 && animFrame < 90) { ObjSprite2D_SetSourceRect(PlayerObj,left*5, top*0, right*6, bottom*1); }
  251. if(animFrame >= 90 && animFrame < 105) { ObjSprite2D_SetSourceRect(PlayerObj,left*6, top*0, right*7, bottom*1); }
  252. if(animFrame >= 105 && animFrame < 120) { ObjSprite2D_SetSourceRect(PlayerObj,left*7, top*0, right*8, bottom*1); }
  253. if(animFrame >= 120) { ObjSprite2D_SetSourceRect(PlayerObj,left*7, top*0, right*8, bottom*1); }
  254. ObjRender_SetAngleXYZ(PlayerObj, 0, 0, 0);
  255. }
  256. if(GetVirtualKeyState(VK_RIGHT) == KEY_PULL){animFrame2 = 30;}
  257. if(GetVirtualKeyState(VK_LEFT) == KEY_PULL){animFrame2 = 30;}
  258. animFrame+=3.25; // count animFrame. (++ is +1)
  259. animFrame2+=3.25; // count animFrame2.
  260. if(animFrame > 120) { animFrame = 0; } // reset animFrame when it is higher than 60.
  261. if(animFrame2 > 120) { animFrame2 = 45; } // reset animFrame when it is higher than 60.
  262. yield;
  263. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement