Я использую сервер AzerothCore для личного доступа по локальной сети. У меня сервер работает на докере в соответствии с установкой, представленной на официальном сайте. . Мне также удалось подключить lua-движок Eluna через модуль, предоставленный на GitHub AzerothCore.
Я вижу, что Eluna была успешно скомпилирована с worldserver, так как я получаю это сообщение после вызова docker-compose up
:
ac-worldserver_1 | [Eluna]: Executed 0 Lua scripts in 0 ms
У меня тоже нет проблем со входом через клиент и играю нормально.
Теперь проблема, с которой я столкнулся, заключается в том, что я не могу найти, где разместить свои сценарии lua, чтобы они использовались сервером. Копаясь в конфигурационных файлах, я нашел этот параметр в azerothcore-wotlk/modules/mod-eluna-lua-engine/conf/mod_LuaEngine.conf.dist
:
Eluna.ScriptPath = "lua_scripts"
Эта константа загружается в основной файл LuaEngine.cpp
, так что я убежден, что это правильное место для поиска. Однако во всем репозитории, включая прикрепленный модуль, нет каталога lua_scripts
. Я пытался поместить его (и базовый скрипт hello_world.lua
) в несколько подкаталогов, но безрезультатно. Думая, что его можно найти вне репозитория из-за использования докера, я запустил sudo find / | grep lua_scripts
и нашел копию папки в этом очень недоступном месте:
/var/snap/docker/common/var-lib-docker/overlay2/3d7f9d1de6602baf9a33ee24333ecdf01d537c2b7b439e90d645ff9643bfdd07/diff/azeroth-server/bin/lua_scripts
Очевидно, что это доступно только через sudo
, и я не могу легко использовать это место для целей разработки.
В крайнем случае я попытался изменить константу Eluna.ScriptPath
на абсолютный путь в репозитории, но это тоже не помогло. Скрипты не загружаются, при входе в систему нет приветствия. Кто-нибудь знает, где я могу посмотреть или разместить каталог?
Для справки, hello_world.lua
:
local PLAYER_EVENT_ON_LOGIN = 3
local function OnLogin(event, player)
player:SendBroadcastMessage("Hello world")
end
RegisterPlayerEvent(PLAYER_EVENT_ON_LOGIN, OnLogin)