Dependências
Inicie todas as dependências antes do Five Game.vRP
O recurso carrega
@vrp/lib/utils.lua e usa o framework para identidade, saldo e permissões. Toda a integração fica isolada em um único arquivo.oxmysql
Guarda o perfil e o ranking dos jogadores. A tabela é criada sozinha na primeira inicialização.
xsound
Responsável pelos sons posicionais da partida, como os efeitos da C4 no Plante/Desarme.
pma-voice
Coloca cada time em um canal de rádio próprio durante a partida. Adaptável em
client/class/adapter.lua.Dois recursos são detectados automaticamente e usados apenas se estiverem rodando: five-skins, que aplica a skin equipada nas armas da partida, e PL_PROTECT, que registra as armas entregues no anticheat. Sem eles, o Five Game segue o fluxo padrão.
Instalação do recurso
1
Copie a pasta do recurso
O pacote vem com a pasta
[five_game], contendo five-game e o xsound. Coloque-a dentro do diretório de recursos do seu servidor (por exemplo resources/).A pasta five-game/stream traz os mapas das arenas e o modelo da granada de fumaça. Mantenha-a junto do recurso.2
Informe o token de licença
Abra o arquivo
token.lua na raiz do recurso e substitua o valor pelo token recebido na compra.token.lua
3
Configure o recurso
Edite
shared/config.lua conforme a página de Configuração. É onde ficam comando, teclas, mapas, modos de armas, economia, loja, duelo e apostas.4
Adicione à server.cfg
Garanta que o Five Game seja iniciado depois das dependências.
5
Confira o console
Na inicialização, o recurso valida a licença e imprime o status no console, com a data de expiração ou o aviso de licença vitalícia.
Banco de dados
O Five Game cria a tabelafive_game_profiles automaticamente quando o oxmysql fica pronto. Não é preciso importar nenhum .sql.
Integração com o framework
As funções que conversam com o seu framework ficam emserver/class/framework.lua. A versão padrão já vem pronta para vRP. Nenhum outro arquivo chama o framework diretamente — para adaptar a outra base, reescreva apenas as funções abaixo mantendo a mesma assinatura.
Identidade e saldo
Identidade e saldo
Usadas para exibir nomes no lobby, no kill feed e no ranking, e para validar as apostas.
Movimentação de dinheiro
Movimentação de dinheiro
Chamadas apenas quando a partida tem aposta. Uma cobra o valor no início, a outra paga o prêmio aos vencedores.
Permissão de administrador
Permissão de administrador
Libera o administrador a espectar partidas criadas com espectadores desativados. Troque pela checagem de permissão da sua base.
Quando alguma dessas funções falha, o recurso avisa no console com o prefixo
[framework.lua] em vez de derrubar a partida. Use esse aviso para achar o ponto que ficou fora do padrão na adaptação.Pontos de adaptação (server)
O arquivoserver/class/adapter.lua reúne o que costuma variar de servidor para servidor: entrada na partida, snapshot do jogador, entrega de armas e skins.
Quem pode entrar na partida
Quem pode entrar na partida
adapter.canJoin(source) decide se o jogador está apto a entrar. A regra padrão impede entrar fora do mundo principal ou com vida muito baixa. Adapte para incluir restrições do seu servidor, como estar preso, algemado ou em outra atividade.Snapshot e restauração do jogador
Snapshot e restauração do jogador
adapter.savePlayerInfos guarda vida, colete, posição, bucket e inventário antes da partida, liga as statebags do jogador e desliga o HUD externo pelo evento hud:Active. adapter.applyPlayerInfos desfaz tudo ao sair.Entrega de armas e anticheat
Entrega de armas e anticheat
Três funções controlam as armas da partida:
givePlayerWeapons (loadout do round), givePlayerWeapon (compra na loja ou arma pega do chão) e removePlayerWeapon (venda ou troca).Quando o recurso PL_PROTECT está rodando, elas registram as armas no anticheat antes do fluxo padrão. Se você usa outro anticheat, troque a checagem e os exports["PL_PROTECT"] pelos equivalentes dele.Skins de arma
Skins de arma
adapter.getWeaponSkin(passport, weaponName) retorna a skin equipada do jogador. Sem o recurso five-skins rodando, retorna nil e o jogador recebe a arma base.Pontos de adaptação (client)
O arquivoclient/class/adapter.lua concentra a integração com o rádio e com o sistema de skins.
Rádio do time
Rádio do time
adapter.setRadio(radio) coloca o jogador no canal do time ao entrar na partida e o remove ao sair. Troque o pma-voice pelo seu recurso de voz mantendo a assinatura.Aplicar a skin na arma
Aplicar a skin na arma
adapter.applyWeaponSkin(weaponName) é chamado depois de toda entrega de arma. Sem o five-skins, o evento simplesmente não tem handler.Durante a partida o jogador é movido para um routing bucket isolado e tem vida, colete, posição e inventário guardados. Ao sair, tudo é restaurado automaticamente. Você não precisa tratar isso manualmente.
Próximos passos
Configuração
Ajuste comando, teclas, mapas, economia, loja e duelo.
Exports
Use
isPlayingGame para liberar checagens da sua base durante a partida.
