Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let GetCSD = GetCurrentScriptDirectory;
- let GetMD = GetModuleDirectory;
- let PlayerID = GetPlayerObjectID;
- let hitbox = ObjPrim_Create(OBJ_SPRITE_2D);
- let hitbox2 = ObjPrim_Create(OBJ_SPRITE_2D);
- let PlayerObj = ObjPrim_Create(OBJ_SPRITE_2D);
- let LeftKey = VK_LEFT;
- let RightKey = VK_RIGHT;
- let UpKey = VK_UP;
- let DownKey = VK_DOWN;
- let ShiftKey = VK_SLOWMOVE;
- let TotalParticleCount = 0; //Graze particles
- let EffectSprite = GetCSD ~ "effect.png";
- function GetDist(x1,y1,x2,y2){
- return ((x2-x1)^2+(y2-y1)^2)^0.5;
- }
- function GetAngle(x1,y1,x2,y2){
- return atan2(y2-y1,x2-x1);
- }
- task SE_Play(let path, let volume){
- let seobject = ObjSound_Create;
- ObjSound_Load(seobject,path);
- ObjSound_Play(seobject);
- ObjSound_SetVolumeRate(seobject,volume);
- }
- task Blink(obj){
- let frameInv = GetPlayerInvincibilityFrame();
- while(frameInv > 0){
- frameInv = GetPlayerInvincibilityFrame();
- ascent(i in 0..2){
- ObjRender_SetColor(obj,255*i,255*i,255);
- loop(2){yield;}
- }
- loop(1){yield;}
- }
- }
- task TexEffect(deX, deY, angX, deAlpha, deScale, TimeSpeed){ //GTBOT
- deScale = deScale*1.25;
- let obj = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
- ObjPrim_SetTexture(obj, EffectSprite);
- ObjRender_SetBlendType(obj, BLEND_ALPHA);
- Obj_SetRenderPriorityI(obj, 42);
- ObjSpriteList2D_SetSourceRect(obj, 0, 0, 32, 32);
- ObjSpriteList2D_SetDestCenter(obj);
- ObjRender_SetAngleXYZ(obj, 0, 0, angX);
- ObjRender_SetPosition(obj, deX, deY, 0);
- ObjRender_SetAlpha(obj, deAlpha);
- let scale = deScale;
- let randX = rand(-105, 105);
- let randY = rand(-105, 105);
- let ang2 = rand(0, 360);
- while(scale>0.01){
- scale += ((-0.2)/2)/TimeSpeed;
- deX += (randX/20)/TimeSpeed;
- deY += (randY/20)/TimeSpeed;
- angX += (randX/15)/TimeSpeed;
- ang2 += (randX/15)/TimeSpeed;
- ObjSpriteList2D_ClearVertexCount(obj);
- ObjSpriteList2D_SetSourceRect(obj, 0, 0, 32, 32);
- ObjSpriteList2D_SetDestCenter(obj);
- ObjSpriteList2D_AddVertex(obj);
- ObjRender_SetPosition(obj, deX, deY, 0);
- ObjRender_SetAngleXYZ(obj, ang2, angX, (ang2+angX)/2);
- ObjRender_SetScaleXYZ(obj, scale, scale, scale);
- ObjRender_SetAlpha(obj, deAlpha-scale*20);
- yield;
- }
- Obj_Delete(obj);
- }
- task RenderHitBox{
- let angle = 0;
- let scale = 0;
- ObjPrim_SetTexture(hitbox,HitboxSprite);
- Obj_SetRenderPriorityI(hitbox, 51);
- ObjRender_SetBlendType(hitbox,BLEND_ALPHA);
- ObjRender_SetAlpha(hitbox, 200);
- ObjSprite2D_SetSourceRect(hitbox,0,0,64,64);//69,507
- ObjSprite2D_SetDestRect(hitbox,-32,-32,32,32);
- ObjPrim_SetTexture(hitbox2,HitboxSprite);
- Obj_SetRenderPriorityI(hitbox2, 50);
- ObjRender_SetBlendType(hitbox2,BLEND_ALPHA);
- ObjRender_SetAlpha(hitbox2, 100);
- ObjSprite2D_SetSourceRect(hitbox2,0,0,64,64);//69,507
- ObjSprite2D_SetDestRect(hitbox2,-32,-32,32,32);
- while(!Obj_IsDeleted(PlayerObj)){
- if (GetVirtualKeyState(VK_SLOWMOVE) == KEY_PUSH){
- scale = 0;
- angle = 0;
- }
- if (GetVirtualKeyState(VK_SLOWMOVE) == KEY_PUSH || GetVirtualKeyState(VK_SLOWMOVE) == KEY_HOLD && scale < 100){
- scale += 15;
- }
- if (GetVirtualKeyState(VK_SLOWMOVE) == KEY_PULL || GetVirtualKeyState(VK_SLOWMOVE) == KEY_FREE && scale > 0){
- scale -= 15;
- }
- ObjRender_SetPosition(hitbox,GetPlayerX,GetPlayerY,0);
- ObjRender_SetAngleZ(hitbox,angle);
- ObjRender_SetScaleXYZ(hitbox,scale*0.01,scale*0.01,1);
- ObjRender_SetPosition(hitbox2,GetPlayerX,GetPlayerY,0);
- ObjRender_SetScaleXYZ(hitbox2,scale*0.01,scale*0.01,1);
- angle += 2;
- yield;
- }
- }
- task Revive(obj){
- SetPlayerSpell(3);
- SetPlayerInvincibilityFrame(180);
- SetForbidPlayerShot(false);
- SetForbidPlayerSpell(false);
- ObjRender_SetAlpha(hitbox, 255);
- ObjRender_SetAlpha(hitbox2, 255);
- }
- task Particle(deX, deY, angX, deAlpha, deScale, TimeSpeed){ //GTBOT.
- let obj = ObjPrim_Create(OBJ_SPRITE_2D);
- ObjRender_SetBlendType(obj, BLEND_ADD_RGB);
- Obj_SetRenderPriorityI(obj, 49);
- ObjPrim_SetTexture(obj, EffectSprite);
- ObjSprite2D_SetSourceRect(obj, 0, 0,32,32);
- ObjSprite2D_SetDestRect(obj, -rand(1,4), -rand(1,7.5), rand(1, 4), rand(1, 7.5));
- ObjRender_SetAngleXYZ(obj, 0, 0, angX);
- ObjRender_SetPosition(obj, deX, deY, 0);
- ObjRender_SetAlpha(obj, deAlpha);
- ObjRender_SetColor(obj, 155, 155, 155);
- let scale = deScale;
- let randX = rand(75, 350);
- let randY = rand(75, 350);
- TotalParticleCount++;
- while(Obj_IsDeleted(obj)==false){
- scale += (-0.05)/TimeSpeed;
- deX = deX+(randX/100/TimeSpeed)*cos(angX);
- deY = deY+(randX/100/TimeSpeed)*sin(angX);
- ObjRender_SetPosition(obj, deX, deY, 0);
- ObjRender_SetAngleXYZ(obj, 0, 0, angX+deX+deY+scale*45);
- ObjRender_SetScaleXYZ(obj, scale, scale, scale);
- ObjRender_SetAlpha(obj, deAlpha+scale*20);
- if(scale<0.01){Obj_Delete(obj)}
- yield;
- }
- TotalParticleCount--;
- Obj_Delete(obj);
- }
- function ObjPrim_SetDestCenter(obj,x1,y1,x2,y2)
- {
- ObjPrim_SetVertexPosition(obj, 0, -(x2-x1)/2, -(y2-y1)/2, -0);
- ObjPrim_SetVertexPosition(obj, 1, (x2-x1)/2, -(y2-y1)/2, -0);
- ObjPrim_SetVertexPosition(obj, 2, (x2-x1)/2, (y2-y1)/2, 0);
- ObjPrim_SetVertexPosition(obj, 3, -(x2-x1)/2, (y2-y1)/2, 0);
- ObjPrim_SetVertexUVT(obj, 0, x1, y1);
- ObjPrim_SetVertexUVT(obj, 1, x2, y1);
- ObjPrim_SetVertexUVT(obj, 2, x2, y2);
- ObjPrim_SetVertexUVT(obj, 3, x1, y2);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement