|
You last visited: Today at 12:19
Advertisement
[Tutorial] Memory Handeling in Guild Wars {Au3}
Discussion on [Tutorial] Memory Handeling in Guild Wars {Au3} within the GW Bots forum part of the Guild Wars category.
01/08/2010, 16:49
|
#46
|
elite*gold: 0
Join Date: Apr 2008
Posts: 362
Received Thanks: 353
|
Quote:
Originally Posted by mcshell19
Hello.
Since im not fluent in german, i would like to know if there is a guide like this in english, or if somebody could explain me in lite version, how to change it, becouse of the today update.
Ty
|
Today's update was all about GWCA not mems.
Ok, mems changed, too, like in every update, but that's not the point, i guess.
|
|
|
01/08/2010, 18:07
|
#47
|
elite*gold: 0
Join Date: Jan 2010
Posts: 11
Received Thanks: 0
|
So whats the situation then?
Can GWCA still be used,will it be updated, or is the end of botting.?
|
|
|
01/08/2010, 18:47
|
#48
|
elite*gold: 0
Join Date: Apr 2008
Posts: 362
Received Thanks: 353
|
Go to the Bot Section of this board. there you will find a "dll injector"
|
|
|
01/08/2010, 20:18
|
#49
|
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
|
|
|
|
01/08/2010, 21:22
|
#50
|
elite*gold: 0
Join Date: Apr 2008
Posts: 362
Received Thanks: 353
|
Quote:
Originally Posted by u-coRe
|
Pfff...können sich doch wenigstens selbst durchs Forum klicken:P
|
|
|
01/09/2010, 22:47
|
#51
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Werbung ist immer gut!
|
|
|
02/05/2010, 19:06
|
#52
|
elite*gold: 0
Join Date: Sep 2009
Posts: 51
Received Thanks: 8
|
hallo, ich hab des problem, dass bei mir immer eine errormeldung das skript beendet
Hier des Skript:
PHP Code:
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.0.0 Author: Saladino
Script Function: Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <NoMadMemory.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 633, 447, 192, 124) $Button1 = GUICtrlCreateButton("Punkte auf wert setzen", 400, 320, 193, 49, $WS_GROUP) $Button2 = GUICtrlCreateButton("Zeit auf wert setzen", 184, 320, 187, 49, $WS_GROUP) $Input1 = GUICtrlCreateInput("Input1", 248, 72, 233, 21) $Input2 = GUICtrlCreateInput("Input2", 248, 104, 233, 21) $Label1 = GUICtrlCreateLabel("Punkte", 112, 72, 132, 17) $Label2 = GUICtrlCreateLabel("Zeit", 112, 104, 132, 17)
GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ###
While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 Write1() Case $Button2 Write2() EndSwitch WEnd
$PID = WinGetProcess("Solitär") $hprocess = _MemoryOpen($PID)
$read1 = GUICtrlRead ( $Input1 ) $read2 = GUICtrlRead ( $Input2 )
Func Write1() _MemoryWrite(0x000AB0B8, $hprocess, $read1) EndFunc
Und hier die meldung:
C:\...\Neu AutoIt v3 Script.au3 (48) : ==> Variable used without being declared.:
_MemoryWrite(0x000AB0B8, $hprocess, $read1)
_MemoryWrite(0x000AB0B8, ^ ERROR
kann mir da wer helfen?
|
|
|
02/05/2010, 23:49
|
#53
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,874
Received Thanks: 213
|
Das ist ueberaus seltsam. Leider habe ich zZ. kein Windows System zur Verfuegung, weshalb ich dir nicht helfen kann.
Der Code sieht jedoch legetim aus, das verwundert mich ein bisschen.
Es scheint an $read1 oder $hprocess zu liegen, wobei ich mir nicht sicher bin.
|
|
|
02/06/2010, 08:47
|
#54
|
elite*gold: 100
Join Date: Oct 2007
Posts: 738
Received Thanks: 485
|
Probiers mal mit nem
vor
Code:
$hprocess = _MemoryOpen($PID)
und
Code:
$read1 = GUICtrlRead ( $Input1 )
|
|
|
02/06/2010, 11:16
|
#55
|
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
|
Du verwendest Local definitierte Variablen aus dem Globalen Scope im Localen Scope einer Funktion. Deshalb kann der Interpreter nicht auf hProcess und read1 zugreifen. wie ddl sagte kannst du das mit Dim (falls die Variable noch nicht globalisiert ist, ist sie es jetzt  ) oder mit Global (WHATVER, GLOBAL THAT ****!  ) beheben.
|
|
|
02/06/2010, 13:38
|
#56
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,874
Received Thanks: 213
|
*Kopf auf dem Tisch hau*
Darauf haette ich auch kommen muessen...
Als was wird ne "normale" ($bLub = "blablabla") variable von autoit angesehen?
|
|
|
02/06/2010, 23:25
|
#57
|
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
|
Quote:
Originally Posted by NBA
*Kopf auf dem Tisch hau*
Darauf haette ich auch kommen muessen...
Als was wird ne "normale" ($bLub = "blablabla") variable von autoit angesehen?
|
Kommt ganz drauf an wo sie steht.
Als aller erstes mal, ich kann das Script vom TE ohne Error trotz übereinstimmung der au3 Version tadellos ausführen, nachdem ich bei Case Button2 die undefinierte Funktion Write2() entfernt habe.
Führ mal das aus:
Code:
$x = "Global"
Func declareVar()
$y = "Local"
EndFunc
MsgBox(0x40, "", $x & @CRLF & $y)
Auf x (Global) kann zugegriffen werden, auf y (Lokal) nicht.
Code:
$x = "Global"
Func declareVar()
$y = "Local"
MsgBox(0x40, "x & y", $x & @CRLF & $y)
EndFunc
declareVar()
Auf beide Variablen kann zugegriffen werden, da x sowieso Global ist und nur lokal auf y zugegriffen wird.
Code:
$x = "Global"
Func declareVar()
Global $y = "Globalized Local"
EndFunc
declareVar()
MsgBox(0x40, "Unsaubere Ausnahme", $x & @CRLF & $y)
Ist möglich, aber hierbei bekomme ich mit v3.3 zwei Errors. Der Code lässt sich trotzdem ausführen und die MsgBox wird angezeigt.. aber wie geschrieben.. unsauberer gehts nicht.
Noch fragen?
greetz, coRe
|
|
|
02/08/2010, 19:30
|
#58
|
elite*gold: 0
Join Date: Sep 2009
Posts: 51
Received Thanks: 8
|
Also ich denk ich hab des verstanden, Global und Local kenn ich ja  , aber das error os immernoch da..
PHP Code:
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.0.0 Author: Saladino
Script Function: Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <NoMadMemory.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 633, 447, 192, 124) $Button1 = GUICtrlCreateButton("Punkte auf wert setzen", 400, 320, 193, 49, $WS_GROUP) $Button2 = GUICtrlCreateButton("Zeit auf wert setzen", 184, 320, 187, 49, $WS_GROUP) $Input1 = GUICtrlCreateInput("Input1", 248, 72, 233, 21) $Input2 = GUICtrlCreateInput("Input2", 248, 104, 233, 21) $Label1 = GUICtrlCreateLabel("Punkte", 112, 72, 132, 17) $Label2 = GUICtrlCreateLabel("Zeit", 112, 104, 132, 17)
GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ###
While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 Write1() EndSwitch WEnd
$PID = WinGetProcess("Solitär") Dim $hprocess = _MemoryOpen($PID)
Dim $read1 = GUICtrlRead ( $Input1 )
Func Write1() _MemoryWrite(0x000AB0B8, $hprocess, $read1) EndFunc
Code:
C:\Dokumente und Einstellungen\...\Neu AutoIt v3 Script.au3 (47) : ==> Variable used without being declared.:
_MemoryWrite(0x000AB0B8, $hprocess, $read1)
_MemoryWrite(0x000AB0B8, ^ ERROR
->19:25:03 AutoIT3.exe ended.rc:1
+>19:25:04 AutoIt3Wrapper Finished
>Exit code: 1 Time: 8.826
ich weis nicht was ich falsch mach -.-, ich versuch des jetzt mal mit einer anderen AutoIt Version, des neue beta z.B.
Also wenn ich da irgendeinen fehler gemacht hab könnt ihr mich gern korrigieren, hab au mal in der autoithilfe nachgelesen, werd aber einfach nicht schlau daraus..
Edit:
also wenn ich das alles in die funktion reinpacke gehts xD
PHP Code:
Func Write1() $PID = WinGetProcess("Solitär") Dim $hprocess = _MemoryOpen($PID) Dim $read1 = GUICtrlRead ( $Input1 ) _MemoryWrite(0x000AB0B8, $hprocess, $read1) EndFunc
Also muss es ja daran liegen, dass es diese variablen von NoMadMemory.au3 nicht in der function erkennt oder?
|
|
|
09/20/2010, 10:53
|
#59
|
elite*gold: 0
Join Date: May 2010
Posts: 4
Received Thanks: 0
|
Moin! Als erstes möchte ich mich hier für alle Tutorials bzw bei ihren Erstellern bedanken. Ich hab mich den gesamten gestrigen Tag mit der AutoIt-Hilfe und, da das für Anfänger wie mich z.T. noch unverständlicher Cowderwelsh ist, mit den hier im Forum zu findenden Tuts auseinandergesetzt.
Ursprünglich wollte ich auch erst wesentlich später die Community hier mit meinen Fragen belasten, nämlich erst wenn ich zumindest kleinere Erfolgserlebnisse zu verzeichnen hab und dann u.U. nur noch hier und da nen Schubs in die richtige Richtung benötige, aber dann bin ich eben über diesen Thread gestolpert. Ich hab nun das Gefühl, dass ich meinen Absichten von vornherein eine andere Richtung geben sollte.
Bevor ich nun mit sufu-ftw's, gidf's und  's zugeschustert werde, möchte ich klarstellen, dass ich keineswegs fertige Scripte erbetteln möchte, zu keinem Zeitpunkt. Genauso wenig möchte ich mich der Freude berauben, etwas selbst herauszufinden. Natürlich liegt ein Hauptgenuss des Bottens in der Wirkung, die es auf mein Spielerlebnis hat, frei nach dem Elitepvpers-Motto: play less, get more. Einen solchen Bot jedoch selbst von der Pike auf zu kreieren, mit möglichst wenig fremder Hilfe, ist ein nicht minder großer Genuss.
Zum Eingemachten  : Ich befinde mich in einem Außenposten und möchte, dass der Bot meinen Char anweist einen bestimmten Ausgang zu benutzen. In diesem Außenposten befinden sich jedoch mehrere Spawnpunkte, von wo aus der Bot den Ausgang finden können muss (die Re-Zone Methode kenn ich, darum geht es mir nicht  )
Meine ursprüngliche Idee war erstmal alle Spawnpunkte zu ermitteln, dann den nächststehenden Verbündeten an jedem Punkt auszuwählen und anhand der Länge des Namens über einen Befehl wie:
Code:
$farbe1 = PixelGetColor (267, 677) ;Erkennung von Verbündeter 1
$farbe2 = PixelGetColor (270, 675) ;Erkennung von Verbündeter 2
dem Bot die Möglichkeit zu geben zu erkennen wo er sich befindet und welchen Weg er laufen muss um den Ausgang zu erreichen. Mal abgesehen von der Tatsache, dass ich ihn nicht mal dazu bringen konnte, je nach Startpunkt nur eine bestimmte Zeit geradaus zu laufen, hielt ich die Idee für angebracht. Vermutlich lag das Ausbleiben von Erfolg auch nicht an der Idee, sondern an der Umsetzung
Nun scheint mir aber die Nutzung des Memory's ein bessere Herangehensweise zu sein. Die Ermittlung der Adresse für das Laufen ging ohne jegliche Hindernisse, genauso einfach die Änderung des Wertes, 1: laufen 0: nicht laufen. Mir kam die Idee, dass Verbündete auch eine statische Adresse haben könnten und so begab ich mich auf die Suche. Es stellte sich heraus, dass Verbündete zwar nicht eine statische Adresse haben, wohl aber die Zielanzeige und alles, was die Zielanzeige erfasst, einen statischen Wert hat. In diesem spezifischen Außenposten ist der Ausgang immer in Reichtweite, egal wo ich spawne. Mein Frage also lautet: kann ich dem Bot anweisen, bei Betreten des Außenpostens, über die statische Adresse "Zielanzeige" und den statischen, wohl gemerkt 9-stelligen Wert "Ausgang" diesen zu verwenden und falls ja, wie stelle ich das am besten an?
Wenn sich die Frikadelle von euren Ohren gelöst hat, wäre ich dankbar für ein paar Hinweise.
MFG
Caedmon
|
|
|
09/20/2010, 11:58
|
#60
|
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
|
schöner text, die ansätze sind soweit ja schon ok, und anscheinend hast du dich auch damit beschäftigt speicheradressen zu finden. im endeffekt denkst du da ein wenig zu umständlich. such dir einfach die adressen für für deine jeweilige position. auf gut deutsch die x und y koordinaten. wenn du die adressen hast kannst du einfach deinen standpunkt ermitteln und darauf reagieren. wenn du in der bot sektion ein paar seiten nach hinten blätterst wirst du sicher ein paar open source bots finden die diese methode anwenden.
werte schreiben würde ich nicht machen, bin mir nicht sicher inwiefern anet das erkennt. zum laufen würde ich dir die tt6 engine empfehlen, die ist ziemlich anfänger freundlich und wenn man sich den code anschaut kann man sogar noch was dabei lernen.
|
|
|
All times are GMT +1. The time now is 12:20.
|
|