AI Core
Dokumentacja APIEksporty klienckie ai-core

HUD

Ukrywaj i pokazuj każdy HUD, gdy twoje pełnoekranowe UI jest otwarte, sprawdzaj, czy HUD jest widoczny, i otwieraj własne ustawienia działającego HUD.

Gdy twój skrypt otwiera pełnoekranowe UI (sklep, telefon, tryb zdjęć), HUD powinien zejść z drogi. Te eksporty ukrywają i pokazują HUD, którego używa serwer: ai-hud albo zewnętrzny HUD znany ai-core (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). Bez znanego HUD ai-core zamiast tego ukrywa i pokazuje minimapę. qb-hud i ps-hud nie dają się ukryć przez inny skrypt: przy nich podąża tylko minimapa.

Ukrywanie działa na powodach. Każdy zasób ukrywa HUD pod wybraną przez siebie nazwą ("shop", "photo-mode"). HUD zostaje ukryty, dopóki dowolny zasób ma ustawiony co najmniej jeden powód, więc dwa ekrany otwarte naraz nigdy ze sobą nie walczą: HUD wraca dopiero po zamknięciu obu. Powody należą do zasobu, który je ustawił, i są usuwane, gdy się zatrzymuje.

HideHud

Ukrywa każdy HUD (i minimapę, gdy nie działa żaden znany HUD) pod powodem twojego zasobu. Wywołaj to, gdy otwiera się twoje pełnoekranowe UI.

Strona: Klient · Czeka: nie

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

Parametry

Prop

Type

Zwraca

Nic. reason, który nie jest stringiem, jest ignorowany.

Przykład

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

export function openShop(): void {
  hud.hide("shop"); // to samo co 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);
});

Każde HideHud potrzebuje swojego ShowHud z tym samym powodem. ai-core sprząta po zasobie, który się zatrzymuje, ale nie po takim, który dalej działa i zapomina wywołać ShowHud: wtedy HUD zostaje ukryty dla tego gracza.

ShowHud

Czyści jeden powód ukrycia twojego zasobu. HUD wraca, gdy żaden zasób nie ma już powodu.

Strona: Klient · Czeka: nie

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

Parametry

Prop

Type

Zwraca

Nic.

Przykład

Zobacz przykład HideHud.

IsHudVisible

Mówi, czy HUD jest teraz widoczny, czyli czy żaden zasób nie ma ustawionego powodu ukrycia. Zasób HUD używa tego przy starcie; potem śledzi klienckie zdarzenie ai-core:client:hudVisible.

Strona: Klient · Czeka: nie

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

Parametry

Brak.

Zwraca

boolean: true, gdy nie ma ustawionego powodu ukrycia, false, dopóki jest co najmniej jeden.

Przykład

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

// Własny HUD: zacznij we właściwym stanie, potem śledź każdą zmianę.
function setVisible(visible: boolean): void {
  SendNUIMessage({ action: "visible", data: visible });
}

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

OpenHudSettings

Otwiera własny ekran ustawień działającego HUD (na przykład /hud z ai-hud lub tgiann-lumihud). Używa tego pozycja HUD w menu radialnym; może każdy skrypt.

Strona: Klient · Czeka: nie

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

Parametry

Brak.

Zwraca

boolean: true, gdy działający HUD ma ekran ustawień i został poproszony o jego otwarcie. false, gdy nie działa żaden znany HUD albo działający nie ma ekranu ustawień.

Przykład

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

Mówi, czy działający HUD ma ekran ustawień, więc możesz pokazać lub ukryć przycisk "Ustawienia HUD".

Strona: Klient · Czeka: nie

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

Parametry

Brak.

Zwraca

boolean: true, gdy działa znany HUD i ma ekran ustawień, w przeciwnym razie false.

Przykład

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

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

// Element radialny widoczny tylko wtedy, gdy HUD ma ustawienia do otwarcia.
radial.add({
  id: "myscript_hud",
  label: "HUD",
  icon: "sliders",
  canShow: () => core.HasHudSettings(),
  onPressed: () => void core.OpenHudSettings(),
});

Na tej stronie