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