看板 Python 關於我們 聯絡資訊
講一下我當初為什麼會接觸 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