AI Core
API-ReferenzAI Core: Server-Exports

Medizin

Spieler wiederbeleben und heilen und prüfen, ob ein Spieler am Boden ist, über das Tod-Skript, das der Server nutzt.

Tode und Wiederbelebungen laufen über ai-core, nie über die eigenen Exports oder State Bags eines Tod-Skripts (ai-death eingeschlossen). ai-core leitet jeden Aufruf an das erste laufende Tod-Skript weiter: ai-death, qbx_medical, ars_ambulancejob, qb-ambulancejob, esx_ambulancejob und die anderen aus der Kompatibilitätsliste. Läuft keines, zählt niemand als am Boden, und nichts kann wiederbelebt werden.

„Am Boden“ bedeutet tot oder im Last Stand, so wie das Tod-Skript es sieht. Tod-Skripte halten einen Ped am Boden am Leben, nutze also nie das Spiel-Native IsEntityDead, um zu fragen, ob ein Spieler am Boden ist.

Um zu reagieren, wenn ein Spieler stirbt, höre auf das Server-Event ai-core:playerDied (src, killer, weaponHash) von ai-core, statt die Gesundheit zu prüfen. Siehe Events und Zustand.

GetMedicalSystem

Der Ressourcenname des Tod-Skripts, an das ai-core weiterleitet.

Seite: Server · Wartet: nein · Lib: medical.provider()

Signature
GetMedicalSystem(): string | null
Lua
local system = exports['ai-core']:GetMedicalSystem() -- String oder nil

Parameter

Keine.

Rückgabe

string | null: der Ressourcenname des Tod-Skripts. null, wenn keines läuft.

Beispiel

import { addCommand, resourceExport } from "@aicore-fivem/lib/server";

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

addCommand("deathsystem", { help: "Shows the death script in use", restricted: true }, () => {
  console.log(core.GetMedicalSystem() ?? "none: revive and heal do nothing");
});

RevivePlayer

Bringt einen Spieler am Boden dort wieder auf die Beine, wo er liegt.

Seite: Server · Wartet: nein · Lib: medical.revive

Signature
RevivePlayer(source: number): boolean
Lua
local revived = exports['ai-core']:RevivePlayer(source)

Parameter

Prop

Type

Rückgabe

boolean: true, wenn der Spieler am Boden war und das Tod-Skript ihn wiederbelebt hat. false, wenn der Spieler nicht am Boden war, nicht online ist, kein Tod-Skript läuft oder es fehlgeschlagen ist.

Beispiel

import { onClientCallback, coordsOf, isNear, progressFor, resourceExport } from "@aicore-fivem/lib/server";
import { fail, oneArg, readId } from "@aicore-fivem/lib/shared";
import { Locale } from "common";

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

// Ein Sanitäter belebt einen Spieler am Boden neben sich mit einem Medkit wieder.
onClientCallback("myscript:revive", { args: oneArg(readId), lock: true }, async (source, target) => {
  if (core.GetDutyJob(source) !== "ambulance") return fail("NOT_EMS");
  if (target === source || !isNear(target, coordsOf(source), 2)) return fail("TOO_FAR");
  if (!core.IsPlayerDead(target)) return fail("NOT_DOWN");
  if (!(await progressFor(source, { label: Locale("REVIVING"), duration: 10000 }))) return fail("CANCELLED");
  if (!core.RemoveItem(source, "medkit")) return fail("NO_MEDKIT");
  core.RevivePlayer(target);
  core.RefillNeeds(target);
  return { ok: true };
});

HealPlayer

Gibt einem Spieler, der nicht am Boden ist, volle Gesundheit.

Seite: Server · Wartet: nein · Lib: medical.heal

Signature
HealPlayer(source: number): boolean
Lua
local ok = exports['ai-core']:HealPlayer(source)

Parameter

Prop

Type

Rückgabe

boolean: true, wenn die Heilung an das Tod-Skript übergeben wurde. false, wenn der Spieler nicht online ist, kein Tod-Skript läuft oder es fehlgeschlagen ist. Ein Spieler am Boden braucht RevivePlayer; was ein Tod-Skript mit einer Heilung eines Spielers am Boden macht, entscheidet es selbst.

Beispiel

import { onClientCallback, resourceExport, near } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";

const core = resourceExport("ai-core");
const CHECK_IN = { x: 308.4, y: -595.3, z: 43.3 };

// Anmeldung im Krankenhaus: bezahlen und verarztet werden.
onClientCallback("myscript:checkIn", { guards: [near(CHECK_IN, 2)], lock: true }, (source) => {
  if (core.IsPlayerDead(source)) return fail("IS_DOWN");
  if (!core.RemoveMoney(source, "bank", 250, "hospital")) return fail("NOT_ENOUGH_MONEY");
  core.HealPlayer(source);
  return { ok: true };
});

IsPlayerDead

Ob ein Spieler im laufenden Tod-Skript am Boden ist (tot oder im Last Stand).

Seite: Server · Wartet: nein · Lib: medical.isDead (Server); auf dem Client liest medical.isDead() der Lib den Zustand des lokalen Spielers ohne Aufruf

Signature
IsPlayerDead(source: number): boolean
Lua
local down = exports['ai-core']:IsPlayerDead(source)

Parameter

Prop

Type

Rückgabe

boolean: true, wenn der Spieler am Boden ist. false, wenn er auf den Beinen ist, nicht online ist oder kein Tod-Skript läuft.

Beispiel

import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";

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

// Ein Spieler am Boden kann das Menü des Handyladens nicht öffnen.
onClientCallback("myscript:openShop", (source) =>
  core.IsPlayerDead(source) ? fail("IS_DOWN") : { ok: true },
);

Auf dieser Seite