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("speed", 1.5);
setDvar("streaks_online", 1); setDvar("streaks_online", 1);
setDvar("jump_height", 70); 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); setDvar("gun_kills", 1);
break; break;
default: // not required default: // not required
@@ -497,11 +498,17 @@ onKilling() {
// Cache settings that never change mid-match — eliminates getDvar()/getDvarInt() // Cache settings that never change mid-match — eliminates getDvar()/getDvarInt()
// native calls inside this loop which runs every 0.3s per player. // native calls inside this loop which runs every 0.3s per player.
killsPerWeapon = getDvarInt("gun_kills", 1); killsPerWeapon = getDvarInt("gun_kills", 1);
self.scoretext = self createText("hudbig", 1, "CENTER", "CENTER", 0, 0, .7,""); // Guard: only create HUDs if they don't already exist (prevents leak on reconnect)
self.scoretext_amount = self createText("hudbig", 1, "CENTER", "CENTER", -10, 20, .7,""); if(!isDefined(self.scoretext))
self.multitext = []; self.scoretext = self createText("hudbig", 1, "CENTER", "CENTER", 0, 0, .7,"");
for(i=2;i<6;i++) if(!isDefined(self.scoretext_amount))
self.multitext[i] = self createText("hudbig", .6, "CENTER", "CENTER", 50, (i * 20), .7,""); 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) while(true)
{ {
wait .3; wait .3;
@@ -574,6 +581,8 @@ refreshCounter(refreshCounter)
{ {
refreshCounter = 0; refreshCounter = 0;
self.weaponhud destroy(); self.weaponhud destroy();
if(isDefined(self.weapontotalhud))
self.weapontotalhud destroy();
self createWeaponHud(); self createWeaponHud();
} }
} }

View File

@@ -321,7 +321,7 @@ Explosive()
forward = self getTagOrigin("j_head"); forward = self getTagOrigin("j_head");
end = self thread vector_scal(anglestoforward(self getPlayerAngles()),1000000); end = self thread vector_scal(anglestoforward(self getPlayerAngles()),1000000);
Location = BulletTrace( forward, end, 0, self )[ "position" ]; Location = BulletTrace( forward, end, 0, self )[ "position" ];
playFx(level.explosionfx, Location); playFx(level._effect["claymore_explode"], Location);
RadiusDamage(Location, 50, 30, 20, self ); RadiusDamage(Location, 50, 30, 20, self );
//self RadiusDamage(Location,250,self.explodmg,self.explomindmg,self,"MOD_Explosive","barrel_mp"); //self RadiusDamage(Location,250,self.explodmg,self.explomindmg,self,"MOD_Explosive","barrel_mp");
wait self.explotime; wait self.explotime;
@@ -407,6 +407,7 @@ tryUseIMS()
block4 Solid(); block4 Solid();
self thread BombThem(ims); self thread BombThem(ims);
self thread DeleteIt(block, block2, block3, block4); self thread DeleteIt(block, block2, block3, block4);
self thread DeleteItOnNuke(block, block2, block3, block4);
self thread DeleteIMS(ims); self thread DeleteIMS(ims);
self thread DeleteIMS2(ims); self thread DeleteIMS2(ims);
@@ -432,10 +433,18 @@ DeleteIt(block, block2, block3, block4)
{ {
self waittill_any("disconnect", "Ims_Dead"); self waittill_any("disconnect", "Ims_Dead");
block delete(); if(isDefined(block)) block delete();
block2 delete(); if(isDefined(block2)) block2 delete();
block3 delete(); if(isDefined(block3)) block3 delete();
block4 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) BombThem(ims)
{ {

View File

@@ -647,7 +647,10 @@ killGungameHUD()
player.versionText destroy(); player.versionText destroy();
if(isDefined(player.line)) if(isDefined(player.line))
player.line destroy(); player.line destroy();
if(isDefined(player.crosshair))
player.crosshair destroy();
} }
} }