容易:关于提取物的简单的imacros麻烦

时间:2014-01-26 08:10:47

标签: imacros

我正在为一个在线RPG制作一个imacros脚本,我最后写了这个:

var i;
for(var i=1;i<=9999;i++) {
    iimDisplay(i);
var macro;
var retcode, macro2;
macro = "CODE:";
macro += "SET !ERRORIGNORE YES\n";
macro += "URL GOTO=http://coolsite.com/bttle.php?page=map\n";
macro += "TAG POS=1 TYPE=INPUT:IMAGE FORM=NAME:Cave ATTR=SRC:http://coolsite.com/images/maps/cave.gif\n";
macro += "TAG POS=1 TYPE=STRONG ATTR=TXT:Magby EXTRACT=TXT\n";

retcode = iimPlay(macro);

if (iimGetLastExtract(1)=='Marty'){
G_Extract = "CODE:";
G_Extract=G_Extract+"TAG POS=1 TYPE=SELECT ATTR=ID:item CONTENT=%Kill<SP>him\n";
G_Extract+=G_Extract+"TAG POS=1 TYPE=BUTTON ATTR=ID:use_item\n";
iimPlay(G_Extract);
}
else if (iimGetLastExtract(1)!=="Marty")
{
macro2 = "CODE:";
macro2 += "TAG POS=1 TYPE=BUTTON ATTR=ID:run\n";
macro2 += "SET !EXTRACT NULL\n";
macro2 +="Wait seconds=2.5\n";
iimPlay(macro2);
}


}

它的作用是,如果敌人“马蒂”被发现,那么我们需要杀死他,否则如果发现的敌人不是马蒂,那么我们需要跑。现在,第一部分完成它的工作,它总是点击地图来搜索敌人,然后它在屏幕上搜索文本“Marty”。但是,即使它找到它并选择它,它仍然认为页面上没有Marty,所​​以继续运行,从不战斗。 请帮助我们。

2 个答案:

答案 0 :(得分:1)

可能它找不到它。 尝试使用以下方法调试找到的值:

alert(iimGetLastExtract(1));

答案 1 :(得分:0)

macro += "TAG POS=1 TYPE=STRONG ATTR=TXT:Magby EXTRACT=TXT\n";

我在这里看到&#34; Magby&#34;所以这个iMacros代码将提取值为#34; Magby&#34;的文本。尝试将此更改为Marty并查看它是否有效。

var i;
for(var i=1;i<=9999;i++) {
    iimDisplay(i);
var macro;
var retcode, macro2;
macro = "CODE:";
macro += "SET !ERRORIGNORE YES\n";
macro += "URL GOTO=http://coolsite.com/bttle.php?page=map\n";
macro += "TAG POS=1 TYPE=INPUT:IMAGE FORM=NAME:Cave ATTR=SRC:http://coolsite.com/images/maps/cave.gif\n";
macro += "TAG POS=1 TYPE=STRONG ATTR=TXT:Magby EXTRACT=TXT\n";

retcode = iimPlay(macro);

var extracted=iimGetLastExtract();

extracted=extracted.trim();

if (iimGetLastExtract(1)=='Marty'){
G_Extract = "CODE:";
G_Extract=G_Extract+"TAG POS=1 TYPE=SELECT ATTR=ID:item CONTENT=%Kill<SP>him\n";
G_Extract+=G_Extract+"TAG POS=1 TYPE=BUTTON ATTR=ID:use_item\n";
iimPlay(G_Extract);
}
else if (iimGetLastExtract(1)!=="Marty")
{
macro2 = "CODE:";
macro2 += "TAG POS=1 TYPE=BUTTON ATTR=ID:run\n";
macro2 += "SET !EXTRACT NULL\n";
macro2 +="Wait seconds=2.5\n";
iimPlay(macro2);
}


}

我不喜欢将extract和if子句放在一起。所以改了一下。我还修剪了弦以从侧面移除任何空白区域。如果这不起作用,请使用alert来检查值,toLowerCase()方法可以帮助你。