Доброго всем утра!
DEN Stark, спасибо за все ответы)
Начнем снова разбор полетов:
; Гарнизонный скрипт; Гарнизонный скриптdeclare_counter Settlement_Levelmonitor_event [color="#FFA500"]SettlementTurnEnd[/color] SettlementBuildingExists = wooden_pallisadeset_counter Settlement_Level -1end_monitormonitor_event [color="#FFA500"]SettlementTurnEnd[/color] SettlementBuildingExists = wooden_wallset_counter Settlement_Level -2end_monitormonitor_event [color="#FFA500"]SettlementTurnEnd[/color] SettlementBuildingExists = stone_wallset_counter Settlement_Level -3end_monitormonitor_event [color="#FFA500"]SettlementTurnEnd[/color] SettlementBuildingExists = large_stone_wallset_counter Settlement_Level -4end_monitormonitor_event [color="#FFA500"]SettlementTurnEnd[/color] SettlementBuildingExists = huge_stone_wallset_counter Settlement_Level -5end_monitormonitor_event [color="#FFA500"]SettlementTurnEnd[/color] SettlementBuildingExists = motte_and_baileyset_counter Settlement_Level 1end_monitormonitor_event [color="#FFA500"]SettlementTurnEnd[/color] SettlementBuildingExists = wooden_castleset_counter Settlement_Level 2end_monitormonitor_event [color="#FFA500"]SettlementTurnEnd[/color] SettlementBuildingExists = castleset_counter Settlement_Level 3end_monitormonitor_event [color="#FFA500"]SettlementTurnEnd[/color] SettlementBuildingExists = fortressset_counter Settlement_Level 4end_monitormonitor_event [color="#FFA500"]SettlementTurnEnd[/color] SettlementBuildingExists = citadelset_counter Settlement_Level 5end_monitordeclare_counter Settlement_Garrisonmonitor_event [color="#FFA500"]SettlementTurnEnd[/color] not SettlementIsLocalif not I_SettlementOwner = noldorsand not I_SettlementOwner = lorienand not I_SettlementOwner = silvanand not I_SettlementOwner = dwarvesand not I_SettlementOwner = eriadorand not I_SettlementOwner = daleand not I_SettlementOwner = rohanand not I_SettlementOwner = gondorand not I_SettlementOwner = arnorand not I_SettlementOwner = avariand not I_SettlementOwner = vindansand not I_SettlementOwner = slaveset_counter Settlement_Garrison -1end_ifif not I_SettlementOwner = mordorand not I_SettlementOwner = northernand not I_SettlementOwner = gommand not I_SettlementOwner = isengardand not I_SettlementOwner = dunlandand not I_SettlementOwner = rhunand not I_SettlementOwner = haradand not I_SettlementOwner = umbarand not I_SettlementOwner = arthanorand not I_SettlementOwner = pharasainand not I_SettlementOwner = slaveset_counter Settlement_Garrison 1end_ifend_monitordeclare_counter Wilderland_Siegemonitor_event [color="#FFA500"]SettlementTurnEnd[/color] not SettlementIsLocalif not I_SettlementUnderSiege Wilderlandset_counter Wilderland_Siege 0end_ifend_monitormonitor_event [color="#FFA500"]SettlementTurnEnd[/color] not SettlementIsLocalif I_SettlementUnderSiege Wilderlandand I_CompareCounter Wilderland_Siege = 0if I_CompareCounter Settlement_Level = -1if I_CompareCounter Settlement_Garrison = -1create_unit Wilderland, dark city unit, num 3, exp 0, arm 0, wep 0set_counter Wilderland_Siege -1end_ifif I_CompareCounter Settlement_Garrison = 1create_unit Wilderland, light city unit, num 3, exp 0, arm 0, wep 0set_counter Wilderland_Siege 1end_ifend_ifend_ifend_monitor
Спаун срабатывает как часы! НО почему-то всегда на начале хода Высших Эльфов (в тесте они владеют поселением). Как раз спаун во время хода, генералу с гарнизоном не сидится на месте, стремится контратаковать. И вылет системный после - так в случае любого "столкновения" персонажей (с чем может быть связано сие ?).
Лог не ругается на саму конструкцию, поэтому есть надежда, что все условия будут читаться) Но проклятый вылет картину портит...
Кстати, условие владельца поселения без указания поселения вроде бы работает (ну лог по крайней мере на это не возникает, хотя в подобных командах требует тотчас же назвать городишко)...
По поведению скрипта есть кое-какие замечания:
set_counter Wilderland_Siege 1
end_if
end_if
end_monitor _linenums:0'>monitor_event SettlementTurnEnd not SettlementIsLocalif I_SettlementUnderSiege Wilderlandand I_CompareCounter Wilderland_Siege = 0if I_CompareCounter Settlement_Level = -1if I_CompareCounter Settlement_Garrison = -1create_unit Wilderland, dark city unit, num 3, exp 0, arm 0, wep 0;set_counter Wilderland_Siege -1end_ifif I_CompareCounter Settlement_Garrison = 1create_unit Wilderland, light city unit, num 3, exp 0, arm 0, wep 0;set_counter Wilderland_Siege 1end_if[b]set_counter Wilderland_Siege 1[/b]end_ifend_ifend_monitor
Срабатывает гарнизон на начале хода, атака и вылет.
set_counter Wilderland_Siege 1
end_if
end_monitor _linenums:0'>monitor_event SettlementTurnEnd not SettlementIsLocalif I_SettlementUnderSiege Wilderlandand I_CompareCounter Wilderland_Siege = 0if I_CompareCounter Settlement_Level = -1if I_CompareCounter Settlement_Garrison = -1create_unit Wilderland, dark city unit, num 3, exp 0, arm 0, wep 0;set_counter Wilderland_Siege -1end_ifif I_CompareCounter Settlement_Garrison = 1create_unit Wilderland, light city unit, num 3, exp 0, arm 0, wep 0;set_counter Wilderland_Siege 1end_ifend_if[b]set_counter Wilderland_Siege 1[/b]end_ifend_monitor
Спаун игнорируется!
Сообщение отредактировал Master_TW_DAR: 06 апреля 2014 - 06:57