1.         如果 IsNumeric(zb11) = False 或者 IsNumeric(zb12) = False 则
  2.             弹出窗口 "未正确识别坐标,请检查游戏显示设置是否32色,然后重新开始本程序"
  3.             脚本停止运行
  4.         否则
  5.             令 nfzb1 = right("0" & zb11,3)
  6.             令 nfzb2 = right("0" & zb12,3)
  7.             令 nFzb = nfzb1 & nfzb2
  8.         条件结束
  9.     否则
  10.         弹出窗口 "未正确识别坐标,请检查游戏显示设置是否32色,然后重新开始本程序"
  11.         脚本停止运行
  12.     条件结束
  13. 子程序结束
  14. 子程序 点选游戏窗口
  15.     令 ScreenW = Sys.GetScRX()
  16.     令 ScreenH = Sys.GetScRY()
  17.     调用 Msg.ShowScrTXT(5,5,1024,25,"自动开始选择游戏窗口","000000")
  18.     令 Hwnd = Window.Foreground()
  19.     令 sText = Window.GetText(Hwnd)
  20.     如果 InStr(sText,"天龙八部OL") > 0 则
  21.     否则
  22.         注释:call 自选天龙窗口
  23.     条件结束
  24. 子程序结束
  25. 子程序 自选天龙窗口
  26.     令 dm_ret = dm.FindPicEx(0,ScreenH - 200,ScreenW,ScreenH,"D:\Program Files\JY\yrbk\PIC\天龙任务栏.bmp","020202",0.9,0)
  27.     如果 len(dm_ret) > 0 则
  28.         令 sst = split(dm_ret,"|")
  29.     否则
  30.         脚本停止运行
  31.     条件结束
  32.     令 sss = split(sst(0),",")
  33.     dm.MoveTo(int(sss(1)) + 30,int(sss(2)) + 10)
  34.     延时 300 毫秒
  35.     (鼠标)左键单击, 1次
  36.     延时 1000 毫秒
  37. 子程序结束
  38. 子程序 显示窗口信息
  39.     调用 Msg.ShowScrTXT(xl + 5,yl + 5,1024,yl + 25,"角色等级:" & rwdj & ".坐标:" & nFzb & ".打怪开始……","000000")
  40.     延时 1000 毫秒
  41.     调用 Msg.HideScrTXT()
  42. 子程序结束
  43. 子程序 检测坐标
  44.     令 XY = Color.FindShape(xl,yl,xr,yr,"1|0|1,2|0|1,0|1|0,1|1|0,2|1|0,47|1|0,48|1|0,49|1|1,50|1|1,51|1|0,52|1|0,53|1|0,54|1|0,55|1|0,56|1|0,57|1|0,0|2|0,1|2|0,2|2|0,47|2|0,48|2|0,49|2|0,50|2|1,51|2|1,52|2|0,53|2|0,54|2|0,55|2|0,56|2|0,57|2|0,0|3|1,1|3|1,2|3|1,47|3|1,48|3|1,49|3|0,50|3|0,51|3|1,52|3|1,53|3|0,54|3|0,55|3|0,56|3|0,57|3|0,47|4|0,48|4|0,49|4|0,50|4|0,51|4|0,52|4|0,53|4|0,54|4|0,55|4|0,56|4|0,57|4|0",1)
  45.     令 ZB = InStr(XY,"|")
  46.     令 aX = Clng(Left(XY,ZB - 1))
  47.     令 aY = Clng(Right(XY,Len(XY) - ZB))
  48.     如果 aX > 0 并且 aY > 0 则
  49.         令 zb11 = dm.Ocr(ax - 5,ay + 1,ax + 22,ay + 18,"fdff73-000000",1.0)
  50.         令 zb12 = dm.Ocr(ax + 22,ay + 1,ax + 48,ay + 18,"fdff73-000000",1.0)
  51.         令 sbzb1 = Replace(zb11," ","")
  52.         令 sbzb2 = Replace(zb12," ","")
  53.         如果 IsNumeric(sbzb1) = False 或者 IsNumeric(sbzb2) = False 或者 sbzb1 = "" 或者 sbzb2 = "" 则
  54.             令 jczb = nfzb
  55.         否则
  56.             如果 sbzb1 <= 99 则
  57.                 令 sbzb1 = "0" & sbzb1
  58.             条件结束
  59.             如果 zb12 <= 99 则
  60.                 令 sbzb2 = "0" & sbzb2
  61.             条件结束
  62.             令 jczb = sbzb1 & sbzb2
  63.         条件结束
  64.     条件结束
  65. 子程序结束
  66. 子程序 检测范围
  67.     如果 TFdidian = 1 则
  68.         调用 检测坐标
  69.         如果 CInt(abs(nfzb1 - sbzb1)) < CInt(left(FWdidian,1)) 并且 CInt(abs(nfzb2 - sbzb2)) < CInt(right(FWdidian,1)) 则
  70.         否则
  71.             调用 Window.Active(Hwnd)
  72.             调用 寻路
  73.             延时 200 毫秒
  74.             令 yddzb = Nfzb
  75.             调用 移动到
  76.         条件结束
  77.     条件结束
  78. 子程序结束
  79. 子程序 寻路
  80.     令 ksdjt = now
  81.     令 djflag = 0
  82.     标记 重新寻路(子程序 寻路)
  83.     令 dm_ret = dm.FindStr(XR - 350,YL,XR,YR,"坐标","fff263-000000",1.0,X,Y)
  84.     如果 x > 0 并且 y > 0 则
  85.     否则
  86.         (键盘)按 "Tab" 键, 1次
  87.         延时 50 毫秒
  88.         令 djt = now
  89.         令 djflag = 1
  90.     条件结束
  91.     循环当 djflag = 1 并且 datediff("s",djt,now) < 4 并且 datediff("s",ksdjt,now) < 10 时
  92.         令 dm_ret = dm.FindStr(XR - 350,YL,XR,YR,"坐标","fff263-000000",1.0,X,Y)
  93.         如果 x > 0 并且 y > 0 则
  94.             令 djflag = 2
  95.         条件结束
  96.     循环结束
  97.     循环当 djflag = 1 并且 datediff("s",djt,now) >= 4 并且 datediff("s",ksdjt,now) < 10 时
  98.         令 dm_ret = dm.FindStr(XR - 350,YL,XR,YR,"坐标","fff263-000000",1.0,X,Y)
  99.         如果 x > 0 并且 y > 0 则
  100.             令 djflag = 2