美文网首页
武神传说wsmud辅助脚本开发(3)

武神传说wsmud辅助脚本开发(3)

作者: laputa19 | 来源:发表于2018-10-24 10:16 被阅读259次

再来处理师门任务的脚本,
先简单处理,就是假定需要上交的东西身上都有了(可以先把醉仙楼的东西都买好)
没有的就放弃.
主要是为了省时间,想要追求连续完成度的同学可以无视了
先看看初级版本的,以峨眉为例

function shimen(){
    //需要提前买好物品
    //进入师门(峨眉)
    cmd("jh fam 4 start")
    cmd("go west");
    //请求任务
    cmd("task sm al332ef82fa")  //待改进,师父的id可能会变
    //交任务
    cmd("task sm al332ef82fa")
    //tt=setTimeout(function(){   //一次性延时
    tt=setInterval(function(){    //循环等待
          if(wsdata["cmds"]){
            console.log(wsdata["cmds"].items[0]);
            c=wsdata["cmds"].items[0].cmd;  //每次都执行第一个命令
            cmd(c);
            wsdata["cmds"]=null;
            window.clearInterval(tt);
          }
    }
    , 1000);   
}

这里有个问题,就是师父的id是一个变量,每次游戏重置会变化.
当然可以每次先用开发者工具查看一下,再修改脚本,但是这样也太麻烦了
所以改进一下

clear=0
cid=''
function sm(){  //第一次用这个函数
    //需要提前买好物品
    cmd("stopstate")  //停止当前工作
    //进入师门(峨眉)
    cmd("jh fam 4 start")
    cmd("go west")
    _getsmid("峨嵋派第五代弟子 苏梦清")
}

function _getsmid(name){
        tt=setInterval(function(){    //循环等待
        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已经获得,用这个就可以了,不用每次都重新进
    //请求任务
    cmd("task sm "+cid)
    //交任务
    cmd("task sm "+cid)
   _getsmcmd()  
}
function _getsmcmd(){
        tt=setInterval(function(){    //循环等待
          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这种语言是基于异步事件的,所以搞不好就会出现一些想象不到的异常.
比如象setInterval这种无限运行的定时器,一个不小心就会陷入死循环了
所以加一个clear,万一死循环了,可以通过输入clear=1来停止

相关文章

网友评论

      本文标题:武神传说wsmud辅助脚本开发(3)

      本文链接:https://www.haomeiwen.com/subject/znrttqtx.html