本帖最后由 快乐风猫 于 2024-3-10 15:12 编辑
给每个城市和城堡简单的绑定一个巡逻队,赶赶强盗和没士兵的傻领主烧村,这里是强制中心只要有钱就刷巡逻队
一个新的slot槽
两个脚本,第一个是按照势力模板给部队添加相应的正规军,第二个是主体,排除村庄和玩家,村庄太多了,每个都刷巡逻队的话有点卡,至于费用,直观点就直接设置多少钱一支队伍,深入点就获取部队兵种工资来扣钱。
- #王国小部队添加士兵
- ("cf_reinforce_patrol",
- [
- (store_script_param_1, ":party_no"),
- (store_script_param_2, ":faction"),
-
- (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),
- (store_random_in_range, ":rand", 0, 100),
- (try_begin),
- (lt, ":rand", 50),
- (assign, ":party_template", ":party_template_a"),
- (else_try),
- (lt, ":rand", 75),
- (assign, ":party_template", ":party_template_b"),
- (else_try),
- (assign, ":party_template", ":party_template_c"),
- (try_end),
- (try_begin),
- (party_add_template, ":party_no", ":party_template"),
- (try_end),
- ]),
- #设置中心巡逻队
- ("set_up_patrol_npc",
- [
- (try_for_range, ":center_no", centers_begin, centers_end),#循环中心
- (neg|party_slot_eq, ":center_no", slot_party_type, spt_village),#排除村庄
-
- (store_faction_of_party, ":faction", ":center_no"),
- (party_get_slot, ":lord_troop", ":center_no", slot_town_lord),#获取领主
- (is_between, ":lord_troop", active_npcs_begin, active_npcs_end),#设置范围,排除玩家的领地
- (party_get_slot, ":xunluo", ":center_no", slot_town_xunluo),#获取中心是否有巡逻队
- (party_get_slot, ":center_wealth", ":center_no", slot_town_wealth),#获取中心钱
- (gt,":lord_troop",0),#是有领主的
- (eq,":xunluo",-1),#没有巡逻队
- (ge,":center_wealth",3000),#有足够的钱付工资
- (set_spawn_radius,1),#生产半径
- (spawn_around_party,":center_no","pt_kingdom_patrol_party"),#在中心刷出巡逻队
- (assign, ":xunluo", reg0),
- (party_set_faction,":xunluo",":faction"),#设置巡逻队阵营
- (str_store_party_name,s10,":center_no"),
- (party_set_name, ":xunluo", "str_s10_patrol"),
- (party_set_flags, ":xunluo", pf_default_behavior, 0),#默认行为
- (party_set_ai_behavior, ":xunluo", ai_bhvr_patrol_location),#设置行为为巡逻
- (party_set_ai_object,":center_no",":xunluo"),#设置巡逻目标为当前中心
- (party_set_ai_patrol_radius,":xunluo",1),#巡逻半径为1公里
- (call_script, "script_cf_reinforce_patrol", ":xunluo",":faction"),#给巡逻队添加士兵
- (call_script, "script_cf_reinforce_patrol", ":xunluo",":faction"),#给巡逻队添加士兵
- (call_script, "script_cf_reinforce_patrol", ":xunluo",":faction"),#给巡逻队添加士兵
- (val_sub,":center_wealth",3000),
- (party_set_slot, ":center_no", slot_town_wealth, ":center_wealth"),#付钱建立巡逻队
- (party_set_slot, ":center_no", slot_town_xunluo, ":xunluo"),#设置中心已有巡逻队
- (try_end),
- ]),
复制代码
本来把判定巡逻队被击败的加在战斗脚本里的,但感觉还是加成触发器更省事儿
- #巡逻队战败 begin
- # (try_begin),
- # (try_for_range, ":zhongxin", centers_begin, centers_end),#循环中心
- # (neg|party_slot_eq, ":zhongxin", slot_town_lord, "trp_player"),#不是玩家的中心
- # (party_get_slot, ":patrol",":zhongxin", slot_town_xunluo),#获取中心的巡队
- # (eq, ":root_defeated_party", ":patrol"),#如果中心巡逻队被击败
- # (party_set_slot, ":zhongxin", slot_town_xunluo, -1),#设置中心无巡逻队
- # (try_end),
- # (try_end),
- #巡逻队战败 end
复制代码 两个新的st,
- #中心刷新巡逻队1
- (1,
- [
- (try_for_range, ":centers", centers_begin, centers_end),
- (party_get_slot, ":xunluo", ":centers", slot_town_xunluo),#获取中心的巡逻队
- (neg|party_is_active, ":xunluo"),#是不活跃的(被击败的)
- (party_set_slot, ":centers", slot_town_xunluo, -1),#设置中心没有巡逻队
- (try_end),
- ]),
- #中心刷新巡逻队2
- (24*3,
- [
- (call_script, "script_set_up_patrol_npc"),#刷新巡逻队
-
- ]),
复制代码
game_menu里搜castle_wait,在上面新加一个选项,这里是玩家领地刷巡逻队的地方
- ("form_a_patrol",
- [
- (this_or_next|party_slot_eq,"$current_town",slot_party_type, spt_town),#是城镇
- (party_slot_eq,"$current_town",slot_party_type, spt_castle),#是城堡
- (party_slot_eq, "$current_town", slot_town_lord, "trp_player"),
- (party_slot_eq,"$current_town",slot_town_xunluo, -1),#没有巡逻队
- (store_troop_gold,":gold","trp_player"),
- (ge,":gold",3000),
- ],
- "Form a patrol.",
- [
- (set_spawn_radius,1),#生产半径
- (spawn_around_party,"$current_town","pt_kingdom_patrol_party"),#在中心刷出巡逻队
- (assign, ":xunluo", reg0),
- (store_faction_of_party, ":faction", "$current_town"),
- (party_set_faction,":xunluo",":faction"),#设置巡逻队阵营
- (str_store_party_name,s10,"$current_town"),
- (party_set_name, ":xunluo", "str_s10_patrol"),
- (party_set_flags, ":xunluo", pf_default_behavior, 0),#默认行为
- (party_set_ai_behavior, ":xunluo", ai_bhvr_patrol_location),#设置行为为巡逻
- (party_set_ai_object,"$current_town",":xunluo"),#设置巡逻目标为当前中心
- (party_set_ai_patrol_radius,":xunluo",1),#巡逻半径为1公里
- (call_script, "script_cf_reinforce_patrol", ":xunluo"),#给巡逻队添加士兵
- (call_script, "script_cf_reinforce_patrol", ":xunluo"),#给巡逻队添加士兵
- (call_script, "script_cf_reinforce_patrol", ":xunluo"),#给巡逻队添加士兵
- (party_set_slot, "$current_town", slot_town_xunluo, ":xunluo"),#设置中心已有巡逻队
- ]),
复制代码
汉化
mno_form_a_patrol|组 建 巡 逻 队 。
哦还要再game_start里设置中心的巡逻队状况
- (try_for_range, ":zhongxin", centers_begin, centers_end),
- (party_set_slot, ":zhongxin", slot_town_xunluo, -1),
- (try_end),
复制代码
|