Участник
Пользователь
- Сообщения
- 264
- Реакции
- 132
- Помог
- 13 раз(а)
Изучаю плагины с лазерными минами и вижу что лучи реализованы либо с помощью msg TE_BEAMPOINTS , либо через entity .
1. Как пример плагин мин https://dev-cs.ru/resources/1442/ здесь через TE_BEAMPOINTS и когда смотришь на лучи они постоянно мигают , так как пересоздаются заново, что не очень приятно глазу.
2. В другом плагине создается через энтити "beam" с флагом FL_CUSTOMENTITY приблизительно так
Так вот такой луч не мигает, глазу приятно смотреть. Но начиная с 65 луча он не отрисовывается на клиенте и отрисуется 65 , если какой то из предидущих уничтожить. Почему не знаю - но может кто знающий обьяснит почему так и можно ли это как то обойти.
Так же хотел еще попробовать создавать env_beam или env_laser, но немогу найти ни одного примера с реализацией рабочей ...
Нашел такую :
Походу энтитя создается так как урон наносит и видно 2 конца с искорками, но сам луч не видно. Может у кого есть рабочий пример который можно было бы пощупать ? И так же вопрос почему не использут в минах эти энтити ?
Что бы вы рекомендовали использовать в качестве реализации луча и почему ?
1. Как пример плагин мин https://dev-cs.ru/resources/1442/ здесь через TE_BEAMPOINTS и когда смотришь на лучи они постоянно мигают , так как пересоздаются заново, что не очень приятно глазу.
2. В другом плагине создается через энтити "beam" с флагом FL_CUSTOMENTITY приблизительно так
Код:
new beam = rg_create_entity("beam")
if (is_nullent(beam))
return
set_entvar(beam, var_origin, vecSrc)
engfunc(EngFunc_SetModel, beam, get_entvar(ent,EV_TM_team) == 1 ? MODELS[RED] : MODELS[BLUE]);
engfunc(EngFunc_SetSize, beam, vecMins, vecMaxs);
set_entvar(beam, var_flags, get_entvar(beam, var_flags) | FL_CUSTOMENTITY);
set_entvar(beam, var_scale, BEAM_WIDTH)
set_entvar(beam, var_rendercolor, Float: {255.0, 255.0, 255.0})
set_entvar(beam, var_rendermode, 0);
set_entvar(beam, var_animtime, 255.0)
set_entvar(beam, var_renderamt, BEAM_BRIGHT)
set_entvar(beam, var_angles, vecOrigin)
set_entvar(beam, var_owner,ent)
set_entvar(beam, EV_TM_mineId,get_entvar(ent,EV_TM_mineId))
set_entvar(beam, var_nextthink,get_gametime() + 0.1)
Так вот такой луч не мигает, глазу приятно смотреть. Но начиная с 65 луча он не отрисовывается на клиенте и отрисуется 65 , если какой то из предидущих уничтожить. Почему не знаю - но может кто знающий обьяснит почему так и можно ли это как то обойти.
Так же хотел еще попробовать создавать env_beam или env_laser, но немогу найти ни одного примера с реализацией рабочей ...
Нашел такую :
Код:
#include <amxmodx>
#include <fakemeta>
#include <engine>
#include <reapi>
#define PLUGIN "LaserTest"
#define VERSION "0.00001"
#define AUTHOR "Unnamed"
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("spawn_laser", "create_laser")
}
public create_laser(id)
{
new Float:vOrigin[3]
get_entvar(id, var_origin, vOrigin)
vOrigin[1] += 100.0
new newent1 = create_entity("info_target")
set_pev(newent1, pev_origin, vOrigin)
DispatchKeyValue(newent1,"targetname","lasertarg1")
DispatchSpawn( newent1 )
new newent2 = create_entity("env_laser")
vOrigin[1] += 400.0
set_pev(newent2, pev_origin, vOrigin)
DispatchKeyValue(newent2,"spawnflags","49")
DispatchKeyValue(newent2,"targetname","my_laser")
DispatchKeyValue(newent2,"renderfx","0")
DispatchKeyValue(newent2,"LaserTarget","lasertarg1")
DispatchKeyValue(newent2,"renderamt","188")
DispatchKeyValue(newent2,"rendercolor","255 0 0")
DispatchKeyValue(newent2,"Radius","256")
DispatchKeyValue(newent2,"life","0")
DispatchKeyValue(newent2,"Width","25")
DispatchKeyValue(newent2,"NoiseAmplitude","0")
DispatchKeyValue(newent2,"texture","sprites/laserbeam.spr")
DispatchKeyValue(newent2,"TextureScroll","35")
DispatchKeyValue(newent2,"framerate","0")
DispatchKeyValue(newent2,"framestart","0")
DispatchKeyValue(newent2,"StrikeTime","1")
DispatchKeyValue(newent2,"damage","500")
DispatchSpawn( newent2 )
client_print(0, print_chat, "Laser spawned")
return PLUGIN_HANDLED
}
public plugin_precache()
precache_model("sprites/laserbeam.spr")
Походу энтитя создается так как урон наносит и видно 2 конца с искорками, но сам луч не видно. Может у кого есть рабочий пример который можно было бы пощупать ? И так же вопрос почему не использут в минах эти энтити ?
Что бы вы рекомендовали использовать в качестве реализации луча и почему ?