เช่นตวามโค๊ตนี้ครับ
#AutoIt3Wrapper_UseX64=n
#RequireAdmin
#include
#include
#include
#include
$Form1 = GUICreate("Sol", 116, 29, 0, 0)
$Label1 = GUICtrlCreateLabel("", 16, 8, 57, 17)
GUISetState(@SW_SHOW)
While 1
Global $address = "0x01007170" ;ค่าพ้อยเตอร์ที่ต้องนำไปใช้คู่กับค่าออฟเซ็ต
Global $Offset[2]
$Offset[0] = 0 ; ใส่ 0 เป็นค่าเริ่ต้นทุกทครั้ง
$Offset[1] = 0x30 ; 0x30 เป็นค่าออฟเซ็ตเลขฐาน 16
$memopen = _MEMORYOPEN(ProcessExists("sol.exe")) ;เปลี่ยนชื่อไฟล์เกม
If $memopen = 0 Then
ConsoleWrite('ผิดพลาดไม่มีโปรแกรม =' & $memopen & @CRLF)
Exit
EndIf
$value = _MemoryPointerRead($address, $memopen, $Offset)
;ConsoleWrite('ค่าที่อ่านได้จากแอดเดรส ' & $value[0] & ' = ' & $value[1] & @CRLF)
GUICtrlSetData($Label1,$value[1])
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
พอจะมีคำสั่งแบบ ถ้า $value[1] เหลือ น้อยกว่าที่กำหนด จะสั่งกดคีย์ ทันที รึป่าวครับ
#AutoIt3Wrapper_UseX64=n
#RequireAdmin
#include
#include
#include
#include
$Form1 = GUICreate("Sol", 116, 29, 0, 0)
$Label1 = GUICtrlCreateLabel("", 16, 8, 57, 17)
GUISetState(@SW_SHOW)
While 1
Global $address = "0x01007170" ;ค่าพ้อยเตอร์ที่ต้องนำไปใช้คู่กับค่าออฟเซ็ต
Global $Offset[2]
$Offset[0] = 0 ; ใส่ 0 เป็นค่าเริ่ต้นทุกทครั้ง
$Offset[1] = 0x30 ; 0x30 เป็นค่าออฟเซ็ตเลขฐาน 16
$memopen = _MEMORYOPEN(ProcessExists("sol.exe")) ;เปลี่ยนชื่อไฟล์เกม
If $memopen = 0 Then
ConsoleWrite('ผิดพลาดไม่มีโปรแกรม =' & $memopen & @CRLF)
Exit
EndIf
$value = _MemoryPointerRead($address, $memopen, $Offset)
;ConsoleWrite('ค่าที่อ่านได้จากแอดเดรส ' & $value[0] & ' = ' & $value[1] & @CRLF)
GUICtrlSetData($Label1,$value[1])
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
พอจะมีคำสั่งแบบ ถ้า $value[1] เหลือ น้อยกว่าที่กำหนด จะสั่งกดคีย์ ทันที รึป่าวครับ