查看: 4205|回复: 4

[有事请教] ”火焰盾“、“反弹伤害”类状态的制作

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

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

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

×
如题,现在制作状态“火焰盾”,对带有“火焰盾”状态的目标进行物理攻击的话,会受到火属性魔法伤害,并且被烧伤。
利用YEP插件实现了下面的效果,但是不会写造成伤害。。求教呢~


<Custom Deselect Effect>
  if(this.isPhysical())
{    //判断是否物攻
user.startAnimation(167);       //对目标播放动画167
user.addState(15); //烧伤攻击者
user.addState(14);
    //??对 攻击者造成火属性魔法伤害=a.mat*4-b.mdf*2??
}
</Custom Deselect Effect>
梦石
0
星屑
676
在线时间
224 小时
注册时间
2006-12-7
回帖
780
发表于 2019-11-11 11:53:08 | 显示全部楼层
在状态里面用custom react effect里面判定吧
a是攻击者,target是被攻击者
属性伤害的话估计得查查伤害计算的公式(读取抗性之类的),然后手动写出来

反伤的例子:
<Custom React Effect>
if (this.isHpEffect() && value>0){
    a.startAnimation(2);
    a.gainHp(Math.floor(-0.5*value));
    a.startDamagePopup();
    a.clearResult();
}
</Custom React Effect>
回复

使用道具 举报

梦石
0
星屑
1075
在线时间
133 小时
注册时间
2019-5-1
回帖
57
发表于 2019-11-11 17:07:28 | 显示全部楼层
本帖最后由 chinx 于 2019-11-11 17:37 编辑

反伤的脚本尽量使用Respond标签,和react标签的区别在于前者是一个通过最终计算确定的结果,后者则可能会在受到其他增伤状态影响之前返回一个不准确的反伤数值。
具体:
<Custom Respond Effect> 每次该状态持有者受到伤害后执行.value已经决定,无法更改
<Custom React Effect> 每次该状态持有者被攻击或技能后执行.value尚未决定,可以更改 无法改暴击回避等
而LZ用的<Custom Deselect Effect> 是每次该状态持有者受到攻击后(无论攻击是否成功)执行. 无value返回,不适合用作反伤

可以这样写:

[pre lang="javascript"]<Custom respond Effect>
if (this.isHpEffect() && value > 0) {
var dmg = Math.floor(value * 0.05); //这里的公式是一个例子,value * 0.05 将最终伤害结果的5%作为反射数值。具体的你可以根据需要自己设置。
var rst = JsonEx.makeDeepCopy(user._result);
user.startAnimation(ID);
user.addState(ID);
user.clearResult();
user.gainHp(-dmg);
user.startDamagePopup();
user.clearResult();
user._result = rst;
}
</Custom respond Effect>[/pre]


至于这里为什么是user而不是target,关于对象,引用一下炎龙大佬的资料说明一下,user并不一定是状态持有者本身,而是产生结果的源。
【战斗者对象】
攻击方对象:user
防守方对象:target
状态来源对象:origin
这里说攻击方和防守方是为了便于理解,实际上还有对队友使用辅助技能比如加血等情况,总之user其实代表着行动者,而target代表着这个行动的目标,也就是被user锁定的对象。
回复

使用道具 举报

梦石
0
星屑
337
在线时间
74 小时
注册时间
2022-12-4
回帖
162
发表于 2023-5-17 11:24:39 | 显示全部楼层
chinx 发表于 2019-11-11 17:07
反伤的脚本尽量使用Respond标签,和react标签的区别在于前者是一个通过最终计算确定的结果,后者则可能会在 ...

太感谢了,随时是别人问的问题,正好解决了我的需求!!!!
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部