Damn you're right, the IF sequence only pertains to the firing of the add_event, not the restriction of the message display. A work around would be a faction limited 'true' historic_event, eg the 'yes' answer to the question: 'do you want to go to the event?' will move the screen to the location. Underneath an abbreviated example from RotK how we approached it:
Code:
monitor_event FactionTurnStart FactionType france
if not I_IsFactionAIControlled france
historic_event liu_missions true factions { france, }
end_if
if I_IsFactionAIControlled france
terminate_monitor
end_if
while I_EventCounter liu_missions_accepted = 0
and I_EventCounter liu_missions_declined = 0
end_while
if I_EventCounter liu_missions_accepted > 0
reveal_tile 105, 104
snap_strat_camera 97, 104
zoom_strat_camera 0.4
terminate_monitor
end_if
if I_EventCounter liu_missions_declined > 0
terminate_monitor
end_if
end_monitor
Note: there is a slave end turn hide_all_revealed_tiles command in the overall script,
for hotseats this might have to be changed into a generic faction turn end
The first part is actually part of a 'calendar' script, eg tons of commands\event messages wrapped in 'if I_Turn_number' sequences, I have merged it with the second part (standard event_counter event) using the 'while' principle.
In other 'accepted' monitors we select a just spawned and labeled target character to highlight him (the enclosing line animation marking is a bit bugged in my opinion) and\or used additional arrow markers.