И если он делает какие то манипуляции, то отправлчет пакет валидейтлокейшн? Или мувтулокейшн, мув вроде отправлчется после тп. Там еще есть пакет от клиента, забыл как называется, что то MoveBack...чтототамToLocation, что он запрашивает?Для всех пакетов координат, отправляемых сервером надо прибавлять 16 координат по Z(для пакета CharInfo, который отвечают за прорисовку в игровом мире тоже).
А вот пакет CharSelectionInfo используется для прорисовки в лобби и к нему добавлять не надо, потому что текстура смещена вниз - но это уже не точно.
ValidatePosition нужен чтобы синхронизировать координаты клиент-сервер. Клиент отправляет запрос с данными, сервер сравнивает со своими и при необходимости делает манипуляции с персонажем для синхронизации.
Прибавляю я 16, перс появляется в правильных координатах, но потом все равно проваливается по письку в текстуры как будто так и надо, что может быть не так ?ValidatePostion: если манипуляции требуются, то сервер отправляет ValidateLocation для синхронизации. Но фактически он не должен постоянно использоваться, он нужен для фикса существенного десинхрона координат при большом пинге.
MoveBackwardToLocation - это пакет клиента точки, в которую ты хочешь переместиться(мышкой тыкаешь\клавиатурой). Если мышкой, то из Z надо в нем вычесть 27))) а дальше строить логику перемещения и возвращаем клиенту CharMoveToLocation - персонаж начинает перемещаться в нее с той скоростью, которая была задана в CharInfo.
Ошибся кстати. при передвижении мышкой в пакете MoveBackwardToLocation надо наоборот - прибавить 27 "Z"координат, т.к. по умолчанию мышь немного под землю кликает.
Ну да, без CharInfo перс же не прогрузится в мире. А что за коллизии?Может ещё влиять высота коллизии модели, она тоже в пакете вроде присутствует. И отправляли ли CharInfo после CharSelectionInfo?
Не подключал геодату. Геодата в клиенте? Оо Да и разве без геодаты нельзя ровно по координатам поставить персонажа?геодату подгружаете? Если подгружаете, вы ее смотрели в клиенте как она выглядит, как расположены ее квадраты?
Во всех сборках она статическая и берется из конфигов геодаты вроде, но я увеличивал число, перс так же появляется в воздухе, и просто падает, и останавливается по пояс в текстурах, может что то еще может влиять на это? Я после ентер ворлда, высылаю сразу юзеринфо, может проблема в отсутствии какого то пакета?Высоту коллизии пробовали менять в CharInfo?
Она сразу после скоростей передвижения указывается
У меня нету интернета на скайп, да и на сборку мою еще не существует геодаты, да и геодата же как то реагирует из пакеткой?Друг тебе нужно точно геодату и включить ее в дебаг в клиенте. Если рили нужна помощь отпиши мне в скайп помогу.
Понял, спасибо )Вообще коллизия отвечает за «рост» каждой модельки, у каждой рассы, моба, Пета он свой. Её значение есть в скелете моделей в клиенте, она определяет на какую высоту нужно поднять центр скелета чтобы ногами она стояла на земле, где земля берётся за условный 0. В пакетах указывается её значение чтобы её подкорректировать при необходимости.
Вообще непомню, чтобы какой то обработчик геодаты при её отсутствии ронял персонажа под землю, без передвижения. Вроде бы только если вы двигаетесь по неровной поверхности, и сервер неверно определяет z координату. А в вашем случае вообще кажется никакие дополнительные пакеты не отправляются - так что пробуйте менять collisionHeight. Возьмите параметры для той расы и пола которую вы передаете из любого сервера. И если это не поможет возьмите сниффер и посмотрите на каком нибудь сервере всю цепочку пакетов и их параметры
Видимо очень беглоПонял, спасибо )
P.S. Интересно, скрин кто нибудь смотрел?
Я так и понял, а то про геодаты тут заговорили какие тоВидимо очень бегло
Видимо очень бегло
Кстати, еще одна беда )Скорость передвижения перса почему то 0, хотя в пакете я выставляю скорость, есть еще какие то интересные переменные о которых я не знаю?ValidatePostion: если манипуляции требуются, то сервер отправляет ValidateLocation для синхронизации. Но фактически он не должен постоянно использоваться, он нужен для фикса существенного десинхрона координат при большом пинге.
MoveBackwardToLocation - это пакет клиента точки, в которую ты хочешь переместиться(мышкой тыкаешь\клавиатурой). Если мышкой, то из Z надо в нем вычесть 27))) а дальше строить логику перемещения и возвращаем клиенту CharMoveToLocation - персонаж начинает перемещаться в нее с той скоростью, которая была задана в CharInfo.
Ошибся кстати. при передвижении мышкой в пакете MoveBackwardToLocation надо наоборот - прибавить 27 "Z"координат, т.к. по умолчанию мышь немного под землю кликает.
Да из пакет мой отправляет все, просто не все параметры правильно выставлены или вообще не выставленыТам около 6 скоростей для разных жизненных ситуаций отправляется, и еще 2 мультиплаера. Ты точно все отправляешь ?)
Та что отображается в статах - в UserInfo, а та что в CharInfo - отвечает за скорость анимации. Но может и в userinfo что то за скорость анимации отвечает, надо тестить
Мне хватает всего 1 инструмента - сниффер NetPro от l2 emu unique. Можно вручную получить расшифровку пакета, если не все параметры будут известны, то хотя бы формат для выбранных хроник будет вернымДа из пакет мой отправляет все, просто не все параметры правильно выставлены или вообще не выставленыМожет знаешь, где можно посмотреть адекватное описание CharInfo?
о, сенк, а то я юзал пакетхак а там эти пакеты не правильно отображаются для хфМне хватает всего 1 инструмента - сниффер NetPro от l2 emu unique. Можно вручную получить расшифровку пакета, если не все параметры будут известны, то хотя бы формат для выбранных хроник будет верным
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?