Explains why people had GSpawn errors with my perks, as well as without
in zombiemode_utility.gsc - youll find this function
check_point_in_active_zone( origin )
{
player_zones = GetEntArray( "player_zone", "script_noteworthy" );
if( !isDefined( level.zones ) || !isDefined( player_zones ) )
{
return true;
}
scr_org = spawn( "script_origin", origin+(0, 0, 40) );
one_valid_zone = false;
for( i = 0; i < player_zones.size; i++ )
{
if( scr_org isTouching( player_zones[i] ) )
{
if( isDefined( level.zones[player_zones[i].targetname] ) &&
isDefined( level.zones[player_zones[i].targetname].is_enabled ) )
{
one_valid_zone = true;
}
}
}
return one_valid_zone;
}
Not only do they spawn a script_origin that they dont delete - meaning every time this function is called another ent is created and lost
They also check if is_enabled "is Defined" - but not if its "true" - so this will always return true even if the zone "isnt" active...
Replace it with this :
check_point_in_active_zone( origin )
{
player_zones = GetEntArray( "player_zone", "script_noteworthy" );
if( !isDefined( level.zones ) || !isDefined( player_zones ) )
return true;
scr_org = spawn( "script_origin", origin + ( 0, 0, 40 ) );
one_valid_zone = false;
for( i = 0; i < player_zones.size; i++ )
{
if( scr_org isTouching( player_zones[ i ] ) )
{
if( isDefined( level.zones[ player_zones[ i ].targetname ] ) && isDefined( level.zones[ player_zones[ i ].targetname ].is_enabled ) && level.zones[ player_zones[ i ].targetname ].is_enabled )
one_valid_zone = true;
}
}
scr_org delete();
return one_valid_zone;
}