Quote:
Originally Posted by hornet
What's to say that your loop won't find an entity that isn't a player?
|
Ty
PHP Code:
#include <amxmodx>
#include <engine>
#include <cstrike>
#include <hamsandwich>
public plugin_init()
{
register_plugin("test", "1", "didoWEE");
RegisterHam(Ham_Killed, "player", "HookKill", 1);
}
public HookKill(victim, killer)
{
if(!is_user_connected(killer)) return HAM_IGNORED;
// if(!is_user_connected(victim)) return HAM_IGNORED;
// Maybe you are right ...
new CsTeams:team = cs_get_user_team(victim);
new Float:VecFlVictimOrigin[3];
entity_get_vector(victim, EV_VEC_origin, VecFlVictimOrigin);
new id = -1;
new Float:VecFlTeammateOrigin[3];
while((id = find_ent_in_sphere(id, VecFlVictimOrigin, 72.0)) != 0)
{
// if(!is_user_connected(id)) continue;
if(!is_user_alive(id)) continue; // won't give you errors if is_user_alive checks is_user_connected
if(cs_get_user_team(id) != team) continue;
entity_get_vector(id, EV_VEC_origin, VecFlTeammateOrigin);
if(VecFlVictimOrigin[0] - VecFlTeammateOrigin[0] == 16.0
|| VecFlTeammateOrigin[0] - VecFlVictimOrigin[0] == 16.0
|| VecFlVictimOrigin[1] - VecFlTeammateOrigin[1] == 16.0
|| VecFlTeammateOrigin[1] - VecFlVictimOrigin[1] == 16.0
|| VecFlVictimOrigin[2] - VecFlTeammateOrigin[2] == 72.0
|| VecFlTeammateOrigin[2] - VecFlVictimOrigin[2] == 72.0
|| VecFlVictimOrigin[2] - VecFlTeammateOrigin[2] == 54.0
|| VecFlTeammateOrigin[2] - VecFlVictimOrigin[2] == 54.0
|| VecFlVictimOrigin[2] - VecFlTeammateOrigin[2] == 36.0
|| VecFlTeammateOrigin[2] - VecFlVictimOrigin[2] == 36.0)
{
// do something if they are touching
}
else
{
// do something if they are not touching
}
}
return HAM_IGNORED;
}