马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 linyoude 于 2022-7-15 12:09 编辑
给大家分享多线程的使用技巧,解决在写辅助时遇到游戏突然 弹窗 验证 bug 站街 卡点 等各种问题 如果对你有帮助 请一键三连 后期分享更多干货.
紫猫学院 258-动力编程
[按键精灵] 纯文本查看 复制代码
Dim 任务线程ID, 检测线程ID,i
任务线程ID = Thread.Start(任务线程)
Delay 2000
检测线程ID = Thread.Start(检测线程)
Thread.SetShareVar "检测开关", 0
Do
Delay 2000
TracePrint "我是主线程"
loop
Sub 任务线程()
//把 主线 副本 打怪 放到任务线程中
TracePrint "我是任务 线程 "
Do
打怪
Delay 1000
Loop
End Sub
Sub 检测线程()
//把 弹窗 验证 角色死亡 各种突发情况放到此地
Dim i=0
TracePrint "我是检测 线程 "
Do
TracePrint "模拟 i=5后,出现异常情况 当前i: ",i
i = i + 1
If i = 5 Then
角色死亡
End If
验证
Delay 1000
Loop
End Sub
'------------------任务线程 空间--------------------------//
Function 打怪()
Do
If 读取多线程数据("检测开关") = 1 Then
线程暂停 "检测开关"
End If
TracePrint "打怪中。。。 "
'写自己打怪代码
Delay 1000
Loop
End Function
'------------------任务线程 空间--------------------------//
'------------------检测线程 空间--------------------------//
Function 验证()
'加入自己代码
End Function
Function 角色死亡()
'找图,色 多点 判断角色是否死亡
TracePrint "检测 到角色死亡"
//暂停任务线程,把 检测开关 赋值为 1
Thread.SetShareVar "检测开关",1
'处理死回回城等操作...
死亡_复活
'恢复 检测开关为0,启动任务线程
Thread.SetShareVar "检测开关", 0
Delay 1000
End Function
Sub 死亡_复活()
Dim i = 0,ii
For ii = 0 To 6
Select Case i
Case 0
TracePrint "复活中."
Case 1
TracePrint "复活中.."
Case 2
TracePrint "复活中..."
End Select
i = i + 1 : Delay 1000
If i > 2 Then
i = 0
End If
Next
End Sub
'------------------检测线程 空间--------------------------//
'--------------------接代码------------------------//
Function 读取多线程数据(var)
Dim ret
ret = Thread.GetShareVar(var)
读取多线程数据 = ret
End Function
//这个接口专用来恢复任务线程
Sub 线程暂停(var)
Do
TracePrint "任务线程暂停中..."
If 读取多线程数据(var) = 0 Then
Exit Do
End If
Delay 1000
Loop
End Sub
|