查看: 3154|回复: 3

[有事请教] 如何实现技能“必要防具”,如“盾击技能需要装备盾牌”

[复制链接]
梦石
0
星屑
168
在线时间
45 小时
注册时间
2012-9-4
回帖
14
发表于 2019-10-5 21:44:03 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
目前我只会用SKILL CORE 插件后,这样在技能注释里写。但是只是由防具ID判断,而不是防具类型判断。

<Custom Requirement>
   if ($gameActors.actor(1).equips().contains($dataArmors[1])) {
     value = true;
   } else {
     value = false;
   }
  </Custom Requirement>

应该把IF语句里的条件怎么改一下实现用 “是否装备了某个部位的防具”来改变技能能否释放?
或者怎么判断是否装备了ID为X~Y之间的防具?这样只要把类型相同的装备在数据库里放在一起就可以了。
梦石
0
星屑
2772
在线时间
215 小时
注册时间
2017-9-28
回帖
255
发表于 2019-10-6 22:05:02 | 显示全部楼层
我是给盾牌加了同一个被动状态,requirement自定义里面写受状态影响否
回复

使用道具 举报

梦石
0
星屑
1881
在线时间
414 小时
注册时间
2012-7-30
回帖
68
发表于 2019-10-6 22:48:28 | 显示全部楼层
按照默认的数据库id,小型盾牌的防具类型是5,equips()是记录角色装备的数组,角色武器默认记录在equips()[0],盾牌默认记录在equips()[1]。
equips()本身是个函数,又是个数组,所以既有圆括号又有方括号。
空值无法和数值比较,所以要先比较该装备位置是否有装备。
<Custom Requirement>
   if ($gameActors.actor(1).equips()[1] != null && $gameActors.actor(1).equips()[1].atypeId==5) {
     value = true;
   } else {
     value = false;
   }
</Custom Requirement>
回复 1 0

使用道具 举报

梦石
0
星屑
2772
在线时间
215 小时
注册时间
2017-9-28
回帖
255
发表于 2019-10-7 18:31:09 | 显示全部楼层
好像有个函数是叫isEquipped()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部