2017-05-28 176 views
1

所以我正在研究一个程序来读取游戏中的值(Mitos.is:The Game)。 这是类似于Agar.io在AHK中读程序存储器

你有一个大小(质量),我想要得到的数量,它是一个程序,而不是像Agar.io这样的在线游戏。

我发现这个自动热键脚本:

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. 
; #Warn ; Enable warnings to assist with detecting common errors. 
SendMode Input ; Recommended for new scripts due to its superior speed and reliability. 
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. 


ReadMemory(MADDRESS=0,PROGRAM="",BYTES=4) 
{ 
    Static OLDPROC, ProcessHandle 
    VarSetCapacity(MVALUE, BYTES,0) 
    If PROGRAM != %OLDPROC% 
    { 
     WinGet, pid, pid, % OLDPROC := PROGRAM 
     ProcessHandle := (ProcessHandle ? 0*(closed:=DllCall("CloseHandle" 
     ,"UInt",ProcessHandle)) : 0)+(pid ? DllCall("OpenProcess" 
     ,"Int",16,"Int",0,"UInt",pid) : 0) 
    } 
    If (ProcessHandle) && DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",BYTES,"UInt *",0) 
    { Loop % BYTES 
      Result += *(&MVALUE + A_Index-1) << 8*(A_Index-1) 
     Return Result 
    } 
    return !ProcessHandle ? "Handle Closed:" closed : "Fail" 
} 


mass := ReadMemory(Address here, "Mitos.is: The Game") 

MsgBox, %mass% 

它可以无缝,但有一个小问题,在作弊引擎我把找到的基址的自由,如下图所示: Cheat Engine Base Address

所以我把地址在这里盘旋:Red Circle

然后插入到程序中它说“地址在这里”,如果这不是正确的地址,请纠正我,但是当我r estart游戏并运行我的脚本它说“失败”,但在Cheat Engine中地址仍然有效。帮帮我?

+0

凹凸,任何人有一个想法? – CUZLOCKED

+0

16次浏览1 upvote并且无评论或回复:( – CUZLOCKED

回答

0

检查地址,如果它重新启动在比赛结束后的变化,或不重新启动游戏只是运行该脚本没有重启,你还没有定义字节,因此尝试以下,

 ReadMemory(MADDRESS=0, PROGRAM="", BYTES=4) 
mass := ReadMemory("0x123456", "Mitos.is: The Game", "4") 

“PROGRAM”应该是正确的窗口标题使用间谍来获得正确的窗口标题,地址必须在十六进制值,即“0x15B29DD0”,我不知道你的金手指引擎如何读取程序存储器地址。

相关问题