HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)
Отправлено SNMetamorph 14-03-2021 в 15:14:
Цитата:
Crystallize писал:
Какие ребята, кто их видел? ©Ставь птицу!
На другом форуме каком-то?
Ребята из FWGS, альбатрос в частности и кто-то еще. Ну я тоже пулл реквесты с фиксами багов отправлял несколько раз.__________________
Мой сайт
Xash3D Modding Discord
Отправлено Aynekko 25-03-2021 в 09:39:
Вопрос по punchangle. Взял код из паранои 2, он же сорсовский, поставил себе в ксаш. Все работает, но...он как будто лагает что ли? Когда панч большой, то это не так заметно. Но если выставить маленький, то когда панч при возврате в центр движется совсем медленно, заметны некие рывки в движении. Не знаю, как еще лучше объяснить. В хл2 такого не наблюдается.
Вот код который у меня сейчас:
C++ Source Code:
1 | #define PUNCH_DAMPING 9.0f |
2 | #define PUNCH_SPRING_CONSTANT 65.0f |
4 | void PM_DropPunchAngle ( Vector &punchangle ) |
7 | float springForceMagnitude; |
9 | if ( punchangle.Length() > 0.001 || pmove->vuser3.Length() > 0.001 ) |
11 | punchangle += pmove->vuser3 * pmove->frametime; |
12 | damping = 1.0f - (PUNCH_DAMPING * pmove->frametime); |
18 | pmove->vuser3 *= damping; |
21 | // UNDONE: Per-axis spring constant? |
22 | springForceMagnitude = PUNCH_SPRING_CONSTANT * pmove->frametime; |
23 | springForceMagnitude = bound( 0, springForceMagnitude, 2 ); |
25 | pmove->vuser3 += punchangle * -springForceMagnitude; |
28 | punchangle[0] = bound( -89, punchangle[0], 89 ); |
29 | punchangle[1] = bound( -179, punchangle[1], 179 ); |
30 | punchangle[2] = bound( -89, punchangle[2], 89 ); |
Вот код из соурс сдк 2013:
C++ Source Code:
1 | void CGameMovement::DecayPunchAngle( void ) |
3 | if ( player->m_Local.m_vecPunchAngle->LengthSqr() > 0.001 || player->m_Local.m_vecPunchAngleVel->LengthSqr() > 0.001 ) |
5 | player->m_Local.m_vecPunchAngle += player->m_Local.m_vecPunchAngleVel * gpGlobals->frametime; |
6 | float damping = 1 - (PUNCH_DAMPING * gpGlobals->frametime); |
12 | player->m_Local.m_vecPunchAngleVel *= damping; |
15 | // UNDONE: Per-axis spring constant? |
16 | float springForceMagnitude = PUNCH_SPRING_CONSTANT * gpGlobals->frametime; |
17 | springForceMagnitude = clamp(springForceMagnitude, 0.f, 2.f ); |
18 | player->m_Local.m_vecPunchAngleVel -= player->m_Local.m_vecPunchAngle * springForceMagnitude; |
21 | player->m_Local.m_vecPunchAngle.Init( |
22 | clamp(player->m_Local.m_vecPunchAngle->x, -89.f, 89.f ), |
23 | clamp(player->m_Local.m_vecPunchAngle->y, -179.f, 179.f ), |
24 | clamp(player->m_Local.m_vecPunchAngle->z, -89.f, 89.f ) ); |
28 | player->m_Local.m_vecPunchAngle.Init( 0, 0, 0 ); |
29 | player->m_Local.m_vecPunchAngleVel.Init( 0, 0, 0 ); |
Добавил ломику схожие значения, но все равно панч какой-то заедающий слегка. Вот соурс сдк у ломика:
C++ Source Code:
3 | punchAng.x = random->RandomFloat( 1.0f, 2.0f ); |
4 | punchAng.y = random->RandomFloat( -2.0f, -1.0f ); |
7 | pPlayer->ViewPunch( punchAng ); |
У меня:
C++ Source Code:
m_pPlayer->pev->punchangle.x = RANDOM_FLOAT( 1.0f, 2.0f ); |
m_pPlayer->pev->punchangle.y = RANDOM_FLOAT( -2.0f, -1.0f ); |
Может что-то упустил где-то...__________________
Мой мод на Xash
Отправлено Дядя Миша 25-03-2021 в 09:43:
Этот панч еще БУзер делал для первой паранои, я к нему никаким боком.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Aynekko 25-03-2021 в 09:45:
Так я не с претензиями к тебе, да и вообще код из соурса
я скорее с вопросом, как заставить его работать так же как в соурсе. Вроде бы код более-менее идентичный
__________________
Мой мод на Xash
Отправлено Дядя Миша 25-03-2021 в 10:30:
Время по разному идёт, в этом всё дело.
FPS отпущен?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Aynekko 25-03-2021 в 10:46:
Вот я тоже подумал, будто бы эффект обновляется не так быстро или еще что-то. Фпс что 60 что 200 разницы нет никакой внешне
__________________
Мой мод на Xash
Отправлено Sigurth 25-03-2021 в 14:51:
Aynekko Я уже копипастил себе этот пунч. Лагает он из-за того, что нужно делать его на клиенте. Серверный пунч передается на клиент в четырьмя знаками после запятой у флоатов. Поэтому на маленьких значениях и лагает.
Добавлено 25-03-2021 в 21:49:
У себя я сделал так, что серверный пунч больше не влияет на наклон камеры, но все еще влияет на направление стрельбы. И все pev->pubchangle += ...; менял на вызов функции ,которая отправляет мессагу на клиент, который в свою очередь делает клиентский пунч чисто для визуального эффекта. То есть этот код должен быть и на клиенте и на сервере.
[i]Добавлено 25-03-2021 в 21:51:
Я делал это для красивой отдачи у оружия. Если пунч не должен влиять на направление стрельбы, то можно обойтись лишь клиентским эффектом.__________________
Никогда не поздно сделать мод под хл1
Отправлено Aynekko 25-03-2021 в 15:24:
Цитата:
Sigurth писал:
Лагает он из-за того, что нужно делать его на клиенте.
Блин вот я так и думал. А в случае ксаша, может как-то можно добавить больше знаков?__________________
Мой мод на Xash
Отправлено Ku2zoff 25-03-2021 в 16:37:
Цитата:
Sigurth писал:
Лагает он из-за того, что нужно делать его на клиенте.
Я все "косметические" пунчи и скриншейки (которые не влияют на меткость стрельбы) стараюсь делать на клиенте. Случай с монтировкой именно такой, толчки экрана не влияют ни на что, а лишь трясут экран. pm_shared конечно позволяет в какой-то степени синхронизировать сервер с клиентом, но в данном случае такое не нужно, т.к. трясти будет лишь экран локального игрока.
Что бы я действительно попытался реализовать - это "землетрясения" из ку2. Там не просто трясётся экран, как от скриншейка, там ещё игрока кидает из стороны в сторону. Будет весьма полезно в паре моментов, что я задумал.
Добавлено 25-03-2021 в 23:36:
Цитата:
Aynekko писал:
может как-то можно добавить больше знаков?
В твоём случае это локальный эффект, его не нужно шарить другим игрокам. Сделай его в эвенте монтировки, чисто на клиенте, не затрагивая сервер.
Добавлено 25-03-2021 в 23:37:
Цитата:
Sigurth писал:
Если пунч не должен влиять на направление стрельбы, то можно обойтись лишь клиентским эффектом.
Вот я об этом чуть выше сказал. Если это косметика, то нужно делать лишь на клиенте.
Отправлено Aynekko 26-03-2021 в 11:52:
Проблема с лагающим punchangle решилась банально с помощью delta.lst.
Вместо 8.0 поставил 32.0 и все отлично стало.
__________________
Мой мод на Xash
Отправлено Sigurth 26-03-2021 в 14:25:
Цитата:
Aynekko писал:
Проблема с лагающим punchangle решилась банально с помощью delta.lst.
Вместо 8.0 поставил 32.0 и все отлично стало.
Я сейчас на голдсорсе попробовал, все работает. А я городил, как обычно, непонятно что)__________________
Никогда не поздно сделать мод под хл1
Отправлено Shapirlic 30-03-2021 в 18:49:
gEngfuncs.COM_LoadFile( char *path, int usehunk, int *pLength );
Кто нить знает за что отвечает usehunk?
Отправлено Дядя Миша 30-03-2021 в 19:19:
В какую область памяти положить загруженный файл. Чтобы не было неожиданностей, следует использовать только число 5.
C++ Source Code:
2 | buf = Hunk_AllocName (len+1, base); |
4 | buf = Hunk_TempAlloc (len+1); |
6 | buf = Z_Malloc (len+1); |
8 | buf = Cache_Alloc (loadcache, len+1, base); |
12 | buf = Hunk_TempAlloc (len+1); |
В кваке пятого режима нет, в халфе там malloc
Это говно было нужно под DOS, т.к. там не было системного менеджера памяти.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Shapirlic 31-03-2021 в 11:24:
Цитата:
Дядя Миша писал:
В кваке пятого режима нет, в халфе там malloc
Это говно было нужно под DOS, т.к. там не было системного менеджера памяти.
Понял, спасибо за ответ.
Но есть ещё вопросы вдогонку
От чего может COM_LoadFile тупо падать при загрузке файлов, которые обычно у него не вызывают проблем? Гружу tga/dds текстуры, и на некоторых уровнях при загрузке падает. При этом если ставить usehunk = 2 то работает, причём и тот конкретный уровень с багом, и пол компании ХЛ я прошёл с usehunk = 2. Исходя из твоих слов лучше убрать usehunk 2 и поставить 5, но интересно, какого хера с пятёркой вылетает.
Отправлено Дядя Миша 31-03-2021 в 11:29:
Цитата:
Shapirlic писал:
и на некоторых уровнях при загрузке падает.
а где конкретно?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024