[爆卦]外掛腳本怎麼寫是什麼?優點缺點精華區懶人包

為什麼這篇外掛腳本怎麼寫鄉民發文收入到精華區:因為在外掛腳本怎麼寫這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者yoco315 (眠月)看板Python標題[閒聊] 用 Python 寫外掛..時間Sun J...


講一下我當初為什麼會接觸 Python 的原因 XD

之前我在玩一個線上遊戲,那個遊戲外掛抓很緊,都沒有外掛,

我想說我來寫一個當作練功順便自己用 XD 然後我就真的動手開始寫了。

用 Win32 API 的 ReadMemory 跟 SendMessage 等方法去取得遊戲的資料跟送出訊息。

(期間我也試過抓封包等方法想要做好一點,不過實在解密解不開 XD)


但是日子久了就發現要改外掛的行為好麻煩,每次都要重新編譯,

但是腳本這種東西測試跟修改其實很吃重,真正核心的功能都是不動了,

這個時候明白那些支援腳本能力的外掛為什麼會紅了,因為就是修改很方便,

所以我就想說自己設計一個 script language 來用,也真的動手下去作了。


但是實做到一半就發現這是個很吃重的工作,

單純跑腳本其實還好,如果我想要顧到執行效能跟語法彈性的話,實在很困難。

過沒多久我就放棄這個蠢主意。


後來突然明白我應該是去找一個現成的 script language 來用,

然後自己擴充這個 script language 的底層功能,

我第一個選的是語言是 Forth,因為這是我唯一會的 script 語言,

而且 Forth 的特色之一就是實做容易,所以我就真的去實做了。

(這個人講到跟打電動有關的東西,執行力真是特強悍 -_-)

很認真的看了 Forth 的實做經典文章,然後動手,發現其實事情也不是這麼簡單,

果然該文章的第一段很中肯:

「大家都聽說過 Forth 的實做很簡單,但是細節上到底怎麼作?

卻不是這麼清楚,這篇文章就是講清楚這些東西。」


當然這個我是實做的出來,但是還是想要找個更簡單的方法,

我去 survey 了一下 script language 的相關資訊,

Perl,Lua,Python 都看過了,最後選了 Python,

因為:

1. Perl 我看不懂 XD

2. Lua 好像 C

3. Python 看起來簡單明瞭,主要是那個中文的 tutorial 實在很好上手

然後就選了 Python,也開始實做了。

一邊看 Extension/Embeded 的文件,一邊實做,簡單也不太簡單,

但是一想到一旦完成以後,我可以用 Python 簡單的語法來寫腳本就覺得很爽,

結果等我 Extension 摸的差不多以後,我遊戲也沒玩了 -_-


之後 Python 就放了一年 XD


日前因為非本科系的同學在程式需要幫助,我又突然想到 Python 超簡單,

應該是非常適合不是資訊背景的人來學習,我就推薦他來學(效果是非常好),

然後自己也重新開始學習真的用 Python 來寫東西,唉呀真好用,

然後突然想到 Boost.Python 這個 C++ - Python cross language lib,

先前摸的時候沒有摸懂,那現在再來一次好了。


既然要寫,那我就拿當初要對付的遊戲來試看看 XD

那個遊戲現在也有私服了,我找了一個私服開了帳號,一邊玩一邊寫一邊測一邊改,

這次果真是非常快速的,

不到一個禮拜我就利用 Boost.Python 把一個外掛的核心功能包好,

然後把大部分的程式碼都用 Python 架好,

用 C++ 的部份都是 OS dependent 或是對效率非常要求的地方,

剩下的幾乎都是 Python 來完成。


到現在總共三個禮拜多了,

除了第一個禮拜有用到 C++,之後都是 Python,完全沒有碰到 C++ 的部份,

腳本的進度也非常快速,一下就做到我以前作不到的複雜度,

再經過一個禮拜的校調,穩定度已經非常不錯,連續 24 小時都很 OK,

吸哩呼嚕的也掛了一堆虛擬貨幣,現在已經是大財主了 -____-


這個私服外掛抓的跟官服一樣緊,

不過因為是自己寫的外掛,然後用 Python 也能輕鬆做到自由度很高,

就可以寫的很像是真人在玩,到現在都沒有被封帳號。


我在想我拿去官服應該也可以打一些虛擬貨幣來賣錢吧 XD

不過志不在此,算了,單純享受寫程式的樂趣 ^O^

--
To iterate is human, to recurse is divine.
遞迴只應天上有, 凡人該當用迴圈.   L. Peter Deutsch

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.78.40
revivalworld:學以致用 推 01/20 12:28
rs6000:不開放下載試用嗎XD 01/20 13:19
rexrainbow:推 01/20 21:35
yoco315:沒什麼人在玩的遊戲 XD 01/20 22:29
wayn12342000:好遙遠的封包截取阿~~可以教教嗎?我也是在寫私服外掛 01/22 08:33
wayn12342000:不過寫到最後還是選擇用按鍵精靈編腳本(泣...) 01/22 08:34
yoco315:我用現成工具的 沒什麼好教的 01/22 22:49
darkmore:哈哈~~真猛 01/27 11:01

你可能也想看看

搜尋相關網站