
Originally Posted by
Kiliç Alì
If you save\reload a yes\no event, event is considered "declined" by the engine.
I think it is more a case of: when you reload it is not retriggering the monitor that asked the question. The question has been asked (before the save) but it has not been answered. So on reload it is not "declined"; rather just "not accepted": the accepted monitor has not fired. i.e. Neither declined nor accepted, as though the question had never been asked.
If you have a monitor to handle the "declined" case then does it fire when you reload? I don't know but I suspect not. Which means that both the accepted and declined monitors are sitting there, unfired, still waiting for the question to be answered.
If the asking is done in something like "FactionTurnStart where TurnNumber = x" then it will never be asked again.
Another solution might be: instead of this...
Code:
monitor_event FactionTurnStart [conditions]
historic_event ask_this true
terminate_monitor
end_monitor
monitor_event EventCounter EventCounterType ask_this_accepted
and EventCounter > 0
;do "accepted" stuff
terminate_monitor
end_monitor
monitor_event EventCounter EventCounterType ask_this_declined
and EventCounter > 0
;do "declined" stuff
terminate_monitor
end_monitor
...it could do this...
Code:
set_event_counter ask_this_trigger 0
;A
monitor_event FactionTurnStart [conditions]
set_event_counter ask_this_trigger 1
terminate_monitor
end_monitor
;B
monitor_event EventCounter EventCounterType ask_this_trigger
and EventCounter > 0
historic_event ask_this true
;do not terminate!
end_monitor
;C
monitor_event GameReloaded TrueCondition
if I_EventCounter ask_this_trigger == 1
set_event_counter ask_this_trigger 0
set_event_counter ask_this_trigger 1
end_if
end_monitor
;D
monitor_event EventCounter EventCounterType ask_this_accepted
and EventCounter > 0
;do "accepted" stuff
set_event_counter ask_this_trigger 0
terminate_monitor
end_monitor
;E
monitor_event EventCounter EventCounterType ask_this_declined
and EventCounter > 0
;do "declined" stuff
set_event_counter ask_this_trigger 0
terminate_monitor
end_monitor
Rather than doing the historic_event from the main trigger monitor (A), do it from another monitor (B) that is triggered by both the first monitor (A) and another one that fires when the game is loaded (C). The accept/decline monitors flag it as "answered, do not ask again" by setting the counter back to zero.
So until Yes/No is clicked ask_this_trigger remains as 1, which C is testing for: at that point it resets it to 1 (0 then 1) to retrigger B.