网络游戏战斗系统之技能系统具体设计实现

时间:2024-03-13 07:04:50

    网络游戏的战斗系统中,技能是战斗单元释放作用在目标上造成一系列的技能效果。一个战斗单元可以拥有多个技能,根据玩家操作或者自动,判断技能释放满足条件(cd,魔力等条件)释放技能,这时候根据技能生成一个技能Action对象,最终在目标上生效。

    每一个战斗单元需要一个skillManger对象管理其拥有技能(skill对象),skill对象保存技能的基础配置数据,技能上次释放时间等信息,用于生成skillAction对象。而skillAction对象根据时间线执行,最终在目标上产生技能效果。

网络游戏战斗系统之技能系统具体设计实现

    战斗单元释放技能变成一个技能Action,技能Action可以分成:开始、吟唱、出手、飞行、生效、结束。具体每一阶段的持续时间由配置表控制,每一阶段的持续时间与前端播放动作时间一致,后端在每一阶段开始会发消息给前端告知技能所处阶段以及持续时间等信息,然后前端根据所处阶段播放对应的动作。

    如果是技能是远程射出子弹,出手阶段结束,生成子弹飞行,可以叫子弹阶段,根据时间间隔采点,检查碰撞生效,子弹消失,进入结束阶段,整个技能Action结束。

网络游戏战斗系统之技能系统具体设计实现

    技能在生效的效果有一到多个,通过组合形成不同技能,也需要实现一些基础的技能机制效果,组合形成不同的技能。一个技能在造成伤害的同时可以给目标加一个debug,这个技能就有两个基础技能机制效果组成,技能伤害+添加buff。这样我们只需要实现基础的技能效果机制,将不同的技能机制效果的实现函数的指针存放在数组中,根据技能机制效果编号调用函数,实现技能效果。