Advertisement
Guest User

Untitled

a guest
May 14th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.18 KB | None | 0 0
  1. let GetCSD = GetCurrentScriptDirectory;
  2. let GetMD = GetModuleDirectory;
  3. let PlayerID = GetPlayerObjectID;
  4. let hitbox = ObjPrim_Create(OBJ_SPRITE_2D);
  5. let hitbox2 = ObjPrim_Create(OBJ_SPRITE_2D);
  6. let PlayerObj = ObjPrim_Create(OBJ_SPRITE_2D);
  7. let LeftKey = VK_LEFT;
  8. let RightKey = VK_RIGHT;
  9. let UpKey = VK_UP;
  10. let DownKey = VK_DOWN;
  11. let ShiftKey = VK_SLOWMOVE;
  12. let TotalParticleCount = 0; //Graze particles
  13. let EffectSprite = GetCSD ~ "effect.png";
  14.  
  15. function GetDist(x1,y1,x2,y2){
  16. return ((x2-x1)^2+(y2-y1)^2)^0.5;
  17. }
  18.  
  19. function GetAngle(x1,y1,x2,y2){
  20. return atan2(y2-y1,x2-x1);
  21. }
  22.  
  23. task SE_Play(let path, let volume){
  24. let seobject = ObjSound_Create;
  25. ObjSound_Load(seobject,path);
  26. ObjSound_Play(seobject);
  27. ObjSound_SetVolumeRate(seobject,volume);
  28. }
  29.  
  30. task Blink(obj){
  31. let frameInv = GetPlayerInvincibilityFrame();
  32. while(frameInv > 0){
  33. frameInv = GetPlayerInvincibilityFrame();
  34. ascent(i in 0..2){
  35. ObjRender_SetColor(obj,255*i,255*i,255);
  36. loop(2){yield;}
  37. }
  38. loop(1){yield;}
  39. }
  40. }
  41.  
  42. task TexEffect(deX, deY, angX, deAlpha, deScale, TimeSpeed){ //GTBOT
  43. deScale = deScale*1.25;
  44. let obj = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
  45. ObjPrim_SetTexture(obj, EffectSprite);
  46. ObjRender_SetBlendType(obj, BLEND_ALPHA);
  47. Obj_SetRenderPriorityI(obj, 42);
  48. ObjSpriteList2D_SetSourceRect(obj, 0, 0, 32, 32);
  49. ObjSpriteList2D_SetDestCenter(obj);
  50. ObjRender_SetAngleXYZ(obj, 0, 0, angX);
  51. ObjRender_SetPosition(obj, deX, deY, 0);
  52. ObjRender_SetAlpha(obj, deAlpha);
  53.  
  54. let scale = deScale;
  55. let randX = rand(-105, 105);
  56. let randY = rand(-105, 105);
  57. let ang2 = rand(0, 360);
  58.  
  59. while(scale>0.01){
  60. scale += ((-0.2)/2)/TimeSpeed;
  61. deX += (randX/20)/TimeSpeed;
  62. deY += (randY/20)/TimeSpeed;
  63. angX += (randX/15)/TimeSpeed;
  64. ang2 += (randX/15)/TimeSpeed;
  65. ObjSpriteList2D_ClearVertexCount(obj);
  66. ObjSpriteList2D_SetSourceRect(obj, 0, 0, 32, 32);
  67. ObjSpriteList2D_SetDestCenter(obj);
  68. ObjSpriteList2D_AddVertex(obj);
  69.  
  70. ObjRender_SetPosition(obj, deX, deY, 0);
  71. ObjRender_SetAngleXYZ(obj, ang2, angX, (ang2+angX)/2);
  72. ObjRender_SetScaleXYZ(obj, scale, scale, scale);
  73. ObjRender_SetAlpha(obj, deAlpha-scale*20);
  74. yield;
  75. }
  76. Obj_Delete(obj);
  77. }
  78.  
  79.  
  80. task RenderHitBox{
  81. let angle = 0;
  82. let scale = 0;
  83. ObjPrim_SetTexture(hitbox,HitboxSprite);
  84. Obj_SetRenderPriorityI(hitbox, 51);
  85. ObjRender_SetBlendType(hitbox,BLEND_ALPHA);
  86. ObjRender_SetAlpha(hitbox, 200);
  87. ObjSprite2D_SetSourceRect(hitbox,0,0,64,64);//69,507
  88. ObjSprite2D_SetDestRect(hitbox,-32,-32,32,32);
  89.  
  90. ObjPrim_SetTexture(hitbox2,HitboxSprite);
  91. Obj_SetRenderPriorityI(hitbox2, 50);
  92. ObjRender_SetBlendType(hitbox2,BLEND_ALPHA);
  93. ObjRender_SetAlpha(hitbox2, 100);
  94. ObjSprite2D_SetSourceRect(hitbox2,0,0,64,64);//69,507
  95. ObjSprite2D_SetDestRect(hitbox2,-32,-32,32,32);
  96. while(!Obj_IsDeleted(PlayerObj)){
  97. if (GetVirtualKeyState(VK_SLOWMOVE) == KEY_PUSH){
  98. scale = 0;
  99. angle = 0;
  100. }
  101. if (GetVirtualKeyState(VK_SLOWMOVE) == KEY_PUSH || GetVirtualKeyState(VK_SLOWMOVE) == KEY_HOLD && scale < 100){
  102. scale += 15;
  103. }
  104. if (GetVirtualKeyState(VK_SLOWMOVE) == KEY_PULL || GetVirtualKeyState(VK_SLOWMOVE) == KEY_FREE && scale > 0){
  105. scale -= 15;
  106. }
  107. ObjRender_SetPosition(hitbox,GetPlayerX,GetPlayerY,0);
  108. ObjRender_SetAngleZ(hitbox,angle);
  109. ObjRender_SetScaleXYZ(hitbox,scale*0.01,scale*0.01,1);
  110.  
  111. ObjRender_SetPosition(hitbox2,GetPlayerX,GetPlayerY,0);
  112. ObjRender_SetScaleXYZ(hitbox2,scale*0.01,scale*0.01,1);
  113. angle += 2;
  114. yield;
  115. }
  116. }
  117. task Revive(obj){
  118. SetPlayerSpell(3);
  119. SetPlayerInvincibilityFrame(180);
  120. SetForbidPlayerShot(false);
  121. SetForbidPlayerSpell(false);
  122. ObjRender_SetAlpha(hitbox, 255);
  123. ObjRender_SetAlpha(hitbox2, 255);
  124. }
  125.  
  126. task Particle(deX, deY, angX, deAlpha, deScale, TimeSpeed){ //GTBOT.
  127.  
  128. let obj = ObjPrim_Create(OBJ_SPRITE_2D);
  129. ObjRender_SetBlendType(obj, BLEND_ADD_RGB);
  130. Obj_SetRenderPriorityI(obj, 49);
  131. ObjPrim_SetTexture(obj, EffectSprite);
  132. ObjSprite2D_SetSourceRect(obj, 0, 0,32,32);
  133. ObjSprite2D_SetDestRect(obj, -rand(1,4), -rand(1,7.5), rand(1, 4), rand(1, 7.5));
  134. ObjRender_SetAngleXYZ(obj, 0, 0, angX);
  135. ObjRender_SetPosition(obj, deX, deY, 0);
  136. ObjRender_SetAlpha(obj, deAlpha);
  137. ObjRender_SetColor(obj, 155, 155, 155);
  138.  
  139. let scale = deScale;
  140. let randX = rand(75, 350);
  141. let randY = rand(75, 350);
  142.  
  143. TotalParticleCount++;
  144. while(Obj_IsDeleted(obj)==false){
  145. scale += (-0.05)/TimeSpeed;
  146. deX = deX+(randX/100/TimeSpeed)*cos(angX);
  147. deY = deY+(randX/100/TimeSpeed)*sin(angX);
  148. ObjRender_SetPosition(obj, deX, deY, 0);
  149. ObjRender_SetAngleXYZ(obj, 0, 0, angX+deX+deY+scale*45);
  150. ObjRender_SetScaleXYZ(obj, scale, scale, scale);
  151. ObjRender_SetAlpha(obj, deAlpha+scale*20);
  152. if(scale<0.01){Obj_Delete(obj)}
  153. yield;
  154. }
  155. TotalParticleCount--;
  156. Obj_Delete(obj);
  157. }
  158.  
  159. function ObjPrim_SetDestCenter(obj,x1,y1,x2,y2)
  160. {
  161. ObjPrim_SetVertexPosition(obj, 0, -(x2-x1)/2, -(y2-y1)/2, -0);
  162. ObjPrim_SetVertexPosition(obj, 1, (x2-x1)/2, -(y2-y1)/2, -0);
  163. ObjPrim_SetVertexPosition(obj, 2, (x2-x1)/2, (y2-y1)/2, 0);
  164. ObjPrim_SetVertexPosition(obj, 3, -(x2-x1)/2, (y2-y1)/2, 0);
  165.  
  166. ObjPrim_SetVertexUVT(obj, 0, x1, y1);
  167. ObjPrim_SetVertexUVT(obj, 1, x2, y1);
  168. ObjPrim_SetVertexUVT(obj, 2, x2, y2);
  169. ObjPrim_SetVertexUVT(obj, 3, x1, y2);
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement