Hilfe bei MineCraft "Bot"

10/12/2011 22:49 Yo199#1
Hi, wieder hab ich ein problem mit AutoIt :D

Dieses mal sol wenn ich in einem Fenster z.B. Arrow eingeben inGame das inventar schliesen (damit ich zu dem Programm schalten kann) und dann da das eingegeben schreiben in dem Fall Arrow.
kann sein, dass ein paar Befehle überflüssig sind, da ich den Code von dem Hack kopiert habe.

Code:
#include <NomadMemory.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("TimeCraft <3", 226, 39, 192, 154)
$Input1 = GUICtrlCreateInput("", 8, 8, 121, 121)
$Button1 = GUICtrlCreateButton("Item geben", 136, 8, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Button1
Send("!{TAB}")
Send("e")
Send("t")
Send("/i $Value")
Send("t")
EndSwitch
WEnd
10/12/2011 22:55 omer36#2
[Only registered and activated users can see links. Click Here To Register...]

und noch


Send("/i" & GUICtrlRead($Input1)
10/12/2011 23:00 Yo199#3
wie muss ich den ControlSender Benutzen ???
10/12/2011 23:11 omer36#4
so wie es oben steht...

ControlSend ( "title", "", "", "e")

title: halt den title deines fensters...
warscheinlich "MineCraft", aber kannst du zb mit dem au3 window info tool herrausfinden, oder mit
WinGetTitle(), die beiden anderen kannst du eig frei lassen
10/13/2011 09:06 Yo199#5
Code:
#include <NomadMemory.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("TimeCraft <3", 226, 39, 192, 154)
$Input1 = GUICtrlCreateInput("", 8, 8, 121, 121)
$Button1 = GUICtrlCreateButton("Item geben", 136, 8, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Button1
$Value = GUICtrlRead($Input1)
ControlSend("Minecraft","","","e")
Send("e")
Send("t")
Send("/i ", $Value)
Send("t")
EndSwitch
WEnd
Soweit so gut...
aber wenn ich da jetzt arrow eingebe kommt nur ein leises pipsen auf meinen boxen :D
10/13/2011 11:37 omer36#6
-.-'

dein ernst?

PHP Code:
ControlSend("Minecraft","","","e")
Sleep(500)
ControlSend("Minecraft","","","t")
Sleep(500)
ControlSend("Minecraft","","","/i " $Value)
Sleep(500)
ControlSend("Minecraft","","","t"
10/13/2011 12:03 Yo199#7

aber da tut sich dieses mal garnix :rtfm:
10/13/2011 15:01 Yo199#8
PHP Code:
#include <NomadMemory.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("TimeCraft <3"22639192154)
$Input1 GUICtrlCreateInput(""88121121)
$Button1 GUICtrlCreateButton("Item geben"13687525$WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg 
GUIGetMsg()
Switch 
$nMsg
Case $GUI_EVENT_CLOSE
Exit

Case 
$Button1
$Value 
GUICtrlRead($Input1)
ControlSend("Minecraft","","","e")
Sleep(1)
ControlSend("Minecraft","","","t")
Sleep(1)
ControlSend("Minecraft","","","/i " $Value)
Sleep(1)
ControlSend("Minecraft","","","t")
Sleep(1)
EndSwitch
WEnd 
so geht das auch nich :(
10/13/2011 15:04 omer36#9
kennst du eig die grundlagen?
sleep wird in millisec angegeben...

sleep(1000)
10/13/2011 15:15 Yo199#10
ich weiß das wird in milisec. angegben, ich hab das so gemacht weil das ja diereckt ohne irgendwelche pause....

hab jetzt mal pause reingemacht...
jetz tut der zwar was schreiben aber wen ich Arrow eingebe kommt da nicht das komplette und ohne / da steht dann nur: iarr

Code:
10/13/2011 15:33 ~.ScoiL#11
GuiCtrlRead kann nicht in einer Variable benutzt werden.
10/13/2011 17:50 klavier22#12
Wenn du den gesamten $Value Text ControlSendest, wird es ja wieder ohne Pause gesendet - und damit geht es wieder (teilweise) nicht...

Ich weiß jetzt zwar nicht, was HelpLess meint, aber so wie du es verwendest passt es.
Außerdem würde ich dir och raten, deinen Code einzurücken, dann kann mans besser lesen und versteht logische Zusammenhänge (bei größeren Programmen wichtig) besser.
10/13/2011 20:51 Yo199#13
also was muss ich machen damit das wieder geht ??
10/13/2011 20:59 klavier22#14
Mir würde nur die unschöne Lösung einfallen, den eingegebenen String zu Splitten und dann nach C/C++ Manier in ein Array zu schrieben und dann jedes Zeichen einzeln zu senden.
10/13/2011 21:10 Ludder231#15
Versuch mal Opt("sendkeydelay") oder wie das heißt....Guck in der Helpfile(F1)