骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索

将俘虏转化为奴隶兵

查看数: 5738 | 评论数: 10 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-1-14 18:05

正文摘要:

本帖最后由 ghmhcgm 于 2024-1-14 18:16 编辑 这是我的帖子武装士兵修改版。(只需付钱) - MOD制作技术区 - 骑马与砍杀中文站论坛 - Powered by Discuz! (mountblade.com.cn)的拓展,用队伍里的俘虏来换取奴隶兵 ...

回复

冷月无音 发表于 2024-9-18 18:12:57
ukatoilol 发表于 2024-9-13 12:07
你的代码实现不了移除俘虏的功能.
(party_remove_members,,,),
这个函数需要参数包括(party_remove_member ...

收到,我试试!感谢大佬!
ukatoilol 发表于 2024-9-13 12:07:31
本帖最后由 ukatoilol 于 2024-9-13 12:30 编辑

你的代码实现不了移除俘虏的功能.
(party_remove_members,<party_id>,<troop_id>,<number>),
这个函数需要参数包括(party_remove_members, 队伍ID, 俘虏的兵种ID, 移除的数量),
你的代码里就没有获取过"俘虏的兵种ID"这个必要的参数

大概的写了下实现代码思路,不保证运行不报错

  1. (try_for_parties,":party"), # 循环所有队伍
  2.    (party_get_num_prisoner_stacks, ":num_stacks", ":party"), # 获取队伍中俘虏的总数,包含英雄
  3.    (ge, ":num_stacks", 5), # 队伍的俘虏数量大等于5个
  4.    (assign, ":removed_cnt", 0) # 记录已移除俘虏的数量
  5.    (try_for_range_backwards, ":i_stack", 0, ":num_stacks"), # 循环俘虏
  6.      (lt, ":removed_cnt", 5), # 移除数量不超过5个
  7.      (party_prisoner_stack_get_troop_id, ":troop_no", ":party", ":i_stack"),# 获取俘虏的兵种ID
  8.      (neg|troop_is_hero, ":troop_no"),# 俘虏不是英雄
  9.      (party_remove_prisoners, ":party", ":troop_no", 1),# 移除1个俘虏
  10.      (val_add, ":removed_cnt", 1), # 已移除数量+1
  11.    (try_end),
  12.    (gt, ":removed_cnt", 0), # 是否至少移除了一个俘虏
  13.    (party_add_members,":party","trp_vill_nubing",1),#得到一个奴隶兵
  14. (try_end),
复制代码



冷月无音 发表于 2024-9-13 00:19:41
ukatoilol 发表于 2024-9-12 10:42
(try_for_parties,":var_0"),
    (party_get_template_id,":var_1",":var_0"),
    (eq,":var_1","pt_king ...

感谢指点,我改动了一下,现在添加奴兵的功能正常了,但是不能正常的减少俘虏数量,请问大佬有头绪吗
(try_for_parties,":var_0"),
    (party_get_num_prisoners,":var_5",":var_1"),
    (ge,":var_5",5),
    (party_remove_prisoners,":var_0",":var_5",5),
    (party_add_members,":var_0","trp_vill_nubing",5),
(try_end),
ukatoilol 发表于 2024-9-12 10:42:17
(try_for_parties,":var_0"),
    (party_get_template_id,":var_1",":var_0"),
    (eq,":var_1","pt_kingdom_hero_party"),  # 这条语句判断只有玩家战队才会继续往下执行
    (party_get_num_prisoners,":var_5",":var_1"),
    (ge,":var_5",5),
    (party_remove_prisoners,":var_1",":var_5",5),
    (party_add_members,":var_1","trp_vill_nubing",5),
(try_end),
冷月无音 发表于 2024-9-12 00:02:51
请问大佬,我借鉴你的代码想用魔球做个能给大地图上所有部队定时将俘虏减少转化为奴兵的触发器,但是一直无法生效,能麻烦帮忙看一下吗
(try_for_parties,":var_0"),
    (party_get_template_id,":var_1",":var_0"),
    (eq,":var_1","pt_kingdom_hero_party"),
    (party_get_num_prisoners,":var_5",":var_1"),
    (ge,":var_5",5),
    (party_remove_prisoners,":var_1",":var_5",5),
    (party_add_members,":var_1","trp_vill_nubing",5),
(try_end),
ghmhcgm 发表于 2024-1-16 23:44:01
快乐风猫 发表于 2024-1-16 12:59
("camp_national_army",[  
          (party_get_num_prisoners, ":prisoner", "p_main_party"), #检测俘 ...

谢谢大佬,学到东西了。
快乐风猫 发表于 2024-1-16 12:59:08
本帖最后由 快乐风猫 于 2024-1-16 13:02 编辑
ghmhcgm 发表于 2024-1-14 22:01
请问需要怎么改,能教我一下吗?或者说说要用哪个条件语句,比如说不用循环也可以的那种。我还没学会py, ...

("camp_national_army",[  
          (party_get_num_prisoners, ":prisoner", "p_main_party"), #检测俘虏数量
          (ge, ":prisoner", 5),#数量大于5
      ],"army.",
       [(party_get_num_prisoner_stacks, ":num_stacks", "p_main_party"),
          (try_for_range_backwards, ":i_stack", 0, ":num_stacks"),
           (party_prisoner_stack_get_troop_id, ":troop_no", "p_main_party", ":i_stack"),# 获取囚犯首领id
           (neg|troop_is_hero, ":troop_no"),# 不是英雄
           (val_add, ":troop_no", 1),
          (try_begin),
           (ge,":num_stacks",5),
           (party_remove_prisoners, "p_main_party", ":num_stacks", 5),#移除五个俘虏
           (party_add_members,"p_main_party","trp_swadian_man_at_arms",1),#得到一个奴隶兵
          (else_try),
           (display_message,"@no_injuries",0xFFFFFFFF),
           (jump_to_menu,"mnu_camp"),
          (try_end),
          (try_end),

       ),


如果有多个 (else_try),判断条件的话 必须要 (try_begin),开始,最后(try_end),来结束,还有try_for_range也需要(try_end),来结束循环,有多少try_for_range就要多少个(try_end),来结束循环

评分

参与人数 1第纳尔 +10 收起 理由
幼稚园殺手 + 10 乐于助人!

查看全部评分

鲜花鸡蛋

ghmhcgm  在2024-1-16 23:44  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
ghmhcgm 发表于 2024-1-14 22:01:39
快乐风猫 发表于 2024-1-14 20:55
循环问题啊 ,你漏了

请问需要怎么改,能教我一下吗?或者说说要用哪个条件语句,比如说不用循环也可以的那种。我还没学会py,只知道一些有注释过条件语句,谢谢。
快乐风猫 发表于 2024-1-14 20:55:09

循环问题啊 ,你漏了

评分

参与人数 2第纳尔 +20 收起 理由
幼稚园殺手 + 10 乐于助人!
Aomine Daiki + 10 乐于助人!

查看全部评分

鲜花鸡蛋

ghmhcgm  在2024-1-14 22:01  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
ghmhcgm 发表于 2024-1-14 18:11:30
本帖最后由 ghmhcgm 于 2024-1-14 18:14 编辑

忘记发图了

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

GMT+8, 2026-1-14 16:35 , Processed in 0.127753 second(s), 35 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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