Advertisement
Guest User

Code

a guest
Jun 26th, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. #TouhouDanmakufu[Single]
  2. #Title[Spell 3]
  3. #Text[An attempt at making a non-spell]
  4. #Player[REIMU]
  5. #PlayLevel[Normal]
  6. #ScriptVersion[2]
  7.  
  8. script_enemy_main{
  9. let D = GetCurrentScriptDirectory;
  10.  
  11. let bg = D ~ "system\trees nighttime.png";
  12.  
  13. let shot = D ~ "supershot.txt";
  14. let s1 = D ~ "sfx\Shot.wav";
  15. let s2 = D ~ "sfx\Wave.wav";
  16. let slide = 0;
  17. let slide2 = 0;
  18.  
  19. @Initialize{
  20. SetLife(2500);
  21. SetTimer(60);
  22. SetScore(100000);
  23. LoadGraphic(bg);
  24. LoadUserShotData(shot);
  25. LoadSE(s1);
  26. LoadSE(s2);
  27. fire;
  28. move;
  29. }
  30.  
  31. @MainLoop{
  32. SetCollisionA(GetX,GetY,32);
  33. SetCollisionB(GetX,GetY,16);
  34. yield;
  35. }
  36.  
  37. @DrawLoop{ }
  38.  
  39. @BackGround{
  40. SetTexture(bg);
  41. SetRenderState(ALPHA);
  42. SetAlpha(255);
  43. SetGraphicRect(0,0,10000,10000);
  44. SetGraphicScale(1,1);
  45. SetGraphicAngle(0,0,0);
  46. DrawGraphic(GetCenterX-slide2,GetCenterY+slide);
  47. slide+=2;
  48. slide2-=1;
  49. }
  50.  
  51. @Finalize{
  52. DeleteGraphic(bg);
  53. DeleteSE(s1);
  54. DeleteSE(s2);
  55. loop(20){
  56. CreateItem(ITEM_SCORE,GetX+rand(-150,150),GetY+rand(50,200));
  57. }
  58. }
  59.  
  60. task move{
  61. loop{
  62. SetMovePosition01(GetCenterX,GetCenterY-80,10);
  63. wait(120);
  64. }
  65. }
  66.  
  67. task fire{
  68. wait(60);
  69. let dir = 45;
  70. loop{
  71. loop(5){
  72. loop(10){
  73. b(GetX+30*cos(dir),GetY+30*sin(dir), 2, dir, 231, 0);
  74. PlaySE(s1);
  75. dir+=30;
  76. }
  77. wait(10);
  78. dir += 17;
  79. }
  80. wait(180);
  81. }
  82. }
  83.  
  84. task b(x,y,v,dir,graphic,delay){
  85. let obj=Obj_Create(OBJ_SHOT);
  86. Obj_SetPosition(obj,x,y);
  87. Obj_SetSpeed(obj,v);
  88. Obj_SetAngle(obj,dir);
  89. ObjShot_SetGraphic(obj,graphic);
  90. ObjShot_SetDelay(obj,delay);
  91. ObjShot_SetBombResist(obj, true);
  92.  
  93. while(!Obj_BeDeleted(obj)){
  94. wait(13);
  95. if(Obj_GetY(obj) > GetClipMaxY) {
  96. loop(6){
  97. b2(Obj_GetX(obj),Obj_GetY(obj),rand(1,3),dir-rand(160,200),152,20);
  98. wait(10);
  99. }
  100. PlaySE(s1);
  101. Obj_Delete(obj);
  102. }
  103. if(Obj_GetY(obj) < GetClipMinY){
  104. loop(6){
  105. b2(Obj_GetX(obj),Obj_GetY(obj),rand(1,3),dir-rand(160,200),152,20);
  106. wait(10);
  107. }
  108. PlaySE(s1);
  109. Obj_Delete(obj);
  110. }
  111. if(Obj_GetY(obj) > GetClipMaxX) {
  112. loop(6){
  113. b2(Obj_GetX(obj),Obj_GetY(obj),rand(1,3),dir-rand(160,200),152,20);
  114. wait(10);
  115. }
  116. PlaySE(s1);
  117. Obj_Delete(obj);
  118. }
  119. if(Obj_GetY(obj) < GetClipMinX) {
  120. loop(6){
  121. b2(Obj_GetX(obj),Obj_GetY(obj),rand(1,3),dir-rand(160,200),152,20);
  122. wait(10);
  123. }
  124. PlaySE(s1);
  125. Obj_Delete(obj);
  126. }
  127. }
  128. }
  129.  
  130. task b2(x,y,v,dir,graphic,delay){
  131. let obj=Obj_Create(OBJ_SHOT);
  132. Obj_SetPosition(obj,x,y);
  133. Obj_SetSpeed(obj,v);
  134. Obj_SetAngle(obj,dir);
  135. ObjShot_SetGraphic(obj,graphic);
  136. ObjShot_SetDelay(obj,delay);
  137. ObjShot_SetBombResist(obj, true);
  138.  
  139. while(!Obj_BeDeleted(obj)){
  140. wait(60);
  141. Obj_SetSpeed(obj,1);
  142. wait(30);
  143. Obj_SetSpeed(obj,1);
  144. Obj_SetAngle(obj,dir-rand(-20,20));
  145. wait(600);
  146. yield;
  147. }
  148. }
  149.  
  150. function wait(w){loop(w){yield;}}
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement