Pixelgetcolour zum Aggro check

01/02/2009 17:37 Kaneoxi#1
happy new year,

ich habe eine routine geschrieben, um den aggro-bereich auf dem kompass auf gegner (rote pixel) zu prüfen. leider greift er die gegner, nach den positiven check nicht an. hat jemand eine idee?
PHP Code:
HotKeySet("{END}","_exitit")
HotKeySet("{NUMPAD0}","_check_aggro")

AutoItSetOption ("SendKeyDelay",150) ;Delay wird in ms angegeben, Standardwert is 5 
AutoItSetOption 
("SendKeyDownDelay",150)


WinWait("Guild Wars", "")
If 
Not WinActive("Guild Wars", "") Then WinActivate("Guild Wars", "")
WinWaitActive("Guild Wars", "")


Func _exitit() 
exit 
0
EndFunc



Func _check_aggro
()

$yy = 112
$zz 
= 0


    
if $yy < 162 then
        
             
for $xx = 1159 to 1109 Step -1
            
                $check_aggro 
= hex(PixelGetColor($xx, $yy),6) ; Koordinaten!
                If 
$check_aggro = "FF0000" Then ; schaut nach ob die Farbe "FF0000" (Rot) auf den koordinaten zu finden ist. Wenn JA dann Funktion aufrufen _giveup()! Wenn NEIN nichts machen und normal weiter Boten!
                
send("c")
                
sleep(500)
                
send("{SPACE}")
                
Sleep(random(1000,1250))
                
$zz = 1
                
Else    
                
$zz = 0
                
EndIf
            
Next
    
        
if $zz = 1 then 
        $yy 
= 112
        
else
        
$yy = $yy+1
        
Endif
    endif

EndFunc  




while 1
        sleep 
(100)
WEnd 
thx im voraus und besonders für den entwickler der hauptroutine:)
01/02/2009 17:52 aLasca#2
PixelseArch stATt pIXelgetcolor - sorry fürS großkLEinschreiben.. der bot hIEr ist komisCH xD
01/02/2009 18:10 Azunai#3
überm kompass liegt ne halbtransparente schicht,
die läst kein pures rot durch ;P
01/02/2009 18:14 aLasca#4
naja dann halt 10stufen dieses farbwertes angeben
01/02/2009 18:30 __wadim#5
aggro = CHECK_MAP - 9A8h
sollte auch gehen


Gruß
Wadim
01/02/2009 20:21 Kaneoxi#6
Quote:
aggro = CHECK_MAP - 9A8h
sagt mir leider nichts :(

wie lautet die funktion dafür :rolleyes:

bei autoit konnte ich dazu nichts finden. zz versuche ich es mit pixelsearch

thx bis dahin
01/02/2009 20:33 __wadim#7
$blub = _MemoryRead((0xAktuelle_CHECK_MAP_Adresse - 0x9a8h) , _MemoryOpen(ProcessExists("Gw.exe")))

$blub = 1 = aggro
$blub = 0 = kein aggro
01/03/2009 22:40 Kaneoxi#8
also immoment bin ich soweit:
PHP Code:
#include "nomadmemory.au3"
#include "blub.au3"

;;

HotKeySet("{END}","_exitit")
HotKeySet("{NUMPAD0}","_check_aggro")

AutoItSetOption ("SendKeyDelay",150) ;Delay wird in ms angegeben, Standardwert is 5 
AutoItSetOption 
("SendKeyDownDelay",150)


WinWait("Guild Wars", "")
If 
Not WinActive("Guild Wars", "") Then WinActivate("Guild Wars", "")
WinWaitActive("Guild Wars", "")


Func _exitit() 
exit 
0
EndFunc



Func _check_aggro
()
do            
$zz = 0

$pid 
= ProcessExists("gw.exe")
$hpid = _MemoryOpen($pid)


    
$blub = _MemoryRead((0x00D288F0 - 0x9a8h) ,$hpid)
    if 
$blub = 1 then
    send
("c")
    
sleep(500)
    
send("{SPACE}")
    
Sleep(random(1000,1250))
    
$zz = 1
    $blub 
= 0
    
Else    
    
$zz = 0
    $blub 
= 0
    
EndIf
until $zz = 0    

EndFunc  

while 1
        sleep 
(100)
WEnd 
und habe nomadmemory.au3 in das selbe verzeichnis kopiert, da ich nicht c:/program files/... habe. nur wo gibt es blub.au3? zumindest nicht bei autoit.:confused:
01/04/2009 01:22 NBA#9
glp..uhhh...das ist schlimm...es gibt keine blub.au3! Das war ein synonym fuer etwas anderes...
01/05/2009 21:16 Kaneoxi#10
nachdem ich nun "blub.au3" gelöscht habe (bin aber der meinung es irgendwo mal gelesen zu haben), gibt es ein problem mit der mem-adresse.
PHP Code:
$blub = _MemoryRead((0x00D288F0 - 0x9a8h), $hpid) 
Quote:
==> Missing separator character after keyword.:
Quote:
$blub = _MemoryRead((0x00D288F0 - 0x9a8h^ ERROR
wenn ich das h entferne läuft das script, greif den gegner aber nicht an.

wie muss die adresse richtig heißen?
01/05/2009 22:06 __wadim#11
warum hast du da ein h nach 0x9a8 stehen?!?
01/05/2009 23:54 Valvepro#12
Quote:
Originally Posted by __wadim View Post
warum hast du da ein h nach 0x9a8 stehen?!?
weil du dort auch eines stehen hast denke ich mal :D
( Nur leider gibbet kein h im Hexadezimal-System :) )
01/09/2009 21:49 Dunham#13
Quote:
Originally Posted by __wadim View Post
aggro = CHECK_MAP - 9A8h
sollte auch gehen


Gruß
Wadim
gibt es auch sowas für gruppenmitglieder?
01/10/2009 00:05 __wadim#14
am besten mal dannach suchen...
01/12/2009 21:51 Kaneoxi#15
habe noch das problem, dass der aggro nicht begrenzt ist. d.h. hat er einmal gegner erfaßt, so erfaßt er sie danach auf dem ganzen radar. das ist gerade nicht gewollt. naja ich werde noch mal drüber grübeln.