TT6 MoveTo engine public

01/03/2009 16:45 tonitusch666#1
Hallo,

wurde ja schon häufiger andiskutiert, wie man ein MoveTo machen könnte.
Zur Demo beim Tempel des Balthasar auf die Insel der Namenlosen rausrennen und MoveDemo laufen lassen.

Generell ist zu sagen, dass die beiliegenden Beispiele ziemlich sicher nicht out of the box laufen werden, da zumindest die click Positionen nicht passen. Es geht ja auch nicht darum bots zu verteilen (darf gern jemand was schickes draus machen) sondern nur zu zeigen wie das Konzept funktioniert...

enthalten sind:
- TT6 engine und paar nützliche Funktionen (siehe ReadMe)
- Byzzr als simple demo
- Glint Z-Kerne, da sieht man das parallele Casting
- Dumper der per NUM keys die Positionen / Mousepos und Pixelchecksums für festlegbare Bereiche raussschreibt (selbsterklärend siehe Source)

Update V1.1:
- Readme hinzugefügt mit Erklärung der wichtigsten Funktionen
- neue modi und flags für random, deathcheck, auto run (knock down) und block check
Es gibt Situationen, da reagiert GW nicht auf Modifikation der turn left und right Speicheradressen. Aufgefallen ist mir das beim Glint bot, der sobald er damage bekommt sich in der init routine aufhängt. Daher wird zum Drehen ControlSend benutzt, was aber bekanntlich Nebenwirkungen hat...

Update V1.2:
Nach einigen Stunden Stabilitätstest hab ich die Version fertig gestellt.
- ControlSend wurde flächendeckend durch die interne Routine KeySend ersetzt, dadurch hat man keine Umschalteffekte wenn man nebenher Texte tippt und man kann OptKeyDownDelay beliebig einstellen ohne die engine zu beeinflussen
- alle Tasten sind in der .ini adaptierbar, damit muss man nicht die eigene Belegung in den Source einbauen

Update V1.3:
Paar kleinere Änderungen:
- MouseSend Parameter gefixt (GW mag trotzdem DClick nicht, andere apps schon)
- WindowsConstants verwendet und redefines entfernt
- Fx und NUMx + paar weitere Spezialtasten hinzugefügt

Update V1.4:
- Debug flags zum verfolgen von längeren Bewegungen
- Fixes integriert
- Nachsteuern von kleinen Deltas unterdrückt
- CollectLoot, TransferGH und Resign mit weiteren Abfragen verbessert

Update V1.5:
- als inkrementelles update, da Rest unverändert
- update.ini mit mems nach update + fix für camcourse
- neue keys, anpassen für neue CollectLoot !
- neue CollectLoot mit blacklist, Sperre, retry und timeout beim aufheben
- bei MoveTo kann man distanz zum zielpunkt angeben, um ggf. genauer Punkte anlaufen zu können
- neue Hilfsfunktionen WaitRezz und TransferArea

Update V1.6:
- MouseSend dclick gefixt
- CAMCOURSEB angepasst und neus update.ini

Update V1.7:
- kleinen bug in CollectLoot gefixt
- kleine Hilfsfunktionen für HM, Sell und deathcheck eingebaut
- kleinere Anpassungen bei den API und keysettings

Ergänzug:
Nützliche Erweiterungen von anderen Usern, ich habe die hier eingehängt, weil sie bei der länge des Thread sonst kaum einer finden wird, bitte bei Fragen direkt an die jeweiligen Autoren wenden:
- Multiclient Version von Treur der Sonne
- Deutsche Übersetzung des Readme 1.6 von Read Me

mfg
01/03/2009 16:59 kknb#2
läuft genial, die beste lösung die ich bisher gesehen habe!
01/03/2009 17:21 i4mSoH34Vy#3
Die läuft echt sauber.
01/03/2009 17:23 Hokler#4
klappt megaa geil udn sieht aus wieecht =D bin echt begeister :)

PS: hir der Scan ::

Antivir: Nothing found
ArcaVir: Nothing found
Avast: Nothing found
AVG: Nothing found
BitDefender: Nothing found
F-Prot: Nothing found
Norman: Nothing found
Rising: Nothing found
VirusBlokAda32: Nothing found
VirusBuster: Nothing found

[Only registered and activated users can see links. Click Here To Register...]
Scanned by [Only registered and activated users can see links. Click Here To Register...]
01/03/2009 17:28 i4mSoH34Vy#5
Quote:
Originally Posted by Hokler View Post
klappt megaa geil udn sieht aus wieecht =D bin echt begeister :)

PS: hir der Scan ::

Antivir: Nothing found
ArcaVir: Nothing found
Avast: Nothing found
AVG: Nothing found
BitDefender: Nothing found
F-Prot: Nothing found
Norman: Nothing found
Rising: Nothing found
VirusBlokAda32: Nothing found
VirusBuster: Nothing found

[Only registered and activated users can see links. Click Here To Register...]
Scanned by [Only registered and activated users can see links. Click Here To Register...]
Viruschief kannst dir sparen^^.Irgendwie findet er wenn es ernst auf ernst kommt den Virus nicht^^
01/03/2009 17:28 Azunai#6
was mich verwirrt ist das ich mich irgendwie an etwas ähnliches erinner 0o
war für wow oder so...
dennoch thx fürs uppen
01/03/2009 17:32 Hokler#7
Quote:
Originally Posted by j199207 View Post
Viruschief kannst dir sparen^^.Irgendwie findet er wenn es ernst auf ernst kommt den Virus nicht^^
was soll man dann nehmen ???

/Edit: Wie kann ich das in meinem Bot einbauen ??? blick bei dem Script ueberhaupt nicht durch xD
01/03/2009 17:48 Azunai#8
Code:
PrepMoveTo()
InitDest(-6061, -1281) ; deine koords wo du hin willst
While Not MoveTo(0,0,0) ;erste parameter von moveto() = 0 dann wartet er bis sich der rückgabewert ändert --> (direkter anlauf des ziels)
	Sleep(10) ;10ms is the call cycle for the movement engine
WEnd
so ist das was holprig da die moveto bei jedem schleifen durchgang erneut aufgerufen wird
ps: das würd ich noch ändenr ;)

2te möglichkeit:
Code:
MoveTo(1, -6037, -606); parameter 1 = parameter 0 xD nur das du weniger tippen musst ;)
der erste parameter ist irgendwie voll sinlos ;P

Code:
Func MoveTo($mode, $x, $y)
	if $mode = 0 Then
		Return MoveToCore()
	ElseIf [SIZE="4"]$mode = 1[/SIZE] Then
		[SIZE="4"]InitDest($x, $y)
		While Not MoveToCore()
			Sleep(10)
		WEnd[/SIZE]
	Else  ;error
		ConsoleWrite(StringFormat("MoveTo: bad mode: %d",$mode))
		Exit
	EndIf
EndFunc
ist halt genau das gleiche ^^
01/03/2009 18:25 tonitusch666#9
ty erst mal für das nette feedback :)

Also die Idee ist ja keine Schwarze-Magie, daher kann es natürlich sein, dass es was ähnliches für wow gibt.

Also normal braucht man den ersten Parameter wirklich nicht, habs nur fürn Byzzr genutzt, damit ich da gleich nen speedbuff nach dem Ausrichten reinhaun kann und nicht erst am ersten waypoint. In der Demo sind halt als Beispiel mal beide Varianten drin. Hab für die waypoints ein minitool, das mir die Zeilen erzeugt, da ist es auch keine extra Tipparbeit.

Bin grad dabei mehrere Lösungen zu mergen, bei Interesse kann ich das noch uppen, da sind dann 2 Beispiele dabei wie man das anwenden kann (Byzzr einfach / Shadow Assa mit parallel thread und ne Ident über Matrix)...

So long;)
01/03/2009 18:29 Azunai#10
Code:
So long
kenn ich

mit parallel thread via createprocess? oder via adlib
Ident über Matrix, standard wie sonst?
01/03/2009 18:33 aLasca#11
uppen uppen uppen :D
01/03/2009 18:48 NBA#12
Ist die von Valvepro oder diehier jetzt besser.

Du muesstest es doch wissen, ji199207?

Edit: Ich persoehnich finde die hier besser weil sie 1 frei ist, 2 sie wirklich gut funktioniert und nicht so auffaellig ist!

Edit2. Tony, ich habe echt respekt vor dir, da du diese moveto extrem teuer verkaufen koenntest
01/03/2009 19:12 Dunham#13
ehm das ding ist einfach genial!!
01/03/2009 19:19 NBA#14
So! Ich habe es etwas umgeschrieben, damit man es besser updaten kann!

Man muss lediglich eine Memory.ini anlegen und zeile 13 - 20 hiermit ersetzten:
Code:
Const $memx = IniRead("Memory.ini","Memory Adresses","memx","Not found") ; position x
Const $memy = IniRead("Memory.ini","Memory Adresses","memy","Not found") ; position y
Const $memcourse = IniRead("Memory.ini","Memory Adresses","memcourse","Not found") ; angle of compass/view direction
Const $memmap = IniRead("Memory.ini","Memory Adresses","memmap","Not found") ; post=0, load =2, area=1
Const $memnpcidselect = IniRead("Memory.ini","Memory Adresses","memnpcidselect","Not found") ; id of selected item/enemy
Const $memdeath = IniRead("Memory.ini","Memory Adresses","memdeath","Not found") ; alive = 0 or death = 1 
Const $memtleft = IniRead("Memory.ini","Memory Adresses","memleft","Not found") ; turn left
Const $memtright = IniRead("Memory.ini","Memory Adresses","memleft","Not found") ; turn right
Die Ini sollte so aussehen:
Code:
[Memory Adresses]
memx = 0xd28c54
memy = 0xd28c58
memcourse = 0xa05578
memmap = 0xd288f0
memnpcidselect = 0xd284e0
memdeath = 0xa056d4
memleft = 0xa05cbc
memright = 0xa05cc0
Have fun!!

NBArena

edit: Ein Waypointer waere noch toll!
edit2: Ich waere dafuer, das dieser thread sticky gemacht wird!
ed3: Soll ich das auf meinen ftp uppen?
01/03/2009 20:10 Azunai#15
nba, etwas voreilig oder?

was hast du denn da jetzt rumgebastelt o0
und du hast keinen anhang son waypointer tool gibts doch schon
wozu auf deinen ftp?!?