簡單的搜尋座標內存基址的方法(轉貼)
作者:浪漫 出處:按鍵精靈~腳本研究及分享討論專區~
搜尋X座標(Y座標同理)
1.
打開CE 在Value 打上X座標的數字 按下First Scan (Hex不要打勾=16進位搜尋)
Value type 這裡選擇2Bytes
如果座標超過65535(應該很少遊戲的座標會那麼大)
則選擇4Bytes
會叫你選擇2Bytes 是因為有的遊戲比較特殊的關係
通常用Byte 2Bytes 4Bytes 搜尋的結果都一樣
2.
然後在移動個幾步路 讓X座標改變
在輸入改變後的座標 按下Next Scan
幸運的話 應該剩1~4組 (有的遊戲座標就有那麼多組位置)
3.
超過4組以上 在重複2的動作 如果一直無法減少請讓遊戲畫面轉換
例如人在某房間 進出房間就可以了
旁邊Found 的記憶體位置 如果不符合座標 就是錯誤的
把剩下的幾組雙擊點到下面去
4.
按右鍵選擇Pointer scan for this address 會出現兩個視窗
小視窗 = 你搜尋的視窗窗口
中視窗 = 搜尋的結果 視窗內會出現幾組資訊
隨便點一組進入 第三行紅字的就是你X座標的偏移(參考寫真集的看偏移)
把中間那組記憶體位置記下
把Hex打勾 打上那組記憶體位置 按下First Scan
旁邊Found 如果出現綠色的字體是6位數 00xxxxxx 這就是基址了
沒出現基址的話 請把01xxxxxx~0xxxxxxx 在點擊到最下面
以我的經驗 偏移的位置都是7位數
在重複4的搜尋 直到出現基址為止
偏移量請記下 填寫方式(參考寫真集的填放基址位置)
最先搜尋到的放最上面
左邊則是填寫基址
如何運用在遊戲上
假設X座標的基址為600000 偏移1次 偏移量為900
Y座標偏移為904 XY的基址通常都是一樣的 偏移大部分就差4
1.VBScript命令
VBSCall ReadMemory(&h600000,1,m)
VBSCall ReadMemory(m+&h900,1,x)
VBSCall ReadMemory(m+&h904,1,y)
// 0 = 位元組 = Byte
// 1 = 整數 = 2Bytes
// 2 = 長整數 = 4Bytes
If x>=500 or x=<300 or y>=400 or y=<200
//執行返回座標點
EndIf
2.按鍵精靈本身的內存插件
Plugin hwnd=Window.Foreground()
Plugin m=Memory.Read16Bit(hwnd,&h600000)
Plugin x=Memory.Read16Bit(hwnd,m+&h900)
Plugin y=Memory.Read16Bit(hwnd,m+&h900)
// 8Bit = 位元組 = Byte
// 16Bit = 整數 = 2Bytes
// 32Bit = 長整數 = 4Bytes
If x>=500 or x=<300 or y>=400 or y=<200
//執行返回座標點
EndIf
3.361內存插件1.0版
(怕有些遊戲按鍵精靈本身插件無法讀到內存基址多增加一種寫法)
Plugin hwnd=Window.Foreground()
Plugin x=MemoryS.ReadInt(hwnd,"[[600000]+900]",1)
Plugin y=MemoryS.ReadInt(hwnd,"[[600000]+904]",1)
// 0 = 位元組 = Byte
// 1 = 整數 = 2Bytes
// 2 = 長整數 = 4Bytes
If x>=500 or x=<300 or y>=400 or y=<200
//執行返回座標點
EndIf
- May 16 Sat 2009 00:03
【按鍵精靈-高級篇】簡單的搜尋座標內存基址的方法(轉貼)
close
全站熱搜
留言列表