Правка хитбоксов в зависимости от пинга
Автор Sukhov, 10 Июн 2010 13:09
Сообщений в теме: 19
#1
Отправлено 10 Июнь 2010 - 13:09
При стандартных настройках: игрок параллельно перемещаясь вместе с врагом, стреляет в него в упор из дробовика, но тот не умирает. Но как только он стреляет чуть позади бегущего противника, тот сразу же умирает.
При изменённых настройках: при всех тех же условиях противник умирает сразу же при прямом попадании. Нет необходимости стрелять чуть позади.
ПОЧЕМУ ТАК ПРОИСХОДИТ. ТЕОРИЯ.
Сервер отсылает клиентам местоположения игроков. Эти данные приходят конечно не мгновенно, а с задержкой возникающий при преодолении расстояния между сервером и клиентом. Т.е. клиент видит игроков на некоторое равное этой задержке время позднее. Если мы начнём сейчас стрелять по противнику, то не попадём, т.к.он на самом деле уже переместился на другое место. Чтобы компенсировать этот эффект у каждой многопользовательской игры есть свои механизмы. Разработчики БФ игр делают это традиционно смещением хитбокса. Но так как невозможно смещать его под каждого конкретного игрока с его отличающимся пингом, они смещают его для некоторого среднего пинга равного 100 мс. Если ваш пинг больше или меньше этого значения, то эта статья может вам пригодится.
Так как же это исправить? Очень просто. Вам нужно определить средний пинг к серверам на которых вы обычно играете.
Тут важно уточнить, что правильный только пинг отображаемый в браузере серверов. В самой игре отображается не пинг, а совсем другая величина.
Представим для примера что ваш пинг до большинства серверов равен 45 мс. Теперь чтобы произвести изменения нужно открыть файл GameSettings.ini (Мои Документы\BFBC2\GameSettings.ini) и после строк:
IntroPlayed=1
ServerFilterSettings=yes,yes,no,no,no,yes,na
но до строки:
[GstPersistence]
добавить следующие строки:
SettingsManager.floatSet GSDefaultLatencyCompensation 0.0450000
SettingsManager.U32Set GSInterpolationTime 45
Числовые значиния меняем конечно на таковые под ваш пинг.
Таким образом мы получаем хитбокс расположенный непосредственно на модели противника и вы попадаете в него при стрельбе непосредственно по нему, а не позади. Естественно ета настройка уже не будет работать при игре на сервере с отличающимся от настройки пингом. Но разница в +/- 20 мс не ощущается.
Кто пробовал?
При изменённых настройках: при всех тех же условиях противник умирает сразу же при прямом попадании. Нет необходимости стрелять чуть позади.
ПОЧЕМУ ТАК ПРОИСХОДИТ. ТЕОРИЯ.
Сервер отсылает клиентам местоположения игроков. Эти данные приходят конечно не мгновенно, а с задержкой возникающий при преодолении расстояния между сервером и клиентом. Т.е. клиент видит игроков на некоторое равное этой задержке время позднее. Если мы начнём сейчас стрелять по противнику, то не попадём, т.к.он на самом деле уже переместился на другое место. Чтобы компенсировать этот эффект у каждой многопользовательской игры есть свои механизмы. Разработчики БФ игр делают это традиционно смещением хитбокса. Но так как невозможно смещать его под каждого конкретного игрока с его отличающимся пингом, они смещают его для некоторого среднего пинга равного 100 мс. Если ваш пинг больше или меньше этого значения, то эта статья может вам пригодится.
Так как же это исправить? Очень просто. Вам нужно определить средний пинг к серверам на которых вы обычно играете.
Тут важно уточнить, что правильный только пинг отображаемый в браузере серверов. В самой игре отображается не пинг, а совсем другая величина.
Представим для примера что ваш пинг до большинства серверов равен 45 мс. Теперь чтобы произвести изменения нужно открыть файл GameSettings.ini (Мои Документы\BFBC2\GameSettings.ini) и после строк:
IntroPlayed=1
ServerFilterSettings=yes,yes,no,no,no,yes,na
но до строки:
[GstPersistence]
добавить следующие строки:
SettingsManager.floatSet GSDefaultLatencyCompensation 0.0450000
SettingsManager.U32Set GSInterpolationTime 45
Числовые значиния меняем конечно на таковые под ваш пинг.
Таким образом мы получаем хитбокс расположенный непосредственно на модели противника и вы попадаете в него при стрельбе непосредственно по нему, а не позади. Естественно ета настройка уже не будет работать при игре на сервере с отличающимся от настройки пингом. Но разница в +/- 20 мс не ощущается.
Кто пробовал?
#4
Отправлено 16 Июнь 2010 - 12:44
Подобное было в 2142, тока там прога была, Хитфиксер. У этой проги интересная между прочим история создания, а создавалась она для айм бота
#6
Отправлено 16 Июнь 2010 - 13:24
Сухов, суть хитфиксера в том что бы менять настройки в cfg файлике.
#7
Отправлено 16 Июнь 2010 - 14:36
но делалось это через консоль, если позабыл.Сухов, суть хитфиксера в том что бы менять настройки в cfg файлике.
#8
Отправлено 16 Июнь 2010 - 15:08
Это есть в любой игре, этого не может не быть. Это как гравитация на планете земля.
Наличие хитфиксера утыкается всего в две вещи-
1. Как пишутся конфиги. Если конфиги это cfg файло, то сам бог велел. А если конфиг пишется в шифрованных внутреигровых файлах то всё становится сложнее.
2. Античитная система.(ага, так и есть) Если игра считает хеш каждого своего файла (было такое и не раз) то всякое изменение внутри файла влечет изменение хеша и как следствие бан за читовство.
P.S. cfg меняется через консоль программы Блокнот )))))
Наличие хитфиксера утыкается всего в две вещи-
1. Как пишутся конфиги. Если конфиги это cfg файло, то сам бог велел. А если конфиг пишется в шифрованных внутреигровых файлах то всё становится сложнее.
2. Античитная система.(ага, так и есть) Если игра считает хеш каждого своего файла (было такое и не раз) то всякое изменение внутри файла влечет изменение хеша и как следствие бан за читовство.
P.S. cfg меняется через консоль программы Блокнот )))))
Сообщение отредактировал flugger: 16 Июнь 2010 - 15:09
#9
Отправлено 16 Июнь 2010 - 15:35
Мама, ты просто ту прогу не юзал, о которой нодя говорит. Там команда на изменение cfg вводилась из игры через консоль.
#10
Отправлено 16 Июнь 2010 - 15:59
Ну ок, хотя всё равно найдутся умельцы которые нет нет, да втиснут оверлейчик с консолью. Или проще- как сервер рестартовать через чат.
#11
Отправлено 17 Июнь 2010 - 18:33
Не, просто та прога упрощала изменение, а так по сути все тоже самое только ручками =))
#12
Отправлено 18 Июнь 2010 - 14:48
Сейчас на перекуре коллега неравнодушный к батле, мне практически глаза открыл ))))
Короче пишется тупой как пробка скрипт на мышку, который в момент нажатия кнопки отодвигает курсор на пиксель-два-три (скока надо) против последнего движения. И никаких хитбоксов править не надо Говорит привыкаешь быстро, стреляешь метко =)
Короче пишется тупой как пробка скрипт на мышку, который в момент нажатия кнопки отодвигает курсор на пиксель-два-три (скока надо) против последнего движения. И никаких хитбоксов править не надо Говорит привыкаешь быстро, стреляешь метко =)
#18 Гость_bulldozer_*
Отправлено 29 Октябрь 2012 - 03:28
Ну как там с ХБ в коде обстоит вопрос? Что, нет спецов в этой области?
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 скрытых