我目前制作一个使用ImageSearch查找图像并执行其他功能的iMacro脚本。如果image1匹配imagesearch则执行task1,否则执行task2。
If IMAGESEARCH POS=1 IMAGE=IMAGE1.png CONFIDENCE=65
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:bet-amount CONTENT=0.01
TAG POS=1 TYPE=BUTTON:SUBMIT ATTR=ID:bet-bt
Else If IMAGESEARCH POS=1 IMAGE=IMAGE2.png CONFIDENCE=65
TAG POS=1 TYPE=BUTTON:SUBMIT ATTR=ID:bet-multiplier
TAG POS=1 TYPE=BUTTON:SUBMIT ATTR=ID:bet-bt
如何制作if语句?
答案 0 :(得分:3)
您必须使用JavaScript脚本。你有一个例子
Loop in Imacros using Javascript
在你的情况下,这将是第一个宏
IMAGESEARCH POS=1 IMAGE=IMAGE1.png CONFIDENCE=65
这将是第二个宏
IMAGESEARCH POS=1 IMAGE=IMAGE2.png CONFIDENCE=65
这将是第三个宏。
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:bet-amount CONTENT=0.01
TAG POS=1 TYPE=BUTTON:SUBMIT ATTR=ID:bet-bt
这将是第四个宏。
TAG POS=1 TYPE=BUTTON:SUBMIT ATTR=ID:bet-multiplier
TAG POS=1 TYPE=BUTTON:SUBMIT ATTR=ID:bet-bt
所以这就是它看起来的样子。
if(iimPlay(macro1)>0)
{
iimPlay(macro3)
}
else if(iimPlay(macro2)>0)
{
iimPlay(macro4)
}
答案 1 :(得分:1)
“在imacros中没有IF ELSE声明 - Bestmacros 2013年10月31日8:01”
=>的确,但“你必须使用JavaScript脚本。”是不正确的...!您可以在纯'.iim'中实现一些条件行为,例如本案例:
SET !ERRORIGNORE YES
SET !TIMEOUT_STEP 0
IMAGESEARCH POS=1 IMAGE=IMAGE1.png CONFIDENCE=65
SET ClickAmount EVAL("var y='{{!IMAGEY}}'; var z; if(y>0){z=1;} else{z=0;}; z;")
TAG POS={{ClickAmount}} TYPE=INPUT:TEXT ATTR=ID:bet-amount CONTENT=0.01
TAG POS={{ClickAmount}} TYPE=BUTTON:SUBMIT ATTR=ID:bet-bt
IMAGESEARCH POS=1 IMAGE=IMAGE2.png CONFIDENCE=65
SET ClickMultiplier EVAL("var y='{{!IMAGEY}}', a='{{ClickAmount}}'; var z; if(a==1){z=0;} else if(y>0){z=1;} else{z=0;}; z;")
TAG POS={{ClickMultiplier}} TYPE=BUTTON:SUBMIT ATTR=ID:bet-multiplier
TAG POS={{ClickMultiplier}} TYPE=BUTTON:SUBMIT ATTR=ID:bet-bt
=>所有'IF / ELSE'逻辑都在一个单独的'.iim'宏中,非常类似于@ OP的原始脚本,并且可以直接在iMB或IE中工作,而不是使用需要主要'.js'脚本的4个脚本在FF工作......!
(未经测试,我从未使用'IMAGESEARCH',因为我只使用免费的附加组件(使用FF),根据Wiki,'!IMAGEX'和'!IMAGEY'应该保持坐标如果找到图像,我认为有效坐标必须> 0,至少对于'!IMAGEY'。'!IMAGEX'和'!IMAGEY'变量可能需要在第二个'IMAGESEARCH'之前重置为'NULL'如果它不会自动发生......(我无法测试......))