These are bug fixes that I hope if Waihti and Zpar have not noticed will include in next version.
BUG FIX WHEN YOU TALK TO THE KING IN FIELD AND ASK TO DECLARE WAR, YOU ARE PRESENTED WITH THE BATTLE SCREEN.
(Changes are in module_dialogs marked with #zerilius changes)
THIS IS A FIX FOR GAME CRASHING BUG WHICH OCCURS WHEN YOU CREATE A PATROL FROM CONSTABLE, ASK HIM TO TAKE TROOPS FROM GARRISON AND EITHER THERE IS EMPTY GARRISON OR YOU DO NOT TAKE ANY TROOP FROM GARRISON AND PRESS DONE. IT CREATES AN INVALID PARTY AND GAME CRASHES(ATLEAST MINE).
MISTAKE IN module_scripts at script dplmc_evaluate_fief_exchange
BUG FIX WHEN YOU TALK TO THE KING IN FIELD AND ASK TO DECLARE WAR, YOU ARE PRESENTED WITH THE BATTLE SCREEN.
(Changes are in module_dialogs marked with #zerilius changes)
Code:
(lt, ":sum", 300),
], "How can you dare? Who do you think you are? Get out of my sight!", "close_window",
[
(call_script, "script_change_player_relation_with_troop", "$g_talk_troop", -1),
(eq,"$talk_context",tc_party_encounter), #zerilius changes
(assign, "$g_leave_encounter", 1), #zerilius changes
]],
Code:
##diplomacy start+
#Replace "sword" with a culturally-appropriate alternative (TODO: does "gird" make sense for everythign?)
(call_script, "script_dplmc_print_cultural_word_to_sreg", "$g_talk_troop", DPLMC_CULTURAL_TERM_WEAPON, 0),
], "Gird your {s0} we are going to war against {s11}.", "close_window",
##nested diplomacy end+
[
(call_script, "script_change_player_relation_with_troop", "$g_talk_troop", 1),
(call_script, "script_diplomacy_start_war_between_kingdoms", "$players_kingdom", "$g_faction_selected", 1),
(eq,"$talk_context",tc_party_encounter), #zerilius changes
(assign, "$g_leave_encounter", 1), #zerilius changes
]],
[anyone, "dplmc_lord_declare_war_decision",
[
], "No, I am not convinced. We won't attack {s11}.", "close_window",
[
(call_script, "script_change_player_relation_with_troop", "$g_talk_troop", -1),
(eq,"$talk_context",tc_party_encounter), #zerilius changes
(assign, "$g_leave_encounter", 1), #zerilius changes
]],
THIS IS A FIX FOR GAME CRASHING BUG WHICH OCCURS WHEN YOU CREATE A PATROL FROM CONSTABLE, ASK HIM TO TAKE TROOPS FROM GARRISON AND EITHER THERE IS EMPTY GARRISON OR YOU DO NOT TAKE ANY TROOP FROM GARRISON AND PRESS DONE. IT CREATES AN INVALID PARTY AND GAME CRASHES(ATLEAST MINE).
Code:
[anyone|plyr, "dplmc_constable_patrol_size",
[],
"Take troops out of the garrison.", "dplmc_constable_patrol_garrison",
[
(store_party_size_wo_prisoners, ":garrison_size", "$current_town"), #zerilius changes
(gt, ":garrison_size", 0), #zerilius changes
(party_clear, "p_temp_party"),
(assign, "$g_move_heroes", 1),
(call_script, "script_party_add_party", "p_temp_party", "p_main_party"),
(party_clear, "p_main_party"),
(party_remove_members, "p_main_party", "trp_player", 1),
(change_screen_exchange_members, 1),
]],
#zerilius changes begin
[anyone, "dplmc_constable_patrol_garrison",
[
(store_party_size_wo_prisoners, ":garrison_size", "$current_town"),
(le, ":garrison_size", 0),
],
"We do not have any troops in the garrison.", "dplmc_constable_patrol_size",
[]],
[anyone, "dplmc_constable_patrol_garrison",
[],
"My {lord/lady}, are you done with the patrol troops.", "dplmc_constable_patrol_garrison_2",
[]],
[anyone, "dplmc_constable_patrol_garrison_2",
[
(store_party_size_wo_prisoners, ":garrison_size", "p_main_party"),
(le, ":garrison_size", 0),
(party_add_members, "p_main_party", "trp_swadian_militia", 1), #zerilius included otherwise gives errors
],
"You didn't choose any soldiers. Seems like you changed your mind.", "dplmc_constable_pretalk",
[
(party_remove_members, "p_main_party", "trp_swadian_militia", 1),
(call_script, "script_party_add_party", "p_main_party", "p_temp_party"),
(assign, "$g_move_heroes", 0),
]],
#zerilius changes end
#[anyone, "dplmc_constable_patrol_garrison", #zerilius changes
[anyone, "dplmc_constable_patrol_garrison_2", #zerilius changes
[],
"Where do you want to send the patrol?", "dplmc_constable_patrol_garrison_location",
[]],
MISTAKE IN module_scripts at script dplmc_evaluate_fief_exchange
Code:
(ge, ":target_type", 1),#break with error if the type was bad
#offered_type: 1 = village, 2 = castle, 3 = town
(assign, ":offered_type", 0),
(try_begin),
#(party_slot_eq, ":offered_fief", slot_party_type, spt_village), #zerilius commented (mistake here)
(party_slot_eq, ":offered_fief", slot_party_type, spt_town), #zerilius changed from village to town
(assign, ":offered_type", 3),
(else_try),
(party_slot_eq, ":offered_fief", slot_party_type, spt_castle),
(assign, ":offered_type", 2),
(else_try),
(party_slot_eq, ":offered_fief", slot_party_type, spt_village),
(assign, ":offered_type", 1),
(try_end),
(ge, ":offered_type", 1),#break with error if the type was bad
#Now execute comparison logic:
Code:
#refuse to trade away home center (unless trading up for a better type)
#Target fief is home of NPC...
(this_or_next|party_slot_eq, ":target_fief", dplmc_slot_center_original_lord, ":target_npc"),
(troop_slot_eq, ":target_npc", slot_troop_home, ":target_fief"),
(neg|party_slot_eq, ":offered_fief", dplmc_slot_center_original_lord, ":target_npc"),
#...and offered fief is not.
(neg|troop_slot_eq, ":target_npc", slot_troop_home, ":offered_fief"),
(this_or_next|neg|is_between, ":target_npc", companions_begin, companions_end),
(neg|troop_slot_eq, ":target_npc", slot_troop_town_with_contacts, ":offered_fief"),
(str_store_party_name, s14, ":target_fief"), #zerilius added this line
(str_store_string, s14, "str_dplmc_fief_exchange_refuse_home"),