Pular para o conteúdo principal

Resolva problemas comuns

Resource não inicia

Está com problemas para iniciar o seu produto? Clique aqui

Configurar o resource

Está com dúvidas de como configurar algo no sistema? Clique aqui
Hero Dark

Sobre o sistema

A proposta do Multi Characters é oferecer um sistema completo de múltiplos personagens com identidade visual, documentação (passaporte), cutscene de entrada e total integração com outros sistemas do servidor. Com as funções exportadas, você pode:
  • Abrir o painel de seleção de personagens para qualquer jogador;
  • Exibir o passaporte de um jogador para outro jogador;
  • Exibir o passaporte de um personagem pelo ID do banco;
  • Buscar as informações do passaporte do personagem logado ou de qualquer personagem pelo ID;
  • Abrir o painel de renovação de passaporte;
  • Iniciar a cutscene de chegada para um jogador;
  • Deletar um personagem por ID ou por nome.

Funções Exportadas

Server-side

openPanelCharacters

Side: server Syntax
Required arguments
  • player (player): jogador que terá o painel de personagens aberto.
Comportamento
  • Cria o ped de lobby e muda a dimensão do jogador.
  • Busca todos os personagens da conta principal do jogador e os envia para o client.
  • Toca a música de lobby e trava os controles do jogador.
  • Só abre se o jogador não estiver já no lobby.
  • Dispara o evento serverConfig.events.onStartCreationCharacter.
Return
  • Sem retorno explícito. O painel é aberto via triggerClientEvent se tiver sucesso.
Example

startCutscenePlayer

Side: server Syntax
Required arguments
  • player (player): jogador que irá assistir a cutscene de chegada.
Comportamento
  • Só funciona se o jogador estiver com um personagem carregado (playerLoggedInfos).
  • Coloca o jogador numa dimensão exclusiva, cria o avião e inicia a sequência de câmera.
  • Ao terminar a cutscene, tira a foto do personagem, salva no banco e reposiciona o jogador.
  • Dispara serverConfig.events.onFinishCutscene ao fim.
Return
  • Sem retorno explícito.
Example

showPassport

Side: server Syntax
Required arguments
  • fromPlayer (player): jogador cujo passaporte será exibido (deve ter um personagem logado).
  • toPlayer (player): jogador que verá o passaporte na tela.
Comportamento
  • Busca os dados do personagem logado de fromPlayer no banco.
  • Envia a interface de visualização de passaporte para toPlayer.
  • Requer que fromPlayer tenha playerLoggedInfos com personID válido.
Return
  • false se fromPlayer ou toPlayer forem inválidos, ou se o personagem não for encontrado.
  • Sem retorno explícito em caso de sucesso (abre a interface via triggerClientEvent).
Example

showPassportFromID

Side: server Syntax
Required arguments
  • characterID (number): ID do personagem no banco de dados.
  • toPlayer (player): jogador que verá o passaporte na tela.
Comportamento
  • Busca o personagem pelo ID, independente de ele estar logado ou não.
  • Útil para sistemas de administração ou consulta de fichas.
Return
  • false se characterID ou toPlayer forem inválidos, ou se o personagem não for encontrado.
  • true em caso de sucesso.
Example

openPassportRenew

Side: server Syntax
Required arguments
  • player (player): jogador que terá o painel de renovação aberto.
Comportamento
  • Requer que o jogador tenha um personagem logado (playerLoggedInfos).
  • Abre a interface de renovação de passaporte, que permite editar nome, sobrenome, gênero, data de nascimento, nacionalidade e naturalidade (conforme config.passport_renews.allowedEditions).
  • Cobra o valor definido em config.passport_renews.price do jogador.
Return
  • Sem retorno explícito. A interface é aberta via triggerClientEvent em caso de sucesso.
Example

getPlayerPassportInfos

Side: server Syntax
Required arguments
  • player (player): jogador com personagem logado.
Comportamento
  • Requer que o jogador tenha um personagem logado.
  • Executa uma query coroutine-safe e aguarda o resultado antes de retornar.
Return
  • table com os campos do passaporte em sucesso:
  • false se o personagem não for encontrado ou o jogador não estiver logado.
Example

getPlayerPassportInfosByID

Side: server Syntax
Required arguments
  • characterID (number): ID do personagem no banco de dados.
Comportamento
  • Busca o personagem pelo ID, independente de ele estar logado.
  • Útil para sistemas externos que precisam buscar dados de qualquer personagem.
  • A busca é feita de forma coroutine-safe (bloqueia até obter resposta).
Return
  • table com os mesmos campos de getPlayerPassportInfos em sucesso.
  • false se o personagem não for encontrado ou o ID for inválido.
Example

deletePerson

Side: server Syntax
Required arguments
  • personIDOrAccount (number ou string):
    • number: ID do personagem no banco de dados.
    • string: nome e sobrenome no formato "Nome@Sobrenome" (usando o nameSeparator configurado).
Comportamento
  • Deleta o personagem da tabela characters e da tabela characters_profile.
  • Remove a conta MTA associada ao personagem.
  • Caso o personagem esteja logado no momento, o jogador é expulso do servidor.
Return
  • true quando a operação é iniciada com sucesso.
  • false se personIDOrAccount for nulo ou a licença for inválida.
Example

Observações

  • Todas as exports exigem que o resource já tenha sido liberado pela proteção de licença.
  • As funções que operam sobre personagens logados (showPassport, getPlayerPassportInfos, openPassportRenew, startCutscenePlayer) requerem que o jogador tenha passado pela tela de seleção de personagens.
  • As funções que recebem characterID funcionam independente do jogador estar online.
  • As funções acima seguem o que está exportado no meta.xml do sqh_multicharacters.