Argh... Double Post...
Okay, that script is not what you want, it seems I have subconsiously dismissed the horror of going into dialouges.
Here is what you need,
[anyone|plyr|repeat_for_parties,"list_fiefs_owned_to_tax", [
(store_repeat_object, ":center_no"),
(this_or_next|party_slot_eq,":current_town",slot_party_type, spt_castle),
(this_or_next|party_slot_eq,":ccurrent_town",slot_party_type, spt_town),
(party_slot_eq,":current_town",slot_party_type, spt_village),
(neq, ":current_town", "$g_encountered_party"), #given you auto collect whenever you enter a fief
(party_slot_eq, ":current_town", slot_town_lord, "trp_player"),
(str_store_party_name, s1, ":current_town"),
(party_get_slot, ":accumulated_rents", ":current_town", slot_center_accumulated_rents),
(party_get_slot, ":accumulated_tariffs", ":current_town", slot_center_accumulated_tariffs),
(store_add, ":total_tax", ":accumulated_rents", ":accumulated_tariffs"),
(gt, ":total_tax", 0),
(str_store_string, s2, ":total_tax")
],
"Go collect taxes from {s1}, they should pay {s2}.", "list_fiefs_owned_to_tax_execute",[(store_repeat_object, "$fief_to_tax")]],
This will list dialouge options for every fief owned that has taxes greater then 0.
[anyone,"list_fiefs_owned_to_tax_execute", [(str_store_party_name, 1, "$fief_to_tax")],
"Very well, I'll collect taxes from {s1}.", "another_dialouge_state",
[(call_script, "script_collect_taxes", "$fief_to_tax")... or something else...]],
This is next the step for any of the listed options with $fief_to_tax is the fief from the list as a global variable...
Should work... I guess...