AI Core
Работы и службыai-cityhall

ai-cityhall для разработчиков

Метаданные предметов-документов, которые пишет ai-cityhall (удостоверение личности, водительские права), как выдать документ из другого скрипта, и его приватные события.

У ai-cityhall нет экспортов. Работы, взятые в центре занятости, выставляются функциями работ ai-core, а документы являются обычными предметами инвентаря, поэтому другой скрипт работает с ними через AI Core.

Метаданные предмета-документа

Документ (id_card, driver_license или любой предмет из списка Documents) является одним уникальным предметом, метаданные которого содержат владельца. Поля такие же, как в qbx_idcard, поэтому скрипты, написанные для Qbox, читают их как есть.

Prop

Type

Как выдать документ из другого скрипта

Использование предмета показывает карточку, кто бы его ни выдал: ai-cityhall регистрирует каждый предмет-документ как используемый. Выдайте предмет с такими же метаданными, и он будет вести себя как купленный у стойки.

Сторона: сервер · Ожидание: нет

Пример

Скрипт полиции выдаёт новые водительские права после экзамена:

import { inventory, notify, online } from "@aicore-fivem/lib/server";

function giveLicense(source: number): boolean {
  const c = online.character(source);
  if (!c) return false;
  const metadata = {
    name: `${c.firstname} ${c.lastname}`,
    firstname: c.firstname,
    lastname: c.lastname,
    birthdate: c.birthdate,
    sex: c.sex,
    nationality: c.nationality,
    citizenid: c.citizenid,
  };
  if (!inventory.canCarryItem(source, "driver_license", 1, metadata)) {
    notify(source, "No room in your inventory", "error");
    return false;
  }
  return inventory.addItem(source, "driver_license", 1, metadata);
}

ai-cityhall регистрирует как используемые только предметы из списка Documents в панели. Предмет, которого нет в этом списке, при использовании не показывает карточку.

Деньги

Документы оплачиваются через RemoveMoney из ai-core со счетов из панели, причина операции cityhall:<item> (например, cityhall:id_card).

Приватные события и колбэки

Собственный контракт скрипта (resource/common/hall.ts). Сервер при каждом вызове проверяет расстояние до мэрии. Они могут меняться между версиями: не вызывайте и не слушайте их из других ресурсов.

ИмяНаправлениеЧто передаёт
ai-cityhall:offerclient callback(hallId): отвечает { ok, jobs, documents }, то есть что предлагает эта мэрия.
ai-cityhall:takeJobclient callback(hallId, job): взять работу в центре занятости.
ai-cityhall:buyclient callback(hallId, item): купить документ.
ai-cityhall:client:showCardserver -> each player near a shown document(card): показать карточку на экране.
ai-cityhall:client:showingserver -> the player showing(): проиграть анимацию показа.

На этой странице