AI Core
Dokumentacja APILib: serwer

Prace i służby

Alerty policyjne, więzienie, rekordy MDT, medycy, wskrzeszanie i leczenie, stres, głód i pragnienie, definicje prac i gangów, prime time.

TypeScript
import { dispatch, prison, mdt, ems, medical, stress, needs, definitions, isPrimeTime } from "@aicore-fivem/lib/server";

Każdy obiekt tutaj przechodzi przez jedną z warstw ai-core: odpowiada skrypt, którego serwer używa do tego zadania (system alertów, więzienie, MDT, skrypt śmierci, HUD). Twój skrypt działa dalej, gdy właściciel go wymieni. Dopóki taki skrypt nie działa, wywołania po cichu się nie udają (false, 0, null).

dispatch

dispatch.alert

Wysyła alert policyjny (albo innej pracy). System alertów pokazuje go członkom jobs na służbie, domyślnie pracom policyjnym.

Strona: Serwer · Czeka: nie

Sygnatura
dispatch.alert(alert: DispatchAlert): boolean
Lua
local ok = aiLib.dispatch.alert(alert)

DispatchAlert

Prop

Type

Typ to DispatchAlert.

Zwracana wartość

boolean: true, gdy wysłano. false, gdy nie działa żaden system alertów albo alert jest nieprawidłowy.

Przykład

import { dispatch, coordsOf, createLocale } from "@aicore-fivem/lib/server";

const Locale = createLocale();

function storeRobbed(source: number, store: string) {
  dispatch.alert({
    code: "10-90",
    title: Locale("ALERT_STORE_ROBBERY"),
    message: store,
    coords: coordsOf(source),
    source,
    icon: "store",
    priority: "high",
  });
}

prison

Wyroki więzienia przez ai-core, niezależnie od tego, jaki skrypt więzienia działa.

prison.jail

Wysyła wczytanego gracza do więzienia.

Strona: Serwer · Czeka: nie

Sygnatura
prison.jail(source: number, minutes: number, by?: number): boolean
Lua
local ok = aiLib.prison.jail(source, minutes, by)

Prop

Type

Zwraca true, gdy uwięziono, false, dopóki nie działa żadne więzienie.

if (!prison.jail(target, 15, officer)) return fail("NO_PRISON");

prison.release

Wypuszcza uwięzionego gracza.

Strona: Serwer · Czeka: nie

Sygnatura
prison.release(source: number): boolean
Lua
local ok = aiLib.prison.release(source)

Zwraca true, gdy wypuszczono, false, gdy nie jest uwięziony albo nie działa żadne więzienie.

prison.release(target);

prison.timeLeft

Strona: Serwer · Czeka: nie

Sygnatura
prison.timeLeft(source: number): number
Lua
local minutes = aiLib.prison.timeLeft(source)

Zwraca minuty pozostałego wyroku, 0, gdy jest wolny.

if (prison.timeLeft(source) > 0) return fail("IN_PRISON");

mdt

Rekordy policyjnego MDT (mandaty, nakazy, aresztowania, więzienie) przez warstwę MDT ai-core. Nic nie jest zapisywane, dopóki nie działa żadne MDT.

mdt.record

Zapisuje rekord w policyjnym MDT.

Strona: Serwer · Czeka: nie

Sygnatura
mdt.record(record: MdtRecord): boolean
Lua
local ok = aiLib.mdt.record(record)

MdtRecord

Prop

Type

Typ to MdtRecord.

Zwraca true, gdy zapisano, false, gdy nie działa żadne MDT albo nie przyjmuje takiego rekordu.

if (prison.jail(target, 20, officer)) mdt.record({ kind: "jail", target, by: officer, title: "Armed robbery", minutes: 20 });

mdt.provider

Strona: Serwer · Czeka: nie

Sygnatura
mdt.provider(): string | null
Lua
local name = aiLib.mdt.provider()

Zwraca MDT, do którego trafiają rekordy, albo null.

if (!mdt.provider()) console.log("no MDT: records are skipped");

ems

Medycy przez warstwę EMS ai-core: własne liczenie i wezwania pomocy skryptu EMS, a w przeciwnym razie liczby służby i alerty ai-core.

ems.available

Ilu medyków może przyjąć wezwanie.

Strona: Serwer · Czeka: nie

Sygnatura
ems.available(jobs: string[]): number
Lua
local count = aiLib.ems.available(jobs)

Prop

Type

Zwraca liczbę medyków na służbie w jobs, bez zajętych, gdy skrypt dispatchu ich zna.

// Pozwól graczom odrodzić się w szpitalu tylko wtedy, gdy żaden medyk nie może przyjechać.
const canRespawn = ems.available(["ambulance"]) === 0;

ems.distress

Wysyła wezwanie pomocy dla gracza do medyków z call.jobs.

Strona: Serwer · Czeka: nie

Sygnatura
ems.distress(source: number, call: DistressCall): boolean
Lua
local ok = aiLib.ems.distress(source, call)

Prop

Type

Typ to DistressCall.

Zwraca true, gdy coś przyjęło wezwanie, w przeciwnym razie false.

if (!ems.distress(source, { jobs: ["ambulance"], message: "Unconscious" })) return fail("NO_MEDICS");

ems.provider

Strona: Serwer · Czeka: nie

Sygnatura
ems.provider(): string | null
Lua
local name = aiLib.ems.provider()

Zwraca źródło EMS, którego używa warstwa, "ai-core" dla własnych liczb służby.

console.log(`medics through ${ems.provider()}`);

medical

Wskrzeszanie, leczenie i stan powalenia przez warstwę medyczną ai-core, niezależnie od tego, jaki skrypt śmierci albo karetki działa. Brak odpowiednika w Lua: wywołaj eksporty ai-core RevivePlayer, HealPlayer, IsPlayerDead.

medical.revive

Stawia powalonego gracza na nogi tam, gdzie leży.

Strona: Serwer · Czeka: nie

Sygnatura
medical.revive(source: number): boolean

Zwraca true, gdy wskrzeszono, false, gdy nie jest powalony albo nie działa żaden skrypt śmierci.

if (!medical.revive(target)) return fail("NOT_DOWN");

medical.heal

Daje pełne zdrowie graczowi, który nie jest powalony.

Strona: Serwer · Czeka: nie

Sygnatura
medical.heal(source: number): boolean

Zwraca true, gdy wyleczono, false, gdy nie działa żaden skrypt śmierci.

medical.heal(source);

medical.isDead

Czy gracz jest powalony.

Strona: Serwer · Czeka: nie

Sygnatura
medical.isDead(source: number): boolean

Zwraca true, gdy jest powalony; false bez skryptu śmierci. Używaj go zamiast czytać zdrowie peda.

if (medical.isDead(source)) return fail("YOU_ARE_DOWN");

medical.provider

Strona: Serwer · Czeka: nie

Sygnatura
medical.provider(): string | null

Zwraca skrypt śmierci, który odpowiada (ai-death...), albo null, gdy żaden nie działa.

console.log(`deaths through ${medical.provider() ?? "nothing"}`);

stress

Stres graczy (od 0 do 100) przez warstwę stresu ai-core, niezależnie od tego, jaki HUD go prowadzi.

stress.gain

Dodaje punkty stresu.

Strona: Serwer · Czeka: nie

Sygnatura
stress.gain(source: number, amount: number): boolean
Lua
local ok = aiLib.stress.gain(source, amount)

Prop

Type

Zwraca true, gdy dodano, false, gdy nie działa żaden HUD ze stresem.

stress.gain(source, 5); // po strzelaninie

stress.relieve

Zabiera punkty stresu.

Strona: Serwer · Czeka: nie

Sygnatura
stress.relieve(source: number, amount: number): boolean
Lua
local ok = aiLib.stress.relieve(source, amount)

Zwraca true, gdy zabrano, false, gdy nie działa żaden HUD ze stresem albo amount wynosi 0 lub mniej.

inventory.registerUsableItem("cigarette", (source) => {
  stress.relieve(source, 10);
});

stress.provider

Strona: Serwer · Czeka: nie

Sygnatura
stress.provider(): string | null
Lua
local name = aiLib.stress.provider()

Zwraca HUD, który prowadzi stres, albo null.

if (!stress.provider()) console.log("no HUD keeps stress");

needs

needs.refill

Wypełnia głód i pragnienie do pełna (wskrzeszenie przez administratora, szpital) przez HUD, który je prowadzi, a bez niego przez metadane postaci w ai-core.

Strona: Serwer · Czeka: nie

Sygnatura
needs.refill(source: number): boolean

Brak odpowiednika w Lua: wywołaj eksport ai-core RefillNeeds(source).

Zwraca true, gdy wypełniono, false, gdy gracz nie ma postaci.

if (medical.revive(target)) needs.refill(target);

Definicje prac i gangów

definitions.job

Definicja pracy ustawiona w panelu ai-core. Każda jest czytana raz z ai-core i trzymana, dopóki panel jej nie zmieni, więc odczyt to wyszukanie w pamięci.

Strona: Serwer · Czeka: nie

Sygnatura
definitions.job(name: string): JobDefinition | null

Brak odpowiednika w Lua: wywołaj eksport ai-core GetJobDefinition(name).

Zwraca JobDefinition (label, type, defaultDuty, listed?, grades) albo null, gdy taka praca nie istnieje.

const label = definitions.job("police")?.label ?? "police";

definitions.gang

Strona: Serwer · Czeka: nie

Sygnatura
definitions.gang(name: string): GangDefinition | null

Brak odpowiednika w Lua: wywołaj eksport ai-core GetGangDefinition(name).

Zwraca GangDefinition (label, grades) albo null.

const gang = definitions.gang("ballas");
if (!gang) return fail("UNKNOWN_GANG");

Prime time

isPrimeTime

Czy dla pracy trwa prime time, według ustawienia prime time w ai-core. Godziny pochodzą z tgiann-policealert, gdy działa, a w przeciwnym razie z godzin ustawionych w panelu ai-core.

Strona: Serwer · Czeka: nie

Sygnatura
isPrimeTime(job?: string): boolean

Brak odpowiednika w Lua: wywołaj eksport ai-core IsPrimeTime(job).

Prop

Type

Zwraca true w czasie prime time.

if (!isPrimeTime("police")) return fail("BANK_CLOSED_FOR_HEISTS");

Na tej stronie