Advertisement
Lavalake

Player Error ReimuA 2

Dec 6th, 2012
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.00 KB | None | 0 0
  1. #TouhouDanmakufu[Player]
  2. #ScriptVersion[2]
  3. #Menu[Reimu A]
  4. #Text[Reimu Hakurei - Spirit Sign
  5.  
  6. Shot:
  7. Both: Homing Amulets (Homing Type)
  8.  
  9. Spell Cards:
  10. Fantasy Seal
  11.  
  12. Normal Speed: ********
  13. Slow Speed: ****]
  14. #Image[.\Reimu_Select.png]
  15. #ReplayName[ReimuA]
  16.  
  17. script_player_main{
  18. let Img_Reimu = GetCurrentScriptDirectory()~"Reimu-Dot.png";
  19. let Img_Cutin = GetCurrentScriptDirectory()~"Reimu_Selection.png";
  20. let optionxpos = 16;
  21. let optionypos = 0;
  22. let count=-1;
  23. let i=0;
  24. let enemy_target=-1;
  25. let test_angle=0;
  26.  
  27. task Option(position){
  28. let objoption=Obj_Create(OBJ_EFFECT);
  29. Obj_SetAlpha(objoption,200);
  30. ObjEffect_SetTexture(objoption,Img_Reimu); //uses ying-yang from spritesheet
  31. ObjEffect_SetRenderState(objoption,ALPHA);
  32. ObjEffect_SetPrimitiveType(objoption,PRIMITIVE_TRIANGLEFAN);
  33. ObjEffect_CreateVertex(objoption,4); // square object with 4 vertexes
  34. ObjEffect_SetVertexUV(objoption,0,127,17); // four coordinates of orb on spritesheet
  35. ObjEffect_SetVertexUV(objoption,1,142,17); // object is 15x15
  36. ObjEffect_SetVertexUV(objoption,2,142,32);
  37. ObjEffect_SetVertexUV(objoption,3,127,32);
  38. if(position=="LEFT"){
  39. while(!Obj_BeDeleted(objoption)){
  40. ObjEffect_SetVertexXY(objoption,0,GetPlayerX-optionxpos-8,GetPlayerY+optionypos-7);
  41. ObjEffect_SetVertexXY(objoption,1,GetPlayerX-optionxpos+6,GetPlayerY+optionypos-7);
  42. ObjEffect_SetVertexXY(objoption,2,GetPlayerX-optionxpos+6,GetPlayerY+optionypos+7);
  43. ObjEffect_SetVertexXY(objoption,3,GetPlayerX-optionxpos-8,GetPlayerY+optionypos+7);
  44. if(GetKeyState(VK_SLOWMOVE)==KEY_PUSH || GetKeyState(VK_SLOWMOVE)==KEY_HOLD){
  45. if(count%6 == 3){
  46. i=-2;
  47. while(i<=2){
  48. Amulets(GetPlayerX()-optionxpos-1, GetPlayerY()+optionypos-8, 245, 12);
  49. i++;
  50. }
  51.  
  52. }
  53. }else{
  54. if(count%8 == 4){
  55. i=-2;
  56. while(i<=2){
  57. Amulets(GetPlayerX()-optionxpos-1, GetPlayerY()+optionypos-8, 245, 2);
  58. i++;
  59. }
  60. }
  61. }
  62. yield;
  63. }
  64. }else{
  65. while(!Obj_BeDeleted(objoption)){
  66. ObjEffect_SetVertexXY(objoption,0,GetPlayerX+optionxpos-7,GetPlayerY+optionypos-7);
  67. ObjEffect_SetVertexXY(objoption,1,GetPlayerX+optionxpos+7,GetPlayerY+optionypos-7);
  68. ObjEffect_SetVertexXY(objoption,2,GetPlayerX+optionxpos+7,GetPlayerY+optionypos+7);
  69. ObjEffect_SetVertexXY(objoption,3,GetPlayerX+optionxpos-7,GetPlayerY+optionypos+7);
  70. if(GetKeyState(VK_SLOWMOVE)==KEY_PUSH || GetKeyState(VK_SLOWMOVE)==KEY_HOLD){
  71. if(count%6 == 3){
  72. i=-2;
  73. while(i<=2){
  74. Amulets(GetPlayerX()+optionxpos, GetPlayerY()+optionypos-8, 295, 12);
  75. i++;
  76. }
  77.  
  78. }
  79. }else{
  80. if(count%8 == 4){
  81. i=-2;
  82. while(i<=2){
  83. Amulets(GetPlayerX()+optionxpos, GetPlayerY()+optionypos-8, 295, 2);
  84. i++;
  85. }
  86. }
  87. }
  88. yield;
  89. }
  90. }
  91. }
  92.  
  93. task Amulets(x,y,angl,graphic){
  94. let enemy_target=-1;
  95. let target_angle=270;
  96. let test_angle=0;
  97. ascent(i in EnumEnemyBegin..EnumEnemyEnd) {
  98. enemy_target=EnumEnemyGetID(i);
  99. test_angle=atan2(GetEnemyInfo(enemy_target,ENEMY_Y)+5, GetEnemyInfo(enemy_target,ENEMY_X)+20);
  100. i=EnumEnemyEnd;
  101. }
  102. if(enemy_target!=-1){
  103. let target_angle=atan2(GetEnemyInfo(enemy_target,ENEMY_Y)-y, GetEnemyInfo(enemy_target,ENEMY_X)-x);
  104. CreatePlayerShot01(x,y,10,target_angle,2,1,graphic);
  105. wait(20);
  106. }
  107. }
  108.  
  109. @Initialize{
  110. LoadGraphic(Img_Reimu);
  111. LoadGraphic(Img_Cutin);
  112. LoadPlayerShotData(GetCurrentScriptDirectory()~"Shot.txt");
  113. SetPlayerLifeImage(Img_Reimu, 40, 0, 79, 49);
  114. SetInitialBombCount(2);
  115. SetRibirthFrame(20);
  116. SetSpeed(4,2);
  117. Option("LEFT");
  118. Option("RIGHT");
  119. }
  120.  
  121. @MainLoop{
  122. if((GetKeyState(VK_SHOT)==KEY_PUSH || GetKeyState(VK_SHOT)==KEY_HOLD) && count==-1){
  123. count = 0;
  124. }
  125. if(GetKeyState(VK_SLOWMOVE)==KEY_PUSH || GetKeyState(VK_SLOWMOVE)==KEY_HOLD){
  126. if(count%6 == 0){
  127. i = -3;
  128. while(i<=3){
  129. CreatePlayerShot01(GetPlayerX()+8, GetPlayerY()+8, 30, 270, 1, 1, 13);
  130. CreatePlayerShot01(GetPlayerX()-8, GetPlayerY()+8, 30, 270, 1, 1, 13);
  131. i++;
  132. }
  133. }
  134. if(optionxpos>15){optionxpos--;}
  135. if(optionypos>0){optionypos--;}
  136. }else{
  137. if(count%8 == 0){
  138. i = -3;
  139. while(i<=3){
  140. CreatePlayerShot01(GetPlayerX()+8, GetPlayerY()+8, 30, 270, 1, 1, 3);
  141. CreatePlayerShot01(GetPlayerX()-8, GetPlayerY()+8, 30, 270, 1, 1, 3);
  142. i++;
  143. }
  144. }
  145. if(optionxpos<25){optionxpos++;}
  146. if(optionypos<0){optionypos++;}
  147.  
  148. }
  149. if(count >= 0){
  150. count++;
  151. }
  152. if(count >= 6 && (GetKeyState(VK_SLOWMOVE)==KEY_PUSH || GetKeyState(VK_SLOWMOVE)==KEY_HOLD)){
  153. count = -1;
  154. }
  155. if(count >= 8){
  156. count = -1;
  157. }
  158. SetIntersectionCircle(GetPlayerX, GetPlayerY, 2);
  159. yield;
  160. }
  161. @Missed{
  162. }
  163. @SpellCard{
  164. }
  165. @DrawLoop{
  166. SetTexture(Img_Reimu);
  167. if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD){
  168. SetGraphicRect(80, 0, 119, 49); // left movement frame
  169. }else if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD){
  170. SetGraphicRect(0, 0, 39, 49); // right movement frame
  171. }else{
  172. SetGraphicRect(40, 0, 79, 49); // neutral frame
  173. }
  174. DrawGraphic(GetPlayerX(), GetPlayerY());
  175. }
  176. @Finalize{
  177. DeleteGraphic(Img_Reimu);
  178. DeleteGraphic(Img_Cutin);
  179. }
  180.  
  181. function wait(w){
  182. loop(w){ yield; }
  183. }
  184. }
  185.  
  186. script_spell OrbsofHakurei{
  187. @Initialize{
  188. }
  189. @MainLoop{
  190. }
  191. @Finalize{
  192. }
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement