Sağlık
Sunucunun çalıştırdığı ölüm script’i hangisiyse onun üzerinden oyuncuları canlandır ve iyileştir ve bir oyuncunun yerde olup olmadığını kontrol et.
Ölümler ve canlandırmalar ai-core üzerinden gider, asla bir ölüm script’inin kendi export’ları ya da state bag’leri üzerinden değil (ai-death dahil). ai-core her çağrıyı çalışan ilk ölüm script’ine iletir: ai-death, qbx_medical, ars_ambulancejob, qb-ambulancejob, esx_ambulancejob ve uyumluluk listesindeki diğerleri. Hiçbiri çalışmıyorken kimse yerde sayılmaz ve hiçbir şey canlandırılamaz.
"Yerde", ölüm script’inin gördüğü haliyle ölü ya da last stand’de demektir. Ölüm script’leri yerdeki bir ped’i canlı tutar, bu yüzden bir oyuncunun yerde olup olmadığını sormak için asla oyunun IsEntityDead’ini kullanma.
Bir oyuncu öldüğünde tepki vermek için canı kontrol etmek yerine ai-core’un ai-core:playerDied (src, killer, weaponHash) server event’ini dinle. Bkz. Event’ler ve durum.
GetMedicalSystem
ai-core’un ilettiği ölüm script’inin resource adı.
Taraf: Server · Bekler: hayır · Lib: medical.provider()
GetMedicalSystem(): string | nulllocal system = exports['ai-core']:GetMedicalSystem() -- string ya da nilParametreler
Yok.
Dönüş değeri
string | null: ölüm script’inin resource adı. Hiçbiri çalışmıyorsa null.
Örnek
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
Yerdeki bir oyuncuyu yattığı yerde ayağa kaldırır.
Taraf: Server · Bekler: hayır · Lib: medical.revive
RevivePlayer(source: number): booleanlocal revived = exports['ai-core']:RevivePlayer(source)Parametreler
Prop
Type
Dönüş değeri
boolean: oyuncu yerdeyse ve ölüm script’i onu canlandırdıysa true. Oyuncu yerde değilse, çevrimiçi değilse, hiçbir ölüm script’i çalışmıyorsa ya da başarısız olduysa false.
Örnek
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");
// Bir sağlıkçı yanındaki yerdeki bir oyuncuyu ilk yardım çantasıyla canlandırır.
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
Yerde olmayan bir oyuncuya tam can verir.
Taraf: Server · Bekler: hayır · Lib: medical.heal
HealPlayer(source: number): booleanlocal ok = exports['ai-core']:HealPlayer(source)Parametreler
Prop
Type
Dönüş değeri
boolean: iyileştirme ölüm script’ine verildiğinde true. Oyuncu çevrimiçi değilse, hiçbir ölüm script’i çalışmıyorsa ya da başarısız olduysa false. Yerdeki bir oyuncunun RevivePlayer’a ihtiyacı vardır; bir ölüm script’inin yerdeki bir oyuncuya iyileştirmeyle ne yapacağı ona kalmıştır.
Örnek
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 };
// Hastane kaydı: öde ve tedavi ol.
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
Çalışan ölüm script’inde bir oyuncunun yerde (ölü ya da last stand’de) olup olmadığı.
Taraf: Server · Bekler: hayır · Lib: medical.isDead (server); client’ta lib’in medical.isDead()’i yerel oyuncunun durumunu çağrı yapmadan okur
IsPlayerDead(source: number): booleanlocal down = exports['ai-core']:IsPlayerDead(source)Parametreler
Prop
Type
Dönüş değeri
boolean: oyuncu yerdeyse true. Ayaktaysa, çevrimiçi değilse ya da hiçbir ölüm script’i çalışmıyorsa false.
Örnek
import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
const core = resourceExport("ai-core");
// Yerdeki bir oyuncu telefon dükkanı menüsünü açamaz.
onClientCallback("myscript:openShop", (source) =>
core.IsPlayerDead(source) ? fail("IS_DOWN") : { ok: true },
);Garajlar
Sunucunun çalıştırdığı garaj script’i hangisiyse onun üzerinden araçları çek ve park et, bir garaj menüsü aç ve bir oyuncunun garajdaki araçlarını listele.
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ı.