Zum Inhalt springen

Anpassung

Fast alles an einer Quest — wer sie vergibt, was gesprochen wird, was als Nächstes passiert — wird direkt im Editor erstellt und in deiner Datenbank gespeichert. Die Dateien dienen lediglich den wenigen Dingen, die für jede Quest identisch sind.


DateiWas sie bestimmtOffen?
config.luaFramework, Sprache, wie Spieler mit NPCs interagieren, Dialogfarbe, /cancelquest, ScreenshotsJa
bridge/bridge_server.luaGeld, Items, Spielerdaten, Callbacks und die BerechtigungsprüfungJa
bridge/bridge_client.luaBenachrichtigungen, Hilfetexte, Spielerdaten und wie ein Spieler wiederbelebt wirdJa
locales/*.luaAlle Texte: Editor, Dialogfenster, Benachrichtigungen, Webhook-LogsJa
install.sqlDie acht Tabellen, einmalig importiertJa
web/Editor, Dialogfenster, Minispiel und Fortschrittsbalken (HTML, CSS, JS)Lesbar
client/, server/Die Quest-EngineVerschlüsselt (Escrow)
client/game_data/*.luaDie Listen hinter den Auswahlmenüs: Peds, Fahrzeuge, Bones, Animationen, Partikel, Sounds, EffekteVerschlüsselt (Escrow)

OptionWas sie machtStandard
Config.FrameworkWelches Framework angesprochen wird: 'esx' oder 'qbcore'. Wird nicht automatisch erkannt. Nutze bei QBox 'qbcore' (Kompatibilitätsschicht)'esx'
Config.LocaleSprache des Editors, des Dialogfensters und der Benachrichtigungen. Siehe Sprachen'en'
Config.DebugIn der Datei vorhanden; in dieser Version werden damit keine zusätzlichen Ausgaben erzeugttrue
OptionWas sie machtStandard
Config.InteractionType'ox_target', 'qb-target' oder 'drawtext' (3D-Text und Taste)'ox_target'
Config.InteractionDistanceMaximaler Abstand in Metern, um mit einem NPC sprechen zu können2.5
Config.InteractionKeySteuerungstaste für 'drawtext' und den Node Interact in Area. 38 entspricht E38
Config.ThemeColorAkzentfarbe des Dialogfensters: blue, pink, yellow, red, green, purple, orange, cyan, white oder black"purple"
OptionWas sie machtStandard
Config.EnableCancelQuestRegistriert einen Chat-Befehl, mit dem Spieler ihre aktive Quest abbrechen könnentrue
Config.CancelQuestCommandName des Befehls ohne Slash"cancelquest"

Das Abbrechen löscht den gespeicherten Fortschritt des Spielers in dieser Quest und entfernt alle dafür gespawnten Einheiten.

OptionWas sie machtStandard
Config.ScreenshotBasicErlaubt dem Send Webhook-Node Screenshots anzuhängen, wenn das Kontrollkästchen aktiv ist. Benötigt screenshot-basictrue

BefehlWer ihn nutzen darfWas er bewirkt
/questcreatorJeder mit der ACE-Permission mic_questcreator.openÖffnet den Quest & Event Creator
/cancelquestJeder Spieler, solange Config.EnableCancelQuest aktivBricht die aktive Quest ab. Umbenennbar über Config.CancelQuestCommand

Dieselbe Berechtigung sichert auch alle Aktionen ab, die der Editor speichert, löscht, importiert und exportiert — die Prüfung erfolgt serverseitig. Vergib sie per add_ace-Zeile an einen Identifier oder eine Gruppe. Die eigentliche Prüfung liegt in Bridge.Server.IsPlayerAllowed in bridge/bridge_server.lua, falls du sie an dein eigenes Admin-System anbinden möchtest.


Dreizehn Sprachdateien liegen in locales/: en, es, fr, de, it, pt, ru, ja, ko, zh-CN, ar, nl und cs. Setze Config.Locale auf den Dateinamen ohne .lua.

Neue Sprache hinzufügen:

  1. Kopiere locales/en.lua und benenne die Datei nach deinem Sprachcode, z. B. locales/pl.lua.
  2. Ändere darin den Tabellennamen von 'en' zu deinem Code und übersetze den Text auf der rechten Seite. Ändere weder die linken Schlüssel noch enthaltene %s.
  3. Trage die Datei in fxmanifest.lua unter shared_scripts bei den anderen Sprachdateien oberhalb von config.lua ein.
  4. Setze Config.Locale auf deinen Code, führe refresh aus und starte neu.

Fehlt ein Schlüssel in deiner Datei, meldet das Spiel Translation [xx][key] does not exist — so siehst du genau, welche Zeile ergänzt werden muss.

NPC-Texte, Quest-Titel und individuelle Benachrichtigungen liegen nicht in den Sprachdateien — du gibst sie direkt im Editor in deiner Wunschsprache ein.


Zwei offene Dateien verbinden die Quest-Engine mit dem restlichen Server.

bridge/bridge_server.lua

FunktionVerwendungszweck
Bridge.Server.InitializeBindet fmLib und das ESX- bzw. QBCore-Objekt beim Start ein
Bridge.Server.RegisterServerCallbackRegistriert Callbacks über ESX oder QBCore
Bridge.Server.GetPlayer, GetPlayerParamsSpieler via fmLib sowie Identifier, Name und Job
Bridge.Server.GetMoney, AddMoney, RemoveMoneyGeldverwaltung via fmLib
Bridge.Server.GetItem, AddItem, RemoveItemItems via fmLib (für jedes von fmLib unterstützte Inventar)
Bridge.Server.IsPlayerAllowedZugriff auf den Editor. Prüft die ACE-Permission mic_questcreator.open

bridge/bridge_client.lua

FunktionVerwendungszweck
Bridge.Client.ShowNotificationJede Benachrichtigung. Passe den Inhalt an, um ein eigenes Benachrichtigungssystem zu nutzen
Bridge.Client.ShowHelpNotificationDer Hilfetext oben links
Bridge.Client.GetPlayerData, IsPlayerLoadedSpielerdaten, genutzt für die Prüfungen Has Job und Is Night/Day
Bridge.Client.TriggerServerCallbackCallbacks über ESX oder QBCore
Bridge.Client.RevivePlayerVom Todes-Handler genutzt. Löst esx_ambulancejob:revive bei ESX bzw. hospital:client:Revive bei QBCore aus, danach natives Wiederbeleben bei Bedarf

Anderes Mediziner-/Ambulance-Skript? Ändere das Event in Bridge.Client.RevivePlayer. Anderes Benachrichtigungssystem? Ändere Bridge.Client.ShowNotification. Behalte die Funktionsnamen bei — die Engine ruft sie namentlich auf.


Zwei Client-Exports erlauben es anderen Ressourcen, das Minispiel und den Fortschrittsbalken des Quest Creators mitzunutzen.

ExportArgumenteWas er bewirkt
StartMinigamedifficulty (1–5), speed (1–5), rounds, callbackÖffnet das Lockpick-Minispiel. Der Callback empfängt true oder false
StartProgressBarduration in Millisekunden, labelZeigt den integrierten Fortschrittsbalken an

Aufrufbar auf mic_questcreator aus jedem Client-Skript.


Community Events im Editor listet Events auf, die andere Serverbetreiber geteilt haben; der Import fügt sie deinen Events hinzu. Die Liste wird von GitHub bezogen; dein Server benötigt ausgehenden Internetzugriff.

Export Event verlangt Name, Beschreibung und Autor und speichert das Event als JSON-Datei im Ordner exports/ innerhalb der Ressource. Dieser Ordner ist im Auslieferungszustand nicht vorhanden — erstelle vorab einen leeren Ordner exports in mic_questcreator, da die Datei sonst als export_<name>.json im Hauptverzeichnis landet.