- 积分
- 11
- 阅读权限
- 10
- 鲜花
- 0
- 猫粮
- 19
- 在线时间
- 7 小时
- 精华
- 0
- 注册时间
- 2021-2-16
- 性别
- 保密
- 最后登录
- 2021-3-29
学前班
- 鲜花
- 0
- 猫粮
- 19
|
楼主 |
发表于 2021-2-27 21:22:19
|
显示全部楼层
本帖最后由 caitou282 于 2021-2-27 21:32 编辑
答题是游戏里不定时间跳出来的答题验证,不答题会掉线,重连还是要验证,不停打怪操作会影响答题结果,停止的话,副本做了一半,又得从第一个副本开始。多线程的wait 等待,能实现暂停某一线程吗?
重新整理了下代码,新手刚开始学,只能用笨办法一步一步去做了,参数一用多了脑袋就混乱了,所以代码有点长,老大请指点一二,谢谢!
Thread.SetShareVar "答题流程",False
Thread.SetShareVar "定时任务",False
Rem 开始
dim a,b,c
a = thread.start(首领循环)
b = thread.start(答题检测)
c = thread.start(时间检测)
Do
If Thread.GetShareVar("答题流程") = True Then
thread.Stop (a)
TracePrint "停止线程1"
thread.Stop (b)
TracePrint "停止线程2"
thread.Stop (c)
TracePrint "停止线程3"
答题流程
Thread.SetShareVar "答题流程", False
Exit Do
End If
If Thread.GetShareVar("定时任务") = True Then
thread.Stop (a)
TracePrint "停止线程1"
thread.Stop (b)
TracePrint "停止线程2"
thread.Stop (c)
TracePrint "停止线程3"
定时任务
Thread.SetShareVar "定时任务",False
Exit Do
End If
Loop
Goto 开始
Function 时间检测
Do
Dim 当前时间Dim 定时一 = "12:00"
Dim 定时二 = "12:10"
Dim 定时三 = "19:30"
Dim 定时四 = "19:40"
Dim 定时五 = "17:00"
Dim 定时六 = "17:40"
当前时间 = DateTime.Format ("%w:%H:%M")
TracePrint 当前时间
If DateTime.Format("%H:%M") > 定时一 and DateTime.Format("%H:%M") <定时二 Then
Thread.SetShareVar "定时任务",True
Exit Do
ElseIf DateTime.Format("%H:%M") >= 定时三 and DateTime.Format("%H:%M") < 定时四 Then
Thread.SetShareVar "定时任务",True
Exit Do
ElseIf DateTime.Format("%H:%M") >= 定时五and DateTime.Format("%H:%M") < 定时六 Then
Thread.SetShareVar "定时任务",True
Exit Do
End If
Delay 2000
Loop
End Function
Function 定时任务
Dim 定时一 = "12:00"
Dim 定时二 = "12:10"
Dim 定时三 = "19:30"
Dim 定时四 = "19:40"
Dim 定时五 = "17:00"
Dim 定时六 = "17:40"
If DateTime.Format("%H:%M") > 定时一 and DateTime.Format("%H:%M") <定时二 Then
任务1
ElseIf DateTime.Format("%H:%M") >= 定时三 and DateTime.Format("%H:%M") < 定时四 Then
任务2
ElseIf DateTime.Format("%H:%M") >= 定时五and DateTime.Format("%H:%M") < 定时六 Then
任务3
End Function
Function 首领循环
Do
TracePrint "打怪1"
Delay 800
TracePrint "打怪2"
Delay 800
TracePrint "打怪3"
Delay 800
TracePrint "打怪3"
Delay 800
TracePrint "打怪5"
Delay 800
TracePrint "打怪6"
Delay 800
TracePrint "打怪7"
Delay 800
TracePrint "打怪8"
Delay 800
TracePrint "打怪9"
Delay 800
TracePrint "打怪10"
Delay 800
TracePrint "打怪11"
Delay 800
TracePrint "打怪12"
Delay 800
Next
Loop
End Function
Function 答题检测
Do
Dim datiX,datiY
FindMultiColor 551,596, 574,679,"04C628","-7|3|04BF28,-4|15|05A626,-3|21|01E928,-7|25|03C227,-1|33|03D929,-1|44|02DC28,-5|49|02E228,-5|62|03D428,0|75|05B527",0,0.9,datiX,datiY
If datiX > -1 Then
Thread.SetShareVar "答题流程",True
TracePrint "开始答题"
Delay 1000
Exit Do
Else
TracePrint "检测答题"
Delay 100
TracePrint "检测答题"
Delay 100
TracePrint "检测答题"
Delay 1000
TracePrint "检测答题"
Delay 1000
TracePrint "检测答题"
Delay 1000
TracePrint "检测答题"
Delay 1000
TracePrint "检测答题"
Delay 1000
End If
Loop
End Function
Function 答题流程
TracePrint "正在答题1"
Delay 800
TracePrint "正在答题12"
Delay 800
TracePrint "正在答题13"
Delay 800
TracePrint "正在答题14"
Delay 800
TracePrint "正在答题15"
Delay 800
TracePrint "正在答题16"
Delay 800
TracePrint "正在答题17"
Delay 800
TracePrint "答题完毕"
Delay 800
End Function
|
|