Это условие... никак не могу понять... оно утверждает, что поселение должно принадлежать ИИ или человеку ?SettlementIsLocal
Хм, генерал перестал таки "выкобениваться") Все реализуется на первый взгляд так, как я и хочу, но не могу уразуметь...declare_counter Settlement_Level
monitor_event SettlementTurnStart SettlementBuildingExists = wooden_pallisade
set_counter Settlement_Level 1
end_monitor
monitor_event SettlementTurnStart SettlementBuildingExists = wooden_wall
set_counter Settlement_Level 2
end_monitor
monitor_event SettlementTurnStart SettlementBuildingExists = stone_wall
set_counter Settlement_Level 3
end_monitor
monitor_event SettlementTurnStart SettlementBuildingExists = large_stone_wall
set_counter Settlement_Level 4
end_monitor
monitor_event SettlementTurnStart SettlementBuildingExists = huge_stone_wall
set_counter Settlement_Level 5
end_monitor
monitor_event SettlementTurnStart SettlementBuildingExists = motte_and_bailey
set_counter Settlement_Level 6
end_monitor
monitor_event SettlementTurnStart SettlementBuildingExists = wooden_castle
set_counter Settlement_Level 7
end_monitor
monitor_event SettlementTurnStart SettlementBuildingExists = castle
set_counter Settlement_Level 8
end_monitor
monitor_event SettlementTurnStart SettlementBuildingExists = fortress
set_counter Settlement_Level 9
end_monitor
monitor_event SettlementTurnStart SettlementBuildingExists = citadel
set_counter Settlement_Level 10
end_monitor
declare_counter Settlement_Garrison
monitor_event SettlementTurnStart not SettlementIsLocal
if not I_SettlementOwner = noldors
and not I_SettlementOwner = lorien
and not I_SettlementOwner = silvan
and not I_SettlementOwner = dwarves
and not I_SettlementOwner = eriador
and not I_SettlementOwner = dale
and not I_SettlementOwner = rohan
and not I_SettlementOwner = gondor
and not I_SettlementOwner = arnor
and not I_SettlementOwner = avari
and not I_SettlementOwner = vindans
and not I_SettlementOwner = slave
set_counter Settlement_Garrison -1
end_if
if not I_SettlementOwner = mordor
and not I_SettlementOwner = northern
and not I_SettlementOwner = gomm
and not I_SettlementOwner = isengard
and not I_SettlementOwner = dunland
and not I_SettlementOwner = rhun
and not I_SettlementOwner = harad
and not I_SettlementOwner = umbar
and not I_SettlementOwner = arthanor
and not I_SettlementOwner = pharasain
and not I_SettlementOwner = slave
set_counter Settlement_Garrison 1
end_if
end_monitor
declare_counter Wilderland_Siege
monitor_event SettlementTurnStart SettlementIsLocal
if not I_SettlementUnderSiege Wilderland
set_counter Wilderland_Siege 0
end_if
end_monitor
monitor_event SettlementTurnStart SettlementIsLocal
if I_SettlementUnderSiege Wilderland
and I_CompareCounter Wilderland_Siege = 0
if I_CompareCounter Settlement_Level = 1
if I_CompareCounter Settlement_Garrison = 1
create_unit Wilderland, light city unit, num 3, exp 0, arm 0, wep 0
set_counter Wilderland_Siege 1
end_if
end_if
end_if
end_monitor
Ситуация такова: этот самый город Wilderland находится под управлением ИИ-фракции Высших эльфов. Осаду тестирую на 1-м ходу, сразу же атакуя поселение стеком Мордора. Заканчиваю свой ход, Высшие эльфы тоже ходят без всяких премудростей, на моем втором ходу в осаждаемом поселении спаунится 3 отряда тестовых юнитов.
Вот и вопрос: почему спаун гарнизона возникает в начале моего нового хода?
Строка monitor_event SettlementTurnStart SettlementIsLocal утверждает, что поселение принадлежит мне, а скрипт срабатывает на начале хода ?
Просто в докудемоне это условие переведено как "Принадлежит ли поселение местной фракции?". Местная фракция - это фракция ИИ или человека ?
После вариации вот таких условий и самого ивента:
Гарнизон создается после моего хода сразу же, и генерал ИИ атакует осаждающих.declare_counter Wilderland_Siege
monitor_event SettlementTurnEnd not SettlementIsLocal
if not I_SettlementUnderSiege Wilderland
set_counter Wilderland_Siege 0
end_if
end_monitor
monitor_event SettlementTurnEnd not SettlementIsLocal
if I_SettlementUnderSiege Wilderland
and I_CompareCounter Wilderland_Siege = 0
if I_CompareCounter Settlement_Level = 1
if I_CompareCounter Settlement_Garrison = 1
create_unit Wilderland, light city unit, num 3, exp 0, arm 0, wep 0
set_counter Wilderland_Siege 1
end_if
end_if
end_if
end_monitor
Гарнизон вообще не создается...declare_counter Wilderland_Siege
monitor_event SettlementTurnEnd SettlementIsLocal
if not I_SettlementUnderSiege Wilderland
set_counter Wilderland_Siege 0
end_if
end_monitor
monitor_event SettlementTurnEnd SettlementIsLocal
if I_SettlementUnderSiege Wilderland
and I_CompareCounter Wilderland_Siege = 0
if I_CompareCounter Settlement_Level = 1
if I_CompareCounter Settlement_Garrison = 1
create_unit Wilderland, light city unit, num 3, exp 0, arm 0, wep 0
set_counter Wilderland_Siege 1
end_if
end_if
end_if
end_monitor
А тут как раз гарнизон создается, только когда начинается мой второй ход. А теоретически хотелось бы заспаунить отряды после хода Высших эльфов, пока ходят оставшиеся фракции.declare_counter Wilderland_Siege
monitor_event SettlementTurnStart SettlementIsLocal
if not I_SettlementUnderSiege Wilderland
set_counter Wilderland_Siege 0
end_if
end_monitor
monitor_event SettlementTurnStart SettlementIsLocal
if I_SettlementUnderSiege Wilderland
and I_CompareCounter Wilderland_Siege = 0
if I_CompareCounter Settlement_Level = 1
if I_CompareCounter Settlement_Garrison = 1
create_unit Wilderland, light city unit, num 3, exp 0, arm 0, wep 0
set_counter Wilderland_Siege 1
end_if
end_if
end_if
end_monitor
Аналогично предыдущему.declare_counter Wilderland_Siege
monitor_event SettlementTurnStart not SettlementIsLocal
if not I_SettlementUnderSiege Wilderland
set_counter Wilderland_Siege 0
end_if
end_monitor
monitor_event SettlementTurnStart not SettlementIsLocal
if I_SettlementUnderSiege Wilderland
and I_CompareCounter Wilderland_Siege = 0
if I_CompareCounter Settlement_Level = 1
if I_CompareCounter Settlement_Garrison = 1
create_unit Wilderland, light city unit, num 3, exp 0, arm 0, wep 0
set_counter Wilderland_Siege 1
end_if
end_if
end_if
end_monitor
По ходу это самое условие SettlementIsLocal в моем скрипте роли не играет вообще))
Попробую тип ивента с поселения заменить на фракцию. И сперва на начале хода ИИ выполнить проверку условий срабатывания, а на конце этого же хода в зависисмости от этих условий заспаунить нужного типа гарнизон. Ведь такое вполне можно реализовать ?