Создание ивентов, привязанных к дате - Страница 2 - Учебники по моддингу - Strategium.ru Перейти к содержимому

Создание ивентов, привязанных к дате

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

Было взято с реддита, вот ссыль: 

 

 

Если коротко, то система ивентов в хойке сделана через одно место, поэтому если вы хотите привязать ивент к конкретной дате, придется извращаться. Расскажу на примере моего мода. Допустим мы хотим, чтобы ивент сработал, условно, 20 января. По механике игры, проверка триггеров происходит каждые 20 дней. То есть это примерный разброс вашего события. Если изменить частоту проверки, то игра начнет и без того сильно лагать. НО, есть способ задать точное исполнение ивента. 

Создаем скрытый ивент через hidden = yes , и ставим его срабатывание как 
mean_time_to_happen = {
        days = 1
    }

то есть этот скрытый ивент сработает в тот же день, в котором происходит проверка триггеров. Причем ивент активируем только через триггер
trigger = {
        tag = ТэгСтраны
    }
Следующий нужный нам ивент мы запустим через счетчик, а именно 
immediate = {
        ТэгСтраны = {
            country_event = { id = АйдиИвента.номер days = X } #, где Х - кол-во дней от дня проверки до желаемого события
        }
    }

допустим вместо Х мы поставим 5, оформляем эти два ивента, запускаем игру. Ждем, пока сработает наше второе событие. У меня оно сработало, допустим, 8 января, следовательно, у меня день проверки триггера 8-5=3 января. Всё. Теперь любой нам нужный ивент мы пишем через ивент-счетчик, подставляя вместо Х вычисленное кол-во дней. 

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

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

Если кому надо, полный код ивента-счетчика и второго ивента:

Спойлер

country_event = {  #начальный eвент-счетчик //дату отсчитывать от 3 января
    id = arme.1
    title = arme.1.t
    desc = arme.1.d
    picture = GFX_news_election_rally
    
    fire_only_once = yes
    
    hidden = yes 
    trigger = {
        tag = ARM
    }
    mean_time_to_happen = {
        days = 1
    }
    
    immediate = {
        ARM = {
            country_event = { id = arme.2 days = 78 } # where X is the number of days from January 9 to your desired date
        }
    }
    
    option = {
        name = arme.1.a
        
    }
    
    
}
#2
country_event = { 
    id = arme.2
    title = arme.2.t
    desc = arme.2.d
    picture = GFX_gfx
    
    
    
    fire_only_once = yes
    is_triggered_only = yes
    
    
    
    
    option = {
        name = arme.2.a
       
    }
   
    
    
}

 

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

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

@GBV  Можете уточнить, как именно правильно переписать триггеры для этого? 

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

В 02.08.2024 в 21:30, Michael Cudlitz сказал:

Можете уточнить, как именно правильно переписать триггеры для этого?

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

126 = { NOT = { is_controlled_by = ENG } }
126 = { is_owned_by = ENG }
ENG = { has_war = yes }
NOT = { has_global_flag = fall_of_london }

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

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

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

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

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

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

  Only 75 emoji are allowed.

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

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

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

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

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

Популярные сообщения

GBV

Это обычно делается намного проще и элегантнее, не верьте всему, что пишут на всяких непрофильных реддитах. В /history/countries в файле нужной страны можно добавить в конце:   dd2b605b9924da0

GBV

В common/on_actions/ можно через on_startup задать ивент хоть прямо на старте игры, а там уже и до 3-го дня недалеко.

UNN_Fgr

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

Aurelius36

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

GBV

Правильно - это так, как будет работать нужным образом, это нужно проверять на практике, я писал что для начала нужно бы избавиться от рута в триггерах: 126 = { NOT = { is_controlled_by = ENG } }

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

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


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

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