DENIS.P.

Создаем радар с собственной картой

В теме 14 сообщений

Всем привет, думаю многие знают, что на некоторых проектах в мод-паки входит своя карта, отображаемая на радаре и в меню (ESC > Карта) с маппингом сервера, но немногие знают, как сделать себе такую. В этой теме я расскажу, как сделать собственный рендер карты со своим маппингом сервера.

 

Для начала несколько примечаний:
Для рендера с маппингом сервера потребуется перевести его в IPL формат, если ваша карта уже есть в таком формате - хорошо, если нет - мы научимся конвертировать её в этой теме.
Рекомендуется, чтобы удаляемые объекты (RemoveBuildingForPlayer), либо были в небольшом количестве, либо были незаметными, потому что удалить их на рендере невозможно.
Рендер можно делать с модификацией на текстуры игры (весна, осень, зима), получается весьма красиво.
Для рендера мы будем использовать программу MapViewer, которую можно найти в сети, но рекомендую использовать мою версию с некоторыми исправлениями в её скриптах.
Карту, которую мы получим в итоге, можно в пару кликов перевести либо в одно изображение, либо разделить по TXD файлам для мод-пака с помощью программы XRadarEditor.
Для создания рендера я рекомендую использовать полностью чистую копию GTA Criminal Russia 
На итоговом рендере не будет воды, её можно дорисовать через фотошоп.

Переводим карту в IPL формат:
Скачиваем следующий скрипт. Script
Используем любой сервер с установленным на нем sscanf 2.8.2 или выше.
Перекинем ipl.pwn в filterscripts и скомпилируем.
В файл scriptfiles/iplc/input.txt записываем код маппинга строго в формате CreateObjeсt без комментариев и лишних строк (пустых в том числе).
Запускаем сервер и вводим в консоль команду "loadfs ipl".
Если всё будет отлично - в scriptfiles/iplc/output.txt будет записан маппинг в формате IPL.

Подготовка игры для рендера карты:
Как я и сказал, рекомендуется чистая версия GTA Criminal Russia (желательно копией, дабы в будущем можно было легко делать рендер и не засорять рабочую игру).
Создаем в директории игры папку "map", копируем в созданную папку файлы "mp.img" и "mp_col.img" из папки "multiplayer_c/models" (оригинальной игры с мультиплеером), скачиваем файл и перекидываем его в папку "map" под названием "mp.ide".
Копируем IPL файл карты (полученный ранее в output.txt) в папку "map" под названием "map.ipl".
Если у вас есть мод-пак со своими объектами, то переместите всё в ту же папку IDE и IMG файл мод-пака, допустим под названиями "modpack.ide" и "modpack.img" (если есть IPL файл, то добавьте его содержимое к map.ipl).
Откройте файл %ПапкаИгры%/data/gta.dat и замените все его содержимое на:

IMG MODELS\gta3.IMG
IMG MODELS\gamemod.IMG
IMG MODELS\gta_int.IMG

IMG map\mp.IMG
IMG map\mp_col.IMG
# IMG map\modpack.IMG

IDE DATA\MAPS\generic\vegepart.IDE
IDE DATA\MAPS\generic\barriers.IDE
IDE DATA\MAPS\generic\dynamic.IDE
IDE DATA\MAPS\generic\dynamic2.IDE
IDE DATA\MAPS\generic\multiobj.IDE
IDE DATA\MAPS\generic\procobj.IDE
IDE DATA\MAPS\leveldes\levelxre.IDE
IDE DATA\MAPS\sopki\sopki.IDE
IDE DATA\MAPS\sopki\newgen.IDE
IDE DATA\MAPS\sopki\sopki_lesa.IDE
IDE DATA\MAPS\Arzamas\arzamas_N.IDE
IDE DATA\MAPS\Arzamas\arzamas_gen.IDE
IDE DATA\MAPS\Arzamas\arzamas_park.IDE
IDE DATA\MAPS\Arzamas\country_WN.IDE
IDE DATA\MAPS\Arzamas\arzamas_S.IDE
IDE DATA\MAPS\crteam\crteam.IDE
IDE DATA\MAPS\ryazan\ryazan.IDE
IDE DATA\MAPS\russia\garel.IDE
IDE DATA\MAPS\russia\materik.IDE
IDE DATA\MAPS\russia\materik_objs.IDE
IDE DATA\MAPS\lytkarino\lytkarino.IDE
IDE DATA\MAPS\russia\rogovichi.IDE
IDE DATA\MAPS\russia\OpenAir.IDE
IDE DATA\MAPS\batyrevo\batyrevo.IDE
IDE DATA\MAPS\mod_int\mod_int.IDE
IDE DATA\MAPS\mod_int\AudiosurfGame.IDE
IDE DATA\MAPS\veh_mods\veh_mods.IDE
IDE DATA\TXDCUT.IDE

IDE map\mp.IDE
# IDE map\modpack.IDE

IPL DATA\MAPS\sopki\sopki.IPL
IPL DATA\MAPS\sopki\sopki_add2.IPL
IPL DATA\MAPS\sopki\sopki_add3.IPL
IPL DATA\MAPS\sopki\sveg.IPL
IPL DATA\MAPS\sopki\add_sopki.IPL
IPL DATA\MAPS\sopki\sopki_lesa.IPL
IPL DATA\MAPS\Arzamas\arzamas_N.IPL
IPL DATA\MAPS\Arzamas\arzamas_N2.IPL
IPL DATA\MAPS\Arzamas\arzamas_Ngen.IPL
IPL DATA\MAPS\Arzamas\country_WN.IPL
IPL DATA\MAPS\Arzamas\arzamas_veg.IPL
IPL DATA\MAPS\Arzamas\arzamas_veg2.IPL
IPL DATA\MAPS\Arzamas\arzamas_park.IPL
IPL DATA\MAPS\Arzamas\arzamas_S.IPL
IPL DATA\MAPS\crteam\crteam.IPL
IPL DATA\MAPS\crteam\crteam_gen.IPL
IPL DATA\MAPS\crteam\crteam_veg.IPL
IPL DATA\MAPS\ryazan\ryazan.IPL
IPL DATA\MAPS\ryazan\ryazan_gen.IPL
IPL DATA\MAPS\ryazan\ryazan_veg.IPL
IPL DATA\MAPS\ryazan\koryakino.IPL
IPL DATA\MAPS\ryazan\koryakino_gen.IPL
IPL DATA\MAPS\russia\garel.IPL
IPL DATA\MAPS\russia\garel_gen.IPL
IPL DATA\MAPS\russia\materik.IPL
IPL DATA\MAPS\russia\materik_objs.IPL
IPL DATA\MAPS\russia\materik_gen.IPL
IPL DATA\MAPS\russia\SPC_generic.IPL
IPL DATA\MAPS\lytkarino\lytkarino.IPL
IPL DATA\MAPS\lytkarino\lyt_genveg.IPL
IPL DATA\MAPS\russia\rogovichi.IPL
IPL DATA\MAPS\russia\tesla_place.IPL
IPL DATA\MAPS\russia\bigRyazanLes.IPL
IPL DATA\MAPS\russia\OpenAir.IPL
IPL DATA\MAPS\batyrevo\batyrevo.IPL
IPL DATA\MAPS\batyrevo\batyrevo_tree.IPL
IPL DATA\MAPS\russia\metro2.IPL
IPL DATA\MAPS\mod_int\mod_int.IPL
IPL DATA\MAPS\mod_int\AudiosurfGame.IPL
IPL DATA\MAPS\audiozon.IPL
IPL DATA\MAPS\cull.IPL

IPL map\map.IPL

Раскомментируйте комментарии с файлами "modpack.IDE" и "modpack.IPL", если это требуется (пункт 4).
На этом подготовление игры к рендеру закончено, можем идти дальше.

Рендерим саму карту:
Скачиваем мою версию MapViewer.MapViewer
Распаковываем папку из архива в любое место.
Открываем файл games.cfg и прописываем в нем путь для нашей игры, примерно так:
G:\Games\GTA Criminal Russia Full Original
Запускаем MapViewer.exe, у вас должно открыться маленькое черное окошечко. Для того, чтобы убрать курсов из фокуса, нажмите один раз ESC, для того, чтобы закрыть MapViewer, нажмите два раза ESC или ALT + F4.
Нажимаем F1 и дожидаемся загрузи нашей карты, если всё будет отлично - мы сможем летать по карте.
Нажимаем F11 и дожидаемся конца рендера карты, скорее всего это действие придется повторить два раза, т.к. в рендере могут быть артефакты (черные дыры).
В папке radar получаем 145 bmp файлов каждого куска карты.

Объединение в одно изображение или разделение по TXD файлам:
Скачиваем от сюда и запускаем XRadarEditor.
Нажимаем Import > Import Tile(s), переходим в папку radar, выделяем все файлы (CTRL + A) и нажимаем "Открыть".
Экспортировать карту в одно изображение - Export > Export Map, экспортировать по TXD файлам - Export > Export Tiles > As TXDs > All.
Чтобы закрыть XRadarEditor, нажмите ПКМ > Exit.
Для того, чтобы заменить карту в игре, все TXD файлы можно перекинуть в gta3.img с заменой или в IMG файл мод-пака. Как я сказал выше, воду придется дорисовывать вручную (в XRadarEditor можно экспортировать всё в одно изображение, дорисовать воду, а потом импортировать и экспортировать TXD файлы).

Авторство:

Весь текст и авторство программа или их переделки принадлежат  JoKeR_2020 он же Владимир Сергеенко.

При копировании темы на другие порталы указание авторства обязательно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос почему такая карта появилась, я все сделал по инструкции!

И при этом карта как то в плохом качестве.

 

 

Скриншот 12-02-2018 140524.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Andrey_Akkerman значит вы в плохом качестве или неверно срендерили карту. При приближении, как известно, качество изображения теряется, так что это необходимо учитывать. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
53 минуты назад, DEST сказал:

@Andrey_Akkerman значит вы в плохом качестве или неверно срендерили карту. При приближении, как известно, качество изображения теряется, так что это необходимо учитывать. 

Он после рендера warning выдает

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Andrey_Akkerman Кстати, если вам нужен более качественный ренденр, то можно засунуть этот файл В папку viewer и сделать рендер, еще рендер лучше делать раз десять дабы было более прорисованней Кликни для скачки

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где найти этот сверер с sscanf 2.8.2?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@blinchickvsemq скачать чистый сервер и скачать плагин sscanf 2.8.2, установить его на скачанный чистый и все готово. 

Чистый сервер для CR:MP 0.3e находится в разделе "Моды", а плагин в разделе "Плагины / инклуды". 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@DENIS.P. спасибо! намного лучше обычного качества!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у меня вопрос, что делать если некоторые здания на карте отрисовываются белым, без текстур?
а в режиме полета когда к ним подлетаю, они не загружаются вообще, стоят только их лоды
в самой игре таких багов нет, все работает стабильно и нормально
при загрузке в map editor тоже все в порядке

 

Спойлер

1111.jpg

Отредактировано пользователем odosenok
Причина: взял изображение под спойлер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 20.08.2019 в 17:32, AMOR сказал:

у меня вопрос, что делать если некоторые здания на карте отрисовываются белым, без текстур?
а в режиме полета когда к ним подлетаю, они не загружаются вообще, стоят только их лоды
в самой игре таких багов нет, все работает стабильно и нормально
при загрузке в map editor тоже все в порядке

 

  Изображение (закрыть спойлер)

1111.jpg

Ну так в paint загрузи данную часть и покрась и радуйся,в чем проблема. эту карту можно всю обрисовать как захочешь,были бы только руки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что делать если у меня нету такого файла scriptfiles/iplc/input.txt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, _bogdan_ сказал:

Делаю в по инструкции, но при заходе на сервер происходит краш.

В чем может быть проблема?

Посмотрите в логах

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Люди, а что, если нету папки "radar" после рендера?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можете обновить ссылку на скрипт?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • gooding
      От gooding


      Скачать файл PAR RP | Доработанный мод Cruela RP | Без багов
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
      Основа данного мода: Cruela RP
       
       

      Добавил gooding Добавлено 20.11.2024 Категория Моды Автор GOODING (Я)  
    • gooding
      От gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
      Основа данного мода: Cruela RP
       
       

    • Max Luilchack
      От Max Luilchack
      Нужен человек который сможет сделать примерную карту Украины для сервера crmp mobile. Если есть желающие пишите в дс: lamarlml
    • Yashich
      От Yashich
      Возникла проблема, не работает команда /giverank Что здесь может работать не так? Заранее спасибо за ответ)
      Вот строки кода связанные с этой командой (мод Аризона)
       
      CMD:giverank(playerid, params[]) {     if(PI[playerid][pMember]<=0)return 0;     if(PI[playerid][pRank] < 9 && PI[playerid][pLeader] == 0) return SCM(playerid, COLOR_RED, !"Отказано в доступе!");     if(sscanf(params,"ud",params[0],params[1])) return SCM(playerid, COLOR_RED, !"Используйте: /giverank [id] [rank]");     if(!ProxDetectorS(8.0, playerid, params[0])) return SCM(playerid, COLOR_GREY, !"Вы должны находиться рядом с игроком!");     if(PI[params[0]][pLeader] > 0 ) return SCM(playerid, COLOR_RED, !"Вы не можете изменять ранг лидеру");     if(params[1] < 1) return SCM(playerid, COLOR_GREY, !"Нельзя повысить до этого ранга");     if(Clother[params[0]]!=-1)return 0;     if(GetPlayerVirtualWorld(playerid)!=GetPlayerVirtualWorld(params[0]))return 0;     if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, !"Игрок не найден");     if(PI[playerid][pRank] <= PI[params[0]][pRank]) return SCM(playerid, COLOR_GREY, !"Вы не можете повысить/понизить этого игрока");     if(PI[playerid][pRank] == 9 && params[1] > 8) return SCM(playerid, COLOR_RED, !"Нельзя выдать ранг больше 8");     if(params[1] > 9) return SCM(playerid, COLOR_GREY, !"Нельзя повысить до этого ранга");     if(PI[params[0]][pMember] != PI[playerid][pMember]) return SCM(playerid, COLOR_GREY, !"Игрок находиться в другой организации!");     str_1[0] = EOS;     f(str_1,100,"Лидер %s %s до %i ранга",PN(playerid),PI[params[0]][pRank] > params[1] ? ("понизил"):("повысил"),params[1]);     SCM(params[0],COLOR_LIGHTBLUE,str_1);     f(str_1,100,"Вы %sи игрока %s до %i ранга",PI[params[0]][pRank] > params[1] ? ("понизил"):("повысил"),PN(params[0]),params[1]);     SCM(playerid,COLOR_LIGHTBLUE,str_1);     PI[params[0]][pRank] = params[1];     UpdatePlayerDataInt(params[0], "Rank", params[1]);     if(PI[params[0]][pSex] == 2) if(TeamDuty{params[0]}) SetPlayerSkinEx(params[0],GOrgSkins[GetTeamID(params[0])][params[1]]), TogglePlayerControllable(params[0],true);     else if(TeamDuty{params[0]}) SetPlayerSkinEx(params[0],MOrgSkins[GetTeamID(params[0])][params[1]]), TogglePlayerControllable(params[0],true);     return 1; }