iMacro如果没有Javascript的Else声明

时间:2013-10-31 04:53:26

标签: if-statement imacros

我目前制作一个使用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语句?

2 个答案:

答案 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'如果它不会自动发生......(我无法测试......))