Register for your free account! | Forgot your password?

Go Back   elitepvpers › Coders Den › AutoIt
You last visited: Today at 10:55

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Tool Problem

Discussion on Tool Problem within the AutoIt forum part of the Coders Den category.

Closed Thread
 
Old   #1
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,263
Tool Problem

Hallo.
Ich habe ein Problem mit meinem Script.


Ich habe ein Tool geschrieben, dass so sein sollte.
Wenn ich auf den Button AFK drücke, soll er mich zu diesen Coordinaten ( 811.97 , 117.55 ) porten.
Die Pointer etc. habe ich schon.

Die Coordinaten sind natürlich vom typ Float.

Nun das Problem. Wenn ich auf den Button drücke, portet er mich irgendwo hin, wo er bock hat, also nicht zu den zugewiesenen Koordinaten

PHP Code:

Global $Pid = ProcessExists ("TClient.exe")
Global 
$Open = _MemoryOpen ($PID)

Global 
$ModuleX = _MemoryModuleGetBaseAddress ($PID, "TClient.exe") + 0x12345678
Global $OffsetX[4]
$OffsetX[0] = 0
$OffsetX
[1] = 0x123
$OffsetX
[2] = 0x123
$OffsetX
[3] = 0x123

Global $ModuleY = _MemoryModuleGetBaseAddress ($PID, "TClient.exe") + 0x12345678
Global $OffsetY[4]
$OffsetY[0] = 0
$OffsetY
[1] = 0x123
$OffsetY
[2] = 0x123
$OffsetY
[3] = 0x123


While 1
    $nMsg 
= GUIGetMsg()

    If 
ProcessExists ("TClient.exe") = False Then
    MsgBox 
(48,"Error","4story konnte nicht gefunden werden!")
    Exit
    EndIf

    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit

        Case 
$AFK
            $Open 
= _MemoryOpen ($PID)
            
$Write = _MemoryPointerWrite ($ModuleX, $Open, $OffsetX, 811.97,"float" ) & _MemoryPointerWrite ($ModuleY, $Open, $OffsetY, 117.55,"float")
            
$Close = _MemoryClose ($Open)

        Case 
$Exit
            
Exit

    EndSwitch
WEnd 
Wo liegt der Fehler :S

mfg Logtetsch
Logtetsch is offline  
Old   #2
 
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
$Write = _MemoryPointerWrite ($ModuleX, $Open, $OffsetX, 811.97 = "float" )
müsste da nicht ein Komma anstatt einem = hin?
evtl deshalb der Fehler.
klavier22 is offline  
Old   #3
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,263
Hab ich auch schon versucht, leider ohne Erfolg :/
Logtetsch is offline  
Old   #4
 
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
Der Fehler muss ja eigentlich bei _MemoryPointerWrite liegen, da du ja sagst, dass er dich portet, nur nicht dahin wo du willst.

Was ich noch probieren würde, ist nicht die beiden Schreibvorgänge in eine Variable quetschen, sondern jeden einzeln machen.
Da du die Variable nachher ja nicht verarbeitest, kann man das ja dort übersichtlicher Gestalten, also
$write1 = XKoordSchreiben
$write2 = YKoordSchreiben
evtl bringt das ja was (glaub ich aber nicht)

Außerdem verwirrt es micht, dass du in Offset1, 2, 3 immer das gleiche Schreibst, nur Offset1 würde da ja genügen.

Einen Fehler hab ich noch gesehen:
Oben öffnest du den Speicher aber schließt ihn dann nicht wieder, was evtl beim 2. $Open einen Fehler verursacht, weshalb die Schreibvorgänge dort einen falschen Wert bekommen - kann aber eigentlich nicht sein, da du ja sagst, dass er dich portet, nur nicht dahin wo du willst.

Wenn du genau das gleiche in CE machst, geht es dann?
also in AutoIT die ModuleX&Y ausgeben lassen und in CE als Pointer eintragen und bearbeiten.

Ach ja: du sagst er portet dich beliebig, heißt das immer zu einer anderen bestimmten Stelle oder immer zu einer anderen anderen Stelle? (evtl schwer verständlich, also ich meine immer zu der selben oder immer zu einer anderen Stelle?)
klavier22 is offline  
Old   #5
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,263
Quote:
Originally Posted by klavier22 View Post
Der Fehler muss ja eigentlich bei _MemoryPointerWrite liegen, da du ja sagst, dass er dich portet, nur nicht dahin wo du willst.

Was ich noch probieren würde, ist nicht die beiden Schreibvorgänge in eine Variable quetschen, sondern jeden einzeln machen.
Da du die Variable nachher ja nicht verarbeitest, kann man das ja dort übersichtlicher Gestalten, also
$write1 = XKoordSchreiben
$write2 = YKoordSchreiben
evtl bringt das ja was (glaub ich aber nicht)

Außerdem verwirrt es micht, dass du in Offset1, 2, 3 immer das gleiche Schreibst, nur Offset1 würde da ja genügen.
sowie du es gesagt hast habe ichs auch schon gemacht. Das sind keine Echten Offsets die Orginalen sind schon unterschiedlich .. :/
Kann es sein das ich den falschen Pointer benutze ?
Wenn ich in cheat engine die Koordinate verändere Portet er mich genau da hin, aber in autoit portet er mich dahin, wo er lust hat
Logtetsch is offline  
Old   #6
 
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
ne den Pointer benutzt du schon richtig, sonst würde er dich ja garnicht porten - auch wenn ich diese Funktionsweise von Pointern nocht nicht so gesehen hab - aber egal

Der Fehler MUSS bei dem _MemoryPointerWrite liegen wenn in Ce alles geht. Und wenn ichs mir jetzt so anschaue, hast du zwei "" (bei dem Koords) vergessen *facepalm*
klavier22 is offline  
Old   #7
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,263
Hab es auch schon mit den zwei "" versucht... klappt trotzdem nicht. :/
Logtetsch is offline  
Old   #8
 
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
Es muss aber in "" oder in ''.
Ansonsten seh ich keine weiteren fehler mehr. Er kann auch nur bei den Werten von Memorypointerwrite liegen, denn er portet dich ja --> Pointer + Offset richtig.
Außerdem geht in CE alles --> Pointer + Offset + Werte richtig.
Also kann es nurnoch ein Syntax Error sein. Und da ist wie gesagt dass du beides in eine Variable quetschst, was Probleme machen kann und dass "" fehlen.
Außerdem kann das fehlende _MemoryClose oben einen Fehler verursachen.
das "float" ist auch richtig, hab ich grade nachgeguckt.
Ich hab aber leider das Spiel nicht, also kann ich dir dann auch nichtmehr weiterhelfen.

Evtl mal ein MemoryPointerRead einbauen und gucken was er ausspuckt und evtl auch die Rückgabe von MemoryPointerWrite auswertten (0 = Fehler, Adresse= kein Fehler)
klavier22 is offline  
Old   #9
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,263
Ich hab das Script mal umgeschrieben......
Funktionieren tut es leider immernoch nicht.

PHP Code:

#RequireAdmin
#include <NomadMemory.au3>

If ProcessExists ("TClient.exe") = False Then
    MsgBox 
(48,"Error","Tclient.exe konnte nicht gefunden werden!")
    Exit
EndIf

If 
FileExists ("AGB.txt") = false Then
    IniWrite 
("AGB.txt","Allgemeine Geschäfts Bedingung","AGB","Ich überneheme keinerlei Haftung!")
    
MsgBox (48,"AGB","Bitte lese dir die AGB in dem Textdokument, was sich gerade erstellt hat, durch!")
    
ShellExecute ("AGB.txt")
EndIf




#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Porter = GUICreate("Porter", 337, 140, 192, 124)
$Porter = GUICtrlCreateGroup("Porter", 24, 16, 289, 73)
$X = GUICtrlCreateLabel("X", 40, 40, 11, 17)
$Y = GUICtrlCreateLabel("Y", 40, 64, 11, 17)
$Input1 = GUICtrlCreateInput("", 64, 32, 121, 21)
$Input2 = GUICtrlCreateInput("", 64, 56, 121, 21)
$Port = GUICtrlCreateButton("Port", 208, 32, 81, 41, $WS_GROUP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$AFK = GUICtrlCreateButton("AFK", 24, 104, 67, 25, $WS_GROUP)
$Farm = GUICtrlCreateButton("Farm", 104, 104, 75, 25, $WS_GROUP)
$Exit = GUICtrlCreateButton("Exit", 240, 104, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


Global $Pid = ProcessExists ("TClient.exe")
Global 
$Open = _MemoryOpen ($PID)
Global 
$end = _MemoryClose ($Open)

Global 
$ModuleX = _MemoryModuleGetBaseAddress ($PID, "TClient.exe") + 0x00123123
Global $OffsetX[5]
$OffsetX[0] = 0
$OffsetX
[1] = 0x123
$OffsetX
[2] = 0x123
$OffsetX
[3] = 0x123
$OffsetX
[4] = 0x123

Global $ModuleY = _MemoryModuleGetBaseAddress ($PID, "TClient.exe") + 0x003123123
Global $OffsetY[4]
$OffsetY[0] = 0
$OffsetY
[1] = 0x123
$OffsetY
[2] = 0x123
$OffsetY
[3] = 0x123


While 1
    $nMsg 
= GUIGetMsg()

    If 
ProcessExists ("TClient.exe") = False Then
    MsgBox 
(48,"Error","Tclient.exe konnte nicht gefunden werden!")
    Exit
    EndIf

    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit

        Case 
$AFK
            $Open 
= _MemoryOpen ($PID)
            
$Write = _MemoryPointerWrite ($ModuleX, $Open, $OffsetX, "811", "float")
            
$Write2 = _MemoryPointerWrite ($ModuleY, $Open, $OffsetY, "117", "float")
            
$Close = _MemoryClose ($Open)

        Case 
$Exit
            
Exit

        Case 
$Port
            $Open 
= _MemoryOpen ($PID)
            
$Write = _MemoryPointerWrite ($ModuleX, $Open, $OffsetX, $Input1, "float")
            
$Write2 = _MemoryPointerWrite ($ModuleY, $Open, $OffsetY, $Input2, "float")
            
$Close = _MemoryClose ($Open)

    EndSwitch
WEnd 
Logtetsch is offline  
Old   #10
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Schonmal gekuggt, ob du nach dem Porten in der CE auch die gleichen Werte hast?
BlackHybrid is offline  
Old   #11
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
erst refreshen, dann posten ^^



€2
bei "Case $Port"
$Input1 und $Input2 ?

guictrlread($Input1) und guictrlread($Input2) müssen dahin
omer36 is offline  
Old   #12
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,263
Hab es so versucht, aber er portet mich immernoch hin , wo er lust hat.... Eventuell könnte man eine TeamViewer Präsentation oder ne Bildschirmübertragung in Skype einrichten :/

Vl kann mir dann jemand helfen ...
Logtetsch is offline  
Old   #13
 
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
Ich glaub nicht dass man ein , braucht, denn AutoIT kommt ja ausm Englischen und da wird nen . genommen.
Das mit der Zeile trennen hatte ich ja schon vorgeschlagen.
Es kann eigentlich nur gehen - aber warum sagst du uns nicht die richtigen Adressen?
Die sind ja eh bei jedem gleich.

Und du hast in CE alles so gemacht wie ichs gesagt hab?
Erst mit AutoIT die $ModuleX und Y ausgeben lassen und dann bei CE als Pointer eingeben mit dem Offset?
Wenns dann geht dann ist alles richtig.

Außerdem gibt es bei mir in der NomadMemory nur
MemoryGetBaseAdress,
nicht
MemoryGetModuleBaseAdress
klavier22 is offline  
Old   #14
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,263
Quote:
Originally Posted by klavier22 View Post
Ich glaub nicht dass man ein , braucht, denn AutoIT kommt ja ausm Englischen und da wird nen . genommen.
Das mit der Zeile trennen hatte ich ja schon vorgeschlagen.
Es kann eigentlich nur gehen - aber warum sagst du uns nicht die richtigen Adressen?
Die sind ja eh bei jedem gleich.

Und du hast in CE alles so gemacht wie ichs gesagt hab?
Erst mit AutoIT die $ModuleX und Y ausgeben lassen und dann bei CE als Pointer eingeben mit dem Offset?
Wenns dann geht dann ist alles richtig.

Außerdem gibt es bei mir in der NomadMemory nur
MemoryGetBaseAdress,
nicht
MemoryGetModuleBaseAdress
_MemoryModuleGetBaseAddress ist schon richtig. Bei deisem hack habe ich das auch benutzt :

Ich habe mal das gemacht, was du gesagt hast. Hier die Ergebnise

PHP Code:
$hotkey = HotKeySet ("4","_read")

Func _read ()

 
$Open = _MemoryOpen ($PID)
 
$PointerRead = _MemoryPointerRead ($ModuleX, $Open, $OffsetX, "float")
 
$auslesen = GUICtrlRead ($PointerRead)
 
MsgBox (0,"",$auslesen)
 
$end = _MemoryClose ($Open)

EndFunc 
ERGEBNIS = 0


PHP Code:
$hotkey = HotKeySet ("4","_read")

Func _read ()

 
$Open = _MemoryOpen ($PID)
 
$PointerRead = _MemoryPointerRead ($ModuleX, $Open, $OffsetX, "float")
 
MsgBox (0,"",$PointerRead)
 
$end = _MemoryClose ($Open)

EndFunc 
ERGEBNIS = nichts
Logtetsch is offline  
Old   #15
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
$Open = _MemoryOpen ($PID)
$PointerRead = _MemoryPointerRead ($ModuleX, $Open, $OffsetX, "float")
MsgBox (0,"",$PointerRead[1])
omer36 is offline  
Closed Thread


Similar Threads Similar Threads
problem bei Api Tool fix
01/09/2011 - Metin2 Private Server - 5 Replies
Halöle liebe Forum schnüffler, Ich hab ein problem mit dem api tool fix. Ich wollte den Api Tool fixen so wie es in dem tutorial beschrieben wurde. Hab rebootet aber als ich mich eingeloggt hab kam der corefehler. Ich glaub mein fehler war das ich als ich den P2P port geändert habe einfach die CONFIG datei einfach aus dem game1_1 in alle anderen rein kopiert habe und keine backups gemacht hab. Deshalb wollt ich mal fragen ob mir jemand die CONFIG dateien usr/rain/auth/CONFIG ...
[PROBLEM]API-tool fixx problem
01/01/2011 - Metin2 Private Server - 1 Replies
hallo ich war grade dabei api-tool zu fixxen dann sollte ich auf cmd dann UPX.exe game eingeben das hatte ich getan doch dann kam der befehl ''Upx.exe ist entweder falsch geschrieben oder konnte nicht gefunden werden. BITTE hilfe übrigens das video mit der upx.exe game ist von youtube link:YouTube - How to Fix Api Tool



All times are GMT +2. The time now is 10:55.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.