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.
Qual arquivo decide o quê
Seção intitulada “Qual arquivo decide o quê”| Arquivo | O que ele decide | Aberto? |
|---|---|---|
config.lua | Framework, idioma, como os jogadores falam com NPCs, cor do diálogo, /cancelquest, capturas de tela | Sim |
bridge/bridge_server.lua | Dinheiro, itens, dados do jogador, callbacks e verificação de permissão | Sim |
bridge/bridge_client.lua | Notificações, texto de ajuda, dados do jogador e como o jogador é revivido | Sim |
locales/*.lua | Todos os textos: editor, janela de diálogo, notificações, logs de webhook | Sim |
install.sql | As oito tabelas, importadas uma única vez | Sim |
web/ | O editor, janela de diálogo, minijogo e barra de progresso (HTML, CSS, JS) | Legível |
client/, server/ | O motor de missões | Protegido |
client/game_data/*.lua | As listas por trás dos seletores do editor: peds, carros, ossos, animações, partículas, sons, efeitos de tela | Protegido |
config.lua
Seção intitulada “config.lua”| Opção | O que faz | Padrão |
|---|---|---|
Config.Framework | Com 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.Locale | O idioma do editor, da janela de diálogo e das notificações. Veja Idiomas | 'en' |
Config.Debug | Presente no arquivo; nesta versão não imprime nada extra com ele | true |
Conversando com NPCs de missão
Seção intitulada “Conversando com NPCs de missão”| Opção | O que faz | Padrão |
|---|---|---|
Config.InteractionType | 'ox_target', 'qb-target' ou 'drawtext' (texto 3D e uma tecla) | 'ox_target' |
Config.InteractionDistance | Quão perto, em metros, um jogador deve estar para falar com um NPC | 2.5 |
Config.InteractionKey | O controle usado com 'drawtext' e pelo nó Interact in Area. 38 é E | 38 |
Config.ThemeColor | Cor de destaque da janela de diálogo: blue, pink, yellow, red, green, purple, orange, cyan, white ou black | "purple" |
Cancelando uma missão
Seção intitulada “Cancelando uma missão”| Opção | O que faz | Padrão |
|---|---|---|
Config.EnableCancelQuest | Registra um comando que permite ao jogador abandonar sua missão ativa | true |
Config.CancelQuestCommand | O 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.
Capturas de tela
Seção intitulada “Capturas de tela”| Opção | O que faz | Padrão |
|---|---|---|
Config.ScreenshotBasic | Permite que o nó Send Webhook anexe uma captura de tela quando a caixa de captura estiver marcada. Precisa do screenshot-basic em execução | true |
Comandos e permissões
Seção intitulada “Comandos e permissões”| Comando | Quem pode usar | O que faz |
|---|---|---|
/questcreator | Qualquer pessoa com a ACE mic_questcreator.open | Abre o Quest & Event Creator |
/cancelquest | Todos os jogadores, enquanto Config.EnableCancelQuest estiver ativo | Abandona 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.
Idiomas
Seção intitulada “Idiomas”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:
- Copie
locales/en.luae dê à cópia o nome do código do seu idioma, por exemplolocales/pl.lua. - 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%sintactos. - Adicione o seu arquivo em
shared_scriptsnofxmanifest.lua, junto com os outros arquivos de idioma e acima doconfig.lua. - Defina
Config.Localecom o seu código, dêrefreshe 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.
A bridge
Seção intitulada “A bridge”Dois arquivos abertos ficam entre o motor de missões e o restante do seu servidor.
bridge/bridge_server.lua
| Função | Para que serve |
|---|---|
Bridge.Server.Initialize | Obtém o fmLib e o objeto ESX ou QBCore quando o recurso inicia |
Bridge.Server.RegisterServerCallback | Registra callbacks através do ESX ou QBCore |
Bridge.Server.GetPlayer, GetPlayerParams | Obtém um jogador através do fmLib e seu identificador, nome e emprego |
Bridge.Server.GetMoney, AddMoney, RemoveMoney | Dinheiro, através do fmLib |
Bridge.Server.GetItem, AddItem, RemoveItem | Itens, através do fmLib, independentemente do inventário com que o fmLib fale |
Bridge.Server.IsPlayerAllowed | Quem pode abrir e usar o editor. Verifica a ACE mic_questcreator.open |
bridge/bridge_client.lua
| Função | Para que serve |
|---|---|
Bridge.Client.ShowNotification | Todas as notificações. Substitua o corpo da função para usar seu próprio recurso de notificação |
Bridge.Client.ShowHelpNotification | O texto de ajuda no canto superior esquerdo |
Bridge.Client.GetPlayerData, IsPlayerLoaded | Dados do jogador, usados pelas verificações Has Job e Is Night/Day |
Bridge.Client.TriggerServerCallback | Callbacks através do ESX ou QBCore |
Bridge.Client.RevivePlayer | Usado 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.
Exports
Seção intitulada “Exports”Dois exports de cliente permitem que outro recurso utilize o minijogo e a barra de progresso do Quest Creator.
| Export | Argumentos | O que faz |
|---|---|---|
StartMinigame | dificuldade (1–5), velocidade (1–5), rodadas, callback | Abre o minijogo estilo lockpick. O callback recebe true ou false |
StartProgressBar | duração em milissegundos, texto | Exibe a barra de progresso integrada |
Chame-os em mic_questcreator a partir de um script de cliente.
Eventos da comunidade e exportação
Seção intitulada “Eventos da comunidade e exportação”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.