Создание ивентов, привязанных к дате - Учебники по моддингу - 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
       
    }
   
    
    
}

 

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

Закреплённые сообщения
2 часа назад, UNN_Fgr сказал:

Допустим мы хотим, чтобы ивент сработал, условно, 20 января.

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

 

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

 

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

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

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

 

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

 

Любо. Буду знать, спасибо. 

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

В 13.11.2021 в 14:58, GBV сказал:

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

 

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

 

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

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

Aurelius36
19 минут назад, Lancet_ сказал:

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

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

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

47 минут назад, Lancet_ сказал:

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

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

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

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

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

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

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

  Only 75 emoji are allowed.

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

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

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

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

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

  • GBV

    2

  • UNN_Fgr

    2

  • Aurelius36

    1

  • Lancet_

    1

Популярные дни

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

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

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


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

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