Инфо из engine.inc:
//SDK function - checks if an entity is visible to an entity
native is_visible(entity, target);
Синтаксис:
is_visible ( entity, target )
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <engine>
#define PLUGIN "[engine.inc] is_visible"
#define VERSION "1.0"
#define AUTHOR "Admin"
new Ent,g_Model[] = {"models/chick.mdl"}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /chick","add_chicken")
register_clcmd("say /vis","visible")
}
public plugin_precache(){
precache_model(g_Model)
}
public visible(id){
if(is_visible(id,Ent)){
client_print(0,print_chat,"You see ckicken")
}else{
client_print(0,print_chat,"You not see ckicken")
}
}
public add_chicken(id){
Ent = create_entity("info_target")
if(is_valid_ent(Ent)){
entity_set_model(Ent, g_Model)
entity_set_size(Ent,Float:{-6.0, -10.0, 0.0},Float:{6.0, 10.0, 18.0})
new Float:f_Origin[3]
entity_get_vector(id, EV_VEC_origin, f_Origin)
f_Origin[0] += 50.0
entity_set_origin(Ent, f_Origin)
entity_set_int(Ent,EV_INT_solid,SOLID_BBOX)
entity_set_float(Ent, EV_FL_takedamage, DAMAGE_YES)
new Float:angles[3]
angles[0] = 0.0
angles[1] = 90.0
angles[2] = 0.0
entity_set_vector(Ent,EV_VEC_angles,angles)
drop_to_floor(Ent)
}
}
Описание:
Проверять работу функции будем на давно замученной курице.
Зарегистрируем команду say /vis, для выполнения необходимого нам кода, где будем проверять виден ли объект и по результатам выводить результат в виде сообщения.
Еще раз хочу обратить ваше внимание на то, что проверяется видимость с позиции, а не то что у вас на экране. То есть это вы встали н одном месте и крутитесь по кругу, все что вы видите видит и функция.
Найти практическое применение данной функции мне пока что не удалось. Может вам пригодится.
кто знает как работает функция, поясните более детально!