for 3, I think editing this in module_scripts will do:
# script_game_get_troop_wage
# This script is called from the game engine for calculating troop wages.
# Input:
# param1: troop_id, param2: party-id
# Output: reg0: weekly wage
("game_get_troop_wage",
[
(store_script_param_1, ":troop_id"),
(store_script_param_2, ":unused"), #party id
(assign,":wage", 0),
(try_begin),
(troop_is_hero, ":troop_id"),
(else_try),
(store_character_level, ":troop_level", ":troop_id"),
(assign, ":wage", ":troop_level"),
(val_add, ":wage", 5),
(val_mul, ":wage", ":wage"),
(val_div, ":wage", 30),
(try_end),
(store_skill_level, ":leadership_level", "skl_leadership", "trp_player"),
(store_mul, ":leadership_bonus", 8, ":leadership_level"),
(store_sub, ":leadership_factor", 100, ":leadership_bonus"),
(val_mul, ":wage", ":leadership_factor"), #wage = wage * (100 - 8*leadership)/100
(val_div, ":wage", 100),
(assign, reg0, ":wage"),
(set_trigger_result, reg0),
]),