Bardo, i got confused a bit with your instructions :(.
Could you please just clarify this for me.
Am i right here:

[city name = map name = Acre, faction1 = sassanids, faction 2 = franks, unit name = crusader latin knigts (just for testing)]

Code:
script
This For each Settlement
Code:
declare_counter AcreBesiged
set_counter AcreBesiged 0
Repeat For Each Faction
Code:
monitor_event FactionTurnEnd FactionType sassanids
and I_LocalFaction sassanids

;;;;;;;Repeat For Each Settlement;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   if I_CompareCounter AcreBesiged = 0
      and not I_SettlementOwner Acre = sassanids
      if I_CharacterTypeNearTile sassanids general,  2 151,162
         set_counter AcreBesiged 1
      end_if
      if I_CharacterTypeNearTile sassanids family,  2 151,162
         set_counter AcreBesiged 1
      end_if
   end_if
   if I_CompareCounter AcreBesiged = 2
      and not I_CharacterTypeNearTile sassanids family, 2 151,162
      and not I_CharacterTypeNearTile sassanids general, 2 151,162
      set_counter AcreBesiged 0
   end_if
;;;;;;;^^^Repeat for Each Settlement^^^;;;;;;;;;;;;;;;;;;;;

end_monitor
This Monitor For Every Settlement
Code:
monitor_event SettlementTurnEnd SettlementName Acre
   and I_CompareCounter AcreBesiged = 1
   and GarrisonSettlementRatio < 0.5
      if I_SettlementOwner Acre = sassanids
         console_command create_unit Acre "crusader latin knights" 4
         console_command add_money -2000       
         console_command add_population Acre -1500
      end_if
      if I_SettlementOwner Acre = franks
         console_command create_unit Acre "crusader latin knights" 4
         console_command add_money -2000       
         console_command add_population Acre -1500
      end_if
      if I_SettlementOwner Acre = slave
         console_command create_unit Acre "crusader latin knights" 4
         console_command add_money -2000       
         console_command add_population Acre -1500
      end_if
      set_counter AcreBesiged 2
end_monitor
Code:
while TrueCondition
end_while

end_script
Did i understand your instructions correctly?
Thanks Bardo.