demize2010 说:
(set_relation, ":kingdom_a", ":kingdom_b", "10")
(call_script, "script_diplomacy_start_war_between_kingdoms", "fac_kingdom_1", "fac_kingdom_2"),
(assign, ":jumpout", 0),
(try_begin),
(this_or_next|eq, "fac_your_first_kd", ":cur_kingdom"),
(eq, "fac_your_second_kingdom", ":cur_kingdom"),
(this_or_next|eq, "fac_your_first_kingdom", ":cur_kingdom_2"),
(eq, "fac_your_second_kingdom", ":cur_kingdom_2"),
(assign, ":jumpout", 1),
(try_end),
(eq, ":jumpout", 0),
(call_script, "script_diplomacy_start_peace_between_kingdoms", ":cur_kingdom", ":cur_kingdom_2"),
(try_begin),
(store_random_in_range, ":random_no", 0, 100),
(lt, ":random_no", 10),
(call_script, "script_create_kingdom_party_if_below_limit", ":kingdom", spt_kingdom_caravan),
(try_end),
(neg|eq, ":kingdom", "fac_enter_your_faction_name_here"),
(try_begin),
(store_random_in_range, ":random_no", 0, 100),
(lt, ":random_no", 10),
(call_script, "script_create_kingdom_party_if_below_limit", ":kingdom", spt_kingdom_caravan),
(try_end),
#pass 1: Give one village to each castle and town
(try_for_range, ":cur_center", walled_centers_begin, walled_centers_end),
(assign, ":min_dist", 999999),
(assign, ":min_dist_village", -1),
(try_for_range, ":cur_village", villages_begin, villages_end),
(store_distance_to_party_from_party, ":cur_dist", ":cur_village", ":cur_center"),
(lt, ":cur_dist", ":min_dist"),
(assign, ":min_dist", ":cur_dist"),
(assign, ":min_dist_village", ":cur_village"),
(try_end),
(party_set_slot, ":min_dist_village", slot_village_bound_center, ":cur_center"),
(store_faction_of_party, ":town_faction", ":cur_center"),
(call_script, "script_give_center_to_faction_aux", ":min_dist_village", ":town_faction"),
(try_end),
(try_for_range, ":cur_center", walled_centers_begin, walled_centers_end),
(neg|eq, ":cur_center", "p_insert_name_of_your_castle_here"),
(36, 0, 0.0, [], [ ## Set the reinforcements interval to 36 Game hours. Change as you feel like.
(try_for_range, ":center", walled_centers_begin, walled_centers_end),
(store_faction_of_party, ":faction", ":center"),
(party_get_num_companions, ":garrison", ":center"),
(faction_get_slot, ":party_template_a", ":faction", slot_faction_reinforcements_a),
(faction_get_slot, ":party_template_b", ":faction", slot_faction_reinforcements_b),
(faction_get_slot, ":party_template_c", ":faction", slot_faction_reinforcements_c),
(assign, ":party_template", 0),
(try_begin),
(party_slot_eq, ":center", slot_party_type, spt_town),
(lt, ":garrison", 200), ## Under this number of troops will towns get reinforcements
(assign, ":party_template", "pt_reinforcements"),
(else_try),
(party_slot_eq, ":center", slot_party_type, spt_castle),
(lt, ":garrison", 70), ## Under this number of troops will castles get reinforcements
(assign, ":party_template", "pt_reinforcements"),
(try_end),
(try_begin),
(gt, ":party_template", 0),
(try_for_range, ":village_reinforcements", villages_begin, villages_end),
(try_begin),
(party_slot_eq, ":center", slot_party_type, spt_castle), ## For Castles
(party_slot_eq, ":village_reinforcements", slot_village_bound_center, ":center"),
(party_slot_eq, ":village_reinforcements", slot_village_state, svs_normal), ## Not if the village is being raided or is looted
(neg|party_slot_eq, ":center", slot_town_lord, "trp_player"), ## Not a player owned center
(spawn_around_party, ":village_reinforcements", ":party_template"),
(assign, ":result", reg0),
(store_random_in_range, ":rand", 0, 100),
(try_begin),
(is_between, ":rand", 0, 45), ## Get weakest template
(party_add_template, ":result", ":party_template_a"),
(else_try),
(is_between, ":rand", 45, 85), ## Get stronger template
(party_add_template, ":result", ":party_template_b"),
(else_try),
(ge, ":rand", 85), ## Get strongest template
(party_add_template, ":result", ":party_template_c"),
(try_end),
(party_set_faction, ":result", ":faction"),
(party_set_slot, ":result", slot_party_type, spt_reinforcement_party),
(party_set_slot, ":result", slot_party_ai_object, ":center"),
(str_store_party_name, s14, ":village_reinforcements"),
(party_set_name, ":result", "@Reinforcements from {s14}"),
(party_set_ai_behavior,":result",ai_bhvr_travel_to_party),
(party_set_ai_object,":result", ":center"),
(party_set_flags, ":result", pf_default_behavior, 1),
(else_try),
(party_slot_eq, ":center", slot_party_type, spt_town), ## For Towns
(party_slot_eq, ":village_reinforcements", slot_village_bound_center, ":center"),
(party_slot_eq, ":village_reinforcements", slot_village_state, svs_normal), ## Not if the village is being raided or is looted
(neg|party_slot_eq, ":center", slot_town_lord, "trp_player"), ## Not a player owned center
(spawn_around_party, ":village_reinforcements", ":party_template"),
(assign, ":result", reg0),
(store_random_in_range, ":rand", 0, 100),
(try_begin),
(is_between, ":rand", 0, 45), ## Get weakest template
(party_add_template, ":result", ":party_template_a"),
(else_try),
(is_between, ":rand", 40, 85), ## Get stronger template
(party_add_template, ":result", ":party_template_b"),
(else_try),
(ge, ":rand", 85), ## Get strongest template
(party_add_template, ":result", ":party_template_c"),
(try_end),
(party_set_faction, ":result", ":faction"),
(party_set_slot, ":result", slot_party_type, spt_reinforcement_party),
(party_set_slot, ":result", slot_party_ai_object, ":center"),
(str_store_party_name, s14, ":village_reinforcements"),
(party_set_name, ":result", "@Reinforcements from {s14}"),
(party_set_ai_behavior,":result",ai_bhvr_travel_to_party),
(party_set_ai_object,":result", ":center"),
(party_set_flags, ":result", pf_default_behavior, 1),
(try_end),
(try_end),
(try_end),
(try_end)])
(party_get_slot, ":besieged", ":center", slot_center_is_besieged_by),
(neg|ge, ":besieged", 0), #Town/castle is under siege jump out
(try_for_range, ":center", walled_centers_begin, walled_centers_end),
("reinforcements","Reinforcements",icon_axeman|pf_show_faction,0,fac_commoners,soldier_personality,[]),
spt_reinforcement_party = 14
(0.2, #Every 0.2 game hours will the game check if there are any reinforcements in the centers.
[
(try_for_parties, ":party_no"),
(party_slot_eq, ":party_no", slot_party_type, spt_reinforcement_party), #Find parties of the type spt_reinforcement_party
(party_is_in_any_town, ":party_no"), # Is the party in any town?
(party_get_cur_town, ":cur_center", ":party_no"), #What town are they in?
(call_script, "script_party_add_party_companions", ":cur_center", ":party_no"), #Add the party to the center, which is infact a party ;)
(party_clear, ":party_no"), #Not sure if this cleaning up is necessary, but it's a precaution so we don't have a bundle of templates lying around.
(try_end),
]),
# Reinforcements
[party_tpl|pt_reinforcements,"start", [(eq,"$talk_context",tc_party_encounter),
(party_get_slot, ":ai_object", "$g_encountered_party", slot_party_ai_object),
(str_store_party_name,s21,":ai_object"),
(str_store_party_name, s20, "$g_encountered_party")],
"Who goes there? We are {s20}.\ We're on our way to {s21}.", "reinforcements_intro",[]],
[anyone|plyr, "reinforcements_intro", [], "I am {playername}. I'm just passing by.", "close_window",[]],
[anyone|plyr, "reinforcements_intro", [], "I am {playername}. And I'm here to stop you from reaching your destination!.", "reinforcement_hostile",[]],
[party_tpl|pt_reinforcements,"reinforcement_hostile", [(faction_get_slot, ":faction_leader", "$g_encountered_party_faction",slot_faction_leader),
(str_store_troop_name, s9, ":faction_leader"),],
"What!? We are under the protection of {s9}!\ Be certain he will take vengance!", "reinforcements_attack",[]],
[anyone|plyr, "reinforcements_attack", [], "Fine let him! I will kill him after I've dealt with you!", "close_window",[(call_script, "script_make_kingdom_hostile_to_player", "$g_encountered_party_faction", -1),
(encounter_attack,0)]],
[anyone|plyr, "reinforcements_attack", [], "Allright, go! But you have not seen the last of me!", "close_window",[]],
(party_get_slot, ":center_culture", ":center_no", slot_center_culture),
(faction_get_slot, ":volunteer_troop", ":center_culture", slot_faction_tier_1_troop),
slot_village_recruits = 46
(party_set_slot,"p_castle_1", slot_center_siege_with_belfry, 0),
(party_set_slot,"p_castle_2", slot_center_siege_with_belfry, 1),
(party_set_slot,"p_castle_3", slot_center_siege_with_belfry, 0),
(party_set_slot,"p_castle_4", slot_center_siege_with_belfry, 0),
(party_set_slot,"p_castle_5", slot_center_siege_with_belfry, 0),
(party_set_slot,"p_castle_6", slot_center_siege_with_belfry, 0),
(party_set_slot,"p_castle_7", slot_center_siege_with_belfry, 1),
(party_set_slot,"p_castle_8", slot_center_siege_with_belfry, 1),
(party_set_slot,"p_castle_9", slot_center_siege_with_belfry, 1),
(party_set_slot,"p_castle_10", slot_center_siege_with_belfry, 0),
(party_set_slot,"p_castle_11", slot_center_siege_with_belfry, 1),
(party_set_slot, "p_village_1", slot_village_recruits, "trp_your_troop_for_village_1"),
(party_set_slot, "p_village_2", slot_village_recruits, "trp_your_troop_for_village_2"),
(party_set_slot, "p_village_3", slot_village_recruits, "trp_your_troop_for_village_3"),
(party_set_slot, "p_village_4", slot_village_recruits, "trp_your_troop_for_village_4"),
(party_set_slot, "p_village_5", slot_village_recruits, "trp_your_troop_for_village_5"),
(party_set_slot, "p_village_6", slot_village_recruits, "trp_your_troop_for_village_6"),
(party_set_slot, "p_village_7", slot_village_recruits, "trp_your_troop_for_village_7"),
(party_set_slot, "p_village_8", slot_village_recruits, "trp_your_troop_for_village_8"),
(party_set_slot, "p_village_9", slot_village_recruits, "trp_your_troop_for_village_9"),
(party_set_slot, "p_village_10", slot_village_recruits, "trp_your_troop_for_village_10"),
.......
(party_set_slot, "p_village_58", slot_village_recruits, "trp_your_troop_for_village_58"),
(party_set_slot, "p_village_59", slot_village_recruits, "trp_your_troop_for_village_59"),
(party_set_slot, "p_village_60", slot_village_recruits, "trp_your_troop_for_village_60"),
(store_script_param, ":center_no", 1),
(party_get_slot, ":player_relation", ":center_no", slot_center_player_relation),
(party_get_slot, ":volunteer_troop", ":center_no", slot_village_recruits), #added
(assign, ":volunteer_troop_tier", 1),
(store_div, ":tier_upgrades", ":player_relation", 10),
(try_for_range, ":unused", 0, ":tier_upgrades"),
(store_random_in_range, ":random_no", 0, 100),
(lt, ":random_no", 10),
(store_random_in_range, ":random_no", 0, 2),
(troop_get_upgrade_troop, ":upgrade_troop_no", ":volunteer_troop", ":random_no"),