Deathcheck

04/16/2009 23:29 Cr33p#46
zur ersten Frage:
PHP Code:
Adlibenable("_Dcheck",1000)
run() 
So wird jede Sekunde überprüft,ob der Char tot ist.
ind den Deathcheck muss dann noch:
PHP Code:
If _memoryread($memdeath$hprocess) = 1 Then
Aldibdisable
()
_resign($backtoX$backtoY)
Else
EndIf 
zur zweiten Frage:
Const $memdeath = IniRead("update.ini","SECTION 9-A","DEATH","Not found")
04/17/2009 15:50 NANAAA#47
ok soweit so gut :P geht schonmal ein stück weiter nur das jetzgige prob is dass nachdem er das resign gemacht hat noch das andere zuende macht und so halt nich richtig funtzt -.-
kurz ; wie schaffe ich dass er die fight() beendet wenn er resigned hat ?
04/17/2009 15:53 buFFy!#48
hihi.. das ist das was ich gesagt habe.. packt nicht alles in eine funksammlung.. weil bei einigen sieht die hauptschleife so aus
Code:
while true
wayout()
fight()
ident()
sell()
wend
normal könntest du jetz exitloop / continueloop benutzen ;)
04/17/2009 16:30 NANAAA#49
mhm das mit dem exitloop unso klappt leider nciht -.-
kann ich das nicht einfacher machen ?

also

fight()
Adlibenable("_Dcheck",1000)
bla bla
sterben <-- Dcheck ---> Resign <---- func beenden ?
bla bla bla
bla bla
04/17/2009 16:39 buFFy!#50
machs doch einfach so das die funktion nur ausgeführt wird wenn x true ist..und im dcheck wird x auf false gesetzt wenn er tot ist. kann doch nich so schwer sein
04/17/2009 17:03 NANAAA#51
ich fühl mich sehr -.-

also

habe zb

Quote:
Func Fight( $death = False)
Func _Dcheck()

While True
For $wiederholen = 1 To $anzahl Step 1
Call("hm")
Call("wayout")
Adlibenable("_Dcheck",1000)
Call("Fight")
Next
Call("Ident")
Call("haendler")
WEnd
wie muss ich das jetzt genau machen ? *gg*
04/17/2009 17:11 buFFy!#52
Quote:
Originally Posted by NANAAA View Post
ich fühl mich sehr -.-

also

habe zb



wie muss ich das jetzt genau machen ? *gg*
weiß ich nicht ;)
04/17/2009 17:18 NANAAA#53
ok und wie könnt ich das "coden" so dass es funktionieren würde so wie du es dir vorgestellt hast/mir empfohlen hast ?
04/17/2009 17:20 buFFy!#54
Code:
func check()
wenn tot dann $x = false
endfunc

adlibenable(check)
while true
if $x = true then
...
if $x = true then
...
if $x = true then..
04/18/2009 12:57 NANAAA#55
leider kapier ich immernoch nicht recht wie diese dumme deathcheck abfrage funtzt -.-

sollte doch mit

($dcheck = true/false)
$isDead = (True = tot, False = lebend) Funktionieren

könnte mir jemand den "fertigen" Code senden so dass der bei mir funktioniert ....

habe :

Func fight()

bla bla bla bla
bla bla bla bla

EndFunc


While True
For $wiederholen = 1 To $anzahl Step 1
Call("hm")
Call("wayout")
Call("Fight")
Next
Call("Ident")
Call("haendler")
EndIf
WEnd


was muss ich umschreiben dass der deathcheck funktioniert...

ab und zu hilft es ja wenn man die lösung hat :P
Vielen Dank schon für die Hilfe :)
04/18/2009 13:15 NBA#56
Eiskalt: Nur durch Fehler lernt man!
04/18/2009 13:17 NANAAA#57
ich bin seit sicher 2 Tagen an diesem Problem dran -.- hab schon vieles versucht -.-
bitte helft mir :)
04/18/2009 13:35 NBA#58
Hm ok.

Am besten zeigen wir das an einen eigenen DCheck.

Code:
#include <NoMadMemory.au3> ;Wegen Memoryhandeling

Gloabl $Death = IniRead("update.ini","SECTION 9-A", "DEATH", "NOT FOUND") ; Memory fuer Tod deklarieren
Global $PID = WinGetProcess("Guild Wars") ; Guild Wars Process ID auslesen
Global $hprocess = _MemoryOpen($PID) ; Guild Wars Memorys zu gegaenglich fuer au3 machen

While 1
$readD = _MemoryRead($Death, $hprocess)f

If $readD = 1/0 then ; je nachdem, werte darfste selbst herausfinden
MsgBox(0,"Looser", "Du wurdest gekillt, LOOOSER!")
Endif
Wend
Schaus dir an und verstehe es
04/18/2009 14:11 NANAAA#59
ok erstmal vielen Dank aber leider habe ich mich wohl falsch ausgedrückt -.-
hab das was du mir geschrieben hast auch schon hinbekommen aber mein problem ist wenn ich in der Function
Fight() sterbe fürht es ja das resign aus aber hört nicht mit der function fight() auf -.-
gibts irgend ne funktion mit dem ich schreiben kann

If $readD = 1 then
EndFunc ("fight") ?

oder andere möglcihkeit ?

Quote:
Func check()
$readD = _MemoryRead($Death, $hprocess)

If $readD = 1 then
Adlibdisable()
Call("_resign")
EndIf
EndFunc

While True
For $wiederholen = 1 To $anzahl Step 1
Call("hm")
Call("wayout")
adlibenable("check")
Call("Fight")
Next
Call("Ident")
Call("haendler")

WEnd
04/18/2009 14:50 NBA#60
Du kannst dir eine fight.exe machen.
Das machen alle anderen auch.

sieht dann so aus:

Code:
If $readD = 1 then
ProcessClose("fight.exe")
_resign()
Endif
Außerdem solltest du dir abgewöhnen Call() zu nutzen, kann zu einen Stackoverflow führen und dass ist nicht toll..