Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Nomad.au3 Czyli Piszemy Trainera ;]


Rekomendowane odpowiedzi

Opublikowano

 

#include-once
#region _Memory
;=================================================================================================
; AutoIt Version:   3.1.127 (beta)
; Language:         English
; Platform:         All Windows
; Author:           Nomad
; Requirements:     These functions will only work with beta.
;=================================================================================================
; Credits:  wOuter - These functions are based on his original _Mem() functions.  But they are
;           easier to comprehend and more reliable.  These functions are in no way a direct copy
;           of his functions.  His functions only provided a foundation from which these evolved.
;=================================================================================================
;
; Functions:
;
;=================================================================================================
; Function:         _MemoryOpen($iv_Pid[, $iv_DesiredAccess[, $iv_InheritHandle]])
; Description:      Opens a process and enables all possible access rights to the process.  The
;                   Process ID of the process is used to specify which process to open.  You must
;                   call this function before calling _MemoryClose(), _MemoryRead(), or _MemoryWrite().
; Parameter(s):     $iv_Pid - The Process ID of the program you want to open.
;                   $iv_DesiredAccess - (optional) Set to 0x1F0FFF by default, which enables all
;                                       possible access rights to the process specified by the
;                                       Process ID.
;                   $if_InheritHandle - (optional) If this value is TRUE, all processes created by
;                                       this process will inherit the access handle.  Set to TRUE
;                                       (1) by default.  Set to 0 if you want it to be FALSE.
; Requirement(s):   A valid process ID.
; Return Value(s):  On Success - Returns an array containing the Dll handle and an open handle to
;                                the specified process.
;                   On Failure - Returns 0
;                   @Error - 0 = No error.
;                            1 = Invalid $iv_Pid.
;                            2 = Failed to open Kernel32.dll.
;                            3 = Failed to open the specified process.
; Author(s):        Nomad
; Note(s):
;=================================================================================================
Func _MemoryOpen($iv_Pid, $iv_DesiredAccess = 0x1F0FFF, $if_InheritHandle = 1)

   If Not ProcessExists($iv_Pid) Then
       SetError(1)
       Return 0
   EndIf

   Local $ah_Handle[2] = [DllOpen('kernel32.dll')]

   If @Error Then
       SetError(2)
       Return 0
   EndIf

   Local $av_OpenProcess = DllCall($ah_Handle[0], 'int', 'OpenProcess', 'int', $iv_DesiredAccess, 'int', $if_InheritHandle, 'int', $iv_Pid)

   If @Error Then
       DllClose($ah_Handle[0])
       SetError(3)
       Return 0
   EndIf

   $ah_Handle[1] = $av_OpenProcess[0]

   Return $ah_Handle

EndFunc

;=================================================================================================
; Function:         _MemoryRead($iv_Address, $ah_Handle[, $sv_Type])
; Description:      Reads the value located in the memory address specified.
; Parameter(s):     $iv_Address - The memory address you want to read from. It must be in hex
;                                 format (0x00000000).
;                   $ah_Handle - An array containing the Dll handle and the handle of the open
;                                process as returned by _MemoryOpen().
;                   $sv_Type - (optional) The "Type" of value you intend to read.  This is set to
;                               'dword'(32bit(4byte) signed integer) by default.  See the help file
;                               for DllStructCreate for all types.
;                               An example: If you want to read a word that is 15 characters in
;                               length, you would use 'char[16]'.
; Requirement(s):   The $ah_Handle returned from _MemoryOpen.
; Return Value(s):  On Success - Returns the value located at the specified address.
;                   On Failure - Returns 0
;                   @Error - 0 = No error.
;                            1 = Invalid $ah_Handle.
;                            2 = $sv_Type was not a string.
;                            3 = $sv_Type is an unknown data type.
;                            4 = Failed to allocate the memory needed for the DllStructure.
;                            5 = Error allocating memory for $sv_Type.
;                            6 = Failed to read from the specified process.
; Author(s):        Nomad
; Note(s):          Values returned are in Decimal format, unless specified as a 'char' type, then
;                   they are returned in ASCII format.  Also note that size ('char[size]') for all
;                   'char' types should be 1 greater than the actual size.
;=================================================================================================
Func _MemoryRead($iv_Address, $ah_Handle, $sv_Type = 'dword')

   If Not IsArray($ah_Handle) Then
       SetError(1)
       Return 0
   EndIf

   Local $v_Buffer = DllStructCreate($sv_Type)

   If @Error Then
       SetError(@Error + 1)
       Return 0
   EndIf

   DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')

   If Not @Error Then
       Local $v_Value = DllStructGetData($v_Buffer, 1)
       Return $v_Value
   Else
       SetError(6)
       Return 0
   EndIf

EndFunc

;=================================================================================================
; Function:         _MemoryWrite($iv_Address, $ah_Handle, $v_Data[, $sv_Type])
; Description:      Writes data to the specified memory address.
; Parameter(s):     $iv_Address - The memory address you want to write to.  It must be in hex
;                                 format (0x00000000).
;                   $ah_Handle - An array containing the Dll handle and the handle of the open
;                                process as returned by _MemoryOpen().
;                   $v_Data - The data to be written.
;                   $sv_Type - (optional) The "Type" of value you intend to write.  This is set to
;                               'dword'(32bit(4byte) signed integer) by default.  See the help file
;                               for DllStructCreate for all types.
;                               An example: If you want to write a word that is 15 characters in
;                               length, you would use 'char[16]'.
; Requirement(s):   The $ah_Handle returned from _MemoryOpen.
; Return Value(s):  On Success - Returns 1
;                   On Failure - Returns 0
;                   @Error - 0 = No error.
;                            1 = Invalid $ah_Handle.
;                            2 = $sv_Type was not a string.
;                            3 = $sv_Type is an unknown data type.
;                            4 = Failed to allocate the memory needed for the DllStructure.
;                            5 = Error allocating memory for $sv_Type.
;                            6 = $v_Data is not in the proper format to be used with the "Type"
;                                selected for $sv_Type, or it is out of range.
;                            7 = Failed to write to the specified process.
; Author(s):        Nomad
; Note(s):          Values sent must be in Decimal format, unless specified as a 'char' type, then
;                   they must be in ASCII format.  Also note that size ('char[size]') for all
;                   'char' types should be 1 greater than the actual size.
;=================================================================================================
Func _MemoryWrite($iv_Address, $ah_Handle, $v_Data, $sv_Type = 'dword')

   If Not IsArray($ah_Handle) Then
       SetError(1)
       Return 0
   EndIf

   Local $v_Buffer = DllStructCreate($sv_Type)

   If @Error Then
       SetError(@Error + 1)
       Return 0
   Else
       DllStructSetData($v_Buffer, 1, $v_Data)
       If @Error Then
           SetError(6)
           Return 0
       EndIf
   EndIf

   DllCall($ah_Handle[0], 'int', 'WriteProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')

   If Not @Error Then
       Return 1
   Else
       SetError(7)
       Return 0
   EndIf

EndFunc

;=================================================================================================
; Function:         _MemoryClose($ah_Handle)
; Description:      Closes the process handle opened by using _MemoryOpen().
; Parameter(s):     $ah_Handle - An array containing the Dll handle and the handle of the open
;                                process as returned by _MemoryOpen().
; Requirement(s):   The $ah_Handle returned from _MemoryOpen.
; Return Value(s):  On Success - Returns 1
;                   On Failure - Returns 0
;                   @Error - 0 = No error.
;                            1 = Invalid $ah_Handle.
;                            2 = Unable to close the process handle.
; Author(s):        Nomad
; Note(s):
;=================================================================================================
Func _MemoryClose($ah_Handle)

   If Not IsArray($ah_Handle) Then
       SetError(1)
       Return 0
   EndIf

   DllCall($ah_Handle[0], 'int', 'CloseHandle', 'int', $ah_Handle[1])
   If Not @Error Then
       DllClose($ah_Handle[0])
       Return 1
   Else
       DllClose($ah_Handle[0])
       SetError(2)
       Return 0
   EndIf

EndFunc

;=================================================================================================
; Function:         _MemoryPointerRead ($iv_Address, $ah_Handle, $av_Offset[, $sv_Type])
; Description:      Reads a chain of pointers and returns an array containing the destination
;                   address and the data at the address.
; Parameter(s):     $iv_Address - The static memory address you want to start at. It must be in
;                                 hex format (0x00000000).
;                   $ah_Handle - An array containing the Dll handle and the handle of the open
;                                process as returned by _MemoryOpen().
;                   $av_Offset - An array of offsets for the pointers.  Each pointer must have an
;                                offset.  If there is no offset for a pointer, enter 0 for that
;                                array dimension.
;                   $sv_Type - (optional) The "Type" of data you intend to read at the destination
;                                address.  This is set to 'dword'(32bit(4byte) signed integer) by
;                                default.  See the help file for DllStructCreate for all types.
; Requirement(s):   The $ah_Handle returned from _MemoryOpen.
; Return Value(s):  On Success - Returns an array containing the destination address and the value
;                                located at the address.
;                   On Failure - Returns 0
;                   @Error - 0 = No error.
;                            1 = $av_Offset is not an array.
;                            2 = Invalid $ah_Handle.
;                            3 = $sv_Type is not a string.
;                            4 = $sv_Type is an unknown data type.
;                            5 = Failed to allocate the memory needed for the DllStructure.
;                            6 = Error allocating memory for $sv_Type.
;                            7 = Failed to read from the specified process.
; Author(s):        Nomad
; Note(s):          Values returned are in Decimal format, unless a 'char' type is selected.
;                   Set $av_Offset like this:
;                   $av_Offset[0] = NULL (not used)
;                   $av_Offset[1] = Offset for pointer 1 (all offsets must be in Decimal)
;                   $av_Offset[2] = Offset for pointer 2
;                   etc...
;                   (The number of array dimensions determines the number of pointers)
;=================================================================================================
Func _MemoryPointerRead ($iv_Address, $ah_Handle, $av_Offset, $sv_Type = 'dword')

   If IsArray($av_Offset) Then
       If IsArray($ah_Handle) Then
           Local $iv_PointerCount = UBound($av_Offset) - 1
       Else
           SetError(2)
           Return 0
       EndIf
   Else
       SetError(1)
       Return 0
   EndIf

   Local $iv_Data[2], $i
   Local $v_Buffer = DllStructCreate('dword')

   For $i = 0 to $iv_PointerCount

       If $i = $iv_PointerCount Then
           $v_Buffer = DllStructCreate($sv_Type)
           If @Error Then
               SetError(@Error + 2)
               Return 0
           EndIf

           $iv_Address = '0x' & hex($iv_Data[1] + $av_Offset[$i])
           DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
           If @Error Then
               SetError(7)
               Return 0
           EndIf

           $iv_Data[1] = DllStructGetData($v_Buffer, 1)

       ElseIf $i = 0 Then
           DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
           If @Error Then
               SetError(7)
               Return 0
           EndIf

           $iv_Data[1] = DllStructGetData($v_Buffer, 1)

       Else
           $iv_Address = '0x' & hex($iv_Data[1] + $av_Offset[$i])
           DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
           If @Error Then
               SetError(7)
               Return 0
           EndIf

           $iv_Data[1] = DllStructGetData($v_Buffer, 1)

       EndIf

   Next

   $iv_Data[0] = $iv_Address

   Return $iv_Data

EndFunc

;=================================================================================================
; Function:         _MemoryPointerWrite ($iv_Address, $ah_Handle, $av_Offset, $v_Data[, $sv_Type])
; Description:      Reads a chain of pointers and writes the data to the destination address.
; Parameter(s):     $iv_Address - The static memory address you want to start at. It must be in
;                                 hex format (0x00000000).
;                   $ah_Handle - An array containing the Dll handle and the handle of the open
;                                process as returned by _MemoryOpen().
;                   $av_Offset - An array of offsets for the pointers.  Each pointer must have an
;                                offset.  If there is no offset for a pointer, enter 0 for that
;                                array dimension.
;                   $v_Data - The data to be written.
;                   $sv_Type - (optional) The "Type" of data you intend to write at the destination
;                                address.  This is set to 'dword'(32bit(4byte) signed integer) by
;                                default.  See the help file for DllStructCreate for all types.
; Requirement(s):   The $ah_Handle returned from _MemoryOpen.
; Return Value(s):  On Success - Returns the destination address.
;                   On Failure - Returns 0.
;                   @Error - 0 = No error.
;                            1 = $av_Offset is not an array.
;                            2 = Invalid $ah_Handle.
;                            3 = Failed to read from the specified process.
;                            4 = $sv_Type is not a string.
;                            5 = $sv_Type is an unknown data type.
;                            6 = Failed to allocate the memory needed for the DllStructure.
;                            7 = Error allocating memory for $sv_Type.
;                            8 = $v_Data is not in the proper format to be used with the
;                                "Type" selected for $sv_Type, or it is out of range.
;                            9 = Failed to write to the specified process.
; Author(s):        Nomad
; Note(s):          Data written is in Decimal format, unless a 'char' type is selected.
;                   Set $av_Offset like this:
;                   $av_Offset[0] = NULL (not used, doesn't matter what's entered)
;                   $av_Offset[1] = Offset for pointer 1 (all offsets must be in Decimal)
;                   $av_Offset[2] = Offset for pointer 2
;                   etc...
;                   (The number of array dimensions determines the number of pointers)
;=================================================================================================
Func _MemoryPointerWrite ($iv_Address, $ah_Handle, $av_Offset, $v_Data, $sv_Type = 'dword')

   If IsArray($av_Offset) Then
       If IsArray($ah_Handle) Then
           Local $iv_PointerCount = UBound($av_Offset) - 1
       Else
           SetError(2)
           Return 0
       EndIf
   Else
       SetError(1)
       Return 0
   EndIf

   Local $iv_StructData, $i
   Local $v_Buffer = DllStructCreate('dword')

   For $i = 0 to $iv_PointerCount
       If $i = $iv_PointerCount Then
           $v_Buffer = DllStructCreate($sv_Type)
           If @Error Then
               SetError(@Error + 3)
               Return 0
           EndIf

           DllStructSetData($v_Buffer, 1, $v_Data)
           If @Error Then
               SetError(8)
               Return 0
           EndIf

           $iv_Address = '0x' & hex($iv_StructData + $av_Offset[$i])
           DllCall($ah_Handle[0], 'int', 'WriteProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
           If @Error Then
               SetError(9)
               Return 0
           Else
               Return $iv_Address
           EndIf
       ElseIf $i = 0 Then
           DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
           If @Error Then
               SetError(3)
               Return 0
           EndIf

           $iv_StructData = DllStructGetData($v_Buffer, 1)

       Else
           $iv_Address = '0x' & hex($iv_StructData + $av_Offset[$i])
           DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
           If @Error Then
               SetError(3)
               Return 0
           EndIf

           $iv_StructData = DllStructGetData($v_Buffer, 1)

       EndIf
   Next

EndFunc
#endregion

 

 

 

Zapisujemy najpierw zawartość powyższego spoilera.

Do pliku NomadMemory.au3 i zapisujemy go w folderze include który znajduje się w głównym foderze autoit.

 

Funkcje nomad'a

_MemoryOpen($iv_Pid[, $iv_DesiredAccess[, $iv_InheritHandle]]) - otwiera pamiec do edycji/odczytu

_MemoryRead($iv_Address, $ah_Handle[, $sv_Type]) - odczytuje zawartość adresu z pamięci

_MemoryWrite($iv_Address, $ah_Handle, $v_Data[, $sv_Type]) -wpisuje do pamięci

_MemoryClose($ah_Handle) - zamyka pamięć

_MemoryPointerRead($iv_Address, $ah_Handle, $av_Offset[, $sv_Type]) - odczytuje zawartość z adresu z pamięci z wykorzystaniem pointera

_MemoryPointerWrite ($iv_Address, $ah_Handle, $av_Offset, $v_Data[, $sv_Type]) - jak wyżej z tym ze wpisuje do pamięci

 

Użytkowanie. ^^

Przykład odczytu z pamięci przykład oparty na Tutorial.exe czyli tutorialu z CheatEngine (krok 2)

 

#include <NomadMemory.au3>
Global $PID = ProcessExists("Tutorial.exe") ;odczytujemy PID procesu tutorial.exe

Const $offset[2] = [0, Dec(314)] ;zapisujemy offsety *1

$memarray = _MemoryOpen($PID) ; otwieramy pamięć
While 1
$mem =_MemoryPointerRead(0x00460c54,$memarray, $offset) ;odczytujemy zawartosć adresu
ToolTip($mem[1], 2, 2) ;wyswietlamy w tooltipie wartosć $mem[0] pokazuje adres a $mem[1] pokazuje wartosc adresu
WEnd
_memoryclose($CID) ; zamykamy pamięć

 

#include <NomadMemory.au3>
Global $PID = ProcessExists("Tutorial.exe") ;odczytujemy PID procesu tutorial.exe

Const $offset[2] = [0, Dec(314)] ;zapisujemy offsety *1

$memarray = _MemoryOpen($PID) ; otwieramy pamięć
$mem =_MemoryPointerWrite(0x00460c54, $memarray, $offset, 12345) ;wpisujemy cos do pamięci 1 parametr adres bazowy 2 parametr uchwyt MemoryOpen() 3 to offset a 4 to wartosc którą chcemy wprowadzić.
_memoryclose($CID) ; zamykamy pamięć

 

 

*1 w ten sposób zapisujemy offsety rozmiar tablicy musi wynosi minimum 2Bajty pierwsza komurka musi wynosić 0 a każda następna kolejny offset z tym ze przy kazdym nastepnym offsecie trzeba zwiększać rozmiar tablicy ;) posiadałem offset w decimal dla tego użyłem funkcji Dec() ale jeżeli ktoś ma w hex to tylko dopisuje 0x i offset

 

 

 

Później dam inne przykłady. :P po za tym więcej informacji na temat funkcji jest w samym include.

 

 

Zakaz kopiowania na inne fora <_<

 

@edit

jackraymund - Tutorial.exe znajduje się w folderze z cheatengine

  • Odpowiedzi 67
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

znikąd. :rolleyes: ja nie kopiuje cudzych tuto rialów jak inni jeżeli ci chodzi o to że na epvp.pl jest taki sam to chce ci objaśnić ze to jest moje drugie konto.

 

Nie dość ze coś dla was napisze to z mordą do mnie leci żal.pl

wanderleimayhem.gif

Opublikowano

Kulfix

Proszę bardzo:

http://www.google.pl/webhp?hl=pl#hl=pl&source=hp&q=Zapisujemy+najpierw+zawarto%C5%9B%C4%87+powy%C5%BCszego+spoilera.+Do+pliku+NomadMemory.au3+i+zapisujemy+go+w+folderze+include+kt%C3%B3ry+znajduje+si%C4%99+w+g%C5%82%C3%B3wnym+foderze+autoit.++Funkcje+nomad%27a+_MemoryOpen%28%24iv_Pid[%2C+%24iv_DesiredAccess[%2C+%24iv_InheritHandle]]%29+-+otwiera+pamiec+do+edycji%2Fodczytu+_MemoryRead%28%24iv_Address%2C+%24ah_Handle[%2C+%24sv_Type]%29+-+odczytuje+zawarto%C5%9B%C4%87+adresu+z+pami%C4%99ci+_MemoryWrite%28%24iv_Address%2C+%24ah_Handle%2C+%24v_Data[%2C+%24sv_Type]%29+-wpisuje+do+pami%C4%99ci+_MemoryClose%28%24ah_Handle%29+-+zamyka+pami%C4%99%C4%87+_MemoryPointerRead%28%24iv_Address%2C+%24ah_Handle%2C+%24av_Offset[%2C+%24sv_Type]%29+-+odczytuje+zawarto%C5%9B%C4%87+z+adresu+z+pami%C4%99ci+z+wykorzystaniem+pointera+_MemoryPointerWrite+%28%24iv_Address%2C+%24ah_Handle%2C+%24av_Offset%2C+%24v_Data[%2C+%24sv_Type]%29+-+jak+wy%C5%BCej+z+tym+ze+wpisuje+do+pami%C4%99ci&btnG=Szukaj+w+Google&lr=&aq=f&oq=&fp=4b2e26a97d9079b7

Skopiowałem kawałek tego tutka i na google -.-

Opublikowano

znikąd. :rolleyes: ja nie kopiuje cudzych tuto rialów jak inni jeżeli ci chodzi o to że na epvp.pl jest taki sam to chce ci objaśnić ze to jest moje drugie konto.

 

Nie dość ze coś dla was napisze to z mordą do mnie leci żal.pl

wanderleimayhem.gif

 

 

Pomylilem sie - przepraszam. Po prostu widzialem juz gdzies Nomada... Ty po prostu opisales jak z niego korzystac.

 

W ramach przeprosin dam Ci 1 000 000 zl.

milion_16listopada1993.jpg

 

 

:P

Nastepnym razem dokladniej sprawdze. ;P

  • 5 miesięcy temu...
Opublikowano

"Tutorial.exe czyli tutorialu z CheatEngine (krok 2)" Gdzie masz ten krok.? wydaje mi się że kopia ^^

Opublikowano

następny co nie umie czytać

Przykład odczytu z pamięci przykład oparty na Tutorial.exe czyli tutorialu z CheatEngine (krok 2)

oparty a nie skopiowany, podany sposób odczytu

 

CE nie ma nic wspulnegp z nomadmemory oprucz tego że obydwa służa do obsługi pamięci i robią dokładnie to samo , służą do zmian wartości offsetu pamięci

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

  • 3 tygodnie później...
Opublikowano

moze ktos wie czemu nie pokazyje mi w oknie jaka jestilosc hp??

#include <NomadMemory.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 145, 127, 192, 124)
GUISetBkColor(0x808080)
$Button1 = GUICtrlCreateButton("HP", 16, 16, 41, 33)
GUISetState(@SW_SHOW)
Global $proces = ProcessExists("Tibia.exe")

Const $offset[2] = [0, Dec(314)]
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
	Case $GUI_EVENT_CLOSE
		Exit
       Case $Button1
		   xx()
EndSwitch
WEnd
Func xx()

  $as = _MemoryOpen($proces)
  Global $proces2 =_MemoryPointerRead(0x0063FE94, $as, $offset)
  MsgBox(0,"hp", $as, 6)
  _memoryclose($proces)
  EndFunc




Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano

bo nie ma co pokazywać jak nie masz większości danych i pewnie właściwych adresów

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

A mógłbyś mi powiedziec czego dokładnie brakuje?? Byłbym wdzięczny:)

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano

lolku

zamiast pointer read

zastap _MemoryRead

bo offsety pewnie są inne a bóg wie jakie są :F

jakiś czas temu napisałem właśnie botka do leczenia oparty na tej funkcji

jeżeli nie zapomne to ściągne cheat engine i pobiore adressy i ci napisze skrypt

Opublikowano

mam cheat e. mam juz ip (zycia) :) a mozesz wytlumaczyc co to sa te offsety bo cos nie rozymiem dalej:D tzn nie chce gotowego skryptu bo probuje sam go napisac ale ni H nie idzie mi:(

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano

offset też nie wiem co to jest

ale masz tutaj to do pokazywania HP

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <nomad.au3>
Global $PID = ProcessExists("Tibia.exe")
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 633, 447, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 32, 16, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
	Case $GUI_EVENT_CLOSE
		Exit
	case $Button1
		asdf()
EndSwitch
WEnd

func asdf()
$memarray = _MemoryOpen($PID)
$dupeczka = _MemoryRead(0x0E54F411, $memarray)
msgbox(0,"info",$dupeczka)
EndFunc

 

adresy z 8.54

Opublikowano

WIESZ moze jak zrobic takie cudo że wynik $dupeczka bedzie wpisany zamiast w msgbox w labet ?? wiem ze trzeba dodac labet na forme ale nie wiem ktora komenda jest zeby wynik z $dupeczki tam wkleic ^^

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <nomad.au3>
Global $PID = ProcessExists("Tibia.exe")
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 633, 447, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 1, 1, 75, 25, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("NICOSC! HASUDHASD", 48, 32)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
	Case $GUI_EVENT_CLOSE
		Exit
	case $Button1
		asdf()
EndSwitch
WEnd

func asdf()
$memarray = _MemoryOpen($PID)
global $dupeczka = _MemoryRead(0x0E54F411, $memarray)
GUICtrlDelete($Label1)
$Label1 = GUICtrlCreateLabel($dupeczka, 48, 32, 36, 17)
EndFunc

zobacz może zadziała

Opublikowano
$zmienna=""
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
	Case $GUI_EVENT_CLOSE
		Exit
	Case $Button1
       xx()
       Case  $Button2
		$zmienna = True
       EndSwitch
If $zmienna = True Then
  $Label1 = 2300
    If  $Label1=GUICtrlCreateLabel($dupeczka, 104, 20, 55, 17) < 2300 Then
	send("{f12}")
	Sleep(1000)
    EndIf
EndIf


WEnd

Func xx()
While 2
$memarray = _MemoryOpen($PID)
$dupeczka = _MemoryRead(0x0063FE94, $memarray)
$Label1 = GUICtrlCreateLabel($dupeczka, 104, 20, 55, 17)
sleep(500)
WEnd
EndFunc


mam cos takiego no niby dziala(label) ale cos chyba zle zrobilem, label mi pokazuje co 500ms ile mam hp ale nie chce wykonac komendy kiedy hp spada ponizej 2300 widzisz moze moj blad??

If $zmienna = True Then
  $Label1=GUICtrlCreateLabel("2300", 104, 20, 55, 17)
    If  $Label1=GUICtrlCreateLabel($dupeczka, 104, 20, 55, 17) < $Label1=GUICtrlCreateLabel("2300", 104, 20, 55, 17) Then
	send("{f12}")
	Sleep(1000)
    EndIf
EndIf

moze tak cos w ta strone ale tez nie dziala:(

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano

poniżej czy powyżej

$Label1 = GUICtrlCreateLabel($dupeczka, 104, 20, 55, 17)

musisz usunąc z tego 2 ostatnie cyferki

$Label1 = GUICtrlCreateLabel($dupeczka, 104, 20)

 

+ zabardzo cie nie rozumiem

Opublikowano

chodzi o to ze moja postac ma na full 2315 hp i $dupeczka to aktualne hp czyli ze label1 =np: 1500hp i funkcjia ma byc

 if $dupeczka < 2315 than 
send("{f12}")
sleep(1000)
endif

czyli jak nie mam full hp to wciska f12 az bede mial full, teraz lepiej wytlumaczylem??

 

 

C:\Documents and Settings\loku\Pulpit\Nowy folder\TibiaBot0.1.au3(47,16) : WARNING: $dupeczka: possibly used before declaration.
If  $dupeczka <
~~~~~~~~~~~~~~^
C:\Documents and Settings\loku\Pulpit\Nowy folder\TibiaBot0.1.au3(47,16) : ERROR: $dupeczka: undeclared global variable.
If  $dupeczka <
~~~~~~~~~~~~~~^
C:\Documents and Settings\loku\Pulpit\Nowy folder\TibiaBot0.1.au3 - 1 error(s), 1 warning(s)

kiedy zrobilem tak

Func lecz()
while 3
If  $dupeczka < $Label2  Then
       send("{f12}")
       Sleep(1000)
EndIf
WEnd
EndFunc

w label2 wpisalem 2300 wedlug mnie powinno dzialac ale niestety nie dziala.:(

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <nomadmemory.au3>
Global $PID = ProcessExists("Tibia.exe")

$Form1 = GUICreate("Tibot 0.1", 164, 131, 192, 124)
GUISetBkColor(0x808080)
$Button1 = GUICtrlCreateButton("Hp", 16, 16, 57, 33, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Start", 16, 56, 57, 33, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("", 104, 20, 55, 17)
$Label2 = GUICtrlCreateLabel("2200", 104, 60, 55, 17)

HotKeySet("{F1}", "Koniec")
GUISetState(@SW_SHOW)


$zmienna=true
Global $dupeczka
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
	Case $GUI_EVENT_CLOSE
		Exit
	Case $Button1
             xx()
       Case  $Button2
		 lecz()
 EndSwitch


WEnd

Func xx()
While 2
$memarray = _MemoryOpen($PID)
$dupeczka = _MemoryRead(0x0063FE94, $memarray)
$Label1 = GUICtrlCreateLabel($dupeczka, 104, 20, 55, 17)
sleep(500)
WEnd
EndFunc
Func lecz()

       while 3
if $zmienna=true then
       If  $dupeczka < $Label2  Then
       send("{f12}")
       Sleep(1000)
       EndIf
endif
       WEnd
EndFunc


Func Koniec() ;f1 konczy prace programu
       MsgBox(0, "", "Koniec?", 6)
       Exit
EndFunc

Widzisz gdzie tu moze byc blad?? global $dupeczka chyba w dobrym miejscu wiec co nie tak?

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <nomadmemory.au3>
Global $PID = ProcessExists("Tibia.exe")

$Form1 = GUICreate("Tibot 0.1", 164, 131, 192, 124)
GUISetBkColor(0x808080)
$Button1 = GUICtrlCreateButton("Hp", 16, 16, 57, 33, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Start", 16, 56, 57, 33, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("", 104, 20, 55, 17)
$Label2 = GUICtrlCreateLabel("2200", 104, 60, 55, 17)

HotKeySet("{F1}", "Koniec")
GUISetState(@SW_SHOW)


global $kutas
Global $dupeczka
While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
               Case $GUI_EVENT_CLOSE
                       Exit
               Case $Button1
             xx()
       Case  $Button2
                        lecz()
        EndSwitch


WEnd

Func xx()
       While 2
       $memarray = _MemoryOpen($PID)
       $dupeczka = _MemoryRead(0x0063FE94, $memarray)
       $Label1 = GUICtrlCreateLabel($dupeczka, 104, 20, 55, 17)
       sleep(500)
       WEnd
EndFunc
Func lecz()
$kutas = guictrlread($label2)

       while 3
       If  $dupeczka < $kutas  Then
       send("{f12}")
       Sleep(1000)
       EndIf
       WEnd
EndFunc


Func Koniec() ;f1 konczy prace programu
       MsgBox(0, "", "Koniec?", 6)
       Exit
EndFunc

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...