HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Странный баг в предиктинге оружия
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 409

Рейтинг



Unhappy Странный баг в предиктинге оружия

В очередной раз запиливая оружия для своего мода заметил одну интересную вещь: метод Primary/SecondaryAttack() на стороне клиента вызывается огромное количество раз, причем чем больше пинг - тем больше вызовов происходит.

Добавил такой код в соответствующую функцию:

C++ Source Code:
1
void CGlock::PrimaryAttack()
2
{
3
  ...
4
#ifdef CLIENT_DLL
5
  ALERT(at_console, "glock fire %.4f\n", m_flNextPrimaryAttack);
6
#endif
7
  ...
8
}


После чего полез в консоль проверять, и получил примерно такие результаты:
C++ Source Code:
1
fakelag 0:
2
cl:  glock fire -0.0010
3
 
4
fakelag 20:
5
cl:  glock fire -0.0540
6
cl:  glock fire -0.0410
7
cl:  glock fire -0.0410
8
cl:  glock fire -0.0280
9
cl:  glock fire -0.0280
10
cl:  glock fire -0.0150
11
cl:  glock fire -0.0150
12
cl:  glock fire -0.0010
13
cl:  glock fire -0.0010
14
 
15
fakelag 80:
16
cl:  glock fire -0.1610
17
cl:  glock fire -0.1480
18
cl:  glock fire -0.1480
19
cl:  glock fire -0.1480
20
cl:  glock fire -0.1480
21
cl:  glock fire -0.1480
22
cl:  glock fire -0.1210
23
cl:  glock fire -0.1210
24
cl:  glock fire -0.0940
25
cl:  glock fire -0.0940
26
cl:  glock fire -0.0810
27
cl:  glock fire -0.0810
28
cl:  glock fire -0.0680
29
cl:  glock fire -0.0680
30
cl:  glock fire -0.0680
31
cl:  glock fire -0.0540
32
cl:  glock fire -0.0540
33
cl:  glock fire -0.0280
34
cl:  glock fire -0.0280
35
cl:  glock fire -0.0280
36
cl:  glock fire -0.0010
37
cl:  glock fire -0.0010


Из-за этого порой происходит так, что на стороне клиента вместо одного выстрела происходит два, так как дважды проигрывается ивент (вместо одной гильзы вылетает две, остаётся две декали на стене и т.п). Подобную проблему замечал почти во всех модах, так похоже тут корень проблемы лежит либо в движке, либо в коде предиктинга из HLSDK.

Конкретно в моём проекте это вызывает две проблемы:
1. Некорректно работает чередование ударов катаной, может два раза подряд ударить влево/вправо, но по идее оно должно всегда чередоваться.
2. Ломается последовательность ударов в рукопашном бою, из-за чего выполнение комбо не представляется возможным.

Тестировал это всё дело на последнем на данный момент стимовском билде голды (8245), а также на древнем билде 4554. В обоих билдах эта проблема проявляется совершенно одинаково.
Может кто-нибудь что-то знает об этом баге?

Сообщить модератору | | IP: Записан
Сообщение: 179419

Старое сообщение 30-05-2019 05:56
- За что?
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 29620
Нанёс повреждений: 390 ед.

Рейтинг



SNMetamorph по ксашу где результаты?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему

Сообщить модератору | | IP: Записан
Сообщение: 179423

Старое сообщение 30-05-2019 07:17
-
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 409

Рейтинг



Цитата:
Дядя Миша писал:
по ксашу где результаты?

Скоро. Ждите.

Добавлено 30-05-2019 в 18:04:

Ну в общем. На ванильном ксаше у меня не получилось запустить мод, потому что мод, к сожалению, основан на новом HLSDK, который с репозитория Valve на гитхабе. Решил проверить в FWGS - и тут уже все интереснее:
При fakelag 50 получился такой результат. Так что в форке по крайней мере баг никуда не делся.

[ Вложение ]
con123.png

Отредактировано SNMetamorph 30-05-2019 в 09:06

Сообщить модератору | | IP: Записан
Сообщение: 179425

Старое сообщение 30-05-2019 09:04
- За что?
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 409

Рейтинг



Тут появились интересные подробности со связанной проблемой
https://github.com/ValveSoftware/halflife/issues/2467

Сообщить модератору | | IP: Записан
Сообщение: 179600

Старое сообщение 02-06-2019 18:11
- За что?
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 29620
Нанёс повреждений: 390 ед.

Рейтинг



Не прошло и пяти лет, как Зоркий Глаз обнаружил что fakelag крашит обновлённую халфу. Ну ниплоха! Я об этом писал кажется еще в 2016-м.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему

Сообщить модератору | | IP: Записан
Сообщение: 179602

Старое сообщение 02-06-2019 19:23
-
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 409

Рейтинг



Проверили баг вчера на выделенном сервере, проблема проявляется точно так же, как и с фейклагом. Дело явно не в нём.

Сообщить модератору | | IP: Записан
Сообщение: 179631

Старое сообщение 04-06-2019 07:27
- За что?
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 409

Рейтинг



Цитата:
SNMetamorph писал:
причем чем больше пинг - тем больше вызовов происходит

А это вот, мне кажется, как-то связано с флагом runfuncs.
Но это не точно, не проверял.

Сообщить модератору | | IP: Записан
Сообщение: 184817

Старое сообщение 16-10-2019 13:07
- За что?
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 409

Рейтинг



Там спустя столь много времени, все таки выяснили причину бага и сделали фикс
https://github.com/ValveSoftware/ha...mment-760270846

__________________
GoldSrc Monitor (https://gamebanana.com/mods/39429)
mdl-flip (gFlip analog) (https://gamebanana.com/tools/7299)
Xash3D Modding Discord (https://discord.com/invite/Ycgd9QqB9z)
PrimeXT (https://github.com/SNMetamorph/PrimeXT)

Сообщить модератору | | IP: Записан
Сообщение: 209346

Старое сообщение 22-05-2022 15:23
- За что?
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 29620
Нанёс повреждений: 390 ед.

Рейтинг



C++ Source Code:
flCreep = flTimeBetweenFires - m_flPrevPrimaryAttack; // postive or negative

Выглядит довольно крипово
К тому же мы этот баг с пушками с переменным успехом пытались починить:
1. на оригинальном HL SDK
2. в Ксаше
3. в Ксаше FWGS

Притом, что мне Альбатрос доказывал, что есть некотороые шероховатости с приёмом дельты и симуляцией предиктинга в оригинальном ксаше, но если их починить, то всё будет отлично. Но позвольте, я же прекрасно помню, как глючили клиентские пушки в оригинальном голдсорсе, когда никакого ксаша уже не было. Я даже в туторе про это дерьмо упоминал еще в 2004-м году.
Оно уже тогда всех доставало. И почему СолоКиллер говорит, что это якобы не для всех пушек помогает? База-то у них одна.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему

Сообщить модератору | | IP: Записан
Сообщение: 209353

Старое сообщение 22-05-2022 18:40
-
FreeSlave
Житель форума

Дата регистрации: Nov 2007
Проживает: Тула
Сообщений: 1030

Рейтинг



Цитата:
Дядя Миша писал:
И почему СолоКиллер говорит, что это якобы не для всех пушек помогает? База-то у них одна.

Он в следующем посте другое решение приводит же.

В hlsdk от FWGS кстати этот фикс влит

__________________
I'm on github
I'm on Open Build Service
I'm on opendesktop.org
Про капибар и не только

Сообщить модератору | | IP: Записан
Сообщение: 209366

Старое сообщение 22-05-2022 20:09
- За что?
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 29620
Нанёс повреждений: 390 ед.

Рейтинг



Чёрт меня дёрнул засунуть это в гугл

C++ Source Code:
1
BOOL CanAttack ( время атаки с плавающей запятой, время с плавающей запятой, BOOL isPredicted)
2
{
3
# если определено ( CLIENT_WEAPONS )
4
  если ( ! Предсказано )
5
# еще
6
  если ( 1 )
7
# конец
8
  {
9
    возврат (атака_время <= curtime)? ИСТИНА : ЛОЖЬ ;
10
  }
11
  еще
12
  {

Хотели бы так писать код?

Добавлено 23-05-2022 в 09:02:

ЗЫ. Все проблемы с предиктингом растут из-за того, что по сети гоняются числа с фиксированной точкой.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему

Сообщить модератору | | IP: Записан
Сообщение: 209376

Старое сообщение 23-05-2022 06:02
-
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 409

Рейтинг



Ещё кое какая инфа по теме
https://github.com/ValveSoftware/ha...mment-511884518

__________________
GoldSrc Monitor (https://gamebanana.com/mods/39429)
mdl-flip (gFlip analog) (https://gamebanana.com/tools/7299)
Xash3D Modding Discord (https://discord.com/invite/Ycgd9QqB9z)
PrimeXT (https://github.com/SNMetamorph/PrimeXT)

Сообщить модератору | | IP: Записан
Сообщение: 209706

Старое сообщение 11-06-2022 18:16
- За что?
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 29620
Нанёс повреждений: 390 ед.

Рейтинг



Та вы бы лучше чем совместимость ломать предиктинг бы починили.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему

Сообщить модератору | | IP: Записан
Сообщение: 209712

Старое сообщение 11-06-2022 20:09
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 17:56. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Странный баг в предиктинге оружия
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2022