EndIf Return //当角色处在地图边界时,修正其位置。 Sub ComeBack VBSCall FindCenterColor(670,20,798,149,"00FF00",x,y) If x>0 and y>0 VBS nx=Abs(x-PosA(0)) VBS ny=Abs(y-PosA(1)) If nx>2 or ny>2 x=x-PosA(0) y=y-PosA(1) If x<0 mx=100 Else mx=-100 EndIf T=-1 my=mx*y/x*T If my>120 my=90 ElseIf my<-100 my=-90 EndIf xb=mx+PosB(0) yb=my+PosB(1) MoveTo xb yb Delay 400 LeftClick 1 Delay 400 EndIf EndIf Return //扫描坐标文字 Sub Scan VBS Dim ScanH(8) VBS Dim Num(5,8) VBS Num(0,0)=1:Num(0,1)=0:Num(0,2)=0:Num(0,3)=0:Num(0,4)=0:Num(0,5)=0:Num(0,6)=0:Num(0,7)=1 VBS Num(1,0)=1:Num(1,1)=1:Num(1,2)=1:Num(1,3)=1:Num(1,4)=1:Num(1,5)=1:Num(1,6)=1:Num(1,7)=1 VBS Num(2,0)=0:Num(2,1)=1:Num(2,2)=0:Num(2,3)=0:Num(2,4)=0:Num(2,5)=1:Num(2,6)=0:Num(2,7)=0 VBS Num(3,0)=1:Num(3,1)=0:Num(3,2)=0:Num(3,3)=1:Num(3,4)=1:Num(3,5)=1:Num(3,6)=1:Num(3,7)=1 VBS Num(4,0)=0:Num(4,0)=0:Num(4,2)=0:Num(4,3)=0:Num(4,4)=0:Num(4,5)=0:Num(4,6)=0:Num(4,7)=0 VBS Dim ScanL(4) VBS Dim NumL(4,5) VBS NumL(0,0)=0:NumL(0,1)=0:NumL(0,2)=0:NumL(0,3)=1:NumL(0,4)=0 VBS NumL(1,0)=1:NumL(1,1)=0:NumL(1,2)=0:NumL(1,3)=0:NumL(1,4)=1 VBS NumL(2,0)=0:NumL(2,1)=1:NumL(2,2)=1:NumL(2,3)=1:NumL(2,4)=0 VBS NumL(3,0)=0:NumL(3,1)=0:NumL(3,2)=1:NumL(3,3)=1:NumL(3,4)=0 //取值 my=0 While my<8 VBSCall rel=GetPixelColor(x,6+my) If rel="080C08" ScanH(my)=0 ElseIf rel="94FFFF" ScanH(my)=1 Else VBSCall MessageBox("出错:纵向扫描取值非预期rel="+rel) EndIf my=my+1 EndWhile //判断 N=0 While N<5 i=0 While i<8 If ScanH(i)<>Num(N,i) //一有不对马上跳出 i=100 Else //全中 If i=7 TheNum=N N=100 EndIf EndIf i=i+1 EndWhile N=N+1 EndWhile //筛选 If N=101 If TheNum=4 or TheNum=0 Number=0 ElseIf TheNum=1 Number=1 ElseIf TheNum=2 Number=4 ElseIf TheNum=3 Number=7 EndIf Else //尚未能确认 //再进行横向扫描 //取值 mx=0 While mx<5 VBSCall rel=GetPixelColor(x-2+mx,9) If rel="080C08" ScanL(mx)=0 ElseIf rel="94FFFF"