Перейти к публикации
View in the app

A better way to browse. Learn more.

VimeWorld - Форум

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

===== ТО, ЧТО ДЕЙСТВИТЕЛЬНО НАДО ФИКСИТЬ, А НЕ СОФТЫ ВАШИ =====

Featured Replies

Опубликовано:
  • Популярное сообщение

Для тех, что читает по диагонали:

 

РЕЧЬ НЕ ПРО УДОЧКИ, А ПРО ОТДАЧУ С МЕЧА (РУКИ)

 

 

Для чего мы обычно используем удочку в пвп? - Правильно, чтобы откинуть соперника и получить преимущество.

Запомним это и перейдем к проблеме.

 

Все мы видели игроков, отлетающих на 0.5 блоков и откидывающих на 7? Как это работает? Почему иногда мы сами почти не отлетаем, а соперник откидывается на значительное расстояние?

 

Сейчас я собираюсь все для вас объяснить.

Все дело в версии 1.6.4, на которой работает MiniGames, а точнее в коде обработки сетевых событий.

Сервер держит список игроков онлайн в определенном порядке, - в том, в котором они зашли (последний подключившийся - в конце списка).

Также сервер занимается тем, что рассчитывает "кто сколько должен получить урона", "кто сколько должен отлететь", "кто куда должен падать"; затем он отправляет обновленные данные самим игрокам (клиентам), чтобы те видели что произошло.

 

Сервер также получает пакеты и от игроков: когда вы двигаетесь у себя на экране (нажали идти вперед), на сервер сразу отправляется "movement" пакет, чтобы тот мог его обработать и отправить остальным игрокам новую информацию (чтобы и они увидели, что вы идете вперед). И в чем же тут прикол? А в том, что разные пакеты отправляются в разное время, по отношению к расчету "физики" для каждого игрока.

 

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

И только в конце он отправит всем клиентам новые данные.

 

И вот тут момент: если первый игрок ударил второго (отправил пакет "атаки"), то сервер применит этот пакет и рассчитает отдачу для второго игрока, еще не дойдя до самого второго (он еще не закончил с первым), а когда дойдет, то применит к нему ту самую физику (включая трение).

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

 

Отсюда и берется баг с отдачей. Т.е. у одного из игроков всегда есть преимущество по откидыванию, а следовательно удочка не сделает особой погоды. Конечно, умные догадались, что предложение не в том, чтобы убрать удочку, а в том, чтобы пофиксить баг.

 

Стоит отметить, что "потеря" силы отдачи может достигать почти 100% (при большом количестве movement пакетов), т.к. для каждого movement пакета расчет физики уменьшит

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

 

Вот ссылка на комментарий, в котором описывалась природа этого бага на офф. багтрекере майнкрафта.

(Там же, приведена ссылка на патч-багфикс для Bukkit сервера)

 

 

Тема была создана не в тех.разделе, а в идеях и предложениях, т.к. первый имеет меньшую популярность.

Изменено пользователем mr_box

Опубликовано:
  • Автор

Так то я уже создавал тему насчет этого бага, но она так и ушла в бездну других. Пожалуй там я не очень постарался описать баг.

Надеюсь, хоть эту тему главный кодер рассмотрит.

Изменено пользователем mr_box

Опубликовано:

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

 

+, старался челик

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Account

Navigation

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.