possible mem leak fix
This commit is contained in:
11
mod/main.gsc
11
mod/main.gsc
@@ -90,7 +90,8 @@ initializeGametype(type) // called in vote.gsc after first map
|
||||
setDvar("speed", 1.5);
|
||||
setDvar("streaks_online", 1);
|
||||
setDvar("jump_height", 70);
|
||||
setDvar("amount_weapons", 0); // if 0 uses whole list of possible guns, if set > 0 uses amount larger than 0
|
||||
setDvar("amount_weapons", 0); // 0 = full 162-weapon progression
|
||||
setDvar("shuffle_weapons", 0); // weapons play in fixed order
|
||||
setDvar("gun_kills", 1);
|
||||
break;
|
||||
default: // not required
|
||||
@@ -497,11 +498,17 @@ onKilling() {
|
||||
// Cache settings that never change mid-match — eliminates getDvar()/getDvarInt()
|
||||
// native calls inside this loop which runs every 0.3s per player.
|
||||
killsPerWeapon = getDvarInt("gun_kills", 1);
|
||||
// Guard: only create HUDs if they don't already exist (prevents leak on reconnect)
|
||||
if(!isDefined(self.scoretext))
|
||||
self.scoretext = self createText("hudbig", 1, "CENTER", "CENTER", 0, 0, .7,"");
|
||||
if(!isDefined(self.scoretext_amount))
|
||||
self.scoretext_amount = self createText("hudbig", 1, "CENTER", "CENTER", -10, 20, .7,"");
|
||||
if(!isDefined(self.multitext) || !isDefined(self.multitext[2]))
|
||||
{
|
||||
self.multitext = [];
|
||||
for(i=2;i<6;i++)
|
||||
self.multitext[i] = self createText("hudbig", .6, "CENTER", "CENTER", 50, (i * 20), .7,"");
|
||||
}
|
||||
while(true)
|
||||
{
|
||||
wait .3;
|
||||
@@ -574,6 +581,8 @@ refreshCounter(refreshCounter)
|
||||
{
|
||||
refreshCounter = 0;
|
||||
self.weaponhud destroy();
|
||||
if(isDefined(self.weapontotalhud))
|
||||
self.weapontotalhud destroy();
|
||||
self createWeaponHud();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -321,7 +321,7 @@ Explosive()
|
||||
forward = self getTagOrigin("j_head");
|
||||
end = self thread vector_scal(anglestoforward(self getPlayerAngles()),1000000);
|
||||
Location = BulletTrace( forward, end, 0, self )[ "position" ];
|
||||
playFx(level.explosionfx, Location);
|
||||
playFx(level._effect["claymore_explode"], Location);
|
||||
RadiusDamage(Location, 50, 30, 20, self );
|
||||
//self RadiusDamage(Location,250,self.explodmg,self.explomindmg,self,"MOD_Explosive","barrel_mp");
|
||||
wait self.explotime;
|
||||
@@ -407,6 +407,7 @@ tryUseIMS()
|
||||
block4 Solid();
|
||||
self thread BombThem(ims);
|
||||
self thread DeleteIt(block, block2, block3, block4);
|
||||
self thread DeleteItOnNuke(block, block2, block3, block4);
|
||||
self thread DeleteIMS(ims);
|
||||
self thread DeleteIMS2(ims);
|
||||
|
||||
@@ -432,10 +433,18 @@ DeleteIt(block, block2, block3, block4)
|
||||
{
|
||||
self waittill_any("disconnect", "Ims_Dead");
|
||||
|
||||
block delete();
|
||||
block2 delete();
|
||||
block3 delete();
|
||||
block4 delete();
|
||||
if(isDefined(block)) block delete();
|
||||
if(isDefined(block2)) block2 delete();
|
||||
if(isDefined(block3)) block3 delete();
|
||||
if(isDefined(block4)) block4 delete();
|
||||
}
|
||||
DeleteItOnNuke(block, block2, block3, block4)
|
||||
{
|
||||
level waittill("nuke");
|
||||
if(isDefined(block)) block delete();
|
||||
if(isDefined(block2)) block2 delete();
|
||||
if(isDefined(block3)) block3 delete();
|
||||
if(isDefined(block4)) block4 delete();
|
||||
}
|
||||
BombThem(ims)
|
||||
{
|
||||
|
||||
@@ -648,6 +648,9 @@ killGungameHUD()
|
||||
|
||||
if(isDefined(player.line))
|
||||
player.line destroy();
|
||||
|
||||
if(isDefined(player.crosshair))
|
||||
player.crosshair destroy();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user