武神傳說(shuō)wsmud輔助腳本開(kāi)發(fā)(3)

再來(lái)處理師門(mén)任務(wù)的腳本,
先簡(jiǎn)單處理,就是假定需要上交的東西身上都有了(可以先把醉仙樓的東西都買(mǎi)好)
沒(méi)有的就放棄.
主要是為了省時(shí)間,想要追求連續(xù)完成度的同學(xué)可以無(wú)視了
先看看初級(jí)版本的,以峨眉為例

function shimen(){
    //需要提前買(mǎi)好物品
    //進(jìn)入師門(mén)(峨眉)
    cmd("jh fam 4 start")
    cmd("go west");
    //請(qǐng)求任務(wù)
    cmd("task sm al332ef82fa")  //待改進(jìn),師父的id可能會(huì)變
    //交任務(wù)
    cmd("task sm al332ef82fa")
    //tt=setTimeout(function(){   //一次性延時(shí)
    tt=setInterval(function(){    //循環(huán)等待
          if(wsdata["cmds"]){
            console.log(wsdata["cmds"].items[0]);
            c=wsdata["cmds"].items[0].cmd;  //每次都執(zhí)行第一個(gè)命令
            cmd(c);
            wsdata["cmds"]=null;
            window.clearInterval(tt);
          }
    }
    , 1000);   
}

這里有個(gè)問(wèn)題,就是師父的id是一個(gè)變量,每次游戲重置會(huì)變化.
當(dāng)然可以每次先用開(kāi)發(fā)者工具查看一下,再修改腳本,但是這樣也太麻煩了
所以改進(jìn)一下

clear=0
cid=''
function sm(){  //第一次用這個(gè)函數(shù)
    //需要提前買(mǎi)好物品
    cmd("stopstate")  //停止當(dāng)前工作
    //進(jìn)入師門(mén)(峨眉)
    cmd("jh fam 4 start")
    cmd("go west")
    _getsmid("峨嵋派第五代弟子 蘇夢(mèng)清")
}

function _getsmid(name){
        tt=setInterval(function(){    //循環(huán)等待
        if(clear ==1 )  {window.clearInterval(tt);return}
          if(wsdata["items"]){
            console.log(wsdata["items"].items[0]);
            cname=wsdata["items"].items[0].name;
            cid=wsdata["items"].items[0].id;
            if (cname == name){
             //console.log(cid);
             wsdata["items"]=null;
             window.clearInterval(tt);
             sm2()
            }
          }
    }
    , 1000); 
}

function sm2(){//cid已經(jīng)獲得,用這個(gè)就可以了,不用每次都重新進(jìn)
    //請(qǐng)求任務(wù)
    cmd("task sm "+cid)
    //交任務(wù)
    cmd("task sm "+cid)
   _getsmcmd()  
}
function _getsmcmd(){
        tt=setInterval(function(){    //循環(huán)等待
          if(clear ==1 )  {window.clearInterval(tt);return}
          if(wsdata["cmds"]){
            console.log(wsdata["cmds"].items[0]);
            c=wsdata["cmds"].items[0].cmd;
            wsdata["cmds"]=null;
            window.clearInterval(tt);
            cmd(c)
          }
    }
    , 1000);  
}

js這種語(yǔ)言是基于異步事件的,所以搞不好就會(huì)出現(xiàn)一些想象不到的異常.
比如象setInterval這種無(wú)限運(yùn)行的定時(shí)器,一個(gè)不小心就會(huì)陷入死循環(huán)了
所以加一個(gè)clear,萬(wàn)一死循環(huán)了,可以通過(guò)輸入clear=1來(lái)停止

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容