Pular para o conteúdo

Personalização

Quase tudo sobre uma missão — quem a entrega, o que diz, o que acontece a seguir — é construído no editor e salvo no seu banco de dados. Os arquivos servem para as poucas coisas que são iguais em todas as missões.


ArquivoO que ele decideAberto?
config.luaFramework, idioma, como os jogadores falam com NPCs, cor do diálogo, /cancelquest, capturas de telaSim
bridge/bridge_server.luaDinheiro, itens, dados do jogador, callbacks e verificação de permissãoSim
bridge/bridge_client.luaNotificações, texto de ajuda, dados do jogador e como o jogador é revividoSim
locales/*.luaTodos os textos: editor, janela de diálogo, notificações, logs de webhookSim
install.sqlAs oito tabelas, importadas uma única vezSim
web/O editor, janela de diálogo, minijogo e barra de progresso (HTML, CSS, JS)Legível
client/, server/O motor de missõesProtegido
client/game_data/*.luaAs listas por trás dos seletores do editor: peds, carros, ossos, animações, partículas, sons, efeitos de telaProtegido

OpçãoO que fazPadrão
Config.FrameworkCom qual framework se comunicar: 'esx' ou 'qbcore'. Não é detectado sozinho. No QBox, use 'qbcore' — o QBox executa recursos QBCore através da sua camada de compatibilidade'esx'
Config.LocaleO idioma do editor, da janela de diálogo e das notificações. Veja Idiomas'en'
Config.DebugPresente no arquivo; nesta versão não imprime nada extra com eletrue
OpçãoO que fazPadrão
Config.InteractionType'ox_target', 'qb-target' ou 'drawtext' (texto 3D e uma tecla)'ox_target'
Config.InteractionDistanceQuão perto, em metros, um jogador deve estar para falar com um NPC2.5
Config.InteractionKeyO controle usado com 'drawtext' e pelo nó Interact in Area. 38 é E38
Config.ThemeColorCor de destaque da janela de diálogo: blue, pink, yellow, red, green, purple, orange, cyan, white ou black"purple"
OpçãoO que fazPadrão
Config.EnableCancelQuestRegistra um comando que permite ao jogador abandonar sua missão ativatrue
Config.CancelQuestCommandO nome do comando, sem a barra"cancelquest"

Cancelar limpa o progresso salvo do jogador para aquela missão e remove tudo o que ela gerou.

OpçãoO que fazPadrão
Config.ScreenshotBasicPermite que o nó Send Webhook anexe uma captura de tela quando a caixa de captura estiver marcada. Precisa do screenshot-basic em execuçãotrue

ComandoQuem pode usarO que faz
/questcreatorQualquer pessoa com a ACE mic_questcreator.openAbre o Quest & Event Creator
/cancelquestTodos os jogadores, enquanto Config.EnableCancelQuest estiver ativoAbandona a missão ativa. Renomeado por Config.CancelQuestCommand

A mesma permissão protege tudo o que o editor salva, exclui, importa e exporta — a verificação é feita no servidor, não apenas quando o menu é aberto. Conceda-a com uma linha add_ace para um identificador ou grupo; a verificação em si fica em Bridge.Server.IsPlayerAllowed no arquivo bridge/bridge_server.lua, caso você prefira vinculá-la ao seu próprio sistema de administração.


Treze arquivos vêm em locales/: en, es, fr, de, it, pt, ru, ja, ko, zh-CN, ar, nl e cs. Defina Config.Locale com o nome do arquivo sem .lua.

Adicionando um idioma:

  1. Copie locales/en.lua e dê à cópia o nome do código do seu idioma, por exemplo locales/pl.lua.
  2. Dentro dele, mude o nome da tabela de 'en' para o seu código e traduza o texto à direita de cada linha. Mantenha as chaves à esquerda e qualquer %s intactos.
  3. Adicione o seu arquivo em shared_scripts no fxmanifest.lua, junto com os outros arquivos de idioma e acima do config.lua.
  4. Defina Config.Locale com o seu código, dê refresh e reinicie.

Uma chave que esteja faltando no seu arquivo aparece no jogo como Translation [xx][key] does not exist, o que indica exatamente qual linha você precisa adicionar.

O que os NPCs dizem, os títulos das missões e as mensagens de notificação não ficam nos arquivos de idioma — você os digita diretamente no editor, no idioma que preferir.


Dois arquivos abertos ficam entre o motor de missões e o restante do seu servidor.

bridge/bridge_server.lua

FunçãoPara que serve
Bridge.Server.InitializeObtém o fmLib e o objeto ESX ou QBCore quando o recurso inicia
Bridge.Server.RegisterServerCallbackRegistra callbacks através do ESX ou QBCore
Bridge.Server.GetPlayer, GetPlayerParamsObtém um jogador através do fmLib e seu identificador, nome e emprego
Bridge.Server.GetMoney, AddMoney, RemoveMoneyDinheiro, através do fmLib
Bridge.Server.GetItem, AddItem, RemoveItemItens, através do fmLib, independentemente do inventário com que o fmLib fale
Bridge.Server.IsPlayerAllowedQuem pode abrir e usar o editor. Verifica a ACE mic_questcreator.open

bridge/bridge_client.lua

FunçãoPara que serve
Bridge.Client.ShowNotificationTodas as notificações. Substitua o corpo da função para usar seu próprio recurso de notificação
Bridge.Client.ShowHelpNotificationO texto de ajuda no canto superior esquerdo
Bridge.Client.GetPlayerData, IsPlayerLoadedDados do jogador, usados pelas verificações Has Job e Is Night/Day
Bridge.Client.TriggerServerCallbackCallbacks através do ESX ou QBCore
Bridge.Client.RevivePlayerUsado pelo manipulador de morte. Dispara esx_ambulancejob:revive no ESX ou hospital:client:Revive no QBCore e, em seguida, revive nativamente se ainda estiver morto

Usa outro script de ambulância? Altere o evento em Bridge.Client.RevivePlayer para aquele que o seu script escuta. Outro recurso de notificação? Altere Bridge.Client.ShowNotification. Mantenha os nomes das funções — o motor as chama pelo nome.


Dois exports de cliente permitem que outro recurso utilize o minijogo e a barra de progresso do Quest Creator.

ExportArgumentosO que faz
StartMinigamedificuldade (1–5), velocidade (1–5), rodadas, callbackAbre o minijogo estilo lockpick. O callback recebe true ou false
StartProgressBarduração em milissegundos, textoExibe a barra de progresso integrada

Chame-os em mic_questcreator a partir de um script de cliente.


Community Events no editor lista eventos que outros servidores compartilharam; importe um e ele será adicionado aos seus eventos como qualquer outro. A lista é baixada do GitHub, portanto seu servidor precisa de acesso externo à internet para carregá-la.

Export Event pede um nome, uma descrição e um autor, e então grava o evento em um arquivo JSON dentro da pasta do recurso, em exports/. Essa pasta não vem junto com o recurso — crie uma pasta vazia chamada exports dentro de mic_questcreator primeiro, ou o arquivo será salvo na raiz do recurso como export_<name>.json.