本帖最后由 生命因你而美丽 于 2015-8-17 17:57 编辑
这个结论在怪身上可以完美体现,就如同闯关时间队伍的最后一批怪都是带反弹的,我输出攻击高的天王很多时候刚一出招,怪还没见下血,自己先被弹死,个人感觉这个PK和计算掉血伤害和最终显示血量是三个过程下来的流程,双方都攻击对方时,先发到服务器的是攻击数据包,然后服务器第二步计算伤害(这一步骤中包括对方防御和反弹属性),第三步才会把计算过的下血量和数据还有效果回送到客户端,这样,没反弹的的角色收到高攻击数据反弹回来的伤害,而且这个伤害不计算防御和影响防御的属性(比如镖唐造成的10万攻击数据计算反弹回来5万下血数据量),若镖唐网速好的话,第一时间接到这个5万下血的数据包,客户端把当前血量-5万下血,造成血量负值,代码检测到血量负值,直接弹出回城修养的消息框,也就意味着你挂了;而另一方网速越慢越好,越卡越好,因为卡的厉害时,那个镖打到你的下血量数据包就丢了,丢了后,客户端没收到下血数据包,你的血量就不减了(此时恭喜你无敌了),这时你若看到镖死回城了自己也赶紧回城的话你就真无敌了,因为回城后在安全区域,代码即便收到下血100万的数据包,你也不会死,因为不会弹出回城修养消息框,程序就不会进入角色死亡的函数模块里去.
这上面都是在专业角度分析的一个过程,但实际上我也感觉CY和和尚弹人没那么夸张,血量上2.5万后基本不会那么轻易弹死,还有最重要的一个情况就是:怪弹角色和角色弹角色似乎还是有些不一样的地方,应该是怪弹角色时更能体现,而角色弹角色时就没有那么给力的表现,个人分析或许怪本身就在服务器里面,不用通过网络在传送什么攻击\防御等数据包了,角色就不同了,因为大家的网速都是动态的,这就是大家说的看不见人就死了,那是因为网络慢,该体现的数据包都丢了,最终收到的数据包是你已经死了的包,
在这里给大家再多介绍一种很变态的情况:当年在100-1区里出现一个名叫:一天一百级 的角色,见人秒人,那时大家还是天赐白金套装时,他啥都没,秒白金+6的人,呵呵.
借上片断给大家讲个技巧:如果客户端可以把从服务器发回来的下血数据包扔掉,回来的每一桢下血包都扔掉,你这个角色也就是处于无敌状态了,因为代码中没有传递下血量的参数,自然不会减你血,你就自然不会死,是永远不死... ..
再者,你若能把你的攻击桢里的数据改成攻击数据结构类型的最大值,例如:unsigned int最大取值65535.
unsigned long 40多亿, unsigned char 255 ,那我相信一定能让对方喝一壶的... ... |