ai-lib
Die gemeinsame Spieler-UI, die jedes Skript nutzt (Benachrichtigungen, Fortschrittsbalken, Hinweise, Menüs, Eingabedialoge, Minispiele), und die AI-Core-Helfer für Lua- und JavaScript-Ressourcen.
ai-lib erfüllt zwei Aufgaben:
- Die Spieler-UI, die sich alle Skripte teilen. Benachrichtigungskarten, der Fortschrittsbalken und seine Abbruchtaste, die Hinweise rechts auf dem Bildschirm und die Interaktionstaste, Menüs, Eingabedialoge sowie die Minispiele Schlossknacken und Geschicklichkeitstest. Jedes
ai-*-Skript, die Brücke von AI Core (ESX- und QB-Skripte) und deine eigenen Skripte zeichnen darüber, sodass der ganze Server gleich aussieht. - Die AI-Core-Helfer für andere Ressourcen. Eine Lua-Ressource fügt ihrem Manifest eine Zeile hinzu und bekommt
aiLib.notify,aiLib.Points,aiLib.addCommand,aiLib.progressund den Rest. Reine JavaScript-Ressourcen laden seine Bundles. So nutzen Lua-Skripte AI Core genauso wie TypeScript-Skripte.
Die UI läuft ohne ai-core, du kannst ai-lib also allein nutzen. Die Helfer, die Spieler, Geld oder Items lesen, brauchen ai-core.
Was es im Spiel macht
- Benachrichtigungen. Karten in vier Arten (Erfolg, Fehler, Info, Warnung), standardmäßig 4 Sekunden.
- Fortschrittsbalken. Ein Balken für jedes Skript. Der Spieler bricht eine abbrechbare Aktion mit der Rücktaste ab.
- Hinweise. Boxen „Drücke E, um ...“ rechts oder schwebend über einem Weltpunkt (einer Tür). Eine Interaktionstaste (E) für jedes Skript; der neueste Hinweis liegt oben.
- Menüs und Eingabedialoge. Listen mit Symbolen, Untermenüs (Escape geht zurück, Escape halten schließt), Schalter und Formulare mit Text- und Zahlenfeldern.
- Minispiele. Ein Schlossknacker (den Dietrich bewegen, das Schloss drehen) und ein Geschicklichkeitstest (auf dem Grün drücken).
- Immer im Vordergrund. Menüs und Benachrichtigungen erscheinen über jedem anderen Bildschirm, auch über dem Charakterbildschirm.
Installation
Das txAdmin-Rezept von AI Core installiert es. Von Hand: Lege den Ordner in resources/[ai]/ und füge ensure ai-lib in der server.cfg ein, nach ensure ai-core, wenn du AI Core nutzt. Es braucht OneSync. Es hat keine Datenbanktabelle.
Panel-Einstellungen
ai-lib hat keinen eigenen Tab. Zwei Einstellungen im Tab General von AI Core ändern es:
| Einstellung (Tab General) | Was sie ändert | Standard |
|---|---|---|
| Karte Notifications, Notification script | Wo Benachrichtigungskarten erscheinen: die eigenen Karten von ai-lib oder ein anderes Benachrichtigungsskript, das du installiert hast. Wenn dieses Skript stoppt, kommen die Karten von ai-lib zurück. Hinweise bleiben immer die von ai-lib. | ai-lib |
| Karte Interaction, Interaction style | Prompt and key (die Hinweise von ai-lib) oder Target eye (ein Target-Skript wie ai-target). | Prompt and key |
Befehle
Keine.
Tastenbelegungen
| Standardtaste | Was sie macht | Name in den GTA-Einstellungen |
|---|---|---|
| E | Benutzt den obersten Hinweis (oder den fokussierten Target-Marker) | Interact with the prompt on screen |
| Rücktaste | Bricht die laufende Aktion ab (einen Fortschrittsbalken, der das erlaubt) | Cancel the running action |
Ändere die Standardtaste für alle im Panel-Tab Keybinds; jeder Spieler kann seine eigene in den Tasteneinstellungen von GTA ändern.
Zusammenspiel mit anderen Skripten
- UI von ESX und QB. Die Brücke von AI Core zeichnet
esx_context,esx_textui,esx_notify,esx_progressbar,esx_menu_*,qb-menu,qb-inputundprogressbarmit den Menüs, Hinweisen, Karten und dem Balken von ai-lib, sodass diese Skripte wie der Rest des Servers aussehen. - Andere Benachrichtigungsskripte können die Karten übernehmen (Tab General, siehe oben).
Bekannte Grenzen
- Die Namen der Menüsymbole sind eine feste Font-Awesome-Liste; ein unbekannter Name zeigt einen Punkt.
- Lua-Ressourcen prüfen ihre eigenen Zonen und Modellpunkte; JavaScript-Ressourcen übergeben ihre an ai-lib, das sie alle mit einem Timer prüft.
ai-mysql für Entwickler
Die oxmysql-Exports, die ai-mysql beantwortet, was jeder zurückgibt, die Promise-Formen, der Wrapper MySQL.lua und die Fehler-Events.
ai-lib für Entwickler
ai-lib in einer Lua- oder JavaScript-Ressource laden, wo die Lib-Referenz liegt, und die eigenen Client-Exports und Events von ai-lib.