Compiler errors 自动热键抛出错误:意外的“}”&引用;尽管括号似乎是正确的
添加Else语句后,脚本将不会编译do,因为括号不正确。编译器说第67行是罪魁祸首,我不知道为什么Compiler errors 自动热键抛出错误:意外的“}”&引用;尽管括号似乎是正确的,compiler-errors,autohotkey,curly-braces,unexpected-token,Compiler Errors,Autohotkey,Curly Braces,Unexpected Token,添加Else语句后,脚本将不会编译do,因为括号不正确。编译器说第67行是罪魁祸首,我不知道为什么 #NoEnv SetWorkingDir %A_ScriptDir% CoordMode, Mouse, Pixel SendMode Input #SingleInstance Force SetControlDelay 1 SetWinDelay 0 SetKeyDelay -1 SetMouseDelay -1 SetBatchLines -1 ^!6:: CoordMode, Pixel
#NoEnv
SetWorkingDir %A_ScriptDir%
CoordMode, Mouse, Pixel
SendMode Input
#SingleInstance Force
SetControlDelay 1
SetWinDelay 0
SetKeyDelay -1
SetMouseDelay -1
SetBatchLines -1
^!6::
CoordMode, Pixel, Screen
CoordMode, ToolTip, Screen
CoordMode, Mouse, Screen
Click, 830, 393
Sleep 2000
Click, 678, 538
Sleep 500
Click, 840, 800
Sleep 2000
Click, 671, 974
Sleep 500
Click, 1775, 300
Sleep 2000
Click, 1643, 487
Sleep 2000
var = 0
Loop {
ImageSearch, FoundX, FoundY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, *100 C:\Users\USER\Desktop\Folder\ImageAssets\storage4x4\image%var%.jpg
If (ErrorLevel = 0) {
If %var% = 0 {
Click, %FoundX%, %FoundY%
Sleep 50
Click, %FoundX%, %FoundY%
Sleep 100
ToolTip, Refreshing Store..., %FoundX%, %FoundY%
}
Else {
SoundPlay, C:\Users\USER\Desktop\Folder\SoundAssets\found.wav
Click, %FoundX%, %FoundY%
Sleep 50
Click, %FoundX%, %FoundY%
ToolTip, image%var%.jpg, %FoundX% + 10, %FoundY% + 10
ErrorLevel := -1
FoundX := ""
FoundY := ""
SearchAndPurchase()
}
}
If ErrorLevel
ToolTip, Didn't find image%var%.jpg, 0, 25
If var >= 10
var =
var += 1
}
Return
SearchAndPurchase(){
Sleep 5000
var = 0
Loop, 5 {
var += 1
Sleep 5000
ImageSearch, FoundX, FoundY, 0, 0, %A_ScreenWidth%, %A_ScreenHeight%, *100 C:\Users\USER\Desktop\Folder\ImageAssets\storage4x4\Storage4x4Store\image%var%.jpg
If (ErrorLevel = 0) {
SoundPlay, C:\Users\USER\Desktop\Folder\SoundAssets\chaching.wav
Click, %FoundX%, %FoundY%
ToolTip, $$$ image%var%.jpg $$$, %FoundX% + 10, %FoundY% + 10
Sleep 50
Click, %FoundX%, %FoundY%
FoundX := ""
FoundY := ""
}
If (ErrorLevel)
ToolTip, Couldn't purchase... 0, 75
If (var >= 10)
var = 0
}
ToolTip, Leaving Store and refreshing market..., 0, 25
Click, 678, 538
Click, 678, 1043
Click, 1643, 538
Sleep 2000
Click, 678, 538
Click, 678, 1043
Click, 1643, 538
Sleep 2000
}
Esc:: ExitApp
我计算了所有括号,代码中每个方向有7个括号。我还删除了所有括号,并重新添加了几次,试图抓住错误,但没有运气。这是怎么回事?您有一个浮动赋值:
var=
第63行
大括号是意外的,因为它希望您完成句子。如果其他人看到类似问题,请检查您的if语句并将所有条件放在括号中。在本例中,它在将所有if条件放在括号内后进行了修复(以及Inc的注释) 我修复了这个问题,但不幸的是,我仍然遇到了同样的错误编译代码时,我在“C:\Users\Robert\DataFiles\U 9 Programs\U Programming\AHK\Someonesprogram.AHK”中成功编译了:>“C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe”/C:\Users\Robert\DataFiles\U 9 Programs\U Programming\AHK\Someonesprogram.AHK:>退出代码:0时间:5.602。。。但话说回来,也许我的平台不可信,请参见:。我明白了,编译之后,你得到了信息。。忽略我的消息。通常,正如您所提到的,最好总是在if语句表达式中使用括号(除了单个true/false bool变量)。但是,在您的特定情况下,它正在检查“var”的内容是否等于“0{”,因此实际上没有开始大括号,因为它是作为表达式的一部分使用的。