我第一次检查了AutoIt并得到了一个小程序来为一个小游戏做出一些投入来卖IronIngots(拿IronIngots,使用“Zuflucht”-Spell,卖IronIngots,使用“Zuflucht”-Spell从一开始)。我想我已经做到了它应该可以工作,但可悲的是,它有点烦恼。这是基于按下按键而不是用户坐在那里并始终按下相同的按键。但有时它会滞后并跳过单按键。你能告诉我是否有错误吗?即使我使用相同的启动源启动程序(相同的游戏位置)也会观察不同的结果。
你帮我吗?这是代码:
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
答案 0 :(得分:0)
问题的原因很可能是脚本太快而无法应对游戏。由于脚本按键的速度比人类快1000倍。我通过添加一些sleep(100)
减慢了你的脚本速度。这将使其暂停0.1秒,然后再按下一个键。如果您仍然遇到问题,请尝试增加延迟。如果它可以尝试将其缩短以获得额外的速度
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