Читерство в Battlegrounds

Сегодня столкнулся с такой проблемой: играл против Лича, нанёс ему 16 урона, у него было 12, думал вынес его, а в сводке показывает, что ничья, причём против другого игрока было точно также, хотя, когда нанёс ему уже 9 урона, то засчитало ущерб по его лицу. Оттого вот какой вопрос: есть ли читы в игре или у меня просто галюны, потому что выиграл у него раунд, а показывает, что нет. Скриншот сделал только сводки, так как, после нанесения ему 9 урона, в следующий раз проиграл ему раунд. Встречал ли кто-то такую же проблему или может это на серваках баг какой-то?

Лайков: 1

Это распространённая проблема. С читами никак не связано - просто внутриигровой баг.
Как и почему он появляется я не знаю.
Вроде скоро обещали исправить.

2 лайка

это баг. в редких случаях происходит рассинхронизация и игроку показывают совсем не те размены, которые происходят на сервере, поэтому вам показалось, что вы победили, но для сервера это была ничья.

Лайков: 1

Странный баг вообще, по идее ж клиент ХСа в данном случае выступает просто как навороченный видеоплеер, а все просчёты происходят на сервере, а там вряд ли 20 разных исходов генерируется, с чем может быть рассинхрон?

5 лайков

А разве там не так работает, что просчитывается заранее какой-то результат битвы а игроки просто смотрят “повтор”, но уже с анимациями?

6 лайков

мне кажется, рассылать каждую атаку дорого, дешевле выслать сид рандома, который клиент будет сам использовать для просчёта всех рандомных событий. но, очевидно, иногда что-то идёт не так.
но я не копался и наверняка ничего утверждать не буду. факт, что два игрока, которые друг с другом сражаются, могут видеть разные картинки. раньше это происходило чаще, видимо большую часть проблемных ситуаций пофиксили, но что-то ещё осталось.

4 лайка

Вряд ли там каждая атака, скорее всего просто присылают готовый набор команд, которые клиент превращает в анимации. Да даже и сид рандома тоже должен работать, на то он и сид, чтобы быть одинаковым

Лайков: 1

У меня недавно была ситуация которую никак не списать на рассинхрон.
Играл на Короле-Личе, взял на первый ход Михуренка и повесил на него перерождение. У противника оказался тоже Михуренок, но естественно без перерождения. Логично что после разменов один с хрипа остался на моей стороне и я увидел анимацию нанесения противнику двух единиц урона.
Но посмотрев в лог увидел, что показало у противника полное здоровье и урон в ноль как будто размены происходили без перерождения.

2 лайка

Частый баг, уже больше года как исправляют.
Понятно что из-за разсинхронизации клиент-сервера, НО в таверне что купил, то и осталось, вот как так? Бой и результаты - разные, а в режиме таверны всегда все ок?

Учитывая сказанное здесь могу предположить следующую картину:

  • На самом деле расчёт происходит на стороне пользователя, со стороны сервера только пересылка “ключа рандома”, юнитов противника и проверка результатов. Это кстати довольно распространённая система в мобильных играх т.к. уменьшает и требования к мощности серверов, и к стабильности/силе интернет соединения.

  • Соответственно вы просто получаете ключ в начале игры, а во время раунда состав противника, рассчитываете всё на своей машине и отправляете результат на сервер.

  • Сервер сверяет результат и в случае совпадения просто принимает его.

Что происходит в случае не совпадения результатов?

  • По какому-то признаку сервер выбирает один из результатов и принимает его. Второй отбрасывается. Признаком может быть как простое подбрасывание монетки, так и что-то более сложное. Например мне известно про использование такой системы как “рейтинг доверия” в другой игре. Принимается результат от игрока с наибольшим рейтингом, но понижается на время он у двоих т.е. если вы подделываете результат, то через пару попыток ваш рейтинг опускается на дно и сервер перестаёт принимать ваш результат.

То есть все такие случае - читы?

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

Вы описали возможность использования читов/стронних программ для подмены пакетов. Чем породили в неокрепших умах подкрутчиков новые теории “заговора”.
Хотя интересное предположение: “Сервер отправляет двум игрокам одинаковые пакеты последовательности ударов и срабатывания эффектов”, НО почему тогда ОДИНАКОВЫЕ пакеты срабатывают по разному?

Сервер не отправляет вам удары. Он скидывает ключ, например 1378 и например состав противника в виде кода 167498. У ваш состав например 34569. И зная составы + ключ можно высчитать какой-то результат. Но вычисления происходят уже с вашей стороны.

Разные пакеты могут дать одинаковый результат из-за коллизий. Самый простой пример: остаток от деления числа 7 на 5 - 2, но этот же остаток даст и деление числа 12 на 5. И 17. Разумеется наверняка используется более сложный ключ, чем я вам привел, но нет никаких гарантий, что в нём не возможно что-то аналогичное.

Лайков: 1

Всего по 7 существ, у каждого есть GUID (ID), я бы отправлял пакет с такими данными:

  1. кто первый бьет, основываясь на закупе
  2. какое ID бьет другое ID
  3. какое ID призывает/срабатывает на нужное (рандомное) ID.

А получал с клиента исход битвы в виде нанесенного повреждения.

НО ИМХО, это лишь догадки.

Я предполагаю, что вместо всего этого скидывается только условный ключ, который учитывается во всех формулах т.е. пакеты выглядит:

  • существа противника
  • Ключ

И уже на стороне игрока определяется “вот у меня существо с ID 101, поделить на ключ 25, остаток 1 = атакуем второе существо”. Всё таки скидывать весь порядок ударов значит, что расчёты производятся полностью на стороне сервера и тогда пользователь действительно просто смотрит кинцо.

Не думаю что близзы пойдут на что-то другое, иначе это будет охеренная такая уязвимость…

Ну мы как бы и видим эту уязвимость xD Тут стоит понимать, что это бизнес и тут стоит учитывать риски/прибыль(расходы). Грубо говоря раз в 10000 игр происходит такой баг, но при этом в ХС может играть на 10000 людей больше из-за меньших требований к интернету.

При этом создать стабильные читы не выйдет из-за упомянутого “рейтинга доверия”.

так там рассчёты элементарные. дектреккер делает 10000 рассчётов на рандомных ключах за секунду, чтобы определить вероятности победы и поражения. я думаю, серверу проще самому посчитать, чем доверять это клиентам. просто рассылать результаты и потом их парсить лень.

Лайков: 1

Сервер делает несколько боёв и выдаёт нужный на основе какого-нибудь показателя. Кто больше вдонатил, у кого винстрик, кто нахайролил как скот, у кого батлпас

Вы забыли учесть фазы луны, день недели, сумму координат на глобусе в точках сидения игроков, скорость ветра на Камчатке, стоимость барелля нефти в валюте Камбоджи, время в Сиднее, температуру воздуха на самой высокой горе в Перу, массу колибри в унциях и ещё некоторые не столь значительные вещи.

3 лайка

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