В module_constants.py ставим этот код.Чтобы не путаться ставим под spt_village:
spt_outpost_one = 212
spt_outpost_two = 213
В module_game_menus.В меню лагеря где угодно.У меня например под "camp_recruit_prisoners" (вербовка пленных в свой отряд)
("camp_outposts",[], "Manage your outposts",
[(jump_to_menu, "mnu_outpost_manage")],
),
В module_game_menus в самый конец (до финальной скобки)
("outpost_manage", 0, "The Outpost Management Menu. ^^ Choose an action:", "none", [],
[("build_outpost", [], "Build an outpost. (2000 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(ge, ":gold_amount", 2000),
(eq, "$outpost_one_built", 0),
(troop_remove_gold, "trp_player", 2000),
(party_relocate_near_party, "p_outpost_one", "p_main_party"),
(store_faction_of_party, ":fac_player", "p_main_party"),
(call_script, "script_give_center_to_faction_aux", "p_outpost_one", ":fac_player"),
(call_script, "script_give_center_to_lord", "p_outpost_one", "trp_player", 0),
(party_set_slot, "p_outpost_one", slot_party_type, spt_outpost_one),
(enable_party, "p_outpost_one"),
(display_message, "@Outpost built!"),
(assign, "$outpost_one_built", 1),
(assign, "$outpost_one_level", 1),
(assign, "$outpost_one_patrol", 0),
(else_try),
(ge, ":gold_amount", 2000),
(eq, "$outpost_one_built", 1),
(eq, "$outpost_two_built", 0),
(troop_remove_gold, "trp_player", 2000),
(party_relocate_near_party, "p_outpost_two", "p_main_party"),
(store_faction_of_party, ":fac_player", "p_main_party"),
(call_script, "script_give_center_to_faction_aux", "p_outpost_two", ":fac_player"),
(call_script, "script_give_center_to_lord", "p_outpost_two", "trp_player", 0),
(party_set_slot, "p_outpost_two", slot_party_type, spt_outpost_two),
(enable_party, "p_outpost_two"),
(display_message, "@Outpost built!"),
(assign, "$outpost_two_built", 1),
(assign, "$outpost_two_level", 1),
(assign, "$outpost_two_patrol", 0),
(else_try),
(eq, "$outpost_one_built", 1),
(eq, "$outpost_two_built", 1),
(display_message, "@You have reached the outpost limit!"),
(else_try),
(lt, ":gold_amount", 2000),
(display_message, "@You don't have enough money to build an outpost!"),
(try_end),
]),
("camp_end_outpost", [], "Return to your camp.",
[(jump_to_menu, "mnu_camp")]
)]
),
("outpost_one", 0, "You pass across the barricades and enter the outpost. ^^ What do you want to do?", "none", [],
[
("walk_around_outpost_one", [],
"Walk around",
[
(try_begin),
(eq, "$outpost_one_level", 1),
(call_script, "script_setup_outpost_scene_one_one"),
(set_jump_mission, "mt_ai_training"),
# (jump_to_scene, "scn_outpost_one_one"),
(else_try),
(eq, "$outpost_one_level", 2),
(call_script, "script_setup_outpost_scene_one_two"),
(set_jump_mission, "mt_ai_training"),
# (jump_to_scene, "scn_outpost_one_two"),
(try_end),
(assign, "$talk_context", 0),
(faction_get_slot, ":tier_2_troop", "fac_player_supporters_faction", slot_faction_tier_2_troop),
(faction_get_slot, ":tier_3_troop", "fac_player_supporters_faction", slot_faction_tier_3_troop),
(modify_visitors_at_site, reg1),
(reset_visitors),
(try_begin),
(gt,":tier_2_troop", 0),
(assign,reg(0),":tier_3_troop"),
(assign,reg(1),":tier_3_troop"),
(assign,reg(2),":tier_2_troop"),
(assign,reg(3),":tier_2_troop"),
(else_try),
(assign,reg(0),"trp_vaegir_infantry"),
(assign,reg(1),"trp_vaegir_infantry"),
(assign,reg(2),"trp_vaegir_archer"),
(assign,reg(3),"trp_vaegir_footman"),
(try_end),
(shuffle_range,0,4),
(set_visitor,25,reg(0)),
(set_visitor,26,reg(1)),
(set_visitor,27,reg(2)),
(set_visitor,28,reg(3)),
(change_screen_mission),
]),
("upgrade_outpost_one", [(eq, "$outpost_one_level", 1)],
"Upgrade outpost (better patrols and defences)(2500 denars)",
[
(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(ge, ":gold_amount", 2500),
(troop_remove_gold, "trp_player", 2500),
(assign, "$outpost_one_level", 2),
(display_message, "@Outpost upgraded."),
(lt, ":gold_amount", 2500),
(display_message, "@You don't have enough money to upgrade the outpost"),
(try_end),
]),
("enlist_patrol_outpost_one", [(eq, "$outpost_one_patrol", 0)],
"Enlist a patrol (700 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(eq, "$outpost_one_built", 1),
(ge, ":gold_amount", 700),
(troop_remove_gold, "trp_player", 700),
(set_spawn_radius, 3),
(spawn_around_party, "p_outpost_one", "pt_outpost_patrol_one"),
(assign, ":outpost_patrol_one", reg(0)),
(store_faction_of_party, ":fac_player", "p_main_party"),
(party_set_faction, ":outpost_patrol_one", ":fac_player"),
(party_set_flags, ":outpost_patrol_one", pf_default_behavior, 0),
(party_set_ai_behavior, ":outpost_patrol_one", ai_bhvr_patrol_location),
(party_set_ai_object, ":outpost_patrol_one", "p_outpost_one"),
(display_message, "@Patrol enlisted!"),
(assign, "$outpost_one_patrol", 1),
(else_try),
(lt, ":gold_amount", 700),
(display_message, "@You don't have enough money to enlist a patrol."),
(try_end),
]),
("basic_training_patrol_one", [(eq, "$outpost_one_patrol", 1),
(eq, "$outpost_one_level", 2)],
"Initiate basic training for the patrol (800 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(eq, "$outpost_one_built", 1),
(ge, ":gold_amount", 800),
(troop_remove_gold, "trp_player", 800),
(party_add_members, "pt_outpost_patrol_one", "trp_nord_trained_footman"),
(party_remove_members, "pt_outpost_patrol_one", "trp_nord_footman"),
(display_message, "@Patrol trained!"),
(assign, "$outpost_one_patrol", 2),
(else_try),
(lt, ":gold_amount", 800),
(display_message, "@You don't have enough money to train the patrol."),
(try_end),
]),
("advanced_training_patrol_one", [(eq, "$outpost_one_patrol", 2),
(eq, "$outpost_one_level", 2)],
"Initiate advanced training for the patrol (1200 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(eq, "$outpost_one_built", 1),
(ge, ":gold_amount", 1200),
(troop_remove_gold, "trp_player", 1200),
(party_add_members, "pt_outpost_patrol_one", "trp_nord_warrior"),
(party_remove_members, "pt_outpost_patrol_one", "trp_nord_trained_footman"),
(display_message, "@Patrol trained!"),
(assign, "$outpost_one_patrol", 3),
(else_try),
(lt, ":gold_amount", 1200),
(display_message, "@You don't have enough money to train the patrol."),
(try_end),
]),
("expert_training_patrol_one", [(eq, "$outpost_one_patrol", 3),
(eq, "$outpost_one_level", 2)],
"Initiate expert training for the patrol (2500 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(eq, "$outpost_one_built", 1),
(ge, ":gold_amount", 2500),
(troop_remove_gold, "trp_player", 2500),
(party_add_members, "pt_outpost_patrol_one", "trp_nord_veteran"),
(party_remove_members, "pt_outpost_patrol_one", "trp_nord_warrior"),
(display_message, "@Patrol trained!"),
(assign, "$outpost_one_patrol", 4),
(else_try),
(lt, ":gold_amount", 2500),
(display_message, "@You don't have enough money to train the patrol."),
(try_end),
]),
("thorough_training_patrol_one", [(eq, "$outpost_one_patrol", 4),
(eq, "$outpost_one_level", 2)],
"Initiate thorough training for the patrol (3500 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(eq, "$outpost_one_built", 1),
(ge, ":gold_amount", 2500),
(troop_remove_gold, "trp_player", 2500),
(party_add_members, "pt_outpost_patrol_one", "trp_nord_champion"),
(party_remove_members, "pt_outpost_patrol_one", "trp_nord_veteran"),
(display_message, "@Patrol trained to maximum."),
(assign, "$outpost_one_patrol", 5),
(else_try),
(lt, ":gold_amount", 2500),
(display_message, "@You don't have enough money to train the patrol."),
(try_end),
]),
("demolish_outpost_one", [],
"Demolish your outpost. (500 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(ge, ":gold_amount", 500),
(eq, "$outpost_one_built", 1),
(disable_party, "p_outpost_one"),
(display_message, "@Outpost demolished."),
(assign, "$outpost_one_built", 0),
# (assign, "$outpost_one_level", 0), # Un-comment these to delete the outpost's improvements
# (assign, "$outpost_one_patrol", 0),
(change_screen_return),
(else_try),
(lt, ":gold_amount", 500),
(display_message, "@You don't have enough money to demolish the outpost!"),
(try_end),
]),
("station_garrison_in_outpost_one", [],
"Station a garrison here",
[
(change_screen_exchange_members, 1),
]),
("resume_travelling",[],"Resume travelling.",
[
(change_screen_return),
]
),
],
),
("outpost_two", 0, "You pass across the barricades and enter the outpost. ^^ What do you want to do?", "none", [],
[
("walk_around_outpost_two", [],
"Walk around",
[
(try_begin),
(eq, "$outpost_two_level", 1),
(call_script, "script_setup_outpost_scene_two_one"),
(set_jump_mission, "mt_ai_training"),
# (jump_to_scene, "scn_outpost_two_one"),
(else_try),
(eq, "$outpost_two_level", 2),
(call_script, "script_setup_outpost_scene_two_two"),
(set_jump_mission, "mt_ai_training"),
# (jump_to_scene, "scn_outpost_two_two"),
(try_end),
(assign, "$talk_context", 0),
(faction_get_slot, ":tier_2_troop", "fac_player_supporters_faction", slot_faction_tier_2_troop),
(faction_get_slot, ":tier_3_troop", "fac_player_supporters_faction", slot_faction_tier_3_troop),
(modify_visitors_at_site, reg1),
(reset_visitors),
(try_begin),
(gt,":tier_2_troop", 0),
(assign,reg(0),":tier_3_troop"),
(assign,reg(1),":tier_3_troop"),
(assign,reg(2),":tier_2_troop"),
(assign,reg(3),":tier_2_troop"),
(else_try),
(assign,reg(0),"trp_vaegir_infantry"),
(assign,reg(1),"trp_vaegir_infantry"),
(assign,reg(2),"trp_vaegir_archer"),
(assign,reg(3),"trp_vaegir_footman"),
(try_end),
(shuffle_range,0,4),
(set_visitor,25,reg(0)),
(set_visitor,26,reg(1)),
(set_visitor,27,reg(2)),
(set_visitor,28,reg(3)),
(change_screen_mission),
]),
("upgrade_outpost_two", [(eq, "$outpost_two_level", 1)],
"Upgrade outpost (better patrols and defences)(2500 denars)",
[
(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(ge, ":gold_amount", 2500),
(troop_remove_gold, "trp_player", 2500),
(assign, "$outpost_two_level", 2),
(display_message, "@Outpost upgraded."),
(else_try),
(lt, ":gold_amount", 2500),
(display_message, "@You don't have enough money to upgrade the outpost"),
(try_end),
]),
("enlist_patrol_outpost_two", [(eq, "$outpost_two_patrol", 0)],
"Enlist a patrol (700 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(eq, "$outpost_two_built", 1),
(ge, ":gold_amount", 700),
(troop_remove_gold, "trp_player", 700),
(set_spawn_radius, 3),
(spawn_around_party, "p_outpost_two", "pt_outpost_patrol_two"),
(assign, ":outpost_patrol_two", reg(0)),
(store_faction_of_party, ":fac_player", "p_main_party"),
(party_set_faction, ":outpost_patrol_two", ":fac_player"),
(party_set_flags, ":outpost_patrol_two", pf_default_behavior, 0),
(party_set_ai_behavior, ":outpost_patrol_two", ai_bhvr_patrol_location),
(party_set_ai_object, ":outpost_patrol_two", "p_outpost_two"),
(display_message, "@Patrol enlisted!"),
(assign, "$outpost_two_patrol", 1),
(else_try),
(lt, ":gold_amount", 700),
(display_message, "@You don't have enough money to enlist a patrol."),
(try_end),
]),
("basic_training_patrol_two", [(eq, "$outpost_two_patrol", 1),
(eq, "$outpost_two_level", 2)],
"Initiate basic training for the patrol (800 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(eq, "$outpost_two_built", 1),
(ge, ":gold_amount", 800),
(troop_remove_gold, "trp_player", 800),
(party_add_members, "pt_outpost_patrol_two", "trp_nord_trained_footman"),
(party_remove_members, "pt_outpost_patrol_two", "trp_nord_footman"),
(display_message, "@Patrol trained!"),
(assign, "$outpost_two_patrol", 2),
(else_try),
(lt, ":gold_amount", 800),
(display_message, "@You don't have enough money to train the patrol."),
(try_end),
]),
("advanced_training_patrol_two", [(eq, "$outpost_two_patrol", 2),
(eq, "$outpost_two_level", 2)],
"Initiate advanced training for the patrol (1200 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(eq, "$outpost_two_built", 1),
(ge, ":gold_amount", 1200),
(troop_remove_gold, "trp_player", 1200),
(party_add_members, "pt_outpost_patrol_two", "trp_nord_warrior"),
(party_remove_members, "pt_outpost_patrol_two", "trp_nord_trained_footman"),
(display_message, "@Patrol trained!"),
(assign, "$outpost_two_patrol", 3),
(else_try),
(lt, ":gold_amount", 1200),
(display_message, "@You don't have enough money to train the patrol."),
(try_end),
]),
("expert_training_patrol_two", [(eq, "$outpost_two_patrol", 3),
(eq, "$outpost_two_level", 2)],
"Initiate expert training for the patrol (2500 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(eq, "$outpost_two_built", 1),
(ge, ":gold_amount", 2500),
(troop_remove_gold, "trp_player", 2500),
(party_add_members, "pt_outpost_patrol_two", "trp_nord_veteran"),
(party_remove_members, "pt_outpost_patrol_two", "trp_nord_warrior"),
(display_message, "@Patrol trained!"),
(assign, "$outpost_two_patrol", 4),
(else_try),
(lt, ":gold_amount", 2500),
(display_message, "@You don't have enough money to train the patrol."),
(try_end),
]),
("thorough_training_patrol_two", [(eq, "$outpost_two_patrol", 4),
(eq, "$outpost_two_level", 2)],
"Initiate thorough training for the patrol (3500 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(eq, "$outpost_two_built", 1),
(ge, ":gold_amount", 2500),
(troop_remove_gold, "trp_player", 2500),
(party_add_members, "pt_outpost_patrol_two", "trp_nord_champion"),
(party_remove_members, "pt_outpost_patrol_two", "trp_nord_veteran"),
(display_message, "@Patrol trained to maximum."),
(assign, "$outpost_two_patrol", 5),
(else_try),
(lt, ":gold_amount", 2500),
(display_message, "@You don't have enough money to train the patrol."),
(try_end),
]),
("demolish_outpost_two", [],
"Demolish your outpost. (500 denars)",
[(store_troop_gold, ":gold_amount", "trp_player"),
(try_begin),
(ge, ":gold_amount", 500),
(eq, "$outpost_two_built", 1),
(disable_party, "p_outpost_one"),
(display_message, "@Outpost demolished."),
(assign, "$outpost_two_built", 0),
# (assign, "$outpost_two_level", 0), # Un-comment these to delete the outpost's improvements
# (assign, "$outpost_two_patrol", 0),
(change_screen_return),
(else_try),
(lt, ":gold_amount", 500),
(display_message, "@You don't have enough money to demolish the outpost!"),
(try_end),
]),
("station_garrison_in_outpost_two", [],
"Station a garrison here",
[
(change_screen_exchange_members, 1),
]),
("resume_travelling",[],"Resume travelling.",
[
(change_screen_return),
]
),
],
),