▫️vrp (framework)
• (Server) Proxy / exports / events
--------------------------------------------------
-- DATABASE
vRP.prepare(query)
-- Preparar uma query
vRP.query(query,params)
-- Realizar uma query preparada préviamente
vRP.execute(query,params)
-- Executar uma query preparada préviamente
--------------------------------------------------
-- JOGADORES / CONTAS DE JOGADORES
vRP.getPlayerSteam(src)
-- Retorna a steam de um jogador pela source.
exports['vrp']:canPlayerConnect(src)
-- Verifica se um jogador pode entrar no servidor (se tem allowlist, conta, etc).
-- Retorna true caso possa conectar ou a string para disconnect do mesmo caso contrário.
exports['vrp']:startPlayerConnection(src,def)
-- Inicia a conexão do jogador, após a entrada no servidor. Passando a source e o deferrals para entrada.
exports['vrp']:checkSession(src)
-- Função para verificar se o jogador está fora da sessão principal do servidor (bucket 0). Se ele estiver, será desconectado.
-- Util para verificações em ações que não podem ser feitas fora do bucket 0.
--------------------------------------------------
-- PERSONAGENS
exports['vrp']:setSelectedCharacter(src,characterId)
-- Define o personagem selecionado para a source do jogador.
exports['vrp']:loadCharacterData(src,characterId)
-- Carrega os dados do personagem após o spawn do mesmo, deve ser chamado em sequência do export 'setSelectedCharacter' a seguir do spawn do personagem.
vRP.getCurrentCharacter(src)
-- Retorna o ID do personagem pela source
exports['vrp']:getCurrentCharacter(src)
-- Mesma função que 'vRP.getCurrentCharacter', só que sem precisar instanciar a vRP.
-- No server também é possível obter o ID do personagem que o jogador está conectado através do state 'characterId':
local id = Player(src).state['characterId']
vRP.getCharacterSource(id)
-- Retorna a source pelo ID do personagem conectado
exports['vrp']:getCharacterSource(id)
-- Mesma função que 'vRP.getCharacterSource', só que sem precisar instanciar a vRP.
vRP.getCharacterDatatable(id)
-- Retorna a datatable de um personagem pelo ID.
vRP.getOnlineCharacters()
-- Retorna a lista de personagens online.
vRP.kick(id,reason)
-- Desconecta um jogador do servidor pelo ID do personagem conectado.
vRP.getCharacterIdentity(id)
-- Retorna a identidade um personagem pelo seu ID.
vRP.getCharacterRegistration(id)
-- Retorna o registro de um personagem pelo seu ID.
vRP.getCharacterIdByRegistration(registration)
-- Retorna o ID do personagem proprietário do registro passado.
vRP.getCharacterPhone(id)
-- Retorna o número de um personagem pelo seu ID.
vRP.getCharacterIdByPhone(phone)
-- Retorna o ID do personagem proprietário do número passado.
vRP.generateRegistrationNumber()
-- Gera um novo registro.
vRP.generatePhoneNumber()
-- Gera um novo número.
exports['vrp']:setCharacterSaveDisabled(characterId,disabled)
-- Salva as informações atuais do personagem (vida, posição, etc) e desabilita o salvamento/coleta destas informações durante 1 DISCONNECT do jogador.
-- Útil para eventos/arenas que teleportam o jogador, etc.
-- characterId = ID do personagem
-- disabled = boolean (true / false) -> true : desabilitar o save, false: reabilitar (ex: true quando entrar no evento/arena, false quando sair).
--------------------------------------------------
-- CASH
vRP.getCash(id)
-- Retorna a quantidade de cash (coins) que um jogador tem, pelo ID do personagem conectado.
vRP.removeCash(id,amount)
-- Tenta realizar um pagamento usando cash do jogador (retorna true se removido ou false caso contrário)
vRP.addCash(id,amount)
-- Adiciona cash na conta de um jogador pelo ID do personagem conectado.
-- Lembre-se: o cash é vinculado à CONTA do jogador e não à um personagem específico, portanto é compartilhado entre personagens.
exports['vrp']:tryPaymentCash(src,amount)
-- Mesma função que 'vRP.removeCash', só que sem precisar instanciar a vRP e passando diretamente a source ao invés do ID do personagem conectado
--------------------------------------------------
-- ECONOMIA PRINCIPAL (DINHEIRO)
vRP.addCharacterBank(id,amount)
-- Adiciona dinheiro à conta bancária de um personagem.
vRP.setCharacterBank(id,amount)
-- Redefine o valor da conta bancária de um personagem para o valor passado.
vRP.remCharacterBank(id,amount)
-- Remove dinheiro da conta bancária de um personagem.
vRP.getCharacterBank(id)
-- Retorna o valor da conta bancária de um personagem
vRP.tryPayment(id,amount)
-- Tenta realizar um pagamento utilizando dinheiro (item), retorna true se pago ou false caso contrário.
vRP.tryPaymentBank(id,amount)
-- Tenta realizar um pagamento utilizando o saldo bancário do personagem, retorna true se pago ou false caso contrário.
vRP.tryPaymentWithDebtCard(id,amount)
-- Tenta realizar o pagamento por dinheiro e/ou por saldo bancário caso o personagem possua o item 'cartão de débito'. Retorna true se pago ou false caso contrário.
exports['vrp']:tryFullPayment(src,amount)
-- Mesma função que 'vRP.tryPaymentWithDebtCard', só que sem precisar instanciar a vRP e passando diretamente a source ao invés do ID do personagem conectado.
--------------------------------------------------
-- GRUPOS / PERMISSÕES
vRP.getGroupInfo(index)
-- Retorna as informações de um grupo pelo seu index.
vRP.getGroupTitle(index)
-- Retorna o título de um grupo pelo seu index.
vRP.getCharacterGroups(id)
-- Retorna os grupos que um personagem possuí, pelo seu ID.
vRP.getCharacterGroupByType(id,type)
-- Retorna o grupo de um tipo específico que um personagem possuí (caso ele não tenha, o retorno será nulo).
vRP.addCharacterGroup(id,index)
-- Adiciona um grupo para um personagem, passando o ID do personagem e o index do grupo.
vRP.removeCharacterGroup(id,index)
-- Remove um grupo de um personagem, passando o ID do personagem e o index do grupo.
local list,total =
vRP.getCharactersByPermission(permission)
-- Retorna uma tabela com ([id] = source) e o total de jogadores com a permissão especificada.
vRP.hasGroup(id,index)
-- Verifica se um personagem possuí determinado grupo, passando seu ID e o index do grupo.
exports['vrp']:hasGroup(src,group)
-- Mesma função que 'vRP.hasGroup', só que sem precisar instanciar a vRP e passando diretamente a source ao invés do ID do personagem conectado.
vRP.hasPermission(id,permission)
-- Verifica se um personagem possuí determinada permissão, passando seu ID e a permissão.
-- O parâmetro 'permission' pode ser uma tabela de permissões para checagem multipla, no formato: {"permissao1","permissao2","etc}
exports['vrp']:_hasPermission(src,permission)
-- Mesma função que 'vRP.hasPermission', só que sem precisar instanciar a vRP e passando diretamente a source ao invés do ID do personagem conectado.
vRP.insertGroup(gindex,gname,gtype,gpermissions)
-- Criar grupos de forma dinâmica (reseta sempre que o servidor reiniciar).
-- gindex: string - index do grupo
-- gname: string - nome do grupo
-- gtype: string - tipo do grupo
-- gpermissions: table - permissoes do grupo ( ex: {'perm1','perm2','perm3'} )
--------------------------------------------------
-- ESSENCIAIS
vRP.upgradeThirst(id,amount)
-- Aumenta a sede de um personagem (positivamente / melhora / quer dizer menos sede)
vRP.downgradeThirst(id,amount)
-- Diminui a sede de um personagem (negativamente / piora / quer dizer mais sede)
vRP.upgradeHunger(id,amount)
-- Aumenta a fome de um personagem (positivamente / melhora / quer dizer menos fome)
vRP.downgradeHunger(id,amount)
-- Diminui a fome de um personagem (negativamente / piora / quer dizer mais fome)
vRP.upgradeStress(id,amount)
-- Aumenta o stress de um personagem (positivamente / melhora / quer dizer menos stress)
vRP.downgradeStress(id,amount)
-- Diminui o stress de um personagem (negativamente / piora / quer dizer mais stress)
--------------------------------------------------
-- LOGS
exports['vrp']:saveLog(webhook,log)
-- Salva uma log no webhook informado.
-- Só será enviada a log caso a convar 'production' esteja definida como "true" no server.cfg
exports['vrp']:createLog(url,title,fields)
-- Salva uma log no webhook informado.
-- Só será enviada a log caso a convar 'production' esteja definida como "true" no server.cfg
-- url: string - webhook url
-- title: string - titulo da log
-- fields: table - campos ( ex: { {'staff',characterId}, {'ação','ativou o wall'} } )
--------------------------------------------------
-- ENTRADA
RegisterServerEvent('SNT/C/setReady')
AddEventHandler('SNT/C/setReady',function(src,characterId)
-- evento chamado quando um player conecta no servidor e seleciona um personagem.
end)
--------------------------------------------------
-- SAÍDA
RegisterServerEvent('SNT/playerLeft')
AddEventHandler('SNT/playerLeft',function(src,characterId)
-- evento chamado quando um player desconecta do servidor.
end)
--------------------------------------------------
-- RESTART
exports['vrp']:setRestarting(bool)
-- bool: true / false
-- Define se o servidor está prestes a reiniciar ou não.
-- Útil para integração com outros sistemas (ex: desativar o uso próximo ao reinício do servidor).
-- Também desativa novas conexões, informando que o servidor será reiniciado em breve.
-- Por padrão este export já é utilizado no comando 'rr' disponbilizado no core.
exports['vrp']:isRestarting()
-- Retorna se o servidor está reiniciando ou não, útil para realizar a integração supramencionada.
--------------------------------------------------
-- MANUTENÇÃO
exports['vrp']:setMaintence(bool)
-- bool: true / false
-- Define se o servidor está prestes em manutenção ou não.
-- Libera a entrada somente de jogadores com 'staff' = 1 na tabela snt_characters.
exports['vrp']:isMaintence()
-- Retorna se o servidor está em manutenção ou não.
-- O modo manutenção também pode ser ativado/desativado usando o comando !man no console.
--------------------------------------------------• (Client) Proxy / exports / events
--------------------------------------------------
-- JOGADORES PRÓXIMOS
vRPclient.nearestPlayers(src,radius)
-- Retorna uma tabela ([source] = distancia) com os jogadores próximos.
vRPclient.nearestPlayer(src,radius)
-- Retorna a source do jogador mais próximo.
--------------------------------------------------
-- VIDA
vRPclient.getHealth(src)
-- Retorna a vida atual do personagem.
vRPclient.setHealth(src,value)
-- Define a vida do personagem para o valor passado.
vRPclient.updateHealth(src,value)
-- Aumenta a vida do personagem no valor passado.
vRPclient.downHealth(src,value)
-- Diminui a vida do personagem no valor passado.
--------------------------------------------------
-- COLETE
vRPclient.setArmour(src,value)
-- Define o colete do personagem para o valor passado.
--------------------------------------------------
-- ENTRADA
RegisterNetEvent('SNT/C/setReady')
AddEventHandler('SNT/C/setReady',function(characterId)
-- evento chamado quando um player conecta no servidor e seleciona um personagem.
end)
-- No client também é possível obter o ID do personagem que o jogador está conectado através do state 'characterId':
local id = LocalPlayer.state['characterId']
--------------------------------------------------Last updated
