Médico
Reviva e cure jogadores e verifique se um jogador está caído, pelo script de morte que o servidor roda.
Mortes e revives passam pelo ai-core, nunca pelos exports ou state bags próprios de um script de morte (ai-death incluído). O ai-core encaminha cada chamada ao primeiro script de morte que estiver rodando: ai-death, qbx_medical, ars_ambulancejob, qb-ambulancejob, esx_ambulancejob e os outros da lista de compatibilidade. Sem nenhum rodando, ninguém conta como caído e nada pode ser revivido.
"Caído" significa morto ou em last stand, como o script de morte vê. Scripts de morte mantêm vivo um ped caído, então nunca use o IsEntityDead do jogo para perguntar se um jogador está caído.
Para reagir quando um jogador morre, escute o evento de servidor do ai-core ai-core:playerDied (src, killer, weaponHash) em vez de verificar a vida. Veja Eventos e estado.
GetMedicalSystem
O nome do recurso do script de morte para o qual o ai-core encaminha.
Lado: Servidor · Espera: não · Lib: medical.provider()
GetMedicalSystem(): string | nulllocal system = exports['ai-core']:GetMedicalSystem() -- string ou nilParâmetros
Nenhum.
Retorno
string | null: o nome do recurso do script de morte. null quando nenhum está rodando.
Exemplo
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
Levanta um jogador caído onde ele está.
Lado: Servidor · Espera: não · Lib: medical.revive
RevivePlayer(source: number): booleanlocal revived = exports['ai-core']:RevivePlayer(source)Parâmetros
Prop
Type
Retorno
boolean: true quando o jogador estava caído e o script de morte o reviveu. false quando o jogador não estava caído, não está online, nenhum script de morte está rodando ou ele falhou.
Exemplo
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");
// Um médico revive um jogador caído ao lado com um kit médico.
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
Dá vida cheia a um jogador que não está caído.
Lado: Servidor · Espera: não · Lib: medical.heal
HealPlayer(source: number): booleanlocal ok = exports['ai-core']:HealPlayer(source)Parâmetros
Prop
Type
Retorno
boolean: true quando a cura foi entregue ao script de morte. false quando o jogador não está online, nenhum script de morte está rodando ou ele falhou. Um jogador caído precisa de RevivePlayer; o que um script de morte faz com uma cura num jogador caído é decisão dele.
Exemplo
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 };
// Check-in no hospital: pague e seja tratado.
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
Se um jogador está caído (morto ou em last stand) no script de morte que estiver rodando.
Lado: Servidor · Espera: não · Lib: medical.isDead (servidor); no cliente, o medical.isDead() da lib lê o estado do jogador local sem uma chamada
IsPlayerDead(source: number): booleanlocal down = exports['ai-core']:IsPlayerDead(source)Parâmetros
Prop
Type
Retorno
boolean: true quando o jogador está caído. false quando está de pé, não está online ou nenhum script de morte está rodando.
Exemplo
import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
const core = resourceExport("ai-core");
// Um jogador caído não pode abrir o menu da loja de celulares.
onClientCallback("myscript:openShop", (source) =>
core.IsPlayerDead(source) ? fail("IS_DOWN") : { ok: true },
);Garagens
Apreenda e guarde veículos, abra um menu de garagem e liste os veículos guardados de um jogador pelo script de garagem que o servidor roda.
EMS
Quantos médicos estão livres para atender um chamado e os chamados de socorro de jogadores caídos, pelo script de EMS que estiver rodando ou pelo próprio ai-core.