//--------------------------------------------------
VBS Dim BB,Bang,Xm,Ym,Xin,Yin,Memx,Memy,N
VBS Dim ScreenX,ScreenY
VBS Dim XunGuai1,XunGuai2
VBS Dim JianWu1,JianWu2
VBSCall Call GetScreenResolution(ScreenX,ScreenY)
//声明变量
VBS Memx=&H00626F24
//游戏坐标内存地址中的横坐标
VBS Memy=&H00626F28
//游戏坐标内存地址中的纵坐标
VBS Xm=300
//用户输入需要挂机的横坐标
VBS Ym=306
//用户输入需要挂机的纵坐标
VBS N=30
//用户输入需要挂机的范围
//--------------------------------------------------
MessageBox "请把鼠标移到XP进度条,快XP那,然后按F5"
Rem 记录XP进度位置
VBS dim F5
VBS F5=""
VBS dim ys1,ys2,xpys
GetLastKey F5
If F5=116
VBSCall GetCursorPos(ys1,ys2)
Else
Goto 记录XP进度位置
EndIf
VBSCall xpys=GetPixelColor(ys1,ys2)
MessageBox "请把鼠标移到XP的图标,然后按F6"
Rem 记录XP图标位置
VBS dim F6
VBS F6=""
VBS dim XP1,XP2
GetLastKey F6
If F6=117
VBSCall GetCursorPos(XP1,XP2)
Else
Goto 记录XP图标位置
EndIf
//--------------------------------------------------
Rem 检测XP技能是否已满
IfColor ys1 ys2 xpys 1
MoveTo XP1 XP2
Delay 1000
LeftDown 1
LeftUp 1
Gosub 打怪
Gosub 范围内移动并打怪
Gosub 移动到挂机点
Goto 检测XP技能是否已满
Else
Gosub 辅助技能
Goto 检测XP技能是否已满
EndIf
//--------------------------------------------------
Sub 辅助技能
KeyPress 114 1
//辅助技能F3放引诱
Delay 10000
Return 辅助技能
//--------------------------------------------------
Sub 打怪
Rem XP攻击打怪
VBSCall FindColorEx(226,144,951,574,"0004B5",1,0.8,XunGuai1,XunGuai2)
If XunGuai1>=0 and XunGuai2>=0
MoveTo XunGuai1+5 XunGuai2+20
LeftClick 1
Delay 300
RightClick 1
Delay 300
Goto XP攻击打怪
EndIf
Return 打怪
//--------------------------------------------------
Sub 读取坐标内存地址
VBSCall ReadMemory( Memx,1,Xin)
//读取游戏坐标内存地址中的横坐标的值保存到Xin
VBSCall ReadMemory( Memy,1,Yin)
//读取游戏坐标内存地址中的纵坐标的值保存到Yin
Return 读取坐标内存地址
//--------------------------------------------------
Sub 范围内移动并打怪
//........................
VBS Xm1=Xm:Ym1=Ym
//把初始直赋给Xm1和Ym1
VBS Ym=Ym-N
Gosub 边跑边打
VBS Xm=Xm1:Ym=Ym1
//........................
VBS Xm=Xm+N
Gosub 边跑边打
VBS Xm=Xm1:Ym=Ym1
//........................
VBS Ym=Ym+N
Gosub 边跑边打
VBS Xm=Xm1:Ym=Ym1
//........................
VBS Xm=Xm-N
Gosub 边跑边打
VBS Xm=Xm1:Ym=Ym1
//........................
VBS Ym=Ym-N
Gosub 边跑边打
VBS Xm=Xm1:Ym=Ym1
//........................
VBS Ym=Ym+N
Gosub 边跑边打
VBS Xm=Xm1:Ym=Ym1
//恢复Xm和Ym的初始直
//........................
Return 范围内移动并打怪
//--------------------------------------------------
Sub 移动到挂机点
Rem 开始移动
Gosub 读取坐标内存地址
VBS BB=((Xm-Xin)^2+(Ym-Yin)^2)^0.5
///用勾股定理计算和目标位置有多远,BB为和目标位置的直线差.
If BB>6
///如果和目标位置差距是大于6
VBS Bang=250/BB
///把你的鼠标移动范围限制在半径250的圆以内
/////这里这步很重要,不然你点到的始终是屏幕的最边缘.
VBS XX=(Xm-Xin)*Bang:YY=(Ym-Yin)*Bang
/////利用相似三角形算出鼠标点击的位置
MoveTo ScreenX/2+XX ScreenY/2+YY
LeftClick 1
Delay 700
Goto 开始移动
EndIf
If BB>1 and BB<=6
///距离在直线地图位置距离6以内,表示和你的目标在屏幕能看到了.
MoveTo ScreenX/2+(Xm-Xin)*30 ScreenY/2+(Ym-Yin)*30
////直接准确的移到目标上.
LeftClick 1
Delay 300
Goto 开始移动
EndIf
Return 移动到挂机点
//--------------------------------------------------
Sub 边跑边打
Rem 开始范围移动
Gosub 读取坐标内存地址
VBS BB=((Xm-Xin)^2+(Ym-Yin)^2)^0.5
///用勾股定理计算和目标位置有多远,BB为和目标位置的直线差.
If BB>6
///如果和目标位置差距是大于6
VBS Bang=200/BB
///把你的鼠标移动范围限制在半径200的圆以内
/////这里这步很重要,不然你点到的始终是屏幕的最边缘.
VBS XX=(Xm-Xin)*Bang:YY=(Ym-Yin)*Bang
/////利用相似三角形算出鼠标点击的位置
MoveTo ScreenX/2+XX ScreenY/2+YY
LeftClick 1
Delay 400
Gosub 打怪
Goto 开始范围移动
EndIf
Return 边跑边打
> >