鹰卫为何呆呆的?

    鹰卫为何呆呆的?

    

    有粉丝兄弟问老怪,像因为这种远程宝宝为何感觉到呆呆的?今天老怪就从代码底层入手,给大家详细讲解其中的原因。大家可以注意这五个宝宝来回踱步不攻击呆呆的。老怪总结了因为等宝宝呆的特点,一爱发呆反应慢,被怪物攻击时不还手,或者站在原地长时间没有动作。二茫走位无输出,不像虎卫那样站桩输出,因为作为远程会频繁的后退走位来和目标保持距离,结果忙于走路忘了射箭。三智商掉线,在某些地图区域,比如地图边缘或特定坐标,因为会彻底罢工,完全不攻击。

    

    造成以上呆萌表现的原因,简单来说问题出在因为步子太小和被迫走位上。我们从代码层面去解释一下,因为的攻击逻辑如图所示。这里值得注意的是三点gc函数和攻击冷却逻辑后面会用到。

    

    我们先来讲一下,因为步子太小是什么意思。在数据库中怪物的属性有一个叫做walk step的字段,他控制着怪物每次走路会移动几格。鹰卫的该字段是一,虎卫的是2,意味着虎卫走一步移动两格,鹰卫走一步只移动一格。

    

    我们再来说说被迫走位是什么意思。如代码所示,因为属于远程怪物,target in a tech range的判断范围比近战大,但如果目标稍微超出射程,比如被近身逼迫后退,就会进入LS分支,调用set target XY控制定位移动导致。因为不会攻击,结果就是因为因频繁距离判断忙与走位而放弃攻击,这就是因为只走路不射箭的直接原因。

    

    如代码所示,因为的攻击是有冷却时间的当因为正在冷却时,attack不会执行,但函数仍然返回吃意味着外部循环认为他有目标且正在处理结果。因为站着不动不移动,不攻击,外部不会让他搜索新目标或随机移动,这就是发呆的代码原因,冷却期内既不攻击也不移动,我们上面讲的wac flaps端,虽然attack target中没有直接体现,但set target takes y的行为会受数据库参数影响。CTF坏,每帧可能被多次调用,每次调用都会重新计算路径,这就意味着因为步伐小会导致需要更多次移动才能到达目标位置,从而需要更多次调用set target XY函数,这就会导致遇到更多次不攻击状态,这就是因为走位怪异抽搐的原因。

    

    那么当初的程序员为什么这么设计呢?老外猜测这并非代码缺陷,而是处于平衡性考虑。如果因为的workshop等于二巷虎卫一样快,那么它会变成一个高速远程炮台,而其他宠物则会失去价值。如果因为的攻击冷却时间过短,那么它会无限射箭导致输出过高。如果因为在L四分支中也允许攻击,那么它会变成边走边射的无敌状态,从而破坏游戏平衡。那么到这里相信大家已经搞懂因为奇怪行为的原因了。关于传奇,如果你还有什么想知道的,期待您的留言。