#define ZONES_MODEL "models/error.mdl"
void SpawnZone(float m_vecMins[3], float m_vecMaxs[3])
{
int zone = CreateEntityByName("func_breakable");
if(zone == -1)
{
LogError("Error! Zone not created!");
return;
}
DispatchKeyValue(zone, "spawnflags", "2048");
DispatchKeyValue(zone, "StartDisabled", "0");
DispatchKeyValue(zone, "propdata", "15");
DispatchKeyValue(zone, "health", "10000");
DispatchKeyValue(zone, "material", "5");
DispatchKeyValue(zone, "disableshadows", "1");
DispatchKeyValue(zone, "targetname", "brush");
DispatchKeyValue(zone, "nodamageforces", "1");
DispatchSpawn(zone);
ActivateEntity(zone);
float middle[3];
GetMiddleOfABox(m_vecMins, m_vecMaxs, middle);
TeleportEntity(zone, middle, NULL_VECTOR, NULL_VECTOR);
SetEntityModel(zone, ZONES_MODEL);
SetEntityMoveType(zone, MOVETYPE_NONE);
m_vecMins[0] -= middle[0];
if (m_vecMins[0] > 0.0)
m_vecMins[0] *= -1.0;
m_vecMins[1] -= middle[1];
if (m_vecMins[1] > 0.0)
m_vecMins[1] *= -1.0;
m_vecMins[2] -= middle[2];
if (m_vecMins[2] > 0.0)
m_vecMins[2] *= -1.0;
m_vecMaxs[0] -= middle[0];
if (m_vecMaxs[0] < 0.0)
m_vecMaxs[0] *= -1.0;
m_vecMaxs[1] -= middle[1];
if (m_vecMaxs[1] < 0.0)
m_vecMaxs[1] *= -1.0;
m_vecMaxs[2] -= middle[2];
if (m_vecMaxs[2] < 0.0)
m_vecMaxs[2] *= -1.0;
SetEntPropVector(zone, Prop_Send, "m_vecMins", m_vecMins);
SetEntPropVector(zone, Prop_Send, "m_vecMaxs", m_vecMaxs);
SetEntProp(zone, Prop_Send, "m_usSolidFlags", 0x0010);
SetEntProp(zone, Prop_Data, "m_nSolidType", 2);
SetEntProp(zone, Prop_Send, "m_CollisionGroup", 6);
SetEntProp(zone, Prop_Data, "m_takedamage", 0);
int m_fEffects = GetEntProp(zone, Prop_Send, "m_fEffects");
m_fEffects |= 0x020;
SetEntProp(zone, Prop_Send, "m_fEffects", m_fEffects);
AcceptEntityInput(zone, "Enable");
}