|
You last visited: Today at 04:05
Advertisement
Tool Problem
Discussion on Tool Problem within the AutoIt forum part of the Coders Den category.
10/09/2011, 20:30
|
#1
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
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
|
|
|
10/09/2011, 23:23
|
#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.
|
|
|
10/10/2011, 08:47
|
#3
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Hab ich auch schon versucht, leider ohne Erfolg :/
|
|
|
10/10/2011, 12:56
|
#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?)
|
|
|
10/10/2011, 12:59
|
#5
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Quote:
Originally Posted by klavier22
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
|
|
|
10/10/2011, 13:30
|
#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*
|
|
|
10/10/2011, 14:00
|
#7
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Hab es auch schon mit den zwei "" versucht... klappt trotzdem nicht. :/
|
|
|
10/10/2011, 14:33
|
#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)
|
|
|
10/10/2011, 14:53
|
#9
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
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
|
|
|
10/10/2011, 14:55
|
#10
|
elite*gold: 52
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?
|
|
|
10/10/2011, 14:57
|
#11
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
erst refreshen, dann posten ^^
um was für ein spiel handelt es sich denn?
fehlt da nicht noch die z-koordinate? für die höhe.
oder versuch mal anstelle von 811.97 einfachmal "811,97" zu schreiben oder vllt noch besser einfach 812.
bzw seh ich grad:
PHP Code:
$Write = _MemoryPointerWrite ($ModuleX, $Open, $OffsetX, 811.97,"float" ) & _MemoryPointerWrite ($ModuleY, $Open, $OffsetY, 117.55,"float")
kA ob man das so machen kann...
vllt klappts ja so?
PHP Code:
$WriteX = _MemoryPointerWrite ($ModuleX, $Open, $OffsetX, "811,97", "float" ) $WriteY = _MemoryPointerWrite ($ModuleY, $Open, $OffsetY, "117,55", "float")
€2
bei "Case $Port"
$Input1 und $Input2 ?
guictrlread($Input1) und guictrlread($Input2) müssen dahin
|
|
|
10/10/2011, 15:16
|
#12
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
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 ...
|
|
|
10/10/2011, 15:21
|
#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
|
|
|
10/10/2011, 15:31
|
#14
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Quote:
Originally Posted by klavier22
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
|
|
|
10/10/2011, 15:35
|
#15
|
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])
|
|
|
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 +1. The time now is 04:06.
|
|