Fizemos alguns exemplos de implementação para vrp (vrpex, creative) e qbcore.
Faça o download da source correspondente ao framework da sua base.
O arquivo de configuração é bastante simples, tendo que configurar as funcões que serão recebidas em nosso client.
Esse json se refere à configuração do script, que de forma auto explicativa se refere a configuração do token, ativação do modo debug, configurações de comandos.
E no config.lua, você deverá implementar as funcões da sua framework conforme o exemplo abaixo, adicionando um evento de adicionar item ao player com notify:
{
"token": "", // Token de autenticação para a API
"debug": true, // ativa o modo debug (envia mensagens ao console)
}
local Proxy = module("vrp", "lib/Proxy")
vRP = Proxy.getInterface("vRP")
local prefix = "bot:"
local serverCommands = {
-- exemplo de comando "kick" usado em conjunto com o rnld_api
["kick"] = function(data)
local token = data.token
local reason = data.reason or "Sem Motivo"
local plysrc = exports['rnld_api']:getSourceByToken(token)
if plysrc then
DropPlayer(plysrc, reason)
return ("Jogador %s kickado. Motivo: %s"):format(token, reason)
else
return ("Jogador com token %s não encontrado"):format(token)
end
end,
["item"] = function(data)
local id = tonumber(data.id) or 0
local item = tostring(data.item or "")
local qtd = tonumber(data.qtd) or 0
return ("Item %s (%d) dado ao jogador %d"):format(item, qtd, id)
end,
-- "renomear" só um exemplo
["renomear"] = function(data)
local id = tonumber(data.id) or 0
local nome = data.nome or "SemNome"
local sobrenome = data.sobrenome or "SemSobrenome"
local idade = tonumber(data.idade) or 0
local teste = {
a = 'b'
}
return ("Renomeado ID %d para %s %s (%d anos)"):format(id, nome, sobrenome, idade)
end,
}
-- Não é para mecher.
AddEventHandler(prefix .. "executeCommand", function(requestId, commandName, data)
local src = source
local handler = serverCommands[commandName]
local result = nil
if handler then
local status, res = pcall(handler, data)
if status then
result = res
else
result = "Erro no handler: " .. tostring(res)
end
else
result = ("Comando '%s' não existente"):format(commandName)
end
TriggerEvent(prefix .. "commandResult", requestId, result)
end)