Hab mal versucht in einen 0815 Hack Script den Pointer einzubauen,
jedoch ist es gefailt und wen ich jetzt auf den Button klicke , hat es keine Wirkung,meine Frage ist nun was habe ich falsch gemacht ?
Ich glaube ich trau meinen Augen nicht. Das ist der größte C&P Müll, den ich in meinem ganzen Leben gesehen habe. Ich guck mal was sich machen lässt und pack das Script dann nach einem Edit in den Anhang.
€: Tut mir leid, aber ich blick da erlich nicht durch.
Hast du keinen Pointer? Du musst doch einen Pointer haben, damit das Script funktioniert. Der Pointer ist schätzungsweise 80% der Arbeit. Wenn du nicht ordentlich Pointer suchen kannst, kann ich dir auch nicht helfen.
Der Aufbau des Scripts ist kompletter Schrott und gehört aus dem Internet gelöscht.
Mach mal einen Screenshot von deinem Pointer, oder du machst es sowie -STORM- erwähnt hat und postest uns diesen.
Hab mal schnell etwas gebastelt. Musst die Werte noch für dich anpassen.
PHP Code:
#region Abfrage if ProcessExists ("metin2client.exe") = False Then MsgBox (64,"Error","Metin2 konnte nicht gefunden werden! Bitte starten sie Metin2") Do Sleep (200) Until ProcessExists ("metin2client.exe") = True EndIf #endregion
Mal wieder nur kopiert... Natürlich auch vom erst besten Müll, der dir in die Augen sprang.
Das einzige was richtig funktioniert ist die von Koda erzeugte GUI. Der Rest ist einfach nur unbrauchbar.
Fangen wir mal bei den ersten selbst geschrieben Zeilen an:
Was ist hier falsch? Im Grunde nichts, dennoch furchtbar schlecht. Bevor du in diesem Fall die Variable $pid verwendest solltest du vorher entweder prüfen, ob das Fenster "METIN2" vor dem Funktionsaufruf WinGetProcess() existiert, oder der Wert der Variable > -1 ist (besser).
Bevor du das Handle benutzt, welches von _MemoryOpen() zurück gegeben wird, solltest du auch prüfen, ob es gültig ist. Dafür kannst du einfach das Makro "@error" verwenden. Tritt kein Fehler bei der Durchführung von _MemoryOpen() auf bekommst du auch ein gültiges Handle.
Code:
$testoffset1 = "444" ; offset neben dem metin2client.bin
$testoffset2 = "25E" ;das obere offset
$testoffset3 = "0002B9D0" ;steht neben dem metin2client.bin+[wert]
Global $AOffset[3]
$AOffset[0] = 0
$AOffset[1] = Dec($testoffset1)
$AOffset[2] = Dec($testoffset2)
$Aaddress = "0x" & Hex($baseadress + Dec($testoffset3))
Unnötige Variablen zu verwenden ist immer schlecht. Für diese wird Platz im Arbeitsspeicher reserviert. Mehr unnötige Variablen bedeuten also, dass unnötiger Weise nutzlos Speicher reserviert wird.
Die Offsets als Text zu verwenden um diese anschließend mittels Funktion in ein brauchbares "Format" zu bringen ist auch sinnlos, du kannst die Offsets gleich als Hexadezimalzahl angeben (z. B. $Offset = 0x666).
Code:
ToolTip ("warte auf Metin2" ,0,0)
$PID = ProcessExists("metin2client.exe")
ProcessWait($PID)
ToolTip ("Metin2 wurde Indifiziert." ,0,0)
$OPEN = _MemoryOpen($PID)
Gut gedacht, dass war es dann aber schon. Das Script funktioniert so zwar wenn der Prozess schon läuft, wird dieser nach dem Script gestartet funktioniert es nicht.
Du lässt dir zuerst die Prozess ID zurück geben. Existiert der Prozess zu dieser Zeit nicht, erhältst du den Rückgabewert 0. Anschließend möchtest du auf einen einen Prozess warten, der nie gestartet wird. Zumindest in der Theorie. ProcessWait() akzeptiert als Parameter keine Prozess ID, du musst den Namen angeben, den du bei ProcessExists() verwendet hast.
Richtig, dennoch schlecht und nicht empfehlenswert, wäre es so:
Code:
$PID = ProcessWait("metin2client.exe")
Beim Handle (sprich $OPEN) wieder das selbe wie oben schon erklärt.
Code:
If GUICtrlRead($Checkbox1) = 1 Then
_MemoryWrite(0x*****,$OPEN,60,"byte[2]")
Erst einmal möchte ich anmerken: Ganz schön egoistisch... Hilfe erwarten, aber relevantes, was anderen evtl. helfen könnte, zu entfernen. Dabei beziehe ich mich mal auf die Adresse. Außerdem kommt es sowieso nicht vor, dass jemand die Adresse aus deinem Script gefunden hätte, deshalb ist es meiner Meinung nach nicht nur egoistisch sondern auch noch banal. Egal.
"=" ist eigentlich ein Zuweisungsoperator, zum vergleichen sollte man "==" verwenden. Bei AutoIt nicht weiter tragisch, dennoch sollte man es sich ruhig angewöhnen.
Ich kenne mich mit Metin überhaupt nicht aus, betrachte es also als Frage.
Möchtest du wirklich ein "byte" Array der Größe 2 ändern, oder ist die Adresse zwei Byte groß? Wenn letztes zutreffen würde, müsstest du hier "short" bzw. "WORD" verwenden.
Zu guter Letzt sollte man noch erwähnen, dass du die Funktion "_Hack" nie aufrufst, also unnötiger Code. Selbes trifft auf den Pointer, da du ihn nicht verwendest.
Ich habe mit den Infos aus deinem Script mal folgendes gebastelt:
Das ist mir durchaus bewusst, ich habe das Script von Logtetsch gesehen. Den Grund warum, ich dennoch geantwortet habe, kannst du dem letzten Satz entnehmen.
Einfaches kopieren bringt außerdem nicht wirklich viel, ich habe alle Fehler einzeln angeschrieben und etwas dazu gesagt, was für Lernzwecke auf jeden Fall besser sein dürfte.
Script frage ( POINTER ) 04/20/2011 - AutoIt - 0 Replies habe jetzt den script bis jetzt killerdeluxe hatte schon etwas verbessert doch wenn ich den wer von unbesiegbarkeit (god ) freeze geht das programm zu
#RequireAdmin
#Include <NomadMemory.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Pointer Einbauen Geht nicht Brauche Hilfe !!! 08/10/2010 - AutoIt - 9 Replies Hallo Erst mal
Ich versuch grad ein hack für 4story DE zu machen aber ich schaf es nicht mit den Pointer hab alle Pointer Gescuht und gefunden aber weis nicht wie ich die einbaue kan jemand helfen wäre sehr Nett
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <NomadMemory.au3>
#include <StaticConstants.au3>
Lvl-Begrenzung einbauen? Hilfe bitte Script-Profis! 07/02/2010 - Metin2 Private Server - 3 Replies Hey Com,
wie baue ich in einen Quest von einem Event-Map-Porter eine lvl-Begrenzung ein,das der npc dann z.B. sagt du bist zu niedrig komm wieder wenn du 85 bist oder so ähnlich..oder zweite möglichkeit das man den Npc vorher nicht anklicken kann.
Hier mein Quest:
quest ***** begin
state start begin
when login or levelup with pc.level >0 begin
set_state(tanaka)
end
end
AutoIt Script in Button einbauen? 06/09/2010 - AutoIt - 5 Replies Hey,
nach langer Zeit wollt ich wieder mit AutoIt hantieren hab aber leider keine Ahnung mehr wie ich z.B. nen RunScript in nen Button einbaue.
bitte um Hilfe! >_<
Froce
Pointer Script... 03/06/2008 - Kal Online - 10 Replies Also will nen pointer script machen ^^
alloc(check,32)
check:
mov eax,
mov eax,