红枫
不谈传奇之类的小东西,像WOW这种地图超大的游戏,当玩家进行范围攻击时,如何进行攻击判定?难道服务器端还是用数组方式来记录每个玩家、NPC的坐标,然后根据攻击的位置,找到周围的被攻击对象?像WOW这样大的地图,如果用数组来表示位置的话,那岂不是要超过[万][万]个坐标了?况且还有3D的情况,比如在水中。 如果不用数组方式的话,那么如何才能快速的找到攻击范围内的对象呢?请高手指点,不胜感激。
-----------------------------------------------------------------------------------
雨中的小呆
有人回答吗?我也想知道,可惜我回答不了,这种问题.
-----------------------------------------------------------------------------------
txz
再大的地图,也是小地图拼合的。埃。
-----------------------------------------------------------------------------------
谜の名侦探
四叉树分割, 提高查找对象速度。
-----------------------------------------------------------------------------------
疯鱼无阻
这个处理不是由服务器单独完成的。
本地客户端当然可以知道: 在自己的攻击有效范围中存在哪些可以被破坏或者伤害的物体,NPC或者是其他玩家; 然后向服务器提交对这些物件的破坏请求; 服务器会验证你的攻击是否能够对这些物件产生效果; 最后向所有受到影响的客户端发送最终状态;
就是这样而已。
-------------------------------------------------------------------------------------
verysad
疯鱼的办法不是很好哦,这样给外挂留了很大的空间,也容易作弊……最好的办法还是服务器分小块的搜索坐标,确定每个角色一定范围内的物品,然后攻击的时候只在这些物品里查找,速度会快很多
|