骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 1843|回复: 3

[功能与代码] 武装士兵修改版。(只需付钱)

[复制链接]

3

主题

38

回帖

22

积分

随仆

Rank: 1

UID
3280741
第纳尔
277
精华
0
互助
2
荣誉
0
贡献
0
魅力
1
注册时间
2021-10-21
鲜花(1) 鸡蛋(0)
发表于 2024-1-14 00:11:38 | 显示全部楼层 |阅读模式
原创是【新提醒】武装士兵(物品兑换兵种) - MOD制作区存档 - 骑马与砍杀中文站论坛 - Powered by Discuz! (mountblade.com.cn)这个大佬发的教学,我给稍稍改了,如果侵权请联系我删除。修改后不用自己出装备,只要付钱就行了。(相当于钱是来买装备的)而且,我这个需要两位新兵才能换一名高级兵,相当于裁撤老弱,挑选精华了。但有个bug,这代码会向下取整,就是说只有一位新兵时会被诈骗掉,希望有大佬能指出这bug怎么修复。现在进入正题。同时修改思路我还参考了这位大佬的帖子【新提醒】医治士兵(7月15修改) - MOD制作资料区 - 骑马与砍杀中文站论坛 - Powered by Discuz! (mountblade.com.cn)
在module_game_menus.py中加入这几段代码:

      ("camp_arms",[],"arms.",
       [(jump_to_menu,"mnu_camp_arms"),
        ]
       ),##添加到营地菜单

然后到menu最后]之前添加。
  ("camp_arms",0,
   "what do you want to the armed forces?",
   "none",
   [
     ],
    [("camp_national_army",[
    (main_party_has_troop,"trp_swadian_recruit")#拥有兵种
      ],"national army.",

       [
       (party_count_companions_of_type,reg1,"p_main_party","trp_swadian_recruit"),#获取兵种数量
         (try_begin),
          (assign, ":limit", reg1),
          (store_div, ":zong", ":limit", 2),#兵种数量除以2
          (assign, reg0, ":zong"),
          (assign, ":sheng", 500),#升一个兵500块
          (store_mul,":xiao",reg0,":sheng"),#需要的总金额
          (store_troop_gold,":player_gold_now","trp_player"),#获取玩家的钱
          (ge,":player_gold_now",":xiao"),
          (troop_remove_gold, "trp_player", ":xiao"),#扣钱
          (party_add_members,"p_main_party","trp_swadian_man_at_arms",reg0),#移除新兵
          (party_remove_members,"p_main_party","trp_swadian_recruit",reg1),#加入老兵
         (else_try),
           (jump_to_menu,"mnu_camp"),
           (display_message,"@no_money",0xFFFFFFFF),
        (try_end),  

       ),
     ("camp_money_to_morale_back",[],"Go back.",#返回
       [(jump_to_menu, "mnu_camp"),
        ]
       ),
    ]
),

以上为代码部分,标红的代码是我改的,剩下都是原创大佬自己的代码。

29

主题

751

回帖

574

积分

骑士

Rank: 4Rank: 4

UID
3322408
第纳尔
1748
精华
0
互助
68
荣誉
0
贡献
0
魅力
6
注册时间
2022-2-3
鲜花(57) 鸡蛋(0)
发表于 2024-1-14 02:51:11 来自手机 | 显示全部楼层
修复你说的那个地方,只需要判断一下“:zong”是不是大于零即可。来自: Android客户端

鲜花鸡蛋

ghmhcgm  在2024-1-14 11:52  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下

3

主题

38

回帖

22

积分

随仆

Rank: 1

UID
3280741
第纳尔
277
精华
0
互助
2
荣誉
0
贡献
0
魅力
1
注册时间
2021-10-21
鲜花(1) 鸡蛋(0)
 楼主| 发表于 2024-1-14 11:52:05 | 显示全部楼层
112233lyh 发表于 2024-1-14 02:51
修复你说的那个地方,只需要判断一下“:zong”是不是大于零即可。

谢谢指点,现在为修改后的。注意这代码会向下取整,但只有一个新兵时不会被诈骗。
       (party_count_companions_of_type,reg1,"p_main_party","trp_swadian_recruit"),#获取兵种数量
         (try_begin),
          (assign, ":limit", reg1),
          (store_div, ":zong", ":limit", 2),#兵种数量除以2
          ###
          (ge, ":zong", 1)
          ###
          (assign, reg0, ":zong"),
          (assign, ":sheng", 500),#升一个兵500块
          (store_mul,":xiao",reg0,":sheng"),#需要的总金额
          (store_troop_gold,":player_gold_now","trp_player"),#获取玩家的钱
          (ge,":player_gold_now",":xiao"),
          (troop_remove_gold, "trp_player", ":xiao"),#扣钱
          (party_add_members,"p_main_party","trp_swadian_man_at_arms",reg0),#移除新兵
          (party_remove_members,"p_main_party","trp_swadian_recruit",reg1),#加入老兵
         (else_try),
           (jump_to_menu,"mnu_camp"),
           (display_message,"@no_money",0xFFFFFFFF),
        (try_end),  

27

主题

218

回帖

259

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1483
精华
0
互助
37
荣誉
0
贡献
0
魅力
256
注册时间
2021-3-14
鲜花(48) 鸡蛋(0)
发表于 2024-1-18 17:00:41 | 显示全部楼层
不太灵活 你可以获取兵种号来概括所有正规军来升级   这样就不是固定的升级trp_swadian_man_at_arms成trp_swadian_recruit或者其他什么兵种了,这样不管玩家在哪个阵营,只要检测到队伍里有这个阵营文化的低级兵种就可以升级对应的高级兵,切换阵营后也同样自动切换兵种当然这只是我个人的想法
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2024-12-27 12:18 , Processed in 0.108165 second(s), 22 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表