Repository navigation
PRESRELEASE
Pre-release
Pre-release
samp-server-lua — плагин-мост SA-MP <-> Lua 5.5 (полная эмуляция AMX-сценария).
Всё, что нужно для запуска гейм-мода на Lua, собрано в этом релизе.
Что внутри
salua_lua.dll— сам плагин (Windows, x86, MSVC). Встраивает Lua 5.5.1:- натив
Lua_Fire(name, ...): колбэки сервера доходят до Lua (OnGameModeInit,OnPlayerConnect,OnPlayerCommandText, ...); - из Lua SA-MP-нативы вызываются через
samp.call("Имя", args...)(плагин исполняет publicAPI_<Имя>в прокси через amx_Exec); - out-параметры:
samp.getPlayerPos/Name/Ip/Health/Armour(через amx_Allot); ProcessTick-> LuaOnServerTick()-> таймерыsetInterval;- конвертация UTF-8 (Lua) в кодировку сервера (Windows-1251) — кириллица в логе корректна.
- натив
lua_gm.amx— предкомпилированный прокси-геймод (pawncc 3.2.3664).lua/main.lua— пример Lua-гейм-мода (спавн-классы, /help, /skin, /heal, /pos, /money, /name, таймеры).pawno/include/lua_salua.inc— декларации нативов для павн.server.cfg— пример конфигурации.
Установка
salua_lua.dll->plugins/сервера,lua_gm.amx->gamemodes/,lua/main.lua->lua/.- В
server.cfg:plugins salua_luaиgamemode0 lua_gm 1. - Запустить
samp-server.exe.
Тестировано
- SA-MP Dedicated Server v0.3.7-R3, Windows.
- Плагин загружается (
Loaded 1 plugins), экспортыSupports/Load/Unload/AmxLoad/AmxUnload/ProcessTickпроверены dumpbin. OnGameModeInit-> Lua: SetWeather / SetWorldTime / AddPlayerClass черезsamp.callработают.- Таймер-стресс:
samp.call('SendClientMessageToAll')каждые ~2 с — сервер 40 сек, 22 срабатывания, падений нет. - Кириллица (UTF-8 -> Windows-1251) в
server_log.txtотображается корректно.
Исходники и сборка
- Полный исходный код (плагин
plugins/src/main.cpp, vendored SDKplugins/sdk/, исходники Lua 5.5.1plugins/src/lua/, проксиgamemodes/lua_gm.pwn,lua/main.lua,build.bat) — на этой странице в блоке Assets -> Source code (zip / tar.gz), а также в репозитории: https://github.com/devsers53/samp-server-lua - Сборка DLL: из папки
pluginsзапуститьbuild.bat(MSVC x86, компиляция как C++,-DHAVE_STDINT_H;lua.c/luac.cисключены).
Контрольные суммы (SHA-256)
salua_lua.dll:4461BE3F7C94840B57D02695C7594D130EE62AE9A09AA5E74CA22B80F6548E07lua_gm.amx:B61D66F6C2A3B792575040880F517CD5316AE068977460153F47B118465DF2C5salua_lua_bin.zip:CAF92B22E98C60A702E9071195E42FC0C2FB9F4252F1CE307639197D9D2E8D0C