EMS
Çalışan EMS script’i ya da ai-core’un kendisi üzerinden, kaç sağlıkçının çağrı almaya boş olduğu ve yerdeki oyuncuların yardım çağrıları.
EMS katmanı her script için iki soruyu cevaplar: "kaç sağlıkçı çağrı alabilir?" ve "sağlıkçılara bir yardım çağrısı gönder". ai-core panelin EMS source ayarının seçtiği EMS kaynağına ya da çalışan ilk EMS script’ine sorar. O script’in cevaplayamadığını ai-core kendisi cevaplar: boş sağlıkçıları kendi mesai sayılarından, yardım çağrısını da ihbar katmanı üzerinden mesleklere yüksek öncelikli bir ihbar olarak.
GetEmsSystem
Kullanımdaki EMS kaynağı.
Taraf: Server · Bekler: hayır · Lib: ems.provider()
GetEmsSystem(): string | nulllocal system = exports['ai-core']:GetEmsSystem() -- 'ai-core' ya da bir script adıParametreler
Yok.
Dönüş değeri
string | null: EMS script’inin resource adı ya da ai-core’un kendi parçası cevaplıyorsa "ai-core" (hiçbir EMS script’i çalışmıyor). ai-core’un kendi parçası her zaman oradadır, bu yüzden pratikte bu asla null olmaz.
Örnek
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
Verilen mesleklerde şu an kaç sağlıkçının çağrı alabileceği. Kendi ihbar sistemi olan bir EMS script’i meşgul sağlıkçıları dışarıda bırakır; ai-core’un kendi cevabı mesaideki herkestir.
Taraf: Server · Bekler: hayır · Lib: ems.available
GetAvailableMedics(jobs: string[]): numberlocal medics = exports['ai-core']:GetAvailableMedics({ 'ambulance' })Parametreler
Prop
Type
Dönüş değeri
number: boş sağlıkçılar. Hiç yoksa, boş bir liste ya da liste olmayan bir değer için 0. EMS script’i başarısız olduğunda ai-core’un kendi mesai sayısı cevap verir.
Örnek
import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
const core = resourceExport("ai-core");
const EMS_JOBS = ["ambulance"];
// "Hastanede yeniden doğ" düğmesi yalnızca hiçbir sağlıkçı gelemezken çalışır.
onClientCallback("myscript:respawn", (source) => {
if (!core.IsPlayerDead(source)) return fail("NOT_DOWN");
if (core.GetAvailableMedics(EMS_JOBS) > 0) return fail("MEDICS_AVAILABLE");
// ... oyuncuyu hastaneye taşı ve canlandır
return { ok: true };
});SendDistress
Yerdeki bir oyuncunun yardım çağrısını sağlıkçılara gönderir. Çağrı alan bir EMS script’i varsa çağrı oraya gider; yoksa ai-core aktif ihbar sistemi üzerinden jobs içindeki mesaideki üyelere yüksek öncelikli bir ihbar gönderir (kod 10-52, bir ilk yardım çantası ikonu, oyuncunun konumu).
Taraf: Server · Bekler: hayır · Lib: ems.distress
SendDistress(source: number, call: DistressCall): booleanlocal sent = exports['ai-core']:SendDistress(source, { jobs = { 'ambulance' }, message = 'Unconscious' })Parametreler
Prop
Type
DistressCall
Prop
Type
Bkz. DistressCall.
Dönüş değeri
boolean: bir şey çağrıyı aldığında true. Oyuncu çevrimiçi değilse, jobs boşsa, EMS script’i reddettiyse ya da ai-core’un kendi ihbarı çalışan bir ihbar sistemi bulamadıysa false.
Örnek
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();
// Ölüm ekranındaki "sağlıkçı çağır" düğmesi, dakikada bir kez.
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");
});