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

Witam, poczatki z autoit Project Silkroad_SebekYzF


Rekomendowane odpowiedzi

Opublikowano

Witam, dopiero się uczę języke AutoIt, moze i krótko bo krótko ale cos tam powoli moze mi do głowy wchodzi, wczęsniej programowałem w Pawno może ktoś cos tam kojazy i te jezyki sa troche podobne (funkcje if itd)

 

A więc tak, Zaczełem się uczyć ale jak to ja musze coś zrobić po swojemu czyli najlepiej sie uczyc z open source kodów dostępnych w sieci.

 

Więc mój projekt jest taki żeby ogólnie połączyć program z grą(mniej więcej synchronizacja)

 

Mam offsetfinder tylko teraz moje pytanie jak przenies dane z Offsetu do autoit, Tzn zeby w prostym okienku Pokazał mi jak narazie tylko nick postaci.

 

Nie prosze o gotowy tutorial, czy zeby ktoś za mnie zrobił bo chce się nauczyć, ale żeby pokierował mnie w dobrym kierunku i co nieco wytłumaczył.

 

Mam coś takiego.

Kod wersja. 0.003

 

- Sprawdza czy Sro_Client jest odpalony (nie wyświetla MsgBox tylko w 1 oknie zmienia tresc "Włączono czy Wyłączony"

 

 

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
Global $PID = ProcessExists("SRO_CLIENT.exe") ; odczytuje silka

$nick = "" ; nazwa postaci
$on = "" ; czy wlaczony

#Region ### START Koda GUI section ### Form=d:\a3\moj autoit - nauka\silkroad_sebekyzf_0.kxf
$Silkroad_SebekYzF_0001 = GUICreate("Silkroad_SebekYzF_0001", 233, 105, 209, 141)
$Label1 = GUICtrlCreateLabel("Character Name:", 24, 32, 105, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput(($nick), 128, 32, 73, 21)
$Label2 = GUICtrlCreateLabel("Czytnik Nicku Postaci", 56, 8, 128, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

If ProcessExists(($PID)) Then
GUICtrlCreateLabel("Włączono",60, 64, 114, 17 ,1, $WS_EX_STATICEDGE)
Else
GUICtrlCreateLabel("Wyłączony!",60, 64, 114, 17 ,1, $WS_EX_STATICEDGE)
EndIf

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Input1
$nick()

EndSwitch
WEnd

$memarray =_MemoryOpen($PID) ; otwiera pamięć.

$nick = _MemoryRead(0xEEDAC0, $memarray, $offset) ;odczytuje zawartosc
ToolTip($nick[1], 2, 2) ; Wyswietla w tooltipie zawartosc $mem[0] pokazuje adres $mem[1] pokazuje wartosc adresu
_memoryclose($PID) ; zamykamy pamięć

 

A teraz mój pierwszy problemik:

 

- Odpala się program wszystko działa(niby) pokazuje czy silkroad włączony czy nie.

Ale... Nie zapisuje mi do $nick offseta pobranego z sro_clienta, offset jest napewno dobry bo w CE mi nick swój wyszukuje po nim właśnie.

 

-Inna możliwość że niewiem za bardzo jak go dodac do Lable wczesniej w msgbox wyskakiwało ale zamiast nicka było 0

 

czy mógły ktoś pomóć jak zwrócic z _memoryread na lable wartość? Zeby pobralo z sro_clienta mój nick i podało w Lable13

Wznoszę ręce do góry krzycząc do Ciebie Boże, zabierz do siebie wszystkich co giną na motorze

Opublikowano

Próbujesz odczytać pointer? Bo adres z każdym uruchomieniem pewnie się zmienia.

Użyj funkcji:

_MemoryPointerRead($iv_Address, $ah_Handle, $av_Offset[, $sv_Type])

 

 

 

_MemoryRead($iv_Address, $ah_Handle[, $sv_Type])

Tutaj nic nie pisze o offsetach więc po co go podajesz?

3 parametr to typ np. 4byte, dword.

 

 

 

2 problem

GuiCtrlSetData()

No chyba że nie zrozumiałem pytania.

Opublikowano

Znaczy offset który mam "0xEEDAC0 " sie nie zmienia, za kazdym odpaleniem silka doprowadza mnie do mojego nicku. 0xEEDAC0

Wznoszę ręce do góry krzycząc do Ciebie Boże, zabierz do siebie wszystkich co giną na motorze

Opublikowano

Tablica $offset zwraca jakiś element, a Ty nie podajesz indexu do niej nawet -.-"

Zastanów się trochę, weź to na logike..

 

Zrób tak:

$nick = _MemoryRead(0xEEDAC0, $memarray, "wchar[20]")

Opublikowano

To Inaczej zacznijmy od nowa zeby nie "po..." wszystkiego :)

 

Plan:

 

- Sprawdzenie Czy Silkroad jest włączony(done)

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
Global $PID = ProcessExists("SRO_CLIENT.exe") ; odczytuje silka
#Region ### START Koda GUI section ### Form=d:\a3\moj autoit - nauka\silkroad_sebekyzf_0.kxf
$Silkroad_SebekYzF_0001 = GUICreate("Silkroad_SebekYzF_0001", 229, 111, 209, 141)
GUICtrlSetBkColor(-1, 0x008000)
GUISetState(@SW_SHOW)

;; Sprawdza czy Sro_Client odpalony
If ProcessExists($PID) Then
GUICtrlCreateLabel("Włączono",60, 64, 114, 17 ,1, $WS_EX_STATICEDGE)
GUICtrlSetBkColor(-1, 0x019050)
Else ; jak nie dziala
GUICtrlCreateLabel("Wyłączony!",60, 64, 114, 17 ,1, $WS_EX_STATICEDGE)
EndIf
;;Koniec sprawdzenia.
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd

 

Silkroad_SebekYzF v0.002

plan:

 

-Sprawdzić ile mam hp & mp i wyświetlić to w programie( musi sie odswieżać co np. 5s, ale nie mulic programu)

^ Podejrzewam zrobić funkcje z "Sleep(4500)"

 

 

 

Teraz tak , mam adresy z Cheat Engine(poitnery) który wskazuje np. Ilość życia jak moge zrobić żeby z sro_clienta pobrało mi z tego adresu "Value" czyli zawartość tego?

- I podało mi w okienku np. MgsBox

Wznoszę ręce do góry krzycząc do Ciebie Boże, zabierz do siebie wszystkich co giną na motorze

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...