MMORPG中技能战斗系统的技术分享


(1)技能施法时,client只有一个上行的请求施法包,后续施法的过程全由server来驱动下发施法各阶段的结果信息,如吟唱、效果伤害、命中信息等等;

    (2)弹道类技能是由server计算飞行时间,并不考虑飞行后的轨迹,若此时目标有移动,则client会做目标跟随的处理;

    (3)技能学习:由秘籍来获得技能,一本秘籍包含多个技能,被动技能不影响主动技能的属性;

    (4)Buff系统与技能系统是相互独立的,相互之间有接口各自的进行访问;

    (5)玩家施法作群攻目标选定时,也是由server来完成,这时是从玩家自己的视野里搜索,而无需再搜一次动态区域(格子32*32);

    (6)技能效果由一个主效果+N个Buff效果组成;

    (7)Buff对象区分玩家和怪物,其存储结构独立出来放在内存池中,在施法者需要时再根据目标类型来添加;

    (8)特别小心:在作技能效果计算时,尽量避免有轮循的处理,因为,这个这个很耗CPU;

    思考题:关于技能引发的位置同步问题

    (1)对于改变目标(玩家)移动速度的技能,可能会带来位置不同步的问题,即server下发速度改变的包时,目标玩家可能正在移动,从而导致server和client的位置不一致?

      答:对于这个问题,一般是通过移动系统自身的位置同步策略来解决的,即移动系统发现client和server位置不一致时,通过一定的策略来补偿速度慢的一方,从而在目标玩家在接来的一定时间内达到位置平衡。

     (2)类似性质的问题还有给目标加冰冻、定身等Buff,也可能带来位置不同步的问题?

      答:这个问题暂也还没有好的解决方案,目前的做法是当目标中定身Buff时,client立即表现定身,即定在原地,并将此时的位置信息带给server,server检验合法后设置这个位置,解冻后client为继续玩家移动(若玩家是移动中被定身住的话)。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值