bitterhowl (05 февраля 2021, 07:51):
По первому вопросу -
campaign_script
monitor_event PreFactionTurnStart FactionIsLocal
and Treasury < 0
set_event_counter deneg_net 1
end_monitor
monitor_event PreFactionTurnStart FactionIsLocal
and Treasury > 0
set_event_counter deneg_net 0
end_monitor
Мониторите казну фракции игрока, если меньше нуля перед началом хода - ставите фракцию игрока на счетчик. Счетчик активирует
нехорошие бонусы штрафы в главном здании, которые вы прописываете туда через ЕДБ.
(Можно попробовать в мониторе заменить PreFactionTurnStart FactionIsLocal на
ButtonPressed ButtonPressed end_turn - это оптимизированный вариант, к тому же, штрафы в поселении все равно срабатывают только в момент конца хода поселения, а это происходит после нажатия кнопки "конец хода". Ивенты ButtonPressed работают только для игрока, т.к. ИИ кнопок не нажимает, вопрос в том - чью казну проверит движок при этом варианте прописи скрипта, возможно что это условие будет недоступно и скрипт не сработает, тут надо только опытным путем проверять).
export_descr_buildings
building core_building
{
levels wooden_pallisade wooden_wall stone_wall large_stone_wall huge_stone_wall
{
wooden_pallisade city requires factions { northern_european, mesoamerican, middle_eastern, nativeindian, eastern_european, greek, southern_european, }
{
capability
{
;free_upkeep bonus 0
wall_level 0
tower_level 1
population_growth_bonus bonus -2 requires event_counter deneg_net 1
religion_level bonus -4 requires event_counter deneg_net 1
law_bonus bonus -4 requires event_counter deneg_net 1
happiness_bonus bonus -4 requires event_counter deneg_net 1
}
material wooden
construction 2
cost 900
settlement_min village
upgrades
{
wooden_wall
}
}
Величину негативного эффекта штрафов выбираете сами. Штрафы, понятное дело, должны быть на всех уровнях здания.
Все.
По второму вопросу - вот пример.
Цитата
monitor_event FactionTurnStart FactionIsLocal
and I_TurnNumber = 106
and I_IsFactionAIControlled mongols
console_command diplomatic_stance russia mongols war
spawn_army
faction mongols
character random_name, named character, age 32, x 370, y 227, label mongols1 ;command 7, dread 6, loyalty 7, piety 1
traits Disciplinarian 1 , EasternWarlord 2 , Anger 3 , BattleDread 2 , StrategyDread 2 , PublicFaith 1, Loyal 2, ContentGeneral 3
unit Mongol Bodyguard exp 5 armour 0 weapon_lvl 0
unit Dismounted Heavy Archers exp 5 armour 1 weapon_lvl 0
... все юниты
unit Mongol Horse Archers exp 2 armour 0 weapon_lvl 0
end
Все, теперь армия появится у монголов только если это фракция ИИ.
Круто! Спасибо за помощь все очень подробно и доступно. Кстати решил (вроде бы

) проблему с пассивностью монгол несмотря на кучу скриптовых армий. Как бы это странно не звучало очередным скриптом

В общем добавил после появления тучи армий монгол вот такую петрушку:
;-------------- Монголы объявляют войну Хорезму --------------;
monitor_event FactionTurnStart FactionIsLocal
and I_TurnNumber = 102
console_command diplomatic_stance mongols kwarezm war
set_faction_standing kwarezm mongols -1.0
set_faction_standing mongols kwarezm -1.0
terminate_monitor
end_monitor
monitor_event FactionTurnStart FactionIsLocal
and I_TurnNumber = 122
console_command diplomatic_stance mongols kwarezm war
set_faction_standing kwarezm mongols -1.0
set_faction_standing mongols kwarezm -1.0
terminate_monitor
end_monitor
monitor_event FactionTurnStart FactionIsLocal
and I_TurnNumber = 142
console_command diplomatic_stance mongols kwarezm war
set_faction_standing kwarezm mongols -1.0
set_faction_standing mongols kwarezm -1.0
terminate_monitor
end_monitor
monitor_event FactionTurnStart FactionIsLocal
and I_TurnNumber = 162
console_command diplomatic_stance mongols kwarezm war
set_faction_standing kwarezm mongols -1.0
set_faction_standing mongols kwarezm -1.0
terminate_monitor
end_monitor
monitor_event FactionTurnStart FactionIsLocal
and I_TurnNumber = 182
console_command diplomatic_stance mongols kwarezm war
set_faction_standing kwarezm mongols -1.0
set_faction_standing mongols kwarezm -1.0
terminate_monitor
end_monitor
Ииии... В общем не знаю это ли помогло или просто не было глюка из за того что компанию начал по новой, но монголы больше не стопорили, а за ходов эдок 40 сели Половцев пол Хорезма и большую часть Новгорода с Киевом в придачу. Дальше просто не играл но думаю, что останавливаться они не собирались и таки добили бы Хорезм и все русские княжества ибо уверенно продвигались в сторону Польши..
И ещё один момент по скрипту (да бы он не срабатывал для игрока). Пример выше понятен, а как сделать в скрипте ниже, что бы он вообще не срабатывал если игрок играет за Францию? Но при этом что бы скрипт срабатывал если оба игрока ИИ и если игрок человек Англия:
;======================France Desant=====================
monitor_event FactionTurnStart FactionIsLocal
and and I_TurnNumber = 46
historic_event VPERED_GO event/New_desant.bik factions { england , }
terminate_monitor
end_monitor
monitor_event FactionTurnStart FactionIsLocal
and and I_TurnNumber = 46
historic_event ENGLISH_INVASION event/New_desant.bik factions { france , }
terminate_monitor
end_monitor
monitor_event FactionTurnStart FactionIsLocal
and I_TurnNumber = 46
console_command diplomatic_stance england france war
spawn_army
faction france
character random_name, admiral, age 20, x 86, y 213
unit cog exp 0 armour 0 weapon_lvl 0
unit cog exp 0 armour 0 weapon_lvl 0
unit cog exp 0 armour 0 weapon_lvl 0
end
spawn_army
faction france
character Andre, named character, age 25, x 86, y 214,label france1, family
traits MilitaryInclination 1 , Military_Edu 3 , NaturalMilitarySkill 2 , GoodCommander 3 , StrategyDread 2 , PublicFaith 1 , Loyal 2 , GoodCavalryGeneral 2 , ReligionStarter 1, LoyaltyStarter 1
unit NE Bodyguard exp 3 armour 0 weapon_lvl 0
unit Crossbow Militia exp 1 armour 0 weapon_lvl 0
unit Crossbow Militia exp 1 armour 0 weapon_lvl 0
unit Spear Militia exp 2 armour 0 weapon_lvl 0
unit Spear Militia exp 1 armour 0 weapon_lvl 0
unit Light Men at Arms exp 2 armour 0 weapon_lvl 0
unit Spear Militia exp 2 armour 1 weapon_lvl 0
unit Spear Militia exp 2 armour 2 weapon_lvl 0
unit Mounted Sergeants exp 0 armour 0 weapon_lvl 0
unit Mounted Sergeants exp 1 armour 0 weapon_lvl 0
unit Light Men at Arms exp 2 armour 0 weapon_lvl 0
unit Light Men at Arms exp 2 armour 0 weapon_lvl 1
unit Light Men at Arms exp 2 armour 0 weapon_lvl 0
unit Peasant Archers exp 3 armour 0 weapon_lvl 0
unit Peasant Archers exp 3 armour 1 weapon_lvl 0
unit Spear Militia exp 2 armour 0 weapon_lvl 0
unit Mailed Knights exp 1 armour 0 weapon_lvl 0
unit Armored Sergeants exp 1 armour 0 weapon_lvl 0
unit Mailed Knights exp 1 armour 0 weapon_lvl 0
unit Armored Sergeants exp 1 armour 0 weapon_lvl 0
end
snap_strat_camera 86,214
terminate_monitor
end_monitor
monitor_event FactionTurnStart FactionType france
and I_TurnNumber = 46
and not FactionIsLocal
siege_settlement france1, London, maintain
terminate_monitor
end_monitor
monitor_event FactionTurnEnd FactionIsLocal
and I_TurnNumber = 47
and I_IsFactionAIControlled france
and not I_SettlementOwner London = france
siege_settlement france1, London, attack
terminate_monitor
end_monitor