Сообщений: 2,303
Тем: 24
Зарегистрирован: Sep 2010
Репутация:
5,617
mountaineer Написал:Каждая кочка, камушек, каждая впадинка и пригорок обрабатываются как разные объекты? При столкновении с персонажем клиент дает сигнал или это рельеф?
Геодата представляет собой информацию о каждой клетке мира:
1. Высота точки
2. Тип точки (Single, Flat, Multilayer)
3. Собственно информацию по проходимости, которая представляет собой 4 бита - NSWE (North, South, West, East): 1 - по направлению разрешено движение, 0 - по направлению запрещено движение.
Сообщений: 1,240
Тем: 29
Зарегистрирован: May 2013
Репутация:
2,505
mountaineer Написал:С этого места поподробнее, не понял, тогда как он проверяет, что координаты верные, если карта рисованная?
Есть значит место где перечислены все координаты?
Или это работает как то по-другому? Ничего не понял, хоть убей.
Вот же заморочился ппц, спать спокойно не дает Веселуха!
Во! Откуда берется и как проверяется координата? Мне вот это не понятно.
Начните с анализа пакетов между клиентом и сервером. Там вы и увидите как выглядит непрерывная синхронизация положения.
Родился, живу и когда-нибудь умру.
Сообщений: 2,455
Тем: 53
Зарегистрирован: Apr 2010
Репутация:
19,728
mountaineer Написал:Pointer*Rage, пожалуйста будьте так добры, а поясните мне принцип этих чисел " 16_20, .._.. ", милости прошу, какую роль играют и что за чем следует, я не могу разобраться никак, можете рассказать алгоритм работы? Я не могу никак понять как они обрабатываются 16_20 - карта, 16 - номер тайла по оси X, 20 - номер тайла по оси Y.
Данные вещи тянутся еще из клиента, т.к. генерации геодаты идет именно по этим тайлам.
mountaineer Написал:Можете прям показать "кусок" скрипт-кода (или хоть что нибудь)", что не дает персонажу провалиться под карту? Почти на всех серверах не реализованы падения. То что персонаж не проваливается в клиенте - заслуга коллизий террейна.
mountaineer Написал:Каждая кочка, камушек, каждая впадинка и пригорок обрабатываются как разные объекты? При столкновении с персонажем клиент дает сигнал или это рельеф? В клиенте - да, каждый обьект обрабатывается отдельно. На сервере всех этих обьектов не существует, есть только общая карта проходимости.
mountaineer Написал:С этого места поподробнее, не понял, тогда как он проверяет, что координаты верные, если карта рисованная? Потому-что на сервере существует, как я уже писал выше, карта проходимости, которая хранит высоту каждой точки и тип ее проходимости в дискретном виде.
mountaineer Написал:Есть значит место где перечислены все координаты? Не понял вопроса.
mountaineer Написал:Во! Откуда берется и как проверяется координата? Мне вот это не понятно. В каких случаях? При клике на бег, начальная и конечная точка отсылаются с клиента. Сервер синхронизирует начальную позицию и запускает движение к конечной точке, если оно возможно.
Если в случае всяких телепортов и т.д., то все эти значения можно найти в датапаке.
Сервер знает только о максимальных и минимальных величинах 3х осей всего мира, выйти за которые нельзя. На остальные куски наложена дискретная карта проходимости, а так же зоны (полигоны, которые, к примеру, могут определять точку рестарта персонажа и т.д.).
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Сообщений: 111
Тем: 8
Зарегистрирован: Aug 2014
Репутация:
181
05-30-2015, 05:09 PM
(Сообщение последний раз редактировалось: 05-30-2015, 10:13 PM i_am_kisly.)
del
Какую сборку ковыряете то ?
Сообщений: 116
Тем: 14
Зарегистрирован: May 2015
Репутация:
-35
Pointer*Rage Написал:16_20 - карта, 16 - номер тайла по оси X, 20 - номер тайла по оси Y.
Данные вещи тянутся еще из клиента, т.к. генерации геодаты идет именно по этим тайлам. Вот спасибо, теперь понятно. Очень рад!
Pointer*Rage Написал:Не понял вопроса. Я думал есть место где перечисляются все координаты, чтобы якобы сверять их при движении, ну теперь уже понял, что сервер ничего не знает об этом.
Pointer*Rage Написал:В каких случаях? При клике на бег, начальная и конечная точка отсылаются с клиента. Сервер синхронизирует начальную позицию и запускает движение к конечной точке, если оно возможно.
Если в случае всяких телепортов и т.д., то все эти значения можно найти в датапаке.
Сервер знает только о максимальных и минимальных величинах 3х осей всего мира, выйти за которые нельзя. На остальные куски наложена дискретная карта проходимости, а так же зоны (полигоны, которые, к примеру, могут определять точку рестарта персонажа и т.д.). То есть на самом деле все координаты отправляются с игры и сервер двигает, теперь понял, вы открыли глаза мне. Благодарю за все, отлегло
Сообщений: 5,863
Тем: 105
Зарегистрирован: Sep 2010
Репутация:
13,014
mountaineer Написал:Я думал есть место где перечисляются все координаты, чтобы якобы сверять их при движении, ну теперь уже понял, что сервер ничего не знает об этом. Клиент отсылает ValidatePosition и сервер или телепортирует (например чар очень быстро шлет его не от туда, откуда должен), или отбрасывает назад. Поэксперементируйте с пакетхаком. Удивитесь.
Сообщений: 2,455
Тем: 53
Зарегистрирован: Apr 2010
Репутация:
19,728
Zubastic Написал:Клиент отсылает ValidatePosition и сервер или телепортирует (например чар очень быстро шлет его не от туда, откуда должен), или отбрасывает назад. Поэксперементируйте с пакетхаком. Удивитесь.
Это делает не сервер, а клиент, на пакет ValidateLocation. Если дифференс по координатам больше геоблока, то персонажа телепортирует клиент (т.н. отбрасывание). Если меньше, то изменяет его скорость передвижения. Посылка ValidatePosition от клиента идет каждые 1200 мс, а так же при начале и конце движения.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Сообщений: 116
Тем: 14
Зарегистрирован: May 2015
Репутация:
-35
Zubastic, То есть это что получается, можно так на любой сервер зайти и убить пакет-хаком этим?
То есть сервер никак не защищен?
LameGuard - кто то знает, как предотвращает попытки отправки пакетов извне?
Там проверяется как то подключение к клиенту со сторонних ПО?
|