英雄联盟(LOL)外挂原理(仅供学术交流)
了解外掛之前,我們需要先了解一下LOL的機制。
首先,粗略的講,我們每個人操作的角色可以具有『受傷』和『沒受傷』兩種狀態。(什么?這算什么分類?)
然后,要觸發『受傷』狀態,角色需要被『攻擊物』產生『碰撞』。
比如這樣,圖中快樂風男被防御塔的『攻擊』碰撞到了,于是產生了『受傷』狀態,hp減少。
而當一個角色HP減為0的時候,角色就會回泉水洗澡。這樣,某類外掛就產生了,目的很單純——避免角色回泉水。
那么為了達到這個目的,需要從動機開始往前推:
避免角色死亡——》避免角色受傷——》避免角色與『攻擊物』碰撞
于是,外掛需要監聽的對象就很清晰了,『角色』與『攻擊物』
那么,『攻擊物』是從哪里產生的呢?
可以從圖中看出,『攻擊物』由角色技能觸發,并具有一定的移動規律。
用代碼來表示則是這樣:
這代碼什么意思,我已經不記得了,大概就是,生成一個『攻擊物』(比如艾希的冰箭),然后設定它的移動速度,移動軌跡,生命周期。
然后冰箭就會在這段時間內沿著既定的軌跡移動,中途與其他角色產生碰撞。
那么角色收到碰撞反饋后,就會觸發『受傷』的狀態。
——
了解了技能機制以后,外掛機制就簡單了。
首先,觸發技能的『角色』玩家是可以看到自己的技能軌跡的。
那么,外掛的機制,就是把這個軌跡同步給對方角色。
但如果只是這種程度的話,對玩家的幫助還不夠。
畢竟游戲里有很多技能觸發軌跡是所有人可見的,但就算能看到也躲不開。
所以,這時候,腳本就開始了。
既然,知道了軌跡,腳本就會開始計算玩家『角色』的位置,并進行移動,從而使角色躲開『攻擊物』的軌跡,避免碰撞產生。
計算方式有很多,而這其實方法就是游戲制作者為每個游戲編寫AI時一直在做的事……
最后呈現的效果,則是
其他的外掛,比如:
無敵,其實就是在『受傷』狀態觸發時,把對應函數里的代碼注釋掉就行了。
其他的就不一一列舉了。
總結
以上是生活随笔為你收集整理的英雄联盟(LOL)外挂原理(仅供学术交流)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读论文《Recurrent neural
- 下一篇: 西游记中被孙悟空打死的妖怪