前往
大廳
主題

【程式入門】自動打怪的外掛是怎麼做的?

小櫻純真可愛 | 2024-03-05 06:56:15 | 巴幣 2 | 人氣 417

上週我去面試了一份海外工作,並成功拿到了offer。未來應該就沒時間撰寫文章,將進入半導體業。也希望大家能夠多學習外語,海外的工作薪資和待遇相當優厚。如果我有空的話,也會分享一些我在海外工作的心得。這個系列把之前許下的承諾都寫完,然後停止更新了。
對了,原本還有一篇python自動玩網遊的要寫,但是其實跟不上時代了,用機器學習會更好一點,所以就取消那篇了。


基本的方式介紹


2024年,AI與機器學習當道,在現在的科技進步下,已經有了使用機器學習算法或者強化學習來訓練一個自動打怪程式,在遊戲中自動探索環境,並學習如何與怪物進行互動和攻擊的方式。
目前已知的自動打怪外掛分別為,圖像處理和模擬點擊、內存掃描、機器學習和強化學習等方式,初學者想入門外掛最基礎的都是從圖像處理和模擬點擊開始,隨著科技越來越進步就讓我來分析這些外掛的使用方式。


圖像處理和模擬點擊


使用圖像處理庫(如OpenCV)來捕獲遊戲畫面中的各種元素,包括但不限於地形、玩家角色和怪物,並透過進階的影像處理技術檢測並精確定位怪物的位置。一旦怪物被準確偵測到,程式將模擬人類操作,自動進行點擊攻擊等動作,以實現自動化的遊戲操作。

目前,越來越少的人在使用純圖像處理和模擬點擊的方式來開發遊戲外掛,這是因為大多數有經驗的開發者都意識到,使用OpenCV等圖像處理庫僅能針對特定場景進行處理,而且容易受到遊戲更新或變化的影響。隨著技術的進步,開發者們更傾向於使用更具彈性和智能的方法來實現遊戲外掛。

相反,現代的遊戲外掛開發更多採用了基於機器學習的方法。這些方法可以讓外掛更加智能化和自適應,不僅可以應對不同的遊戲場景,還能夠在遊戲更新後保持運作。通過機器學習,外掛可以根據遊戲畫面和環境自動學習,並且具有更強大的適應能力,能夠處理更加複雜的遊戲操作任務。總的來說,雖然純圖像處理和模擬點擊仍然是一種有效的方式,但它已經不再是主流,而且在許多情況下,使用機器學習等先進技術可以更好地實現遊戲外掛的目標。

在環境相對單純且變數較少的情況下,OpenCV開發的外掛對電腦效能要求會低很多,例如神魔之塔的自走銅鑼就是使用了圖像識別技術,並且搭配其他演算法進行計算找出最佳路徑並且移動。

遊戲畫面捕獲


使用圖像處理庫,可以捕獲遊戲視窗。

圖像預處理:


在進行怪物位置檢測之前,可能需要對捕獲的畫面進行一些預處理,例如調整大小、轉換顏色空間、濾波等操作,以提高後續檢測的準確性。

物體檢測:


使用圖像處理技術,可以在遊戲畫面中檢測特定類型的物體,如怪物。這可以通過物體檢測算法(如Haar特徵分類器等)來實現。

位置標定:


一旦怪物被檢測到,圖像處理庫可以識別其在畫面中的位置,通常使用座標系統來標定其位置。

模擬點擊:


一旦怪物位置被檢測到,程式可以模擬鼠標或觸摸操作來將游標移動到怪物位置,並進行點擊操作以攻擊怪物。

持續更新:


此外,由於遊戲中的畫面和怪物位置可能會不斷變化,因此需要持續不斷捕獲、檢測和模擬點擊操作,以保持外掛的效果。

內存掃描


通過掃描遊戲進程的內存,尋找特定怪物的屬性或者狀態信息。

一旦怪物的信息被發現,可以通過修改遊戲內存中的數據來控制角色自動進行攻擊。

內存掃描是一種相對較少被採用的遊戲外掛開發方法,但仍然是一種有效的技術。

通過這種方法,開發者可以直接操作遊戲進程的內存,以檢測特定怪物的屬性或狀態信息,並進行相應的操作。

當怪物的信息被發現後,可以通過修改遊戲內存中的數據,來控制角色自動進行攻擊或其他操作。

儘管這種方法可以提供更直接和精確的控制,但也存在一些風險和挑戰。

首先,修改遊戲內存可能違反遊戲的使用條款,並可能導致帳號被封禁(機率非常高)

此外,內存結構和數據的變化可能導致內存掃描失效,每次遊戲更新就會需要再進行調整。

雖然內存掃描是一種強大的遊戲外掛開發技術,但其使用風險和技術門檻較高,因此在實際應用中使用的

較少。基本上就是逆向工程技術的方式,之前有寫過一些使用在單機遊戲,挺好玩的,但難度挺高。

機器學習和強化學習


現在大部分的外掛開發已經轉型到機器學習上。特別是在FPS(第一人稱射擊)遊戲中,環境變化多端,

且玩家需要快速做出反應。利用機器學習技術可以使外掛更具適應性,能夠在不同場景下持續運作並模仿

人類的行為。

FPS遊戲中,玩家需要迅速反應、準確射擊並採取適當的策略。使用機器學習,外掛可以通過觀察遊戲畫

面、分析敵人位置和行動模式來自動作出相應的反應。這包括自動瞄準、射擊和躲避敵人攻擊等動作,使

玩家能夠更輕鬆獲得勝利。

另外,機器學習還可以進一步提高外掛的隱蔽性,使其難以被檢測到。通過優化算法和運行方式,外掛可

以在遊戲中有類人類的表現,避免引起玩家的懷疑。

結語


這三種我都有拿來做過單機遊戲的外掛,幾年前機器學習還不普遍的時候通常都是逆向工程外掛(就是打開遊戲會有一個視窗勾選你要的效果那種),但這種外掛說真的開發難度偏高,需要去找出特定指針還有偏移等,但開發出一套外掛還是挺好玩的,圖像識別的那種應用就比較狹窄了,通常就是簡單的操作有辦法使用而已,幾年前用機器學習開發了單機遊戲的自描後發現新世界,做起來的難度低,但對硬體要求比較高,能夠實現更多元化的功能,並且在處理不同遊戲場景時具有更強大的適應性。
這文不是教你如何去寫外掛的,不要看一看就跑去線上遊戲影響別人的遊戲體驗阿

下一篇文章





【程式入門】遊戲外掛是如何撰寫的?

文章僅供學術交流使用如有法律糾紛與我並無關聯

本人在此特地聲明,謹此宣告,絕不自殺,絕不發生意外。 本人樂觀開朗,身體健康,近期至未來五十年之人生規劃都已妥當,交友廣闊,身無隱疾,且家中尚有老父老母需奉養,絕無任何自殺輕生之意圖。近期也未規劃前往外地旅遊踏青,生活作息正常,更無機會接觸木炭、毒藥、槍砲彈藥等危險管制物品。 本人並無任何使我困擾之慢性病或心理疾病,故絕不可能做出任何看似自殺之行為。 本人從無睡眠困擾,故不需服用安眠藥,更不會有服用過量的問題。 本人強調個人不酗酒也不吸毒。 。本人近期嚴守其身絕不會接近下列地點,例如: 1. 開放性水域以及偏郊積水攤 2. 任何無救生員之游泳池 3. 有高壓、危險氣體,或密閉式未經抽氣處理之地下室、蓄水池、水桶等 4. 無安全護欄之任何高處 5. 任何施工地點(拆政府除外),包括製作消波塊之工地 6. 任何以上未提及但為一般人正常不會前往之地點 。本人恪遵下列事項: 1. 開車或騎摩托車之前會檢查煞車部件、油門線等,並會在加油前關閉車輛電源與行動電話。 2. 絕不擅搶黃燈、闖紅燈。 3. 乘坐任何軌道類交通工具,本人一定退到警戒線後一步以上,直到車輛停妥。 4. 騎乘機車必戴安全帽;乘車必繫安全帶。 5. 絕不接近任何會放射對人體有立即危害的輻射之場所(如核電廠)或設備。 6. 颱風天不登山、不觀浪。 。本人將盡可能注意居家電器、瓦斯、火源之使用。 。本人居住之房屋均使用符合法規之電路電線,絕無電線走火之可能; 。本人絕對不在家中置放過量可燃性氣體或液體。 。浴室中除該有之照明外,不放置任何電器用品, 。睡覺前會關閉大量耗能電器,僅保持電燈、冰箱、電扇外之所有電器開關。 。本人絕不會與隨機的不明人士起衝突,並盡可能保護自我人身安全。 若本人被發現死亡,且現場無外力及打鬥掙扎痕跡,如在車內房間等等隱蔽場所,絕非本人自殺。 若網友在看完此聲明之後,近期或將來發現此帳號不再上線,請幫我討回公道,謝謝。
送禮物贊助創作者 !
0
留言

創作回應

更多創作