Перейти к содержимому
Для публикации в этом разделе необходимо провести 1 боёв.
Kinhcotolom

[ModAPI] Content SDK для модификации кораблей

В этой теме 153 комментария

Рекомендуемые комментарии

Разработчик
102 публикации
3 719 боёв

Для создания мода потребуется ModsSDK.
Содержимое готового мода может выглядеть так:

 

Архив файлов "ModsSDK.zip" распаковать в папку с названием "ModsSDK.zip" и поместить в каталог "res_mod/<game_version_folder>/PnFMods":

ModsSDK_zip.png

 

В папке PnFMods создать папку со своим модпаком. Например "MySuperMod". Для ModsAPI эта папка будет именем мода(модпака). И далее под именем мода мы будем понимать в том числе и название папки. Мод
В папке модпака создать Main.py

 

API_VERSION = 'API_v1.0'
MOD_NAME = "MySuperMod"
SHIP_NAME = 'ASA013_Essex_1945'
contentSdk.extractSources(MOD_NAME, SHIP_NAME)

Запустить клиент. Подождать пока он прогрузиться. Подождать после этого минутку-другую. Закрыть клиент.
Убедится что в папке с модом появилась папка с названием корабля.

ModsSDK_extract.png


Все, теперь вы можете начать смотреть какие текстуры использует корабль, и выбрать какие из них вы хотите модифицировать.
Допустим вы изменили какую-то текстуру в папке с кораблем. Пришла пора увидеть результат в игре.
Открываем Main.py

 

API_VERSION = 'API_v1.0'
MOD_NAME = "MySuperMod"
SHIP_NAME = 'ASA013_Essex_1945'
#contentSdk.extractSources(MOD_NAME, SHIP_NAME)
contentSdk.registerShipMod(SHIP_NAME)

Сохраняем, закрываем, запускаем клиент, заходим в док, выбираем корабль и любуемся на свою работу.

 

Модпак из примера, конечно более навороченный. Он содержит в себе в том числе и flash.

 

Изменив в Main.py значения MOD_NAME, SHIPS_LIST и SHIPS_TO_BUILD, вы легко сможете адаптировать его под свой модпак.
Отдельно скажу про FIX_COMMON_MODELS. Если у вас на вашем модифицированном корабле появится красная текстура, а в логах попадется текстура которую игра не смогла найти, и имя текстуры не начинается с индекса вроде "ASA013", то добавьте ее в список FIX_COMMON_MODELS

 

На данный момент все. Задавайте вопросы тут. Замечания приветствуются.

 

Первые F.A.Q.

Q: Я не стал извлекать файлы корабля с использованием ModsAPI, а просто копировал их из ModsSDK в папку с моим модом. В результате в папке отсутствуют файлы текстур и примитивов. А так-же в файлах моделей ссылки на папку с SDK. Что делать ?

A: Извлечь файлы с помощью ModsAPI. Для этого есть функция contentSdk.extractSources(). Пример использования в инструкции.

 

//ModsSDK обновлен до версии 0.7.5.0
//Содержимое архива нужно распаковать в res_mods/0.7.5.0

mods_howto_0.png

mods_howto_1.png

  • Плюс 4

Рассказать о публикации


Ссылка на публикацию
Участник
2 261 публикация

Это только для шкурок или для камуфляжей тоже ?

И какая практическая необходимость в этом ? Скоро обычный способ добавления модов в игру, не будет работать ?

  • Плюс 2

Рассказать о публикации


Ссылка на публикацию
Участник
1 195 публикаций

Огромное спасибо за инструкцию! А то я уже несколько часов бьюсь, пытаюсь понять, как оно работает... :) Столько возможностей теперь открыто, вот уж настоящий подарок на Новый Год!

13:45 Добавлено спустя 2 минуты

Это только для шкурок или для камуфляжей тоже ?

И какая практическая необходимость в этом ? Скоро обычный способ добавления модов в игру, не будет работать ?

 

Насколько я понимаю, этот мод - именно для шкурок кораблей. Обычный способ, думаю, оставят, просто этот - более продвинутый и более функциональный. Например, можно разделить настройки свечения для разных кораблей, или разделить шкурки элементов для разных моделей - например, башня ГК для Монтаны, Айовы и Миссури использует одну и ту же модель, из-за чего шкурки на эти корабли приходилось делать похожими... Ну и много других вещей
  • Плюс 2

Рассказать о публикации


Ссылка на публикацию
6 746
[-ZOO-]
Старший бета-тестер, Коллекционер
11 602 публикации
27 580 боёв

Я правильно понял что с помощью СДК можно вытащить все текстуры нужного корабля в отдельную папку - Спокойно править и потом поколдовав Мод применится к нужному кораблю - Причем точно к нужному и у других кораблей с такими же например ТА ничего не "сломается"?

Рассказать о публикации


Ссылка на публикацию
Бета-тестер
6 475 публикаций

Здравствуйте,уважаемый Kinhcotolom

Если не путаю то

Итак, все текстуры в игре располагаются по адресу:

))) сами знаете где:hmm:

Все файлы зашифрованы в [ .xnb ] , что не позволяет их прочесть. Для этого умные люди написали программу, превращающую [ .xnb ] -> [ .png ] XNB Exporter
2.а. Работаем с программой.
3. Рядом с .xnb появились и .png с таким же именем. При желании их копируем в отдельную папку и редактируем.
4. Для редактирования рекомендуют использовать такие простые граф редакторы, как PaintNET и GIMP. Подойдет и всеми любимый Adobe Photoshop, но лучше пользоваться "истинной" рисовалкой, т.к. градиенты и маски слоя с фильтрами тут не понадобятся.

Тут все просто. Редактируете изображение под себя. Вот пример что было, и что стало

YkdWaK44cjI.jpg

Разница на лицо, да и играть с такими текстурами куда приятнее

Изменено пользователем Gromolet_SPB

Рассказать о публикации


Ссылка на публикацию
Участник
1 195 публикаций

Здравствуйте,уважаемый Kinhcotolom

Если не путаю то

Итак, все текстуры в игре располагаются по адресу:

))) сами знаете где:hmm:

Все файлы зашифрованы в [ .xnb ] , что не позволяет их прочесть. Для этого умные люди написали программу, превращающую [ .xnb ] -> [ .png ] XNB Exporter
2.а. Работаем с программой.
3. Рядом с .xnb появились и .png с таким же именем. При желании их копируем в отдельную папку и редактируем.
4. Для редактирования рекомендуют использовать такие простые граф редакторы, как PaintNET и GIMP. Подойдет и всеми любимый Adobe Photoshop, но лучше пользоваться "истинной" рисовалкой, т.к. градиенты и маски слоя с фильтрами тут не понадобятся.

Тут все просто. Редактируете изображение под себя. Вот пример что было, и что стало

YkdWaK44cjI.jpg

Разница на лицо, да и играть с такими текстурами куда приятнее

 

а что за текстуры в xnb? Я все время работаю с dds... А чтобы их открывать, нужно просто плагин к gimp прикрутить. .. может, мы про разные вещи говорим?

Да   градиенты-маски-слои я в работе использую активно, без них бы не получилось того, что вы видите в примере... Не говоря уж о более "продвинутых" инструментах вроде normal map builder...

Изменено пользователем anonym_UxjT6zeFfoLf

Рассказать о публикации


Ссылка на публикацию
Бета-тестер
6 475 публикаций

 

а что за текстуры в xnb? Я все время работаю с dds... А чтобы их открывать, нужно просто плагин к gimp прикрутить. .. может, мы про разные вещи говорим?

Да   градиенты-маски-слои я в работе использую активно, без них бы не получилось того, что вы видите в примере... Не говоря уж о более "продвинутых" инструментах вроде normal map builder...

 

все правильно, можно и так

И форматы разные, а насчет инструментов, пользуются кто как может.Просто старый вариант

Рассказать о публикации


Ссылка на публикацию
6 746
[-ZOO-]
Старший бета-тестер, Коллекционер
11 602 публикации
27 580 боёв

 

все правильно, можно и так

И форматы разные, а насчет инструментов, пользуются кто как может.Просто старый вариант

 

ДДС без проблем открывается в фотошопе после установки малюсенького плагина-конвертера

 

Основная проблема была как раз поиск всех файлов и замена текстур только у одной моделки а не паралельно 10ти (ну для меня)

Рассказать о публикации


Ссылка на публикацию
3 033
[YOLO]
Старший альфа-тестер, Коллекционер
3 210 публикаций
29 628 боёв

в закладку

Рассказать о публикации


Ссылка на публикацию
Участник
1 195 публикаций

Есть проблема. Никак не могу заставить работать FIX_COMMON_MODELS в простом моде. Вот текст Main.py

 API_VERSION = 'API_v1.0'
MOD_NAME = "Missouri_War"
SHIP_NAME = 'ASB509_Missouri'
FIX_COMMON_MODELS = set(['transparent_glass_alpha_a.dds'])
contentSdk.registerShipMod(SHIP_NAME)
if 'content/gameplay/' in line:
    for common_model in FIX_COMMON_MODELS:
    if common_model in line:
        toreplace = line.split('</Texture>')[0]
        replacestr = '<Texture>\tcontent/gameplay/common/textures/%s\t'%common_model
        data[idx] = line.replace(toreplace, replacestr)
#contentSdk.extractSources(MOD_NAME, SHIP_NAME)

Но он работает лишь частично - убирает косяк с поломанной текстурой, но сам мод не грузится :(

Если я убираю/комментирую кусок с FIX_COMMON_MODELS, то мод грузится и всё в порядке (кроме поломанной текстуры)

Рассказать о публикации


Ссылка на публикацию
Разработчик
102 публикации
3 719 боёв

 Это только для шкурок или для камуфляжей тоже ?

 Для шкурок.

 

 Я правильно понял что с помощью СДК можно вытащить все текстуры нужного корабля в отдельную папку - Спокойно править и потом поколдовав Мод применится к нужному кораблю - Причем точно к нужному и у других кораблей с такими же например ТА ничего не "сломается"?

Да, вы все правильно поняли :) 

 

 Здравствуйте,уважаемый Kinhcotolom

Если не путаю то

Итак, все текстуры в игре располагаются по адресу:

))) сами знаете где:hmm:

Все файлы зашифрованы в [ .xnb ] , что не позволяет их прочесть. Для этого умные люди написали программу, превращающую [ .xnb ] -> [ .png ] XNB Exporter

Здравствуйте, уважаемый.

Движок работает с *.dds, которые лежат в packages, для которых в соседней теме есть распаковщик. Про .xnb слышу впервые.

 

 Есть проблема. Никак не могу заставить работать FIX_COMMON_MODELS в простом моде. Вот текст Main.py...

Вы неверно выдернули код. Он очевидно падает при загрузке и система отключает его. Соответственно никаких изменений в игру он не вносит. Все просто :)

И честно говоря, вам по идее не нужно было вытаскивать это из примера. Весь пример можно использовать как для создания мода, так и для его использования.

Что именно вы хотели сделать ? 

 

Рассказать о публикации


Ссылка на публикацию
Бета-тестер
6 475 публикаций

 Для шкурок.

 

Да, вы все правильно поняли :) 

 

Здравствуйте, уважаемый.

Движок работает с *.dds, которые лежат в packages, для которых в соседней теме есть распаковщик. Про .xnb слышу впервые.

 

Вы неверно выдернули код. Он очевидно падает при загрузке и система отключает его. Соответственно никаких изменений в игру он не вносит. Все просто :)

И честно говоря, вам по идее не нужно было вытаскивать это из примера. Весь пример можно использовать как для создания мода, так и для его использования.

Что именно вы хотели сделать ? 

 

 

скину ссылку вам в лс, чтобы было понятно

 

Рассказать о публикации


Ссылка на публикацию
6 746
[-ZOO-]
Старший бета-тестер, Коллекционер
11 602 публикации
27 580 боёв

Распаковал СДК - так это что просто набор покарабельный файлов? Текстуры поменяются - опять качать менять?

Рассказать о публикации


Ссылка на публикацию
Разработчик
102 публикации
3 719 боёв

 Распаковал СДК - так это что просто набор покарабельный файлов? Текстуры поменяются - опять качать менять? 

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

 

Рассказать о публикации


Ссылка на публикацию
6 746
[-ZOO-]
Старший бета-тестер, Коллекционер
11 602 публикации
27 580 боёв

Я чета нипонял - где ДДС?

Че менять? Как применить?

Вот пример: У меня есть файлы что я когда то менял на фарагуте. были косяки с недодлелакми - но в целом устраивало (Мишура не менялась, ТА влияло на Мазхана)

Я поробовал ваш СДК - эм.... че делать?

1 - Перенес ваши файлы в мод - вроде прально

2 - Скопипастил Папку Фарагут_1944 в паку "Мой мод Фара бла бла" (Не надо было?)

3 - Хотел начать изменения и скинуть старые ДДС ... эм .... нинашел ДДС .... break; ruturn;

Рассказать о публикации


Ссылка на публикацию
Разработчик
102 публикации
3 719 боёв

 2 - Скопипастил Папку Фарагут_1944 в паку "Мой мод Фара бла бла" (Не надо было?)

 Нет.

 3 - Хотел начать изменения и скинуть старые ДДС ... эм .... нинашел ДДС .... break; ruturn;

 Последствия неверного использования SDK.

 

Почитайте, пожалуйста, инструкцию.

 

Рассказать о публикации


Ссылка на публикацию
6 746
[-ZOO-]
Старший бета-тестер, Коллекционер
11 602 публикации
27 580 боёв

не товарищи .... без ДДС этот СДК безполезен .... а жаль

Грубо говря не надо сложностей - дайте возможность менять только ДДС и только для одной модельки и усё

16:41 Добавлено спустя 0 минут

 Нет.

 Последствия неверного использования SDK.

 

Почитайте, пожалуйста, инструкцию.

 

 

А где я возьму все фалйы? грубо говря мне СДК ничего не дал :(

Вставить файлы что есть я могу и без СДК .... только меня не устраивает гшеморрой при этом и ньюансы (Потому и забросил это дело тогда еще)

Изменено пользователем WarXed

Рассказать о публикации


Ссылка на публикацию
Участник
1 195 публикаций

Вы неверно выдернули код. Он очевидно падает при загрузке и система отключает его. Соответственно никаких изменений в игру он не вносит. Все просто :)

И честно говоря, вам по идее не нужно было вытаскивать это из примера. Весь пример можно использовать как для создания мода, так и для его использования.

Что именно вы хотели сделать ? 

 

 

Я так и понял. Я хочу сделать скин чисто для одного корабля - Миссури. Вот так выглядит работающий Main.py:

 API_VERSION = 'API_v1.0'
MOD_NAME = "Missouri_War"
SHIP_NAME = 'ASB509_Missouri'
contentSdk.registerShipMod(SHIP_NAME)

 

Но при этом виден косяк с текстурами на окнах (показаны синими стрелочками - на самом деле окна прозрачные, но сейчас вместо них красные кубики)

 a54d5-clip-743kb.jpg?nocache=1

 

Его я и хочу убрать при помощи FIX_COMMON_MODELS, но как это впихнуть в мой код, не знаю :(

17:20 Добавлено спустя 1 минуту

не товарищи .... без ДДС этот СДК безполезен .... а жаль

Грубо говря не надо сложностей - дайте возможность менять только ДДС и только для одной модельки и усё

16:41 Добавлено спустя 0 минут

 

А где я возьму все фалйы? грубо говря мне СДК ничего не дал :(

Вставить файлы что есть я могу и без СДК .... только меня не устраивает гшеморрой при этом и ньюансы (Потому и забросил это дело тогда еще)

 

вообще-то при выгрузке модели (первый пункт инструкции - когда ты запускаешь клиент с кодом contentSdk.extractSources(MOD_NAME, SHIP_NAME) ) ты и получаешь ддски... Очень советую - пройди по всем этапам инструкции своими руками, и ты увидишь, что всё крайне очевидно и понятно :) Этот СДК нужен для двух моментов - вписать код корабля в код Main.py (чтобы игра поняла, какую именно модель надо выгрузить), а дальше он лично тебе не нужен - его использует игра для того, чтобы составить список содержимого модели. То есть сам ты оттуда берёшь только наименование модели, и всё (как у меня - ASB509_Missouri)

Изменено пользователем anonym_UxjT6zeFfoLf
  • Плюс 2

Рассказать о публикации


Ссылка на публикацию
6 746
[-ZOO-]
Старший бета-тестер, Коллекционер
11 602 публикации
27 580 боёв

 

Я так и понял. Я хочу сделать скин чисто для одного корабля - Миссури. Вот так выглядит работающий Main.py:

 API_VERSION = 'API_v1.0'
MOD_NAME = "Missouri_War"
SHIP_NAME = 'ASB509_Missouri'
contentSdk.registerShipMod(SHIP_NAME)

 

Но при этом виден косяк с текстурами на окнах (показаны синими стрелочками - на самом деле окна прозрачные, но сейчас вместо них красные кубики)

 a54d5-clip-743kb.jpg?nocache=1

 

Его я и хочу убрать при помощи FIX_COMMON_MODELS, но как это впихнуть в мой код, не знаю :(

17:20 Добавлено спустя 1 минуту

 

вообще-то при выгрузке модели (первый пункт инструкции - когда ты запускаешь клиент с кодом contentSdk.extractSources(MOD_NAME, SHIP_NAME) ) ты и получаешь ддски... Очень советую - пройди по всем этапам инструкции своими руками, и ты увидишь, что всё крайне очевидно и понятно :) Этот СДК нужен для двух моментов - вписать код корабля в код Main.py (чтобы игра поняла, какую именно модель надо выгрузить), а дальше он лично тебе не нужен - его использует игра для того, чтобы составить список содержимого модели. То есть сам ты оттуда берёшь только наименование модели, и всё (как у меня - ASB509_Missouri)

 

Че сразу минусить - на мой взгляд это гемор еще чето делать - Запустить клиент с кодом - что еще надло "левого" сделать? И кстати где инструкция если уж на то пошлдо?

Какого я должен запускать мод ЕСЛИ ЕГо ЕЩЕ НЕТ?"!?!!?!?

17:39 Добавлено спустя 2 минуты

"!Задавайте вопросы тут. Замечания приветствуются."

 

ВОТ ЭТО ЧТО??? Я И ЗАДАЮ ВОПРОСЫ маза фака

Если они возникли значит ВЫ что то не доделали

Изменено пользователем WarXed

Рассказать о публикации


Ссылка на публикацию
Участник
1 195 публикаций

 

Че сразу минусить - на мой взгляд это гемор еще чето делать - Запустить клиент с кодом - что еще надло "левого" сделать? И кстати где инструкция если уж на то пошлдо?

Какого я должен запускать мод ЕСЛИ ЕГо ЕЩЕ НЕТ?"!?!!?!?

17:39 Добавлено спустя 2 минуты

"!Задавайте вопросы тут. Замечания приветствуются."

 

ВОТ ЭТО ЧТО??? Я И ЗАДАЮ ВОПРОСЫ маза фака

Если они возникли значит ВЫ что то не доделали

 

Я никого не минусил, клянусь Хаосом. Только ответил на твой вопрос. Так что минусы прилетели откуда-то из другого места. Инструкция - в первом посте. Попробую разжевать её:

 

Так понятней? И да - я нисколько не издеваюсь и не минусю, наоборот - пытаюсь помочь

  1. скачать ModsSDK и положить папку ModsDSK из него в res_mods\x.x.x.x\PnFMods (прошу обратить внимание, что в предложенном дляскачивания архиве эта папка находится чуть глубже рута - необходимо быть внимательным)
  2. создать пустой файл PnFModsLoader.py в папке res_mods\x.x.x.x
  3. предположим, ты хочешь создать скин на Миссури. Тогда следует создать папку res_mods\x.x.x.x\PnFMods\Missouri_modded
  4. в этой папке надо создать файл Main.py с текстом

     API_VERSION = 'API_v1.0'
    MOD_NAME = "Missouri_modded"
    SHIP_NAME = 'ASB509_Missouri' #этот ID корабля как раз и берётся из папки ModsSDK 
    contentSdk.extractSources(MOD_NAME, SHIP_NAME)

     

  5. Запустить клиент, дождаться пока не появится экран с логином. Логиниться не надо, всё равно не получится
  6. Закрыть клиент
  7. зайти в папку Missouri_modded и увидеть, что там появилась папка с файлами модели корабля - ASB509_Missouri. Можно в ней пошариться и выяснить, как всё устроено. DDS файлы там будут. так что дальше дело в твоих руках
  8. Поменять код Main.py с экстракта на загрузку:

      API_VERSION = 'API_v1.0'
    MOD_NAME = "Missouri_modded"
    SHIP_NAME = 'ASB509_Missouri' 
    contentSdk.extractSources(MOD_NAME, SHIP_NAME) #эта строчка как раз и запускает мод

  • Плюс 3

Рассказать о публикации


Ссылка на публикацию
Гость
Эта тема закрыта для публикации новых ответов.

×