Advertisement
Guest User

jojo's bizarre code

a guest
Sep 16th, 2016
619
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.85 KB | None | 0 0
  1. #TouhouDanmakufu[Single]
  2. #ScriptVersion[3]
  3. #Title["JoJo's Bizarre Adventure"]
  4. #Text["It's an enemy Stand !"]
  5.  
  6. let bossObj;
  7. let bossX = 0;
  8. let bossY = 0;
  9. let animFrame = 0;
  10. let animFrame2 = 0;
  11.  
  12. let imgBoss = GetCurrentScriptDirectory ~ "jotarospritesheet.png";
  13. let bg = GetCurrentScriptDirectory ~ "jojobg.png";
  14.  
  15. #include"script/default_system/ZUNShot_Const.txt"
  16. #include"script/default_system/Default_Effect.txt"
  17. #include"script/default_system/Default_ShotConst.txt"
  18.  
  19. @Initialize {
  20.  
  21. let objScene = GetEnemyBossSceneObjectID();
  22. ObjEnemyBossScene_StartSpell(objScene);
  23.  
  24. // define a boss in bossObj and register it
  25. bossObj = ObjEnemy_Create(OBJ_ENEMY_BOSS);
  26. ObjEnemy_Regist(bossObj);
  27.  
  28. // warp boss to this location when initialized.
  29. ObjMove_SetPosition(bossObj,192,-100);
  30.  
  31. LoadSound(GetCurrentScriptDirectory ~ "jojost.mp3");
  32. PlayBGM(GetCurrentScriptDirectory ~ "jojost.mp3",5.3,171.8);
  33.  
  34. // move boss to desired x y location at desired speed
  35. ObjMove_SetDestAtSpeed(bossObj,192,120,5);
  36.  
  37. mainTask; // run mainTask
  38. }
  39.  
  40. @Event {
  41. // setting the boss timer and life
  42. alternative(GetEventType())
  43. case(EV_REQUEST_LIFE) {
  44. SetScriptResult(4000);
  45. }
  46. case(EV_REQUEST_TIMER) {
  47. SetScriptResult(45);
  48. }
  49. case(EV_REQUEST_SPELL_SCORE) {
  50. SetScriptResult(30000);
  51. }
  52. }
  53.  
  54. @MainLoop {
  55. bossX = ObjMove_GetX(bossObj);
  56. bossY = ObjMove_GetY(bossObj);
  57.  
  58. // collision for shot and player
  59. ObjEnemy_SetIntersectionCircleToShot(bossObj,bossX,bossY,35);
  60. ObjEnemy_SetIntersectionCircleToPlayer(bossObj,bossX,bossY,35);
  61. yield;
  62. }
  63.  
  64. @Finalize { }
  65.  
  66. // your best friend, forever.
  67. function wait(w) { loop(w) { yield; } }
  68.  
  69. task mainTask {
  70. renderBoss;
  71. renderBG;
  72. movement;
  73. TEnd;
  74. }
  75.  
  76. task renderBG {
  77. let obj = ObjPrim_Create(OBJ_SPRITE_2D);
  78. Obj_SetRenderPriorityI(obj,21);
  79. ObjPrim_SetTexture(obj,bg);
  80. ObjSprite2D_SetSourceRect(obj,0,0,160,240);
  81. ObjSprite2D_SetDestRect(obj,0,0,GetStgFrameWidth,GetStgFrameHeight);
  82. }
  83.  
  84. task renderBoss {
  85. let dir;
  86. let speed;
  87.  
  88. // texture the boss, set centre as true centre.
  89. ObjPrim_SetTexture(bossObj,imgBoss);
  90. ObjSprite2D_SetSourceRect(bossObj,0,0,64,117);
  91. ObjSprite2D_SetDestCenter(bossObj);
  92. ObjRender_SetScaleXYZ(bossObj,1.0,1.0,0);
  93.  
  94. while(!Obj_IsDeleted(bossObj)) {
  95.  
  96. // animation handling
  97.  
  98. ObjRender_SetAngleXYZ(bossObj,0,0,0);
  99. if(animFrame < 15) { ObjSprite2D_SetSourceRect(bossObj,0,1,64,117); }
  100. if(animFrame >= 15 && animFrame < 30) { ObjSprite2D_SetSourceRect(bossObj,64,1,128,117); }
  101. if(animFrame >= 30 && animFrame < 45) { ObjSprite2D_SetSourceRect(bossObj,128,1,192,117); }
  102. if(animFrame >= 45) { ObjSprite2D_SetSourceRect(bossObj,192,1,256,117); }
  103. animFrame2 = 0;
  104.  
  105. animFrame++; // count animFrame. (++ is +1)
  106. if(animFrame > 60) { animFrame = 0; } // reset animFrame when it is higher than 60.
  107. yield;
  108. }
  109. }
  110.  
  111. task movement {
  112. wait(60);
  113. while(!Obj_IsDeleted(bossObj)) {
  114. fire;
  115. wait(30);
  116. yield;
  117. }
  118. }
  119.  
  120. task fire {
  121. CreateShotA1(192,-100,5,10,42,0);
  122. CreateShotA1(192,-100,5,20,42,0);
  123. CreateShotA1(192,-100,5,30,42,0);
  124. CreateShotA1(192,-100,5,40,42,0);
  125. CreateShotA1(192,-100,5,50,42,0);
  126. CreateShotA1(192,-100,5,60,42,0);
  127. CreateShotA1(192,-100,5,70,42,0);
  128. CreateShotA1(192,-100,5,80,42,0);
  129. CreateShotA1(192,-100,5,90,42,0);
  130. CreateShotA1(192,-100,5,100,42,0);
  131. CreateShotA1(192,-100,5,110,42,0);
  132. CreateShotA1(192,-100,5,120,42,0);
  133. CreateShotA1(192,-100,5,130,42,0);
  134. CreateShotA1(192,-100,5,140,42,0);
  135. CreateShotA1(192,-100,5,150,42,0);
  136. CreateShotA1(192,-100,5,160,42,0);
  137. CreateShotA1(192,-100,5,170,42,0);
  138. CreateShotA1(192,-100,5,180,42,0);
  139. CreateShotA1(192,-100,5,190,42,0);
  140. CreateShotA1(192,-100,5,200,42,0);
  141. CreateShotA1(192,-100,5,210,42,0);
  142. CreateShotA1(192,-100,5,220,42,0);
  143. CreateShotA1(192,-100,5,230,42,0);
  144. CreateShotA1(192,-100,5,240,42,0);
  145. CreateShotA1(192,-100,5,250,42,0);
  146. CreateShotA1(192,-100,5,260,42,0);
  147. CreateShotA1(192,-100,5,270,42,0);
  148. CreateShotA1(192,-100,5,280,42,0);
  149. CreateShotA1(192,-100,5,290,42,0);
  150. CreateShotA1(192,-100,5,300,42,0);
  151. CreateShotA1(192,-100,5,310,42,0);
  152. CreateShotA1(192,-100,5,320,42,0);
  153. CreateShotA1(192,-100,5,330,42,0);
  154. CreateShotA1(192,-100,5,340,42,0);
  155. CreateShotA1(192,-100,5,350,42,0);
  156. CreateShotA1(192,-100,5,360,42,0);
  157. CreateShotA1(192,-100,5,15,172,15);
  158. CreateShotA1(192,-100,5,25,172,15);
  159. CreateShotA1(192,-100,5,35,172,15);
  160. CreateShotA1(192,-100,5,45,172,15);
  161. CreateShotA1(192,-100,5,55,172,15);
  162. CreateShotA1(192,-100,5,65,172,15);
  163. CreateShotA1(192,-100,5,75,172,15);
  164. CreateShotA1(192,-100,5,85,172,15);
  165. CreateShotA1(192,-100,5,95,172,15);
  166. CreateShotA1(192,-100,5,105,172,15);
  167. CreateShotA1(192,-100,5,115,172,15);
  168. CreateShotA1(192,-100,5,125,172,15);
  169. CreateShotA1(192,-100,5,135,172,15);
  170. CreateShotA1(192,-100,5,145,172,15);
  171. CreateShotA1(192,-100,5,155,172,15);
  172. CreateShotA1(192,-100,5,165,172,15);
  173. CreateShotA1(192,-100,5,175,172,15);
  174. CreateShotA1(192,-100,5,185,172,15);
  175. CreateShotA1(192,-100,5,195,172,15);
  176. CreateShotA1(192,-100,5,205,172,15);
  177. CreateShotA1(192,-100,5,215,172,15);
  178. CreateShotA1(192,-100,5,225,172,15);
  179. CreateShotA1(192,-100,5,235,172,15);
  180. CreateShotA1(192,-100,5,245,172,15);
  181. CreateShotA1(192,-100,5,255,172,15);
  182. CreateShotA1(192,-100,5,265,172,15);
  183. CreateShotA1(192,-100,5,275,172,15);
  184. CreateShotA1(192,-100,5,285,172,15);
  185. CreateShotA1(192,-100,5,295,172,15);
  186. CreateShotA1(192,-100,5,305,172,15);
  187. CreateShotA1(192,-100,5,315,172,15);
  188. CreateShotA1(192,-100,5,325,172,15);
  189. CreateShotA1(192,-100,5,335,172,15);
  190. CreateShotA1(192,-100,5,345,172,15);
  191. CreateShotA1(192,-100,5,355,172,15);
  192. CreateShotA1(192,-100,5,365,172,15);
  193. loop(60) { yield; }
  194. }
  195.  
  196. task TEnd
  197. {
  198. while(ObjEnemy_GetInfo(bossObj, INFO_LIFE) > 0) {
  199. yield;
  200. }
  201.  
  202. TExplosionA(bossX,bossY,10,0.5);
  203. Obj_Delete(bossObj);
  204. DeleteShotAll(TYPE_ALL, TYPE_ITEM);
  205. wait(30);
  206. CloseScript(GetOwnScriptID());
  207. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement