Médical
Réanimer et soigner des joueurs et vérifier si un joueur est à terre, via le script de mort qu’utilise le serveur.
Les morts et réanimations passent par ai-core, jamais par les exports ou state bags propres à un script de mort (ai-death compris). ai-core transmet chaque appel au premier script de mort qui tourne : ai-death, qbx_medical, ars_ambulancejob, qb-ambulancejob, esx_ambulancejob et les autres de la liste de compatibilité. Sans script en cours, personne ne compte comme à terre et rien ne peut être réanimé.
« À terre » signifie mort ou en dernier souffle, tel que le voit le script de mort. Les scripts de mort gardent en vie un ped à terre ; n’utilisez donc jamais IsEntityDead du jeu pour savoir si un joueur est à terre.
Pour réagir quand un joueur meurt, écoutez l’événement serveur d’ai-core ai-core:playerDied (src, killer, weaponHash) au lieu de vérifier la santé. Voir Événements et état.
GetMedicalSystem
Le nom de ressource du script de mort auquel ai-core transmet.
Côté : Serveur · Attend : non · Lib : medical.provider()
GetMedicalSystem(): string | nulllocal system = exports['ai-core']:GetMedicalSystem() -- string ou nilParamètres
Aucun.
Retour
string | null : le nom de ressource du script de mort. null quand aucun ne tourne.
Exemple
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
Relève un joueur à terre là où il est allongé.
Côté : Serveur · Attend : non · Lib : medical.revive
RevivePlayer(source: number): booleanlocal revived = exports['ai-core']:RevivePlayer(source)Paramètres
Prop
Type
Retour
boolean : true quand le joueur était à terre et que le script de mort l’a réanimé. false quand le joueur n’était pas à terre, n’est pas en ligne, qu’aucun script de mort ne tourne ou qu’il a échoué.
Exemple
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");
// Un médecin réanime avec une trousse un joueur à terre à côté de lui.
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
Rend toute sa santé à un joueur qui n’est pas à terre.
Côté : Serveur · Attend : non · Lib : medical.heal
HealPlayer(source: number): booleanlocal ok = exports['ai-core']:HealPlayer(source)Paramètres
Prop
Type
Retour
boolean : true quand le soin a été transmis au script de mort. false quand le joueur n’est pas en ligne, qu’aucun script de mort ne tourne ou qu’il a échoué. Un joueur à terre a besoin de RevivePlayer ; ce que fait un script de mort d’un soin sur un joueur à terre ne dépend que de lui.
Exemple
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 };
// Admission à l’hôpital : payer et se faire soigner.
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
Indique si un joueur est à terre (mort ou en dernier souffle) dans le script de mort en cours.
Côté : Serveur · Attend : non · Lib : medical.isDead (serveur) ; sur le client, medical.isDead() de la lib lit l’état du joueur local sans appel
IsPlayerDead(source: number): booleanlocal down = exports['ai-core']:IsPlayerDead(source)Paramètres
Prop
Type
Retour
boolean : true quand le joueur est à terre. false quand il est debout, pas en ligne, ou qu’aucun script de mort ne tourne.
Exemple
import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
const core = resourceExport("ai-core");
// Un joueur à terre ne peut pas ouvrir le menu du magasin de téléphones.
onClientCallback("myscript:openShop", (source) =>
core.IsPlayerDead(source) ? fail("IS_DOWN") : { ok: true },
);Garages
Mettre en fourrière et ranger des véhicules, ouvrir un menu de garage et lister les véhicules garés d’un joueur via le script de garages qu’utilise le serveur.
EMS
Combien de médecins sont libres pour prendre un appel, et les appels de détresse des joueurs à terre, via le script EMS qui tourne ou ai-core lui-même.