TT6 MoveTo engine public

01/12/2009 21:08 i4mSoH34Vy#136
Schwachsinn ignoriert mich!
01/12/2009 22:09 tonitusch666#137
:rtfm:

ne spass, steht da zwar auch, aber InitDest() braucht man nur wenn man den mode 0 nutzen will um einfache Dinge parallel zur 10ms loop machen zu können, braucht man nur in ganz speziellen Fälle wie zB s.o., für das meiste reicht mode 1 vollkommen aus...

mfg
01/12/2009 23:35 kknb#138
hilfe hilfe, neuerdings steigt das script mit der fehlermeldung beim identen aus.

Code:
D:\Documents and Settings\admin\Desktop\New Folder\tt6.au3 (567) : ==> Cannot assign values to constants.:
$WM_LBUTTONUP     =  0x0202
^ ERROR

ok habe rausgefunden das dieser fehler nur erscheint wenn man WindowsConstants.au3 zusätzlich zur tt6.au3 includet.
01/13/2009 14:44 Painful Pete#139
Oh man ich bekomms einfach nicht hin....
Ich weiß langsam nerv ich, aber es will und will einfach nicht gehen

PHP Code:
#include "tt6.au3"

;info window
$win 
GUICreate("Status Window"20015055)
GUISetState(@SW_SHOW)
$label_pos GUICtrlCreateLabel("x: -00000.00 y:-00000.00  "1010)
$label_cou GUICtrlCreateLabel("c: -00000.0000            "1030)

Sleep(1000)

AdlibEnable("status"200)

Func status()
    
$course _memoryread($memcourse,$hprocess,'float')
    
$posx _memoryread($memx,$hprocess,'float')
    
$posy _memoryread($memy,$hprocess,'float')
    
$string StringFormat("x: %.2f y: %.2f"$posx$posy)
    
GUICtrlSetData($label_pos$string)
    
$string StringFormat("c: %.4f"$course)
    
GUICtrlSetData($label_cou$string)
EndFunc

Main

Opt
("sendkeydelay"25)
Opt("Sendkeydowndelay"500)

PrepMoveTo()
$timer TimerInit()
$once true
InitDest
(-5977.27392578125,2288.14672851563)
While 
Not MoveTo(0,0,0)
Sleep(10)
$time TimerDiff($timer)
if 
$time 500 and $once Then
    ControlSend
("Guild Wars","","","{enter}")
    
sleep(500)
ControlSend("Guild Wars""""""Ich tippe nur während er läuft")
sleep(50)
    
ControlSend("Guild Wars","","","{enter}")
$once =false
endif
WEnd 

StopMoveTo
() 
Wo ist hier der Fehler? Er bewegt sich nicht vom Fleck und dreht sich nur links und rechts. Wer`s testen will----> wie gehabt am Tempel des Balth. raus
01/13/2009 16:13 xSharkoonX#140
Mal ne Frage :

ich hab mir mal V1 angeguckt aber wenn ich

Prep
MoveTo
Stop

dann ein adlibenable oder eine cast reihenfolge machen macht er danach kein moveto mehr d.h. das nächste moveto wird ignoriert und er steht nur noch da

vllt weißte du da eine Lösung
01/13/2009 18:55 Read Me#141
Keepmoveto() bzw InitDest() bzw. den 3ten Mod von MoveTo verwenden:
MoveTO(3,x,y)
01/13/2009 19:51 xSharkoonX#142
ich benutz V1 ....lesen schadet nicht ^^..sorry musste sein^^

nein ich habe es gelöst thx trotzdem an weruda

meine lösung war einfach die letzte moveto im modus 2 dann die erste (nach cast)wieder im modus 2 und die anderen sind beliebig
01/13/2009 19:51 xSharkoonX#143
ich benutz V1 ....lesen schadet nicht ^^..sorry musste sein^^

nein ich habe es gelöst thx trotzdem an weruda

meine lösung war einfach die letzte moveto im modus 2 dann die erste (nach cast)wieder im modus 2 und die anderen sind beliebig
01/13/2009 20:08 Read Me#144
KK, aber warum nutzt du die V1.1 nicht?
Ich hab die zwar auch ein wenig modifiziert, aber das kannse doch schnell aus der V1 auf die V1.1übertragen und hast den tollen 3ten Modus.
Mit dem kannse dann so Sachen wie:

Code:
Wayout()
If $gotBlocked then
      _GH()
      _GH()
      _HM()
      _Wayount
EndIf
Wenn er beim Wayout iwo stuckt, macht ers nochmal und dann eig immer fehlerfrei.
01/13/2009 20:47 tonitusch666#145
jo also im mode 1 muss man nach einem stoppen durch cast dort $running=false setzen, wie im glint beispiel. In V1.1 natürlich auch oder aber den mode 2 autorun nutzen oder mode 3 und dann ein eigenes exception handlig dazu bauen. V1.1 hat auch noch so ein nettes kleines readme dabei ;)

mfg
01/13/2009 22:24 tonitusch666#146
@Painful Pete

also prinzipiell funktioniert das bei mir so halbwegs ;), habs grad getestet mit der 1.2 testing version. In der alten kann es gar nicht funktionieren, weil Du mehrere Dinge misachtet hast:

keydowndelay setzt du auf 500ms, d.h. wenn die engine einen key bedient (und das macht sie auf 10ms genau via lookup table), dann hängst du noch 500ms länger drücken dran. dadurch schafft sie es nie sicht richtig auszurichten (hin und her drehen ohne loslaufen). mit 1.2 wäre das kein problem mehr aber dann schläg Fehler 2 zu, Du hängst in die 10ms loop, die die engine zum korrigieren braucht einen 500ms und einen 50ms sleep rein, dadurch würde während dieser zeit die engine nicht steuern können, was aber ggf. nicht auffällt weil man ja geradeaus zum waypoint rennt, wenn man aber genau während des sleep ankommen würde, würde man einfach drüberrennen. Also wie in einem Post von mir vorher und in der Doku beschrieben nur einfache sachen in der loop machen, ein keydowndelay von 20ms ist locker zu verkraften, 3 ControlSend() normalerweise auch (testen), ansonsten die Aufgaben in kleinere Brocken zerlegen und dann über einen counter getriggert schritt für schritt ausführen. Wie gesagt mode 0 ist etwas tricky ;)
01/14/2009 00:14 blauwiggle#147
Das erklärt dann vermutlich, warum sich der Char bei mir nur im Kreis gedreht hat beim SendKeyDownDelay von 100 oder sehe ich das falsch?
01/14/2009 00:39 Painful Pete#148
ah ok danke.... tonitusch!!!
das erklärt einiges :D

Dann werd ich das morgen mal nochmal ein wenig versuchen und wenn er dann nicht will, dann soll er einfach im Mode 2 einen näheren Wegpunkt anlaufen, dort stehen bleiben, die andern sollen folgen und dann rennt er zum eigentlichen Punkt.
01/14/2009 17:52 Read Me#149
Quote:
Originally Posted by blauwiggle View Post
Das erklärt dann vermutlich, warum sich der Char bei mir nur im Kreis gedreht hat beim SendKeyDownDelay von 100 oder sehe ich das falsch?
Richtig, ab ca. 350ms wirds genau^^
01/18/2009 11:05 tonitusch666#150
Neue Version 1.2 siehe erster Post, viel Spass