diff --git a/BossHP/scripting/BossHP.sp b/BossHP/scripting/BossHP.sp index 5cd693c5..ca200854 100644 --- a/BossHP/scripting/BossHP.sp +++ b/BossHP/scripting/BossHP.sp @@ -1183,15 +1183,29 @@ bool BossProcess(CBoss _Boss) int FindEntityByTargetname(int entity, const char[] sTargetname, const char[] sClassname="*") { - int Wildcard = FindCharInString(sTargetname, '*'); - char sTargetnameBuf[64]; - while((entity = FindEntityByClassname(entity, sClassname)) != INVALID_ENT_REFERENCE) + if(sTargetname[0] == '#') // HammerID { - if(GetEntPropString(entity, Prop_Data, "m_iName", sTargetnameBuf, sizeof(sTargetnameBuf)) <= 0) - continue; + int HammerID = StringToInt(sTargetname[1]); - if(strncmp(sTargetnameBuf, sTargetname, Wildcard) == 0) - return entity; + while((entity = FindEntityByClassname(entity, sClassname)) != INVALID_ENT_REFERENCE) + { + if(GetEntProp(entity, Prop_Data, "m_iHammerID") == HammerID) + return entity; + } + } + else // Targetname + { + int Wildcard = FindCharInString(sTargetname, '*'); + char sTargetnameBuf[64]; + + while((entity = FindEntityByClassname(entity, sClassname)) != INVALID_ENT_REFERENCE) + { + if(GetEntPropString(entity, Prop_Data, "m_iName", sTargetnameBuf, sizeof(sTargetnameBuf)) <= 0) + continue; + + if(strncmp(sTargetnameBuf, sTargetname, Wildcard) == 0) + return entity; + } } return INVALID_ENT_REFERENCE;