首页>JSP源码>其他类别

Garrysmod Lua Dumper & Runner,用 Rust 编写。

特征

?用法

?菜单插件

Autorun 也可以用作菜单插件/需要从 lua 自动从菜单状态。

  1. 将 dll gmsv_autorun_win<arch>.dll文件放入garrysmod/lua/bin文件夹中。
  2. garrysmod/lua/menu/menu.lua底部添加require("autorun")
    现在,当 garrysmod 在菜单中加载时,它将自动运行。

?注射

使用它的传统(但更不方便)方法是注入它。

  1. 获取一个注入器(确保它能够根据您的用途注入 32/64 位代码)。
  2. 当您在菜单中时,将 dll 注入 gmod

脚本钩子

Autorun 具有 scripthook 功能,这意味着我们将在执行任何其他 garrysmod 脚本之前运行您的脚本,以验证您是否希望通过运行您自己的钩子脚本来运行代码。 *它在与_G不同的环境中运行,因此要修改全局变量,请执行_G.foo = bar

另请注意,如果您在autorun.lua中运行,像http.Fetchfile.Write这样的函数将不存在。
使用它们的 C 对应项( HTTPfile.Open

请参阅此处使用 scripthook 的示例项目。

?文件结构

C:Users < User > autorun
├── autorun . lua # Runs *once* before autorun
├── hook . lua # Runs for every script
├── lua_dumps # Each server gets a folder with their IP as the name.
│   ├──  192.168.1 . 55_27015
│   └── X . Y . Z . W_PORT 
├── logs # Logs are saved here
│   └── YYYY - MM - DD . log
├── bin # Store binary modules to be used with Autorun.requirebin
│   └── gmcl_vistrace_win64 . dll
├── plugins # Folder for Autorun plugins, same behavior as above autorun and hook.lua, but meant for plugin developers.
│   └── Safety
│       ├── src
|       |   ├── autorun . lua
|       |   └── hook . lua
│       └── plugin . toml
├── settings . toml # See autorun/src/configs/settings.toml
└── ...

?️ 字段

您可以在 fields.lua 中找到作为 EmmyLua 定义文件传递到 scripthook 环境的内容。
这可以与用于智能感知的 vscode lua 语言服务器扩展之类的东西一起使用吗?

✍️ 示例

钩子.lua
该文件在客户端上从插件和服务器运行每个 lua 脚本之前运行。您可以return true来不运行脚本,或者返回一个字符串来替换它。

 -- Replace all 'while true do end' scripts with 'while false do end' ?
local script = Autorun . CODE
if script : find ( " while true do end " ) then
	Autorun . log ( " Found an evil script! " )
	return string . Replace ( script , " while true do end " , " while false do end " )
end

您可以在这里找到更多信息

正在下载

?稳定的

您可以从发行版中获得“稳定”版本。

?前沿

您可以在 Github Actions 选项卡中获取绝对最新的下载(来自存储库中的代码)
请注意,它可能无法按预期工作(但我建议在尝试报告问题以查看是否已修复之前先尝试一下)

如果您将其用作菜单插件?请确保 DLL 名为gmsv_autorun_win<arch>.dll

建筑

如果您想进行更改/贡献(或者出于任何原因不信任 github 操作..),您可能需要自己构建它

  1. 设置 Rust 和 Cargo
  2. 使用build_win_32.batbuild_win_64.bat
展开
附加信息