Fix wrong entities being removed.

This commit is contained in:
shavit 2018-02-02 10:27:40 +02:00
parent 8f51d4c964
commit d99548abd7

View File

@ -736,6 +736,14 @@ void KillZoneEntity(int index)
gB_InsideZoneID[i][index] = false; gB_InsideZoneID[i][index] = false;
} }
char[] sTargetname = new char[32];
GetEntPropString(entity, Prop_Data, "m_iName", sTargetname, 32);
if(StrContains(sTargetname, "shavit_zones_") == -1)
{
return;
}
UnhookEntity(entity); UnhookEntity(entity);
AcceptEntityInput(entity, "Kill"); AcceptEntityInput(entity, "Kill");
} }
@ -769,21 +777,17 @@ void UnloadZones(int zone)
{ {
gB_ZonesCreated = false; gB_ZonesCreated = false;
int iMaxEntities = GetMaxEntities();
char[] sClassname = new char[32];
char[] sTargetname = new char[32]; char[] sTargetname = new char[32];
int iEntity = INVALID_ENT_REFERENCE;
for(int i = (MaxClients + 1); i < iMaxEntities; i++) while((iEntity = FindEntityByClassname(iEntity, "trigger_multiple")) != INVALID_ENT_REFERENCE)
{ {
if(!IsValidEntity(i) GetEntPropString(iEntity, Prop_Data, "m_iName", sTargetname, 32);
|| !GetEntityClassname(i, sClassname, 32) || !StrEqual(sClassname, "trigger_multiple")
|| GetEntPropString(i, Prop_Data, "m_iName", sTargetname, 32) == 0 || StrContains(sTargetname, "shavit_zones_") == -1)
{
continue;
}
AcceptEntityInput(i, "Kill"); if(StrContains(sTargetname, "shavit_zones_") != -1)
{
AcceptEntityInput(iEntity, "Kill");
}
} }
} }