了解外挂之前,我们需要先了解一下LOL的机制。
首先,粗略的讲,我们每个人操作的角色可以具有『受伤』和『没受伤』两种状态。(什么?这算什么分类?)
然后,要触发『受伤』状态,角色需要被『攻击物』产生『碰撞』。
比如这样,图中快乐风男被防御塔的『攻击』碰撞到了,于是产生了『受伤』状态,hp减少。
而当一个角色HP减为0的时候,角色就会回泉水洗澡。这样,某类外挂就产生了,目的很单纯——避免角色回泉水。
那么为了达到这个目的,需要从动机开始往前推:
避免角色死亡——》避免角色受伤——》避免角色与『攻击物』碰撞
于是,外挂需要监听的对象就很清晰了,『角色』与『攻击物』
那么,『攻击物』是从哪里产生的呢?
可以从图中看出,『攻击物』由角色技能触发,并具有一定的移动规律。
用代码来表示则是这样:
这代码什么意思,我已经不记得了,大概就是,生成一个『攻击物』(比如艾希的冰箭),然后设定它的移动速度,移动轨迹,生命周期。
然后冰箭就会在这段时间内沿着既定的轨迹移动,中途与其他角色产生碰撞。
那么角色收到碰撞反馈后,就会触发『受伤』的状态。
——
了解了技能机制以后,外挂机制就简单了。
首先,触发技能的『角色』玩家是可以看到自己的技能轨迹的。
那么,外挂的机制,就是把这个轨迹同步给对方角色。
但如果只是这种程度的话,对玩家的帮助还不够。
毕竟游戏里有很多技能触发轨迹是所有人可见的,但就算能看到也躲不开。
所以,这时候,脚本就开始了。
既然,知道了轨迹,脚本就会开始计算玩家『角色』的位置,并进行移动,从而使角色躲开『攻击物』的轨迹,避免碰撞产生。
计算方式有很多,而这其实方法就是游戏制作者为每个游戏编写AI时一直在做的事……
最后呈现的效果,则是
其他的外挂,比如:
无敌,其实就是在『受伤』状态触发时,把对应函数里的代码注释掉就行了。
其他的就不一一列举了。