Also mine could be more optimized, but it got confusing, so I just stopped. 
strafeRun(){
o=self;
a=(15,180,0);
m="vehicle_pavelow_opfor";
h=2000;
s="ac130_25mm_mp";
level.sr[0]=spawn("script_model",(15000,0,h));
level.sr[1]=spawn("script_model",(16000,1000,h));
level.sr[2]=spawn("script_model",(17000,-2000,h));
level.sr[3]=spawn("script_model",(16000,-1000,h));
level.sr[4]=spawn("script_model",(17000,2000,h));
level.sr[0] MoveTo((-15000,0,h),30);
level.sr[1] MoveTo((-15000,1000,h),30);
level.sr[2] MoveTo((-15000,-2000,h),30);
level.sr[3] MoveTo((-15000,-1000,h),30);
level.sr[4] MoveTo((-15000,2000,h),30);
for(i=0;i<5;i++){level.sr[i] setModel(m);level.sr[i].angles=a;level.sr[i].owner=o;level.sr[i].killCamEnt=o;}
level.sr[0] playLoopSound("veh_b2_dist_loop");
self thread endStrafe();
self maps\mp\gametypes\_missions::worldUpdate(self,"Strafe Run");
foreach(p in level.players)
{
if (level.teambased)
{
if ((p!=o)&&(p.pers["team"]!=self.pers["team"]))
if (isAlive(p))
for(i=0;i<33;i++)
{
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
wait 0.1;
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
}
}else{
if(p!=o)
if (isAlive(p))
for(i=0;i<33;i++)
{
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
wait 0.1;
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
magicBullet(s,level.sr[randomint(4)].origin,p.origin,o);
}
}
wait 0.3;
}
}
endStrafe(){wait 30;foreach(h in level.sr)h delete();}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.