Autorun rs
v1.2.0
Garrysmod Lua Dumper & Runner,用 Rust 编写。
C:Users<User>autorunlua_dumps<ServerIP>..
(异步以避免 I/O 延迟)lua_run
和lua_openscript
加载autorun.lua
)之前运行脚本,以绕行并绕过任何“反作弊”autorun/logs
)autorun/plugins
)Autorun 也可以用作菜单插件/需要从 lua 自动从菜单状态。
gmsv_autorun_win<arch>.dll
文件放入garrysmod/lua/bin
文件夹中。garrysmod/lua/menu/menu.lua
底部添加require("autorun")
使用它的传统(但更不方便)方法是注入它。
Autorun 具有 scripthook 功能,这意味着我们将在执行任何其他 garrysmod 脚本之前运行您的脚本,以验证您是否希望通过运行您自己的钩子脚本来运行代码。 *它在与_G
不同的环境中运行,因此要修改全局变量,请执行_G.foo = bar
另请注意,如果您在autorun.lua
中运行,像http.Fetch
和file.Write
这样的函数将不存在。
使用它们的 C 对应项( HTTP
和file.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 操作..),您可能需要自己构建它
build_win_32.bat
或build_win_64.bat
。