Это интеграция NodeJS прямо в GoldSource, нечто вроде amxmod (и моего старого luamod)
из плюсов:
- высокая производительность (потому что V8)
- асинхронность
- легкость (JS очень легкий, а я сделаю кучу пакетов вспомогательных)
- высокая поддержка (под nodejs есть почти все, базы данных, пакеты, API интеграции и так далее)
Предварительная установка зависимостей
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install gcc-multilib g++-multilib cmake nodejs libuv1-dev
Для компиляции требуется установленный nodejs.
git clone --recursive https://github.com/TheEVolk/xash3d-nodemod.git
cd xash3d-nodemod
node scripts/buildEvents.js
cmake -E make_directory build
cd build
cmake ..
cmake --build . --config Debug
- Установите metamod в Ваш игровой сервер
- Создайте в addons директорию nodemod
- Переместите все файлы из example в addons/nodemod
- Создайте директорию addons/nodemod/dlls
- Переместите скомпилированный libnodemod.so в директорию addons/nodemod/dlls
- В plugins.ini от metamod добавьте строку
linux addons/nodemod/dlls/libnodemod.so
- Установите npm или yarn и выполните в директории addons/nodemod команду
npm i
для npm илиyarn
для yarn - Вы можете писать свои скрипты в директории
addons/nodemod/src
.
- blueFade - синяя подсветка экрана при убийстве
- rampageSounds - звуки типа "monster kill"/"multi kill" и подобное. (требуется установить sounds/rampage из директории content)
- ads - сообщения в чат с интервалом в 5 минут
- fastdl - запускает веб-сервер с файлами из папки custom
- welcome - приветственное сообщение
- Реализовать CBase (по оффсетам) для доступа к полям из gamedll (например, чтобы узнать контролера tank)
- Плагин webmap с миникартой в реальном времени
- Авторизация через базу данных
- Создание своих энтити в ООП стиле
- Рефакторинг
- CI
Большое спасибо разработчику samp-node за открытый исходный код и прекрасный пример реализации интеграции nodejs в C++ приложение