HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Хочу сделать ЛЦУ (https://hlfx.ru/forum/showthread.php?threadid=5713)
Отправлено Aynekko 24-08-2021 в 10:58:
Это легко. А вот кто бы сделал лазер с видимым лучем. У меня не получилось.
__________________
Мой мод на Xash
Отправлено hgrunt_2020 24-08-2021 в 11:03:
илья2 ну и еще маленький вопросик: как поменять цвет этой точки на зеленый?
Добавлено 24-08-2021 в 14:03:
Aynekko это можно уже в модели сделать
Отправлено илья2 24-08-2021 в 11:46:
как поменять цвет этой точки на зеленый?
ну тут уже придется не с кодом возиться а у же в самом спрайте найди laserdot.spr и попробуй его поменять на зеленый но нужна прога которая сами рисунки из спрайтов вытаскивает это уже та самая которую я показал ранее еще потом надо сам спрайт скомпилировать ну во общем попробуй сам разобраться с этой прогой
Добавлено 24-08-2021 в 14:34:
лучше всего для редактирования спрайтов я предлагаю paintnet удобная штука сам ей пользуюсь
Добавлено 24-08-2021 в 14:36:
там еще есть такая функция замудренная она способна как раз сами цвета спрайтов менять
Добавлено 24-08-2021 в 14:46:
ну как то так затратил на это даже меньше минуты для меня просто
__________________
илья
Отправлено hgrunt_2020 24-08-2021 в 11:59:
илья2
Ну а вот мой результат
https://youtu.be/9WrnDWexAVQ
Отправлено илья2 24-08-2021 в 12:13:
у тебя мод прям похож на стиль сталкера
__________________
илья
Отправлено hgrunt_2020 24-08-2021 в 12:14:
илья2 хотя на самом деле мод в стиле метро
Отправлено илья2 24-08-2021 в 12:26:
ну я в метро не играл люблю только в сталкер играть вот и подумал что сталкер. Сталкер и метро прям похожие игры спутать легко 
__________________
илья
Отправлено Ku2zoff 27-08-2021 в 12:41:
Цитата:
Aynekko писал:
кто бы сделал лазер с видимым лучем. У меня не получилось.
Я делал его отдельной бодигруппой с texrendermode additive. Но по уму-то надо и правда делать спрайтом, темпэнтитей, чтобы луч обрезался энтитями при пересечении. Я бы взял pEfxAPI->R_BeamPoints за основу. Как раз нужно указать две точки. Начальная - аттачмент вьюмодели, конечная - к примеру, на 40-60 юнитов вперёд в направлении точки стрельбы. Только этому лучу надо ставить флаг FTENT_HIGHPRIORITY (или как он там правильно пишется), чтобы при переполнении массива темпэнтить, луч не удалялся и оставался видимым.
Добавлено 27-08-2021 в 19:41:
Сегодня попробую сделать, вывалю вам в эту тему код, скрин и модифицированную вьмодель рпг, если всё получится.
Отправлено Chyvachok 27-08-2021 в 13:17:
ЛЦУ лучиком есть в Alternative Way, такой что лучом смотрит и водится вместе с анимацией, и как я помню там точка стрельбы вроде меняется на то куда луч смотрит, автор сравнительно недавно писал что доделает кое-как и выложит вместе с кодом, интересно будет глянуть, там много всего интересного в плане кода.
Отправлено Crystallize 27-08-2021 в 13:32:
Самое поразительное здесь что люди с первого раза поняли что такое ЛЦУ 
Отправлено Ku2zoff 27-08-2021 в 14:35:
Вот, смотрите, изучайте. Написал очень на скорую руку. Тут, короче, надо получать углы аттачмента по тутору Дяди Миши, чтоб красиво было. Или вообще, рисовать луч и глоу через триапи. Это я попозже сделаю, вместе с кастомными трейсерами, т.к. и там и там лучи. Включать-выключать можно через hl_weapons.cpp, там есть статус лазерной точки. А вообще, очень удобно сделать глоу бодигруппой в модели и выключать прямо на сервере. А на клиенте для включения/отключения луча отлавливать номер pev->body.
C++ Source Code:
6 | void Game_AddObjects( void ) |
12 | cl_entity_t *vmodel = gEngfuncs.GetViewModel(); |
13 | if (vmodel && vmodel->model) |
15 | vec3_t origin, angles, forward, end; |
16 | VectorCopy(vmodel->attachment[0], origin); |
17 | gEngfuncs.GetViewAngles((float*)angles); |
18 | AngleVectors(angles, forward, NULL, NULL); |
19 | VectorMA(origin, 256, forward, end); |
21 | if (!stricmp(vmodel->model->name, "models/v_rpg.mdl")) |
24 | pRpgFlare = gEngfuncs.pEfxAPI->R_TempSprite(vmodel->attachment[0], vec3_origin, 0.2, gEngfuncs.pEventAPI->EV_FindModelIndex("sprites/hotglow.spr"), |
25 | kRenderGlow, kRenderFxNoDissipation, 192, gEngfuncs.GetClientTime() + 0.1, FTENT_NONE); |
28 | pRpgBeam = gEngfuncs.pEfxAPI->R_BeamEntPoint(vmodel->index | 0x1000, end, gEngfuncs.pEventAPI->EV_FindModelIndex("sprites/laserbeam.spr"), |
29 | 1.0, 1.0, 0, 0.5, 0, 0, 0, 255, 0, 0); |
33 | pRpgFlare->entity.curstate.rendercolor.r = 255; |
34 | pRpgFlare->entity.curstate.rendercolor.g = 0; |
35 | pRpgFlare->entity.curstate.rendercolor.b = 0; |
36 | pRpgFlare->entity.origin = vmodel->attachment[0]; |
37 | pRpgFlare->die = gEngfuncs.GetClientTime() + 0.1; |
42 | pRpgBeam->source = origin; |
43 | pRpgBeam->target = end; |
44 | pRpgBeam->die = gEngfuncs.GetClientTime() + 0.1; |

Модель рпг с аттачем в аттаче. Каламбур, однако!
Отправлено BALISTA 27-08-2021 в 16:49:
Я как-то давно копипастил прицел то ли с ксаша, точно не помню. Так у меня laserdot в не зависимости от расстояния был одного размера, что очень удобно.
Отправлено илья2 30-08-2021 в 15:25:
ничего сибе красивый луч получился однако 
__________________
илья
Отправлено [CFR] B@N@N 31-08-2021 в 07:58:
Ku2zoff
А лучь виден только от первого лица или другие игроки тож могут ево видить?
Отправлено Ku2zoff 31-08-2021 в 09:06:
Цитата:
Ku2zoff писал:
Вложение: v_rpg.7z (85.0 кб)
Цитата:
Ku2zoff писал:
___if (!stricmp(vmodel->model->name, "models/v_rpg.mdl"))
Только от первого. Я писал чисто на пробу. Собсно, лучи нормально аттачатся. А вот темп-спрайты немного лагают. Код надо переделывать на использование триапи, так будет лучше.