1. 用户定义变量 LTop=300,100 鼠标活动范围:左上角坐标
  2. 用户定义变量 RBot=600,400 鼠标活动范围:右下角坐标
  3. 用户定义变量 Center=300,200 方形渐开搜怪起点
  4. 用户定义变量 L=20 2个搜怪点之间的距离
  5. 用户定义变量 M=1 从第几圈开始搜索
  6. //变量定义
  7. Dim s,v,i,n,x,y,a1,b1,a2,b2,c1,c2,x0,y0,k1,k2
  8. //在鼠标左上角活动范围变量“LTop”内查找逗号,用于区分左上角的X、Y坐标
  9. s=InStr(LTop,",")
  10. //Mid(参数1,参数2,参数3):从字符串中返回指定数目的字符
  11. //参数1(字符串表达式,从中返回字符)
  12. //参数2(参数1中被提取的字符部分的开始位置)
  13. //参数3(要返回的字符数,若省略将返回字符串中从参数2 到字符串结束的所有字符)
  14. //“Mid(LTop,1,s-1)”从字符串“LTop”中的第1个字符开始取s-1个字符
  15. //int(Mid(LTop,1,s-1)):将取到的字符转换成整数
  16. //取鼠标活动范围左上角横坐标赋值到变量a1
  17. a1=int(Mid(LTop,1,s-1))
  18. //取鼠标活动范围左上角纵坐标赋值到变量b1
  19. b1=int(Mid(LTop,s+1))
  20. s=InStr(RBot,",")
  21. //取鼠标活动范围右下角横坐标赋值到变量a2
  22. a2=int(Mid(RBot,1,s-1))
  23. //取鼠标活动范围右下角纵坐标赋值到变量b2
  24. b2=int(Mid(RBot,s+1))
  25. s=InStr(Center,",")
  26. //取起点坐标赋值到x0,y0
  27. x0=int(Mid(Center,1,s-1))
  28. y0=int(Mid(Center,s+1))
  29. //比较x0到a1和x0到a2的长度,取最长的距离来限制方形渐开的范围,保证渐开线能全部覆盖鼠标活动范围
  30. 如果表达式 (x0-a1>=a2-x0) 为真,则
  31.     n=a1
  32. 否则
  33.     //将x0到a2的距离转换到左边,方便下面的While x>=n的循环判断
  34.     n=x0-(a2-x0)
  35. 条件结束
  36. 标记 开始搜怪
  37. //将点距赋值到v
  38. v=L
  39. //将渐开起点圈数赋值到i
  40. i=M
  41. //将渐开起点坐标赋值到x,y
  42. x=x0:y=y0-v
  43. 鼠标移到 x , y
  44. //回到起点
  45. 如果表达式 (x>=n) 为真,则循环执行
  46.     k1=0:k2=v
  47.     循环 2 遍
  48.         循环 i 遍
  49.             x=x+k1:y=y+k2
  50.             //只有(x,y)点在鼠标活动范围内才移动鼠标和执行鼠标变化判断
  51.             如果表达式 (x>=a1 and x<=a2 and y>=b1 and y<=b2) 为真,则
  52.                 //计算出x,y
  53.                 鼠标移到 x , y
  54.                 延时10毫秒
  55.                 调用外部VBScript子程序 c=GetCursorShape(0)
  56.                 //移动到x,y延时10毫秒后再次取x,y点的鼠标并赋值到c
  57.                 延时10毫秒
  58.                 如果表达式 (c=202004408) 为真,则
  59.                     //这里202004408为打怪时鼠标特征码,实用时要改。
  60.                     左键单击
  61.                     //左键攻击
  62.                     //边打边吃药循环
  63.                     //以后加入计时功能,设定攻击最大时间,超时回原点,避免被卡住
  64.                     循环 3 遍
  65.                         调用子程序 判断吃药
  66.                         延时2000毫秒
  67.                     循环结束
  68.                     延时1000毫秒
  69.                     / /延迟7秒打怪,这里要具体测试一下打怪的时间,确保将怪打死,避免写判断怪是否死亡的程序了
  70.                 否则如果(c=20224499)为真,则
  71.                     //20224499为拣东西时的鼠标特征码
  72.                     调用子程序 拣东西
  73.                     //打完怪后再重新开始搜索
  74.                     跳转到标记 开始搜怪
  75.                 条件结束
  76.                 延时1毫秒
  77.             条件结束
  78.         循环结束
  79.         k1=v:k2=0
  80.     循环结束
  81.     i=i+1:v=v*(-1)
  82. 循环结束
  83. 延时200毫秒
  84. //搜索完鼠标活动范围后重新开始搜索
  85. 跳转到标记 开始搜怪
  86. 子程序 判断吃药
  87.     调用外部VBScript子程序 c=GetCursorShape(0)
  88.     调用外部VBScript子程序 c=GetCursorShape(0)
  89.     n=d/dd
  90.     //读取内存中最大血量和动态血量,求比值n。这里的内存地址需要用ce查找,剑侠1设定的很简单,查3次血量变化就找出来了
  91.     如果表达式 (n<=0.6 and n>0.3) 为真,则
  92.         按键<1>
  93.         //按1补血
  94.     否则如果(n<=0.2)为真,则
  95.         按键<3>
  96.         //没有药了或遭到pk,按3回城
  97.         调用子程序 买药
  98.         调用子程序 返回
  99.     条件结束
  100. 子程序结束,回到调用处