骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

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

[求助] 为什么这段代码在加上用troop_is_hero进行判断后就失效了?

[复制链接]

2

主题

157

回帖

88

积分

扈从

Rank: 2Rank: 2

UID
518607
第纳尔
1258
精华
0
互助
6
荣誉
1
贡献
10
魅力
2
注册时间
2011-9-23

汉匈决战正版勋章元老骑士勋章

QQ
鲜花(1) 鸡蛋(0)
发表于 2024-8-3 00:47:57 | 显示全部楼层 |阅读模式
打算用魔球的武器触发器写个特殊效果,通过距离与敌人防御状态模拟近战命中,并通过角色属性来判断是否魅惑成功(基础概率30+进攻方等级+进攻方魅力值)-(防守方等级+防守方智力值) 。

变量0为攻击方
变量1为敌方(遍历)
变量2为双方距离
变量3和变量4为双方party id
变量5为敌方的troop id
变量6为攻击方的Team
变量7-10预留存储攻击方概率变量(比如可以增加俘虏等级之类的继续加权),当前7存储等级,8存储魅力,10存储综合运算后的概率基数(即攻击方概率的和)
变量11-15预留存储敌方概率变量,当前11存储等级,12存储智力,15存储最终计算后的概率基数(即攻击方-敌方的差)
变量16存储用于判断概率是否生效的随机数(范围0 - 100,整数型)
变量20存储agents防守状态,0为未防御,1为闪避,2为格挡

  1. (store_trigger_param_1,":var_0"),#变量1=攻击方角色
  2. (agent_get_party_id,":var_3",":var_0"),#变量3=变量1的队伍ID
  3. (1770,":var_6",":var_0"),#变量6=变量0的队伍
  4. (assign,":var_10",30),#变量10=30
  5. (2171,":var_7",":var_0"),#变量7=变量0的等级
  6. (store_add,":var_10",":var_10",":var_7"),#变量10 = 变量10 + 变量7
  7. (2172,":var_8",":var_0",3),#变量8 = 变量0的魅力
  8. (store_add,":var_10",":var_10",":var_8"),#变量10 = 变量10 + 变量8 (即30+等级+魅力)
  9. (try_for_agents,":var_1"),#遍历所有agents,存入变量1
  10.     (1712,":var_1"),#确认agents是否激活有效
  11.     (1704,":var_1"),#确认agents是否为人类
  12.     (1702,":var_1"),#确认agents是否活着
  13.     (neg|1706,":var_1"),#确认agents非盟友
  14.     (agent_get_position,pos2,":var_1"),#获取agents位置,存入pos2
  15.     (get_distance_between_positions_in_meters,":var_2",pos1,pos2),#获得pos1和pos2之间的距离,单位米
  16.     (agent_get_party_id,":var_4",":var_1"),#获取agents ID,存入变量4
  17.     (agent_get_troop_id,":var_5",":var_1"),#获取agents的troop ID,存入变量5
  18.     (assign,":var_15",":var_10"),#变量15 = 变量10
  19.     (2171,":var_11",":var_1"),#变量11 = 变量1的等级
  20.     (store_sub,":var_15",":var_15",":var_11"),#变量15 = 变量15 - 等级
  21.     (2172,":var_12",":var_1",2),#智力
  22.     (store_sub,":var_15",":var_15",":var_12"),#变量15 = 变量15 - 智力
  23.     (store_random_in_range,":var_16",0,100),#在0-100中随机获得一个随机数(整数)
  24.     (try_begin),
  25. <font color="#ff0000">        (neq|1507,":var_5"),#确认agents不是英雄(NPC、领主)</font>
  26.         (neg|gt,":var_2",1),#变量2 即pos1和pos2之间的距离小于等于1 用于判断近战,根据武器长度设置
  27.         (neg|eq,":var_3",":var_4"),#变量3不等于变量4 即agents和攻击方角色不是一个队伍
  28.         (1764,":var_20",":var_1"),#获取agents的防守行动,存入变量20,
  29.         (try_begin),
  30.             (eq,":var_20",0),#agents未防御
  31.             (ge,":var_15",":var_16"),#变量15大于等于变量14 变量15为运算后的概率,大于0-100生成的随机数以判断是否触发效果
  32.             (1771,":var_1",":var_6"),#设置变量1的阵营为变量6 即不同阵营的敌人变为友方阵营
  33.             (1732,":var_1"),#强制重置agents行为
  34.             (party_add_prisoners,":var_3",":var_5",1),#将被魅惑的敌人战后当成俘虏
  35.             (party_remove_members,":var_4",":var_5",1),#将被魅惑的敌人移除原本队伍,防止战后重新开战,即便上一行未能成功加入俘虏名单。
  36.         (else_try),
  37.             (eq,":var_20",1),#agents在闪避
  38.         (else_try),
  39.             (eq,":var_20",2),#agents在防御
  40.         (try_end),
  41.     (try_end),
  42. (try_end),
复制代码
其中(neq|1507,":var_5"),也就是troop_is_hero无论改是或否都会导致后续代码不生效。

在预想中该代码是预防对方领主或特殊NPC被魅惑并加入我方的代码,返回值按介绍应该是True或False。
删除该行代码后整段代码都可以正常运行。
因为泛用性的考虑个人不想给(try_for_agents)加上范围,毕竟许多MOD和mod的更新都可能会导致troop列表的变动,因此来求助神通广大的朋友。

27

主题

218

回帖

259

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1483
精华
0
互助
37
荣誉
0
贡献
0
魅力
256
注册时间
2021-3-14
鲜花(48) 鸡蛋(0)
发表于 2024-8-3 01:05:22 | 显示全部楼层
你获取agent的troop ID了吗  用这个你要先获取它的兵种ID

2

主题

157

回帖

88

积分

扈从

Rank: 2Rank: 2

UID
518607
第纳尔
1258
精华
0
互助
6
荣誉
1
贡献
10
魅力
2
注册时间
2011-9-23

汉匈决战正版勋章元老骑士勋章

QQ
鲜花(1) 鸡蛋(0)
 楼主| 发表于 2024-8-3 01:05:57 | 显示全部楼层
哦 啧没注意,写成neq了,没反应过来,应该是neg
眼瞎了

2

主题

157

回帖

88

积分

扈从

Rank: 2Rank: 2

UID
518607
第纳尔
1258
精华
0
互助
6
荣誉
1
贡献
10
魅力
2
注册时间
2011-9-23

汉匈决战正版勋章元老骑士勋章

QQ
鲜花(1) 鸡蛋(0)
 楼主| 发表于 2024-8-3 01:07:47 | 显示全部楼层
快乐风猫 发表于 2024-8-3 01:05
你获取agent的troop ID了吗  用这个你要先获取它的兵种ID

熬夜眼睛花了,明明是True or False的问题,应该写neg 非,我写了个neq 不等于。
上面获取了troop ID的,因为后面添加俘虏和删除角色都能生效
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-11-19 08:28 , Processed in 0.129421 second(s), 21 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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