易语言大漠多线程模板脚本主线程

脚本主线是脚本的核心代码,里面包括对大漠对象的创建,对游戏应用窗口的绑定,同时启动主副线程。

 

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 )
 
.判断循环尾 ()

源码:易语言多线程大漠多线程-36大漠多线程模板-6脚本主线程

你可能感兴趣的:(易语言,大漠,多线程)