遊戲首班車:談談遊戲中外掛、腳本、輔助的區別

相信很多遊戲玩家都聽說過<strong>外掛、腳本、輔助這幾個詞吧,但他們之間的差異你瞭解嗎?今天小憨包將跟大家講解一下游戲中的輔助、腳本、外掛的區別究竟是什麼?

遊戲首班車:談談遊戲中外掛、腳本、輔助的區別

塞恩回頭R


遊戲輔助

大致類似遊戲第三方插件如《魔獸世界》的大腳 《夢幻西遊》的工具箱,多玩LOL盒子等等。

他們的共同特點便是<strong>不修改遊戲本質數據,提供幫助 演算 題庫 等不影響遊戲正常運營的範圍內軟件!如經驗計算器、寵物人物屬性計算器、技能冷卻計算器、冷卻提醒 跑商跑圖時間查詢、 擺攤賣東西收益查詢等。

遊戲首班車:談談遊戲中外掛、腳本、輔助的區別

原來盒子的戰鬥力是大家互相攀比的標準

此類軟件大部分遊戲運營商不反對,且提倡,因為這些數據極大的方便了官方的數據總結。英雄聯盟盒子被官方所禁用的主要原因便是一鍵換膚系統嚴重影響了官方皮膚的銷量


遊戲腳本

腳本的特點在於<strong>不修改遊戲數據,只是按照程序編寫的格式去代替你的遊戲操作,本質上只是為了實現計算機模擬人類行為而研發的一種工具。

目前市面上的按鍵精靈是軟件類腳本的佼佼者,其開放式的可上傳性,也讓它如日中天。

遊戲首班車:談談遊戲中外掛、腳本、輔助的區別

但是腳本的發展經歷需要分成兩個階段來講。早期的腳本只是提供全自動或者是半自動的操作,例如《傳奇》中的自動打怪尋路、《勁舞團》中的自動跳舞、《地下城與勇士》中的一鍵喊話等。為的是免去了人類機械化的重複操作,減少了遊戲前期準備的枯燥性。

遊戲首班車:談談遊戲中外掛、腳本、輔助的區別

《傳奇》中自動尋路的腳本

但是隨著科技的進步,一些腳本開始脫離了這個初衷,尤其MOBA遊戲中的腳本最為猖獗。我們就以《英雄聯盟》中的腳本來具體說一下。

首先,此類腳本的運行的目的是<strong>盡最大可能的避免操控的人物角色收到傷害。

在遊戲裡,鼠標放在技能上是可以看到非對向性技能的彈道的,所以可以通過腳本獲得對方英雄的彈道,彈道速度,技能距離的數據,再通過迴避“它”進行規避。

遊戲首班車:談談遊戲中外掛、腳本、輔助的區別

這個功能實現的基礎<strong>就在於計算機的計算速度要比人類高出很多。

所以在技能丟出去一瞬間,腳本早已計算好了最佳的躲避路徑。

就像這樣。

遊戲首班車:談談遊戲中外掛、腳本、輔助的區別

注意圖中的紅線代表著盲僧玩家鼠標點擊的位置

英雄聯盟是有受傷和無受傷兩種狀態。就比如說我被防禦塔打一下,我就受傷了,受傷是通過某個碰撞物打在我身上,所以腳本的目的就很明確了:<strong>迴避碰撞物防止受傷狀態。

同樣的還有大家耳熟能詳的走A操作,理論上走a攻速到1.7以上以正常人的反應速度就無法完美走a。但是可以通過代碼,進行完美的攻擊間隔計算,從而達到完美走a。


對於早期的腳本,遊戲公司不打壓,也不支持。但是對於後者這種等同於外掛的腳本,是會嚴厲打擊的。


遊戲外掛

<strong>遊戲是由無數的代碼堆疊而成的,而每個人對於功能代碼的實現所思考的方式是不同的,這就給外掛提供了可乘之機。在這些位置修改或者插入一些特殊代碼,就能夠實現改變遊戲的功能。小憨包還是用幾個例子來具體說明一下。

  • 內存修改

談到內存修改類遊戲就不得不提一下兩款大名鼎鼎的軟件:<strong>金山遊俠和<strong>cheat engine。

前者是國產遊戲修改軟件的鼻祖,後者可以說是遊戲外掛的始作俑者了。(LOL圈的阿呆就是利用金山遊俠修改的)

遊戲首班車:談談遊戲中外掛、腳本、輔助的區別

對於絕大多數的單機遊戲,手遊,頁游來說,雖然遊戲服務器保存了大量的重要的參數,但由於客戶端不可避免的需要進行大量的計算和資源的加載,本地內存中必定存有部分的臨時變量,通過判斷這些變量的變化規律和函數尋到利於自身的參數,比如傷害值一類。繼而尋找該變量的內存地址,再更久分析獲得內存基址進行修改,就完成了修改某項數值的操作。

為什麼某些3A大作在僅僅出來一週不到就會被破解,因為遊戲一旦下載下來,遊戲數據就會全部存於本機之中,這樣方便破解者的入手。

  • DNF

DNF本身在設計時採取的理念就是<strong>服務器負責發送與接收數據,不參與數值的計算。簡單來講就是服務器只負責當前角色的貨幣,裝備,材料等資源的獲取與消耗情況,但不會檢查過程是否合法,而角色的傷害運算則放在本地化進行。

遊戲首班車:談談遊戲中外掛、腳本、輔助的區別


我們知道Internet客戶/服務器模式的通訊一般採用TCP/IP通信協議,數據交換是通過IP數據包的傳輸來實現的,一般來說我們客戶端向服務器發出某些請求,比如移動、戰鬥等指令都是通過封包的形式和服務器交換數據。那麼我們把本地發出消息稱為SEND,意思就是發送數據,服務器收到我們SEND的消息後,會按照既定的程序把有關的信息反饋給客戶端,比如,移動的座標,戰鬥的類型。那麼我們把客戶端收到服務器發來的有關消息稱為RECV。

遊戲首班車:談談遊戲中外掛、腳本、輔助的區別

外掛截取傳輸數據並加以修改

知道了這個道理,接下來我們要做的工作就是<strong>攔截分析客戶端和服務器之間往來的數據,並且將其中一些數據進行修改,然後模擬服務器發給客戶端,或者模擬客戶端發送給服務器,這樣就可以實現我們修改遊戲的目的了。


  • 絕地求生

前兩者僅僅是運用了某一款外掛的功能,而在《絕地求生》中,玩家所使用的的外掛可謂是五花八門。

基礎功能:除草、無後座等

這是初級操作,是將本地某些特定文件中的參數進行修改即可實現。

遊戲首班車:談談遊戲中外掛、腳本、輔助的區別

除草掛

進階功能:透視,子彈瞬擊,加速,吸空投,秒換子彈,秒吃藥。(原有功能加強)

這個是在原有遊戲功能的基礎之上進行了加強,也就是實現了DNF中的攔截傳輸數據並且進行修改的功能,一般是在內存中進行。

遊戲首班車:談談遊戲中外掛、腳本、輔助的區別

人物透視

終極功能:自瞄,路飛手臂,子彈跟蹤,靈魂出竅,炸飛機,空中拳擊賽等非常規功能。

遊戲首班車:談談遊戲中外掛、腳本、輔助的區別

路飛手臂

此類是利用了遊戲代碼的漏洞,是原遊戲中沒有的功能。在原有代碼的基礎之上增加了一些本不該有的代碼,是真正具有開創性的功能。


最後想說的話

<strong>外掛,一個應該存在但是不應該出現的東西。被有心之人挖掘出來之後發揚光大,毀了一個又一個的經典遊戲,不可謂不可惡。

但是從另一個角度來看,說明我們現在的開發能力還是有很大的提升空間的。<strong>待有一日,希望這些所有的外掛、腳本、輔助能夠成為遊戲領域中進步的墊腳石吧!

​THE END


我是<strong>小憨包說遊戲,喜歡我的話就點個關注吧~

感謝支持!



往期回顧:


分享到:


相關文章: