Guest User

Spell card background help?

a guest
Dec 28th, 2011
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.67 KB | None | 0 0
  1. #TouhouDanmakufu
  2. #Title[YukariSC4]
  3. #Text[Boundary of Lasers and Bullets]
  4. #Player[FREE]
  5. #ScriptVersion[2]
  6. #Image[.\system\image.jpg]
  7. #BGM[.\bgm\necrofantasia.mp3]
  8.  
  9. script_enemy_main{
  10. #include_function".\function_cutin.txt";
  11.  
  12.  
  13. let CSD = GetCurrentScriptDirectory;
  14.  
  15. let imgBoss = CSD ~ "system\yukarisprite.png";
  16. let cut = GetCurrentScriptDirectory ~ "system\yukari.png";
  17. let bg = CSD ~ "system\yukaribg.png";
  18. let bg2 = CSD ~ "system\yukaribg2.png";
  19. let fam = CSD ~ "Familiar11.txt";
  20. let f = 0;
  21. let frame = 0;
  22. let f2 = 0;
  23. let x = 0;
  24. let dir = 0;
  25.  
  26.  
  27. @Initialize{
  28. LoadUserShotData(CSD ~ "supershot.txt");
  29. SetLife(6000);
  30. SetDamageRate(100,0);
  31. SetTimer(99);
  32. SetInvincibility(240);
  33. SetScore(10000000);
  34. SetMovePosition01(GetCenterX,GetCenterY-100,5);
  35. LoadGraphic(imgBoss);
  36. LoadGraphic(cut);
  37. LoadGraphic(bg);
  38.  
  39. cutin("BYAKUREN","Boundary of Lasers and Bullets",cut,0,0,512,512);
  40.  
  41. PlaySE(CSD ~ "sfx\se_cat00.wav");
  42.  
  43. mainTask;
  44.  
  45. }
  46.  
  47. @MainLoop{
  48. if(OnBomb == false){
  49. SetCollisionA(GetX, GetY, 32);
  50. SetCollisionB(GetX, GetY, 24);
  51. }
  52. yield;
  53. }
  54.  
  55. @DrawLoop{
  56. if(OnBomb == false){
  57. frame++;
  58. SetTexture(imgBoss);
  59. SetRenderState(ALPHA);
  60. SetAlpha(255);
  61. SetGraphicScale(1,1);
  62. SetGraphicAngle(0,0,0);
  63.  
  64.  
  65. if(int(GetSpeedX())==0){
  66. if(f>=0){SetGraphicRect(0,0,72,96);}
  67. f2=0;
  68. }
  69.  
  70. if(GetSpeedX()>0){
  71. if(f2<3){SetGraphicRect(0,96,72,192);}
  72. if(f2>=3 && f2<6){SetGraphicRect(80,96,152,192);}
  73. if(f2>=6){SetGraphicRect(160,96,232,192);}
  74. f2++;
  75. }
  76. if(GetSpeedX()<0){
  77. if(f2<3){SetGraphicRect(0,192,72,288);}
  78. if(f2>=3 && f2<6){SetGraphicRect(80,192,152,288);}
  79. if(f2>=6){SetGraphicRect(160,192,232,288);}
  80. f2++;
  81. }
  82.  
  83. f++;
  84. if(f==6){f=0;}
  85.  
  86. DrawGraphic(GetX,GetY);
  87. }
  88. }
  89.  
  90. @BackGround{
  91. frame++;
  92. SetTexture(bg);
  93. SetGraphicRect(0,0,256,256);
  94. SetGraphicScale(1.75,1.75);
  95. SetGraphicAngle(0,0,0);
  96. DrawGraphic(GetCenterX,GetCenterY);
  97.  
  98. SetTexture(bg2);
  99. SetGraphicRect(0,0,256,256);
  100. SetGraphicScale(1.75,1.75);
  101. SetGraphicAngle(0,0,0.2*frame);
  102. DrawGraphic(GetCenterX,GetCenterY);
  103. }
  104.  
  105. @Finalize{
  106. DeleteGraphic(imgBoss);
  107. DeleteGraphic(cut);
  108. DeleteGraphic(bg);
  109. PlaySE(CSD ~ "sfx\se_enep00_2.wav");
  110. if(GetMissCountInThisSpell==0 && GetBombCountInThisSpell==0){
  111. PlaySE(CSD ~ "sfx\se_cardget.wav");
  112. }
  113.  
  114. if(GetMissCountInThisSpell>1){
  115. CreateItem(ITEM_1UP,GetEnemyX,GetEnemyY);
  116. }
  117. }
  118.  
  119.  
  120. task mainTask{
  121.  
  122. wait(120);
  123. yield;
  124. fire;
  125. movement;
  126. }
  127.  
  128. task movement{
  129. yield;
  130. }
  131.  
  132.  
  133. task fire{
  134.  
  135. let x = 0;
  136. let dir = 0;
  137.  
  138. Concentration01(90);
  139. PlaySE(CSD ~ "sfx\se_power0.wav");
  140. wait(90);
  141.  
  142. loop{
  143. PlaySE(CSD ~ "sfx\se_gun00.wav");
  144.  
  145. while(x<12){
  146. explosion(GetEnemyX,GetEnemyY,50,dir+GetAngleToPlayer,NULL,60);
  147. dir+=360/12;
  148. x++;
  149. }
  150. x=0;
  151. dir=0;
  152.  
  153. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,4,60);
  154. SetLaserDataA(1,0,GetAngleToPlayer,0,0,0,0);
  155. SetShotKillTime(1,180);
  156. FireShot(1);
  157.  
  158. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,4,60);
  159. SetLaserDataA(1,0,GetAngleToPlayer+30,0,0,0,0);
  160. SetShotKillTime(1,180);
  161. FireShot(1);
  162.  
  163. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,4,60);
  164. SetLaserDataA(1,0,GetAngleToPlayer-30,0,0,0,0);
  165. SetShotKillTime(1,180);
  166. FireShot(1);
  167.  
  168. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,4,60);
  169. SetLaserDataA(1,0,GetAngleToPlayer+60,0,0,0,0);
  170. SetShotKillTime(1,180);
  171. FireShot(1);
  172.  
  173. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,4,60);
  174. SetLaserDataA(1,0,GetAngleToPlayer-60,0,0,0,0);
  175. SetShotKillTime(1,180);
  176. FireShot(1);
  177.  
  178. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,4,60);
  179. SetLaserDataA(1,0,GetAngleToPlayer+90,0,0,0,0);
  180. SetShotKillTime(1,180);
  181. FireShot(1);
  182.  
  183. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,4,60);
  184. SetLaserDataA(1,0,GetAngleToPlayer-90,0,0,0,0);
  185. SetShotKillTime(1,180);
  186. FireShot(1);
  187.  
  188. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,4,60);
  189. SetLaserDataA(1,0,GetAngleToPlayer+120,0,0,0,0);
  190. SetShotKillTime(1,180);
  191. FireShot(1);
  192.  
  193. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,4,60);
  194. SetLaserDataA(1,0,GetAngleToPlayer-120,0,0,0,0);
  195. SetShotKillTime(1,180);
  196. FireShot(1);
  197.  
  198. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,4,60);
  199. SetLaserDataA(1,0,GetAngleToPlayer+150,0,0,0,0);
  200. SetShotKillTime(1,180);
  201. FireShot(1);
  202.  
  203. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,4,60);
  204. SetLaserDataA(1,0,GetAngleToPlayer-150,0,0,0,0);
  205. SetShotKillTime(1,180);
  206. FireShot(1);
  207.  
  208. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,4,60);
  209. SetLaserDataA(1,0,GetAngleToPlayer+180,0,0,0,0);
  210. SetShotKillTime(1,180);
  211. FireShot(1);
  212.  
  213. wait(60);
  214. PlaySE(CSD ~ "sfx\se_tan00.wav");
  215. PlaySE(CSD ~ "sfx\se_lazer00.wav");
  216. wait(180);
  217.  
  218. PlaySE(CSD ~ "sfx\se_gun00.wav");
  219.  
  220. while(x<12){
  221. aimed(GetEnemyX,GetEnemyY,50,dir+GetAngleToPlayer+15,NULL,60);
  222. dir+=360/12;
  223. x++;
  224. }
  225. x=0;
  226. dir=0;
  227.  
  228. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,3,60);
  229. SetLaserDataA(1,0,GetAngleToPlayer+15,0,0,0,0);
  230. SetShotKillTime(1,180);
  231. FireShot(1);
  232.  
  233. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,3,60);
  234. SetLaserDataA(1,0,GetAngleToPlayer-15,0,0,0,0);
  235. SetShotKillTime(1,180);
  236. FireShot(1);
  237.  
  238. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,3,60);
  239. SetLaserDataA(1,0,GetAngleToPlayer+45,0,0,0,0);
  240. SetShotKillTime(1,180);
  241. FireShot(1);
  242.  
  243. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,3,60);
  244. SetLaserDataA(1,0,GetAngleToPlayer-45,0,0,0,0);
  245. SetShotKillTime(1,180);
  246. FireShot(1);
  247.  
  248. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,3,60);
  249. SetLaserDataA(1,0,GetAngleToPlayer+75,0,0,0,0);
  250. SetShotKillTime(1,180);
  251. FireShot(1);
  252.  
  253. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,3,60);
  254. SetLaserDataA(1,0,GetAngleToPlayer-75,0,0,0,0);
  255. SetShotKillTime(1,180);
  256. FireShot(1);
  257.  
  258. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,3,60);
  259. SetLaserDataA(1,0,GetAngleToPlayer+105,0,0,0,0);
  260. SetShotKillTime(1,180);
  261. FireShot(1);
  262.  
  263. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,3,60);
  264. SetLaserDataA(1,0,GetAngleToPlayer-105,0,0,0,0);
  265. SetShotKillTime(1,180);
  266. FireShot(1);
  267.  
  268. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,3,60);
  269. SetLaserDataA(1,0,GetAngleToPlayer+135,0,0,0,0);
  270. SetShotKillTime(1,180);
  271. FireShot(1);
  272.  
  273. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,3,60);
  274. SetLaserDataA(1,0,GetAngleToPlayer-135,0,0,0,0);
  275. SetShotKillTime(1,180);
  276. FireShot(1);
  277.  
  278. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,3,60);
  279. SetLaserDataA(1,0,GetAngleToPlayer+165,0,0,0,0);
  280. SetShotKillTime(1,180);
  281. FireShot(1);
  282.  
  283. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,3,60);
  284. SetLaserDataA(1,0,GetAngleToPlayer-165,0,0,0,0);
  285. SetShotKillTime(1,180);
  286. FireShot(1);
  287.  
  288. wait(60);
  289. PlaySE(CSD ~ "sfx\se_tan00.wav");
  290. PlaySE(CSD ~ "sfx\se_lazer00.wav");
  291. wait(180);
  292.  
  293. PlaySE(CSD ~ "sfx\se_gun00.wav");
  294.  
  295. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,6,60);
  296. SetLaserDataA(1,0,0,0,0,0,0);
  297. SetShotKillTime(1,180);
  298. FireShot(1);
  299.  
  300. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,6,60);
  301. SetLaserDataA(1,0,30,0,0,0,0);
  302. SetShotKillTime(1,180);
  303. FireShot(1);
  304.  
  305. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,6,60);
  306. SetLaserDataA(1,0,60,0,0,0,0);
  307. SetShotKillTime(1,180);
  308. FireShot(1);
  309.  
  310. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,6,60);
  311. SetLaserDataA(1,0,90,0,0,0,0);
  312. SetShotKillTime(1,180);
  313. FireShot(1);
  314.  
  315. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,6,60);
  316. SetLaserDataA(1,0,120,0,0,0,0);
  317. SetShotKillTime(1,180);
  318. FireShot(1);
  319.  
  320. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,6,60);
  321. SetLaserDataA(1,0,150,0,0,0,0);
  322. SetShotKillTime(1,180);
  323. FireShot(1);
  324.  
  325. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,6,60);
  326. SetLaserDataA(1,0,180,0,0,0,0);
  327. SetShotKillTime(1,180);
  328. FireShot(1);
  329.  
  330. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,6,60);
  331. SetLaserDataA(1,0,-30,0,0,0,0);
  332. SetShotKillTime(1,180);
  333. FireShot(1);
  334.  
  335. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,6,60);
  336. SetLaserDataA(1,0,-60,0,0,0,0);
  337. SetShotKillTime(1,180);
  338. FireShot(1);
  339.  
  340. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,6,60);
  341. SetLaserDataA(1,0,-90,0,0,0,0);
  342. SetShotKillTime(1,180);
  343. FireShot(1);
  344.  
  345. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,6,60);
  346. SetLaserDataA(1,0,-120,0,0,0,0);
  347. SetShotKillTime(1,180);
  348. FireShot(1);
  349.  
  350. CreateLaserA(1,GetEnemyX,GetEnemyY,1000,50,6,60);
  351. SetLaserDataA(1,0,-150,0,0,0,0);
  352. SetShotKillTime(1,180);
  353. FireShot(1);
  354.  
  355. wait(60);
  356. PlaySE(CSD ~ "sfx\se_lazer00.wav");
  357.  
  358. CreateEnemyFromFile(fam,GetEnemyX,GetEnemyY,20,0,0);
  359. CreateEnemyFromFile(fam,GetEnemyX,GetEnemyY,20,30,0);
  360. CreateEnemyFromFile(fam,GetEnemyX,GetEnemyY,20,60,0);
  361. CreateEnemyFromFile(fam,GetEnemyX,GetEnemyY,20,90,0);
  362. CreateEnemyFromFile(fam,GetEnemyX,GetEnemyY,20,120,0);
  363. CreateEnemyFromFile(fam,GetEnemyX,GetEnemyY,20,150,0);
  364. CreateEnemyFromFile(fam,GetEnemyX,GetEnemyY,20,180,0);
  365. CreateEnemyFromFile(fam,GetEnemyX,GetEnemyY,20,-30,0);
  366. CreateEnemyFromFile(fam,GetEnemyX,GetEnemyY,20,-60,0);
  367. CreateEnemyFromFile(fam,GetEnemyX,GetEnemyY,20,-90,0);
  368. CreateEnemyFromFile(fam,GetEnemyX,GetEnemyY,20,-120,0);
  369. CreateEnemyFromFile(fam,GetEnemyX,GetEnemyY,20,-150,0);
  370.  
  371. wait(180);
  372.  
  373. Concentration01(60);
  374. PlaySE(CSD ~ "sfx\se_ch00.wav");
  375. wait(60);
  376.  
  377. loop(30){
  378. PlaySE(CSD ~ "sfx\se_tan00_2.wav");
  379. while(x<4){
  380. lasers(GetEnemyX,GetEnemyY,2.5,dir,25,0);
  381. dir+=360/4;
  382. x++;
  383. }
  384. x=0;
  385. dir+=rand(10,20);
  386. wait(2);
  387. }
  388. dir=0;
  389. wait(210);
  390. }
  391.  
  392.  
  393. yield;
  394. }
  395.  
  396.  
  397. task explosion(x,y,v,dir,graphic,delay){
  398. let obj = Obj_Create(OBJ_SHOT);
  399.  
  400. Obj_SetPosition(obj,x,y);
  401. Obj_SetSpeed(obj,v);
  402. Obj_SetAngle(obj,dir);
  403. ObjShot_SetGraphic(obj,graphic);
  404. ObjShot_SetDelay(obj,delay);
  405. ObjShot_SetBombResist(obj,true);
  406.  
  407. while(!Obj_BeDeleted(obj)){
  408.  
  409. if(Obj_GetY(obj) > GetClipMaxY){
  410. Obj_SetSpeed(obj,0);
  411. Obj_SetAngle(obj,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));
  412. loop(30){CreateShot01(Obj_GetX(obj),Obj_GetY(obj),rand(0.5,1.5),270+rand(-90,90),87,0); dir+=360/30;}
  413. Obj_Delete(obj);
  414. }
  415.  
  416. if(Obj_GetY(obj) < GetClipMinY){
  417. Obj_SetSpeed(obj,0);
  418. Obj_SetAngle(obj,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));
  419. loop(30){CreateShot01(Obj_GetX(obj),Obj_GetY(obj),rand(0.5,1.5),90+rand(-90,90),87,0); dir+=360/30;}
  420. Obj_Delete(obj);
  421. }
  422.  
  423. if(Obj_GetX(obj) < GetClipMinX){
  424. Obj_SetSpeed(obj,0);
  425. Obj_SetAngle(obj,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));
  426. loop(30){CreateShot01(Obj_GetX(obj),Obj_GetY(obj),rand(0.5,1.5),0+rand(-90,90),87,0); dir+=360/30;}
  427. Obj_Delete(obj);
  428. }
  429.  
  430. if(Obj_GetX(obj) > GetClipMaxX){
  431. Obj_SetSpeed(obj,0);
  432. Obj_SetAngle(obj,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));
  433. loop(30){CreateShot01(Obj_GetX(obj),Obj_GetY(obj),rand(0.5,1.5),180+rand(-90,90),87,0); dir+=360/30;}
  434. Obj_Delete(obj);
  435. }
  436.  
  437. yield;
  438. }
  439.  
  440.  
  441. }
  442.  
  443.  
  444. task aimed(x,y,v,dir,graphic,delay){
  445. let obj = Obj_Create(OBJ_SHOT);
  446.  
  447. Obj_SetPosition(obj,x,y);
  448. Obj_SetSpeed(obj,v);
  449. Obj_SetAngle(obj,dir);
  450. ObjShot_SetGraphic(obj,graphic);
  451. ObjShot_SetDelay(obj,delay);
  452. ObjShot_SetBombResist(obj,true);
  453.  
  454. while(!Obj_BeDeleted(obj)){
  455.  
  456. if(Obj_GetY(obj) > GetClipMaxY){
  457. Obj_SetSpeed(obj,0);
  458. Obj_SetAngle(obj,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));
  459. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.75,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  460. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  461. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1.25,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  462. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1.5,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  463. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1.75,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  464. Obj_Delete(obj);
  465. }
  466.  
  467. if(Obj_GetY(obj) < GetClipMinY){
  468. Obj_SetSpeed(obj,0);
  469. Obj_SetAngle(obj,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));
  470. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.75,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  471. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  472. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1.25,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  473. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1.5,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  474. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1.75,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  475. Obj_Delete(obj);
  476. }
  477.  
  478. if(Obj_GetX(obj) < GetClipMinX){
  479. Obj_SetSpeed(obj,0);
  480. Obj_SetAngle(obj,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));
  481. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.75,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  482. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  483. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1.25,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  484. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1.5,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  485. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1.75,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  486. Obj_Delete(obj);
  487. }
  488.  
  489. if(Obj_GetX(obj) > GetClipMaxX){
  490. Obj_SetSpeed(obj,0);
  491. Obj_SetAngle(obj,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));
  492. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.75,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  493. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  494. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1.25,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  495. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1.5,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  496. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1.75,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)),210,0);
  497. Obj_Delete(obj);
  498. }
  499.  
  500. yield;
  501. }
  502.  
  503.  
  504. }
  505.  
  506. task lasers(x,y,v,dir,graphic,delay){
  507. let obj = Obj_Create(OBJ_SHOT);
  508.  
  509. Obj_SetPosition(obj,x,y);
  510. Obj_SetSpeed(obj,v);
  511. Obj_SetAngle(obj,dir);
  512. ObjShot_SetGraphic(obj,graphic);
  513. ObjShot_SetDelay(obj,delay);
  514. ObjShot_SetBombResist(obj,true);
  515.  
  516. while(!Obj_BeDeleted(obj)){
  517.  
  518. if(Obj_GetY(obj) > GetClipMaxY){
  519. Obj_SetSpeed(obj,0);
  520. PlaySE(CSD ~ "sfx\se_lazer01.wav");
  521. Obj_SetAngle(obj,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));
  522. CreateLaserA(1,Obj_GetX(obj),Obj_GetY(obj),1000,10,2,60);
  523. SetLaserDataA(1,0,270,0,0,0,0);
  524. SetShotKillTime(1,120);
  525. FireShot(1);
  526. Obj_Delete(obj);
  527. }
  528.  
  529. if(Obj_GetY(obj) < GetClipMinY){
  530. Obj_SetSpeed(obj,0);
  531. PlaySE(CSD ~ "sfx\se_lazer01.wav");
  532. Obj_SetAngle(obj,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));
  533. CreateLaserA(1,Obj_GetX(obj),Obj_GetY(obj),1000,10,2,60);
  534. SetLaserDataA(1,0,90,0,0,0,0);
  535. SetShotKillTime(1,120);
  536. FireShot(1);
  537. Obj_Delete(obj);
  538. }
  539.  
  540. if(Obj_GetX(obj) < GetClipMinX){
  541. Obj_SetSpeed(obj,0);
  542. PlaySE(CSD ~ "sfx\se_lazer01.wav");
  543. Obj_SetAngle(obj,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));
  544. CreateLaserA(1,Obj_GetX(obj),Obj_GetY(obj),1000,10,2,60);
  545. SetLaserDataA(1,0,0,0,0,0,0);
  546. SetShotKillTime(1,120);
  547. FireShot(1);
  548. Obj_Delete(obj);
  549. }
  550.  
  551. if(Obj_GetX(obj) > GetClipMaxX){
  552. Obj_SetSpeed(obj,0);
  553. PlaySE(CSD ~ "sfx\se_lazer01.wav");
  554. Obj_SetAngle(obj,atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));
  555. CreateLaserA(1,Obj_GetX(obj),Obj_GetY(obj),1000,10,2,60);
  556. SetLaserDataA(1,0,180,0,0,0,0);
  557. SetShotKillTime(1,120);
  558. FireShot(1);
  559. Obj_Delete(obj);
  560. }
  561.  
  562. yield;
  563. }
  564.  
  565.  
  566. }
  567.  
  568. function wait(w){
  569. loop(w){yield;}
  570. }
  571. }
Advertisement
Add Comment
Please, Sign In to add comment