Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- task MainThread
- {
- yield;
- wait(50);
- let r=1;
- if(round(rand(0,1))){r=-r;}
- loop
- {
- let p=GetAngleToPlayer(objEnemy)+45;
- loop(2)
- {
- let way=4;
- ascent(a in 0..way)
- {
- SetShot(ObjMove_GetX(objEnemy),ObjMove_GetY(objEnemy),p+(360/way)*a,r);
- }
- wait(10);
- r=-r;
- }
- wait(120);
- let wt=160;
- wait(wt);
- r=-r;
- }
- task SetShot(let sx,let sy,let rot,let r)
- {
- let bx=sx;
- let by=sy;
- let leng=0;
- let state=0;
- Eff;
- Shot;
- let rp=3;
- while(leng<600)
- {
- rot+=rp*r;
- leng+=3;
- rp*=0.98;
- yield;
- }
- state=-1;
- task Shot
- {
- wait(10);
- let g=0;
- while(state!=-1)
- {
- loop(3)
- {
- Set(g);
- wait(1);
- }
- wait(4);
- g++;
- }
- task Set(let g)
- {
- let x=sx;
- let y=sy;
- let p=rot+g*60;
- wait(10);
- let speed=2;
- let angle=p;
- let gra=5+(2*g)%4;
- let delay=0;
- while(angle<=p+180+1)
- {
- CreateShotA2(x,y,0,angle,speed/200,speed,gra,delay);
- angle+=180;
- }
- }
- }
- task Eff
- {
- let g=0;
- let st=0;
- while(state!=-1)
- {
- sx=bx+leng*cos(rot);
- sy=by+leng*sin(rot);
- let size=64;
- if(st<=50){
- let gra=51;//GREEN01;
- let del=30;
- SetLaserEffect(sx-(size/2)*cos(rot),sy-(size/2)*sin(rot),size,size,rot,gra,del);
- }
- if(st>=50){
- let gra=74;//AQUA01;
- let del=30;
- SetLaserEffect(sx-(size/2)*cos(rot),sy-(size/2)*sin(rot),size,size,rot,gra,del);
- }
- if(st==100){st=0;}
- st++;
- g++;
- yield;
- }
- }
- }
- }
- function wait(let frames){
- loop(frames){yield;}
- }
- task SetLaserEffect(
- let x,
- let y,
- let leng,
- let width,
- let angle,
- let gra,
- let del
- ){
- let count=0;
- let l=leng;
- let w=width;
- let alpha=0;
- let obj=ObjShot_Create(OBJ_CURVE_LASER);
- ObjMove_SetX(obj,x);
- ObjMove_SetY(obj,y);
- ObjMove_SetAngle(obj,angle);
- ObjRender_SetAlpha(obj,0);
- ObjLaser_SetLength(obj,leng);
- ObjLaser_SetRenderWidth(obj,width);
- ObjShot_SetGraphic(obj,gra);
- ObjShot_SetDelay(obj,0);
- ObjShot_SetAutoDelete(obj,false);
- ObjShot_Regist(obj);
- while( !Obj_IsDeleted(obj))
- {
- ObjRender_SetAlpha(obj,alpha);
- ObjLaser_SetLength(obj,leng);
- ObjLaser_SetRenderWidth(obj,width);
- leng-=l/(del);
- width-=w/(del);
- if(count>=5&&alpha<200){alpha+=40;}
- if(count<4||width<=w/2){ObjShot_SetIntersectionEnable(obj,false);}
- else{ObjShot_SetIntersectionEnable(obj,true);}
- if(count==del)
- {
- ObjShot_FadeDelete(obj);
- }
- count++;
- yield;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment