Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
L2Character, L2PcInstance, L2PlayableInstance
#21
mountaineer Написал:Каждая кочка, камушек, каждая впадинка и пригорок обрабатываются как разные объекты? При столкновении с персонажем клиент дает сигнал или это рельеф?

Геодата представляет собой информацию о каждой клетке мира:
1. Высота точки
2. Тип точки (Single, Flat, Multilayer)
3. Собственно информацию по проходимости, которая представляет собой 4 бита - NSWE (North, South, West, East): 1 - по направлению разрешено движение, 0 - по направлению запрещено движение.
Ответ
#22
mountaineer Написал:С этого места поподробнее, не понял, тогда как он проверяет, что координаты верные, если карта рисованная?
Есть значит место где перечислены все координаты?
Или это работает как то по-другому? Ничего не понял, хоть убей.
Вот же заморочился ппц, спать спокойно не даетSmile Веселуха!


Во! Откуда берется и как проверяется координата? Мне вот это не понятно.

Начните с анализа пакетов между клиентом и сервером. Там вы и увидите как выглядит непрерывная синхронизация положения.
Родился, живу и когда-нибудь умру.
Ответ
#23
mountaineer Написал:Pointer*Rage, пожалуйста будьте так добры, а поясните мне принцип этих чисел " 16_20, .._.. ", милости прошу, какую роль играют и что за чем следует, я не могу разобраться никак, можете рассказать алгоритм работы? Я не могу никак понять как они обрабатываются Sad
16_20 - карта, 16 - номер тайла по оси X, 20 - номер тайла по оси Y.
Данные вещи тянутся еще из клиента, т.к. генерации геодаты идет именно по этим тайлам.

mountaineer Написал:Можете прям показать "кусок" скрипт-кода (или хоть что нибудь)", что не дает персонажу провалиться под карту?
Почти на всех серверах не реализованы падения. То что персонаж не проваливается в клиенте - заслуга коллизий террейна.


mountaineer Написал:Каждая кочка, камушек, каждая впадинка и пригорок обрабатываются как разные объекты? При столкновении с персонажем клиент дает сигнал или это рельеф?
В клиенте - да, каждый обьект обрабатывается отдельно. На сервере всех этих обьектов не существует, есть только общая карта проходимости.

mountaineer Написал:С этого места поподробнее, не понял, тогда как он проверяет, что координаты верные, если карта рисованная?
Потому-что на сервере существует, как я уже писал выше, карта проходимости, которая хранит высоту каждой точки и тип ее проходимости в дискретном виде.

mountaineer Написал:Есть значит место где перечислены все координаты?
Не понял вопроса.

mountaineer Написал:Во! Откуда берется и как проверяется координата? Мне вот это не понятно.
В каких случаях? При клике на бег, начальная и конечная точка отсылаются с клиента. Сервер синхронизирует начальную позицию и запускает движение к конечной точке, если оно возможно.
Если в случае всяких телепортов и т.д., то все эти значения можно найти в датапаке.
Сервер знает только о максимальных и минимальных величинах 3х осей всего мира, выйти за которые нельзя. На остальные куски наложена дискретная карта проходимости, а так же зоны (полигоны, которые, к примеру, могут определять точку рестарта персонажа и т.д.).
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#24
del
Какую сборку ковыряете то ?
Ответ
#25
Pointer*Rage Написал:16_20 - карта, 16 - номер тайла по оси X, 20 - номер тайла по оси Y.
Данные вещи тянутся еще из клиента, т.к. генерации геодаты идет именно по этим тайлам.
Вот спасибо, теперь понятно. Очень рад!Smile

Pointer*Rage Написал:Не понял вопроса.
Я думал есть место где перечисляются все координаты, чтобы якобы сверять их при движении, ну теперь уже понял, что сервер ничего не знает об этом.

Pointer*Rage Написал:В каких случаях? При клике на бег, начальная и конечная точка отсылаются с клиента. Сервер синхронизирует начальную позицию и запускает движение к конечной точке, если оно возможно.
Если в случае всяких телепортов и т.д., то все эти значения можно найти в датапаке.
Сервер знает только о максимальных и минимальных величинах 3х осей всего мира, выйти за которые нельзя. На остальные куски наложена дискретная карта проходимости, а так же зоны (полигоны, которые, к примеру, могут определять точку рестарта персонажа и т.д.).
То есть на самом деле все координаты отправляются с игры и сервер двигает, теперь понял, вы открыли глаза мне. Благодарю за все, отлегло Smile
Ответ
#26
mountaineer Написал:Я думал есть место где перечисляются все координаты, чтобы якобы сверять их при движении, ну теперь уже понял, что сервер ничего не знает об этом.
Клиент отсылает ValidatePosition и сервер или телепортирует (например чар очень быстро шлет его не от туда, откуда должен), или отбрасывает назад. Поэксперементируйте с пакетхаком. Удивитесь.
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#27
Zubastic Написал:Клиент отсылает ValidatePosition и сервер или телепортирует (например чар очень быстро шлет его не от туда, откуда должен), или отбрасывает назад. Поэксперементируйте с пакетхаком. Удивитесь.

Это делает не сервер, а клиент, на пакет ValidateLocation. Если дифференс по координатам больше геоблока, то персонажа телепортирует клиент (т.н. отбрасывание). Если меньше, то изменяет его скорость передвижения. Посылка ValidatePosition от клиента идет каждые 1200 мс, а так же при начале и конце движения.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#28
Zubastic, То есть это что получается, можно так на любой сервер зайти и убить пакет-хаком этим?
То есть сервер никак не защищен?

LameGuard - кто то знает, как предотвращает попытки отправки пакетов извне?
Там проверяется как то подключение к клиенту со сторонних ПО?
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  actor.L2Character беда, печаль Raffinary 6 2,750 04-08-2012, 07:34 PM
Последний пост: Visor
  OnDie(L2Object self, L2Character killer) NiddHoggUA 10 2,822 10-18-2011, 05:17 PM
Последний пост: NiddHoggUA

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)