Для редактирования была взята сборка L2Frozen и геодата от Akumu. Найти их в интернете можно не напрягаясь. Так же нам понадобится 2 программы - hd_GeoEdit (немного неудобна при работе со слоями, можно легко запутаться) и G3DEditor (понравилась из за визуального режима). Почему именно 2, поймете позже.
Шаг 1. Необходимо развернуть локальный сервер ЛА2, подключить естественно к мускулу и отредактировать конфиги по своему вкусу. Как развернуть сервер ла2 можно найти в инете, их до кучи.
Шаг 2. Правим следующие конфиги сервера:
- ../gameserver/config/head/geodata.properties изменяем GeoData = 2 (подключаем квадраты гео и патчнода), ForceGeodata = True (что бы грузилась в оперативную память, так быстрее), AcceptGeoeditorConn = True (не обязательно, это коннект для первой программы, если кому то понравится её интерфейс или нужно будет корректировать высоты квадратов гео), GeoEditorPort = 2109 (соответственно порт для коннекта программки, тоже не обязателен), GeoCorrectZ = All (это корректировка спавна мобов относительно гео), CoordSynchronize = 2 (синхронизация по типу сервер->клиент)
- ../ gameserver/config/functions/developer.properties изменяем AcceptGeoeditorConn = True (при включенном режиме разработке позволяет соединиться с гео редактором. Атрибут не обязательный), GeoEditorHost = 127.0.0.1 (куда конектиться), GeoEditorPort = 2109 (по какому порту).
PS: Не забываем на руотере пробросить порт 2109.
Шаг 3. Итак, у нас есть рабочий сервер с настроенными конфигами. Гео мы скачали и положили предварительно перед запуском но свое место. Теперь дело за малым, запускаем первую программу hd_GeoEdit и видим вот такое окошко...
Редактирование геодаты
Заходим в меню File/Import from l2j/ и выбираем наш первый квадрат. Я взял город Аден (24_18).
Редактирование геодаты
Далее заходим в наш клиент, папку system и создаем в ней папку "geodata". Путь должен получиться приблизительно следующий ../lineage2/system/geodata. После переключаемся в нашу программу и в меню File/Export to conv.dat/ выбираем место сохранения файла, а именно в ../lineage2/system/geodata. Внимание, имя файла обязательно должно быть по следующей маске имя_квадрата_conv.dat. В нашем случае имя будет 24_18_conv.dat. Закрываем нашу программку, она нам пока не нужна.
Шаг 4. Открываем вторую программу G3DEditor. Мы видим вот такое окошко...
Редактирование геодаты
Для удобства немного настроим её. Щелкнем на кнопку с изображением шестеренки и правим в соответствии с рисунком. Причем последний раздел советую сделать путем к вашей папке с гео.
Редактирование геодаты
Далее открываем наш квадрат 24_18.l2j, нажав на кнопку с изображением папки вверху программы. Увидим вот такой вид...
Редактирование геодаты
Управление тут простое W,A,S,D - движение в разные стороны, правая клавиша мышки осуществляет поворот по осям, пробел ускоряет движение, при зажатом шифте можно выделять по несколько ячеек, зажатый альт выделяет все ячеки мульти или комплексного квадрата, при зажатом ctrl можно вертикально перемещать ячейки. Доступные режимы вида включаются/отключаются кнопками T,R,G,F.
Теперь немного о цветах. Цветов как видите тут не много. Комплекс из 8*8 зеленых квадратов - это 1 синий квадрат. Данные два цвета говорят о том, что это единственный слой в данной точке по оси Z. Разница между синим и зеленым лишь в том, что зеленые используются для более детальной прорисовки местности с ограничениями (запрет движения в том или ином направлении). Синие квадраты используются в основном для ровных поверхностей. Так же НЕ желательно использовать синие квадраты с ограничениями. Красные блок квадратов так же состоит из 8*8 мелких и используется в многоуровневых постройках, ландшафтах и т.п.. Малиновым цветом выделяются те ячейки, которые вы выбрали для редактирования. Желтым цветом выделяется активная ячейка. Если выделяете несколько ячеек из зеленого или красного блока, то выделенные ячейки становятся малиновым, остальные светло-голубым.
У каждой ячейки есть 4 измерения (север, юг, запад, восток). Закрашенный угол в ячейки говорит о том, что двигаться в данном направлении запрещено. На примере я постараюсь пояснить суть редактирования. Смотрим скрин...
Редактирование геодаты
В данном примере я показал полностью зелеными стрелками разрешенные для движения ячейки, а стрелки с красным наконечником запрещающие движение соответственно. Думаю тут все понятно, тогда разберем живой пример... Смотрим скрин..
Редактирование геодаты
Желтым цветом я обозначил ячейки, которые нам нужно отредактировать. После нескольких кликов приводим данные квадраты в надлежащий вид...
Редактирование геодаты
Таким способом можно без клиентской части отредактировать бОльшую часть карты. Стены и двери, проходы и лестницы редактировать можно и так, а вот сложные участки, такие как например кузница или дворец, круги деревьев и т.п. нужно посмотреть, какие квадраты у нас нужно редактировать, а какие нет... Помните, мы на 3 шаге сохраняли гео в клиенте? Вот теперь то оно нам и понадобится. Запускаем клиент, входим под админом и первым делом вводим команду ///stat l2 и у вас в левом верхнем углу будет выведена информация о текущем положении (координаты). После вводим команду ///geodata и увидите вот такую красоту...
Редактирование геодаты
Вы зададитесь вопросом, почему же квадраты рисуются не по земле, а над ней . Поясню как понимаю это я. Для сервера - персонаж не более чем комплекс точек. Половина высоты персонажа - его центральная точка. Именно с ней связаны все действия, такие как атаки других чаров, повороты вокруг оси и т.п. Для большей ясности я привел пример модели темного эльфа без текстур с изображением осей.
Редактирование геодаты
Что ж, теперь вы наглядно видите квадраты, которые необходимо отредактировать. Переключаясь между клиентом и программой можно отредактировать гео любой сложности.
PS: высота одной ячейки равняется 8 условным единицам, минимальное расстояние между 2-мя вертикальными ячейками - 8 условных единиц. Разница между координатами сервера по отношению к координатам ячеек редактора гео не должны превышать 7 условных единиц, т.е. в программе например вы видите высоту 2200, в клиенте блок в данной координате не должен выходить за пределы 2193-2207, но как правило он находится в районе +-4 условные единицы и чаще в бОльшую сторону, т.е. 2204.
Личный опыт подсказывает, что сначала при редактировании крупных объектов, таких как города, сначала нужно поработать в программе без клиента и исправить максимум возможного (входы/выходы, мосты, ступеньки и т.д.), потом приниматься за детальную отработку каждой комнаты и уж потом ровнять высоты. Не пытайтесь сделать все разом, запутаетесь.
Шаг 5. Сохраняем нашу отредактированную гео в формате .l2j и укладываем её в папку геодаты сервера. После рестартуем сервер и радуемся. Если хотите посмотреть на свое творение в клиенте, сохраненный кусок гео конвертируем и закидываем в папку system/geodata клиента. После перезапускаем клиент и пишем команду ///geodata.
Вернемся к нашим попугаям. Итак, мы уже знаем что первая программа (hd_GeoEdit) у нас умеет конвертировать, вторая (G3DEditor) имеет красивый визуальный редактор. Пока мы работали в основном в G3DEditor. Но пришло время и немножко упростить жизнь при редактировании высот. В этом то нам и поможет hd_GeoEdit. Но вот её настройка кому то может показаться геморной. Первое, что нам нужно, это связать нашу программу с сервером. Заводим ArtMoney и коннектимся к процессу lineage2. Из клиента выписываем текущую координату Х и ищем её в артмани с параметрами - точное значение/с точкой/все/все. Далее передвигаемся в другую точку и отсеиваем координату Х. После нескольких таких манипуляций с отсеиванием у вас должно остаться около 15 значений. Я взял первое и последнее и вписал их в конфиг программы:
StatOffset = $начальное
VarPointer = $последнее
Далее запускаем программу и открываем кусок гео, который лежит в system/geodata клиента с расширением имя_квадрата_conv.dat. В клиенте мы должны находиться в данном квадрате. Если все сделали правильно, получится что то вроде этого...
Редактирование геодаты
Если в настройке кисти нажать кнопку [Z], то при прорисовке геодаты, кроме определения NSEW (направлений, в которых может перемещаться персонаж), будет назначена указанная возле кнопки высота ячейки.
Если не нажимать - то Z-координата ячейки изменена не будет. Если вы отрисовываете ООП (Огромные Открытые Пространства), вашим помощником может стать кнопка [Draw Solid Cell]. Максимально полезная кнопка [Follow] - замыкает курсор редактирования на вашего персонажа в игре. Это не значит, что вы не сможете редактировать другие ячейки. Сможете, просто курсор после клика всегда будет возвращаться в позицию персонажа.
Если не включена функция слежения, есть две дополнительных кнопки.
[XY to Cursor] - установить координаты курсора по координатам персонажа.
[Z to z-Coord] - установить маркер высоты равным высоте места персонажа в клиенте.
Функция [Record Z] позволяет маркировать ячейки Z-координатой в автоматическом режиме, просто бегая в клиенте.
При нажатой кнопке запись Z-координаты будет сопровождаться отрисовкой полных ячеек.
Шаг 1. Необходимо развернуть локальный сервер ЛА2, подключить естественно к мускулу и отредактировать конфиги по своему вкусу. Как развернуть сервер ла2 можно найти в инете, их до кучи.
Шаг 2. Правим следующие конфиги сервера:
- ../gameserver/config/head/geodata.properties изменяем GeoData = 2 (подключаем квадраты гео и патчнода), ForceGeodata = True (что бы грузилась в оперативную память, так быстрее), AcceptGeoeditorConn = True (не обязательно, это коннект для первой программы, если кому то понравится её интерфейс или нужно будет корректировать высоты квадратов гео), GeoEditorPort = 2109 (соответственно порт для коннекта программки, тоже не обязателен), GeoCorrectZ = All (это корректировка спавна мобов относительно гео), CoordSynchronize = 2 (синхронизация по типу сервер->клиент)
- ../ gameserver/config/functions/developer.properties изменяем AcceptGeoeditorConn = True (при включенном режиме разработке позволяет соединиться с гео редактором. Атрибут не обязательный), GeoEditorHost = 127.0.0.1 (куда конектиться), GeoEditorPort = 2109 (по какому порту).
PS: Не забываем на руотере пробросить порт 2109.
Шаг 3. Итак, у нас есть рабочий сервер с настроенными конфигами. Гео мы скачали и положили предварительно перед запуском но свое место. Теперь дело за малым, запускаем первую программу hd_GeoEdit и видим вот такое окошко...
Редактирование геодаты
Заходим в меню File/Import from l2j/ и выбираем наш первый квадрат. Я взял город Аден (24_18).
Редактирование геодаты
Далее заходим в наш клиент, папку system и создаем в ней папку "geodata". Путь должен получиться приблизительно следующий ../lineage2/system/geodata. После переключаемся в нашу программу и в меню File/Export to conv.dat/ выбираем место сохранения файла, а именно в ../lineage2/system/geodata. Внимание, имя файла обязательно должно быть по следующей маске имя_квадрата_conv.dat. В нашем случае имя будет 24_18_conv.dat. Закрываем нашу программку, она нам пока не нужна.
Шаг 4. Открываем вторую программу G3DEditor. Мы видим вот такое окошко...
Редактирование геодаты
Для удобства немного настроим её. Щелкнем на кнопку с изображением шестеренки и правим в соответствии с рисунком. Причем последний раздел советую сделать путем к вашей папке с гео.
Редактирование геодаты
Далее открываем наш квадрат 24_18.l2j, нажав на кнопку с изображением папки вверху программы. Увидим вот такой вид...
Редактирование геодаты
Управление тут простое W,A,S,D - движение в разные стороны, правая клавиша мышки осуществляет поворот по осям, пробел ускоряет движение, при зажатом шифте можно выделять по несколько ячеек, зажатый альт выделяет все ячеки мульти или комплексного квадрата, при зажатом ctrl можно вертикально перемещать ячейки. Доступные режимы вида включаются/отключаются кнопками T,R,G,F.
Теперь немного о цветах. Цветов как видите тут не много. Комплекс из 8*8 зеленых квадратов - это 1 синий квадрат. Данные два цвета говорят о том, что это единственный слой в данной точке по оси Z. Разница между синим и зеленым лишь в том, что зеленые используются для более детальной прорисовки местности с ограничениями (запрет движения в том или ином направлении). Синие квадраты используются в основном для ровных поверхностей. Так же НЕ желательно использовать синие квадраты с ограничениями. Красные блок квадратов так же состоит из 8*8 мелких и используется в многоуровневых постройках, ландшафтах и т.п.. Малиновым цветом выделяются те ячейки, которые вы выбрали для редактирования. Желтым цветом выделяется активная ячейка. Если выделяете несколько ячеек из зеленого или красного блока, то выделенные ячейки становятся малиновым, остальные светло-голубым.
У каждой ячейки есть 4 измерения (север, юг, запад, восток). Закрашенный угол в ячейки говорит о том, что двигаться в данном направлении запрещено. На примере я постараюсь пояснить суть редактирования. Смотрим скрин...
Редактирование геодаты
В данном примере я показал полностью зелеными стрелками разрешенные для движения ячейки, а стрелки с красным наконечником запрещающие движение соответственно. Думаю тут все понятно, тогда разберем живой пример... Смотрим скрин..
Редактирование геодаты
Желтым цветом я обозначил ячейки, которые нам нужно отредактировать. После нескольких кликов приводим данные квадраты в надлежащий вид...
Редактирование геодаты
Таким способом можно без клиентской части отредактировать бОльшую часть карты. Стены и двери, проходы и лестницы редактировать можно и так, а вот сложные участки, такие как например кузница или дворец, круги деревьев и т.п. нужно посмотреть, какие квадраты у нас нужно редактировать, а какие нет... Помните, мы на 3 шаге сохраняли гео в клиенте? Вот теперь то оно нам и понадобится. Запускаем клиент, входим под админом и первым делом вводим команду ///stat l2 и у вас в левом верхнем углу будет выведена информация о текущем положении (координаты). После вводим команду ///geodata и увидите вот такую красоту...
Редактирование геодаты
Вы зададитесь вопросом, почему же квадраты рисуются не по земле, а над ней . Поясню как понимаю это я. Для сервера - персонаж не более чем комплекс точек. Половина высоты персонажа - его центральная точка. Именно с ней связаны все действия, такие как атаки других чаров, повороты вокруг оси и т.п. Для большей ясности я привел пример модели темного эльфа без текстур с изображением осей.
Редактирование геодаты
Что ж, теперь вы наглядно видите квадраты, которые необходимо отредактировать. Переключаясь между клиентом и программой можно отредактировать гео любой сложности.
PS: высота одной ячейки равняется 8 условным единицам, минимальное расстояние между 2-мя вертикальными ячейками - 8 условных единиц. Разница между координатами сервера по отношению к координатам ячеек редактора гео не должны превышать 7 условных единиц, т.е. в программе например вы видите высоту 2200, в клиенте блок в данной координате не должен выходить за пределы 2193-2207, но как правило он находится в районе +-4 условные единицы и чаще в бОльшую сторону, т.е. 2204.
Личный опыт подсказывает, что сначала при редактировании крупных объектов, таких как города, сначала нужно поработать в программе без клиента и исправить максимум возможного (входы/выходы, мосты, ступеньки и т.д.), потом приниматься за детальную отработку каждой комнаты и уж потом ровнять высоты. Не пытайтесь сделать все разом, запутаетесь.
Шаг 5. Сохраняем нашу отредактированную гео в формате .l2j и укладываем её в папку геодаты сервера. После рестартуем сервер и радуемся. Если хотите посмотреть на свое творение в клиенте, сохраненный кусок гео конвертируем и закидываем в папку system/geodata клиента. После перезапускаем клиент и пишем команду ///geodata.
Вернемся к нашим попугаям. Итак, мы уже знаем что первая программа (hd_GeoEdit) у нас умеет конвертировать, вторая (G3DEditor) имеет красивый визуальный редактор. Пока мы работали в основном в G3DEditor. Но пришло время и немножко упростить жизнь при редактировании высот. В этом то нам и поможет hd_GeoEdit. Но вот её настройка кому то может показаться геморной. Первое, что нам нужно, это связать нашу программу с сервером. Заводим ArtMoney и коннектимся к процессу lineage2. Из клиента выписываем текущую координату Х и ищем её в артмани с параметрами - точное значение/с точкой/все/все. Далее передвигаемся в другую точку и отсеиваем координату Х. После нескольких таких манипуляций с отсеиванием у вас должно остаться около 15 значений. Я взял первое и последнее и вписал их в конфиг программы:
StatOffset = $начальное
VarPointer = $последнее
Далее запускаем программу и открываем кусок гео, который лежит в system/geodata клиента с расширением имя_квадрата_conv.dat. В клиенте мы должны находиться в данном квадрате. Если все сделали правильно, получится что то вроде этого...
Редактирование геодаты
Если в настройке кисти нажать кнопку [Z], то при прорисовке геодаты, кроме определения NSEW (направлений, в которых может перемещаться персонаж), будет назначена указанная возле кнопки высота ячейки.
Если не нажимать - то Z-координата ячейки изменена не будет. Если вы отрисовываете ООП (Огромные Открытые Пространства), вашим помощником может стать кнопка [Draw Solid Cell]. Максимально полезная кнопка [Follow] - замыкает курсор редактирования на вашего персонажа в игре. Это не значит, что вы не сможете редактировать другие ячейки. Сможете, просто курсор после клика всегда будет возвращаться в позицию персонажа.
Если не включена функция слежения, есть две дополнительных кнопки.
[XY to Cursor] - установить координаты курсора по координатам персонажа.
[Z to z-Coord] - установить маркер высоты равным высоте места персонажа в клиенте.
Функция [Record Z] позволяет маркировать ячейки Z-координатой в автоматическом режиме, просто бегая в клиенте.
При нажатой кнопке