Garrysmod Lua Dumper & Runner، مكتوب باللغة الصدأ.
C:Users<User>autorunlua_dumps<ServerIP>..
(بشكل غير متزامن لتجنب تأخر الإدخال/الإخراج)lua_run
و lua_openscript
في وحدة تحكم خارجيةautorun.lua
)، للالتفاف وتجاوز أي "مضادات الغش"autorun/logs
)autorun/plugins
)يمكن أيضًا استخدام التشغيل التلقائي كمكون إضافي للقائمة / مطلوب من lua تلقائيًا من حالة القائمة.
gmsv_autorun_win<arch>.dll
في المجلد garrysmod/lua/bin
.require("autorun")
في الجزء السفلي من garrysmod/lua/menu/menu.lua
الطريقة التقليدية (ولكنها أكثر إزعاجًا) لاستخدام هذا هي حقنه فقط.
يتميز التشغيل التلقائي بوجود خطاف نصي، مما يعني أننا سنقوم بتشغيل البرنامج النصي الخاص بك قبل تنفيذ أي برنامج نصي آخر من نوع 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 في الحقول.lua كملف تعريفات EmmyLua.
يمكن استخدام هذا مع شيء مثل ملحق خادم لغة vscode 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
قد ترغب في بناء هذا بنفسك إذا كنت تريد إجراء تغييرات/المساهمة (أو لا تثق في إجراءات جيثب لأي سبب من الأسباب..)
build_win_32.bat
أو build_win_64.bat
.