TT6 MoveTo engine public

01/22/2009 19:22 i4mSoH34Vy#226
Mit der alten MoveTo läuft alles. Nur mit der neuen Version gibt es bei mir Probleme.
01/22/2009 20:24 aLasca#227
Ich benutz auch nicht die neue..^^
01/22/2009 20:34 i4mSoH34Vy#228
Die neue ist aber mit den Stopcheck sicherer.
01/22/2009 20:54 aLasca#229
Naja... ich nehm nicht immer das neuste.. hauptsache es läuft :rolleyes: und bei mir läuft alles
01/22/2009 21:16 kknb#230
bei den raptoren kannste nen vernünftigen run ohne stopchecks schon vergessen, da stuckts wie sau.
01/22/2009 21:41 i4mSoH34Vy#231
Ja und deshalb frag ich hier auch ^^. Ich glaub es liegt KeySend. Er lässt die MoveTo ja nicht mehr über Memorys drehen.
01/22/2009 21:57 tonitusch666#232
Hm also, mir wär dazu nur eingefallen, dass es die 1.1 ist und optkeydowndelay recht hoch eingestellt ist oder bei den mem die course nicht passt. Was sein kann ist dass Du eine Variable mit gleichem Namen benutzt und versehentlich überschreibst.
Der Grund für das KeySend war, dass ich bei Glint ein Problem hab (in der 1.0, die direkt mems schreibt), dass wenn er dmg bekommen hat nicht losgelaufen ist ohne dass ich ins Fenster gelickt hab, jetzt scheint es bei Dir genau umgekehrt zu sein ?

Also das Problem mit dem drehen liegt daran, dass er sich nicht in die Richtung ausrichten kann, mach doch mal consolewrite in die zeile 313 und lass dir die $accel ausgeben, der wert muss nach 2-3 zyklen gegen 0 gehen...

Und ja das wäre auch meine Frage gewesen, geht die MoveDemo ? sind die keysettings ok ?
01/22/2009 22:05 kknb#233
nochmal meine frage, wäre es möglich für keysend nen fragezeichen einzubauen, oder ist das eher schwierig?

mir ist übrigens aufgefallen das keysend von zeit zu zeit buchstaben verschluckt.
01/22/2009 22:11 i4mSoH34Vy#234
Also MoveDemo läuft einwandfrei auch mit der neuen nachdem ich Opt mal runtergesetzt hab. Findet ihr dort einen Fehler?
Edit: Irgendwas war im Ordner was gestört hat.
01/22/2009 22:38 tonitusch666#235
Also ich hab grad die MouseSend und die Ident Funktion verglichen, das ist seit 1.0 der gleiche Code, allerdings hab ich da einen Fehler gefunden und
zwar müssten alle Buttonup calls so lauten
Code:
DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $btup, "int", 0, "long", $pos)
ich teste das aber nochmal. Update: ja also mit mousesend alleine bekomme ich das identkit auch nicht überredet zu identen, daher hab ich damals in der Funktion controlclick+mousesend benutzt...

Also ich hab 4 boss bots in summe ca 20h rennen lassen und zumindest haben alle resign funktioniert, dort sind aber auch sleeps von 50ms drin. Hast Du zwischen den keysend auch immer pausen eingefügt ? Das es Probleme geben kann, würde ich nicht ausschliessen, das kann an vielen Faktoren liegen !?

Naja also ich finds recht wackelig und weis auch nicht obs wirklich sauber klappt, aber so hat ? funktioniert (ist eigentlich ein getrickstes ?ß und dann löschen des ß :rolleyes:), probiers aus vielleicht klappts is halt ein SHIFT key...

Code:
	ElseIf StringUpper($inkey) = "?" Then
		$skey = 0x3f
		$lparam = 0x000c0001
		DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYDOWN, "int", 0xDB, "int", $lparam)
		DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_CHAR, "int", $skey, "int", $lparam)
		Sleep(20)
		DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYUP, "int", 0xDB, "int", BitOR($lparam, 0xC0000000))
		Sleep($kdown)
		$skey = 0x08
		$ret = DllCall($user32, "int", "MapVirtualKey", "int", $skey, "int", 0)
		$lparam = BitShift($ret[0], -16)
		$lparam = BitOr($lparam, 1)
		DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYDOWN, "int", $skey, "int", $lparam)
		Sleep($kdown)
		DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_KEYUP, "int", $skey, "int",   BitOR($lparam, 0xC0000000))
01/22/2009 23:04 kknb#236
danke dafür schonmal, mir ist es jetzt erst extrem aufgefallen weil ich meinen herobattle bot ne weile beobachtet habe, habe dort ettliche random begrüssungsnachrichten für meine gegner eingebaut, da kamen dann doch noch ab und zu fehler beim keysend. nen sleep von 50 hatte ich auch bei mir eingebaut. ist aber nicht so wild, so siehts in meinem fall noch menschlicher aus ;)

mit dem fragezeichen werde ich jetzt testen.


edit: getestet, der kommt mit Sleep($kdown) und $WM_CHAR nicht klar, kein plan wie ich das deklarieren muss ;)
01/22/2009 23:15 tonitusch666#237
hat ich fast befürchtet, das ist auch nicht sauber was ich da gebastelt hab, dann musst dafür halt ControlSend nehmen is ja nicht so wild wenn das nur ab und zu was schickt. war halt nur lästig in der move engine weil er da ja ständig was schickt und dann auch noch empfindlich gegen optkeydowndelay ist...

Ups falsch gelesen, das war als schnipsel gedacht für die keysend, dort einfach unter der @ Behandlung einbaun, ansonsten #include <WindowsConstants.au3> und $kdown ist bei mir 50...
01/22/2009 23:26 kknb#238
ah ok habs hinbekommen, hab die konstante samt wert direkt in die tt6.au3 kopiert, wenn ich die ganze winconstats...include gibts ja fehler wegen der anderen konstanten:)

naja wie dem auch sei, nen fragezeichen kommt net an, egal muss wirklich controlsend herhalten.
01/22/2009 23:29 Azunai#239
so vllt

Code:
#Include <WinAPI.au3>
#include <WindowsConstants.au3>
Dim $Keys[0xFF + 1]
_send_vkey("?kommt nix an?")

Func _GetVK($Chr)
	$Chr = String($Chr)
	For $i = 1 To 0xFF
		If $Keys[$i] = $Chr Then Return $i
	Next
EndFunc   ;==>_GetVK

func _send_vkey($array="")
$array = stringsplit($array,"")
	For $i = 1 To $array[0]
		_WinAPI_PostMessage (WinGetHandle("Guild Wars"), $WM_KEYDOWN, _GetVK($array[$i]), 0)
		Sleep(30)
		_WinAPI_PostMessage (WinGetHandle("Guild Wars"), $WM_KEYup, _GetVK($array[$i]), 0)
		Sleep(75)
	Next
	Sleep(100)
endfunc
01/22/2009 23:37 kknb#240
was auch immer das heissen mag.

Code:
D:\Documents and Settings\admin\Desktop\New Folder\lösch mich.au3 (15) : ==> Subscript used with non-Array variable.:
$resign[1] = "?"
$resign^ ERROR