The options to "land" and "send the ship to a town" will not show up if the player tries to do it at a steep cliff (based on the height difference of the positions), because otherwise the player might get stuck there and break his game. Its still possible to do, but this was the closest we could get to fixing this.
Troops need to be paid wages so we better include all the crews the player assigns to his ships (beware this fuses into the diplomacy presentation):
##diplomacy begin
(try_begin),
(this_or_next|gt, "$g_player_minister", 0),
(this_or_next|troop_slot_ge, "trp_player", slot_troop_spouse, 0),
(this_or_next|gt, "$g_player_chamberlain", 0),
(gt, "$g_player_constable", 0),
(val_add, ":num_lines", 1), # staff salary
(try_end),
(try_begin),
(gt, "$g_player_chamberlain", 0),
(val_add, ":num_lines", 2), #earlier cash, new cash
(try_end),
##diplomacy end
#FLORIS BEGIN
(try_begin),
(faction_slot_eq, "fac_player_supporters_faction", slot_faction_state, sfs_active),
(faction_slot_eq, "fac_player_supporters_faction", slot_faction_leader, "trp_player"),
(val_add, ":num_lines", 1),
(try_end),
(try_for_parties, ":party_no"),
(party_slot_ge,":party_no", slot_ship_center, 1), #Ships are identified by 4 states, towns/player/wilderness/wilderness w/o guard
(assign, reg20, 2),
(try_end),
(try_begin),
(eq, reg20,2),
(val_add, ":num_lines", 1),
(try_end),
#FLORIS END
(val_add, ":num_lines", 3),
(store_mul, ":cur_y", 27, ":num_lines"),
(assign, ":net_change", 0), #this is the amount added
(try_for_range, ":center_no", centers_begin, centers_end),
#Enterprise
(str_store_string, s0, "str_s0s_party"),
(try_end),
(create_text_overlay, reg1, "str_wages_for_s0", 0),
(position_set_x, pos1, 900),
(position_set_y, pos1, 900),
(overlay_set_size, reg1, pos1),
(position_set_x, pos1, 25),
(position_set_y, pos1, ":cur_y"),
(overlay_set_position, reg1, pos1),
(try_begin),
(lt, ":total_wage", 0),
(assign, reg0, ":total_wage"),
(create_text_overlay, reg1, "@{!}{reg0}", tf_right_align|tf_single_line),
(overlay_set_color, reg1, 0xFF0000),
(else_try),
(create_text_overlay, reg1, "@None", tf_right_align|tf_single_line),
(try_end),
(position_set_x, pos1, 900),
(position_set_y, pos1, 900),
(overlay_set_size, reg1, pos1),
(position_set_x, pos1, 500),
(position_set_y, pos1, ":cur_y"),
(overlay_set_position, reg1, pos1),
(val_sub, ":cur_y", 27),
(try_end),
#Floris Addendum / Crew Wages / Seafaring
(assign, ":crew_wage", 0),
(assign, reg20, 0),
(try_for_parties, ":party_no"),
(party_slot_ge,":party_no", slot_ship_center, 1), #Ships are identified by 4 states, towns/player/wilderness/wilderness w/o guard
(party_get_num_companion_stacks, ":num_stacks", ":party_no"), #Calculating Wages
(try_for_range, ":i_stack", 0, ":num_stacks"),
(party_stack_get_troop_id, ":stack_troop", ":party_no", ":i_stack"),
(party_stack_get_size, ":stack_size", ":party_no", ":i_stack"),
(call_script, "script_game_get_troop_wage", ":stack_troop", ":party_no"),
(assign, ":cur_wage", reg0),
(val_mul, ":cur_wage", ":stack_size"),
(val_mul, ":cur_wage", -1),
(val_add, ":crew_wage", ":cur_wage"),
(try_end),
(assign, reg20, 1),
(try_end),
(try_begin),
(eq, reg20, 1),
(assign, reg0, ":crew_wage"),
(val_add, ":net_change", ":crew_wage"),
(create_text_overlay, reg1, "@Wages for your Shipcrew/s:", 0),
(position_set_x, pos1, 900),
(position_set_y, pos1, 900),
(overlay_set_size, reg1, pos1),
(position_set_x, pos1, 25),
(position_set_y, pos1, ":cur_y"),
(overlay_set_position, reg1, pos1),
(create_text_overlay, reg1, "@{!}{reg0}", tf_right_align|tf_single_line), #Display Wages
(overlay_set_color, reg1, 0xFF0000),
(position_set_x, pos1, 900),
(position_set_y, pos1, 900),
(overlay_set_size, reg1, pos1),
(position_set_x, pos1, 500),
(position_set_y, pos1, ":cur_y"),
(overlay_set_position, reg1, pos1),
(val_sub, ":cur_y", 27),
(try_end),
#Floris End
(try_begin),
(gt, "$g_player_debt_to_party_members", 0),
(val_sub, ":net_change", "$g_player_debt_to_party_members"),
(create_text_overlay, reg1, "str_earlier_debts", 0),
To finish off - a few minor menu fixes and additions (be aware this is based on FEMP, you might not have the same code, but you will need to alter "Resume Travelling" and "Wait here for some time"):
("camp_wait_here",[],"Wait here for some time.",
[
(assign,"$g_camp_mode", 1),
(assign, "$g_infinite_camping", 0),
(assign, "$g_player_icon_state", pis_camping),
# (party_set_slot,"p_main_party",slot_party_entrenched,0), #TEMPERED ADDED LINE FOR NO ENTRENCHMENT
# (assign,"$current_camp_party",-1), #TEMPERED ADDED LINE FOR NO ENTRENCHMENT
(try_begin),
(party_is_active, "p_main_party"),
(party_get_current_terrain, ":cur_terrain", "p_main_party"),
(try_begin),
(eq, ":cur_terrain", rt_desert),
(unlock_achievement, ACHIEVEMENT_SARRANIDIAN_NIGHTS), #Floris Seafaring Addendum
(else_try),
(eq, ":cur_terrain", 0), #Sea
(assign, "$g_player_icon_state", pis_ship),
(party_set_flags, "p_main_party", pf_is_ship, 1),
(try_end),
(try_end),
(rest_for_hours_interactive, 24 * 365, 5, 1), #rest while attackable
(change_screen_map),
]
),
("camp_fishing", #Floris Fishing
[ (party_get_current_terrain, ":terrain", "p_main_party"),
(eq, ":terrain", 0),
],
"Try to catch some fish.",
[
(store_current_hours, ":time"),
(val_add, ":time", 24),
(party_set_slot, "p_main_party", slot_ship_time, ":time"),
(assign,"$g_camp_mode", 1),
(assign, "$g_infinite_camping", 0),
(rest_for_hours_interactive, 24 * 365, 5, 1),
(assign, "$g_player_icon_state", pis_ship),
(change_screen_map),
]),
#Tempered inspect camp
("camp_inspect",
[ (party_get_current_terrain, ":terrain", "p_main_party"),
(neq, ":terrain", 0),
],"Inspect your camp.",
[
(call_script,"script_visit_camp"),
]
),
#TEMPERED CHANGES BEGIN ADDED ENTRENCHMENT MENU OPTION
("camp_entrench",[ (party_get_current_terrain, ":terrain", "p_main_party"),
(neq, ":terrain", 0),
(party_slot_eq,"p_main_party",slot_party_entrenched,0),
(assign,":continue",0),
(try_for_parties,":camp_site"),
(eq,":continue",0),
(party_slot_eq,":camp_site",slot_party_type,spt_entrenchment),
(store_distance_to_party_from_party, ":distance", ":camp_site", "p_main_party"),
(try_begin),
(le,":distance",1),
(str_store_string,s1,"@Return to your fortifications."),
(assign,":continue",1),
(assign,"$current_camp_party",":camp_site"),
(try_end),
(try_end),
(try_begin),
(eq,":continue",0),
(call_script,"script_party_entrench_time"),
(str_store_string,s1,"@Spend {reg5} hours entrenching your camp site."),
(assign,"$current_camp_party",-1),
(try_end),
],"{s1}",
[
(assign,":continue",0),
(store_current_hours,":cur_hour"),
(try_begin),
(player_has_item,"itm_tools"),
(assign,":continue",1),
(try_end),
(try_begin),
(eq,":continue",1),
(try_begin),
(lt,"$current_camp_party",0),
(call_script,"script_party_entrench_time"),
(store_add,"$entrench_time",":cur_hour",reg5),
(call_script,"script_change_player_party_morale",-10),
(party_set_slot,"p_main_party",slot_party_entrenched,-1),
(assign,"$g_camp_mode", 1),
(assign, "$g_infinite_camping", 0),
(assign, "$g_player_icon_state", pis_camping),
(rest_for_hours_interactive, 24 * 7, 5, 1), #rest while attackable
(change_screen_return),
(else_try),
(gt,"$current_camp_party",0),
(party_set_slot,"p_main_party",slot_party_entrenched,1),
(display_message,"@_You have returned to a fortified position."),
(party_set_slot,"$current_camp_party",slot_village_state,1),
(party_clear_particle_systems, "$current_camp_party"),
(assign,"$entrench_time",0),
(assign,"$g_camp_mode", 1),
(assign, "$g_infinite_camping", 0),
(assign, "$g_player_icon_state", pis_camping),
(jump_to_menu,"mnu_camp"),
(try_end),
(else_try),
(eq,":continue",0),
(display_message,"@_You must have tools in inventory to entrench your camp site."),
(jump_to_menu,"mnu_camp"),
(try_end),
]
),
# ("game_options",[],"Adjust mod settings.",
# [
# (jump_to_menu,"mnu_options"),
# ]
# ),
#TEMPERED CHANGES END
("camp_cheat",
[(ge, "$cheat_mode", 1)
], "CHEAT MENU!",
[(jump_to_menu, "mnu_camp_cheat"),
],
),
("resume_travelling",[],"Resume travelling.",
[
(party_get_current_terrain, ":terrain", "p_main_party"), #Floris Addendum / Seafaring
(try_begin),
(neq, ":terrain", 0),
(assign, "$g_player_icon_state", pis_normal),
(assign,"$g_camp_mode", 0),
(else_try),
(assign, "$g_player_icon_state", pis_ship),
(assign,"$g_camp_mode", 0),
(try_end),
(change_screen_map),
]
),
]
),