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

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 ->
Abre o painel de seleção de personagens para um jogador - startCutscenePlayer ->
Inicia a cutscene de chegada para um jogador - showPassport ->
Exibe o passaporte do personagem logado para outro jogador - showPassportFromID ->
Exibe o passaporte de qualquer personagem pelo ID - openPassportRenew ->
Abre o painel de renovação de passaporte para um jogador - getPlayerPassportInfos ->
Retorna as informações do passaporte do personagem logado - getPlayerPassportInfosByID ->
Retorna as informações do passaporte de um personagem pelo ID - deletePerson ->
Deleta um personagem por ID ou por nome@sobrenome
openPanelCharacters
Side:server
Syntax
player(player): jogador que terá o painel de personagens aberto.
- 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.
- Sem retorno explícito. O painel é aberto via
triggerClientEventse tiver sucesso.
startCutscenePlayer
Side:server
Syntax
player(player): jogador que irá assistir a cutscene de chegada.
- 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.onFinishCutsceneao fim.
- Sem retorno explícito.
showPassport
Side:server
Syntax
fromPlayer(player): jogador cujo passaporte será exibido (deve ter um personagem logado).toPlayer(player): jogador que verá o passaporte na tela.
- Busca os dados do personagem logado de
fromPlayerno banco. - Envia a interface de visualização de passaporte para
toPlayer. - Requer que
fromPlayertenhaplayerLoggedInfoscompersonIDválido.
falsesefromPlayeroutoPlayerforem inválidos, ou se o personagem não for encontrado.- Sem retorno explícito em caso de sucesso (abre a interface via
triggerClientEvent).
showPassportFromID
Side:server
Syntax
characterID(number): ID do personagem no banco de dados.toPlayer(player): jogador que verá o passaporte na tela.
- Busca o personagem pelo ID, independente de ele estar logado ou não.
- Útil para sistemas de administração ou consulta de fichas.
falsesecharacterIDoutoPlayerforem inválidos, ou se o personagem não for encontrado.trueem caso de sucesso.
openPassportRenew
Side:server
Syntax
player(player): jogador que terá o painel de renovação aberto.
- 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.pricedo jogador.
- Sem retorno explícito. A interface é aberta via
triggerClientEventem caso de sucesso.
getPlayerPassportInfos
Side:server
Syntax
player(player): jogador com personagem logado.
- Requer que o jogador tenha um personagem logado.
- Executa uma query coroutine-safe e aguarda o resultado antes de retornar.
tablecom os campos do passaporte em sucesso:
falsese o personagem não for encontrado ou o jogador não estiver logado.
getPlayerPassportInfosByID
Side:server
Syntax
characterID(number): ID do personagem no banco de dados.
- 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).
tablecom os mesmos campos de getPlayerPassportInfos em sucesso.falsese o personagem não for encontrado ou o ID for inválido.
deletePerson
Side:server
Syntax
personIDOrAccount(numberoustring):number: ID do personagem no banco de dados.string: nome e sobrenome no formato"Nome@Sobrenome"(usando onameSeparatorconfigurado).
- Deleta o personagem da tabela
characterse da tabelacharacters_profile. - Remove a conta MTA associada ao personagem.
- Caso o personagem esteja logado no momento, o jogador é expulso do servidor.
truequando a operação é iniciada com sucesso.falsesepersonIDOrAccountfor nulo ou a licença for inválida.
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
characterIDfuncionam independente do jogador estar online. - As funções acima seguem o que está exportado no
meta.xmldosqh_multicharacters.