|
You last visited: Today at 23:17
Advertisement
Diskussionen über Memorys
Discussion on Diskussionen über Memorys within the GW Exploits, Hacks, Bots, Tools & Macros forum part of the Guild Wars category.
04/13/2009, 01:57
|
#526
|
elite*gold: 57
Join Date: Jun 2007
Posts: 10,720
Received Thanks: 5,092
|
müsste man halt am anfang die ids auslesen :>
|
|
|
04/13/2009, 02:07
|
#527
|
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.
|
|
|
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.
|
|
|
04/13/2009, 02:16
|
#529
|
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?
|
|
|
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.
|
|
|
04/13/2009, 02:20
|
#531
|
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?
|
|
|
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.
|
|
|
04/13/2009, 02:31
|
#533
|
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.
|
|
|
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
|
|
|
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
|
|
|
04/13/2009, 02:59
|
#536
|
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
|
|
|
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]
|
|
|
04/13/2009, 03:10
|
#538
|
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,287
|
geht nicht.. weil $hero1 nicht = $player1 ist..
|
|
|
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.
|
|
|
04/13/2009, 04:35
|
#540
|
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..
|
|
|
 |
|
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.
|
|