Проверяет что в игре ночь, когда игрок находиться на глобальной карте
ПРИМЕР:
# Checking escape chances of prisoners that joined the party recently.
(6,
[(gt, "$g_prisoner_recruit_troop_id", 0),
(gt, "$g_prisoner_recruit_size", 0),
(gt, "$g_prisoner_recruit_last_time", 0),
(is_currently_night),
....
Всем известная ситуация, когда ночью некоторое количество завербованных на кануне из пленных рекрутов сбегает из отряда.
В данном случае операция проверки is_currently_night заставляет данный триггер срабатывать только ночью, хотя интервал проверки триггера 6 часов.
Проверка в условии триггера сработает только если игрок на глобальной карте и закрыты все окна.
ПРИМЕР:
# Read books if player is resting.
(1, [(neg|map_free),
(gt, "$g_player_reading_book", 0),
....
Триггер отвечающий за чтение книг. Здесь проверка (neg|map_free),отвечает за то, чтобы книга не читалась, когда игрок находится просто в путешествии (на свободной карте), без этой проверки триггер будет срабатывать просто каждый час
(get_global_cloud_amount, ), -вернет в переменную текущую погоду (дождь, снег) на глобалке. Значение от 0 до 100.
(set_global_cloud_amount, ), -устанавливает значение для погоды от 0 до 100.
ПОЯСНЕНИЯ:
- от значения погоды зависит также какой скайбокс для сцен движок будет использовать для определенного значения погоды. примерно можно разбить на четыре значения
sf_clouds_0 = от 0 до 25 - ясная погода
sf_clouds_1 = от 25 до 50 - облачная погода
sf_clouds_2 = от 50 до 75 - легкий моросящий дождь или пред дождевая погода
sf_clouds_3 = от 75 до 100 - дождь.
sf_clouds -флаг скайбокса в файле Skyboxes.py
в изначально погода установлена на значении 50. саморегуляция происходит в пределах /- 25 единиц. как происходят скачки погоды и от чего это зависит выяснить так и не удалось.
Триггер отвечает за получение сообщения от дамы сердца с просьбой о визите.
Здесь операция store_current_hours,записывает в переменную ":hours_since_last_visit" текущее время. Далее вычисляется разница между временем последнего визита и текущим временем, и если со времени последней встречи прошло больше времени, чем заданно в переменной ":longest_time_without_visit" (по умолчанию 120 часов), то триггер срабатывает и вы получаете сообщение и квест на посещение дамы
Этот пункт меню, при осаде позволяет дождаться следующего утра, если по каким то причинам сейчас вы на штурм идти не готовы, хотя все инженерные работы завершены.
Здесь в переменную ":cur_time_of_day" с помощью операции store_time_of_dayзаписывается текущее время суток (количество часов, пошедших с последней полуночи). Далее высчитывается сколько времени осталось до ближайшего рассвета, записывается в переменную ":time_to_wait" и с помощью операции rest_for_hours_interactiveигрок ждёт с пятикратным ускорением времени нужное время
(store_current_day, ),- запишет в переменную количество дней прошедшее от начала игры.
ПРИМЕР:
[anyone|plyr,"lord_talk",[#(troop_slot_eq, "$g_talk_troop", slot_troop_is_prisoner, 0),
(neg|troop_slot_ge, "$g_talk_troop", slot_troop_prisoner_of_party, 0),
(check_quest_active,"qst_lend_companion"),
(quest_slot_eq, "qst_lend_companion", slot_quest_giver_troop, "$g_talk_troop"),
(store_current_day, ":cur_day"),
(quest_get_slot, ":quest_target_amount", "qst_lend_companion", slot_quest_target_amount),
(ge, ":cur_day", ":quest_target_amount"),
(quest_get_slot, ":quest_target_troop", "qst_lend_companion", slot_quest_target_troop),
(str_store_troop_name,s14,":quest_target_troop"),
(troop_get_type, reg3, ":quest_target_troop"),
],
"I should like {s14} returned to me, {s65}, if you no longer require {reg3?her:his} services.", "lord_lend_companion_end",
[]],
Вариант диалога с лордом, если вы по квесту отдали одного из своих компаньонов ему на время.
Здесь операция store_current_dayзаписывает в переменную ":cur_day" количество дней прошедших с начала игры. Далее это число сравнивается с датой возвращения компаньона оговоренной в условиях квеста, и если текущая дата больше, вы можете в диалоге попросить лорда вернуть вашего спутника.
(rest_for_hours, , [time_speed_multiplier], [remain_attackable]),- операция вынуждает партию игрока стать на отдых на определенный период времени.
ПРИМЕР:
("village_loot",[], "Plunder the village, then raze it.",
[
(call_script, "script_village_set_state", "$current_town", svs_being_raided),
(party_set_slot, "$current_town", slot_village_raided_by, "p_main_party"),
(assign,"$g_player_raiding_village","$current_town"),
(try_begin),
(store_faction_of_party, ":village_faction", "$current_town"),
(store_relation, ":relation", "$players_kingdom", ":village_faction"),
(ge, ":relation", 0),
(call_script, "script_diplomacy_party_attacks_neutral", "p_main_party", "$current_town"),
(try_end),
(rest_for_hours, 3, 5, 1), #rest while attackable (3 hours will be extended by the trigger)
(change_screen_return),
При посещении деревни, в меню враждебных действий, вариант "Разграбить и сжечь деревню".
Здесь операция rest_for_hoursзаставляет отряд игрока ждать на глобальной карте 3 часа = 3, без возможности самостоятельно прекратить это ожидание, с пятикратным ускорением времени [time_speed_multiplier] = 5 и возможностью, что на игрока может в это время напасть враждебный отряд [remain_attackable] = 1
Пункт в меню, появляющегося в меню города, если игрок получил от лорда квест на сбор налогов, при выборе которого, начинается сам сбор ("начать сбор").
Здесь операция rest_for_hours_interactiveзаставляет отряд игрока ждать в городе 1000 часов = 1000, с возможностью самостоятельно прекратить это ожидание, с пятикратным ускорением времени [time_speed_multiplier] = 5и в это время на игрока не может напасть враждебный отряд [remain_attackable] = 0.
Не удивляйтесь такой большой цифре, т.к. за окончание сбора здесь отвечает треггер и 1000 часов просто максимальное допущение
- на какой период времени идет остановка [time_speed_multiplier]- мультипликатор скорости течения времени. можно ускорить или замедлить. [remain_attackable] - 1 - отряд игрока может быть атакован враждебным отрядом во время ожидания.
0 - отряд игрока не может быть атакован враждебным отрядом во время ожидания.
Причём при значении 0 отряд игрока визуально пропадает с карты.
Размещено : 26.01.2022 12:24
Оставьте ответ
Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.