Garrysmod Lua Dumper & Runner, написанный на Rust.
C:Users<User>autorunlua_dumps<ServerIP>..
(асинхронно, чтобы избежать задержки ввода-вывода)lua_run
и lua_openscript
во внешней консолиautorun.lua
), чтобы обойти любые «античиты».autorun/logs
)autorun/plugins
)Autorun также может использоваться как плагин меню / автоматически требоваться от lua из состояния меню.
gmsv_autorun_win<arch>.dll
в папку garrysmod/lua/bin
.require("autorun")
внизу garrysmod/lua/menu/menu.lua
Традиционный (но более неудобный) метод использования — просто ввести его.
В автозапуске имеется функция 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
└── ...
Вы можете найти то, что передается в среду scripthook, в field.lua в виде файла определений EmmyLua.
Это можно использовать с чем-то вроде расширения языкового сервера vscode lua для intellisense?
крюк.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.
Обратите внимание, что это может работать не так, как ожидалось (но я бы посоветовал попробовать это, прежде чем пытаться сообщить о проблеме, чтобы узнать, исправлена ли она).
Если вы используете это как плагин меню?, убедитесь, что DLL называется gmsv_autorun_win<arch>.dll
Возможно, вы захотите создать это самостоятельно, если хотите внести изменения/внести свой вклад (или по какой-либо причине не доверяете действиям github).
build_win_32.bat
или build_win_64.bat
.