Потеря координат!

 
UA lordslavik #30.05.2006 21:32
+
-
edit
 

lordslavik

новичок
как избавиться от подобной штуки, когда персонажа телепортирует произвольно в любые части карты?
 

Murkt

Pythoneer

Сами бы знать хотели. До сих пор не выловили.
[team Їжачки - сумні падлюки]  
+
-
edit
 

magister

разработчик l2j-сервера
кстати до изминения в системе передвижений, насколько помню это вроде не было... ::)
Если ты подолгу всматриваешься в бездну, она, в свою очередь, начинает всматриваться в тебя.  

Krab

разработчик l2j-сервера
Как я говорил (#523 (Телепортит в разные места, непонятно почему.) – L2J Fortress) что до последней доработки движка Баллом, народ бросало раз в 100 меньше.
Russian Mafia TEAM (RMT) Lineage 2 C4 Server (L2J Fortress) www.la2c4.ru  
+
-
edit
 

MetAleX

клан PACCBET
а не пробовали для поиска причины вставить код, чтобы при резком изменении координат (и это не телепорт/СоЕ) логировать стэк трейс?
MetAleX & Almalexia & Lia - забросил Server: Hindemith  
+
-
edit
 

Balancer

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


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

Сейчас это безобразие пресечено.

Есть два метода расчёте перемещений (см. настройку доверия координатам клиента).

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

2. Мы не верим координатам клиента, а всё считаем на сервере. В этом случае телепортов таких не будет, но клиент регулярно будет "немного подёргиваться" - сервер будет перепосылать ему каждый раз серверные координаты.

...

В принципе, можно ещё сделать третий вариант, модификацию первого. Запретить автотелепорты (или сделать максимальную дистанци настраиваемую). Т.е. фактически забивать на разницу, задействовав старые алгоритмы. Ну так сделайте. Господи, это одну строчку добавить в clientpackets/ValidateLocation.java
 
+
-
edit
 

Balancer

администратор
★★★★★
а не пробовали для поиска причины вставить код, чтобы при резком изменении координат (и это не телепорт/СоЕ) логировать стэк трейс?
 


См. выше причины - это сделано специально.
 
+
-
edit
 

magister

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

Сейчас это безобразие пресечено.

Есть два метода расчёте перемещений (см. настройку доверия координатам клиента).

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

2. Мы не верим координатам клиента, а всё считаем на сервере. В этом случае телепортов таких не будет, но клиент регулярно будет "немного подёргиваться" - сервер будет перепосылать ему каждый раз серверные координаты.

...

В принципе, можно ещё сделать третий вариант, модификацию первого. Запретить автотелепорты (или сделать максимальную дистанци настраиваемую). Т.е. фактически забивать на разницу, задействовав старые алгоритмы. Ну так сделайте. Господи, это одну строчку добавить в clientpackets/ValidateLocation.java
 

полностью согласен, вот старые алгоритмы не повлияют на новые? Главное чтобы было хорошо... :) Вроде мои игроки не кричали по данной проблеме, провалов вроде нет... С атакой тоже, нормально... Больше обращают внимание на атаку мобов, но это уже АИ мобов. :)
Если ты подолгу всматриваешься в бездну, она, в свою очередь, начинает всматриваться в тебя.  
+
-
edit
 

MetAleX

клан PACCBET
Сорри за много букв.

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

По (1) вопрос: позволит ли это устранить фичу хождения через стены и препятствия из-за отсутствия геодаты? Когда тыкаешь мышом за препятствие, или таргетишь невидимого моба/игрока за стеной или за дверью, делаешь рестарт, и ты внутри?

К чему был мой пост - играл одно время на сервере РМТ, там один из основных глюков, который игроки прозвали "унстуцком" проявляется так: пропадают мобы и сопартицы вокруг тебя. Как я понимаю, на сервере по какой-то непонятной причине тебя резко переносит в другую часть карты. Если стоять и ничего не делать - ничего и не будет, клиент думал что ты стоял где стоишь, на сервере же ты продолжаешь стоять черт-те-где куда тебя по непонятной причине перенесло. Если кликнуть мышкой рядом с тем местом где стоишь, некоторое время ничего не происходит, или ты медленно-медленно ползешь к тому месту куда кликнул. На сервере же ты явно бежишь со всех ног с места куда тебя перекинуло в место куда ты кликнул. Беда в том, что по дороге ты собираешь всех агров :( Лекарство - СоЕ, БСоЕ пока продавался в кланхоллах по 1К аден, или /унстуцк :) При этом нередко заносит в другую часть карты - деревню эльфов из ТоИ, например.

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

Причина, как я понял, в том что по непонятной никому причине сервер иногда переносит игрока в совершенно другое место. Второй большой глюк - не работающие свитки ресурректа, саммоны... Но сейчас не об этом.

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

Вот к чему был мой пост.
MetAleX & Almalexia & Lia - забросил Server: Hindemith  
AD Реклама Google — средство выживания форумов :)

Murkt

Pythoneer

иХом с февраля уже не мой сервер...
[team Їжачки - сумні падлюки]  

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru