EMS
Ilu medyków może przyjąć wezwanie i wezwania pomocy powalonych graczy, przez działający skrypt EMS albo samo ai-core.
Warstwa EMS odpowiada każdemu skryptowi na dwa pytania: "ilu medyków może przyjąć wezwanie?" i "wyślij medykom wezwanie pomocy". ai-core pyta źródło EMS wybrane ustawieniem EMS source w panelu albo pierwszy działający skrypt EMS. Na to, na co ten skrypt nie umie odpowiedzieć, ai-core odpowiada sam: wolni medycy z własnych liczników służby, a wezwanie pomocy jako alert o wysokim priorytecie do prac przez warstwę dispatchu.
GetEmsSystem
Używane źródło EMS.
Strona: Serwer · Czeka: nie · Lib: ems.provider()
GetEmsSystem(): string | nulllocal system = exports['ai-core']:GetEmsSystem() -- 'ai-core' albo nazwa skryptuParametry
Brak.
Zwraca
string | null: nazwa zasobu skryptu EMS albo "ai-core", gdy odpowiada własna część ai-core (nie działa żaden skrypt EMS). Własna część ai-core jest zawsze dostępna, więc w praktyce to nigdy nie jest null.
Przykład
import { addCommand, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
addCommand("emssystem", { help: "Shows the EMS source", restricted: true }, () => {
console.log(core.GetEmsSystem());
});GetAvailableMedics
Ilu medyków w podanych pracach może teraz przyjąć wezwanie. Skrypt EMS z własnym dispatchem pomija zajętych medyków; własna odpowiedź ai-core to wszyscy na służbie.
Strona: Serwer · Czeka: nie · Lib: ems.available
GetAvailableMedics(jobs: string[]): numberlocal medics = exports['ai-core']:GetAvailableMedics({ 'ambulance' })Parametry
Prop
Type
Zwraca
number: wolni medycy. 0, gdy nie ma żadnego, dla pustej listy albo wartości, która nie jest listą. Gdy skrypt EMS zawiedzie, odpowiada własny licznik służby ai-core.
Przykład
import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
const core = resourceExport("ai-core");
const EMS_JOBS = ["ambulance"];
// Przycisk "odrodzenie w szpitalu" działa tylko wtedy, gdy żaden medyk nie może przyjechać.
onClientCallback("myscript:respawn", (source) => {
if (!core.IsPlayerDead(source)) return fail("NOT_DOWN");
if (core.GetAvailableMedics(EMS_JOBS) > 0) return fail("MEDICS_AVAILABLE");
// ... przenieś gracza do szpitala i reanimuj
return { ok: true };
});SendDistress
Wysyła medykom wezwanie pomocy powalonego gracza. Przy skrypcie EMS, który przyjmuje wezwania, wezwanie trafia tam; w przeciwnym razie ai-core wysyła alert o wysokim priorytecie (kod 10-52, ikona apteczki, pozycja gracza) do członków jobs na służbie przez aktywny system alertów.
Strona: Serwer · Czeka: nie · Lib: ems.distress
SendDistress(source: number, call: DistressCall): booleanlocal sent = exports['ai-core']:SendDistress(source, { jobs = { 'ambulance' }, message = 'Unconscious' })Parametry
Prop
Type
DistressCall
Prop
Type
Zobacz DistressCall.
Zwraca
boolean: true, gdy coś przyjęło wezwanie. false, gdy gracz nie jest online, jobs jest puste, skrypt EMS je odrzucił albo własny alert ai-core nie znalazł działającego systemu alertów.
Przykład
import { onClientCallback, Cooldowns, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
import { Locale } from "common";
const core = resourceExport("ai-core");
const cooldowns = new Cooldowns();
// Przycisk "wezwij medyka" na ekranie śmierci, raz na minutę.
onClientCallback("myscript:distress", (source) => {
if (!core.IsPlayerDead(source)) return fail("NOT_DOWN");
if (!cooldowns.take(source, 60_000)) return fail("WAIT");
const sent = core.SendDistress(source, { jobs: ["ambulance"], message: Locale("DISTRESS_UNCONSCIOUS") });
return sent ? { ok: true } : fail("NO_MEDICS");
});