Ropedann 42 Report post Posted February 10, 2017 (edited) На форуме есть только англоязычный гайд по созданию карты с нуля. Решил написать свой гайд на русском. И да я знаю что на МД есть русскоязычный гайд, но МД уже устарел и мало кто ответит там под этим гайдом. А здесь 95%, что помогут решить какую либо проблему. И так приступим, сначала приведу список нужного ПО(Все ссылки на скачивание ПО буду в конце гайда). Yammi 0.6.2 или ниже по версии. Map editor Клиент Piratia Online Открываем Yammi Цитата Советую запускать от имени администратора, да бы избежать такой ошибки , и в конце выйдет это поэтому что бы у вас все было хорошо запускаем от имени администратора. Потом вас попросят указать путь к клиенту Цитата Указали? Молодцы! Теперь создадим новый проект. В верхнем меню выбираем пункт File --> New Project . Далее нас просят указать размеры нашей карты. Цитата Я люблю указывать 300x300 вы можете указать любое другое число в пределах разумного. Когда ввели значения нажимаем ОК. Вот и создалась наша карта. У вас должен появиться синий квадрат или прямоугольник, зависит от того какие вы указали пропорции. Теперь нужно создать землю для этого увеличим зум колесиком (верх) до 200% Цитата т.к Yammu не рисует на 100%. Теперь выбираем инструмент под названием Define a land Area Потом выбираем кисть которой мы будим рисовать их 5 видов первые две это маленький квадратик и маленький круг их размер можно задавать от 1-20, далее прямая линия и две фигуры квадрат и круг. Цитата Я буду использовать все для примера Маленький квадратик Круглая кисть размера 5 Прямая размера 10 Фигура Квадрат на него заданный размер не влияет т.к. мы его регулируем кистью Фигура Круг на нее заданный размер не влияет т.к. мы ее регулируем кистью Землю можно удалять инструментом Define a sea area Цитата Ну вот мы научились рисовать землю, теперь сделаем границы(непроходимые места) Для этого мы выбираем инструмент Define a zone that can't be crossed и обводим наш участок любой кистью которой вам удобно. У меня получилось вот так Удалить непроходимую зону можно инструментом Define a zone which can be passed through Теперь нужно наложить текстуры на нашу территорию. Делаем это с помощью инструмента Texture Выбираем любую понравившуюся текстуру, выбираем кисть и наносим на нашу территорию. Еще для удобства что бы видеть где мы нанесли текстуру, поставьте галочку в панели Views на Texture У меня вышло так Теперь выделим безопасную и PvP Зону. Для начала Безопасную зону, делается это с помощью Define a safe zone Для удаления безопасной зоны Remove a safe zone еще в панели Views поставьте галочку напротив Safe Zones, Что бы у вас отображалось где находится безопасная зона Теперь ПВП зона. ПВП зону можно создать, но нельзя удалить, ее можно перекрыть безопасной зоной. Выбираем инструмент toolStriptbuttom1 и на носим на территорию любой удобной кистью. У меня получилось так Так же поставmте галочку в панели Views на против Pvp invite area Ну вот наша карта почти готова теперь нажимаем в верхнем меню на Plugins --> Hight map genirator Теперь сохраним наш проект на всякий случай в меню нажимаем File --> Save Project выбираем путь куда будем сохранять и называем наш файл ( подтверждаем наше сохранение нажав ОК Создаем файлы для Клиента в меню нажимаем File --> Export Top/Pko map file выбираем путь куда будем сохранять и называем файл в месте куда вы сохранили появится файл с форматом .map его нужно закинуть в папку с клиентом по вот такому пути (Пиратия Online\map) теперь создадим файлы для сервера действуем по той же схеме как и с файлом для клиента только выбираем последние два пункта в меню file в месте куда вы сохранили эти два файла будут файлы с форматом .atr и .blk Теперь создадим папку с названием вашей карты и переместим туда наши файлы для сервера с форматом .atr и .blk дальше нам нужно создать в папке карты следующие файлы: ctrl.lua testmapChaSpn.txt testmapEntity.lua testmapmonster_conf.lua textmapnpc.txt testmapswhmap.txt Теперь вам нужно заполнить эти файлы по примеру других карт. Bin файлы появятся после запуска сервера. Что бы узнать координаты вашей карты нужно зайти в Yammi в панели Views выбрать вкладку Map Info после навести курсором мышки на любой участок вашей карты и в разделе location Будут показываться ваши координаты эти координаты вы записываете в сервере в файле birth_conf.lua Теперь переходим к редактированию нашей карты. советую называть карту garner так будет проще редактировать не нужно париться над расширением количества карт в клиенте. Но если вы не хотите называть garner, то вам нужно увеличить максимальное разрешенное кол-во карт (помните что game.exe разрешает только 49 карт для mapinfo, что бы сделать больше вам нужно по хексит game.exe скачиваем любой HEX редактор открываем game.exe ищем адрес 0x00016873 находим там 0x32 и заменяем на 0x50 и лимит будет не 49 , а 80 карт) Для того что бы в редакторе карт у вас отображалось не 29 карт а например 30 заходим в клиент едем в файл editor.clu (\Пиратия Online\scripts\lua\forms) там находим этот код itemid = UI_CreateTextItem( "\209\239\232\241\238\234 \234\224\240\242", TREE_TEXT_COLOR ) gridid = UI_CreateGridNode( trvEditor, itemid, 4, 32, 32, -1 ) n = 1 while 1 do name = "texture/photo/sceneobj/map"..n..".tga" tex_id = GetTextureID( name ) if tex_id then graphid = UI_CreateGraphItemTex( 0, 0, 30, 30, 1.0, 1.0, tex_id, n ) UI_GridNodeAddItem( gridid, graphid ) end n = n + 1 if n==29 then break end end и в этом коде находим строчку if n==29 then break end и 29 меняем на 30 или нужное вам число. Также если вы редактируете карту со своим название то вам нужно добавить ее в Mapinfo на сервере и скомпилировать для клиента Вот пример кода для моей карты: 1 testmap TestovaiKarta 1 70,70 3,70,70 255,255,255 После того как все подготовительные работы закончены, смело создаем в корне с игрой Bat файл со следующим содержимым. system\game.exe startgame editor Не большое пояснение, этой строкой мы запускаем файл game.exe, то есть саму игру, но еще передаем ей параметр запуска и говорим, что мы хотим не саму игру, а редактор карт. Дальше при запуске вылетят ошибки. обычно это файлы анимаций. Если не мешают оставьте как есть. Если они вам мешают просто зайдите в папку animation и удалите анимации которые выдают ошибки. (Совет для редактирования карт сделайте себе отдельный клиент ) Когда у вас загрузится редактор вы увидите такую картину Данное окно с вопросами это насколько я понял окно логов. Я надеялся в Англоязычном клиенте найти нормальный текст без знаков вопроса (Так как рассчитывал что это просто проблемы кодировки. ) Но оказалось , что в английском клиенте такая же фигня. Если кто то знает как исправить это окно и привести его к человеческому виду. Прошу отписаться) Мы нажимаем на Tab и видим Меню Хорошо, Теперь нам нужно телепортироваться на нашу карту если вы назвали карту garner, то вы просто делаете как показано на картинке , если вы редактируете карту не под название garner, то в левом меню выбираем пункт (Список Карт) вылезут ошибки вы их пропустите. Теперь среди появившихся квадратиков найдите свою карту и нажмите на нее и потом проделайте следующие действия Цитата Теперь нам нужно телепортироваться на нашу карту если вы назвали карту garner, то вы просто делаете как показано на картинке Теперь опишу назначения некоторых клавиш: Цитата Ctrl+D - Показать/Скрыть скрипт отладчик(скроется основное меню появится окно с вопросиками и нажав на вторую кнопку вы сможете посмотреть инфу о поставленных вами объектах) Del - удалить объект ======================================= Tab чтобы зайти в редактирование ======================================= F5 - Скрыть/показать сетку которая указывает на препятствие что бы делать непроходимые области и убирать их Цитата Нажмите F5 и потом зажимая Shift нажимайте на клетки левой кнопкой мыши и они станут не проходимыми. Чтобы сделать наоборот нужно зажать Shift и нажимать на клетки правой кнопкой мыши F9 - create high error - при наведении на объект допустим лестница или мост делает так что бы персонаж мог подниматься или ходить по мосту. F12 - меняем одежду и прическу Q - Автоматически отображать параметры окружающих H - Скрыть объект U - Показать все скрытые объекты A - Поднятие объекта z - Опускание предмета I - Двигаем предмет на север J - Двигаем предмет на запад K - Двигаем предмет на юг L - Двигаем предмет на восток ======================================== Ctrl+F1 Включение режим клавиш ======================================== В этом режиме: F5 - Скрыть/показать разные данные: угол камеры, координаты F6 - Сброс камеры F7 - Show/Hide Object Terrain(обводит отдельные объекты основного объекта) F8 - Скрыть/показать все объекты 5 - Передвинуть окно в верхний левый угол x - Показать это и прошлый шаг персонажа c - Включить/выключить режим слежение камеры(перемещение e,s,f,d или зажатой правой кнопкой мыши приблизить отдалить камеру o,p) V - close item reduce(закрыть уменьшить) - не знаю m - показать/скрыть карту Что бы персонаж мог сесть на скамейку или оперся на столб, вам нужно зайти в левое меню там выбрать абстрактный предмет и первые два объекта будут для того что бы персонаж сидел или опирался. Для создания Мини Карты в редакторе делаем как на картинке (1)Нажимаем на стрелочку (2)Выбираем Мини-Карта Скриншот, Дальше берем калькулятор и считаем по формуле x/25,y/25 (x и y это размеры вашей карты высота и ширина) у меня размер карты 300x300 Поэтому 300/25=12, 300/25=12 и когда посчитали нам нужно записать в Мини-Карта Скриншот 0,0,12,12 и клиент начнет фотографировать вашу карту. Через некоторое время он вас оповестит, что процесс завершен. Надеюсь мой гайд вам поможет и вы будите радовать нас красивыми картами с вами был Ropedann всем удачи!) __________________________________________ P.S. Со временем гайд будет дополнятся. P.S.S.Знаю что точно есть недочеты прошу сразу меня оповестить в комментах, личку, скайп или вк. __________________________________________ Skype: ropedann VK: vk.com/play589 Discord: Ropedann#4285 __________________________________________ https://mega.nz/#F!OUMUgTYb!jtCsqh7halK_O9uzWyaG0g!KcdVQK6a (Все необходимое ПО находится в папке Tools) https://drive.google.com/open?id=1hkjB5rQLxg9kVpOlCx1dJKsGweVsvj8S (Клиент для редактирования карт) __________________________________________ Выкладываю свой клиент в котором я редактирую карты (в нем исправлены ошибки при открытии вкладок ) ___________________________________ Так же забыл рассказать про одну интересную функцию в Yammi если ее не использовать, тропинки и еще какие то отдельные элементы нарисованные кистью будут очень квадратные и пиксельные. Что бы это убрать и сгладить в Yammi открываем вкладку Plugins -> Apply texture blending. После этого у нас получится вот так. Обновление 19.12.2021 Для того, чтобы из редактора карт клиента можно было редактировать текстуры земли с помощью кисти, откройте файл editor.clu и замените строку: \239\238\226\229\240\245\237\238\241\242\252 \231\229\236\235\232 на \239\238\226\229\240\245\237\238\241\242\252 За информацию спасибо @Kst! В 19.12.2021 в 07:12, Kst сказал: Насколько я помню в редакторе проверки на выделенный объект делаются по названию ноды. В чтобы установить "кисть" для редактирования поверхности земли, нужно чтобы название выбранной ноды совпадало с названием указанным в StringSet. * Вырезка из собственных исходников, код может отличаться от публичного CTreeNode* parent = dynamic_cast<CTreeNode*>(select->GetParent()); if (!parent) return; item = dynamic_cast<CItem*>(parent->GetItem()); if (!item) return; if (std::strcmp(item->GetString(), CLanguageRecord::inst()->GetString(539)) == 0) // [539] "поверхность" { CGraph* p = dynamic_cast<CGraph*>(tree->GetSelect()->GetItem()); if (p) g_Editor.SetTerr(press, p->nTag); return; } if (std::strcmp(item->GetString(), CLanguageRecord::inst()->GetString(540)) == 0) // [540] "Строительство" { CGraph* p = dynamic_cast<CGraph*>(tree->GetSelect()->GetItem()); if (p) g_Editor.SetObj(press, p->nTag); } Судя по первому скриншоту название ноды установлено как "поверхность земли". Попробуй в StringSet изменить [539] "поверхность" на [540] "поверхность земли", должно помочь. Либо найти в scripts\lua\forms файл editor.clu там поищи там: поверхность земли \239\238\226\229\240\245\237\238\241\242\252 \231\229\236\235\232 замени на поверхность \239\238\226\229\240\245\237\238\241\242\252 Edited April 20, 2022 by Ropedann 1 1 Quote Share this post Link to post Share on other sites
Спейсио 19 Report post Posted February 10, 2017 Очень неудобно открывать каждую ссылку, лучше сделать, чтобы отображались сразу картинками. Да и ссылки вызывают некое нагромождение. Quote Share this post Link to post Share on other sites
Ropedann 42 Report post Posted February 10, 2017 А как сделать что бы картинку вставить? Quote Share this post Link to post Share on other sites
Спейсио 19 Report post Posted February 10, 2017 2 минуты назад, Ropedann сказал: А как сделать что бы картинку вставить? На сервисе изображений жмешь правой кнопкой на картинку "Открыть изображение", и копируешь ссылку полную. Далее на форуме выше кнопки "отправить ответ" есть иконка "вставить медиа", там выбираешь изображение по ссылке и получаем картинку Quote Share this post Link to post Share on other sites
Ropedann 42 Report post Posted February 10, 2017 Уже разобрался вставляю Quote Share this post Link to post Share on other sites
SoStupid 0 Report post Posted December 31, 2017 (edited) Сырота ппц... Опечаток - тонна (Yammu, textmap -> testmap, клавишь, "не под название garner" etc.). "Map Editor" это не сторонняя программа... Он встроен в клиент, чтобы попасть в него надо просто создать *любое_название*.bat файл, с определённым текстом (system\Game.exe startgame editor), и поместить в корень клиента (интерфейс должен быть оригинальный). Почему не описано, как "упаковать" миникарту? Ни одного упоминания, что это делается файлом *любое_название*.bat с определённым текстом, помещённым в корень с игрой. Не сказано, где находится файл миникарты после упаковки. Не сказано, как зафиксировать выделение объекта в режиме редактирования (G). Надеюсь, что не зря тут всё расписывал. Edited February 7, 2018 by SoStupid Quote Share this post Link to post Share on other sites
BETEP/macs509 87 Report post Posted December 31, 2017 Не bin а bat Quote Share this post Link to post Share on other sites
SoStupid 0 Report post Posted February 7, 2018 В 01.01.2018 в 00:45, BETEP/macs509 сказал: Не bin а bat Оу шит, точно, исправлю. Quote Share this post Link to post Share on other sites
Graf 210 Report post Posted February 7, 2018 В 31.12.2017 в 22:36, SoStupid сказал: Сырота ппц... Опечаток - тонна (Yammu, textmap -> testmap, клавишь, "не под название garner" etc.). "Map Editor" это не сторонняя программа... Он встроен в клиент, чтобы попасть в него надо просто создать *любое_название*.bat файл, с определённым текстом, и поместить в корень клиента (интерфейс должен быть оригинальный). Почему не описано, как "упаковать" миникарту? Ни одного упоминания, что это делается файлом *любое_название*.bin с определённым текстом, помещённым в корень с игрой. Не сказано, где находится файл миникарты после упаковки. Не сказано, как зафиксировать выделение объекта в режиме редактирования (G). Надеюсь, что не зря тут всё расписывал. "Упаковка" миникарты : Создаем .bat файл с текстом: call system\game.exe pack garner Также не описано, как обрезать карты в yammi и склеивать.. Нужно дополнять гайд. Quote Share this post Link to post Share on other sites
V3ct0r 2,117 Report post Posted February 10, 2018 В 07.02.2018 в 23:57, Graf сказал: Также не описано, как обрезать карты в yammi и склеивать.. Нужно дополнять гайд. Насколько мне известно, в YAMMI нельзя обрезать и склеивать карты. Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
BETEP/macs509 87 Report post Posted February 11, 2018 можно обрезать и вставлять, но без объектов Quote Share this post Link to post Share on other sites
Graf 210 Report post Posted February 11, 2018 23 минуты назад, BETEP/macs509 сказал: можно обрезать и вставлять, но без объектов Не буду яро оспаривать, но через скайп мне наглядно показывали, что объекты не исчезают. Quote Share this post Link to post Share on other sites
Kolumb 5 Report post Posted July 4, 2018 Форумчане, нужна помощь экспертов! Поставил я к примеру Мост, нажал на f9 - появились так называемые "кубики", по которым персонаж перемещается по мосту. Вопрос, убираю я мост, а "кубики" остаются и персонаж так же может перебежать по ним. Как их убрать, какое есть противодействие f9 (create high error)?Испробовали массу вариантов.... Даже Yammy.. Quote Share this post Link to post Share on other sites
BETEP/macs509 87 Report post Posted July 5, 2018 Ну если ты поставил мост или пристань, и даже если у тебя карта высот и проходимостей сгенерировалась, то для корректной работы через ямми нужно будет указываать зоны моста/пристани там есть для этого инструмент. В зону там где нужно было эти кубики выравнять я через ямми просто вставлял заплатку, через вырезать вставить кусок. Возможно еще получиться указать высоты и потом через плагин сгенерировать карту высот, но тогда остальная часть карта будет тоже задета, что не есть хорошо, через клиент я хз как там редактировать, не находил но тоже вроде можно Quote Share this post Link to post Share on other sites
Kolumb 5 Report post Posted July 5, 2018 1 час назад, BETEP/macs509 сказал: Ну если ты поставил мост или пристань, и даже если у тебя карта высот и проходимостей сгенерировалась, то для корректной работы через ямми нужно будет указываать зоны моста/пристани там есть для этого инструмент. В зону там где нужно было эти кубики выравнять я через ямми просто вставлял заплатку, через вырезать вставить кусок. Возможно еще получиться указать высоты и потом через плагин сгенерировать карту высот, но тогда остальная часть карта будет тоже задета, что не есть хорошо, через клиент я хз как там редактировать, не находил но тоже вроде можно Мост был примером, по факту убираем кучу колон по центру локации. Они были приподняты и после них персонаж "летает" на этом месте. Всю локацию затрагивать не вариант... Quote Share this post Link to post Share on other sites
Ropedann 42 Report post Posted November 28, 2019 Небольшой UpDate Еще вопрос если есть у когото инфа по упаковке карт в .PK файл можите поделиться? 1 Quote Share this post Link to post Share on other sites
V3ct0r 2,117 Report post Posted November 28, 2019 Привет, @Ropedann! Заголовок: 1 байт длина названия .pk файла (например, 0x17) N байт название .pk файла (например, "texture\minimap\garner2") 4 байта число файлов-фрагментов (.bmp-картинок, из которых состоит карта) 4 байта неизвестно (значение 0x00000000) Таблица файлов: 1 байт длина названия .bmp файла (например, 0x0A) N байт название .bmp файла (например, "sm_1_0.bmp") 4 байта адрес .bmp файла относительно начала .pk файла (например, 0x00000293) 4 байта размер .bmp файла Данная структура записывается число файлов-фрагментов раз после заголовка. Файлы: Далее идут байты .bmp файлов. Вот простая программа на языке C++, которая распаковывает .pk файлы: #include <iostream> #include <string> #include <fstream> // Точка входа int main(int argc, char* argv[]) { // Путь до .pk файла std::string pk_path = "texture\\minimap\\garner2\\garner2.pk"; // Напишем сообщение что распаковываем файл std::cout << "Unpacking file " << pk_path << "..." << std::endl << std::endl; // Открываем файл std::ifstream pk(pk_path, std::ifstream::binary); // Проверим, что файл открылся без ошибок if (pk.fail() == true) { // При открытии файла возникла ошибка std::cout << "Can't open file " << pk_path << "!" << std::endl; return 1; } // Длина названия .pk файла unsigned char name_len = 0; // Буфер под название .pk-файла char name[255] = { 0x00 }; // Число фрагментов в .pk файле unsigned int file_num = 0; // Неизвестно unsigned int unknown = 0; // Читаем заголовок pk.read(reinterpret_cast<char*>(&name_len), sizeof(name_len)); pk.read(name, static_cast<unsigned int>(name_len)); pk.read(reinterpret_cast<char*>(&file_num), sizeof(file_num)); pk.read(reinterpret_cast<char*>(&unknown), sizeof(unknown)); // Распечатаем заголовок std::cout << "HEADER:" << std::endl; std::cout << ".pk file name length: " << static_cast<unsigned int>(name_len) << std::endl; std::cout << ".pk file name: " << name << std::endl; std::cout << ".bmp files number: " << file_num << std::endl; std::cout << "Unknown value: " << unknown << std::endl << std::endl << std::endl; // Длина названия .bmp файла unsigned char bmp_name_len = 0; // Название .bmp файла char bmp_name[255] = { 0x00 }; // Адрес .bmp файла unsigned int offset = 0; // Размер .bmp файла unsigned int size = 0; // Распечатаем таблицу std::cout << "FILES:" << std::endl; // Читаем таблицу файлов for (unsigned int i = 0; i < file_num; i++) { // Считываем запись pk.read(reinterpret_cast<char*>(&bmp_name_len), sizeof(bmp_name_len)); pk.read(bmp_name, static_cast<unsigned int>(bmp_name_len)); pk.read(reinterpret_cast<char*>(&offset), sizeof(offset)); pk.read(reinterpret_cast<char*>(&size), sizeof(size)); // Распечатаем запись std::cout << ".bmp file name length: " << static_cast<unsigned int>(bmp_name_len) << std::endl; std::cout << ".bmp file name: " << bmp_name << std::endl; std::cout << ".bmp file offset: " << offset << std::endl; std::cout << ".bmp file size: " << size << std::endl; // Запомним текущий адрес std::streamoff pos = pk.tellg(); // Переходим на адрес файла pk.seekg(offset, std::ifstream::beg); // Выделяем память под файл char* bmp_bytes = nullptr; try { bmp_bytes = new char[size]; } catch (const std::bad_alloc & e) { // Не удалось выделить память! std::cout << "Can't allocate memory for file " << bmp_name << "!" << std::endl; std::cout << "Error: " << e.what() << std::endl; // Возвращаемся к таблице файлов pk.seekg(pos, std::ifstream::beg); // Пропускаем итерацию continue; } // Считываем файл pk.read(bmp_bytes, size); // Создаем файл std::ofstream bmp(bmp_name, std::ofstream::binary); // Проверим, что файл создан if (bmp.fail() == false) { // Пишем байты изображения из .pk файла в новый .bmp файл bmp.write(bmp_bytes, size); // Напишем в консоль сообщение что файл был извлечен std::cout << "File " << bmp_name << " has been extracted!" << std::endl << std::endl; // Закрываем .bmp файл bmp.close(); } else { // Не удалось создать файл std::cout << "Can't create file " << bmp_name << "!" << std::endl << std::endl; } // Особождаем память delete[] bmp_bytes; // Возвращаемся к таблице файлов pk.seekg(pos, std::ifstream::beg); } // Закрываем .pk файл pk.close(); // Программа закончила работу std::cout << "Done!" << std::endl; return 0; } Вывод: Unpacking file texture\minimap\garner2\garner2.pk... HEADER: .pk file name length: 23 .pk file name: texture\minimap\garner2 .bmp files number: 33 Unknown value: 0 FILES: .bmp file name length: 10 .bmp file name: sm_1_0.bmp .bmp file offset: 659 .bmp file size: 5176 File sm_1_0.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_1_1.bmp .bmp file offset: 5835 .bmp file size: 5176 File sm_1_1.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_1_2.bmp .bmp file offset: 11011 .bmp file size: 5176 File sm_1_2.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_1_3.bmp .bmp file offset: 16187 .bmp file size: 5176 File sm_1_3.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_1_4.bmp .bmp file offset: 21363 .bmp file size: 5176 File sm_1_4.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_0.bmp .bmp file offset: 26539 .bmp file size: 5176 File sm_2_0.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_1.bmp .bmp file offset: 31715 .bmp file size: 5176 File sm_2_1.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_2.bmp .bmp file offset: 36891 .bmp file size: 5176 File sm_2_2.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_3.bmp .bmp file offset: 42067 .bmp file size: 5176 File sm_2_3.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_4.bmp .bmp file offset: 47243 .bmp file size: 5176 File sm_2_4.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_5.bmp .bmp file offset: 52419 .bmp file size: 5176 File sm_2_5.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_6.bmp .bmp file offset: 57595 .bmp file size: 5176 File sm_2_6.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_0.bmp .bmp file offset: 62771 .bmp file size: 5176 File sm_3_0.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_1.bmp .bmp file offset: 67947 .bmp file size: 5176 File sm_3_1.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_2.bmp .bmp file offset: 73123 .bmp file size: 5176 File sm_3_2.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_3.bmp .bmp file offset: 78299 .bmp file size: 5176 File sm_3_3.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_4.bmp .bmp file offset: 83475 .bmp file size: 5176 File sm_3_4.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_5.bmp .bmp file offset: 88651 .bmp file size: 5176 File sm_3_5.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_6.bmp .bmp file offset: 93827 .bmp file size: 5176 File sm_3_6.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_4_0.bmp .bmp file offset: 99003 .bmp file size: 5176 File sm_4_0.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_4_1.bmp .bmp file offset: 104179 .bmp file size: 5176 File sm_4_1.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_4_2.bmp .bmp file offset: 109355 .bmp file size: 5176 File sm_4_2.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_4_3.bmp .bmp file offset: 114531 .bmp file size: 5176 File sm_4_3.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_4_4.bmp .bmp file offset: 119707 .bmp file size: 5176 File sm_4_4.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_4_5.bmp .bmp file offset: 124883 .bmp file size: 5176 File sm_4_5.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_5_0.bmp .bmp file offset: 130059 .bmp file size: 5176 File sm_5_0.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_5_1.bmp .bmp file offset: 135235 .bmp file size: 5176 File sm_5_1.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_5_2.bmp .bmp file offset: 140411 .bmp file size: 5176 File sm_5_2.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_5_3.bmp .bmp file offset: 145587 .bmp file size: 5176 File sm_5_3.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_5_4.bmp .bmp file offset: 150763 .bmp file size: 5176 File sm_5_4.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_5_6.bmp .bmp file offset: 155939 .bmp file size: 5176 File sm_5_6.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_6_4.bmp .bmp file offset: 161115 .bmp file size: 5176 File sm_6_4.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_6_6.bmp .bmp file offset: 166291 .bmp file size: 4716 File sm_6_6.bmp has been extracted! Done! В результате получили 33 .bmp файла-фрагмента из которых можно собрать карту: Стоит отметить, что если на фрагменте отображается только море, то такой фрагмент не включается в .pk файл, а берется из папки \texture\terrain\water (насколько я помню). В названии каждого фрагмента отражены его координаты X, Y: sm_X_Y.bmp Вот программа, которая автоматически распаковывает .pk файлы и склеивает фрагменты в полную карту: 1 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
Ropedann 42 Report post Posted November 28, 2019 @V3ct0r Спасибо за подробное описание! Quote Share this post Link to post Share on other sites
Graf 210 Report post Posted December 16, 2019 Большое спасибо! Получается на "ура") Даже немного понравилось редактировать) Цитата Quote Share this post Link to post Share on other sites
Venjik 5 Report post Posted August 24, 2020 Больше спасибо большое автору, дельный руководство. Один вопрос, как делать водные участки? озеро лужу или реку? возможно сам чуть позже допру, но это долго может кто раньше ответит в теме) Спойлер Quote Share this post Link to post Share on other sites
Venjik 5 Report post Posted August 24, 2020 на скринах наброски) Quote Share this post Link to post Share on other sites
V3ct0r 2,117 Report post Posted December 19, 2021 Добавил в гайд информацию как редактировать текстуры земли с помощью редактора карт клиента (спасибо @Kst). Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
Ropedann 42 Report post Posted March 14, 2022 В 24.08.2020 в 17:58, Venjik сказал: Больше спасибо большое автору, дельный руководство. Один вопрос, как делать водные участки? озеро лужу или реку? возможно сам чуть позже допру, но это долго может кто раньше ответит в теме) Показать контент Делаеться либо продавливанием земли в самом клиенте в режиме редактора. Либо через Yuami заменяя землю на воду. а потом уже подсгладить рельеф в редакторе. Поздно, но пусть будет. 1 Quote Share this post Link to post Share on other sites
Ropedann 42 Report post Posted March 14, 2022 Кто то кстате пробывал создавать своюб шахту. Вчера пробывал окозалось это достаточно проблематично) Если кто то пробывал может будут какието рекомендации? Quote Share this post Link to post Share on other sites
Ropedann 42 Report post Posted March 14, 2022 (edited) Так же хочу поделиться последней наработкой. (Рекомендую смотретьв х2) Edited March 14, 2022 by Ropedann 2 Quote Share this post Link to post Share on other sites