kepke386

Гайды по созданию модов для игры Hearts of Iron IV

25 сообщений в этой теме

Рекомендованные сообщения

kepke386

Часть I. Создание ивента (события).

Предисловие

 

Итак, прочитав тему вопросы по моддингу, я выяснил, что множество начинающих мододелов совершенно не имеют понятия о создании ивентов (внутриигрового события). В этой части гайда я постараюсь разъяснить сей процесс.

 

Необходимый софт

 

Для комфортного и правильного написания кода ивента, я рекомендую скачать бесплатную программу Notepad++. Она поддерживает смену кодировок, подсвечивает некоторые элементы структуры кода, в общем, необходимая программа для мододела.

 

Примечание: ссылки даны через сервис сокращения ссылок adfly. Если у вас включен adBlock или аналогичный блокировщик рекламы, могут возникнуть проблемы со скачиванием. Спасибо за понимание.

 

Notepad++

Спойлер

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

 

Если вы планируете добавлять свои картинки событий, их необходимо перевести в формат .dds (Direct Draw Image). Лучше всего с этим справляется бесплатная программа Paint.net.

 

Paint.net

Спойлер

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

 

На этом список необходимых программ закончен.

 

 

Начало

 

Для начала создаем мод (я думаю, все знают как это делается), затем заходим в папку мода (C:\users\user\Documents\Paradox Interactive\mod\%имя мода%) и создаем папку events в корне каталога. Затем создаем пустой текстовый файл с названием, в котором первое слово это тег страны события маленькими буквами, затем нижнее подчеркивание, затем название вашей страны. Пример: ger_Germany, sov_SovietUnion

 

Заходим в созданный нами файл. Добавляем в самом начале переменную, отвечающую за обнаружение игрой этого фала в дальнейшем:

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

Я использую исходники моего мода (Extended Asia mod), поэтому у меня в переменной прописано raj. Вы же прописываете тег вашей страны малыми буквами. Пример - ger, sov, rus, usa.

 

Затем копируем и вставляем туда структуру ивента:

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

В данном коде country event обозначает начало и конец ивента, id - номер ивента, title - название, desc - описание, picture - картинка ивента, option - вариант ответа на ивент.

 

Прописываем номер, название, описание ивента:

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

Первый ивент всегда имеет номер 1, а название и описание - это приставка к номеру (t или d). Не прописывайте название ивента словами - оно указывается в файлах локализации!

 

Теперь добавляем картинку события. Открываем папку с игрой (место, куда вы ее установили), заходим в папку gfx\event_pictures и выбираем нужную вам картинку с помощью Paint.net. Затем копируем ее название, открываем файла ивента и записываем в строку picture такой код:

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

где picture = GFX_ это обязательная часть кода, а следующее за ней предложение - название вашей картинки.

 

Если же вам не нравится данные парадоксами картики ивентов, вы вполне можете добавить свою. Для этого создаем в корне мода папку gfx, в ней папку event_pictures, затем копируем в нее любую понравившуюся из файлов игры картинку ивента и меняем в ней изображение на свое. Также необходимо ее переименовать - например, report_event_test_event1. Теперь заходим в файл ивента и пишем там следующее:

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

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

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

Все предельно просто. Осталось только добавит условие срабатывания события. Делается это через команду trigger:

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

Триггер вставляется перед опцией. Вот так выглядит весь код:

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

Вот так. В следующем гайде поговорим о файлах локализации.

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


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

Закреплённое сообщение
Sir.Rumata

Ой, вот за это громадное спасибо. В тестовом режиме опробовал. Что то работает :D
Начал штамповать картинки на будущее. С локализацией сам разобрался, довольно просто. Движок у игры все таки крутой, 90% работы делает. А нам лишь пару строчек писать.

 

С нац. фокусами тоже сам вроде разобрался, хотя и баги в описании есть :с

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


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

Zhilkin

У вас какая-то ерунда со ссылками на загрузку приложений. На всякий случай прилагаю корректные ссылки для скачивания:

 

Paint.NET - Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Notepad++ - Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

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


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

kepke386

Часть II. Локализация ивента (события).

Предисловие

 

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

 

Начало

 

Для начала нам нужно зайти в папку с модом, созданным ранее, и создать в корне каталога (Hearts of Iron IV/mod/название) папку с названием localisation. В ней создаем пустой текстовый файл под именем event_stuff_l_russian, где вместо event_stuff может быть что угодно, главное сохранить последующие за ним слова.

Как видно по названию, этот файл отвечает за локализацию на русский язык. Если вы собираетесь делать перевод на английский или немецкий, в названии файла необходимо заменить слово russian на deutsch или english. 

 

Открываем файл. В самом начале вписываем следующее для русской локализации:

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

Примечание: текст после символа # является комментарием к коду и служит для пояснения элементов программы. Он не влияет ни на что.

 

После этого начинаем вписывать названия (id) событий таким образом:

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

Как видите, все предельно просто. Мы вписываем сюда id события, все его описания, варианты и т. д, ставим после этого двоеточие и ноль, затем кавычки. В них уже пишется локализация. Еще один пример из моего мода:

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

Если в ивенте одна опция (вариант ответа) - писать локализацию на вторую не требуется, достаточно написать лишь на опцию а. Аналогично и с большим кол-вом опций - для трех опций достаточно просто добавить строчку с буквой с.

 

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

 

В следующем выпуске гайдов поговорим о классах (командах) в  Paradox Script, которые позволяют менять игру полностью. (например: класс set_politics устанавливает политические значения, а класс start_civil_war начинает гражданскую войну).

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


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

yargont

Народ, как резать провинции? Хочу запилить мод о гражданской войне, но для создания губерний нужно некоторые провинции порезать?

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


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

Дагон

Спасибо за гайды, но тут возник вопрос. Как через событие заставить страну отдать свой регион какой-то другой стране?

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


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

GeneralM
44 минуты назад, Дагон сказал:

Спасибо за гайды, но тут возник вопрос. Как через событие заставить страну отдать свой регион какой-то другой стране?

 
USA = { set_state_owner = 353 }

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


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

  • Достижения

  • Дагон
    40 минут назад, GeneralM сказал:
     
    USA = { set_state_owner = 353 }

    Благодарю, но из этого возникает новый вопрос. Когда страна получает регион N его цвет не меняется на цвет страны, которая получила этот регион. А название прошлого владельца на карте продолжает распространятся на этот регион. Как убрать?

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


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

    GeneralM
    28 минут назад, Дагон сказал:

    Благодарю, но из этого возникает новый вопрос. Когда страна получает регион N его цвет не меняется на цвет страны, которая получила этот регион. А название прошлого владельца на карте продолжает распространятся на этот регион. Как убрать?

    Через некоторое время должно само собой изменится. Если нет – то попробуйте transfer_state вместо set_state_owner.

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


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

  • Достижения

  • Дагон
    40 минут назад, GeneralM сказал:

    Через некоторое время должно само собой изменится. Если нет – то попробуйте transfer_state вместо set_state_owner.

    Благодарю за помощь. Трансфер подошел.

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


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

    historian06

    Как сделать так чтобы государство переименовать с помощью ивента

     

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


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

    Дагон

    Подскажите, пожалуйста, как привязать ивент к определенной дате? 

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


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

    kepke386
    4 минуты назад, Дагон сказал:

    Подскажите, пожалуйста, как привязать ивент к определенной дате? 

    Вот:

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

     

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


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

    kepke386

    Часть III. Часто задаваемые вопросы.

    Предисловие

     

    Прочитав все комментарии к гайдам на Стратегиуме и группе в ВК, а также тему с вопросами по моддингу, я решил сделать вот такой вот пост с ответами на задаваемые вопросы.

     

    Q: Как добавить свою музыку в игру?

    A: Открываем папку с вашим модом, создаем в корне папку music. В ней создаем два файла: файл music1.txt и файл music1.asset. Обратите внимание на расширения файлов: у первого расширение txt, а у второго - asset. Это очень важно. 

    Теперь берем музыку, которую мы хотим добавить и конвертируем ее в формат .ogg. Это можно сделать здесь:

    Спойлер

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

    Теперь, после конвертации, кидаем музыку в папку с музыкой, созданной нами в самом начале. Название файла не имеет значения.

    Открываем файл music.asset. Вписываем для каждой музыки следующее:

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

    Первый параметр - имя композиции, второй - название файла с ней, третий - громкость.

     

    Теперь открываем файл music.txt и пишем в нем следующее:

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

    Все.

     

    Q: Я перевел названия стран/партий/чего нибудь на русский язык, но у меня в игре вместо них непонятные знаки. Что делать?

    A: Проблема в неправильной кодировке файла локализации. Открываем его при помощи Notepad++, затем нажимаем Кодировки-Преобразовать в UTF8.

     

     

    Q: Как добавить свой национальный дух?

    A:  Создаем в папке с модом папку common, в этой папке папку ideas, в идеях в свою очередь создам текстовый файл с любым названием, в нем пишем следующее:

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

    И меняем этот код под свой.

    Вызывается идея такой командой: 

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

    через фокус или событие.

     

    Q: Какая команда начинает гражданскую войну в стран через ивент?

    A:  В файле ивента пишем такую команду:

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

    Если вам надо начать войну, к примеру, в СССР, команда будет выглядеть так:

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

    Q: Какая команда для заключения мира между странами?

    A:  

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

    Задавайте свои вопросы здесь или в теме "Вопросы по моддингу" и я постараюсь на них ответить. 

    Изменено пользователем kepke386
    Дописал

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


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

    Robert_Edward_Lee

    Расскажите как создавать технологии, добавлять новые, с помощью фокусов добавлять новую технику или открывать новые виды технологий (как у Японии с самолётом-камикадзе). 

    Было бы очень интересно узнать. 

    Заранее благодарю.

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


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

    kepke386
    21 час назад, Robert_Edward_Lee сказал:

    Расскажите как создавать технологии, добавлять новые, с помощью фокусов добавлять новую технику или открывать новые виды технологий (как у Японии с самолётом-камикадзе). 

    Было бы очень интересно узнать. 

    Заранее благодарю.

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

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


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

    GUNN

    Йоу! Такой вопрос. Как добавить новую ветку законов? Сам законы написать могу (о формах собственности), вопрос в том, как их добавить на интерфейс и сделать так, чтобы игра их видела. 

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


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

    mandrivnyk133

    Можешь, пожалуйста, рассказать как создавать новый континент для "рандомного мира"?

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


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

    kepke386
    10 минут назад, mandrivnyk133 сказал:

    Можешь, пожалуйста, рассказать как создавать новый континент для "рандомного мира"?

    К сожалению, такое вряд ли возможно на текущем движке игры.

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


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

    mandrivnyk133
    13 минуты назад, kepke386 сказал:

    К сожалению, такое вряд ли возможно на текущем движке игры.

    В мастерcкой стима есть моды с "новым миром", которые создают заранее подготовленные "новые миры"

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


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

    Присоединиться к обсуждению

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

    Гость
    Ответить в тему...

    ×   Вы вставили отформатированное содержимое.   Удалить форматирование

      Only 75 emoji are allowed.

    ×   Ваша ссылка автоматически преображена.   Отображать как простую ссылку

    ×   Предыдущее содержимое было восстановлено..   Очистить текст в редакторе

    ×   You cannot paste images directly. Upload or insert images from URL.


    • Сейчас на странице   0 пользователей

      Нет пользователей, просматривающих эту страницу

    • Модераторы онлайн

      • simonov-89
      • alexis