欢迎光临散文网 会员登陆 & 注册

RPGMaker MV 基于Yep系列插件实例教程(2)

2023-04-29 12:52 作者:贝嗷武甫  | 我要投稿

Day2:Stagger
《醉拳》的做法:

“醉酒抛杯踢连环”

需求插件:(全部为yep系插件)
Battle Engine Core
Buffs & States Core
Passive Aura Effects

实现这个功能在原版做法中本来同样需要两个buff。
第一个buff是【醉拳】本身,用以将受到的物理伤害转化为持续性伤害【流觞】。
第二个buff则是【流觞】,他是一个将受到的物理伤害记录并造成持续性伤害的buff,由【醉拳】产生。
但在后续讨论下我们优化了这个代码,将他改为了只需要【醉拳】本身就能实现。

在【醉拳】的备注中,我们应该这么写:

//<Custom React Effect>
//检查当前动作是否物理伤害,是否为生命值变动效果,值是否大于0
if (this.isPhysical() && this.isHpEffect() && value > 0) {
    //设置目标身上的总伤害流逝值
    target._staggerDmg = target._staggerDmg || [];
    //设置当前伤害的流失伤害的比例为15% + 随机值 * 0.25
(此处可以改为定值,最好是设置为15%~40%,这是测试得出的结果,原版是35%)
    const reduceRate = 0.15 + Math.random() * 0.25;
    //设置当前伤害的流失伤害回合为1到3
(此处同样可以改为定值,设置为固定几回合,只要修改下方右边的数值就好)
    const reduceTurn = Math.randomInt(3) + 1;
    //计算因流逝减少的伤害
    var reduce = Math.ceil(value * reduceRate);
    //应用减伤效果
    value -= reduce;
    //将当前伤害的后续流失效果储存在总流逝值内
    target._staggerDmg.push({"damage":reduce,"turn":3});
}
//</Custom React Effect>

//<Custom Regenerate Effect>
user._staggerDmg = user._staggerDmg || [];
//检查用户是否存活,总流逝是否存在
if (user.isAlive() && user._staggerDmg.length > 0) {
    //循环总流逝库
    for (let index = 0; index < user._staggerDmg.length; index++) {
        //设置当前流逝伤害为当前流逝子库中伤害/剩余回合,即将伤害按照回合均分
        const dmg = Math.ceil(user._staggerDmg[index]["damage"] / user._staggerDmg[index]["turn"]);
        //当前流逝子库中伤害减少
        user._staggerDmg[index]["damage"] -= dmg;
        //用户减少流失效果的生命值
        user.gainHp(-dmg);
        //播放动画(任选一个啦,和你的动画库里的ID相对应)
        user.startAnimation(1);
        //启动伤害弹窗
        user.startDamagePopup();
        //清除结果
        user.clearResult();
        //当前流逝子库中剩余回合减1
        user._staggerDmg[index]["turn"]--;
        //检查当前流逝子库中剩余回合是否小于等于0
        if(user._staggerDmg[index]["turn"] <= 0) {
            //若是,则移除当前流逝子库
            user._staggerDmg.splice(index,1);
        };
        //检查角色是否死亡
        if (user.isDead()) {
            //若角色死亡
            user.performCollapse();
            //则角色总流逝库清空
            user._staggerDmg = [];
        };
    };
};
//</Custom Regenerate Effect>

RPGMaker MV 基于Yep系列插件实例教程(2)的评论 (共 条)

分享到微博请遵守国家法律