Jobs und Dienste
Polizeialarme, Gefängnis, MDT-Einträge, Sanitäter, Wiederbeleben und Heilen, Stress, Hunger und Durst, Job- und Gang-Definitionen, Prime Time.
import { dispatch, prison, mdt, ems, medical, stress, needs, definitions, isPrimeTime } from "@aicore-fivem/lib/server";Jedes Objekt hier läuft über eine der Ebenen von ai-core: Das Skript, das der Server für diese Aufgabe betreibt (ein Alarmsystem, ein Gefängnis, ein MDT, ein Death-Skript, ein HUD), antwortet. Dein Skript funktioniert weiter, wenn der Betreiber es austauscht. Solange kein solches Skript läuft, schlagen Aufrufe still fehl (false, 0, null).
dispatch
dispatch.alert
Sendet einen Alarm an die Polizei (oder einen anderen Job). Das Alarmsystem zeigt ihn den Mitgliedern von jobs im Dienst, standardmäßig den Polizei-Jobs.
Seite: Server · Wartet: nein
dispatch.alert(alert: DispatchAlert): booleanlocal ok = aiLib.dispatch.alert(alert)DispatchAlert
Prop
Type
Der Typ ist DispatchAlert.
Rückgabewert
boolean: true, wenn gesendet. false, wenn kein Alarmsystem läuft oder der Alarm ungültig ist.
Beispiel
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
Haftstrafen über ai-core, egal welches Gefängnis-Skript läuft.
prison.jail
Schickt einen geladenen Spieler ins Gefängnis.
Seite: Server · Wartet: nein
prison.jail(source: number, minutes: number, by?: number): booleanlocal ok = aiLib.prison.jail(source, minutes, by)Prop
Type
Rückgabewert: true, wenn eingesperrt, false, solange kein Gefängnis läuft.
if (!prison.jail(target, 15, officer)) return fail("NO_PRISON");prison.release
Lässt einen eingesperrten Spieler frei.
Seite: Server · Wartet: nein
prison.release(source: number): booleanlocal ok = aiLib.prison.release(source)Rückgabewert: true, wenn freigelassen, false, wenn nicht eingesperrt oder kein Gefängnis läuft.
prison.release(target);prison.timeLeft
Seite: Server · Wartet: nein
prison.timeLeft(source: number): numberlocal minutes = aiLib.prison.timeLeft(source)Rückgabewert: die verbleibenden Strafminuten, 0, wenn frei.
if (prison.timeLeft(source) > 0) return fail("IN_PRISON");mdt
Polizei-MDT-Einträge (Bußgelder, Haftbefehle, Festnahmen, Haft) über die MDT-Ebene von ai-core. Solange kein MDT läuft, wird nichts geschrieben.
mdt.record
Schreibt einen Eintrag ins Polizei-MDT.
Seite: Server · Wartet: nein
mdt.record(record: MdtRecord): booleanlocal ok = aiLib.mdt.record(record)MdtRecord
Prop
Type
Der Typ ist MdtRecord.
Rückgabewert: true, wenn geschrieben, false, wenn kein MDT läuft oder es keinen solchen Eintrag annimmt.
if (prison.jail(target, 20, officer)) mdt.record({ kind: "jail", target, by: officer, title: "Armed robbery", minutes: 20 });mdt.provider
Seite: Server · Wartet: nein
mdt.provider(): string | nulllocal name = aiLib.mdt.provider()Rückgabewert: das MDT, an das Einträge gehen, oder null.
if (!mdt.provider()) console.log("no MDT: records are skipped");ems
Sanitäter über die EMS-Ebene von ai-core: die eigene Zählung und die Notrufe eines EMS-Skripts, sonst die Dienstzählungen und Alarme von ai-core.
ems.available
Wie viele Sanitäter frei sind, um einen Einsatz zu übernehmen.
Seite: Server · Wartet: nein
ems.available(jobs: string[]): numberlocal count = aiLib.ems.available(jobs)Prop
Type
Rückgabewert: die Anzahl der Sanitäter im Dienst in jobs, ohne beschäftigte, wenn ein Dispatch-Skript sie kennt.
// Spieler nur dann im Krankenhaus respawnen lassen, wenn kein Sanitäter kommen kann.
const canRespawn = ems.available(["ambulance"]) === 0;ems.distress
Sendet einen Notruf für einen Spieler an die Sanitäter von call.jobs.
Seite: Server · Wartet: nein
ems.distress(source: number, call: DistressCall): booleanlocal ok = aiLib.ems.distress(source, call)Prop
Type
Der Typ ist DistressCall.
Rückgabewert: true, wenn etwas den Notruf angenommen hat, sonst false.
if (!ems.distress(source, { jobs: ["ambulance"], message: "Unconscious" })) return fail("NO_MEDICS");ems.provider
Seite: Server · Wartet: nein
ems.provider(): string | nulllocal name = aiLib.ems.provider()Rückgabewert: die EMS-Quelle, die die Ebene nutzt, "ai-core" für die eigenen Dienstzählungen.
console.log(`medics through ${ems.provider()}`);medical
Wiederbeleben, Heilen und der Bewusstlos-Zustand über die Medical-Ebene von ai-core, egal welches Death- oder Ambulance-Skript läuft. Kein Lua-Zwilling: Rufe die Exports RevivePlayer, HealPlayer, IsPlayerDead von ai-core auf.
medical.revive
Bringt einen bewusstlosen Spieler dort wieder auf die Beine, wo er liegt.
Seite: Server · Wartet: nein
medical.revive(source: number): booleanRückgabewert: true, wenn wiederbelebt, false, wenn nicht bewusstlos oder kein Death-Skript läuft.
if (!medical.revive(target)) return fail("NOT_DOWN");medical.heal
Gibt einem Spieler, der nicht bewusstlos ist, volle Gesundheit.
Seite: Server · Wartet: nein
medical.heal(source: number): booleanRückgabewert: true, wenn geheilt, false, wenn kein Death-Skript läuft.
medical.heal(source);medical.isDead
Ob der Spieler bewusstlos ist.
Seite: Server · Wartet: nein
medical.isDead(source: number): booleanRückgabewert: true, wenn bewusstlos; false ohne Death-Skript. Nutze es, statt die Gesundheit des Peds zu lesen.
if (medical.isDead(source)) return fail("YOU_ARE_DOWN");medical.provider
Seite: Server · Wartet: nein
medical.provider(): string | nullRückgabewert: das Death-Skript, das antwortet (ai-death...), oder null, wenn keins läuft.
console.log(`deaths through ${medical.provider() ?? "nothing"}`);stress
Der Stress der Spieler (0 bis 100) über die Stress-Ebene von ai-core, egal welches HUD ihn führt.
stress.gain
Fügt Stresspunkte hinzu.
Seite: Server · Wartet: nein
stress.gain(source: number, amount: number): booleanlocal ok = aiLib.stress.gain(source, amount)Prop
Type
Rückgabewert: true, wenn hinzugefügt, false, wenn kein HUD mit Stress läuft.
stress.gain(source, 5); // nach einer Schießereistress.relieve
Nimmt Stresspunkte weg.
Seite: Server · Wartet: nein
stress.relieve(source: number, amount: number): booleanlocal ok = aiLib.stress.relieve(source, amount)Rückgabewert: true, wenn weggenommen, false, wenn kein HUD mit Stress läuft oder amount 0 oder weniger ist.
inventory.registerUsableItem("cigarette", (source) => {
stress.relieve(source, 10);
});stress.provider
Seite: Server · Wartet: nein
stress.provider(): string | nulllocal name = aiLib.stress.provider()Rückgabewert: das HUD, das den Stress führt, oder null.
if (!stress.provider()) console.log("no HUD keeps stress");needs
needs.refill
Füllt Hunger und Durst ganz auf (Admin-Revive, Krankenhaus), über das HUD, das sie führt, oder ohne eines über die Charakter-Metadaten von ai-core.
Seite: Server · Wartet: nein
needs.refill(source: number): booleanKein Lua-Zwilling: Rufe den Export RefillNeeds(source) von ai-core auf.
Rückgabewert: true, wenn aufgefüllt, false, wenn der Spieler keinen Charakter hat.
if (medical.revive(target)) needs.refill(target);Job- und Gang-Definitionen
definitions.job
Die Definition eines Jobs, wie sie im Panel von ai-core eingestellt ist. Jede wird einmal aus ai-core gelesen und behalten, bis das Panel sie ändert, daher ist ein Lesezugriff ein Nachschlagen im Speicher.
Seite: Server · Wartet: nein
definitions.job(name: string): JobDefinition | nullKein Lua-Zwilling: Rufe den Export GetJobDefinition(name) von ai-core auf.
Rückgabewert: JobDefinition (label, type, defaultDuty, listed?, grades), oder null, wenn es keinen solchen Job gibt.
const label = definitions.job("police")?.label ?? "police";definitions.gang
Seite: Server · Wartet: nein
definitions.gang(name: string): GangDefinition | nullKein Lua-Zwilling: Rufe den Export GetGangDefinition(name) von ai-core auf.
Rückgabewert: GangDefinition (label, grades), oder null.
const gang = definitions.gang("ballas");
if (!gang) return fail("UNKNOWN_GANG");Prime Time
isPrimeTime
Ob für einen Job gerade Prime Time ist, nach der Prime-Time-Einstellung von ai-core. Die Uhrzeiten kommen von tgiann-policealert, solange es läuft, sonst aus den Uhrzeiten im Panel von ai-core.
Seite: Server · Wartet: nein
isPrimeTime(job?: string): booleanKein Lua-Zwilling: Rufe den Export IsPrimeTime(job) von ai-core auf.
Prop
Type
Rückgabewert: true während der Prime Time.
if (!isPrimeTime("police")) return fail("BANK_CLOSED_FOR_HEISTS");Geld und Banking
money.transfer zwischen zwei Konten, das Banking-Skript über ai-core und Rechnungen über das jeweils laufende Rechnungs-Skript.
Welt
Zeit und Wetter über das jeweils laufende Wetter-Skript, Routing-Buckets aus dem Allokator von ai-core, Türschlösser und die Spawnpunkte gespeicherter Charaktere.