做外掛嘛,不玩怎么會做呢?
目前《天堂I》的外掛還很原始,實際應該只能稱之為輔助,還沒有達到外掛的標準。
依然之前他開發的三個功能:免蠟、自動保護、自動鎖定。
而現在,他要繼續加碼,使之成為名副其實的外掛!
首先,穿墻功能……
Emmmmmm……穿墻功能還是算了,既然要悶聲發大財,這個功能太引人注目,其他玩家一看就知道不對勁,不能弄。
體驗了一會兒游戲后,方杰很快便有了一個目標——先把自動拾取功能搞出來!
現在游戲里撿東西很麻煩的,就像前世的《傳奇》一樣,還得走上去點擊一下,才能拾取,所以必須搞出來。
這個功能其實比較容易實現,此前的外掛版本已經搭好了框架,很多工作不需要重復進行。
像取得窗口相對坐標和進程、讀取窗口信息和句柄、模擬鍵盤鼠標操作、CE中的數據類型分析……等等都是現成的,至于內存基址分析,此前就已經完成過一些,現在有20個技術人員幫忙分析,這都不存在問題。
接下來就是自動尋路的功能實現,因為撿東西必須要自動走路。
而這又涉及到坐標問題。
游戲中坐標植有浮點數,當用鼠標點中一個要走到的地址的時候,游戲中就會有這個地址的數值,所以可以先找到當前角色的坐標,走一下到地方后再搜索一下當前的坐標,角色在移動的過程當中,可以通過改變其數值來更改目地坐標。
還是老套路,找到角色坐標內存地址,分析出走路CALL,同時載入物品內存弟子,自動搜索識別,然后插入掉落物品的坐標變量作為目的地坐標,人物走上去,模擬鼠標點擊拾取,自動拾取的外掛功能就實現了。
這個功能方杰只用了個把小時就弄好了,代碼什么的,盡管有很多,但其實都有固定的格式,復制粘貼固定格式,改掉其關鍵數值就行,實際工作量并不大。
有了自動拾取,接下來就是要實現自動打怪功能。
這個反倒比自動拾取功能更簡單,此前已經開發出了半自動鎖怪的功能,現在無非是找到怪物基址,然后調出選怪CALL,加入半自動鎖怪程序中,加入一個循環判斷指令,就能實現全自動鎖怪。
至于怪物基址,雖然工作量巨大,但其實一開始并不需要把所有怪物基址找出來,只用找到特定地圖打錢怪的基址就行。
而且怪物基址一般都是一個蘿卜帶出一片泥,怪物基址都是存在于怪物列表當中的,找到一個怪物基址,稍加分析,游戲怪物列表就能全部找出來。
方杰暫時只是找到了一個適合用來打錢的地圖怪物基址,然后一個簡單的自動打怪功能就實現了,剩下的怪物列表讓讓下面的技術人員找到對應的基址,然后添加到外掛預設的怪物列表中即可,以后要自動刷什么怪可以自行設定。
至于自動使用技能殺怪,那就太簡單了,直接模擬鍵盤快捷鍵操作,并設置好技能施展間隔時間就行,這個不提也罷。
自動拾取、自動打怪、自動保護三項基礎功能實現后,一個真正意義上的外掛就誕生了,只要把游戲角色丟到某個地圖某個怪物刷新區域,開啟外掛功能,就能實現自動掛機功能。
但目前這個外掛還是很簡陋,只是作為基本框架的存在,身為完美主義者,方杰當然不會就此罷休……