Моддинг ивентов - Учебники по моддингу - Strategium.ru Перейти к содержимому

Моддинг ивентов

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

Semenar

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

Ивент должен иметь следующие вещи:

- Свой уникальный номер (id)

- Заголовок

- Текст описания

- Картинку

- Триггер: если то, что в нём записано, неверно, то ивент не появится

- Среднее время до появления ('mean time to happen') -этот показатель отвечает за то, как часто ивент будет происходить, если выполнены условия триггера

- Один или несколько вариантов выбора для игрока или ИИ с эффектами для них

Также можно добавить эффект, который произойдёт сразу после появления ивента, не ожидая, когда игрок нажмёт на кнопку (например, запретить игроку двигать войска в провинцию перед выбором варианта, если там должны появиться повстанцы). Эффекты могут быть видны для игрока или не видны.

Ивент для страны или для провинции?Нажмите здесь!
 

Ивент может происходить с провинцией или со страной.

Со страной:

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

[Cкрыть]

Среднее время появленияНажмите здесь!
 

Среднее время появления означает, как часто происходит ивент, если условия триггера соблюдены. Среднее время появления, равное 3 месяцам, означает, что ивент должен происходить примерно каждые три месяца."Базовое" среднее время появления определяется в днях или месяцах. Новы можете уменьшить или увеличить это время из-за определённых условий.Например:

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

В данном случае, если стабильность меньше 0, базовое среднее время появления умножается на 0.8 и становится 400*0.8=320 месяцев.

[Cкрыть]

Вызывается только другим событием?Нажмите здесь!
 

Многие ивенты не используют среднее время появления, а используют вместо него код

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

Такие ивенты, как и остальные, могут быть найдены в папке events. Например:

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

В данном случае, если страна соглашается на чужое предложение о мире, файл on_actions.txt посылает стране два ивента. Если все условия в триггере верны, то ивент происходит. Например, для того, чтобы вышеуказанный ивент произошёл, год должен быть меньше 1500, ивент не должен был происходить раньше, страна – либо Великобритания (GBR), либо Англия (ENG), если Великобритания не существует, культура – английская,провинций во Франции у страны нет, Франция существует и не воюет ни с Англией,ни с Великобританией.

[Cкрыть]

Использование is_triggered_only вместе с триггеромНажмите здесь!
 

С помощью использования is_triggered_only вместе с триггером можно сделать некоторые конструкции, которых нет в оригинальном коде:

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

Вариант выбора состоит из:

- имени

- триггера (необязательно)

- условий if (необязательно)

- шанса принятия ИИ именно этого варианта (необязательно)

- эффектов

Триггер

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

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

Первый вариант будет доступен при престиже хотя бы 90,второй при престиже менее 90.

If

Вариант выбора может иметь несколько эффектов, которые выполняются при выполнении определённых условий. Условия заключаются в limit ={ }, а эффекты пишутся ниже. Пример варианта выбора с if:

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

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

Шанс принятия ИИ

Шанс принятия ИИ означает, с какой вероятностью ИИ примет именно этот вариант выбора. Если у одного варианта выбора стоит фактор 3, а у второго - 1, то первый вариант будет в 3/1=3 раза чаще выбираться ИИ, чем второй.

Пример:

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

- первый вариант ИИ будет выбирать чаще в 3 раза.

Ещё пример:

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

В данном примере ИИ выберет этот вариант, только если престиж хотя бы 50, а дипломатических очков хотя бы 100 (но это не даёт гарантии, что ИИ выберет именно этот вариант ответа).

[Cкрыть]

Проверка ивентов на ошибкиНажмите здесь!
 

Вы можете заставить ивенты вызваться в любой момент, даже если условия не выполнены, через консоль. Откройте консоль комбинацией Alt+2+1 или ~(буква Ё) и введите туда event <id вашего ивента, скобки писать не надо>

Такой способ позволяет проверить, запускается ли ивент в игре.

Стоит помнить, что если условия не выполнены, то могут получиться странные результаты вызова ивента.

Проверить, происходит ли ивент при выполнении условий, можно, поставив mean time to happen равное 1 дню. Тогда он произойдёт немедленно при выполнении условий.

[Cкрыть]
Изменено пользователем Semenar
Ссылка на комментарий

Закреплённые сообщения

Как создать такой ивент, при заключении мира если прова переходит победившей стороне без претензий (без корок) то уменьшает стабильность??

Ссылка на комментарий

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

Вот пример эвента мирное время и военное. Добавь условие Если имеющаяся прова не имеет твоего клайма - - стабильность (сосчитать их увы никак не выйдет.)

Ссылка на комментарий

Добавь условие Если имеющаяся прова не имеет твоего клайма - - стабильность (сосчитать их увы никак не выйдет.)

И как добавить условие?

Ссылка на комментарий

И как добавить условие?

пример условия:

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

Ссылка на комментарий

ильдарV

Помогите написать ивент:

условие

если <какая то прова> оккупирована игроком #а точнее столицу гос-ва с которым идет война

выполняется ивент

приходит сообщение с красивой картинкой

:)

Ссылка на комментарий

Dmsrdnv

Сегодня обратились за помощью в обучении, получилось вот:

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

Если я где-то неправильно объяснил, напишите в ЛС об этом.

Если кому хочется более продвинутого понимания принципов эвентостроения, могу помочь с разбором других эвентов. Тут многое, очень многое не рассмотрено.

Ссылка на комментарий

Denonion

Нужно, чтобы этот ивент в начале игры вылез для Литвы и Польши

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

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

Изменено пользователем Denonion
Ссылка на комментарий

Regesatanas

Вкратце, суть такова: нужно заставить европейскую страну с нахуатлем использовать Дум. Я хочу сделать мод на сатанистов с цветочными войнами, жертвоприношениями и все дела) В результате долгих танцев с бубном получилось следующее:Я подумал, что Дум включится, если сменить техгруппу на мезоамериканскую и религию на анимизм с помощью immediate, а потом по нажатию кнопки назад на Нахуатль, но не прокатило... Использовал болванку от Ацтекского ивента:

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

Изменено пользователем Regesatanas
Ссылка на комментарий

revenant043

Как убрать произвольное распространение этого грёбаного христианства на языческие (скандинавское, гевманское, славянское язычество) провинции у нехристианских стран. Перекопал всё что мог, нифига не нашел где это прописано

Ссылка на комментарий

Как убрать произвольное распространение этого грёбаного христианства на языческие (скандинавское, гевманское, славянское язычество) провинции у нехристианских стран. Перекопал всё что мог, нифига не нашел где это прописано
Europa Universalis IV\common\religions

Ща эта мартышка будет ныть, угадал?

Ссылка на комментарий

Александр IV

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

Второй вопрос по действию модификатора modifier = { factor = Х... как правильно его записать для новой переменной?

Ссылка на комментарий

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

Ссылка на комментарий

country_event = {
id = 223345
title = "cheat1"
desc = "cheat1"

is_triggered_only = yes

option = {
 name = "opnion_cheat1"
 add_country_modifier = {
  name = "opnion_cheat1"
  duration = -1
 }
}

option = {
 name = "off"
 remove_country_modifier = "opnion_cheat1"
}
}

 

а в модефере 

 

marketplace = {
 cost = 50
 time = 0.5
}
workshop = {
 cost = 50
 time = 0.5
}
temple = {  
 cost = 50
 time = 0.5
}
barracks = {
 cost = 50
 time = 0.5
}
shipyard = {
 cost = 50
 time = 0.5
}
fort_15th = {
 cost = 100
 time = 0.5
}
courthouse = {
 cost = 100
 time = 0.5
}
dock = {
 cost = 100
 time = 0.5
}
regimental_camp = {
 cost = 100
 time = 0.5
}
fort_16th = {
 cost = 100
 time = 0.5
}
cathedral = {
 cost = 100
 time = 0.5
}
university = {
 cost = 100
 time = 0.5
}
trade_depot = {
 cost = 100
 time = 0.5
}
grand_shipyard = {
 cost = 100
 time = 0.5
}
training_fields = {
 cost = 100
 time = 0.5
}
fort_17th = {
 cost = 100
 time = 0.5
}
stock_exchange = {
 cost = 100
 time = 0.5
}
counting_house = {
 cost = 100
 time = 0.5
}
town_hall = {
 cost = 100
 time = 0.5
}
drydock = {
 cost = 100
 time = 0.5
}
conscription_center = {
 cost = 100
 time = 0.5
}
fort_18th = {
 cost = 100
 time = 0.5
}
wharf = {
 cost = 100
 time = 0.5
}
weapons = {
 cost = 100
 time = 0.5
}
textile = {
 cost = 100
 time = 0.5
}
plantations = {
 cost = 500
 time = 60
tradecompany = {
 cost = 500
 time = 60
}

 так в игре ивент откликается но без эффектов и че делать? помогите плиз

Ссылка на комментарий

Доброго всем дня. Решил создать ивент, который переименовывает провинции в колониальных регионах. Чтобы имена провок боле или менее соответствовали современным названиям столиц гос-в, столиц штатов и т.д. И залип.

 

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

 

Hide  

 

Цель - переименовать провинцию ID  965 ("Manhattan") в провинцию New York.

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

Затык в том, что я совсем плохо разобрался в Операторах и Условиях, которые заносятся в триггер, и мне следует "писать туда"... Но и другие вопросы у меня есть.

 

Итак логика триггера должна быть такая:

  • Провинция = ID 965. Именно ее $PROVINCENAME$ должен быть в дискрипшне. (Как будто с консоли я запустил event modernname.965 965).
  • Провинция колонизирована.
  • Владелец провинции - колония.
  • Владелец колонии - ROOT (тот, кому выпадает квест).
  • ROOT не может быть ENG, POR, CAS (пока не решил какие именно страны).
  • Квест должен срабатывать один раз, независимо от выбора варианта.

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

 

Перейду к вопросам:

 

is_triggered_only = yes  - что означает? Что внутри option = { } я могу использовать свои триггеры, которые будут менять эффект, в зависимости от условий?

Или эта возможность есть всегда... А is_triggered_only = yes означает что-то совсем другое.

 

Зачем странам и провинциям устанавливаются флаги? (Как это работает?)

Как посмотреть флаги провинций и стран в игре/вообще?

 

Спрашиваю, потому что в английском совсем не силен. Заранее спс.

 

 

Изменено пользователем JlOCb
Ссылка на комментарий

Skepteroun
5 часов назад, JlOCb сказал:

is_triggered_only = yes  - что означает? Что внутри option = { } я могу использовать свои триггеры, которые будут менять эффект, в зависимости от условий?

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

 

5 часов назад, JlOCb сказал:

Владелец колонии - ROOT (тот, кому выпадает квест).

Это имеется в виду по-умолчанию.

5 часов назад, JlOCb сказал:

Квест должен срабатывать один раз, независимо от выбора варианта.

За это отвечает fire_only_once = yes, можно поставить на место is_triggered_only

 

Ну а теперь по остальным триггерам

Так как это province_event, всё через owner

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

 

5 часов назад, JlOCb сказал:

Зачем странам и провинциям устанавливаются флаги? (Как это работает?)

Это как модификаторы, только вообще ничего не делают. Так, например, есть ивенты на изменение цен. Так как он может произойти у нескольких стран, одним fire_only_once не обойтись, он (емнип) для отдельно взятой страны, поэтому устанавливается глобальный флаг (set_global_flag) и проверяется в триггере, чтобы, если его установил ивент, произошедший в одной стране, он больше не происходил никогда. Другой пример - решение (а в решениях нет аналога fire_only_once) вроде единоразово получить деньги - один раз за всю игру. Так как это не даёт modifier'a, по которому можно проверить, использовалось ли решение, в эффекте ставится флаг, который проверяется в триггере, и решение повторно будет не использовать.

Ссылка на комментарий

Спасибо за ответ. 

 

3 часа назад, Skepteroun сказал:

 

9 часов назад, JlOCb сказал:

Владелец колонии - ROOT (тот, кому выпадает квест).

Это имеется в виду по-умолчанию.

 

То есть уже изначально ивент не может выпасть "мне", если колония, владеющая провинцией не "моя"? Я вот именно на этом моменте, соббсно и затупил.

Думаю, что is_colonial_nation = yes возвращает true, не разбираясь чья колония. (Или я не прав?). 

 

Я полагал, что is_colonial_nation_of = ROOT - обязательное условие, которое я должен прописать. (но при проверке ивента - условие не выполнялось... не пойму как эта фигня работает)

 

Также я не понял по какому принципу отличается провинция которая колонизируется колонией ("в процессе") и провинция, которая уже колонизирована. 

Для первого случая возвращается ли true из:

 

owned_by = tag 

num_of_owned_provinces_with = { <conditions>} - обрабатывается ли условием провинция "в процессе" (счетчик, например)?

owns = Province ID

owns_core_province = Province ID - тут я так понял, что нет. Корка появляется после окончания "процесса".

 

Сам ивент просто планируется чуть сложнее. Хочу например, добавить возможность перенести в переименованную провинцию столицу колонии. (Я ведь это могу? Будучи "сюзереном" взять и перенести столицу "субъекта"?) Пока не понял как - все постепенно.

 

 

И еще вопрос  

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

 

Возможно ли вообще объединить, например, переименование нескольких провинций в один квест? Т.е. опция будет появляться если работает общий триггер и работает триггер опции.

Ну, например, если столица колонии находится не в текущей провинции  - то будет третья опция "Перенести столицу", а если столица уже там - появится четвертая опция - "Дать плюшки"

Думаю объединить переименование по регионам.

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

 

Пока вижу только возможность задать в триггере опции несколько условий. И опция (оставаясь всегда одинаковой) будет переименовывать разные провки. Или либо "переносить столицу", либо "давать плюшки.

 

Hide  

 

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

Только вот пока все это кривенько... Будет ли срабатывать каждый раз, как колонии отхватит провку в регионе?

Флаги где-то отдельно прописываются? Нуждаются в локализации? Или можно отсебятить? В игре самой флаги видны хоть как то? Или они скрыты и просто часть механики?

И еще надо условия для переноса столицы...

 

Hide  

 

Заранее спасибо.

Изменено пользователем JlOCb
Ссылка на комментарий

Не смог внести изменения в предыдущий пост, видимо по времени. 

 

Допишу тут:

 

И еще надо условия для переноса столицы... Пока думаю над этим. Толи отдельным ивентом, который будет вызываться этим и, например, переносить столицу, если текущая не в этой провке, но в пределах area и является state. Толи и правда добавить третью опцию в этот ивент. 

Самая главна проблема - локализация. Я пока только только начал осваиваться - не хотелось бы строить пока глобальных планов.

 

Что вы по этому поводу думаете? Как бы сделали, например, вы?

Ссылка на комментарий

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

 

ПоявиЛОСЬ несколько вопросов.

 

Первый и самый главный:

 

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

 

Command New scope Type Description
       
if Country Command Changes the scope to IF (executed on every subscope)

 

 

А я взять в толк не могу, что это значит.

 

То ли нужно делать так: 

 

Пример №1.

область_страны = { 

                                   If = { limit = { область_провинциЙ } область_конкретной_провинции }

                                         эффект_для_провинции

                               }

 

Или можно без заморочек:

 

Пример №2.

область_провинциЙ = {

                                   If = { limit = { область_конкретной_провинции }  }

                                         эффект_для_провинции

                               }

 

И что означает:

 

#can use if inside of an if = scope as well 

 

Как бэ работают оба варианта. Но я так же заметил, что иногда вызывая ивенты с консоли, они работают, даже если в них есть "странности":

Например:  

Работает так: 

 

область_провинциЙ = {

                                   If = { limit = { область_конкретной_провинции }  }

                                         эффект_для_провинции

                               }

 

При этом работает также и так:

 

область_провинциЙ = {

                                   If = { limit = { область_конкретной_провинции }

                                         эффект_для_провинции

                                          }

                               }

 

Т.е.  эффект_для_провинции срабатывает, даже если я не соблюдаю "синтаксис". И всовываю эффект "внутрь" If

Hide  

 

ЗапутаЛОСЬ, как все же правильно "менять области".

 

Особенно интересует этот вопрос потому как в оригинальных ивентах все строго.

 

Есть возможность создавать scripted_effects, но в имеющихся там "заготовках" все оформлено, так что область_страны указана в самом скрипте. А мне бы хотеЛОСЬ узнать, могу ли я прямо в скриптованном_эффекте сразу задать область_провинций, чтобы не делать этого для каждой опции в скрипте. Типа как в примере №2.

 

Заранее спасибо.

Ссылка на комментарий

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

country_event =    {                    

    id = "6666"
        trigger = { tag = KZH }    
    title = "The death of Abulkhair Khan"    
    desc = "Abulkhair Khan died during his expedition to the khanate, and his country was destroyed."    
    picture = "BATTLE_eventPicture"    
    option ={                    
        name = "Great!"        
        }
}

Изменено пользователем ILex
Ссылка на комментарий

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

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

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

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

  Only 75 emoji are allowed.

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

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

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

  • Ответы 21
  • Создано
  • Последний ответ
  • Просмотры 11534

Лучшие авторы в этой теме

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

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


Copyright © 2008-2024 Strategium.ru Powered by Invision Community

×
×
  • Создать...