Посмотри здесь - может чёт и выбирешь себе (
Установка модели только на потолок )
Код:
public create_barnacle(id)
{
if (g_barnacleCount[id] > 0)
{
new origin[3], Float:fOrigin[3]
get_user_origin(id, origin, 3)
IVecFVec(origin, fOrigin)
fOrigin[2] -= 2.0
new const Float:direction[4][3] = {{5.0, 0.0, 0.0}, {-5.0, 0.0, 0.0}, {0.0, 5.0, 0.0}, {0.0, -5.0, 0.0}}
new Float:temp[3]
xs_vec_copy(fOrigin, temp)
new i
for (i = 0; i < 4; i++)
{
xs_vec_add(fOrigin, direction[i], temp)
if (engfunc(EngFunc_PointContents, temp) != -1)
break
}
if (i != 4)
client_print(id, print_center, "Эту Ловушку нужно ставить на потолок !")
else
{
fOrigin[2] += 2.0
new ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocStr
ing,"info_target"))
set_pev(ent,pev_classname, barnacle_class)
engfunc(EngFunc_SetModel, ent, "models/zp_trap/zp_trap2.mdl")
set_pev(ent, pev_iuser1, id)
set_pev(ent, pev_mins, Float:{-16.0,-16.0, -36.0})
set_pev(ent, pev_maxs, Float:{16.0,16.0,0.0})
set_pev(ent, pev_size, Float:{-16.0,-16.0, -36.0,16.0,16.0,0.0})
engfunc(EngFunc_SetSize, ent, Float:{-16.0,-16.0,-36.0}, Float:{16.0,16.0,0.0})
set_pev(ent, pev_solid, SOLID_BBOX)
set_pev(ent, pev_movetype, MOVETYPE_FLY)
set_pev(ent, pev_health, get_pcvar_float(g_CvarHP) + HEALTH_OFFSET)
set_pev(ent, pev_takedamage, 1.0)
set_pev(ent, pev_dmg, 1.0)
set_pev(ent, pev_maxspeed, 20.0)
set_pev(ent,pev_flags, FL_MONSTER|FL_MONSTERCLIP)
set_pev(ent, pev_origin, fOrigin)
set_pev(ent, pev_animtime, 10.0)
set_pev(ent, pev_framerate, 0.5)
set_pev(ent, pev_sequence, idle3)
set_pev(ent, pev_gaitsequence, idle3)
set_pev(ent, pev_nextthink,get_gametime() + THINK_DELAY)
g_barnacleCount[id]--
client_print(id, print_center, "Осталось Ловушек : %d", g_barnacleCount[id])
}
}
else
client_print(id, print_center, "Больше нет Ловушек !")
}