Пособие по гарнизонному скрипту (Medieval 2: Total War)
Откройте campaign_script.txt
Вот код, который надо вставить в campaign_script.txt
;----------Counter ----------
declare_counterrome_siege
;----------Garrionscript ----------
monitor_conditions not I_SettlementUnderSiegeRome
set_counter rome_siege 0
end_monitor
monitor_conditionsI_SettlementUnderSiege Rome
and I_CompareCounter rome_siege = 0
ifI_SettlementOwner Rome = papal_states
create_unit Rome, peasant, num 2, exp 2, arm 1, wep 0
end_if
set_counterrome_siege 1
end_monitor
Сначала установим counter rome_siege равным 0.
Теперь, если Рим осаждают ("I_SettlementUnderSiege Rome" ) и он под контролем папства("if I_SettlementOwner Rome= papal_states"), то в Риме спаунится 2 отряда крестьян ("num 2") с двумя единицами опыта (максимум 9) с 1 апгрейдом оружия (максимум 9и без апгрейда доспехов (максимум 9.
Ставим counter rome_siege равным1, поскольку не хотим, чтоб они спаунились два раза
Теперь можно сделатькое-что поинтереснее, например, если арабы осаждают Рим, то спаунится больше войск и т.п.
;----------Counter ----------
declare_counterrome_siege
;----------Garrionscript ----------
monitor_conditions not I_SettlementUnderSiegeRome
set_counter rome_siege 0
end_monitor
monitor_conditionsI_SettlementUnderSiege Rome
and I_CompareCounter rome_siege = 0
ifI_SettlementOwner Rome = papal_states
andI_FactionBesieging egypt
create_unit Rome, Feudal Knights, num 4, exp 2, arm 5,wep 5
end_if
set_counterrome_siege 1
end_monitor
Небольшая дополнительная строка "and I_FactionBesieging egypt" добавляет то, что необходимо
Можно задать больше условий.
Если под осадой цитадель, то спаунятся более качественные юниты ( в этом примере феодальные рыцари и сержанты)
;----------Counter ----------
declare_counterrome_siege
;----------Garrionscript ----------
monitor_conditionsnot I_SettlementUnderSiege Rome
set_counter rome_siege 0
end_monitor
monitor_conditionsI_SettlementUnderSiege Rome
and I_CompareCounter rome_siege = 0
ifI_SettlementOwner Rome = papal_states
andI_FactionBesieging egypt
andSettlementBuildingExists = citadel
create_unit Rome, Feudal Knights, num 4, exp 2, arm 5,wep 5
create_unit Rome, Armored Sergeants, num 4, exp 2, arm 5,wep 5
end_if
set_counterrome_siege 1
end_monitor
Сначала установим counter rome_siege равным 0.
Теперь, если Рим осаждают ("I_SettlementUnderSiege Rome" ) и он под контролем папства ("if I_SettlementOwner Rome= papal_states"), то в Римеспаунится 2 отряда крестьян ("num 2") с двумя единицами опыта (максимум 9) с 1 апгрейдом оружия (максимум 9и без апгрейда доспехов (максимум 9.
Ставим counter rome_siege равным "1", поскольку не хотим, чтоб они спаунились два раза
Теперь можно сделать кое-что поинтереснее, например, если арабы осаждают Рим, то спаунится больше войск и т.п.
;---------- Counter ----------
declare_counter rome_siege
;---------- Garrionscript ----------
monitor_conditions not I_SettlementUnderSiege Rome
set_counter rome_siege 0
end_monitor
monitor_conditions I_SettlementUnderSiege Rome
and I_CompareCounter rome_siege = 0
if I_SettlementOwner Rome = papal_states
and I_FactionBesieging egypt
create_unit Rome, Feudal Knights, num 4, exp 2, arm 5, wep 5
end_if
set_counter rome_siege 1
end_monitor
Небольшая дополнительная строка "and I_FactionBesieging egypt" добавляет то, что необходимо
Можно задать больше условий.
Если под осадой цитадель, то спаунятся более качественные юниты ( в этом примере феодальные рыцари и сержанты)
;---------- Counter ----------
declare_counter rome_siege
;---------- Garrionscript ----------
monitor_conditions not I_SettlementUnderSiege Rome
set_counter rome_siege 0
end_monitor
monitor_conditions I_SettlementUnderSiege Rome
and I_CompareCounter rome_siege = 0
if I_SettlementOwner Rome = papal_states
and I_FactionBesieging egypt
and SettlementBuildingExists = citadel
create_unit Rome, Feudal Knights, num 4, exp 2, arm 5, wep 5
create_unit Rome, Armored Sergeants, num 4, exp 2, arm 5, wep 5
end_if
set_counter rome_siege 1
end_monitor
Автор weissnicht