self thread gersh();
gersh()
{
level.raygunFX["impact"] = loadFX( "misc/flare_ambient_green" );
self.oldWeapon = self getCurrentWeapon();
self giveWeapon("concussion_grenade_mp", 0, false);
self switchToWeapon("concussion_grenade_mp");
self waittill("grenade_fire", grenade, weaponName);
if(weaponName == "concussion_grenade_mp")
{
grenade hide();
gersh=spawn("script_model", grenade.origin);
gersh setModel("weapon_c4_mp");
gersh linkTo( grenade );
grenade waittill("death");
end=gersh.origin;
foreach(p in level.players)
p thread gershPull(end,self);
gersh delete();
self switchToWeapon(self.oldWeapon);
}
}
gershPull(loc,initiator)
{
self endon("survive");
self iPrintlnBold("^6Gersch Device Activated!");
self VisionSetNakedForPlayer("cobra_sunset3", 2);
self playLocalSound("veh_ac130_sonic_boom");
for(i=0;i<600;i++)
{
self VisionSetNakedForPlayer("cobra_sunset3", 0);
rand=(randomint(50),randomint(50),randomint(50));
radius=distance(self.origin,loc);
if(radius > 150)
{
if(level.teambased)
{
if(self.pers["team"] != initiator.pers["team"])
{
angles = VectorToAngles( loc - self.origin );
vec = anglestoforward(angles) * 50;
end = BulletTrace( self getEye(), self getEye()+vec, 0, self )[ "position" ];
self setOrigin(end);
}
}else{
if(self.name != initiator.name)
{
angles = VectorToAngles( loc - self.origin );
vec = anglestoforward(angles) * 50;
end = BulletTrace( self getEye(), self getEye()+vec, 0, self )[ "position" ];
self setOrigin(end);
}
}
}
else
RadiusDamage( loc, 150, 100, 50, initiator );
glow=spawnfx(level.raygunFX["impact"],loc + rand);
triggerfx(glow);
wait 0.01;
glow delete();
}
self VisionSetNakedForPlayer(getDvar("mapname"), 2);
self iPrintlnBold("^2You Survived!");
self notify("survive");
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.