=========================================================
本技巧第二部分比较麻烦,由于时间关系我可能看到B站留言或者简书留言的时间比较滞后,请尽量自行尝试。十分抱歉。
本技巧依赖yep的状态核心插件YEP_BuffsStatesCore.js、自动被动状态插件YEP_AutoPassiveStates.js、状态保护插件YEP_X_StateCategories.js
你可以在这里看到它们的介绍:
https://www.jianshu.com/p/cf6cb946639f
https://www.jianshu.com/p/2a3f43e98c3c
https://www.jianshu.com/p/35004d654cc6
本技巧效果视频预览:https://www.bilibili.com/video/av75115933/
=========================================================
是不是有时候觉得在危险时刻使用治疗者一回合去复活队友,而会导致其他低血量的成员陷入危机?有没有想要被动的自动复活状态呢?
好的,本文就是我为了解决这个需求所制作的状态分享,
首先是第一部分(这个部分参考改写自yep进阶的凤凰戒指,大家也可以去yep的wiki学习一下)
【给目标一个状态,状态有效期内死亡则在当前一轮回合结束后立刻复活】
这个技巧十分简单,新建一个状态,将如下内容复制粘贴到状态的备注文本框里,并为其设置一个有效回合数例如5回合,然后创建一个主动技能,用这个技能触发此效果。
<Category: Bypass Death Removal> //此状态受到保护,不会在死亡后被移除
<Custom Turn End Effect> //下面的效果将在回合结束时生效(还有很多其他的节点请看下面的附录)
if (target.isStateAffected(1)) { //如果状态影响的目标已经死亡(1号状态默认为死亡)
target.startAnimation(300); //则对目标播放300号动画
var hp = Math.floor(target.mhp * 0.35); //声明“hp”为此目标最大生命值的35%
target.gainHp(hp); //目标获得这个生命值
target.startDamagePopup(); //弹出恢复的血量数字
target.removeState(81); //移除这个状态,我这里这个状态的编号是81
}
</Custom Turn End Effect>
(使用时可以删除//与后面的中文注解)
接下来是第二个部分,【被动的复活状态,持有此状态的目标死亡后X回合后自动复活】
此效果用在什么场景呢?当然你可以给自己的角色武装一个随着回合流逝自动复生的特效,而它,也常备用在一些特殊的怪物(如亡灵、BOSS等)加强战斗难度——除非算好血量在X回合内全部击杀否则会陷入无休止疲劳战。
那么我们来实现它。这个效果则稍微有些复杂,它需要3个部分来配合:
【状态1】在游戏中默认1号死亡状态的note里面按下方内容填写:
<Custom Apply Effect> //在死亡瞬间发生
if (target.isDead && target.isStateAffected(80)) { //检查目标是否有80号状态(这里的80号是个例子,就是第二个状态的实际编号)
target.addState(79); //如果目标有80号状态,则给目标添加79号等待复活的状态。
}
</Custom Apply Effect>
【状态2】自动复活能力标记(做成被动,让目标始终具有这个被动),只填写状态名称、图标、状态的介绍文(如果有)和保护死亡不被删除的标签,其余一切不设置。
假设这里自动复活能力标记状态的ID是80,只在note中填写如下内容保护状态死亡不被删除:
<Category: Bypass Death Removal>
【状态3:】这个是死后被自动添加给目标的等待状态,假设编号是79。设置这个状态的自动解除时机为:【持续回合数结束后】,这里我们设置3回合(当然你可以设置任意回合)。然后在note填写:
<Category: Bypass Death Removal> //此状态受到保护,不会在死亡后被移除
<Custom Remove Effect> //下面的效果将在这个状态回合数结束后发生
if (target.isStateAffected(1)) { //如果状态影响的目标已经死亡(1号状态默认为死亡)
target.startAnimation(300); //则对目标播放300号动画
var hp = Math.floor(target.mhp * 0.35); //声明“hp”为此目标最大生命值的35%
target.gainHp(hp); //目标获得这个生命值
target.startDamagePopup(); //弹出恢复的血量数字
}
<Custom Remove Effect>
好了,准备工作结束。我们现在要做的,就是把状态2作为被动效果附加给角色、敌人、武器、装备、或者被动技能,方法是在角色、敌人、武器、装备、或者被动技能的备注框中填写:
<Passive State: 2>
这里的状态编号2、编号3,都是假设的,按你实际创建的状态ID为准。
附录:状态刷新时间节点表(由炎龙大佬整理和分享)
<Custom Apply Effect>//状态被添加时执行.
<Custom Remove Effect>//状态被移除时执行.
<Custom Leave Effect>//状态持续时间结束时执行.
<Custom Turn Start Effect>//每回合开始时执行.
<Custom Turn End Effect>//每回合结束时执行.
<Custom Action Start Effect>//每次执行新动作时执行.
<Custom Action End Effect>//每次完成新动作时执行.
<Custom Regenerate Effect>//每次HP/MP/TP改变时执行[技能结束后].
<Custom Battle Effect>//每次战斗开始时执行.
<Custom Victory Effect>//每次战斗胜利时执行.
<Custom Escape Effect>//每次战斗逃跑时执行.
<Custom Defeat Effect>//每次战斗被击败时执行.
【时间点1:攻击方进攻即将到达防守方】
<Custom Initiate Effect>//每次该状态持有者执行新动作时执行(可以视为攻击方发动攻击时).无value 可以改暴击回避等
<Custom Select Effect>//每次该状态持有者被执行新动作时执行(可以视为被攻击方被攻击时).无value 可以改暴击回避等
【时间点2:攻击方进攻已到达防守方,但value尚未决定】
<Custom Confirm Effect>//每次该状态持有者攻击或技能后执行.value尚未决定,可以更改 无法改暴击回避等
<Custom React Effect>//每次该状态持有者被攻击或技能后执行.value尚未决定,可以更改 无法改暴击回避等
【时间点3:攻击方进攻即已到达防守方,且value已经决定,但还能读取其值】
<Custom Establish Effect>//每次该状态持有者造成伤害后执行.value已经决定,无法更改
<Custom Respond Effect>//每次该状态持有者受到伤害后执行.value已经决定,无法更改
【时间点4:时间点3之后的收尾时间段,此时已经无法读取value】
<Custom Conclude Effect>//每次该状态持有者攻击后(无论攻击是否成功)执行.无value
<Custom Deselect Effect>//每次该状态持有者受到攻击后(无论攻击是否成功)执行.无value
【战斗者对象】
攻击方对象:user
防守方对象:target
状态来源对象:origin
既然你看到了这里,就额外赠送一个小技巧,死亡后TP清空:
在1号死亡状态的备注框中添加如下脚本(和上面那个等待复活的不冲突,可以存在多个相同的<Custom XXX Effect> 建议是把不同效果分开写,即便生效时机相同):
<Custom Apply Effect>
if (target.isDead && target.isActor()) {
target.gainTp(-200);
}
</Custom Apply Effect>