beendet sich alles ist absicht ,dann schau mal was für ne Fehlermeldung in der console steht (wenn man aus dem editor raus startet), weil dann wars nen bad call oder zu früh nach dem instanz wechsel oder so in der Art...
Es gibt dazu mehrer Philosophien, man machts so robust dass man den eigentlichen Fehler nie findet es aber irgendwie weiterläuft oder man legt nen Totalstop hin und der Anwedner hat ne Chance die eigentliche Ursache zu finden, beide haben Vor- und Nachteile
Also wenn das rennen durch nen cast, gegner oder sonst was gestoppt wird, dann muss man nur $running = false setzen(an der stelle wenn mans weis oder in ner adlib funktion die während der situation enabled wird), dann rennt er automatisch weiter, wird im glint und im wintertags dungeon beispiel benutzt. vlcht sollte man mal ne kleine faq zusammenstellen oder ich ne richtige doku
Also da gibt es noch ein klitzekleines problem. Kann man das mit den kreis fuer eine weile ausschlaten?
Mein problem ist wie folgt:
Ich gehe zum spaeher fuer die belohnungen. Dann will ich mich umdrehen und auf einen waypoint gehen. Nun , er geht aber in einem kreis(der viell zu gross ist) und haengt bei einer ecke des rezzschreins fest.
da ich weiss, dass skill 6 das rennen abgebrochen hat, setze ich auf False
dadurch startet der nächste MoveTo() Aufruf das neu (kann auch "r" selber schicken in der Siutation). Wenn das aber asynchron in einer adlib-Funktion läuft, weis ich ja nich ob ich gerannt bin, daher setze ich zu bestimmten Zeiten das auf false und wenn zB Obsi-Fleisch das rennen abgebrochen hat
Code:
If Mod($tick -2, 24) = 0 Then
ControlSend($client, "", "", "{2}") ;obsi
EndIf
If $tick = 56 OR $tick = 30 Then
$running = false ;retrigger moveto in case it was stopped by cast
EndIf
Zu dem Kreise Thema:
Also das kann ich so einfach nicht "abschalten", weil das ein Problem mit der Tastatursteuerung ist. In Deiner Situation würde ich mit das rennen stoppen und mit InitDest() mich erst in die Richtung drehen lassen und dann weiter laufen:
Code:
MoveTo()
StopMoveTo()
machwas()
InitDest(x,y)
RndSleep(1000)
While Not MoveTo(0,0,0)
Sleep(10)
WEnd
MoveTo()
wenn das nicht hilft, dann liegen Deine waypoints ungeschickt oder Du musst die Situation anderst lösen...
EDIT3: Also für die, die selber gerne an Parametern experimentieren:
$accelmul = 1.0, d.h. die Werte aus der Tabelle werden unverändert übernommen (btw die Tabelle wurde durch Drehungen einfach erzeugt), >1 würde zu stärkeren Bewegungen führen, <1 dementsprechend zu gedämpften, mehr als +-20% würde ich aber nicht machen.
Hab mal die Abbruchschwelle in Abhängigkeit der Distanz definiert und paar Tests laufen lassen, damit sollte das Kreise-Laufen nicht mehr auftreten, jedoch kann es sein, dass dadurch öfter mal gestoppt wird, das kann man aber durch geschickte waypoints vermeiden...
[testversion siehe paar posts weiter]
mfg
da ich weiss, dass skill 6 das rennen abgebrochen hat, setze ich auf False
dadurch startet der nächste MoveTo() Aufruf das neu (kann auch "r" selber schicken in der Siutation). Wenn das aber asynchron in einer adlib-Funktion läuft, weis ich ja nich ob ich gerannt bin, daher setze ich zu bestimmten Zeiten das auf false und wenn zB Obsi-Fleisch das rennen abgebrochen hat
Code:
If Mod($tick -2, 24) = 0 Then
ControlSend($client, "", "", "{2}") ;obsi
EndIf
If $tick = 56 OR $tick = 30 Then
$running = false ;retrigger moveto in case it was stopped by cast
EndIf
mein problem is das er nicht durchs casten unterbrochen Wird sondern bodyblock sobald das passiert stirbt er weil er nich ne andere func startet...
Ah ok verstanden, ja so was ähnliches passiert ja auch wenn man einen knock down bekommt. Also meine Idee dazu ist, dass ich die Bewegung (Distanzen) in einem buffer ableg und wenn x zeiteinheiten diese nicht kleiner geworden ist, dann "was passiert".
Bei Knock down würde ich einfach nen "r" reinhaun, in deinem Fall würde ich nen globalen blocked status setzen (muss man nicht bei allen moveto den return code prüfen) und rausspringen...
EDIT:
Also hab jetzt den autorun mode und block mode integriert, jedoch noch nicht selber verwendet, daher gibts da kein Beispiel dafür. Damit casts nicht abgebrochen werden muss man diese mit
DisableStopCheck()
do some casting
sleep(finish cast)
EnableStopCheck()
einklammern, der blocked status kann über $gotBlocked abgefragt werden und wenn man Gegenmassnahmen ergriffen hat muss er wieder auf false gesetzt werden bzw. wird das beim nächsten PrepMoveTo() gemacht.
Da hier auch die Änderungen gg. das "Kreise laufen" drin sind hab ich das zip aus dem anderen Beitrag rausgenommen...
mfg
PS: werd wohl erst am wochenende wieder zeit haben auf fragen zu antworten...
PPS: noch mehr Varianten bau ich nicht mehr ein, weil sonst wirds echt unübersichtlich
PPPS: die random positionen sind jetzt kein mode mehr sondern ein extra parameter mit default = false
Ich hab nochn Problem+ne Vermutung:
Hab mir nen kleinen Background-Bot geschrieben,der mit deiner MoveTo arbeitet.
Das ganze funktioniert komplett ohne Probleme.
Mein Problem liegt eher darin, dass wenn ich nen 2tes GW öffne, sich das Teil einfach beendet QQ.
Liegt das evtl daran,dass die MoveTo mit Gw.exe arbeitet und durcheinander kommt whatever,wenn 2xGw.exe ausgeführt wird?
Ich hab nochn Problem+ne Vermutung:
Hab mir nen kleinen Background-Bot geschrieben,der mit deiner MoveTo arbeitet.
Das ganze funktioniert komplett ohne Probleme.
Mein Problem liegt eher darin, dass wenn ich nen 2tes GW öffne, sich das Teil einfach beendet QQ.
Liegt das evtl daran,dass die MoveTo mit Gw.exe arbeitet und durcheinander kommt whatever,wenn 2xGw.exe ausgeführt wird?
einfach die Gw.exe im script durch Wingetprocess("Guild Wars") ersetzen
einfach die Gw.exe im script durch Wingetprocess("Guild Wars") ersetzen
Könntest du mir das an nem kleinen Beispiel erklären?
Bzw in welcher Datei muss ich das machen?
Würde gern bei meinem 5er bot den Hauptläufer damit steuern während die andern folgen.
Muss ich das in der tt6.au3 oder in dem Script das ich da hab iwie reinbringen?
Entweder in deinem Script oder in der tt6 und diese inlcuden(macht man ja eig immer, wenn man MoveTo nutzt^^).
bei mir zb:
Global $client0 = IniRead("tt6.ini","ids","windowName1","Guild Wars")
Global $client1 = IniRead("tt6.ini","ids","windowName2","Guild Wars1")
Global $client2 = IniRead("tt6.ini","ids","windowName3","Guild Wars2")
Global $client3 = IniRead("tt6.ini","ids","windowName4","Guild Wars3")
und dann die Befehle an jeweils die Handles($clientx) senden.
Entweder in deinem Script oder in der tt6 und diese inlcuden(macht man ja eig immer, wenn man MoveTo nutzt^^).
bei mir zb:
Global $client0 = IniRead("tt6.ini","ids","windowName1","Guild Wars")
Global $client1 = IniRead("tt6.ini","ids","windowName2","Guild Wars1")
Global $client2 = IniRead("tt6.ini","ids","windowName3","Guild Wars2")
Global $client3 = IniRead("tt6.ini","ids","windowName4","Guild Wars3")
und dann die Befehle an jeweils die Handles($clientx) senden.
Also einfach das alles iwo in die tt6 reinkopieren und wenn ich jetz z.B: das erste GW laufen lassen will dann:
Ich benutze zum mehrfache starten den Multiclient.. also meine Fenster heißen auch Guild Wars, Guild Wars 1, usw.... muss ich dann da wo ich rot markiert hab jeweils Guild Wars, Guild Wars 2 etc einsetzen oder gehört das so?^^
EDIT: Wo muss ich dann das Wingetprocess("Guild Wars") noch unterbringen? oder brauch ich das dann gar nicht?
danke schonmal für die Antwort
EDIT2: ach muss ich da in der .ini statt dem bisherigen:
MoveTo Engine gibt keine Charakterkoordinaten aus 05/27/2010 - AutoIt - 2 Replies Hallo, habe mir tt6 1.7 geladen und wollte gleich die koordinaten vom charakter in Guild Wars rausfinden.
Aber mir wurden lediglich die koordinaten meiner maus angezeigt.
Kann mir jemand helfen?
MoveTo Engine funktioniert nicht 04/01/2010 - GW Bots - 16 Replies Nachdem ich heute mehrere Stunden damit verbracht habe die MoveTo Engine bei mir ans Laufen zu bringen habe ich mich entschlossen mein Problem zu posten.
Ich benutze die MoveTo Engine von tonitusch666 mit dem dazugehörigen Dumper. Ich habe die Update.ini auf den neuesten Stand gebracht (copy&paste aus diesem Thread) und selbst mit CE überprüft.
Das seltsame ist, das die Funktion CheckArea() aus der tt6.au3 einwandfrei funktioniert! Das heißt die Mems sind OK, jedoch funktioniert dieser...
Moveto 01/13/2010 - GW Bots - 3 Replies Ich habe eine Frage, wie macht blauwiggle seine moveto das sie so menschlich aussieht ? weil meine wirken immer so abgehackt wenn ich das mit Moveto (x,y) mache, bzw. weiß jemand wie man es besser macht?
MoveTo Engine Problem. 10/13/2009 - GW Bots - 10 Replies Hallo Jungs..
Kan mir mal jemand sagen was ich falsche mache und warum meine Move To Engine nich funktioniert?
Hier mein bisheriger Source.. Nich wundern wenn noch Sinnloses Zeug drinsteht, ist für später.. :D
#RequireAdmin
#include "tt6.au3"
#include <NomadMemory.au3>