Akumu 1117 Опубликовано 9 октября, 2012 А знали ли вы.. что в клиент л2 встроена система компенсации лагов со стороны сервера? Дисклеймер: Данная тема не несёт никаких технических деталей процесса, и если вы ожидали инструкцию по её реализации - вы здесь её не найдете. Допустим представьте всем известный CS, и представьте, каким же образом сервер отрабатывает попадания пуль игроков при учете разного пинга? Ну представьте ситуацию: два игрока на линии с ощутимыми/средними пингами. Первый игрок начинает идти прямо, а второй готовится выстрелить ему в бок. Таким образом, игрок В увидит что игрок А начал движение через "(пинг игрока А) + (пинг игрока В)" миллисекунд. Здесь мы получаем небольшую проблему: Игрок В стреляет в то место, где игрок А был (пинг игрока В) миллисекунд назад, и как бы точно он не стрелял, он не попадет, ибо игрока по серверу там больше нет. Как же тогда сервер определяет все эти вещи верно? Вот для этого и разработана был пресловутая система компенсации лагов, принцип которой сводится к "отматыванию" времени сервера на (пинг игрока В) миллисекунд и сравнивая расположение игрока А в то время когда выстрелил игрок В. И мало кто знает что подобная система имеется в клиенте с незапамятных времен (на С3 точно была, ниже не смотрел). Реализация есть в Л2ОФФ и ещё паре частных проектов. Простите за столь много воды, надеюсь вы её осилили и вам было так же интересно как и мне 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 9 октября, 2012 Видимо тут ещё нет людей интересующихся подобными вопросами, прискорбно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Noobasik24 214 Опубликовано 9 октября, 2012 Интересно,ток непонимаю смысла делать это в ла2,там же нет нон таргет системы Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 9 октября, 2012 В л2 это есть и используется, но в синхронизации движений персонажа. Всем надоели провалы под землю, не так ли? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
genokk22 174 Опубликовано 9 октября, 2012 Незнал)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Noobasik24 214 Опубликовано 9 октября, 2012 Да,провалы эт что то особенно твое красноречие после провала Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SmokiMo 892 Опубликовано 9 октября, 2012 Not Bad. Демон пропьется, и поковыряем эту тему 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 9 октября, 2012 Not Bad. Демон пропьется, и поковыряем эту тему Я вот только расковырял Теперь у меня полная синхронизация движений как на л2офф Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 9 октября, 2012 Там конечно целая тьма приблуд как сказали выше что у нас не ноутаргет. Много интересных вещей сделано в л2оффе на базе этой идеи. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 9 октября, 2012 (изменено) Дапм с Т0: C-> A8=NetPing:d(kID)d(PING)d(dta) S-> D3=NetPing:d(kID) инициатор S От плюсов не откажусь Изменено 9 октября, 2012 пользователем Akumu 3 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
qwe923 3 Опубликовано 9 октября, 2012 пингер видел у многих, но он только кикал если ответ не приходил и пинг не использовался. что хранит dta?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 9 октября, 2012 Пингер это бредня которую сделала опентим (если я правильно помню), по сути бестолковая вещь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xINVIZIBLx 67 Опубликовано 17 октября, 2012 Могу конечно ошибаться. Сильно какашками не кидайтесь. На Оверх пакет ExShowTrace? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xINVIZIBLx 67 Опубликовано 18 октября, 2012 UP Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 18 октября, 2012 Могу конечно ошибаться. Сильно какашками не кидайтесь. На Оверх пакет ExShowTrace? Нет. Оно ни в одной сборке (из тех что в паблике) не реализовано. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
qwe923 3 Опубликовано 18 октября, 2012 проверять на максимальное отклонение относительно нетпинг и если больше посылать валид.лок? заметил что если ничего не делать пинг = 1, значит не всегда нужно учитывать его) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 18 октября, 2012 если ничего не делать пинг = 1 Это не пинг вам приходит, а дельта. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xINVIZIBLx 67 Опубликовано 6 ноября, 2012 Нашел засвет формулы рассчета в Over`ах Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xuser 122 Опубликовано 6 ноября, 2012 Вообще многие java сервера ведут себя не совсем корректно. Отправляют многие информационные пакеты когда им вздумается, а пакеты клиента с запросом этой информации игнорируют. К примеру ни в фрозене, ни в линках пакет RequestSkillCoolTime не реализован. Не говоря уже о подобной системе. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 6 ноября, 2012 Вообще многие java сервера ведут себя не совсем корректно. Отправляют многие информационные пакеты когда им вздумается, а пакеты клиента с запросом этой информации игнорируют. К примеру ни в фрозене, ни в линках пакет RequestSkillCoolTime не реализован. Не говоря уже о подобной системе. И такого больше, чем вы можете себе представить. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xINVIZIBLx 67 Опубликовано 15 ноября, 2012 UP Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xINVIZIBLx 67 Опубликовано 2 июня, 2013 С какой переодичностью сервер посылает пакет NetPing? Intrelude 30 секунд или 60? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xINVIZIBLx 67 Опубликовано 2 июня, 2013 (изменено) Сервером шлем в пакете System.currentTimeMillis. Клиент нам отвечает своим System.currentTimeMillis. Делаем разницу и дальше что с ней, а так же что делать с третьим параметром пакета? У меня стабильно шлет третий параметр пакета 6144. Изменено 2 июня, 2013 пользователем xINVIZIBLx Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
xINVIZIBLx 67 Опубликовано 23 ноября, 2013 Up Akumu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Akumu 1117 Опубликовано 23 ноября, 2013 Реверсим тот же GF сервер и получаем нужные данные. В этом топике лишь теория, рабочий код вам никто не даст Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты