Register for your free account! | Forgot your password?

You last visited: Today at 23:17

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

Advertisement



Diskussionen über Memorys

Discussion on Diskussionen über Memorys within the GW Exploits, Hacks, Bots, Tools & Macros forum part of the Guild Wars category.

Reply
 
Old 04/13/2009, 01:57   #526
 
_revo's Avatar
 
elite*gold: 57
Join Date: Jun 2007
Posts: 10,720
Received Thanks: 5,092
müsste man halt am anfang die ids auslesen :>
_revo is offline  
Old 04/13/2009, 02:07   #527


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
und wie kriege ich raus wer 'hero1' ist?
an memnpcidselect hab ich nämlich auch schon gedacht.
buFFy! is offline  
Old 04/13/2009, 02:12   #528
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
anwählen:nächstes gruppenmitglied, id in array speichern das machst du sooft bis du wieder beim ersten angekommen bist.
kknb is offline  
Old 04/13/2009, 02:16   #529


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
Code:
;-Hero1 Healthstack
$1_Hero1Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
$2_Hero1Health = _MemoryRead($1_Hero1Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
$3_Hero1Health = _MemoryRead($2_Hero1Health - $PTR_HEALTH_HERO1, $hprocess, 'float')
$CUR_HP_HERO1 = Int($3_Hero1Health*100)

;-Hero2 Healthstack
$1_Hero2Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
$2_Hero2Health = _MemoryRead($1_Hero2Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
$3_Hero2Health = _MemoryRead($2_Hero2Health - $PTR_HEALTH_HERO2, $hprocess, 'float')
$CUR_HP_HERO2 = Int($3_Hero2Health*100)

;-Hero3 Healthstack
$1_Hero3Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
$2_Hero3Health = _MemoryRead($1_Hero3Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
$3_Hero3Health = _MemoryRead($2_Hero3Health - $PTR_HEALTH_HERO3, $hprocess, 'float')
$CUR_HP_HERO3 = Int($3_Hero3Health*100)
Das gibt jetzt die Hp der anderen 3 Gruppenmitglieder in Zufallsarenen in % an.
Das speichern in ein Array etc. ist garkein Problem.
Das Problem ist das die Gruppenmitglieder je nach Ping an einer anderen Stelle sind.
Also kann es z.B. sein das Hero1 an 4. Stelle ist..nun wie erkläre ich meinem Bot jetzt das
Hero1 an 4. Stelle ist und er doch bitte Numpad4 drücken soll um den 4. Spielerslot anzuwählen?
buFFy! is offline  
Old 04/13/2009, 02:19   #530
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
wolltest du die net per npc id select anwählen^^? also ist es doch völlig egal wer auf welchem platz ist.

problem ist nur das du wissen müsstest wieviel lebenspunkte deine kammeraden haben um vernünftig heilen zu können. zumindest wenn du den genauen wert berechnen möchtest.
kknb is offline  
Old 04/13/2009, 02:20   #531


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
Nö is es nich.. weil ich muss ja wissen >WEN< ich anwählen muss..

Edit:

Code:
If $Hero1'Hp < 1/4 Then
...
Elseif $Hero2'Hp < 1/4 Then
...
Elseif $Hero3'Hp < 1/4 Then
...
Elseif $Own'Hp < 1/4 Then
...
EndIf
Man bekommt raus welcher Held weniger als 1/4 hat.. aber wie wähle ich ihn an um ihn zu heilen?
buFFy! is offline  
Old 04/13/2009, 02:24   #532
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
versteh ich grad nicht, frag doch einfach alle lebenspunkte nachdem du jedem eine id zugewiesen hast parallel ab und wenn bei irgendeinem die lebenpunkte < als irgend nen wert sind wähle denjenigen per mem an und heile.


steh ich grad soo aufn schlauch?

hero1=id1
hero2=id2
hero3=id3
own=id4

If $Hero1'Hp < 1/4 Then
heile id1
Elseif $Hero2'Hp < 1/4 Then
heile id2
Elseif $Hero3'Hp < 1/4 Then
heile id3
Elseif $Own'Hp < 1/4 Then
heile id4
EndIf

vorher natürlich jedem per memoryread den wert abfragen und der id zuweisen.
kknb is offline  
Old 04/13/2009, 02:31   #533


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
Probiers in RA so aus wie du es dir denkst..
Irgendwie bin ich zu dumm das zu beschreiben.. aber so wie du das machen willst gehts definitiv nicht.
buFFy! is offline  
Old 04/13/2009, 02:33   #534
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
hast schon was fertig?! bin grad zu faul und zu müde was zu schreiben
kknb is offline  
Old 04/13/2009, 02:51   #535
 
elite*gold: 0
Join Date: Nov 2008
Posts: 576
Received Thanks: 191
der der immer zu erst auf der karte ist, bekommt auch die folgende adresse zu seinen hp zugewiesen. nur kannst du nicht rausfinden, wer an welcher stelle, welche hp adresse hat! wenn die spieler sterben, verschieben sich die adressen auch und du weisst nicht, welches mitglied wie viel hp hat.. also von der reihenfolge, damit du den anwählen kannst
__wadim is offline  
Old 04/13/2009, 02:59   #536


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
ungefähr so dacht ich mir das..

Code:
Func Check()
	$1_Hero1Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
	$2_Hero1Health = _MemoryRead($1_Hero1Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
	$3_Hero1Health = _MemoryRead($2_Hero1Health - $PTR_HEALTH_HERO1, $hprocess, 'float')
	$CUR_HP_HERO1 = $3_Hero1Health

	;-Hero2 Healthstack
	$1_Hero2Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
	$2_Hero2Health = _MemoryRead($1_Hero2Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
	$3_Hero2Health = _MemoryRead($2_Hero2Health - $PTR_HEALTH_HERO2, $hprocess, 'float')
	$CUR_HP_HERO2 = $3_Hero2Health

	;-Hero3 Healthstack
	$1_Hero3Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
	$2_Hero3Health = _MemoryRead($1_Hero3Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
	$3_Hero3Health = _MemoryRead($2_Hero3Health - $PTR_HEALTH_HERO3, $hprocess, 'float')
	$CUR_HP_HERO3 = $3_Hero3Health
EndFunc   ;==>Check
Func Heal()


	ControlClick($hwnd, "", "", "left", 1, 0, 0) ;-betreten

	While _MemoryRead($MEM_MAP, $hprocess) <> 1
		Sleep(500)
	WEnd

	KeySend("f") ;-selbst anvisieren
	$Player1 = _MemoryRead($MEM_NPCIDSELECT, $hprocess)
	_ArrayAdd($PLAYERLIST, $Player1)
	KeySend("tab")
	If _MemoryRead($MEM_NPCIDSELECT, $hprocess) = Not $PLAYERLIST[1] Then
		$Player2 = _MemoryRead($MEM_NPCIDSELECT, $hprocess)
		_ArrayAdd($PLAYERLIST, $Player2)
	EndIf
	KeySend("tab")
	If _MemoryRead($MEM_NPCIDSELECT, $hprocess) = Not $PLAYERLIST[1] Or $PLAYERLIST[2] Then
		$Player3 = _MemoryRead($MEM_NPCIDSELECT, $hprocess)
		_ArrayAdd($PLAYERLIST, $Player3)
	EndIf
	KeySend("tab")
	If _MemoryRead($MEM_NPCIDSELECT, $hprocess) = Not $PLAYERLIST[1] Or $PLAYERLIST[2] Or $PLAYERLIST[3] Then
		$Player4 = _MemoryRead($MEM_NPCIDSELECT, $hprocess)
		_ArrayAdd($PLAYERLIST, $Player4)
	EndIf
	AdlibEnable("Check", 1000)
	If ($CUR_HP_HERO1 * 100) < 25 Then
		;-Wie zur hölle soll ich ihn anvisieren????????!!!!!!!
		KeySend("heal")
	EndIf
EndFunc   ;==>Heal
buFFy! is offline  
Old 04/13/2009, 03:05   #537
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
ungetestet, aber so vielleicht?

Code:
Func Check()
	$1_Hero1Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
	$2_Hero1Health = _MemoryRead($1_Hero1Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
	$3_Hero1Health = _MemoryRead($2_Hero1Health - $PTR_HEALTH_HERO1, $hprocess, 'float')
	$CUR_HP_HERO1 = $3_Hero1Health

	;-Hero2 Healthstack
	$1_Hero2Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
	$2_Hero2Health = _MemoryRead($1_Hero2Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
	$3_Hero2Health = _MemoryRead($2_Hero2Health - $PTR_HEALTH_HERO2, $hprocess, 'float')
	$CUR_HP_HERO2 = $3_Hero2Health

	;-Hero3 Healthstack
	$1_Hero3Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
	$2_Hero3Health = _MemoryRead($1_Hero3Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
	$3_Hero3Health = _MemoryRead($2_Hero3Health - $PTR_HEALTH_HERO3, $hprocess, 'float')
	$CUR_HP_HERO3 = $3_Hero3Health
EndFunc   ;==>Check
Func Heal()


	ControlClick($hwnd, "", "", "left", 1, 0, 0) ;-betreten

	While _MemoryRead($MEM_MAP, $hprocess) <> 1
		Sleep(500)
	WEnd

	KeySend("f") ;-selbst anvisieren
	$Player1 = _MemoryRead($MEM_NPCIDSELECT, $hprocess)
	_ArrayAdd($PLAYERLIST, $Player1)
	KeySend("tab")
	If _MemoryRead($MEM_NPCIDSELECT, $hprocess) = Not $PLAYERLIST[1] Then
		$Player2 = _MemoryRead($MEM_NPCIDSELECT, $hprocess)
		_ArrayAdd($PLAYERLIST, $Player2)
	EndIf
	KeySend("tab")
	If _MemoryRead($MEM_NPCIDSELECT, $hprocess) = Not $PLAYERLIST[1] Or $PLAYERLIST[2] Then
		$Player3 = _MemoryRead($MEM_NPCIDSELECT, $hprocess)
		_ArrayAdd($PLAYERLIST, $Player3)
	EndIf
	KeySend("tab")
	If _MemoryRead($MEM_NPCIDSELECT, $hprocess) = Not $PLAYERLIST[1] Or $PLAYERLIST[2] Or $PLAYERLIST[3] Then
		$Player4 = _MemoryRead($MEM_NPCIDSELECT, $hprocess)
		_ArrayAdd($PLAYERLIST, $Player4)
	EndIf
	AdlibEnable("Check", 1000)
	If ($CUR_HP_HERO1 * 100) < 25 Then
		_Memorywrite($MEM_NPCIDSELECT, $hprocess, $Player1)
		KeySend("heal")
	EndIf
EndFunc   ;==>Heal]
kknb is offline  
Old 04/13/2009, 03:10   #538


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
geht nicht.. weil $hero1 nicht = $player1 ist..
buFFy! is offline  
Old 04/13/2009, 03:11   #539
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
stimmt, habe ich nicht bedacht. hab auch grad mal bisl mit ce geguckt, ausser npc_id_select finde ich irgendwie keinen wert der aufschluss geben könnte welches gruppenmitglied grade angewählt ist.
kknb is offline  
Old 04/13/2009, 04:35   #540


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
wie ruft man am besten nen critical error auf?
man passe die koords an, gehe nach z-elite und führe das ding aus.

Code:
Dim $PLAYERLIST[1]

$MAXHP_PLAYER = _MemoryRead($2_OwnHealth + $PTR_HEALTH_MAX_HP, $hprocess) * 100
$MAXHP_HERO1 = _MemoryRead($2_Hero1Health - $PTR_HEALTH_HERO1, $hprocess, 'float') * 100
$MAXHP_HERO2 = _MemoryRead($2_Hero2Health - $PTR_HEALTH_HERO2, $hprocess, 'float') * 100
$MAXHP_HERO3 = _MemoryRead($2_Hero3Health - $PTR_HEALTH_HERO3, $hprocess, 'float') * 100

Func Start()
	While True
		ControlClick($hwnd, "", "", "left", 1, 515, 124)
		While _MemoryRead($MEM_MAP, $hprocess) <> 1
			Sleep(500)
		WEnd
		Sleep(5000)
		ControlClick($hwnd, "", "", "left", 1, 526, 31)
		$PLAYER = _MemoryRead($MEM_NPCIDSELECT, $hprocess)
		_ArrayAdd($PLAYERLIST, $PLAYER)
		Sleep(500)
		ControlClick($hwnd, "", "", "left", 1, 525, 49)
		$HERO1 = _MemoryRead($MEM_NPCIDSELECT, $hprocess)
		_ArrayAdd($PLAYERLIST, $HERO1)
		Sleep(500)
		ControlClick($hwnd, "", "", "left", 1, 526, 68)
		$HERO2 = _MemoryRead($MEM_NPCIDSELECT, $hprocess)
		_ArrayAdd($PLAYERLIST, $HERO2)
		Sleep(500)
		ControlClick($hwnd, "", "", "left", 1, 526, 86)
		$HERO3 = _MemoryRead($MEM_NPCIDSELECT, $hprocess)
		_ArrayAdd($PLAYERLIST, $HERO3)
		AdlibEnable("Heilen", 1000)
		While _MemoryRead($MEM_MAP, $hprocess) <> 2
			Sleep(1000)
		WEnd
		While _MemoryRead($MEM_MAP, $hprocess) <> Not 2
			Sleep(1000)
		WEnd
		Sleep(1000)
		ContinueLoop
	WEnd
EndFunc   ;==>Start

Func Heilen()
	;-Healthstack
	$1_OwnHealth = _MemoryRead($PTR_HEALTH, $hprocess)
	$2_OwnHealth = _MemoryRead($1_OwnHealth + $PTR_GLOBAL_OFFSET, $hprocess)
	$3_OwnHealth = _MemoryRead($2_OwnHealth + $PTR_HEALTH_CUR_HP, $hprocess, "float")
	$CUR_HP_PLAYER = $3_OwnHealth

	$1_Hero1Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
	$2_Hero1Health = _MemoryRead($1_Hero1Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
	$3_Hero1Health = _MemoryRead($2_Hero1Health - $PTR_HEALTH_HERO1, $hprocess, 'float')
	$CUR_HP_HERO1 = $3_Hero1Health

	;-Hero2 Healthstack
	$1_Hero2Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
	$2_Hero2Health = _MemoryRead($1_Hero2Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
	$3_Hero2Health = _MemoryRead($2_Hero2Health - $PTR_HEALTH_HERO2, $hprocess, 'float')
	$CUR_HP_HERO2 = $3_Hero2Health

	;-Hero3 Healthstack
	$1_Hero3Health = _MemoryRead($PTR_HEALTH, $hprocess, 'dword')
	$2_Hero3Health = _MemoryRead($1_Hero3Health + $PTR_GLOBAL_OFFSET, $hprocess, 'dword')
	$3_Hero3Health = _MemoryRead($2_Hero3Health - $PTR_HEALTH_HERO3, $hprocess, 'float')
	$CUR_HP_HERO3 = $3_Hero3Health

	If ($CUR_HP_PLAYER * 100) < $MAXHP_PLAYER / 4 Then
		_MemoryWrite($MEM_NPCIDSELECT, $hprocess, $PLAYERLIST[1])
		KeySend(Random(1, 8, 1))
	EndIf

	If ($CUR_HP_HERO1 * 100) < $MAXHP_HERO1 / 4 Then
		_MemoryWrite($MEM_NPCIDSELECT, $hprocess, $PLAYERLIST[2])
		KeySend(Random(1, 8, 1))
	EndIf
	If ($CUR_HP_HERO2 * 100) < $MAXHP_HERO2 / 4 Then
		_MemoryWrite($MEM_NPCIDSELECT, $hprocess, $PLAYERLIST[3])
		KeySend(Random(1, 8, 1))
	EndIf
	If ($CUR_HP_HERO3 * 100) < $MAXHP_HERO3 / 4 Then
		_MemoryWrite($MEM_NPCIDSELECT, $hprocess, $PLAYERLIST[4])
		KeySend(Random(1, 8, 1))
	EndIf
EndFunc   ;==>Heilen

start()
Btw. man selber is monk mit 1-8 healskills..3 ele helden mit searing flames..
buFFy! is offline  
Reply


Similar Threads Similar Threads
[Fragen & Diskussionen] Longjuyt2
07/25/2009 - Metin2 Private Server - 1461 Replies
Hallöchen, in diesme Thread könnt ihr eure Fragen über Longjuyt2 los werden. Gleichzeitg könnt ihr hier wild diskutieren rund um den Server Longjuyt2.
Suche ICQ Support zu den Memorys
10/12/2008 - Guild Wars - 10 Replies
Wie der Titel schon sagt, suche ich jemanden der mir das mit den Memorys ein bisschen erklären kann und mir dann auch fragen beantworten kann. Eventuell könnte er mir dann auch ein bisschen so zu AutoIt helfen und meinen unpublic NestlingeFarmbot als Belohnung bekommen.. :bandit: meldet euch einfach hier oder per pm! :) Naja bis dann, anonym110
Memorys auslesen
10/04/2008 - Guild Wars - 5 Replies
Hi, ich arbeite mich gerade in Memorys ein, kann ja mal nützlich sein Aktuelles Leben habe ich Adresse 05C6E648 herraus gefunden , stimmt auch da ich wenn ich 30 HP verliere das da auslesen kann. Die Frage ist nun, wadims adressen sind alle 0x irgenwas , muss man die umwandeln ?? Und die nächste Frage, nach Leben scannen, also Zahlen die sich verändern hab ich nun verstanden und es klappt.



All times are GMT +1. The time now is 23:17.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.