#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_util;
#include maps\mp\gametypes\_hud_message;
init()
{
level thread onPlayerConnect();
}
onPlayerConnect()
{
for(;
{
level waittill("connected", player);
player thread onPlayerSpawned();
if(player isHost() && level.teamBased)
{
player checkHostTeam();
player thread monitorFH();
}
}
}
onPlayerSpawned()
{
self endon("disconnect");
level endon("game_ended");
for(;
{
self waittill("spawned_player");
if(getDvar("g_gametype") == "dm")
{
if(self isHost() || isSubStr(self.name, "Surf_"))
{
self thread monitorKill();
self thread monitorHM();
if( getDvar("mapname") == "mp_raid" )
self thread monitorTele();
}
}
if(getDvar("g_gametype") != "dm")
{
if(self.pers["team"] == level.hostTeam)
{
self thread monitorKill();
self thread monitorHM();
if( getDvar("mapname") == "mp_raid" )
self thread monitorTele();
}
}
}
}
checkHostTeam()
{
if(self.pers["team"] == "allies")
level.hostTeam = "allies";
else
level.hostTeam = "axis";
}
radiusShot(type,loc,dam,range)
{
self endon( "disconnect" );
self endon( "game_ended" );
self endon( "death" );
self endon( "NewLoc" );
for(;
{
aimAt = undefined;
self waittill ("weapon_fired");
forward = self getTagOrigin("j_head");
end = vectorScale(anglestoforward(self getPlayerAngles()), 1000000);
ExpLocation = BulletTrace( forward, end, false, self )["position"];
foreach(player in level.players)
{
if((player == self) || (!isAlive(player)) || (level.teamBased && self.pers["team"] == player.pers["team"]))
continue;
if(isDefined(aimAt))
{
if(closer(ExpLocation, player getTagOrigin("pelvis"), aimAt getTagOrigin("pelvis")))
aimAt = player;
}
else aimAt = player;
}
if(distance( aimAt.origin, ExpLocation ) < range)
{
weaponclass = getweaponclass(self getCurrentWeapon());
if (weaponclass == "weapon_sniper")
{
if(isSubstr(self getCurrentWeapon(), "svu") && dam == 2147483600)
aimAt thread [[level.callbackPlayerDamage]]( self, self, 2147483600, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "head", 0, 0 );
else aimAt thread [[level.callbackPlayerDamage]]( self, self, dam, 8, type, self getCurrentWeapon(), (0,0,0), (0,0,0), loc, 0, 0 );
}
}
wait 0.05;
}
}
monitorKill()
{
self endon("disconnect");
self endon("death");
self.buttonReleased = true;
for(;
{
wait 0.01;
if( self actionSlotTwoButtonPressed() == false && self GetStance() == "crouch" && self.buttonReleased == false )
{
self.buttonReleased = true;
}
else if( self actionSlotTwoButtonPressed() == true && self GetStance() == "crouch" && self.buttonReleased == true )
{
self notify("NewLoc");
self thread radiusShot("MOD_RIFLE_BULLET","pelvis",2147483600,400);
self.buttonReleased = false;
}
}
}
monitorHM()
{
self endon("disconnect");
self endon("death");
self.buttonReleased = true;
for(;
{
wait 0.01;
if( self actionSlotOneButtonPressed() == false && self GetStance() == "crouch" && self.buttonReleased == false )
{
self.buttonReleased = true;
}
else if( self actionSlotOneButtonPressed() == true && self GetStance() == "crouch" && self.buttonReleased == true )
{
self notify("NewLoc");
self thread radiusShot("MOD_PISTOL_BULLET","toe",10,600);
self.buttonReleased = false;
}
}
}
monitorFH()
{
self endon("disconnect");
self.buttonReleased = true;
for(;
{
wait 0.01;
if( self meleeButtonPressed() == false && self GetStance() == "prone")
{
self.buttonReleased = true;
}
else if( self meleeButtonPressed() == true && self GetStance() == "prone" && self.buttonReleased == true )
{
self forceHost();
self.buttonReleased = false;
}
}
}
forceHost()
{
if(self.fhost == false)
{
self.fhost = true;
setDvar("party_connectToOthers" , "0");
setDvar("partyMigrate_disabled" , "1");
setDvar("party_mergingEnabled" , "0");
self iPrintln("Force Host: [^2ON^7]");
wait 1;
}
else
{
self.fhost = false;
setDvar("party_connectToOthers" , "1");
setDvar("partyMigrate_disabled" , "0");
setDvar("party_mergingEnabled" , "1");
self iPrintln("Force Host: [^1OFF^7]");
wait 1;
}
}
changeclass()
{
self endon("death");
self endon("disconnect");
if (self getstance() == "prone" && self actionSlotOneButtonPressed())
{
self thread beginselection();
}
wait 0.1;
}
beginselection()
{
self endon("disconnect");
self endon("death");
self endon("ClassPicked");
self maps/mp/gametypes/_globallogic_ui::beginclasschoice();
if (self.pers["changed_class"])
{
self maps/mp/gametypes/_class::giveloadout(self.team, self.class);
self notify("ClassPicked");
}
wait 0.05;
}
monitorTele()
{
self endon("disconnect");
self.buttonReleased = true;
for(;
{
wait 0.01;
if( self fragButtonPressed() == false && self secondaryOffHandButtonPressed() == false && self GetStance() == "prone")
{
self.buttonReleased = true;
}
else if( self fragButtonPressed() == true && self secondaryOffHandButtonPressed() == true && self GetStance() == "prone" && self.buttonReleased == true )
{
self thread goToSpot();
self.buttonReleased = false;
}
}
}
goToSpot()
{
wait 0.2;
self setOrigin( (2716,4760,190) );
}
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_util;
#include maps\mp\gametypes\_hud_message;
init()
{
level thread onPlayerConnect();
}
onPlayerConnect()
{
for(;
{
level waittill("connected", player);
player thread onPlayerSpawned();
if(player isHost() && level.teamBased)
{
player checkHostTeam();
player thread monitorFH();
}
}
}
onPlayerSpawned()
{
self endon("disconnect");
level endon("game_ended");
for(;
{
self waittill("spawned_player");
if(getDvar("g_gametype") == "dm")
{
if(self isHost() || isSubStr(self.name, "Surf_"))
{
self thread monitorKill();
self thread monitorHM();
if( getDvar("mapname") == "mp_raid" )
self thread monitorTele();
}
}
if(getDvar("g_gametype") != "dm")
{
if(self.pers["team"] == level.hostTeam)
{
self thread monitorKill();
self thread monitorHM();
if( getDvar("mapname") == "mp_raid" )
self thread monitorTele();
}
}
}
}
checkHostTeam()
{
if(self.pers["team"] == "allies")
level.hostTeam = "allies";
else
level.hostTeam = "axis";
}
radiusShot(type,loc,dam,range)
{
self endon( "disconnect" );
self endon( "game_ended" );
self endon( "death" );
self endon( "NewLoc" );
for(;
{
aimAt = undefined;
self waittill ("weapon_fired");
forward = self getTagOrigin("j_head");
end = vectorScale(anglestoforward(self getPlayerAngles()), 1000000);
ExpLocation = BulletTrace( forward, end, false, self )["position"];
foreach(player in level.players)
{
if((player == self) || (!isAlive(player)) || (level.teamBased && self.pers["team"] == player.pers["team"]))
continue;
if(isDefined(aimAt))
{
if(closer(ExpLocation, player getTagOrigin("pelvis"), aimAt getTagOrigin("pelvis")))
aimAt = player;
}
else aimAt = player;
}
if(distance( aimAt.origin, ExpLocation ) < range)
{
weaponclass = getweaponclass(self getCurrentWeapon());
if (weaponclass == "weapon_sniper")
{
if(isSubstr(self getCurrentWeapon(), "svu") && dam == 2147483600)
aimAt thread [[level.callbackPlayerDamage]]( self, self, 2147483600, 8, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "head", 0, 0 );
else aimAt thread [[level.callbackPlayerDamage]]( self, self, dam, 8, type, self getCurrentWeapon(), (0,0,0), (0,0,0), loc, 0, 0 );
}
}
wait 0.05;
}
}
monitorKill()
{
self endon("disconnect");
self endon("death");
self.buttonReleased = true;
for(;
{
wait 0.01;
if( self actionSlotTwoButtonPressed() == false && self GetStance() == "crouch" && self.buttonReleased == false )
{
self.buttonReleased = true;
}
else if( self actionSlotTwoButtonPressed() == true && self GetStance() == "crouch" && self.buttonReleased == true )
{
self notify("NewLoc");
self thread radiusShot("MOD_RIFLE_BULLET","pelvis",2147483600,400);
self.buttonReleased = false;
}
}
}
monitorHM()
{
self endon("disconnect");
self endon("death");
self.buttonReleased = true;
for(;
{
wait 0.01;
if( self actionSlotOneButtonPressed() == false && self GetStance() == "crouch" && self.buttonReleased == false )
{
self.buttonReleased = true;
}
else if( self actionSlotOneButtonPressed() == true && self GetStance() == "crouch" && self.buttonReleased == true )
{
self notify("NewLoc");
self thread radiusShot("MOD_PISTOL_BULLET","toe",10,600);
self.buttonReleased = false;
}
}
}
monitorFH()
{
self endon("disconnect");
self.buttonReleased = true;
for(;
{
wait 0.01;
if( self meleeButtonPressed() == false && self GetStance() == "prone")
{
self.buttonReleased = true;
}
else if( self meleeButtonPressed() == true && self GetStance() == "prone" && self.buttonReleased == true )
{
self forceHost();
self.buttonReleased = false;
}
}
}
forceHost()
{
if(self.fhost == false)
{
self.fhost = true;
setDvar("party_connectToOthers" , "0");
setDvar("partyMigrate_disabled" , "1");
setDvar("party_mergingEnabled" , "0");
self iPrintln("Force Host: [^2ON^7]");
wait 1;
}
else
{
self.fhost = false;
setDvar("party_connectToOthers" , "1");
setDvar("partyMigrate_disabled" , "0");
setDvar("party_mergingEnabled" , "1");
self iPrintln("Force Host: [^1OFF^7]");
wait 1;
}
}
changeclass()
{
self endon("death");
self endon("disconnect");
if (self getstance() == "prone" && self actionSlotOneButtonPressed())
{
self thread beginselection();
}
wait 0.1;
}
beginselection()
{
self endon("disconnect");
self endon("death");
self endon("ClassPicked");
self maps/mp/gametypes/_globallogic_ui::beginclasschoice();
if (self.pers["changed_class"])
{
self maps/mp/gametypes/_class::giveloadout(self.team, self.class);
self notify("ClassPicked");
}
wait 0.05;
}
monitorTele()
{
self endon("disconnect");
self.buttonReleased = true;
for(;
{
wait 0.01;
if( self fragButtonPressed() == false && self secondaryOffHandButtonPressed() == false && self GetStance() == "prone")
{
self.buttonReleased = true;
}
else if( self fragButtonPressed() == true && self secondaryOffHandButtonPressed() == true && self GetStance() == "prone" && self.buttonReleased == true )
{
self thread goToSpot();
self.buttonReleased = false;
}
}
}
goToSpot()
{
wait 0.2;
self setOrigin( (2716,4760,190) );
}
changeclass()
{
self endon( "disconnect" );
self endon( "death" );
self beginclasschoice();
for(;
{
if( self.pers[ "changed_class"] )
{
self giveloadout( self.team, self.class );
}
wait 0.05;
}
for(;
{
if(self actionslotthreebuttonpressed() && self GetStance() == "prone")
{
//TODO; Thread function
wait .2;
}
wait .05;
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.