possible mem leak fix

This commit is contained in:
2026-05-09 22:32:23 +02:00
parent bff8c7cfa6
commit 33165763de
3 changed files with 33 additions and 12 deletions

View File

@@ -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();
}
}

View File

@@ -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)
{

View File

@@ -648,6 +648,9 @@ killGungameHUD()
if(isDefined(player.line))
player.line destroy();
if(isDefined(player.crosshair))
player.crosshair destroy();
}
}