С чего должно не получиться-то? Всё верно же, он именно для TE_BEAMFOLLOWЕсли с TE_KILLBEAM не получиться, то можно еще как вариант попробовать за энтитей фоловить другую энтитю, а уже за ней делать трейл. И когда новый трейл то ту убивать а новую создавать - ну как то так...
var_owner
, а var_aiment
нужен, чтобы работало.set_entvar(pTrailEntity, var_movetype, MOVETYPE_FOLLOW)
set_entvar(pTrailEntity, var_aiment, pEntity)
message_begin(MSG_PVS, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW)
write_short(g_pTrailEntity | 0x1000)
write_short(g_iTrailSprite)
write_byte(30)
write_byte(10)
write_byte(50)
write_byte(50)
write_byte(255)
write_byte(100)
message_end()
EF_FORCEVISIBILITY поможет по идее на энтити к которой цепляешь бим, иначе иногда не передаётся на клиент ее позиция и в нулях рисуется по идее
set_entvar(pTrailEntity, var_effects, EF_FORCEVISIBILITY)
на аттачменте - никакна нулевые координаты
В movetype == folow, копируются origin, angles от aimentна аттачменте - никак
он на аттачменте всегда на полкарты отрисовывается (от нулевых координат)
так же искали способ и не нашли
тут проблема скорее в том, что это аттачмент и у него координаты не обновляются по сути (pev_origin), он просто следует за aiment'ом
он юзает вар аимент, так что это аттач, а не просто объект с фоллоуВ movetype == folow, копируются origin, angles от aiment
CHEL74, скинь весь код создания дополнительной энтити, возможно коллективный разум что-то увидит и подскажет ...
public Function() {
if(g_pTrailEntity) {
set_entvar(g_pTrailEntity, var_flags, FL_KILLME)
}
g_pTrailEntity = rg_create_entity("info_target")
new Float:fOrigin[XYZ]
get_entvar(g_pEntity, var_origin, fOrigin)
engfunc(EngFunc_SetModel, g_pTrailEntity, g_szModel)
engfunc(EngFunc_SetOrigin, g_pTrailEntity, fOrigin)
set_entvar(g_pTrailEntity, var_solid, SOLID_NOT)
set_entvar(g_pTrailEntity, var_movetype, MOVETYPE_FOLLOW)
set_entvar(g_pTrailEntity, var_effects, EF_OWNER_NO_VISIBILITY)
set_entvar(g_pTrailEntity, var_aiment, g_pEntity)
set_task(0.1, "StartTrail_Task")
}
public StartTrail_Task() {
message_begin(MSG_PVS, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW)
write_short(g_pTrailEntity | 0x1000)
write_short(g_iTrailSprite)
write_byte(30)
write_byte(10)
write_byte(50)
write_byte(50)
write_byte(255)
write_byte(100)
message_end()
}
При пересоздании уходил. Решил проблему на коленке, таском. Чтобы просто протестить, как будет работать. Но потом начались уходы в нулевые координаты при движении энтити. Каких-то закономерностей там не увидел. Трейл может быть идеальным долгое время, а потом резко начнёт уходить в нулевые.И скажи в какой именно момент треил уходит в начало координат. При уничтожении энтити ? Пробовал перед уничтожением энтити ее сначала остановить, а потом уничтожить ?