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

Project1

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

[有事请教] 新人求救,如何通过攻击特定怪物来解除身上的状态

[复制链接]

Lv1.梦旅人

梦石
0
星屑
93
在线时间
6 小时
注册时间
2023-8-30
帖子
5
跳转到指定楼层
1
发表于 2023-10-1 13:05:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
求教,我想实现的是这样的效果。
比如,这场战斗是一个boss再加上一个名叫火把的小怪,这个小怪不会打人。
boss在一定血下会给任意两个队员强行附加一个冻伤buff,这个buff三回合不解掉就会直接去世。
然后解法是让拥有冻伤buff的队员去攻击那个“火把”小怪,然后身上的冻伤就会被清除。
如果身上没有冻伤buff的队员去攻击火把小怪就会反弹扣血。

比如,1号队员攻击火把小怪时就根据1号队员身上有没有冻伤来对1号队员进行解除冻伤或者扣血操作。

怎么才能让系统判断几号队员攻击了小怪就来对几号队员执行对应操作呢?

战斗事件页里该怎么写呢?

刚开始用这个软件,还不太熟练,请多指教。

Lv3.寻梦者

梦石
0
星屑
3932
在线时间
997 小时
注册时间
2016-12-6
帖子
370
2
发表于 2023-10-1 14:19:19 | 只看该作者
原生系统好像做不到这么精细的判定,看有没有其他人回答吧,是我的话会直接考虑用YEP_BattleEngineCore + YEP_BuffsStatesCore插件去定制功能
比如你这个冻伤BUFF,把这段代码加进状态注释里就可以实现状态自然结束后即死的效果:

<Custom Leave Effect>
//让状态的持有者HP归零
user.setHp(0);
</Custom Leave Effect>

火把小怪的判定机制则要根据受击情况进行判定,把这段代码加进一个自定义的状态注释里:

<Custom React Effect>
//假设你冻伤buff的状态ID为19,按自己数据库的实际情况去修改数字
if (target.isStateAffected(19) && value > 0){
  //攻击火把小怪后,身上有冻伤BUFF的队友会解除冻伤
  target.removeState(19);
}else {
  //没有冻伤buff直接攻击将造成反伤,反伤默认为攻击方的基础伤害
  var damage = value;
  target.gainHp(-damage);
  target.startDamagePopup();
  target.clearResult();
}
</Custom React Effect>

如果你要再丰富一些演出效果,还可以在判定中追加动画反馈或者文字解说来提示玩家
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
93
在线时间
6 小时
注册时间
2023-8-30
帖子
5
3
 楼主| 发表于 2023-10-1 18:26:15 | 只看该作者
谢谢你的回答,有了些启发,果真用原生系统实现起来比较困难哈。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-11 14:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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