重庆网站建设的培训机构,在珠海注册公司需要什么资料,宁波妇科中医哪个好,wordpress修改版本▒ 目录 ▒#x1f6eb; 导读需求开发环境1️⃣ 脚本窗口Lua ScriptLua EngineAuto assemble2️⃣ 全局变量3️⃣ 进程当前打开的进程ID系统的进程列表系统的顶部窗口列表4️⃣ 线程5️⃣ 输入设备6️⃣ 屏幕7️⃣ 剪贴板#x1f6ec; 文章小结#x1f4d6; 参考资料#x…
▒ 目录 ▒ 导读需求开发环境1️⃣ 脚本窗口Lua ScriptLua EngineAuto assemble2️⃣ 全局变量3️⃣ 进程当前打开的进程ID系统的进程列表系统的顶部窗口列表4️⃣ 线程5️⃣ 输入设备6️⃣ 屏幕7️⃣ 剪贴板 文章小结 参考资料导读
需求 CE作为游戏逆向中的头把交椅本身含有大量功能其中脚本就是其特色之一。 CE脚本基于lua所以一定要有lua相关基础相关知识参考lua官网文档https://www.lua.org/docs.html CE脚本在lua基础上添加了很多额外的东西用于制作辅助工具今天我们就是针对这些扩展进行介绍了解CE所提供的各种功能。 开发环境
版本号描述文章日期2023-03-操作系统Win11 - 21H2 - 22000.1335Cheat Engine7.4
1️⃣ 脚本窗口 CE提供了三种跟脚本有关的窗口默认打开的界面如下 其中Auto assemble是功能最全使用频率最高的窗口可以执行汇编。 Lua Script和Lua Engine功能相对简单就是执行lua而且区别不是特别大。 Lua Engine窗口目前小编只使用它做一些脚本的测试工作Lua Script窗口则基本是不使用。 Lua Script 从作弊引擎主窗体菜单Table中选择Show Cheat Table Lua Script菜单即可打开Lua Script窗口。 该窗口输入命令点击执行会打开Lua Engine窗口并将打印内存显示在Lua Engine窗口中。总觉得这个窗口很鸡肋执行print函数居然还得打开Lua Engine窗口。 Lua Engine Lua Engine和Auto assemble窗口都需要通过Memory Viewer窗口菜单打开。 而打开Memory Viewer窗口需要点击主窗口的Memory View按钮如下图所示 在Memory Viewer窗口中通过Tools菜单选择不同的按钮打开Lua Engine和Auto assemble窗口。 在Lua Engine窗口中我们编写脚本点击Execute即可在Output栏目中看到执行的结果。 本节内容主要就是通过该窗口进行讲解的。 Auto assemble Auto assemble窗口的打开方式跟Lua Engine一样打开后在窗口中需要先添加代码{$lua}表示之后的代码为lua代码然后再输入lua脚本执行后会弹出确认框print语句的内容会输出到Lua Engine窗口。 PS Auto assemble功能十分复杂会在以后讲解。 2️⃣ 全局变量 CE的Lua提供了4个全局变量我们直接打印查看其内容。 代码及含义如下 -- 包含当前打开的进程的主模块名称如果没有打开进程返回的是空字符串
print(process)
-- 包含启动作弊引擎的训练师路径仅在作为训练器启动时设置
print(TrainerOrigin)
-- 主作弊引擎 gui跟函数getMainForm()的结果一样的
print(MainForm)
-- 主作弊引擎 gui 的地址列表
print(AddressList)3️⃣ 进程 当前打开的进程ID 当前打开的进程ID、当前位于顶部的进程的进程 ID 系统的进程列表 返回包含窗口列表PID - 进程名的表 代码及含义如下 pTable getProcesslist()
-- print在这里无法直接打印出table对象所以通过string.format将其格式化为字符串。
print(string.format(pTable[idx] %s, pTable))for k, v in pairs(pTable) doprint(key: .. k)print(string.format(v %s, v))
end系统的顶部窗口列表 返回包含窗口列表PID - 窗口标题的表 代码及含义如下 pTable getWindowlist()
-- print在这里无法直接打印出table对象所以通过string.format将其格式化为字符串。
print(string.format(pTable[idx] %s, pTable))for k, v in pairs(pTable) doprint(key: .. k)print(string.format(v %s, v))
end4️⃣ 线程 CPU 的数目、当前打开的进程的线程列表、当前代码在主线程内运行 代码及含义如下 -- CPU 的数目
print(getCPUCount())-- 用当前打开的进程的线程列表填充列表对象
local l createStringlist()
getThreadlist(l)
for i 1, l.Count doprint(l[i - 1])break -- 打印一个就退出循环
end-- 如果当前代码在主线程内运行则返回 true
print(inMainThread() and true or false) --: Returns true if the current code is running inside the main thread (6.4)
5️⃣ 输入设备 当前是否按下指定的键、设置鼠标坐标、模拟鼠标左键按下松开 代码及含义如下 -- 如果当前按下指定的键则返回 true
print(isKeyPressed(VK_LWIN) and true or false)if true then-- 设置鼠标坐标setMousePos(340, 440)-- 模拟鼠标左键按下mouse_event(MOUSEEVENTF_LEFTDOWN)sleep(20)-- 模拟鼠标左键松开mouse_event(MOUSEEVENTF_LEFTUP)
endprint(getMousePos()) -- 返回鼠标的 X 和 Y 坐标6️⃣ 屏幕 屏幕长宽、坐标RGB颜色 代码及含义如下 print(getScreenHeight()) -- 主屏幕高
print(getScreenWidth()) -- 主屏幕宽
print(getWorkAreaHeight()) -- 主屏幕高去除任务栏
print(getWorkAreaWidth()) -- 主屏幕宽去除任务栏print(getScreenCanvas()) -- 可用于写入屏幕的 Canvas 对象
print(getPixel(10, 10)) -- 特定屏幕坐标处像素的 RGB 值
7️⃣ 剪贴板 将给定的文本写入剪贴板、从剪贴板读取文本 代码及含义如下 print(readFromClipboard() .. readFromClipboard())
writeToClipboard(khz... 2023-3-20)
print(readFromClipboard() .. readFromClipboard()) 文章小结 print在Lua Engine窗口中无法直接打印出table对象所以通过string.format将其格式化为字符串。print无法打印bool类型值可以通过and or形式的三位运算符进行显示。 除了上面的函数CE还提供了很多其他方法 内存类型转换汇编消息outputDebugString、showMessage快捷键shortCutToText、textToShortCut加速speedhack_setSpeed、speedhack_getSpeed 参考资料
CE官网教程 https://wiki.cheatengine.org/index.php?titleMain_PageCE官网教程-lua函数和类 https://wiki.cheatengine.org/index.php?titleLuaCE的LUA脚本基础教程 https://www.bilibili.com/video/BV1kK411d7to **ps**文章中内容仅用于技术交流请勿用于违规违法行为。