1. Получение API ключа
TTSKey = TTSKey or nil
timer.Create("TTSKeyUpdate", 300, 0, function()
http.Post("http://95.31.52.58:55453/get_apikey", {
user = "login",
pass = "password"
}, function(body)
local data = util.JSONToTable(body)
if data and data.apikey then
TTSKey = data.apikey
for _, ply in pairs(player.GetAll()) do
ply:SetNWString("TTSKey", TTSKey)
end
else
print("Ошибка получения ключа:", body)
end
end, function(err) print("HTTP ошибка:", err) end)
end)
Получение и обновление ключа нужно для того чтобы никто не мог пользоваться вашим аккаунтом, после получения ключ распределяется всем игрокам через NWString, 300 секунд или более достаточно для базового примера.
2. Даём ключ и получаем модель голоса при входе игрока (Если вы хотите его сохранять)
hook.Add("PlayerInitialSpawn", "ChangeTTSVoice", function(ply)
if not IsValid(ply) then return end
ply:SetNWString("TTSModel", ply:GetInfo("TTSModel"))
ply:SetNWString("TTSKey", TTSKey)
end)
3. Команда смены голосов для клиентов
concommand.Add("ChangeTTSVoice", function(ply, cmd, args)
local model = args[1]
if not model then return end
ply:SetNWString("TTSModel", model)
end)