Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Guild Wars > GW Bots
You last visited: Today at 06:17

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

Advertisement



Frage zu Memories + DeathCheck

Discussion on Frage zu Memories + DeathCheck within the GW Bots forum part of the Guild Wars category.

Reply
 
Old   #1
 
N.E.O.'s Avatar
 
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.
N.E.O. is offline  
Old 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
kknb is offline  
Thanks
1 User
Old 02/06/2009, 15:30   #3
 
N.E.O.'s Avatar
 
elite*gold: 45
Join Date: Nov 2008
Posts: 4,308
Received Thanks: 991
Quote:
Originally Posted by kknb View Post
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!
N.E.O. is offline  
Old 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.

kknb is offline  
Thanks
1 User
Old 02/06/2009, 15:47   #5
 
N.E.O.'s Avatar
 
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...
N.E.O. is offline  
Old 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?
kknb is offline  
Thanks
1 User
Old 02/06/2009, 15:53   #7
 
N.E.O.'s Avatar
 
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?
N.E.O. is offline  
Old 02/06/2009, 16:06   #8
 
Gabba2's Avatar
 
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.
Gabba2 is offline  
Old 02/06/2009, 16:20   #9
 
N.E.O.'s Avatar
 
elite*gold: 45
Join Date: Nov 2008
Posts: 4,308
Received Thanks: 991
Quote:
Originally Posted by Gabba2 View Post
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!
N.E.O. is offline  
Old 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
kknb is offline  
Thanks
2 Users
Old 02/06/2009, 16:27   #11
 
N.E.O.'s Avatar
 
elite*gold: 45
Join Date: Nov 2008
Posts: 4,308
Received Thanks: 991
Quote:
Originally Posted by kknb View Post
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...
N.E.O. is offline  
Old 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. View Post
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
kknb is offline  
Thanks
1 User
Old 02/06/2009, 16:40   #13
 
N.E.O.'s Avatar
 
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() = Or _DeathCheck() = 7
    ControlSend
($GW"""""{1}")
    
Sleep(random(40,80))
    
WEnd
    
EndFunc 

Das ist der Auszug aus dem Script.
N.E.O. is offline  
Old 02/06/2009, 16:55   #14
 
Gabba2's Avatar
 
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
Gabba2 is offline  
Old 02/07/2009, 12:36   #15
 
N.E.O.'s Avatar
 
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?
N.E.O. is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

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