骑马与砍杀中文站论坛

标题: 【狂人的知识】改进的私兵 [打印本页]

作者: 奥杜因阿卡托什    时间: 2024-10-14 08:53
标题: 【狂人的知识】改进的私兵
本帖最后由 奥杜因阿卡托什 于 2024-10-14 10:21 编辑

大家好啊,我是奥内的手,今天来点大家想看的东西。
这是一个集中式使用slot的私兵添加(不是部队模板,而是直接增加到部队里),是https://bbs.mountblade.com.cn/thread-2091625-1-1.html的改进版。
改进点有:
1.所有NPC适用,不仅包括领主,还包括有些mod里会有的领主伙伴NPC,甚至可以包括主角和主角的手下,乃至一般小兵。
2.所有部队适用,不仅包括领主部队,哪怕这人便乘野怪领主商队首领了也能适用(当然俘虏不适用)。另外,领主在给自己部队添加私兵的同时也会给所管理的城镇添加。
3.更加高效,占用算力更少。
这个东西是魔球适用的(或许)。
先加constant
  1. #私兵
  2. slot_bodygaurd_troop_1 = 163
  3. slot_bodygaurd_troop_2 = 164
复制代码

再加一个脚本。

  1. #录入私兵
  2. #比如123|041|1024就是1024号兵种作为私兵,每次增员41个最多123人。
  3.   ("bodyguard_troop_import", [
  4.       (store_script_param, ":lord_troop_no", 1),
  5.       (store_script_param, ":bodyguard_troop_no", 2),
  6.       (store_script_param, ":num_increase", 3), #每次增员的数量
  7.       (store_script_param, ":num_limit", 4), #上限
  8.       (store_script_param, ":slot_no", 5), #槽1或者2

  9.       (val_mul, ":num_increase", 10000),
  10.       (val_mul, ":num_limit", 10000000),
  11.       (val_add, ":num_limit", ":num_increase"),
  12.       (val_add, ":bodyguard_troop_no", ":num_limit"),
  13.       (val_sub, ":slot_no", 1),
  14.       (val_add, ":slot_no", slot_bodygaurd_troop_1),
  15.       (troop_set_slot, ":lord_troop_no", ":slot_no", ":bodyguard_troop_no"),
  16.     ]),
复制代码
然后开局的时候录入一次,比如写在那个trigger第一个触发器,那个弹教程的下面。
  1. 形如
  2.      (call_script, "script_bodyguard_troop_import", "trp_kingdom_1_lord", "trp_holy_dragoon_knight", 2, 6, 1), #第1种私兵每次增员2个最多6个
  3.      (call_script, "script_bodyguard_troop_import", "trp_kingdom_1_lord", "trp_crown_knight", 4, 120, 2), #第2种私兵每次增员4个最多120个。
复制代码
最后找个触发器写上
  1.   (24,
  2.    [
  3.        (assign, ":current_modula", "$g_kingdom_prisoner_modula"), #降压用
  4.        (val_add, "$g_kingdom_prisoner_modula", 1),
  5.        (try_begin),
  6.           (eq, "$g_kingdom_prisoner_modula", 7),
  7.           (assign, "$g_kingdom_prisoner_modula", 0),
  8.        (try_end),

  9.        (try_for_parties, ":center_no"),
  10.          (store_mod, ":center_modula", ":center_no", 7),
  11.          (eq, ":center_modula", ":current_modula"),

  12.          (try_begin),
  13.             (is_between, ":center_no", centers_begin, centers_end), #据点增加私兵的模式:领主不在城镇里,也会给城镇增加私兵
  14.             (party_get_slot, ":troop_no", ":center_no", slot_town_lord),
  15.             (gt, ":troop_no", 0), #暂不包括玩家
  16.             (try_for_range, ":slot_no", 0, 2),
  17.                (val_add, ":slot_no", slot_bodygaurd_troop_1),
  18.                (troop_get_slot, ":bodyguard_troop_no", ":troop_no", ":slot_no"),
  19.                (gt, ":bodyguard_troop_no", 0),
  20.                (store_div, ":num_limit", ":bodyguard_troop_no", 10000000),#上限
  21.                (val_mod, ":bodyguard_troop_no", 10000000),
  22.                (store_div, ":num_add", ":bodyguard_troop_no", 10000),#增员数额
  23.                (val_mod, ":bodyguard_troop_no", 10000),
  24.                (party_count_members_of_type, ":cur_num", ":center_no", ":bodyguard_troop_no"),
  25.                (lt, ":cur_num", ":num_limit"), #可以添加
  26.                (try_begin),
  27.                   (val_sub, ":num_limit", ":cur_num"),
  28.                   (lt, ":num_limit", ":num_add"),
  29.                   (assign, ":num_add", ":num_limit"),#剩余员额不足以完整增员一次
  30.                (try_end),
  31.                (party_add_members, ":center_no", ":bodyguard_troop_no", ":num_add"),#添加
  32.             (try_end),
  33.          (try_end),

  34.          (party_get_num_companion_stacks, ":num_companion_stacks",":center_no"), #直接给所在部队增加私兵的模式
  35.          (try_for_range, ":stack_no", 0, ":num_companion_stacks"),
  36.             (party_stack_get_troop_id, ":stack_troop",":center_no",":stack_no"),
  37.             (troop_is_hero, ":stack_troop"), #英雄单位
  38.             (try_for_range, ":slot_no", 0, 2),
  39.                (val_add, ":slot_no", slot_bodygaurd_troop_1),
  40.                (troop_get_slot, ":bodyguard_troop_no", ":stack_troop", ":slot_no"),
  41.                (gt, ":bodyguard_troop_no", 0),
  42.                (store_div, ":num_limit", ":bodyguard_troop_no", 10000000),#上限
  43.                (val_mod, ":bodyguard_troop_no", 10000000),
  44.                (store_div, ":num_add", ":bodyguard_troop_no", 10000),#增员数额
  45.                (val_mod, ":bodyguard_troop_no", 10000),
  46.                (party_count_members_of_type, ":cur_num", ":center_no", ":bodyguard_troop_no"),
  47.                (lt, ":cur_num", ":num_limit"), #可以添加
  48.                (try_begin),
  49.                   (val_sub, ":num_limit", ":cur_num"),
  50.                   (lt, ":num_limit", ":num_add"),
  51.                   (assign, ":num_add", ":num_limit"),#剩余员额不足以完整增员一次
  52.                (try_end),
  53.                (party_add_members, ":center_no", ":bodyguard_troop_no", ":num_add"),#添加
  54.             (try_end),
  55.          (try_end),
  56.        (try_end),
  57.     ]),
复制代码
建议找个24小时的触发器,因为我这里用了https://bbs.mountblade.com.cn/thread-2096862-1-1.html的降压方法,每次处理七分之一的部队。所以24小时一次就是7天完成一轮。




MHY8HNJ0Q@KHUD$~]FDNL7V_tmb.jpg
b447d002ef712b6f8dff9ff81b4cd267.jpg

作者: 战争傀儡阿格兰    时间: 2024-10-14 09:43
沙发!支持一波!
作者: 112233lyh    时间: 2024-10-14 11:13
其他一些国家的私兵。
看看能不能找一个人帮我录入一下私兵的数据,群号344394142
20241014111313front2_0_3322408_Fhj0gVGuPIgUcol8P6dzKP9Axw-z.jpg
20241014111313front2_0_3322408_FrFHT_rWtbCQ1I0ufhaJNuErwoWY.jpg
20241014111313front2_0_3322408_Fo8uOOyVwGBZ1uJTtFBkBUFyyg7V.jpg

作者: huagao    时间: 2024-10-14 12:46
这就是你们拿手机拍了一早上的屏的原因喔?
作者: 112233lyh    时间: 2024-10-14 17:22
huagao 发表于 2024-10-14 12:46
这就是你们拿手机拍了一早上的屏的原因喔?

玛德,只有夜幕。
作者: 黑暗路西法    时间: 2024-10-15 12:29
生产资料公有化,是真嘬
作者: 英勇的苹果    时间: 2024-10-15 16:57
前来膜拜大佬们!




欢迎光临 骑马与砍杀中文站论坛 (https://bbs.mountblade.com.cn/) Powered by Discuz! X3.4