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

RPGMakerMV探秘17-YEP_X_BattleSysCTB

2020-12-02 22:52 作者:狂奔小菜鸡  | 我要投稿

        YEP_X_BattleSysCTB插件是YEP引擎插件的一个扩展插件,除了CTB插件,还有类似功能的ATB、STB插件。

        在YEP的战斗引擎核心插件(YEP_BattleEngineCore)中,已经内置了不同战斗系统的选项(dtb、atb、ctb、stb)。dtb是默认战斗系统,其他三个都是YEP的战斗系统。

战斗系统选项

        默认战斗系统也就是系统自带的战斗模式,我方依次选择出手方式(攻击、技能、物品、防御等)及攻击目标,系统根据敏捷计算出手顺序,然后根据计算所得依次出手,回合结束。个人感觉这样的战斗系统略显僵硬,所以加上YEP_X_BattleSysCTB插件试了一下。战斗方式发生了改变,当轮到角色出手时,选择出手方式及目标后,角色将立即行动,而不像默认系统需要一次性选择完所有角色的出手方式和目标。

        从界面上来看,右上角多了一个行动槽,能够直观的看出战斗顺序。当然这个是否可见可以在插件参数中设置。

行动槽

        


        如果你有在游戏过程中改变战斗系统的需求,可以使用下面的插件命令:

        setBattleSys CTB //设置为CTB

        setBattleSys DTB //设置为DTB

        

        插件提供了丰富的注释命令:

        Actor and Enemy Notetags(玩家角色和敌人注释命令)

            <CTB Icon: x> //设置角色或敌人在CTB排位槽中的头像图标

            <CTB Border Color: x> //设置角色或敌人在CTB排位槽中边框线条颜色

            <CTB Background Color: x> //设置角色或敌人在CTB排位槽的边框背景颜色.

        Actor only Notetags(玩家角色专用)

            <Class x CTB Icon: y> //给不同职业定义不同的头像图标,x为职业ID,y为头像ID

        Skill and Item Notetags(技能和道具注释命令)

            <CTB Help>
                text
                text
            </CTB Help> //有时候你会在游戏中使用多个战斗系统,这个注释可以为技能和道具添加一个属于CTB系统的说明信息,这个信息只在CTB系统启用的时候显示。

            <CTB Speed: x> //把目标的当前排位位置设置为x,类似于ATB的speed值。

            <CTB Speed: x%> //把目标的当前排位值设置x%,100%就是直接行动

            <CTB Speed: +x>

            <CTB Speed: -x> //把目标的当前排位值增加或减少x +/- 起到快速行动或延迟行动的目的 ,±x也可以换成±x%,以百分比表示

            <CTB Order: +x>

            <CTB Order: -x> //使用这个命令按照x参数改变当前目标的综合排序,+x会使目标需要等待更长的时间。这个命令的效果微小,并且只会持续到当前回合的循环结束

        Actor, Class, Enemy, Weapon, Armor, and State Notetags(角色,职业,敌人,武器,护甲和状态命令)

            <CTB Start: +x>

            <CTB Start: +x%> //在CTB模式中,定义角色开始时的排序槽值,第一次行动后从0开始排位。

            <CTB Turn: +x>

            <CTB Turn: +x%> //每回合开始时目标的排序槽值,行动后依然从x或x%处开始排位。


        如果有一些JS基础的,可以用更加独特的方式来控制CTB的speed。

        Skill and Item Notetags(技能、物品备注)

        <Target CTB Speed Eval>
           speed = target.hp / target.mhp * max;
           charge = target.hp / target.mhp * max;
        </Target CTB Speed Eval> //speed受到当前血量百分比影响


        <Target CTB Order Eval>
           if (target.hp > 1000) {
             order = 3;
           } else {
             order = -1;
           }
        </Target CTB Order Eval> //如果还有超过1000血量,至少要等三个回合才能出手,否则少于一个回合即可。

        

        接下来看下插件参数:

        Per Tick:每次获得的speed,默认是敏捷度

        Initial Speed:初始speed

        Full Gauge:行动槽总的speed,默认公式Math.max(7000, BattleManager.highestBaseAgi() * 120)

        Pre-Emptive Bonuses、Surprise Bonuses:先手率,提高sped,一个针对角色、一个针对敌人

        Escape Ratio:逃跑率,默认公式:0.5 * $gameParty.agility() / $gameTroop.agility()

        Fail Escape Boost:逃跑失败,偏移参数,每次逃跑失败递增,使逃跑概率逐渐增大

        Enable Rubberband、Minimum Speed、Maximum Speed:自动平衡器,如果开启,通过设置的最大、最小speed,控制speed的平衡。

        ---Turn Order---

        关于进度槽的一些设置,这里就不展开了,可以自行修改设置,看战斗场景的变化。

        

        国际惯例,舔一下代码,发现舔不动。。。粗看了下,战斗管理器、战斗场景、战斗对象的敌我双方基本都被改了,只有一声叹服。

        


RPGMakerMV探秘17-YEP_X_BattleSysCTB的评论 (共 条)

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