魔兽世界自动挂战场脚本 
 【脚本介绍】:该脚本是模拟一次自动刷战场的示例,由于当中引用了内存的方法,若用户不知道如何获取内存,这都没关系,以后我们将会推出一套使用内存的方法供大家学习。在这里用户只要学会一个全自动刷战场的流程,熟悉脚本中使用到的功能函数和如何选择不同的战场类型的判断语句。 
 
【原理】:获取角色无BUFF满血的血量---等待程序初始化成功---选择战场类型---根据序号选择不同的地图---开始自动刷战场。 
 
【使用方法】: 
1、电脑屏幕分辨率改为:1024*768,不支持后台。 
2、修改WOW的设置:先按ESC键,后选择“视频设置”---“分辨率”---如果"使用UI缩放"没勾上的,必须勾上----然后在把UI调至最高。 
3、然后在按软件提示输入满血无BUFF的时候,当前角色的血量; 
4、若魔兽世界版本更新将无法使用该脚本。 
  
 
 
【源码如下】: 
 
空间 战场 
  
 //定义defaultNamespce的命名空间 
 double 当前坐标 
 int wowProID 
 int wowWinID 
 bool 进入战场 
 整型 地址 
 整型 地址1 
 整型 地址2 
 整型 地址3 
 整型 血量地址 
 int j 
 string 角色血量 
 string 战场号 
  
 function  int 战歌峡谷() 
  
 double 战场地址y 
 double 战场地址y1 
  
  
 辅助.等待(3000) 
 //战场地址x=进程.读float(wowProID,#D38B10) 
  
 战场地址y=进程.读float(wowProID,#D38B10) 
  
 //先右走 
 窗口.提交按下(wowWinID,69) 
 辅助.等待(1000) 
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
 辅助.等待(500) 
 窗口.提交弹起(wowWinID,69) 
  
 //在直走5秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(1000) 
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
 辅助.等待(4000) 
 窗口.提交弹起(wowWinID,87) 
  
 战场地址y=进程.读float(wowProID,#D38B0C) 
  
 //在直走5秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(2000) 
 窗口.提交弹起(wowWinID,87) 
  
 战场地址y1=进程.读float(wowProID,#D38B0C) 
  
 //判断战场是否开始(如果没开始就继续向前跑) 
 while(数学.绝对值(战场地址y1-战场地址y)<2) 
 战场地址y=进程.读float(wowProID,#D38B0C) 
  
 窗口.提交按下(wowWinID,81) 
 辅助.等待(200) 
 窗口.提交弹起(wowWinID,81) 
  
 窗口.提交按下(wowWinID,87) 
 辅助.等待(2000) 
 窗口.提交弹起(wowWinID,87) 
  
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
  
 窗口.提交按下(wowWinID,69) 
 辅助.等待(300) 
 窗口.提交弹起(wowWinID,69) 
  
 辅助.等待(2000) 
  
 战场地址y1=进程.读float(wowProID,#D38B0C) 
  
 endwhile 
  
 //如果战场已经开始了,向前跑10秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(7000) 
 窗口.提交弹起(wowWinID,87) //然后在右走6秒 窗口.提交按下(wowWinID,69) 
 辅助.等待(5500) 
 窗口.提交弹起(wowWinID,69) //然后在直走10秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(10000) 
 窗口.提交弹起(wowWinID,87) return 0 
 endfunction 
  
 function int 阿拉希盆地() 
 辅助.等待(3000) double 战场地址x 
 double 战场地址x1 //先向前走10秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(10000) 
 窗口.提交弹起(wowWinID,87) 战场地址x=进程.读float(wowProID,#D38B10) //在向前走2秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(2000) 
 窗口.提交弹起(wowWinID,87) 
 战场地址x1=进程.读float(wowProID,#D38B10) //判断战场是否开始(如果没开始就继续向前跑) 
 while((战场地址x-战场地址x1)<2) 
 战场地址x=进程.读float(wowProID,#D38B10) //右移 窗口.提交按下(wowWinID,87) 
 辅助.等待(2000) 
 窗口.提交弹起(wowWinID,87) 
  
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
  
 辅助.等待(2000) 
  
 战场地址x1=进程.读float(wowProID,#D38B10) //左移 
 窗口.提交按下(wowWinID,81) 
 辅助.等待(200) 
 窗口.提交弹起(wowWinID,81) endwhile 
  
 return 0 
 endfunction 
  
 function int 奥特兰克山谷() 
  
  
 辅助.等待(3000) 
  
 double 战场地址x 
 double 战场地址x1 
  
 //先向前走600毫秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(3000) 
 窗口.提交弹起(wowWinID,87) 
  
 辅助.等待(1000) 
  
 //然后右转400毫秒 
 窗口.提交按下(wowWinID,68) 
 辅助.等待(200) 
 窗口.提交弹起(wowWinID,68) 
  
 辅助.等待(1000) 
  
 //先向前走15秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(15000) 
 窗口.提交弹起(wowWinID,87) 
  
 战场地址x=进程.读float(wowProID,#D38B10) 
  
 //在向前走2秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(2000) 
 窗口.提交弹起(wowWinID,87) 
 战场地址x1=进程.读float(wowProID,#D38B10) 
  
 //判断战场是否开始(如果没开始就继续向前跑) 
 while((战场地址x1-战场地址x)<2) 
 战场地址x=进程.读float(wowProID,#D38B10) 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(2000) 
 窗口.提交弹起(wowWinID,87) 
  
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
  
 辅助.等待(2000) 
  
 战场地址x1=进程.读float(wowProID,#D38B10) 
 endwhile 
  
 //先向前走600毫秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(5000) 
 窗口.提交弹起(wowWinID,87) 
  
 //然后右转100毫秒 
 窗口.提交按下(wowWinID,68) 
 辅助.等待(200) 
 窗口.提交弹起(wowWinID,68) 
  
 return 0 
 endfunction 
  
 function int 奥特兰克山谷BL() 
  
 double 战场地址x 
 double 战场地址x1 
  
 辅助.等待(3000) 
  
 //先向前走2000毫秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(2000) 
 窗口.提交弹起(wowWinID,87) 
  
 辅助.等待(1000) 
  
 //然后左走500毫秒 
 窗口.提交按下(wowWinID,81) 
 辅助.等待(500) 
 窗口.提交弹起(wowWinID,81) 
  
 辅助.等待(1000) 
  
 //先向前走12秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(12000) 
 窗口.提交弹起(wowWinID,87) 
  
 战场地址x=进程.读float(wowProID,#D38B10) 
  
 //在向前走2秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(2000) 
 窗口.提交弹起(wowWinID,87) 
 战场地址x1=进程.读float(wowProID,#D38B10) 
  
 //判断战场是否开始(如果没开始就继续向前跑) 
 while((战场地址x1-战场地址x)<2) 
 战场地址x=进程.读float(wowProID,#D38B10) 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(2000) 
 窗口.提交弹起(wowWinID,87) 
  
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
  
 辅助.等待(2000) 
  
 战场地址x1=进程.读float(wowProID,#D38B10) 
  
 endwhile 
  
 //先向前走12秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(12000) 
 窗口.提交弹起(wowWinID,87) 
  
 return 0 
 endfunction 
  
 function int 风暴之眼() 
  
 辅助.等待(3000) 
 double 战场地址y 
 double 战场地址y1 
  
 //先向前走3秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(4000) 
 窗口.提交弹起(wowWinID,87) 
  
 战场地址y=进程.读float(wowProID,#D38B0C) 
  
 //在向前走2秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(2000) 
 窗口.提交弹起(wowWinID,87) 
 战场地址y1=进程.读float(wowProID,#D38B10) 
  
 //判断战场是否开始(如果没开始就继续向前跑) 
 while(数学.绝对值(战场地址y1-战场地址y)<2) 
 战场地址y=进程.读float(wowProID,#D38B10) 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(2000) 
 窗口.提交弹起(wowWinID,87) 
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
  
 辅助.等待(2000) 
  
 战场地址y1=进程.读float(wowProID,#D38B10) 
  
 endwhile 
  
 //先向前走3秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(3000) 
 窗口.提交弹起(wowWinID,87) 
  
 return 0 
 endfunction 
  
 function int 征服之岛() 
  
 return 0 
 endfunction 
  
  
 function int 释放复活() 
 int 血量 
 string 地址血量 
 int 位置 
 string 血量值 
 位置=0 
  
 ///点击释放灵魂 
 if(血量地址!=0) 地址血量=进程.读string(wowProID,血量地址,5)  
 位置=字符串.查找字符串(地址血量,"/") 
 if(位置!=-1) 血量值=字符串.截取(地址血量,1,位置-1) 
 血量=转换.字符型转整型(血量值) 
 else 
  
 血量=转换.字符型转整型(地址血量) 
 endif 
  
 //角色已经死亡 ,点击释放 
 if(血量==0||血量==1) 
 辅助.等待(1000) 
 //辅助.打印("角色已经死亡") 
 鼠标.移动(510,195) 
 辅助.等待(200) 
 鼠标.移动(510,195) 
 鼠标.左键单击(1) 
 辅助.等待(3000) 
  
 //等待复活中 
 int i 
 i=1 
 while(true) 
  
  
 if(i==1) 
 //辅助.打印("正在复活中") 
 i=i+1 
 endif 
  
 辅助.等待(3000) 
 地址血量=进程.读string(wowProID,血量地址,5) 
  
 位置=0 
 位置=字符串.查找字符串(地址血量,"/") 
 if(位置!=-1) 
 血量值=字符串.截取(地址血量,1,位置-1) 
 if(字符串.比较(血量值,角色血量)==0) 
  
 //辅助.打印("角色复活成功!") 
  
 double 坐标 
 坐标=进程.读float(wowProID,#D38B10) 
 //判断是否要转身 
 if(坐标>1554.0&&坐标<1555.0) 
 辅助.等待(1000) 
 窗口.提交按下(wowWinID,68) 
 辅助.等待(800) 
 窗口.提交弹起(wowWinID,68) 
 endif 
  
 //判断是否要转身 
 if(坐标>1163.0&&坐标<1164.0) 
 辅助.等待(1000) 
 窗口.提交按下(wowWinID,68) 
 辅助.等待(1000) 
 窗口.提交弹起(wowWinID,68) 
 endif 
  
 break 
 endif 
  
 endif 
  
 endwhile 
 endif 
  
 endif 
  
 return 0 
 endfunction 
  
 //查找怪血量的内存地址 
 function int 寻找地址(string 字符串) 
 int 内容 
 内容=0 
 地址=0 
 地址1=0 
 地址2=0 
 地址3=0 
  
 地址=进程.找string(wowProID,字符串,#400000,#2fffffff) 
 //确定地址 
 if(地址!=0) 
 内容=进程.读byte(wowProID,地址+16) 
 if(内容>=1&&内容<=16) 
 内容=进程.读byte(wowProID,地址+18) 
 if(内容==3) 
 return 地址 
 endif 
 endif 
 endif 
  
 if(地址!=0) 
 地址1=进程.找string(wowProID,字符串,地址+1,#2fffffff) 
 //确定地址 
 if(地址1!=0) 
 内容=进程.读byte(wowProID,地址1+16) 
 if(内容>=1&&内容<=16) 
 内容=进程.读byte(wowProID,地址1+18) 
 if(内容==3) 
 return 地址1 
 endif 
 endif 
 endif 
  
 else 
 return 1 
 endif 
 // 
 if(地址1!=0) 
 地址2=进程.找string(wowProID,字符串,地址1+1,#2fffffff) 
 if(地址2!=0) 
 内容=进程.读byte(wowProID,地址2+16) 
 if(内容>=1&&内容<=16) 
 内容=进程.读byte(wowProID,地址2+18) 
 if(内容==3) 
 return 地址2 
 endif 
 endif 
 endif 
  
 else 
 return 1 
 endif 
  
 if(地址2!=0) 
 地址3=进程.找string(wowProID,字符串,地址2+1,#2fffffff) 
 if(地址3!=0) 
 内容=进程.读byte(wowProID,地址3+16) 
 if(内容>=1&&内容<=16) 
 内容=进程.读byte(wowProID,地址3+18) 
 if(内容==3) 
 return 地址3 
 endif 
 endif 
 endif 
  
 endif 
 return 0 
 endfunction 
  
 function int 得到地址(string 角色血量1) 
  
 string 字符串 
 int 读取地址 
  
 字符串=字符串.连接(角色血量1," / ") 
 字符串=字符串.连接(字符串,角色血量1) 
 读取地址=战场.寻找地址(字符串) 
 return 读取地址 
 endfunction 
  
  
 function bool 进入战场(string 战场) 
 string 战场类型 
 string 序号字符 
 string 序号 
 int 战场长度 
 int i 
 int n 
 int nun 
 int 开始 
  
 开始=1 
  
 //窗口.还原(wowWinID) 
 //辅助.等待(1000) 
 窗口.提交按键(wowWinID,72) 
 鼠标.移动(95,525) 
 辅助.等待(200) 
 鼠标.移动(95,525) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(2000) 
 //辅助.打印("开始选择要进入战场") 
  
 战场长度=字符串.长度(战场) 
 n=战场长度 
  
 战场号=战场 
  
 while(true) 
 辅助.等待(2000) 
 i=1 
  
 if(n<3) 
 序号=战场 
 endif 
  
 if(n==3) 
  
 if(j==1) 
 序号=字符串.截取(战场号,1,2) 
 endif 
  
 if(j==2) 
 string temp 
 序号=字符串.截取(战场号,1,1) 
 temp=字符串.截取(战场号,3,3) 
 序号=字符串.连接(序号,temp) 
 j=1 
 endif 
 j=j+1 
 endif 
  
 if(n==4) 
  
 if(j==1) 
 序号=字符串.截取(战场号,1,2) 
 endif 
  
 if(j==2) 
 序号=字符串.截取(战场号,3,4) 
 j=1 
 endif 
 j=j+1 
 endif 
  
 if(n==5) 
  
 if(j==1) 
 序号=字符串.截取(战场号,1,2) 
 endif 
  
 if(j==2) 
 序号=字符串.截取(战场号,3,4) 
 endif 
  
 if(j==3) 
 string temp 
 序号=字符串.截取(战场号,1,1) 
 temp=字符串.截取(战场号,5,5) 
 序号=字符串.连接(temp,序号) 
 j=1 
 endif 
 j=j+1 
 endif 
  
 if(n==6) 
  
 if(j==1) 
 序号=字符串.截取(战场号,1,2) 
 endif 
 if(j==2) 
 序号=字符串.截取(战场号,3,4) 
 endif 
  
 if(j==3) 
 序号=字符串.截取(战场号,5,6) 
 j=1 
 endif 
 j=j+1 
 endif 
  
 if(n==7) 
  
 if(j==1) 
 序号=字符串.截取(战场号,1,2) 
 endif 
  
 if(j==2) 
 序号=字符串.截取(战场号,3,4) 
 endif 
  
 if(j==3) 
 序号=字符串.截取(战场号,5,6) 
 endif 
  
 if(j==4) 
 string temp 
 序号=字符串.截取(战场号,1,1) 
 temp=字符串.截取(战场号,7,7) 
 序号=字符串.连接(temp,序号) 
 j=1 
 endif 
  
 j=j+1 
 endif 
  
 while(i<=2) 
 序号字符=字符串.截取(序号,i-1,i) 
 //当获取到序号是1的时候,表示随机战场 
 if(字符串.比较(序号字符,"1")==0) 
 ///点击选择战场队列 
 鼠标.移动(150,200) 
 辅助.等待(200) 
 鼠标.移动(150,200) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
  
 辅助.等待(2000) 
 ///点击加入战场队列 
 鼠标.移动(200,495) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 endif 
 //当获取到序号是2的时候,表示战歌峡谷 
 if(字符串.比较(序号字符,"2")==0) 
 ///点击选择战场队列 
 鼠标.移动(150,215) 
 辅助.等待(200) 
 鼠标.移动(150,215) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
  
 辅助.等待(2000) 
 ///点击加入战场队列 
 鼠标.移动(200,495) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 endif 
 //当获取到序号是3的时候,表示阿拉希盆地 
 if(字符串.比较(序号字符,"3")==0) 
 ///点击选择战场队列 
 鼠标.移动(150,230) 
 辅助.等待(200) 
 鼠标.移动(150,230) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
  
 辅助.等待(2000) 
 ///点击加入战场队列 
 鼠标.移动(200,495) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 endif 
 //当获取到序号是4的时候,表示奥山战场 
 if(字符串.比较(序号字符,"4")==0) 
 ///点击选择战场队列 
 鼠标.移动(150,245) 
 辅助.等待(200) 
 鼠标.移动(150,245) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
  
 辅助.等待(2000) 
 ///点击加入战场队列 
 鼠标.移动(200,495) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 endif 
 //当获取到序号是5的时候,表示风暴战场 
 if(字符串.比较(序号字符,"5")==0) 
  
 ///点击选择战场队列 
 鼠标.移动(150,260) 
 辅助.等待(200) 
 鼠标.移动(150,260) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
  
 辅助.等待(2000) 
 ///点击加入战场队列 
 鼠标.移动(200,495) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
  
 endif 
  
 //当获取到序号是6的时候,表示远古海滩 
 if(字符串.比较(序号字符,"6")==0) 
 //先点击向下的滚动条 
 鼠标.移动(333,260) 
 辅助.等待(200) 
 鼠标.移动(333,260) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
  
 辅助.等待(2000) 
 ///点击选择战场队列 
 鼠标.移动(150,245) 
 辅助.等待(200) 
 鼠标.移动(150,245) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
  
 ///点击加入战场队列 
 鼠标.移动(200,495) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
  
 //点击向上的滚动条,还原滚动条 
 鼠标.移动(333,195) 
 辅助.等待(200) 
 鼠标.移动(333,195) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
  
 endif 
  
 //当获取到序号是7的时候,表示征服之岛 
  
 if(字符串.比较(序号字符,"7")==0) 
 //先点击向下的滚动条 
 鼠标.移动(333,260) 
 辅助.等待(200) 
 鼠标.移动(333,260) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
  
 辅助.等待(2000) 
 ///点击选择战场队列 
 鼠标.移动(150,260) 
 辅助.等待(200) 
 鼠标.移动(150,260) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 ///点击加入战场队列 
 鼠标.移动(200,495) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
  
 //点击向上的滚动条,还原滚动条 
 鼠标.移动(333,195) 
 辅助.等待(200) 
 鼠标.移动(333,195) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
  
 endif 
  
 i=i+1 
 endwhile 
  
 //开始等待进入战场 
 if(开始==1) 
 //辅助.打印("开始等待进入战场") 
 开始=开始+1 
 endif 
  
 鼠标.移动(450,195) 
 辅助.等待(200) 
 鼠标.移动(450,195) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(2000) 
  
 窗口.提交按键(wowWinID,32) 
  
 double 临时坐标 
 临时坐标=进程.读float(wowProID,#D38B10) 
 临时坐标=临时坐标-当前坐标 
  
 临时坐标=数学.绝对值(临时坐标) 
  
 if(临时坐标>50) 
 //辅助.打印("已经进入战场,准备战场搞起") 
 return true 
 endif 
 辅助.等待(5000) 
  
  
 endwhile 
  
 return true 
 endfunction 
  
 function bool 战场搞起() 
  
 double 战场地址x 
 double 战场地址y 
  
 辅助.等待(4000) 
  
 战场地址x=进程.读float(wowProID,#D38B10) 
  
 战场地址y=进程.读float(wowProID,#D38B0C) 
  
 //战歌峡谷战场 (LM) 
 if((战场地址x-1481.0)<1&&(战场地址x-1481.0)>0) 
 战场.战歌峡谷() 
 endif 
  
 //战歌峡谷战场 (BL) 
 if((战场地址x-1433.0)<1&&(战场地址x-1433.0)>0) 
 战场.战歌峡谷() 
 endif 
  
 //阿拉希盆地战场 (LM) 
 if((战场地址x-1310.0)<1&&(战场地址x-1310.0)>0) 
 战场.阿拉希盆地() 
 endif 
  
 //阿拉希盆地战场 (BL) 
 if((战场地址x-681.0)<1&&(战场地址x-681.0)>0) 
 战场.阿拉希盆地() 
 endif 
  
 //奥特兰克山谷战场(LM) 
 if((战场地址x-(-492.0))>0&&(战场地址x-(-492.0))<1) 
 战场.奥特兰克山谷() 
 endif 
  
 //奥特兰克山谷战场(BL) 
 if((战场地址x-(-611.0))>0&&(战场地址x-(-611.0))<1) 
 战场.奥特兰克山谷BL() 
 endif 
  
 //风暴之眼战场(LM) 
 if((战场地址y-2523.0)>0&&(战场地址y-2523.0)<1) 
 战场.风暴之眼() 
 endif 
  
 //风暴之眼战场(BL) 
 if((战场地址y-1807.0)>0&&(战场地址y-1807.0)<1) 
 战场.风暴之眼() 
 endif 
  
 //远古海滩战场 
 //if(战场地址==) 
 //战场.远古海滩() 
 //endif 
  
 //征服之岛战场(LM) 
 if((战场地址x-(-837.0))>0&&(战场地址x-(-837.0))<1) 
 战场.征服之岛() 
 endif 
  
 //征服之岛战场(BL) 
 if((战场地址x-(-763.0))>0&&(战场地址x-(-763.0))<1) 
 战场.征服之岛() 
 endif 
  
 while(true) 
 //判断角色是否死亡 
 战场.释放复活() 
 //先向前跑W5秒 
 窗口.提交按下(wowWinID,87) 
 辅助.等待(300) 
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
 辅助.等待(200) 
 窗口.提交弹起(wowWinID,87) 
 //攻击 
 窗口.提交按键(wowWinID,9) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,49) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,50) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,51) 
  
 //判断角色是否死亡 
 战场.释放复活() 
 //先右前跑2秒 
 辅助.等待(200) 
 窗口.提交按下(wowWinID,69) 
 辅助.等待(1000) 
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
 辅助.等待(500) 
 窗口.提交弹起(wowWinID,69) 
 //攻击 
 窗口.提交按键(wowWinID,9) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,49) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,50) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,51) 
  
 //判断角色是否死亡 
 战场.释放复活() 
  
 窗口.提交按下(wowWinID,87) 
 辅助.等待(2000) 
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
 辅助.等待(500) 
 窗口.提交弹起(wowWinID,87) 
 //攻击 
 窗口.提交按键(wowWinID,9) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,49) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,50) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,51) 
 //判断角色是否死亡 
 战场.释放复活() 
 //先左前跑2秒 
 辅助.等待(200) 
 窗口.提交按下(wowWinID,81) 
 辅助.等待(1000) 
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
 辅助.等待(500) 
 窗口.提交弹起(wowWinID,81) 
 //攻击 
 窗口.提交按键(wowWinID,9) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,49) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,50) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,51) 
 //判断角色是否死亡 
 战场.释放复活() 
  
 窗口.提交按下(wowWinID,87) 
 辅助.等待(600) 
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
 辅助.等待(500) 
 窗口.提交弹起(wowWinID,87) 
 //攻击 
 窗口.提交按键(wowWinID,9) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,49) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,50) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,51) 
  
 //判断角色是否死亡 
 战场.释放复活() 
  
 //后退走 
 窗口.提交按下(wowWinID,83) 
 辅助.等待(2000) 
 窗口.提交按下(wowWinID,32) 
 辅助.等待(100) 
 窗口.提交弹起(wowWinID,32) 
 辅助.等待(1000) 
 窗口.提交弹起(wowWinID,83) 
 //攻击 
 窗口.提交按键(wowWinID,9) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,49) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,50) 
 辅助.等待(1000) 
 窗口.提交按键(wowWinID,51) 
  
 //判断角色是否死亡 
 战场.释放复活() 
  
 ///点击退出战场 
 鼠标.移动(540,540) 
 辅助.等待(200) 
 鼠标.移动(540,540) 
 鼠标.左键单击(1) 
 辅助.等待(200) 
 鼠标.左键单击(1) 
 辅助.等待(7000) 
  
 double 临时坐标 
 临时坐标=进程.读float(wowProID,#D38B10) 
 if(临时坐标>(当前坐标-100.0)&&临时坐标<(当前坐标+100.0)) 
 //辅助.打印("开始退出战场") 
 break 
 endif 
 endwhile 
 return true 
 endfunction 
  
 function bool 选择战场(string 战场) 
  
 窗口.最大化(wowWinID) 
 辅助.等待(1000) 
 窗口.置顶(wowWinID) 
 辅助.等待(1000) 
  
 int 战场次数 
 战场次数=0 
  
 while(true) 
 当前坐标=进程.读float(wowProID,#D38B10) 
  
 double 临时坐标 
 临时坐标=进程.读float(wowProID,#D38B10) 
  
 if(当前坐标==临时坐标) 
 战场.进入战场(战场) 
 战场.战场搞起() 
 endif 
 endwhile 
  
 return true 
 endfunction 
  
  
 功能 整型 开始_点击() 
 //定义main函数,main函数为整个程序的入口函数,函数返回为int类型 
 wowProID=进程.获取进程句柄("魔兽世界") 
 wowWinID=窗口.找到窗口("魔兽世界") 
  
  
 string 战场类型 
 string 战场序号 
 string 字符串 
 string 战场选择 
 string nn 
 int 类型 
 int 类型1 
 类型=1 
 类型1=1 
 int 序号 
 int 序号长度 
 int 字符比较 
 int 寻找地址 
 int i 
 int n 
 n=1 
 i=1 
 字符比较=1 
 战场选择="" 
 血量地址=0 
 string 输入 
  
 角色血量=编辑框.获得文本("编辑框0") 
 if(字符串.长度(角色血量)==0) 
 辅助.消息框("请输入角色当前血量值!") 
 return 0 
 endif 
  
 输入="你当前游戏角色满血的时候的血量是:" 
 输入=字符串.连接(输入,角色血量) 
 //辅助.打印(输入) 
  
 //判断是否已经选择战场类型 
 if(!单选框.获得状态("单选框0")) 
 if(!单选框.获得状态("单选框1")) 
 辅助.消息框("请选择挂战场的类型!") 
 return 0 
 endif 
 endif 
  
 if(单选框.获得状态("单选框0")) 
  
 标签.设置文本("标签3","程序初始化中,请稍等半分钟左右...") 
 血量地址=战场.得到地址(角色血量) 
  
 if(血量地址==0||血量地址==1) 
 辅助.消息框("血量地址查找失败!请重新登录游戏!!") 
 标签.设置文本("标签3","程序初始化失败!") 
 endif 
 标签.设置文本("标签3","程序初始化完成!") 
  
 战场.选择战场("1") 
 endif 
  
 if(单选框.获得状态("单选框1")) 
  
 string 战歌峡谷 
 string 阿拉希盆地 
 string 奥特兰克山谷 
 string 风暴之眼 
 string 远古海滩 
 string 征服之岛 
  
 战歌峡谷="" 
 阿拉希盆地="" 
 奥特兰克山谷="" 
 风暴之眼="" 
 远古海滩="" 
 征服之岛="" 
 //判断是否已经选择战场 
  
 if(!复选框.获得状态("复选框0")) 
 if(!复选框.获得状态("复选框1")) 
 if(!复选框.获得状态("复选框2")) 
 if(!复选框.获得状态("复选框3")) 
 if(!复选框.获得状态("复选框4")) 
 if(!复选框.获得状态("复选框5")) 
 辅助.消息框("请选择要排的战场!") 
 return 0 
 endif 
 endif 
 endif 
 endif 
 endif 
 endif 
  
 if(复选框.获得状态("复选框0")) 
 战歌峡谷="2" 
 endif 
  
 if(复选框.获得状态("复选框1")) 
 阿拉希盆地="3" 
 endif 
  
 if(复选框.获得状态("复选框2")) 
 奥特兰克山谷="4" 
 endif 
 if(复选框.获得状态("复选框3")) 
 风暴之眼="5" 
 endif 
  
 if(复选框.获得状态("复选框4")) 
 远古海滩="6" 
 endif 
  
 if(复选框.获得状态("复选框5")) 
 征服之岛="7" 
 endif 
  
 战场序号=字符串.格式化("%s%s%s%s%s%s",战歌峡谷,阿拉希盆地,奥特兰克山谷,风暴之眼,远古海滩,征服之岛) 
  
 //辅助.打印("程序初始化中,请稍等...") 
 标签.设置文本("标签3","程序初始化中,请稍等半分钟左右...") 
 血量地址=战场.得到地址(角色血量) 
  
 if(血量地址==0||血量地址==1) 
 辅助.消息框("血量地址查找失败!请重新登录游戏!!") 
 标签.设置文本("标签3","程序初始化失败!") 
 endif 
 标签.设置文本("标签3","程序初始化完成!") 
 战场.选择战场(战场序号) 
  
 endif 
  
 return 0 
 //函数返回语句 
 endfunction 
 //main函数结束语句 
  
  
 功能 逻辑型 退出_点击() 
 //这里添加你要执行的代码 
 辅助.退出() 
  
 返回 真 
 功能结束 
  
  
 空间结束 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 |