脚本主线是脚本的核心代码,里面包括对大漠对象的创建,对游戏应用窗口的绑定,同时启动主副线程。
511遇见易语言多线程大漠多线程
大漠多线程模板脚本主线程源码
.版本 2
.支持库 EThread
.子程序 脚本主线程, , , 游戏的动作逻辑都在这里
.参数 序号, 整数型
.局部变量 dm, dmsoft
.局部变量 dm_ret, 整数型
.局部变量 死循环, 逻辑型
.局部变量 任务完成, 文本型
' 要把大漠插件接口初始化为MAT线程模型
CoInitializeEx (0, 0)
线程信息 [序号].线程状态 = #线程状态_正在运行
多线程_异步通知UI (#通知类型_更新, 序号)
' 创建对象
线程信息 [序号].dm.创建 ()
dm = 线程信息 [序号].dm
.如果真 (dm.Ver () = “”)
日志输出 (“大漠对象创建失败”)
多线程_异步通知UI (#通知类型_停止, 序号)
返回 ()
.如果真结束
' 开启全局字库
' dm.EnableShareDict ()
' 设置全局路径
dm.SetPath (“c:\test”)
' 开始绑定游戏窗口,根据自己的游戏换绑定方式
dm_ret = dm.BindWindowEx (线程信息 [序号].窗口句柄, “normal”, “normal”, “dx”, “dx.public.anti.api|dx.public.disable.window.show”, 0)
.如果真 (dm_ret ≠ 1)
日志输出 (“主:绑定失败,错误码:” + 到文本 (dm.GetLastError ()))
' 通知主线程进行结束操作(释放资源)
多线程_异步通知UI (#通知类型_停止, 序号)
返回 ()
.如果真结束
' 禁止窗口输入
dm.LockInput (4)
' 下面开始创建副线程
' 先跟新一下线程信息
线程信息 [序号 + MaxHwnd].线程状态 = #线程状态_正在启动
' 创建副线程
.如果真 (启动线程 (&脚本副线程, 序号 + MaxHwnd, 线程信息 [序号 + MaxHwnd].线程句柄) = 假)
' 必须先解绑
dm.UnBindWindow ()
日志输出 (“副线程创建失败!”)
多线程_异步通知UI (#通知类型_停止, 序号)
返回 ()
.如果真结束
' 开始游戏环节动作
死循环 = 真
.判断循环首 (死循环)
设置任务状态 (序号, “开始工作”)
做任务 (序号)
' 跑路(序号)
' 打怪(序号)
设置任务状态 (序号, 任务完成)
' 脚本延时 (序号,1000 )
.判断循环尾 ()