AI Core
API-Referenzai-core: Client-Exports

HUD

Jedes HUD aus- und einblenden, solange deine Vollbild-UI offen ist, lesen, ob HUDs sichtbar sind, und die eigenen Einstellungen des laufenden HUD öffnen.

Wenn dein Skript eine Vollbild-UI öffnet (einen Shop, ein Handy, einen Fotomodus), sollte das HUD aus dem Weg gehen. Diese Exports blenden das HUD aus und ein, das der Server nutzt: ai-hud oder ein HUD eines Drittanbieters, das ai-core kennt (tgiann-lumihud, tgiann-hudv2, tgiann-modern-hud, tgiann-statushud, jg-hud, 0r-hud-v3, codem-supreme-hud, Codem-BlackHUDV2, wais-hudv6, qb-hud, ps-hud). Ohne bekanntes HUD blendet ai-core stattdessen die Minikarte aus und ein. qb-hud und ps-hud können von einem anderen Skript nicht ausgeblendet werden: Mit ihnen folgt nur die Minikarte.

Das Ausblenden arbeitet mit Gründen. Jede Ressource blendet das HUD unter einem Namen ihrer Wahl aus ("shop", "photo-mode"). HUDs bleiben ausgeblendet, solange mindestens ein Grund von irgendeiner Ressource gesetzt ist, sodass zwei gleichzeitig offene Bildschirme nie gegeneinander arbeiten: Das HUD kommt erst zurück, wenn beide geschlossen sind. Gründe gehören der Ressource, die sie gesetzt hat, und werden entfernt, wenn sie stoppt.

HideHud

Blendet jedes HUD (und die Minikarte, wenn kein bekanntes HUD läuft) unter einem Grund deiner Ressource aus. Rufe es auf, wenn deine Vollbild-UI sich öffnet.

Seite: Client · Wartet: nein

Signature
HideHud(reason: string): void
Lua
exports['ai-core']:HideHud(reason) -- oder aiLib.hud.hide(reason)

Parameter

Prop

Type

Rückgabe

Nichts. Ein reason, der kein String ist, wird ignoriert.

Beispiel

resource/client/shop.ts
import { hud } from "@aicore-fivem/lib/client";

export function openShop(): void {
  hud.hide("shop"); // dasselbe wie resourceExport("ai-core").HideHud("shop")
  SetNuiFocus(true, true);
  SendNUIMessage({ action: "open" });
}

RegisterNuiCallback("close", (_data: unknown, cb: (r: unknown) => void) => {
  SetNuiFocus(false, false);
  hud.show("shop");
  cb(true);
});

Jedes HideHud braucht sein ShowHud mit demselben Grund. ai-core räumt hinter einer Ressource auf, die stoppt, aber nicht hinter einer, die weiterläuft und vergisst, ShowHud aufzurufen: Das HUD bleibt dann für diesen Spieler ausgeblendet.

ShowHud

Löscht einen Ausblende-Grund deiner Ressource. HUDs kommen zurück, wenn keine Ressource mehr einen Grund hat.

Seite: Client · Wartet: nein

Signature
ShowHud(reason: string): void
Lua
exports['ai-core']:ShowHud(reason) -- oder aiLib.hud.show(reason)

Parameter

Prop

Type

Rückgabe

Nichts.

Beispiel

Siehe das Beispiel zu HideHud.

IsHudVisible

Sagt, ob HUDs gerade sichtbar sind, also keine Ressource einen Ausblende-Grund gesetzt hat. Eine HUD-Ressource nutzt es beim Start; danach folgt sie dem Client-Event ai-core:client:hudVisible.

Seite: Client · Wartet: nein

Signature
IsHudVisible(): boolean
Lua
local visible = exports['ai-core']:IsHudVisible() -- oder aiLib.hud.visible()

Parameter

Keine.

Rückgabe

boolean: true, wenn kein Ausblende-Grund gesetzt ist, false, solange mindestens einer gesetzt ist.

Beispiel

resource/client/hud.ts
import { hud } from "@aicore-fivem/lib/client";

// Ein eigenes HUD: im richtigen Zustand starten, dann jeder Änderung folgen.
function setVisible(visible: boolean): void {
  SendNUIMessage({ action: "visible", data: visible });
}

setVisible(hud.visible);
hud.onChange(setVisible);

OpenHudSettings

Öffnet den eigenen Einstellungsbildschirm des laufenden HUD (zum Beispiel /hud von ai-hud oder tgiann-lumihud). Der HUD-Eintrag des Radialmenüs nutzt es; jedes Skript kann es nutzen.

Seite: Client · Wartet: nein

Signature
OpenHudSettings(): boolean
Lua
local opened = exports['ai-core']:OpenHudSettings() -- boolean

Parameter

Keine.

Rückgabe

boolean: true, wenn das laufende HUD einen Einstellungsbildschirm hat und dieser zum Öffnen aufgefordert wurde. false, wenn kein bekanntes HUD läuft oder das laufende keinen Einstellungsbildschirm hat.

Beispiel

resource/client/index.ts
import { notify, resourceExport } from "@aicore-fivem/lib/client";
import { Locale } from "common";

const core = resourceExport("ai-core");

RegisterCommand(
  "hudsettings",
  () => {
    if (!core.OpenHudSettings()) notify(Locale("NO_HUD_SETTINGS"), "error");
  },
  false,
);

HasHudSettings

Sagt, ob das laufende HUD einen Einstellungsbildschirm hat, damit du einen Button „HUD-Einstellungen“ ein- oder ausblenden kannst.

Seite: Client · Wartet: nein

Signature
HasHudSettings(): boolean
Lua
local has = exports['ai-core']:HasHudSettings() -- boolean

Parameter

Keine.

Rückgabe

boolean: true, wenn ein bekanntes HUD läuft und es einen Einstellungsbildschirm hat, sonst false.

Beispiel

resource/client/menu.ts
import { radial, resourceExport } from "@aicore-fivem/lib/client";

const core = resourceExport("ai-core");

// Ein Radial-Eintrag, der nur erscheint, wenn das HUD Einstellungen zum Öffnen hat.
radial.add({
  id: "myscript_hud",
  label: "HUD",
  icon: "sliders",
  canShow: () => core.HasHudSettings(),
  onPressed: () => void core.OpenHudSettings(),
});

Auf dieser Seite