AI Core
API başvurusuAI Core: server export’ları

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()

İmza
GetEmsSystem(): string | null
Lua
local 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

İmza
GetAvailableMedics(jobs: string[]): number
Lua
local 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

İmza
SendDistress(source: number, call: DistressCall): boolean
Lua
local 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");
});

Bu sayfada