Геодата и КоллизииВремя чтения: 12 минСложность: ЭкспертнаяОпубликовано: 2026-09-20

Геодата и алгоритмы поиска путей (Pathfinding) в Lineage II

Устройство бинарных карт геодаты (L2J/PTS Geo), слои высот, блоки коллизий (Flat, Complex, Multilayer) и оптимизация алгоритма A* с предпросчетом QuadTree.

Геодата и алгоритмы поиска путей в Lineage II

Корректная геодата исключает атаки сквозь стены (shoot-through-walls), падения под текстуры и застревания NPC.

Структура геодаты

Мир Lineage II разделен на регионы (квадраты карты от 11_10 до 26_26). Каждый регион содержит:

  • Размер региона: 256x256 блоков геодаты.
  • Типы блоков:

1. Flat Block (Тип 0): Однородная плоскость, занимает 3 байта (базовая высота Z).

2. Complex Block (Тип 64): 64 ячейки (8x8), каждая хранит локальную высоту и флаги направлений проходимости (N, S, W, E).

3. Multilayer Block (Тип 128): Многослойные мосты, крыши, этажи башен Крумы. Содержит переменное число слоев на ячейку.

Оптимизация Pathfinding (A* & Cell Graph)

Для расчета маршрутов мобов и персонажей используется модифицированный алгоритм A*:

  • Ограничение глубины поиска: Не более 350-500 итераций для предотвращения спайков CPU.
  • Сглаживание узлов (String Pulling): Удаление избыточных зигзагообразных точек маршрута прямой проверкой видимости canSeeTarget(start, end).
Ко всем статьям базы знанийСкачать сборки и геодату