В структуре игрока есть такой оффсет GroundZ - это высота поверхности земли под игроком. Насчёт воды хз.
В оффсетах для генезиса указан +0BAC. Для текущей версии офа вроде Z_GROUND = PERSSTRUCT+C18
В структуре игрока есть такой оффсет GroundZ - это высота поверхности земли под игроком. Насчёт воды хз.
В оффсетах для генезиса указан +0BAC. Для текущей версии офа вроде Z_GROUND = PERSSTRUCT+C18
Может есть какой файл текстур в котором по указанным координатам можно это узнать?
Текстура - это всего лишь наложенная картинка на полигон, все путают почему то.
А если по теме, то есть предположение:
Если в структуре перса есть значение высоты поверхности, значит клиент эту высоту как то считает.
Следовательно есть такая функция, которая это делает. Если я всё правильно помню по игроделу, то достаточно двух горизонтальных координат и массив высот ландшафта, чтобы получить высоту ландшафта в этой точке.
Так вот мне кажется, что может получиться инжектить функцию вычисления высоты, в качестве параметров передав произвольные координаты(если вдруг ПВ хранит в памяти полностью весь ландшафт без подзагрузок, то возможно даже получится посчитать высоту далеко за приделами видимости, хотя наверное хранится только кусок ландшафта текущего и смежных секторов, но всё равно далеко)
Вот такие предположения
________________
╔═╗
║ ˑ ˑ ╬ ╬
╚═╝
Последний раз редактировалось dwa83; 08.09.2012 в 00:11.
Текстура - это всего лишь наложенная картинка на полигон, все путают почему то.
А если по теме, то есть предположение:
Если в структуре перса есть значение высоты поверхности, значит клиент эту высоту как то считает.
Следовательно есть такая функция, которая это делает. Если я всё правильно помню по игроделу, то достаточно двух горизонтальных координат и массив высот ландшафта, чтобы получить высоту ландшафта в этой точке.
Так вот мне кажется, что может получиться инжектить функцию вычисления высоты, в качестве параметров передав произвольные координаты(если вдруг ПВ хранит в памяти полностью весь ландшафт без подзагрузок, то возможно даже получится посчитать высоту далеко за приделами видимости, хотя наверное хранится только кусок ландшафта текущего и смежных секторов, но всё равно далеко)
Вот такие предположения
Вроде, вы правы. Сегодня вечером попробую вычислить высоты. Результат отпишу
так и есть, там то значение поверхности, которое было на момент нахождения перса на ней последний раз. В полёте им не воспользуешься (
Может есть какой файл текстур в котором по указанным координатам можно это узнать?
Есть данный файл, он относится к категории серверных.
Серверная карта мира для 1.4.5 - [Ссылки могут видеть только зарегистрированные пользователи. ]
Думаю не сложно догадаться что интересующие нас файлы хранятся в watermap соответственно по айди регионов.
Для просмотра\редактирования файлов могу предложить использовать sMapTool - [Ссылки могут видеть только зарегистрированные пользователи. ]
Как выглядит это чудо в действии -
[Ссылки могут видеть только зарегистрированные пользователи. ]
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось xSkyDev; 10.09.2012 в 21:06.
BritishColonist, нет, не везде, как ни странно. Он немного меняется в разных локах, а в некоторых достаточно прилично. Пример - ущелье у древних. Понятно что в аде/раю/морае он тоже другой.
xSkyDev, Спасибо. А для морая/ада/рая нет такой же карты?
Добавлено через 9 минут
Цитата:
Сообщение от dwa83
Если в структуре перса есть значение высоты поверхности, значит клиент эту высоту как то считает.
Следовательно есть такая функция, которая это делает. Если я всё правильно помню по игроделу, то достаточно двух горизонтальных координат и массив высот ландшафта, чтобы получить высоту ландшафта в этой точке
Такие предположения есть и у меня. В том числе и то что перс упирается в препятствия. Правда нет уверенности что это делает клиент, хотя это было бы логично. Но однозначно ясно одно, раз клиент рисует картинку, значит высоту местности он где-то у себя держит. Вопрос - где? Хотя предпочтение я все же отдал бы внеигровой информации, т.е. не зависящей от клиента.
________________
backup - акт проявления трусости
Последний раз редактировалось pw.assistant; 10.09.2012 в 11:49.
Причина: Добавлено сообщение
В том числе и то что перс упирается в препятствия. Правда нет уверенности что это делает клиент, хотя это было бы логично.
"Упирается" именно клиент, и его можно обмануть. На старых версиях пв выкладывался адрес, при смене кода в котором перс проходил сквозь деревья. Раньше разбирал это, там сам факт столкновения расчитывался сопроцессором. Приземление тоже высчитывается клиентом. А вот когда откидывает из текстур или при приземлении - это уже не согласен сервер, т е там тоже проверяется движение, но на более простом уровне. Допустим, сравнивается пройденное персом расстояние с расчетным, по времени и максимально возможной скоростью перса. Именно поэтому нельзя сделать спидхак. Положение перса в пространстве если и проверяется, то криво. Поэтому, допустим, персом можно пройти сквозь стену, а сервер передаст остальным клиентам, что перс через нее перепрыгнул.
А если еще точнее - с сервера на другие клиенты передаются только координаты, скорость и вектор движения перса. А клиенты обрисовывают прыжок, так как не могут провести перса сквозь препятствие.
Последний раз редактировалось sumikot; 10.09.2012 в 17:49.
xSkyDev, Спасибо. А для морая/ада/рая нет такой же карты?
Если не ошибаюсь то вот:
Мир - [Ссылки могут видеть только зарегистрированные пользователи. ]
Морай - [Ссылки могут видеть только зарегистрированные пользователи. ]
Ад - [Ссылки могут видеть только зарегистрированные пользователи. ]
Рай - [Ссылки могут видеть только зарегистрированные пользователи. ]
Сразу добавлю все серверные карты - [Ссылки могут видеть только зарегистрированные пользователи. ]
Орентироватся можно 2 способами :
1. Просматривать карты - [Ссылки могут видеть только зарегистрированные пользователи. ] ( допустим a21.dds == a21 )
2. Использовать список локаций :
Цитата:
is01 - Netherbeast city - Город темных зверей(ивент)
is02 - Heroes Tomb - Могильник героя(Проход в 29)
is05 - cave of fire - 19 данж(Люди) не обязателен для квестов на уважение
is06 - Wolf Den - 19 данж(Зооморфы) не обязателен для квестов на уважение
is07 - Scorpion Cave - 19is01 - Netherbeast city - Город темных зверей(ивент)
is02 - Heroes Tomb - Могильник героя(Проход в 29)
is05 - cave of fire - 19 данж(Люди) не обязателен для квестов на уважение
is06 - Wolf Den - 19 данж(Зооморфы) не обязателен для квестов на уважение
is07 - Scorpion Cave - 19 данж(Сиды) не обязателен для квестов на уважение
is08 - Green shirt tomb - 29 данж(Сиды) не обязателен для квестов на уважение
is08 - Green shirt tomb - 29 данж. не обязателен для квестов на уважение
is09 - Haunted Grotto - 39 данж. не обязателен для квестов на уважение
is10 - Frozen Realm - 49 данж. не обязателен для квестов на уважение
is11 - Valley of Disaster - 59 данж. Нужен для квестов на уважение
is12 - Forest ruins - Руины в чаще(ивент)
is13 - Realm of ghost - (сам не знаю)
is14 - Gate of wraith - 69 данж. Нужен для квестов на уважение
is15 - Cave of treasures - 79 данж. Нужен для квестов на уважение
is16 - Heavenly illusion - 89 данж(рай 1)
is17 - Devil's illusion - 89 данж(ад 1)
is18 - Dragon palace - Дворец царя драконов(ивент)
is19 - Weeping Isle - Остров утренних слез(Проход в 79(вход в порте мечты))
is20 - Snakes Island - Змеиный остров(ивент скачки)
is21 - Celestial World - Светлая сторона(вход в городе Истоков) зайти можно, только если если пройден рай или ад 1.
is22 - Demon World - Темная сторона(вход в городе Истоков) зайти можно, только если пройден рай или ад 1.
is23 - Purgatory of Heaven - 99 данж(рай 2)
is24 - Devil's Arcadia - 99 данж(ад 2)
is25 - Misty city - 109 данж(рай 3)
is26 - Residence of Basphemy - 109 данж(ад 3)
is27 - Crescent Valley - Долина ведьм
is28 - Godless Valley - Ущелье Шень-у(гуй-му короче)
is29 - Ultimate Destination - Город инея
is30 - Black Sand Palace - (сам не знаю)
is31 - Holy Hall of Dusk - Холи-холл(в народе просто хх)
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось xSkyDev; 10.09.2012 в 21:14.