AutoIt v3跳过send()输入

时间:2014-09-28 09:41:46

标签: keypress autoit

我第一次检查了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

1 个答案:

答案 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