HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- XashXT (https://hlfx.ru/forum/forumdisplay.php?forumid=30)
-- XashXT/3D [Вопросы и ответы] (https://hlfx.ru/forum/showthread.php?threadid=3689)
Отправлено Aynekko 03-11-2020 в 21:45:
Спасибо, все получилось
теперь буду пробовать допиливать этот триггер чтобы работал как inout. Тут уже сам, главное с активацией тумана разобрался. Я просто взял по подобию из спауна карты, вот и не получалось
Добавлено 04-11-2020 в 00:45:
Цитата:
Дядя Миша писал:
А на кой ты сюда туман пишешь: g_pWorld->pev->impulse
В итоге все равно я правильно делал, что писал сюда. Конечный код в use триггера вот такой:
C++ Source Code:
UPDATE_PACKED_FOG( (NewFog[0]<<24)|(NewFog[1]<<16)|(NewFog[2]<<8)|NewFog[3] ); |
g_pWorld->pev->impulse = (NewFog[0]<<24)|(NewFog[1]<<16)|(NewFog[2]<<8)|NewFog[3]; |
Второй строчкой перезаписываю туман карты новыми значениями. Иначе после сейврестора туман сбрасывался на тот, что прописан в спауне карты.
Если кому нужно - вот триггер_инаут для ксаш-мода. Назвал func_fog. Потестил - все супер, в том числе сохранение-загрузка 
C++ Source Code:
1 | class CTriggerFogToggle : public CTriggerInOut |
3 | DECLARE_CLASS( CTriggerFogToggle, CTriggerInOut ); |
5 | void KeyValue( KeyValueData *pkvd ); |
6 | virtual void FireOnEntry( CBaseEntity *pOther ); |
7 | virtual void FireOnLeaving( CBaseEntity *pOther ); |
13 | LINK_ENTITY_TO_CLASS( func_fog, CTriggerFogToggle ); |
15 | BEGIN_DATADESC( CTriggerFogToggle ) |
16 | DEFINE_ARRAY( EntryFog, FIELD_INTEGER, 4 ), |
17 | DEFINE_ARRAY( ExitFog, FIELD_INTEGER, 4 ), |
20 | void CTriggerFogToggle::KeyValue( KeyValueData *pkvd ) |
22 | if (FStrEq(pkvd->szKeyName, "entryfog")) |
24 | UTIL_StringToIntArray( EntryFog, 4, pkvd->szValue ); |
25 | pkvd->fHandled = TRUE; |
27 | else if (FStrEq(pkvd->szKeyName, "exitfog")) |
29 | UTIL_StringToIntArray( ExitFog, 4, pkvd->szValue ); |
30 | pkvd->fHandled = TRUE; |
33 | CBaseDelay::KeyValue( pkvd ); |
36 | void CTriggerFogToggle :: FireOnEntry( CBaseEntity *pOther ) |
38 | if( !pOther->IsPlayer( )) return; |
39 | UPDATE_PACKED_FOG( (EntryFog[0]<<24)|(EntryFog[1]<<16)|(EntryFog[2]<<8)|EntryFog[3] ); |
40 | g_pWorld->pev->impulse = (EntryFog[0]<<24)|(EntryFog[1]<<16)|(EntryFog[2]<<8)|EntryFog[3]; |
43 | void CTriggerFogToggle :: FireOnLeaving( CBaseEntity *pOther ) |
45 | if( !pOther->IsPlayer( )) return; |
46 | UPDATE_PACKED_FOG( (ExitFog[0]<<24)|(ExitFog[1]<<16)|(ExitFog[2]<<8)|ExitFog[3] ); |
47 | g_pWorld->pev->impulse = (ExitFog[0]<<24)|(ExitFog[1]<<16)|(ExitFog[2]<<8)|ExitFog[3]; |
Вот для fgd хаммера:
C++ Source Code:
1 | @SolidClass base(Targetname, Parent, Filter) = func_fog : "Change fog on entering or leaving" |
3 | entryfog(integer) : "Fog on entry (R G B Density)" : "128 100 35 10" |
4 | exitfog(integer) : "Fog on exit (R G B Density)" : "245 150 160 100" |
5 | master(target_destination) : "Master" |
А я попробую еще дальше пилить энтитю - может получится сделать плавный переход между туманами, вообще классно было бы.__________________
Мой мод на Xash
Отправлено Дядя Миша 04-11-2020 в 08:05:
Цитата:
Aynekko писал:
Иначе после сейврестора туман сбрасывался на тот, что прописан в спауне карты.
само собой 
Но ты же не спрашивал, как его сохранить, ты спросил как его задать.
Добавлено 04-11-2020 в 11:05:
Цитата:
Aynekko писал:
может получится сделать плавный переход между туманами
лерпинг надо. Но учитывая свойства тумана, вероятно кривая Безье отработает лучше.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 04-11-2020 в 09:06:
Цитата:
Aynekko писал:
Слушай, вот я сейчас проверил и уже не перебирает. К зеркалу подошел. Раньше работала О.о
Я тоже у себя замечал. Во второй ревизии это началось, кажется. Просто я там отключал много кода ответственного за гейтсеквенции и анимацию игрока и потом включал обратно, мог что-то забыть и поэтому не торопился утверждать безапелляционно.
Отправлено Aynekko 01-12-2020 в 21:55:
Не вопрос, а наблюдение. Очень позитивное наблюдение.
TL: DR - игрок движется вместе с платформой и при прыжке с нее не слетает. Это здорово и в голде такого нет.
В общем, делаю я платформу. Обычно я делаю ее дверью, чтобы туда-сюда отправлять - так проще. Но засада: при прыжке игрок с нее слетает и контроля нет. В сорсе такого нет - там как-то отслеживается движение энтити под игроком и ее велосити прибавляется к игроку. То же самое касается движения вверх-вниз. Быстрая платформа летит вниз и если прыгнуть, то потом ты разобъешься.
И тут оказалось, что если сделать "крышу" это платформе (из null-текстуры, чтобы не видно было) - то велосити сохраняется. Т.к. игрок физически внутри границ двери находится. Жаль конечно, что опять костыль приходится пихать в виде крыши, но все равно здорово. И нигде не задокументировано вроде.
Кстати, с плоского трейна без крыши тоже слетаешь.
__________________
Мой мод на Xash
Отправлено thambs 02-12-2020 в 00:08:
Надеюсь, ДМ запилит в nt нормального Галилея.
__________________
http://www.moddb.com/mods/monorail-quest
Отправлено Дядя Миша 02-12-2020 в 07:37:
Цитата:
Aynekko писал:
TL: DR - игрок движется вместе с платформой и при прыжке с нее не слетает. Это здорово и в голде такого нет.
Сделано по просьбам трудящихся.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Aynekko 04-12-2020 в 09:43:
Как сделать тень от фонарика? Чтобы он работал по принципу env_projector и делал тени от альфа текстур. Я попробовал закомментить "pl->flags = CF_NOSHADOWS;" но это не дало результата. Ксаш мод 0.81 рев2.
__________________
Мой мод на Xash
Отправлено KorteZZ 04-12-2020 в 10:41:
Вроде в старых версиях ксаша такое было. Ксаш с каждой версией что-то теряет)
То тени, то фонарик, то систему пушек и еще что-то)
__________________
Killing Floor: Horzine Outbreak
Отправлено Aynekko 04-12-2020 в 10:49:
Да я видел тему. Там Дядя Миша писал, что отключил тени от фонарика, чтобы не сажать фпс. Но т.к. один env_projector фпс не сажает, я подумал что может можно прикрутить его к фонарику. Только как это сделать…
__________________
Мой мод на Xash
Отправлено Lev 04-12-2020 в 11:07:
Aynekko Погляди view.cpp на клиенте, обычно там код фонарика игрока(не уверен, что в ксаш-моде так, но в параное точно), может там при вызове прожектора флаг стоит?
Отправлено Aynekko 04-12-2020 в 12:10:
В ксаше это в r_misc - HUD_UpdateFlashlight. У проектора есть флаг EF_PROJECTED_LIGHT, попробовал его поставить, разницы нет
__________________
Мой мод на Xash
Отправлено Дядя Миша 04-12-2020 в 12:51:
У фонарика игрока тени отключены, потому что фонарик светит из глаз и игрок всё равно их не сможет увидеть. В параное - дело другое, там фонарик немного смещён, поэтому тени видно.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено thambs 04-12-2020 в 14:40:
Цитата:
фонарик светит из глаз и игрок всё равно их не сможет увидеть
А во лбу звiзда горит!__________________
http://www.moddb.com/mods/monorail-quest
Отправлено Aynekko 05-12-2020 в 12:36:
Сколько может быть аудиоканалов в ксаше? Не хочу чтобы звуки перекрывались друг другом в некоторых случаях. Сейчас задал кастомный канал (#define CHAN_CUSTOM1 8), вроде бы проблем нет. Сколько я могу создать таких каналов?
__________________
Мой мод на Xash
Отправлено Дядя Миша 05-12-2020 в 13:18:
Ты ничего не создал. Там 7 каналов по сети максимум. Он у тебя заврапился на ноль, а ноль - это AUTO.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'