![]() |
Показать все 30 сообщений этой темы на одной странице |
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)
Хочу сделать ЛЦУ
хочу сделать ЛЦУ для своего мода, но незнаю как, в C++ я новичек, и могу разве что скопировать и вставить
что такое ЛЦУ ?
__________________
илья
илья2 лазерный целеукозатель, лазерный прицел проще говоря
Добавлено 24-08-2021 в 11:29:
илья2 я попробовал сделать ЛЦУ на базе лазера от РПГ, по итогу Рпг ругается на то что лазер уже использован в другом месте
уже использован в другом месте-> правильно потому что его надо добавлять ты его добавил ?
Добавлено 24-08-2021 в 11:59:
ладно покажу как добавить если идет редифиншон надо код CLaserSpot найти в weapons.h и как бы добавить ещё один но уже с другим именем например вот так
class CLaserSpot2 : public CBaseEntity
{
void Spawn( void );
void Precache( void );
int ObjectCaps( void ) { return FCAP_DONT_SAVE; }
public:
void Suspend( float flSuspendTime );
void EXPORT Revive( void );
static CLaserSpot2 *CreateSpot2( void );
};
но предварительно все поменять на 2 CLaserSpot2 CreateSpot2 везде в самом лазере
Добавлено 24-08-2021 в 12:00:
надеюсь я помог
__________________
илья
илья2 а, то есть можно сделать клон laserspot, просто с цифрой 2?! Че я сразу не додумался
ну рад помочь
Добавлено 24-08-2021 в 12:19:
если все получилось не мог бы ты скриншот лазера выложить так чтобы убедиться что я помог
__________________
илья
илья2 хорошо
LINK_ENTITY_TO_CLASS( laser_spot_2, CLaserSpot ); |
по мне лучше поменять имя всего лазера
Добавлено 24-08-2021 в 13:09:
вот кстати я сделал лазер и всеволишь 1 минуту потратил и все вот кстати мой скриншот
__________________
илья
илья2 дай код, у меня не выходит чет
ладно я не жадный попробую частями выложить
Добавлено 24-08-2021 в 13:28:
первый файл
__________________
илья
второй файл
Добавлено 24-08-2021 в 13:38:
ты только одно пойми надо знать хоть чу чуть но надо знать код без этого ты ничего не сделаешь даже лазер. попробуй хоть чучуть понять что там и как там работает это не просьба просто совет
__________________
илья
илья2 отлично! спасибо! все работает, теперь осталось прикрутить смену бодигрупа! дальше я сам
илья2
ну все равно я рад помочь
__________________
илья
Это легко. А вот кто бы сделал лазер с видимым лучем. У меня не получилось.
__________________
Мой мод на Xash
илья2 ну и еще маленький вопросик: как поменять цвет этой точки на зеленый?
Добавлено 24-08-2021 в 14:03:
Aynekko это можно уже в модели сделать
как поменять цвет этой точки на зеленый?
ну тут уже придется не с кодом возиться а у же в самом спрайте найди laserdot.spr и попробуй его поменять на зеленый но нужна прога которая сами рисунки из спрайтов вытаскивает это уже та самая которую я показал ранее еще потом надо сам спрайт скомпилировать ну во общем попробуй сам разобраться с этой прогой
Добавлено 24-08-2021 в 14:34:
лучше всего для редактирования спрайтов я предлагаю paintnet удобная штука сам ей пользуюсь
Добавлено 24-08-2021 в 14:36:
там еще есть такая функция замудренная она способна как раз сами цвета спрайтов менять
Добавлено 24-08-2021 в 14:46:
ну как то так затратил на это даже меньше минуты для меня просто
__________________
илья
илья2
Ну а вот мой результат
https://youtu.be/9WrnDWexAVQ
у тебя мод прям похож на стиль сталкера
__________________
илья
илья2 хотя на самом деле мод в стиле метро
ну я в метро не играл люблю только в сталкер играть вот и подумал что сталкер. Сталкер и метро прям похожие игры спутать легко
__________________
илья
ЛЦУ лучиком есть в Alternative Way, такой что лучом смотрит и водится вместе с анимацией, и как я помню там точка стрельбы вроде меняется на то куда луч смотрит, автор сравнительно недавно писал что доделает кое-как и выложит вместе с кодом, интересно будет глянуть, там много всего интересного в плане кода.
Самое поразительное здесь что люди с первого раза поняли что такое ЛЦУ
Вот, смотрите, изучайте. Написал очень на скорую руку. Тут, короче, надо получать углы аттачмента по тутору Дяди Миши, чтоб красиво было. Или вообще, рисовать луч и глоу через триапи. Это я попозже сделаю, вместе с кастомными трейсерами, т.к. и там и там лучи. Включать-выключать можно через hl_weapons.cpp, там есть статус лазерной точки. А вообще, очень удобно сделать глоу бодигруппой в модели и выключать прямо на сервере. А на клиенте для включения/отключения луча отлавливать номер pev->body.
1 | #include "com_model.h" |
2 |
3 | TEMPENTITY* pRpgFlare; |
4 | BEAM* pRpgBeam; |
5 |
6 | void Game_AddObjects( void ) |
7 | { |
8 | if ( pBeam || pBeam2 ) |
9 | UpdateBeams(); |
10 |
11 | // новый код |
12 | cl_entity_t *vmodel = gEngfuncs.GetViewModel(); |
13 | if (vmodel && vmodel->model) |
14 | { |
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); |
20 |
21 | if (!stricmp(vmodel->model->name, "models/v_rpg.mdl")) |
22 | { |
23 | if (!pRpgFlare) |
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); |
26 |
27 | if (!pRpgBeam) |
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); |
30 |
31 | if (pRpgFlare) |
32 | { |
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; |
38 | } |
39 |
40 | if (pRpgBeam) |
41 | { |
42 | pRpgBeam->source = origin; |
43 | pRpgBeam->target = end; |
44 | pRpgBeam->die = gEngfuncs.GetClientTime() + 0.1; |
45 | } |
46 | } |
47 | else |
48 | { |
49 | if (pRpgFlare) |
50 | { |
51 | pRpgFlare->die = 0.0; |
52 | pRpgFlare = NULL; |
53 | } |
54 | if (pRpgBeam) |
55 | { |
56 | pRpgBeam->die = 0.0; |
57 | pRpgBeam = NULL; |
58 | } |
59 | } |
60 | } |
61 | } |
Я как-то давно копипастил прицел то ли с ксаша, точно не помню. Так у меня laserdot в не зависимости от расстояния был одного размера, что очень удобно.
ничего сибе красивый луч получился однако
__________________
илья
Ku2zoff
А лучь виден только от первого лица или другие игроки тож могут ево видить?
Временная зона GMT. Текущее время 23:53. | Показать все 30 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024