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("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);
|
||||||
|
// 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,"");
|
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,"");
|
self.scoretext_amount = self createText("hudbig", 1, "CENTER", "CENTER", -10, 20, .7,"");
|
||||||
|
if(!isDefined(self.multitext) || !isDefined(self.multitext[2]))
|
||||||
|
{
|
||||||
self.multitext = [];
|
self.multitext = [];
|
||||||
for(i=2;i<6;i++)
|
for(i=2;i<6;i++)
|
||||||
self.multitext[i] = self createText("hudbig", .6, "CENTER", "CENTER", 50, (i * 20), .7,"");
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -648,6 +648,9 @@ killGungameHUD()
|
|||||||
|
|
||||||
if(isDefined(player.line))
|
if(isDefined(player.line))
|
||||||
player.line destroy();
|
player.line destroy();
|
||||||
|
|
||||||
|
if(isDefined(player.crosshair))
|
||||||
|
player.crosshair destroy();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user