_isInArea Funktion

01/07/2009 20:33 Valvepro#1
Hier mal eine _isInArea Funktion, weil es einige vllt. noch nicht verstanden haben bzw. eine kompliziertere Methode wählen...

PHP Code:
#include<NomadMemory.au3>

msgbox("","",_isInArea("Guild Wars",0x00A05650,0x00A05654,-10465,2668,200000))

func _isInArea($Hwnd,$XSpeicher,$YSpeicher,$X,$Y,$Range)
    
$Process _MemoryOpen(WinGetProcess($Hwnd))
    
$XPos Floor(_MemoryRead($XSpeicher$Process'float'))
    
$YPos Floor(_MemoryRead($YSpeicher$Process'float'))
    
_MemoryClose($Process)
    if(
$XPos $X-$Range and $XPos $X+$Range and $YPos $Y-$Range and $YPos $Y+$Rangethen return True
    
return False
EndFunc 

Viel Spaß damit!

Mit freundlichen Grüßen
ValvePro
01/07/2009 20:38 Painful Pete#2
Also ich hab das damals so gelöst.... find ich persönlich leichter, wenn man sich mit memorys noch nicht auskennt!

Er checkt anfangs, ob oben ein schwarzer Balken erscheint (Ladescreen erreicht)
und dann ob der schwarze Balken wieder verschwindet (Area erreicht)

Viel Spaß damit!!!

PHP Code:
Func _checkloadscreen()
    
    
$stopper=0
    
While PixelGetColor(840) <> 0x000000 and $stopper<250
        ToolTip
("noch nicht im Ladebildschirm"50,50)
        
$stopper+=1
        
if $stopper>=250 then
        call
("disstuck")
        
sleep(1000)
        Endif
        
sleep(100)
    
Wend
    
    
    $stopper
=0
While    PixelGetColor(840)= 0x000000 and $stopper<350
    Sleep
(100)
    
ToolTip("immer noch nicht fertig -.-"50,50)
WEnd
tooltip
("")
sleep(500)
EndFunc 
01/07/2009 20:41 i4mSoH34Vy#3
Quote:
Originally Posted by Painful Pete View Post
Also ich hab das damals so gelöst.... find ich persönlich leichter, wenn man sich mit memorys noch nicht auskennt!

Er checkt anfangs, ob oben ein schwarzer Balken erscheint (Ladescreen erreicht)
und dann ob der schwarze Balken wieder verschwindet (Area erreicht)

Viel Spaß damit!!!

PHP Code:
Func _checkloadscreen()
    
    
$stopper=0
    
While PixelGetColor(840) <> 0x000000 and $stopper<250
        ToolTip
("noch nicht im Ladebildschirm"50,50)
        
$stopper+=1
        
if $stopper>=250 then
        call
("disstuck")
        
sleep(1000)
        Endif
        
sleep(100)
    
Wend
    
    
    $stopper
=0
While    PixelGetColor(840)= 0x000000 and $stopper<350
    Sleep
(100)
    
ToolTip("immer noch nicht fertig -.-"50,50)
WEnd
tooltip
("")
sleep(500)
EndFunc 
Die Funktion von Valve ist für Spanwpoints gedacht oder nicht.
01/07/2009 20:43 __wadim#4
Quote:
Originally Posted by j199207 View Post
Die Funktion von Valve ist für Spanwpoints gedacht oder nicht.
ja,
das was painful pete meint, müsste man mit CHECKMAP machen.
01/07/2009 20:46 Valvepro#5
Quote:
Originally Posted by j199207 View Post
Die Funktion von Valve ist für Spanwpoints gedacht oder nicht.
Richtig, sie ist eig. für den Spawnpounkt gedacht.
Damit man weiss an welchem Spawn er gespawnt ist :)

PS: Das was du meinst, regel ich immer woe folgt...

PHP Code:
#include<NomadMemory.au3>
;$Mode 0 _SleepWhileLoadingIn
;$Mode 1 _SleepWhileLoadingOut
func _SleepWhileLoading
($MapSpeicher,$Mode,$hwnd)
    
$timer TimerInit()
    while 
_MemoryRead($MapSpeicher_MemoryOpen(WinGetProcess($hwnd))) <> $Mode and Round(TimerDiff($timer),1)/1000 20
        sleep
(1)
    
wend
    sleep
(2000)
EndFunc 
MfG
01/07/2009 20:47 Painful Pete#6
Oh... Ok.... Mein Beispiel ist für diejenigen gedacht, die sich nicht so gut mit memorys auskennen, so wie ich :D
01/07/2009 20:49 aLasca#7
Spawnpoints ohne Memory währen dann ja wieder mit PixelCheckSum, oder sehr kompliziert in einigen fällen mit PixelGetColor..