В общем надо заточить скрипт, а то иногда валит сервер..
Код:
public greateEnt(id) {
g_point_entuty = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
dllfunc(DLLFunc_Spawn, g_point_entuty)
engfunc(EngFunc_SetOrigin, g_point_entuty, origin)
set_pev(g_point_entuty, pev_solid, 1)
set_pev(g_point_entuty, pev_movetype, 6)
engfunc(EngFunc_SetModel, g_point_entuty, "models/w_isotopebox.mdl")
}Код:
public hook_touch(ptr, ptd) {
if (ptd < 1 || ptd > get_maxplayers())
return FMRES_HANDLED
if(!(get_user_flags(ptd) & ADMIN_ACCESS))
return FMRES_HANDLED
if(ptr == g_point_entuty) {
if(some[ptd][0] == 0) {
engfunc(EngFunc_RemoveEntity, ptr)
client_print(ptd, print_chat, "=ChatBot= touched and removed")
set_task(0.1, "sometask")
}
}
return FMRES_HANDLED
}Код:
public deleteEnt(id) {
engfunc(EngFunc_RemoveEntity, g_point_entuty)
}Как видно в функции hook_touch я пытался создать условие, и создал (оно работает, но как то неправильно), которое при соприкосновении игрока с флагом админа выполнит другую функцию. Вроде в теории оно работает, но на практике после roundStart сразу начинает выполнятся функция
sometask, которая по идее должна выполнится при условии что игрок соприкоснулся с ent, который в мире не появился.
И тут пока я все это писал, у меня встал вопрос, а ptr == g_point_entuty при g_point_entuty = 0 это не проверка случайно на то что игрок соприкоснулся с миром, т.е. картой?!