Search this:
for (int i = 0; i < _countof(strMapListGlobal); i++)
{
if (strMapListGlobal == stringName)
{
for (int i = 0; i < _countof(pListGlobal); i++)
{
if (rVictim.GetRace() == pListGlobal || 0 <= rVictim.GetRace() && rVictim.GetRace() <= 7 )
return FALSE;
}
}
}
Replace with this:
for (int i = 0; i < _countof(strMapListGlobal); i++)
{
if (strMapListGlobal[i] == stringName)
{
for (int i = 0; i < _countof(pListGlobal); i++)
{
if (rVictim.GetRace() == pListGlobal[i])
return FALSE;
}
}
}
It will working fine, but I think is no need to make a condition for every type of npc with vnums. I suggest you to use condition with IsNPC instead of one by one checking, because it will apply for all of your npcs includes shops, pets, and of course mounts.