MMORPG游戏在技能战斗中的位置同步问题

      这里列举在技能战斗系统开发中,碰到的两个与位置同步相关的问题

     

     (一)

      在MMORPG游戏中,对于那些同时拥有近攻和远程系等多种职业的游戏,策划一般都会对近攻类的职业,加上冲锋类的技能,以便平衡远程类职业在攻击距离上的优势。在client看到的效果,是玩家边播放冲锋动作,然后快速接近目标,并对目标一个伤害,而对server而言,该技能与其它技能在处理的不同之处在于,施法玩家在施法的同时,也作一个位置的变更。一般server的处理流程是,先检查冲锋直线路径是否合法(有无阻挡)和其它施法条件,若通过,则告诉client可以施法,并同时设置当前玩家坐标为冲锋后的坐标(该坐标由client带上来)。

      由于server移动系统在对client发过来的移动数据作检验时,需要检查本次移动的起步点,是否为上次移动的结束点,即作线段端点合法检查,而冲锋到达的目标点并未在上次移动的路径栈信息中,所以,server技能系统在设置冲锋位置时,需要先清除原路径栈信息(如调用MoveStop接口),以便确认本次冲锋为一次全新的移动。

 

     (二)

     两个玩家同时使用冲锋技能时(目前client在做技能时,采用先表现的方式),出现一个玩家(冲锋目标client)停在冲锋途中的现象,原因为server广播技能施法时,没有带目标主动位移的信息(client在处理冲锋位置时,对于使用冲锋技能的client,因为它知道冲锋到达的位置,所以它的处理没有问题,而另一个冲锋目标client,由于它不知道对方要冲到哪里,则client处理时就是选择冲锋路径上的一点,这样就会看到停在冲锋途中了)所致。解决办法是,要么在协议中下发目标位移信息,要么在策划规则上,只允许同一时刻一个玩家冲锋,如:冲锋加晕眩debug等;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值