Диспетчер
Отправлять оповещения полиции (или любой работе) через ту систему оповещений, которую использует сервер.
Полицейские оповещения идут через ai-core, а не через собственные экспорты или события скрипта оповещений (включая ai-policealert). ai-core передаёт каждое оповещение активной системе оповещений: той, что выбрана в настройке панели Alert script, или первой запущенной (встроенные карточки ai-policealert идут последними). Система оповещений показывает его сотрудникам работ оповещения, которые на дежурстве.
ai-core также отвечает на событие QB police:server:policeAlert за системы оповещений, которые этого не делают, поэтому оповещения скриптов QB тоже доходят.
SendDispatchAlert
Отправляет одно оповещение. Используйте для всего, на что должны реагировать офицеры (или другая работа): стрельба, ограбление магазина, угнанная машина.
Сторона: сервер · Ожидание: нет · Библиотека: dispatch.alert
SendDispatchAlert(alert: DispatchAlert): booleanlocal sent = exports['ai-core']:SendDispatchAlert({ title = 'Store robbery', code = '10-90', source = source })Параметры
Prop
Type
DispatchAlert
Prop
Type
Неизвестные поля отбрасываются. См. DispatchAlert.
Возвращает
boolean: true, когда система оповещений приняла оповещение. false, когда title отсутствует или пуст, не работает ни одна система оповещений или она дала сбой.
Пример
import { onClientCallback, resourceExport, near } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
import { Locale } from "common";
const core = resourceExport("ai-core");
const REGISTER = { x: 24.5, y: -1345.6, z: 29.5 };
onClientCallback("myscript:robRegister", { guards: [near(REGISTER, 2)], lock: true }, (source) => {
if (core.GetOnDutyCount("police") < 2) return fail("NOT_ENOUGH_POLICE");
core.SendDispatchAlert({
code: "10-90",
title: Locale("ALERT_STORE_ROBBERY"),
message: Locale("ALERT_STORE_NAME"),
coords: REGISTER,
source,
jobs: ["police"],
icon: "cash-register",
priority: "high",
});
return { ok: true };
});Тексты показываются как есть: переводите их через Locale перед отправкой. Не отправляйте оповещение каждый кадр или на каждое попадание: у оповещения о стрельбе должна быть задержка на игрока.