相信很多游戲玩家都聽說過外掛、腳本、輔助這幾個(gè)詞吧,但他們之間的差異你了解嗎?今天小憨包將跟大家講解一下游戲中的輔助、腳本、外掛的區(qū)別究竟是什么?
塞恩回頭R
游戲輔助大致類似游戲第三方插件如《魔獸世界》的大腳《夢(mèng)幻西游》的工具箱,多玩LOL盒子等等。
他們的共同特點(diǎn)便是不修改游戲本質(zhì)數(shù)據(jù),提供幫助演算題庫(kù)等不影響游戲正常運(yùn)營(yíng)的范圍內(nèi)軟件!如經(jīng)驗(yàn)計(jì)算器、寵物人物屬性計(jì)算器、技能冷卻計(jì)算器、冷卻提醒跑商跑圖時(shí)間查詢、擺攤賣東西收益查詢等。
原來盒子的戰(zhàn)斗力是大家互相攀比的標(biāo)準(zhǔn)
此類軟件大部分游戲運(yùn)營(yíng)商不反對(duì),且提倡,因?yàn)檫@些數(shù)據(jù)極大的方便了官方的數(shù)據(jù)總結(jié)。英雄聯(lián)盟盒子被官方所禁用的主要原因便是一鍵換膚系統(tǒng)嚴(yán)重影響了官方皮膚的銷量
游戲腳本腳本的特點(diǎn)在于不修改游戲數(shù)據(jù),只是按照程序編寫的格式去代替你的游戲操作,本質(zhì)上只是為了實(shí)現(xiàn)計(jì)算機(jī)模擬人類行為而研發(fā)的一種工具。
目前市面上的按鍵精靈是軟件類腳本的佼佼者,其***式的可上傳性,也讓它如日中天。
但是腳本的發(fā)展經(jīng)歷需要分成兩個(gè)階段來講。早期的腳本只是提供全自動(dòng)或者是半自動(dòng)的操作,例如《傳奇》中的自動(dòng)打怪尋路、《勁舞團(tuán)》中的自動(dòng)跳舞、《地下城與勇士》中的一鍵喊話等。為的是免去了人類機(jī)械化的重復(fù)操作,減少了游戲前期準(zhǔn)備的枯燥性。
《傳奇》中自動(dòng)尋路的腳本
但是隨著科技的進(jìn)步,一些腳本開始脫離了這個(gè)初衷,尤其MOBA游戲中的腳本最為猖獗。我們就以《英雄聯(lián)盟》中的腳本來具體說一下。
首先,此類腳本的運(yùn)行的目的是盡最大可能的避免操控的人物角色收到傷害。
在游戲里,鼠標(biāo)放在技能上是可以看到非對(duì)向性技能的彈道的,所以可以通過腳本獲得對(duì)方英雄的彈道,彈道速度,技能距離的數(shù)據(jù),再通過回避“它”進(jìn)行規(guī)避。
這個(gè)功能實(shí)現(xiàn)的基礎(chǔ)就在于計(jì)算機(jī)的計(jì)算速度要比人類高出很多。所以在技能丟出去一瞬間,腳本早已計(jì)算好了最佳的躲避路徑。
就像這樣。
注意圖中的紅線代表著盲僧玩家鼠標(biāo)點(diǎn)擊的位置
英雄聯(lián)盟是有受傷和無受傷兩種狀態(tài)。就比如說我被防御塔打一下,我就受傷了,受傷是通過某個(gè)碰撞物打在我身上,所以腳本的目的就很明確了:回避碰撞物防止受傷狀態(tài)。
同樣的還有大家耳熟能詳?shù)淖逜操作,理論上走a攻速到1.7以上以正常人的反應(yīng)速度就無法完美走a。但是可以通過代碼,進(jìn)行完美的攻擊間隔計(jì)算,從而達(dá)到完美走a。
對(duì)于早期的腳本,游戲公司不打壓,也不支持。但是對(duì)于后者這種等同于外掛的腳本,是會(huì)嚴(yán)厲打擊的。
游戲外掛游戲是由無數(shù)的代碼堆疊而成的,而每個(gè)人對(duì)于功能代碼的實(shí)現(xiàn)所思考的方式是不同的,這就給外掛提供了可乘之機(jī)。在這些位置修改或者插入一些特殊代碼,就能夠?qū)崿F(xiàn)改變游戲的功能。小憨包還是用幾個(gè)例子來具體說明一下。
內(nèi)存修改談到內(nèi)存修改類游戲就不得不提一下兩款大名鼎鼎的軟件:金山游俠和cheatengine。
前者是國(guó)產(chǎn)游戲修改軟件的鼻祖,后者可以說是游戲外掛的始作俑者了。(LOL圈的阿呆就是利用金山游俠修改的)
對(duì)于絕大多數(shù)的單機(jī)游戲,手游,頁(yè)游來說,雖然游戲服務(wù)器保存了大量的重要的參數(shù),但由于客戶端不可避免的需要進(jìn)行大量的計(jì)算和資源的加載,本地內(nèi)存中必定存有部分的臨時(shí)變量,通過判斷這些變量的變化規(guī)律和函數(shù)尋到利于自身的參數(shù),比如傷害值一類。繼而尋找該變量的內(nèi)存地址,再更久分析獲得內(nèi)存基址進(jìn)行修改,就完成了修改某項(xiàng)數(shù)值的操作。
為什么某些3A大作在僅僅出來一周不到就會(huì)被破解,因?yàn)橛螒蛞坏┫螺d下來,游戲數(shù)據(jù)就會(huì)全部存于本機(jī)之中,這樣方便破解者的入手。
DNFDNF本身在設(shè)計(jì)時(shí)采取的理念就是服務(wù)器負(fù)責(zé)發(fā)送與接收數(shù)據(jù),不參與數(shù)值的計(jì)算。簡(jiǎn)單來講就是服務(wù)器只負(fù)責(zé)當(dāng)前角色的貨幣,裝備,材料等資源的獲取與消耗情況,但不會(huì)檢查過程是否合法,而角色的傷害運(yùn)算則放在本地化進(jìn)行。
我們知道Internet客戶/服務(wù)器模式的通訊一般采用TCP/IP通信協(xié)議,數(shù)據(jù)交換是通過IP數(shù)據(jù)包的傳輸來實(shí)現(xiàn)的,一般來說我們客戶端向服務(wù)器發(fā)出某些請(qǐng)求,比如移動(dòng)、戰(zhàn)斗等指令都是通過封包的形式和服務(wù)器交換數(shù)據(jù)。那么我們把本地發(fā)出消息稱為SEND,意思就是發(fā)送數(shù)據(jù),服務(wù)器收到我們SEND的消息后,會(huì)按照既定的程序把有關(guān)的信息反饋給客戶端,比如,移動(dòng)的坐標(biāo),戰(zhàn)斗的類型。那么我們把客戶端收到服務(wù)器發(fā)來的有關(guān)消息稱為RECV。
外掛截取傳輸數(shù)據(jù)并加以修改
知道了這個(gè)道理,接下來我們要做的工作就是攔截分析客戶端和服務(wù)器之間往來的數(shù)據(jù),并且將其中一些數(shù)據(jù)進(jìn)行修改,然后模擬服務(wù)器發(fā)給客戶端,或者模擬客戶端發(fā)送給服務(wù)器,這樣就可以實(shí)現(xiàn)我們修改游戲的目的了。
絕地求生前兩者僅僅是運(yùn)用了某一款外掛的功能,而在《絕地求生》中,玩家所使用的的外掛可謂是五花八門。
基礎(chǔ)功能:除草、無后座等
這是初級(jí)操作,是將本地某些特定文件中的參數(shù)進(jìn)行修改即可實(shí)現(xiàn)。
除草掛
進(jìn)階功能:透視,子彈瞬擊,加速,吸空投,秒換子彈,秒吃藥。(原有功能加強(qiáng))
這個(gè)是在原有游戲功能的基礎(chǔ)之上進(jìn)行了加強(qiáng),也就是實(shí)現(xiàn)了DNF中的攔截傳輸數(shù)據(jù)并且進(jìn)行修改的功能,一般是在內(nèi)存中進(jìn)行。
人物透視
終極功能:自瞄,路飛手臂,子彈跟蹤,靈魂出竅,炸飛機(jī),空中拳擊賽等非常規(guī)功能。
路飛手臂
此類是利用了游戲代碼的漏洞,是原游戲中沒有的功能。在原有代碼的基礎(chǔ)之上增加了一些本不該有的代碼,是真正具有開創(chuàng)性的功能。
最后想說的話外掛,一個(gè)應(yīng)該存在但是不應(yīng)該出現(xiàn)的東西。被有心之人挖掘出來之后發(fā)揚(yáng)光大,毀了一個(gè)又一個(gè)的經(jīng)典游戲,不可謂不可惡。
但是從另一個(gè)角度來看,說明我們現(xiàn)在的開發(fā)能力還是有很大的提升空間的。待有一日,希望這些所有的外掛、腳本、輔助能夠成為游戲領(lǐng)域中進(jìn)步的墊腳石吧!
?THEEND
我是小憨包說游戲,喜歡我的話就點(diǎn)個(gè)關(guān)注吧~
感謝支持!
往期回顧:
游戲首班車:道貌岸然、兇狠殘暴、滅絕人倫,這才是真正的江湖
游戲首班車:淺談恐怖游戲的發(fā)展
游戲首班車:淺談《部落與彎刀》的優(yōu)缺點(diǎn)
從B站的“8億、馮提莫”中,我看到了拼多多的影子