设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2506|回复: 3
打印 上一主题 下一主题

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
168
在线时间
45 小时
注册时间
2012-9-4
帖子
30
跳转到指定楼层
1
发表于 2019-10-5 21:44:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

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

应该把IF语句里的条件怎么改一下实现用 “是否装备了某个部位的防具”来改变技能能否释放?
或者怎么判断是否装备了ID为X~Y之间的防具?这样只要把类型相同的装备在数据库里放在一起就可以了。

Lv3.寻梦者

梦石
0
星屑
2727
在线时间
210 小时
注册时间
2017-9-28
帖子
283
2
发表于 2019-10-6 22:05:02 | 只看该作者
我是给盾牌加了同一个被动状态,requirement自定义里面写受状态影响否
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1881
在线时间
414 小时
注册时间
2012-7-30
帖子
82
3
发表于 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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2727
在线时间
210 小时
注册时间
2017-9-28
帖子
283
4
发表于 2019-10-7 18:31:09 | 只看该作者
好像有个函数是叫isEquipped()
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-5 04:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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