I checked out AutoIt for my first time and got a little program to make some inputs for a little game to sell IronIngots(take IronIngots, use "Zuflucht"-Spell, sell IronIngots, use "Zuflucht"-Spell and from beginning). I suppose i made it so it should work, but sadly, it bugs a bit around. It's based on pressing keys for mey instead of user sitting there and always pressing the same keys. But sometimes it lags and skip single keypresses. Can u tell me if there are some mistakes? even if i start the programm with same startressources (same ingame position) Different results are spectated.
Can u help me?
Thats the code:
Sleep(3000)
_Ausfuehren()
Func _Ausfuehren()
While 1
_ganzeRundeMitBlut()
WEnd
EndFunc
#cs
Fertig
#ce
Func _ganzeRundeMitBlut()
_EineRunde()
_Bluttrank(3)
_EineRunde()
_Bluttrank(2)
EndFunc
#cs Fertig
#ce
Func _EineRunde ()
_Silber()
_Zuflucht(0)
_Shop()
_Zuflucht(1)
EndFunc
#cs Fertig
#ce
Func _Bluttrank($Anzahl)
_Press("{ESC}")
_Press("{ENTER}")
_Press("{RIGHT}")
_Press("{ENTER}")
While $Anzahl > 0
_Press("{ENTER}")
$Anzahl = $Anzahl - 1
Sleep(2000)
WEnd
_Press("{ESC}")
_Press("{ESC}")
_Press("{ESC}")
EndFunc
#cs Fertig
#ce
Func _Zuflucht ($is_home)
_Press("{ESC}")
_Press("{DOWN}")
_Press("{ENTER}")
_Press("{ENTER}")
_Press("{RIGHT}")
_Press("{DOWN}")
_Press("{DOWN}")
_Press("{ENTER}")
_Press("{ENTER}")
If($is_home) Then
_Press("{DOWN}")
_Press("{ENTER}")
EndIf
EndFunc
#cs Fertig
#ce
Func _Shop ()
_Press("{UP}")
_Press("{ENTER}")
Sleep(200)
_Press("{ENTER}")
Sleep(500)
_Press("{ENTER}")
_Press("{ENTER}")
_Press("{DOWN}")
_Press("{ENTER}")
_Press("{DOWN}")
_Press("{DOWN}")
_Press("{DOWN}")
_Press("{DOWN}")
_Press("{DOWN}")
_Press("{DOWN}")
_Press("{DOWN}")
_Press("{DOWN}")
_Press("{RIGHT}")
_Press("{ENTER}")
_Press("{UP}")
_Press("{UP}")
_Press("{UP}")
_Press("{UP}")
_Press("{UP}")
_Press("{UP}")
_Press("{UP}")
_Press("{UP}")
_Press("{UP}")
_Press("{UP}")
_Press("{ENTER}")
_Press("{ESC}")
_Press("{ESC}")
EndFunc
#cs Fertig
#ce
Func _Silber ()
_Press("{RIGHT}")
_Press("{ENTER}")
_Press("{ENTER}")
_Press("{ENTER}")
_Press("{ENTER}")
_Press("{ENTER}")
EndFunc
#cs Fertig
#ce
Func _Press ($press_str)
Send($press_str)
Sleep(700)
EndFunc
The reason for you problem is most likely that the script is too fast for the game to cope. As the scrip will press the keys 1000's of times faster than a human. I have slowed your script down by adding some sleep(100)
This will make it pause for 0.1 seconds before pressing the next key. If you are still having the problem try increasing the delay. If it works to could try shorting it for extra speed
Sleep(3000)
_Ausfuehren()
Func _Ausfuehren()
While 1
_ganzeRundeMitBlut()
WEnd
EndFunc
#cs
Fertig
#ce
Func _ganzeRundeMitBlut()
_EineRunde()
_Bluttrank(3)
_EineRunde()
_Bluttrank(2)
EndFunc
#cs Fertig
#ce
Func _EineRunde ()
_Silber()
_Zuflucht(0)
_Shop()
_Zuflucht(1)
EndFunc
#cs Fertig
#ce
Func _Bluttrank($Anzahl)
sleep(100)
_Press("{ESC}")
sleep(100)
_Press("{ENTER}")
sleep(100)
_Press("{RIGHT}")
sleep(100)
_Press("{ENTER}")
While $Anzahl > 0
_Press("{ENTER}")
sleep(100)
$Anzahl = $Anzahl - 1
Sleep(2000)
WEnd
sleep(100)
_Press("{ESC}")
sleep(100)
_Press("{ESC}")
sleep(100)
_Press("{ESC}")
sleep(100)
EndFunc
#cs Fertig
#ce
Func _Zuflucht ($is_home)
sleep(100)
_Press("{ESC}")
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{ENTER}")
sleep(100)
_Press("{ENTER}")
sleep(100)
_Press("{RIGHT}")
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{ENTER}")
sleep(100)
_Press("{ENTER}")
sleep(100)
If($is_home) Then
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{ENTER}")
sleep(100)
EndIf
EndFunc
#cs Fertig
#ce
Func _Shop ()
sleep(100)
_Press("{UP}")
sleep(100)
_Press("{ENTER}")
Sleep(200)
_Press("{ENTER}")
Sleep(500)
_Press("{ENTER}")
sleep(100)
_Press("{ENTER}")
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{ENTER}")
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{DOWN}")
sleep(100)
_Press("{RIGHT}")
sleep(100)
_Press("{ENTER}")
sleep(100)
_Press("{UP}")
sleep(100)
_Press("{UP}")
sleep(100)
_Press("{UP}")
sleep(100)
_Press("{UP}")
sleep(100)
_Press("{UP}")
sleep(100)
_Press("{UP}")
sleep(100)
_Press("{UP}")
sleep(100)
_Press("{UP}")
sleep(100)
_Press("{UP}")
sleep(100)
_Press("{UP}")
sleep(100)
_Press("{ENTER}")
sleep(100)
_Press("{ESC}")
sleep(100)
_Press("{ESC}")
sleep(100)
EndFunc
#cs Fertig
#ce
Func _Silber ()
sleep(100)
_Press("{RIGHT}")
sleep(100)
_Press("{ENTER}")
sleep(100)
_Press("{ENTER}")
sleep(100)
_Press("{ENTER}")
sleep(100)
_Press("{ENTER}")
sleep(100)
_Press("{ENTER}")
sleep(100)
EndFunc
#cs Fertig
#ce
Func _Press ($press_str)
Send($press_str)
Sleep(700)
EndFunc