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.
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
dispatch.alert(alert: DispatchAlert): booleanlocal 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
prison.jail(source: number, minutes: number, by?: number): booleanlocal 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
prison.release(source: number): booleanlocal 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
prison.timeLeft(source: number): numberlocal 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
mdt.record(record: MdtRecord): booleanlocal 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
mdt.provider(): string | nulllocal 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
ems.available(jobs: string[]): numberlocal 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
ems.distress(source: number, call: DistressCall): booleanlocal 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
ems.provider(): string | nulllocal 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
medical.revive(source: number): booleanZwraca 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
medical.heal(source: number): booleanZwraca true, gdy wyleczono, false, gdy nie działa żaden skrypt śmierci.
medical.heal(source);medical.isDead
Czy gracz jest powalony.
Strona: Serwer · Czeka: nie
medical.isDead(source: number): booleanZwraca 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
medical.provider(): string | nullZwraca 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
stress.gain(source: number, amount: number): booleanlocal 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 strzelaniniestress.relieve
Zabiera punkty stresu.
Strona: Serwer · Czeka: nie
stress.relieve(source: number, amount: number): booleanlocal 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
stress.provider(): string | nulllocal 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
needs.refill(source: number): booleanBrak 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
definitions.job(name: string): JobDefinition | nullBrak 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
definitions.gang(name: string): GangDefinition | nullBrak 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
isPrimeTime(job?: string): booleanBrak 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");