|
You last visited: Today at 06:17
Advertisement
Frage zu Memories + DeathCheck
Discussion on Frage zu Memories + DeathCheck within the GW Bots forum part of the Guild Wars category.
02/06/2009, 15:18
|
#1
|
elite*gold: 45
Join Date: Nov 2008
Posts: 4,308
Received Thanks: 991
|
Frage zu Memories + DeathCheck
Kann mir wer das Script für den DeathCheck nochmal zeigen? Wäre sehr nett.
Und noch eine Frage: Wie kriege ich das hin, das der Bot weiss wieviele Kreaturen ich schon getötet habe?
Danke im vorraus!
#N.E.O.
|
|
|
02/06/2009, 15:27
|
#2
|
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
|
du fragst einfach deinen lebenstatus ab, das kannst du mit pixelsearch, pixelchecksum oder pixelgetcolor an deinem lebensbalken oder an sonstigen indizien machen dir dir anzeigen das du tot bist.das selbe kannst du per memoryread machen, gibt ja mittlerweile mehr wie genug beispiele mittlerweile hier im forum. du fragst den status einfach per adlibenable dauerhaft während des runs ab.
das mit den getöteten gegner zählen ist bald noch einfacher. wenn du gegner im hm killst. steht ja oben links inner ecke die gegneranzahl die du gekillt hast, mach einfach nach jedem gekillten gegner ne pixelchecksum von diesem helm wo die gegneranzahl drin steht. die werte die du bekommen hast kannst du dann in deinem bot einbauen. dann verglerichst du in deinem bot einfach die gegenwärtige checksumme und weist ihr die anzahl zu.
viel spass beim probieren
|
|
|
02/06/2009, 15:30
|
#3
|
elite*gold: 45
Join Date: Nov 2008
Posts: 4,308
Received Thanks: 991
|
Quote:
Originally Posted by kknb
du fragst einfach deinen lebenstatus ab, das kannst du mit pixelsearch, pixelchecksum oder pixelgetcolor an deinem lebensbalken oder an sonstigen indizien machen dir dir anzeigen das du tot bist.das selbe kannst du per memoryread machen, gibt ja mittlerweile mehr wie genug beispiele mittlerweile hier im forum. du fragst den status einfach per adlibenable dauerhaft während des runs ab.
das mit den getöteten gegner zählen ist bald noch einfacher. wenn du gegner im hm killst. steht ja oben links inner ecke die gegneranzahl die du gekillt hast, mach einfach nach jedem gekillten gegner ne pixelchecksum von diesem helm wo die gegneranzahl drin steht. die werte die du bekommen hast kannst du dann in deinem bot einbauen. dann verglerichst du in deinem bot einfach die gegenwärtige checksumme und weist ihr die anzahl zu.
viel spass beim probieren 
|
Danke, für diese lange Antwort!
Leider ist dieser lange Text umsonst gewesen, da ich es im Hintergrund machen will...! Sorry, von mir!
|
|
|
02/06/2009, 15:34
|
#4
|
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
|
dann machs einfach wie gesagt per memoryread.
|
|
|
02/06/2009, 15:47
|
#5
|
elite*gold: 45
Join Date: Nov 2008
Posts: 4,308
Received Thanks: 991
|
Ja, aber da steht irgendwie kein brauchbarer Code...
und dauerhaft braucht er nicht zu sein...
|
|
|
02/06/2009, 15:50
|
#6
|
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
|
was spricht gegen den code von Gabba2?
|
|
|
02/06/2009, 15:53
|
#7
|
elite*gold: 45
Join Date: Nov 2008
Posts: 4,308
Received Thanks: 991
|
Der?
PHP Code:
AdlibEnable("_Deathcheck", 500) [...] Func _Deathcheck() Select Case _MemoryRead($Death, $hprocess) = 1 $Runs = $Runs - 1 *resign* _Schleife() EndSelect EndFunc
_schleife() ist dann halt die Schleife die er normal durchgehend ausführt also while 1 *Wayout* *fight* *loot* *resign* wend endfunc
Da ist ja gar kein
PHP Code:
If $DCheck = XX Then
drinnen.
Was soll ich denn da einfügen?
|
|
|
02/06/2009, 16:06
|
#8
|
elite*gold: 0
Join Date: Jan 2008
Posts: 1,403
Received Thanks: 918
|
Um die Frage mal selbst zu beantworten: Gegen meinen Code spricht, dass er nur einen Death = True Durchlauf macht danach würde ja nochmal ein Adlib aufgerufen das funktioniert nur mit Adlib nicht was ich auch erst später getestet habe.
Als einfache Lösung ginge dann noch:
Code:
Func _Deathcheck()
Select
Case _MemoryRead($Death, $hprocess) = 1
$Runs = $Runs - 1
_resign()
_Schleife()
EndSelect
EndFunc ;==>_Deathcheck
Func _Check_Send($Taste, $hwnd)
_Deathcheck()
ControlSend($hwnd, "", "", $Taste)
EndFunc ;==>_Check_Send
Func _Check_Sleep($D_min, $D_max)
$Dauer = Random($D_min, $D_max)
$SlpAnfang = TimerInit()
Do
sleep(100)
_Deathcheck()
Until TimerDiff($SlpAnfang) >= ($Dauer - ($Dauer / 100))
EndFunc ;==>_Check_Sleep
Mit _Check_Send halt die Sends im Bereich in dem er Checken soll ersetzen und _Check_Sleep bei längeren Sleeps (unter 3 Sek. würd ichs nicht nehmen) die Resign und Schleife func musst du dann natürlich selbst einfügen genauso wie die Adresse von $Death.
|
|
|
02/06/2009, 16:20
|
#9
|
elite*gold: 45
Join Date: Nov 2008
Posts: 4,308
Received Thanks: 991
|
Quote:
Originally Posted by Gabba2
Um die Frage mal selbst zu beantworten: Gegen meinen Code spricht, dass er nur einen Death = True Durchlauf macht danach würde ja nochmal ein Adlib aufgerufen das funktioniert nur mit Adlib nicht was ich auch erst später getestet habe.
Als einfache Lösung ginge dann noch:
Code:
Func _Deathcheck()
Select
Case _MemoryRead($Death, $hprocess) = 1
$Runs = $Runs - 1
_resign()
_Schleife()
EndSelect
EndFunc ;==>_Deathcheck
Func _Check_Send($Taste, $hwnd)
_Deathcheck()
ControlSend($hwnd, "", "", $Taste)
EndFunc ;==>_Check_Send
Func _Check_Sleep($D_min, $D_max)
$Dauer = Random($D_min, $D_max)
$SlpAnfang = TimerInit()
Do
sleep(100)
_Deathcheck()
Until TimerDiff($SlpAnfang) >= ($Dauer - ($Dauer / 100))
EndFunc ;==>_Check_Sleep
Mit _Check_Send halt die Sends im Bereich in dem er Checken soll ersetzen und _Check_Sleep bei längeren Sleeps (unter 3 Sek. würd ichs nicht nehmen) die Resign und Schleife func musst du dann natürlich selbst einfügen genauso wie die Adresse von $Death.
|
Pack mir das mal pls in ne Funktion, das
If $DeathCheck = XX Then
ControlSend($GW,"","","""{1}")
EndIf
oder noch besser:
While $DeatchCheck = XX
ControlSend($GW,"","","","{1}")
Sleep(100)
WEnd
Danke!
|
|
|
02/06/2009, 16:25
|
#10
|
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
|
er kann dir ja auch gleich die bots schreiben die du dann verkaufst o_O
|
|
|
02/06/2009, 16:27
|
#11
|
elite*gold: 45
Join Date: Nov 2008
Posts: 4,308
Received Thanks: 991
|
Quote:
Originally Posted by kknb
er kann dir ja auch gleich die bots schreiben die du dann verkaufst o_O
|
Wer sagt das ich die verkaufe o_O?
Die Funktion funktioniert lediglich nicht bei mir, und ich weiss nicht woran das liegt...
|
|
|
02/06/2009, 16:37
|
#12
|
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
|
Quote:
Originally Posted by N.E.O.
Die Funktion funktioniert lediglich nicht bei mir, und ich weiss nicht woran das liegt...
|
vielleicht solltest du den code posten, denn ich glaube hier kann dir niemand einfach so sagen warum das nicht bei dir läuft, es nervt lediglich den leuten in letzter zeit alles aus der nase ziehen zu müssen.
ich glaub ich muss mal ne weile ne epvp auszeit nehmen
|
|
|
02/06/2009, 16:40
|
#13
|
elite*gold: 45
Join Date: Nov 2008
Posts: 4,308
Received Thanks: 991
|
Hier:
PHP Code:
While 1 ControlSend($GW, "", "", "{C}") Sleep(100) ControlSend($GW, "", "", "{2}") ControlSend($GW, "", "", "{6}") Sleep(500) ControlSend($GW, "", "", "{5}") _Deathcheck() WEnd
Func _Deathcheck() Select Case _MemoryRead($Death, $hprocess) = 1 _Send1() EndSelect EndFunc ;==>_Deathcheck
Func _Send1() While _DeathCheck() = 6 Or _DeathCheck() = 7 ControlSend($GW, "", "", "{1}") Sleep(random(40,80)) WEnd EndFunc
Das ist der Auszug aus dem Script.
|
|
|
02/06/2009, 16:55
|
#14
|
elite*gold: 0
Join Date: Jan 2008
Posts: 1,403
Received Thanks: 918
|
Ähm _Deathcheck() wird dir so wies ist nie 6 oder 7 wiedergeben. Für das wo dus (schätze ich mal) nutzen willst (Killroy Dungeon) bringt dir die Death Adresse auch nichts da das "ausgeknockt" nicht als tot zählt.
Code:
$downMem = 0x0D2A6A8
While 1
ControlSend($GW, "", "", "{C}")
Sleep(100)
ControlSend($GW, "", "", "{2}")
ControlSend($GW, "", "", "{6}")
Sleep(500)
ControlSend($GW, "", "", "{5}")
_Deathcheck()
WEnd
Func _Deathcheck()
while _MemoryRead ($downMem, $hprocess)= 6 Or _MemoryRead ($downMem, $hprocess)= 7
ControlSend($GW, "", "", "{1}")
Sleep(random(40,60))
wend
Endfunc
|
|
|
02/07/2009, 12:36
|
#15
|
elite*gold: 45
Join Date: Nov 2008
Posts: 4,308
Received Thanks: 991
|
Kilroy dungeon ist richtig.
Ich brauche es aber auch noch für andere Sachen.
Hättest du denn eine Idee, wie man das machen könnte, aber im BG?
|
|
|
 |
|
Similar Threads
|
Ständiger Deathcheck | Start-Button
05/13/2010 - GW Bots - 28 Replies
Hey ihr,
nachdem ich über das letzte Event hinweg ein paar der hier zu findenden Bots durchprobiert habe, spinnt seit vorgestern der Wunsch in meinem Kopf rum, sowas tolles möchte ich auch können! :D
Also habe ich mir ein paar Tuts angesehn, da mir AutoIt ja bis dato noch gänzlich unbekannt war und dann einfach mal drauflosgelegt. Ganz nach dem Motto: Learning by Doing. Klappt auch soweit besser als erwartet. Immerhin bin ich schonmal soweit, dass mein kleiner Bot in den nötigen...
|
GWCA Deathcheck
02/04/2010 - GW Bots - 3 Replies
Hey...irgendwie bekomm ichs nicht hin, nen vernünftigen Deathcheck in GWCA zu schreiben. Der hier funktioniert nicht:
$cbType = "int"
Do
Sleep(250)
CmdCB($CA_GETDEAD)
Until $cbVar = 1
Kann mir jemand helfen? Wäre nett ;-)
|
Deathcheck
04/26/2009 - GW Bots - 65 Replies
Ich hab in der Suchfunktion gesucht und hab mir fast alles durchgelesen...
dabei kam das hier raus:
If _MemoryRead($Check_NPC, $hprocess) = 1 Then
Sleep(10000)
ControlSend("Guild Wars", "", "", "ö")
Sleep(100)
ControlSend("Guild Wars", "", "", "{SPACE}")
Sleep(100)
|
Dauerhafter Deathcheck
01/01/2009 - Guild Wars - 14 Replies
Hi also ich wollte gerne den Deathcheck über AdlibEnable laufen lassen.
Aber das geht ja nicht, weil er dann die laufende Funktion nicht abbricht.
Wie regelt ihr das denn mit den Deathcheck?
|
Dauerhafter Deathcheck
12/16/2008 - Guild Wars - 19 Replies
Also meine frage ist nun wie ich einen dauerhaften Deathcheck einbauen kann.
Also natürlich mit einer schleife welcher schleifencode wäre dafür am besten?
Diese schleife soll dauerhaft im ganzen script laufen halt per memory abfrage
Die memory adresse dafür ist momentan
$Deathcheck = a044ec
Valuers sind
Nicht Tod = 0
Tod = 1
|
All times are GMT +1. The time now is 06:18.
|
|