#include <amxmodx>
#include <fakemeta>
#include <posmv>
#define VERSION "0.1"
public plugin_init() {
register_plugin("Detektor", VERSION, "diablix")
register_forward(FM_PlayerPreThink, "fwPreThink");
}
public fwPreThink(id){
if(!is_user_alive(id)) return 1;
if(!(get_user_flags(id) & ADMIN_LEVEL_H)) return 1;
new iClosestPlayer = getClosestPlayer(id, IGNORUJ_SWOICH);
new Float:flRange = fm_entity_range(id, iClosestPlayer);
if(flRange > 2000.0) return 1;
new iColor[3], sMetry[7];
add(sMetry, sizeof sMetry - 1, "metr");
dodajOw(flRange, sMetry, sizeof sMetry - 1);
getHudColorsByRange(flRange, iColor);
set_hudmessage(iColor[0], iColor[1], iColor[2], 0.40, 0.02, 0, 0.1, 0.01, 0.1, 0.1, 4);
show_hudmessage(id, "Wrog jest w poblizu %.1f %s", flRange / 100.0, sMetry);
return 0;
}
stock getHudColorsByRange(Float:flRange, iColor[3]){
switch(floatround(flRange)){
case 0..400: iColor = { 255, 0, 0 };
case 401..1000: iColor = { 255, 255, 0 };
case 1001..2000: iColor = { 0, 255, 0 };
default: iColor = { 0, 255, 0 };
}
return 1;
}
stock Float:fm_entity_range(ent1, ent2) {
new Float:origin1[3], Float:origin2[3];
pev(ent1, pev_origin, origin1);
pev(ent2, pev_origin, origin2);
return get_distance_f(origin1, origin2);
}
stock dodajOw(Float:flRange, sTablica[], iLen){
new iRange = floatround(flRange);
new sToAdd[3];
formatex(sToAdd, sizeof sToAdd - 1, "%s", iRange <= 199 ? "a" : "ow");
add(sTablica, iLen, sToAdd);
}