Advertisement
Guest User

Untitled

a guest
Jun 4th, 2018
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.28 KB | None | 0 0
  1. let CSD = GetCurrentScriptDirectory;
  2.  
  3. let texFloor = CSD ~ "images/stg5bg.png";
  4.  
  5. let bSpell = false;
  6.  
  7. LoadCommonDataAreaA1("Stage part");
  8. let stagepart = GetAreaCommonData("Stage part", "Stagepart", 0);
  9. LoadCommonDataAreaA2("Boss Spell", "./CDarea.dnh");
  10.  
  11. let mask;
  12.  
  13. let obj4;
  14.  
  15. @Initialize{
  16. mask = ObjMask_Create("example_mask", 24, 26); // applies to layers 24~26
  17. ObjRender_SetAlpha(mask, 0);
  18. let canvas = ObjPrim_Create(OBJ_SPRITE_2D);
  19. Del(mask);
  20. ObjPrim_SetTexture(canvas, GetCurrentScriptDirectory() ~ "white.png"); // white pixel
  21. ObjSprite2D_SetSourceRect(canvas, 0, 0, 1024, 512); // 1024x512 is render target size
  22. ObjSprite2D_SetDestRect(canvas, 0, 0, 1024, 512);
  23. ObjMask_AddSource(mask, canvas);
  24. Shader;
  25. renderStage;
  26. scrollStage;
  27. TSpellBackground;
  28. }
  29.  
  30. @MainLoop{
  31. stagepart = GetAreaCommonData("Stage part", "Stagepart", 0);
  32. if(GetAreaCommonData("Boss Spell", "Active", false) == true){
  33. bSpell = true;
  34. }else{
  35. bSpell = false;
  36. }
  37. yield;
  38. }
  39.  
  40. task Del(obj){
  41. loop{
  42. if(stagepart == 1){
  43. Obj_Delete(obj);
  44. break;
  45. }
  46. yield;
  47. }
  48. }
  49.  
  50. task renderStage{
  51. SetFogEnable(true);
  52. SetFogParam(512, 1536, 195, 29, 204);
  53.  
  54. let Y = round(32768^(1/2));
  55. let addCount = 11; //11
  56. let l = 0;
  57. let r = addCount;
  58. let y = 39;
  59. let z = 49;
  60. let y1 = -(2*Y) + 8;
  61. let z1 = -(2*Y) - 8;
  62. let y2 = -(3*Y) + 8;
  63. let z2 = -(2*Y) - 8;
  64. let n = 0;
  65. loop(8){
  66. if(n == 0){
  67. n ++;
  68. let obj = Shine(-15,y1 + 60,z1,255);
  69. Alpha(obj);
  70. obj = Shine(271,y1 + 60,z1,255);
  71. Alpha(obj);
  72. obj = Shine1(-15,y1 + 60,z1,255);
  73. Alpha(obj);
  74. obj = Shine1(271,y1 + 60,z1,255);
  75. Alpha(obj);
  76. }
  77.  
  78. makeFloor5(-160,y1 - 100,z1 + 100,255);
  79. makeFloor5(417,y1 - 100,z1 + 100,255);
  80. makeFloor5(-480,y1 - 100,z1 + 100,255);
  81. makeFloor5(737,y1 - 100,z1 + 100,255);
  82. makeFloor5(-800,y1 - 100,z1 + 100,255);
  83. makeFloor5(1057,y1 - 100,z1 + 100,255);
  84.  
  85. makeFloor1(-15,y1,z1,255);
  86. makeFloor2(0,y2,z2,255);
  87. makeFloor1(271,y1,z1,255);
  88. makeFloor2(256,y2,z2,255);
  89. y1 += Y;
  90. z1 += Y;
  91. y2 += Y;
  92. z2 += Y;
  93. n ++;
  94. if(n >= 3){
  95. n = 0;
  96. }
  97. }
  98. loop(70){
  99. makeFloor3(128,y,z,255,l,256,r,512);
  100. r += addCount;
  101. l += addCount;
  102. if(r > 256 - addCount){
  103. r = addCount;
  104. l = 0;
  105. }
  106. y += addCount/2;
  107. z += addCount/2;
  108. makeFloor4(128,y,z,255,l,256,r,512);
  109. r += addCount;
  110. l += addCount;
  111. y += addCount/2;
  112. z += addCount/2;
  113. if(r > 256 - addCount){
  114. r = addCount;
  115. l = 0;
  116. }
  117. }
  118.  
  119. task Alpha(obj){
  120. let alp = 255;
  121. loop(3600){
  122. alp -= 255/3600;
  123. ObjRender_SetAlpha(obj, alp);
  124. yield;
  125. }
  126. }
  127. }
  128.  
  129. task scrollStage{
  130. let Y = 32768^(1/2);
  131. let text = ObjText_Create;
  132. let i = 0;
  133. let f = 0;
  134. let scroll = 0;
  135.  
  136. SetCameraPerspectiveClip(16, 4096);
  137.  
  138. SetCameraAzimuthAngle(-45);//-45
  139. SetCameraElevationAngle(45);
  140. SetCameraRadius(400); //400
  141.  
  142. SetCameraFocusX(96);//96
  143. SetCameraFocusY(250);
  144. SetCameraFocusZ(0);
  145.  
  146. SetCameraYaw(0);
  147. SetCameraPitch(-20);
  148. SetCameraRoll(0);
  149.  
  150. let dark = ObjPrim_Create(OBJ_SPRITE_2D);
  151. ObjPrim_SetTexture(dark, GetCurrentScriptDirectory() ~ "images/Black.png");
  152. ObjSprite2D_SetSourceRect(dark, 0, 0, 512, 512);
  153. ObjRender_SetPosition(dark, GetCenterX, GetCenterY, 0);
  154. ObjSprite2D_SetDestCenter(dark);
  155. ObjRender_SetBlendType(dark, BLEND_ALPHA);
  156. Obj_SetRenderPriorityI(dark, 25);
  157. ObjRender_SetAlpha(dark, 200);
  158. let alp = 200;
  159.  
  160. loop(3600){
  161. alp -= 200/3600;
  162. ObjRender_SetAlpha(dark, alp);
  163. scroll += Y/128;
  164. SetCameraFocusZ(0+scroll);
  165. SetCameraFocusY(250+scroll);//250
  166. if(scroll >= 362){
  167. scroll = 0;
  168. }
  169. yield;
  170. }
  171. wait(60);
  172. let elev = 45;
  173. let az = -45;
  174. let X = 96;
  175. loop(240){
  176. X += 32/240;
  177. az -= 45/240;
  178. elev -= 10/240;
  179. SetCameraFocusX(X);
  180. SetCameraAzimuthAngle(az);
  181. SetCameraElevationAngle(elev);
  182. yield;
  183. }
  184. TDBG;
  185. }
  186.  
  187. task Visible(obj){
  188. wait(3901);
  189. Obj_Delete(obj);
  190. }
  191.  
  192. task TSpellBackground{
  193. let count = 0;
  194. loop{
  195. if(bSpell == true && stagepart == 0 && count == 0){
  196. count ++;
  197. Init;
  198. }else if(bSpell == false){
  199. count = 0;
  200. }
  201. yield;
  202. }
  203.  
  204. task Init{
  205. let alpha = 255;
  206.  
  207. let obj = ObjPrim_Create(OBJ_SPRITE_2D);
  208. ObjPrim_SetTexture(obj, GetCurrentScriptDirectory ~ "images/Youmu/cdbg0.png");
  209. ObjSprite2D_SetSourceRect(obj, 0, 0, 256, 256);
  210. ObjSprite2D_SetDestRect(obj, -192, -224, 192, 224);
  211. ObjRender_SetPosition(obj, GetStgFrameWidth/2, GetStgFrameHeight/2, 0);
  212. Obj_SetRenderPriorityI(obj, 20);
  213. ObjRender_SetAlpha(obj, alpha);
  214. ObjRender_SetBlendType(obj, BLEND_ALPHA);
  215.  
  216. let obj1 = ObjPrim_Create(OBJ_SPRITE_2D);
  217. ObjPrim_SetTexture(obj1, GetCurrentScriptDirectory ~ "images/Youmu/cdbg1.png");
  218. ObjSprite2D_SetSourceRect(obj1, 0, 0, 256, 256);
  219. ObjRender_SetScaleXYZ(obj1, 2.5, 2.5, 2.5);
  220. ObjSprite2D_SetDestCenter(obj1);
  221. Obj_SetRenderPriorityI(obj1, 20);
  222. ObjSprite2D_SetDestCenter(obj1);
  223. ObjRender_SetPosition(obj1, GetStgFrameWidth/2, GetStgFrameHeight/2, 0);
  224. ObjRender_SetAlpha(obj1, alpha);
  225. ObjRender_SetBlendType(obj1, BLEND_ALPHA);
  226.  
  227. let angleT = 0;
  228. while(!Obj_IsDeleted(obj)){
  229. angleT += 0.3;
  230. if(bSpell == false){
  231. loop(60){
  232. alpha -= 255/60;
  233. ObjRender_SetAlpha(obj, alpha);
  234. ObjRender_SetAlpha(obj1, alpha);
  235. yield;
  236. }
  237. Obj_Delete(obj);
  238. Obj_Delete(obj1);
  239. }
  240. ObjRender_SetAngleZ(obj1, angleT);
  241. yield;
  242. }
  243. }
  244. }
  245.  
  246. function ObjMask_Create(texture_name, layer_min, layer_max){
  247. // Set up render target
  248. CreateRenderTarget(texture_name);
  249.  
  250. // Set up shader
  251. let obj = ObjShader_Create();
  252. ObjShader_SetShaderF(obj, GetCurrentScriptDirectory() ~ "SamplePS02_HLSL.dnh");
  253. ObjShader_SetTechnique(obj, "TecMask");
  254. ObjShader_SetTexture(obj, "textureMask_", texture_name);
  255. SetShaderI(obj, layer_min, layer_max);
  256.  
  257. Obj_SetValue(obj, "MASK_CONTENTS", []);
  258.  
  259. task run(){
  260. while(!Obj_IsDeleted(obj)){
  261. let contents = Obj_GetValueD(obj, "MASK_CONTENTS", []);
  262. // Remove any deleted objects from list
  263. contents = remove_deleted_objs(contents);
  264.  
  265. ascent(i in 0..length(contents)){
  266. // Make visible when drawing to render target
  267. //Obj_SetVisible(contents[i], true);
  268. Obj_SetVisible(contents[i], false);
  269. RenderToTextureB1(texture_name, contents[i], (i==0));
  270. // Otherwise invisible
  271. //Obj_SetVisible(contents[i], false);
  272. }
  273.  
  274. Obj_SetValue(obj, "MASK_CONTENTS", contents);
  275. yield;
  276. }
  277.  
  278. let contents = Obj_GetValueD(obj, "MASK_CONTENTS", []);
  279. ascent(i in 0..length(contents)){ Obj_Delete(contents[i]); }
  280. RemoveTexture(texture_name);
  281. }
  282. run();
  283.  
  284. return obj;
  285.  
  286. function remove_deleted_objs(a){
  287. let res = [0][0..0]; // typed array
  288. let slices = [];
  289. let prev = 0;
  290. ascent(i in 0..length(a)){
  291. if(Obj_IsDeleted(a[i])){
  292. slices = slices ~ [[prev, i]];
  293. prev = i+1;
  294. }
  295. }
  296. // if unchanged, return
  297. if(length(slices) == 0 && prev == 0){ return a; }
  298. // last slice
  299. slices = slices ~ [[prev, length(a)]];
  300. // join slices
  301. ascent(j in 0..length(slices)){
  302. res = res ~ a[slices[j][0]..slices[j][1]];
  303. }
  304. return res;
  305. }
  306. }
  307.  
  308. function ObjMask_AddSource(obj, src){
  309. Obj_SetValue(obj, "MASK_CONTENTS", Obj_GetValueD(obj, "MASK_CONTENTS", []) ~ [src]);
  310. }
  311.  
  312. task Shader{
  313. let c = 1;
  314. let circle = ObjPrim_Create(OBJ_SPRITE_2D);
  315. let circle1 = ObjPrim_Create(OBJ_SPRITE_2D);
  316. let alpha = 0;
  317.  
  318. loop{
  319. if(bSpell == true && stagepart == 0 && c == 0){
  320. alpha = 255;
  321. c ++;
  322.  
  323. //wait(300);
  324.  
  325. ObjPrim_SetTexture(circle, GetCurrentScriptDirectory() ~ "images/mask_subtract3.png"); // white circle on black
  326. ObjSprite2D_SetSourceRect(circle, 0, 0, 768, 896);
  327. ObjRender_SetPosition(circle, GetCenterX + 32, GetCenterY + 16, 0);
  328. ObjSprite2D_SetDestCenter(circle);
  329. ObjRender_SetBlendType(circle, BLEND_SUBTRACT); // white subtract white = black
  330. ObjMask_AddSource(mask, circle);
  331. ObjRender_SetScaleXYZ(circle, 0, 0, 1);
  332. Appear(circle);
  333.  
  334. let scaleX = 0;
  335. let scaleY = 0;
  336. loop(10){
  337. scaleX += 1.5/10;
  338. scaleY += 1.5/10;
  339. ObjRender_SetScaleXYZ(circle, scaleX, scaleY, 1);
  340. yield;
  341. }
  342. wait(80);
  343.  
  344. ObjPrim_SetTexture(circle1, GetCurrentScriptDirectory() ~ "images/mask_subtract2.png"); // white circle on black
  345. ObjSprite2D_SetSourceRect(circle1, 0, 0, 768, 896);
  346. ObjRender_SetPosition(circle1, GetCenterX + 32, GetCenterY + 16, 0);
  347. ObjSprite2D_SetDestCenter(circle1);
  348. ObjRender_SetBlendType(circle1, BLEND_SUBTRACT); // white subtract white = black
  349. ObjMask_AddSource(mask, circle1);
  350. Appear(circle1);
  351.  
  352. ObjRender_SetScaleXYZ(circle1, 0, 0, 1);
  353. scaleX = 0;
  354. scaleY = 0;
  355. loop(10){
  356. scaleX += 1.5/10;
  357. scaleY += 1.5/10;
  358. ObjRender_SetScaleXYZ(circle1, scaleX, scaleY, 1);
  359. yield;
  360. }
  361. loop(120){
  362. scaleX += 4/120;
  363. scaleY += 4/120;
  364. ObjRender_SetScaleXYZ(circle, scaleX, scaleY, 1);
  365. ObjRender_SetScaleXYZ(circle1, scaleX, scaleY, 1);
  366. yield;
  367. }
  368. loop(60){
  369. scaleX += 15/60;
  370. scaleY += 15/60;
  371. ObjRender_SetScaleXYZ(circle, scaleX, scaleY, 1);
  372. ObjRender_SetScaleXYZ(circle1, scaleX, scaleY, 1);
  373. yield;
  374. }
  375. while(bSpell == true){
  376. yield;
  377. }
  378. //ResetShaderI(21, 23);
  379. }else if(bSpell == false && stagepart == 0 && c > 0){
  380. c = 0;
  381. loop(60){
  382. if(alpha > 0){
  383. alpha -= 255/60;
  384. }
  385. ObjRender_SetAlpha(circle, alpha);
  386. ObjRender_SetAlpha(circle1, alpha);
  387. yield;
  388. }
  389. }
  390. yield;
  391. }
  392.  
  393. task Appear(obj){
  394. ObjRender_SetAlpha(obj, 0);
  395. wait(1);
  396. ObjRender_SetAlpha(obj, 255);
  397. }
  398. }
  399.  
  400. task TDBG{
  401. let count = 0;
  402. CreateRenderTarget("3d");
  403. SetInvalidRenderPriorityA1(21, 23);
  404. RenderToTextureA1("3d", 21, 23, true);
  405. obj4 = ObjPrim_Create(OBJ_SPRITE_2D);
  406. ObjPrim_SetTexture(obj4, "3d");
  407. ObjSprite2D_SetSourceRect(obj4, 0 + 32, 0 + 16, 384 + 32, 448 + 16);
  408. ObjSprite2D_SetDestRect(obj4, 0, 0, 384, 448);
  409. Obj_SetRenderPriorityI(obj4, 25);
  410. ObjRender_SetAlpha(obj4, 255);
  411. let alpha = 255;
  412. loop{
  413. if(GetCommonData("Delete", 0) == 1){
  414. let alp = 255;
  415. loop(60){
  416. alp -= 255/60;
  417. ObjRender_SetAlpha(obj4, alp);
  418. yield;
  419. }
  420. Obj_Delete(obj4);
  421. count = 0;
  422. /*
  423. if(stagepart == 1){
  424. if(bSpell == true){
  425. if(alpha > 0){
  426. alpha -= 255/60;
  427. }
  428. }else{
  429. if(255 > alpha){
  430. alpha += 255/60;
  431. }
  432. }
  433. ObjRender_SetAlpha(obj4, alpha);
  434. }
  435. */
  436. }
  437. if(GetCommonData("Delete", 0) == 2 && count == 0){
  438. count ++;
  439. obj4 = ObjPrim_Create(OBJ_SPRITE_2D);
  440. ObjPrim_SetTexture(obj4, "3d");
  441. ObjSprite2D_SetSourceRect(obj4, 0 + 32, 0 + 16, 384 + 32, 448 + 16);
  442. ObjSprite2D_SetDestRect(obj4, 0, 0, 384, 448);
  443. Obj_SetRenderPriorityI(obj4, 25);
  444. ObjRender_SetAlpha(obj4, 0);
  445. let alp = 0;
  446. loop(60){
  447. alp += 255/60;
  448. ObjRender_SetAlpha(obj4, alp);
  449. yield;
  450. }
  451. }
  452. yield;
  453. }
  454. }
  455.  
  456. function makeFloor(X,Y,Z,Alp){
  457. let obj = ObjPrim_Create(OBJ_SPRITE_3D);
  458. ObjPrim_SetTexture(obj, texFloor);
  459. Obj_SetRenderPriorityI(obj,22);
  460. ObjSprite3D_SetSourceDestRect(obj, 0, 256, 256, 512);
  461. ObjRender_SetScaleXYZ(obj, 1, 1, 0);
  462. ObjRender_SetZWrite(obj, true);
  463. ObjRender_SetBlendType(obj, BLEND_ALPHA);
  464. ObjRender_SetAlpha(obj, Alp);
  465.  
  466. ObjRender_SetAngleXYZ(obj, -90, 0, 0);
  467.  
  468. ObjRender_SetPosition(obj,X,Y,Z);
  469. Visible(obj);
  470. }
  471. function makeFloor1(X,Y,Z,Alp){
  472. let obj = ObjPrim_Create(OBJ_SPRITE_3D);
  473. ObjPrim_SetTexture(obj, texFloor);
  474. Obj_SetRenderPriorityI(obj,22);
  475. ObjSprite3D_SetSourceDestRect(obj, 0, 256, 32, 512);
  476. ObjRender_SetScaleXYZ(obj, 1, 1, 0);
  477. ObjRender_SetZWrite(obj, true);
  478. ObjRender_SetBlendType(obj, BLEND_ALPHA);
  479. ObjRender_SetAlpha(obj, Alp);
  480.  
  481. ObjRender_SetAngleXYZ(obj, 45, 0, 0);
  482.  
  483. ObjRender_SetPosition(obj,X,Y,Z);
  484. Visible(obj);
  485. }
  486. function makeFloor2(X,Y,Z,Alp){
  487. let obj = ObjPrim_Create(OBJ_SPRITE_3D);
  488. ObjPrim_SetTexture(obj, texFloor);
  489. Obj_SetRenderPriorityI(obj,22);
  490. ObjSprite3D_SetSourceDestRect(obj, 0, 256, 256, 512);
  491. ObjRender_SetScaleXYZ(obj, 1, 1, 0);
  492. ObjRender_SetZWrite(obj, true);
  493. ObjRender_SetBlendType(obj, BLEND_ALPHA);
  494. ObjRender_SetAlpha(obj, Alp);
  495. ObjRender_SetColor(obj, 200, 200, 200);
  496.  
  497. ObjRender_SetAngleXYZ(obj, 0, 90, 45);
  498.  
  499. ObjRender_SetPosition(obj,X,Y,Z);
  500. Visible(obj);
  501. }
  502. function makeFloor3(X,Y,Z,Alp,L,T,R,B){
  503. let obj = ObjPrim_Create(OBJ_SPRITE_3D);
  504. ObjPrim_SetTexture(obj, texFloor);
  505. Obj_SetRenderPriorityI(obj,22);
  506. ObjSprite3D_SetSourceDestRect(obj, L, T, R, B);
  507. ObjRender_SetScaleXYZ(obj, 1.2, 1.2, 0);
  508. ObjRender_SetZWrite(obj, true);
  509. ObjRender_SetBlendType(obj, BLEND_ALPHA);
  510. ObjRender_SetAlpha(obj, Alp);
  511. ObjRender_SetColor(obj, 140, 140, 140);
  512.  
  513. ObjRender_SetAngleXYZ(obj, 0, 0, 90);
  514.  
  515. ObjRender_SetPosition(obj,X,Y,Z);
  516. Visible(obj);
  517. }
  518. function makeFloor4(X,Y,Z,Alp,L,T,R,B){
  519. let obj = ObjPrim_Create(OBJ_SPRITE_3D);
  520. ObjPrim_SetTexture(obj, texFloor);
  521. Obj_SetRenderPriorityI(obj,22);
  522. ObjSprite3D_SetSourceDestRect(obj, L, T, R, B);
  523. ObjRender_SetScaleXYZ(obj, 1.2, 1.2, 0);
  524. ObjRender_SetZWrite(obj, true);
  525. ObjRender_SetBlendType(obj, BLEND_ALPHA);
  526. ObjRender_SetAlpha(obj, Alp);
  527. ObjRender_SetColor(obj, 255, 255, 255);
  528.  
  529. ObjRender_SetAngleXYZ(obj, 0, 0, 90);
  530.  
  531. ObjRender_SetPosition(obj,X,Y,Z);
  532. Visible(obj);
  533. }
  534. function makeFloor5(X,Y,Z,Alp){
  535. let obj = ObjPrim_Create(OBJ_SPRITE_3D);
  536. ObjPrim_SetTexture(obj, GetCurrentScriptDirectory() ~ "images/Stg1/stage03a.png");
  537. Obj_SetRenderPriorityI(obj,22);
  538. ObjSprite3D_SetSourceDestRect(obj, 0, 0, 320, 256);
  539. ObjRender_SetScaleXYZ(obj, 1, 1, 0);
  540. ObjRender_SetZWrite(obj, true);
  541. ObjRender_SetBlendType(obj, BLEND_ALPHA);
  542. ObjRender_SetAlpha(obj, Alp);
  543.  
  544. ObjRender_SetAngleXYZ(obj, 45, 0, 0);
  545.  
  546. ObjRender_SetPosition(obj,X,Y,Z);
  547. Visible(obj);
  548. }
  549. function StairLeft{
  550. let Y = 32768^(1/2);
  551. makeFloor1(0,-(2*Y),-(2*Y),255);
  552. makeFloor1(0,-Y,-Y,255);
  553. makeFloor1(0,0,0,255);
  554. makeFloor1(0,Y,Y,255);
  555. makeFloor1(0,2*Y,2*Y,255);
  556. makeFloor1(0,3*Y,3*Y,255);
  557. makeFloor1(0,4*Y,4*Y,255);
  558. makeFloor1(0,5*Y,5*Y,255);
  559. }
  560. function Shine(X,Y,Z,Alp){
  561. let obj = ObjPrim_Create(OBJ_SPRITE_3D);
  562. ObjPrim_SetTexture(obj, CSD ~ "images/Shine.png");
  563. Obj_SetRenderPriorityI(obj,30);
  564. ObjSprite3D_SetSourceDestRect(obj, 0, 0, 128, 128);
  565. ObjRender_SetScaleXYZ(obj, 1, 1, 0);
  566. ObjRender_SetZWrite(obj, true);
  567. ObjRender_SetBlendType(obj, BLEND_ADD_ARGB);
  568. ObjRender_SetAlpha(obj, Alp);
  569.  
  570. ObjSprite3D_SetBillboard(obj, true);
  571.  
  572. ObjRender_SetPosition(obj,X,Y,Z);
  573.  
  574. return obj;
  575. }
  576. function Shine1(X,Y,Z,Alp){
  577. let obj = ObjPrim_Create(OBJ_SPRITE_3D);
  578. ObjPrim_SetTexture(obj, CSD ~ "images/Shine1.png");
  579. Obj_SetRenderPriorityI(obj,29);
  580. ObjSprite3D_SetSourceDestRect(obj, 0, 0, 128, 128);
  581. ObjRender_SetScaleXYZ(obj, 2, 2, 0);
  582. ObjRender_SetZWrite(obj, true);
  583. ObjRender_SetBlendType(obj, BLEND_ADD_ARGB);
  584. ObjRender_SetAlpha(obj, Alp);
  585.  
  586. ObjSprite3D_SetBillboard(obj, true);
  587.  
  588. ObjRender_SetPosition(obj,X,Y,Z);
  589.  
  590. return obj;
  591. }
  592.  
  593. function wait(n){
  594. loop(n){
  595. yield;
  596. }
  597. }
  598. function rand_int(min, max){
  599. return round(rand(min, max))
  600. }
  601. function GetCenterX(){
  602. return GetStgFrameWidth() / 2;
  603. }
  604.  
  605. function GetCenterY(){
  606. return GetStgFrameHeight() / 2;
  607. }
  608. function MyStageID{
  609. return GetCommonData("Main Stage Script ID", 0);
  610. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement