AI Core
Мир и инструментыai-properties

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

Флаги GlobalState, метаданные, имена тайников, таблицы и внутренние события ai-properties.

У ai-properties нет экспортов. Другие скрипты могут читать три вещи, которые он хранит.

Флаг владения (GlobalState)

У каждого жилья с владельцем ключ GlobalState prop:<id> выставлен в true (например, prop:grove_1). Когда жильё продают, ключ удаляется (а не выставляется в false). Читается на сервере и на каждом клиенте.

// Клиент или сервер: владеет ли кто-нибудь Grove Street 1?
const owned = GlobalState["prop:grove_1"] === true;

Жильё, в котором находится персонаж (метаданные)

Метаданные ai-core property содержат id жилья, в котором находится персонаж, или ничего, когда он снаружи. Каждый интерьер жилья работает в своём routing bucket, который берётся из распределителя bucket’ов ai-core, пока кто-то внутри.

import { resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

export function isInsideProperty(source: number): boolean {
  const data = core.GetPlayerData(source);
  return typeof data?.metadata.property === "string";
}

Тайники

Тайник жилья называется property_<id>_<owner charId> (например, property_grove_1_12). Он отдельный для каждого владельца: после продажи следующий владелец получает новое, пустое имя тайника. Размер берётся из слотов и веса тайника в панели.

Таблицы

ТаблицаЧто хранит
ai_properties_ownedОдна строка на жильё с владельцем: id персонажа-владельца и имя владельца.
ai_properties_keysВладельцы ключей для каждого жилья, с их именем на момент выдачи ключа.

События

События ai-properties внутренние (его клиент и его сервер); не вызывайте их из других скриптов.

ИмяТипЧто делает
ai-properties:mineclient callbackЖильё, которым игрок владеет или от которого у него есть ключ (снимок на сессию). Не больше 2 за 10 секунд.
ai-properties:client:accessсервер к клиенту(id, access): доступ игрока изменился ("owner", "key" или false).
ai-properties:buy / enterclient callback(id): купить у двери или войти.
ai-properties:exit / stash / keys / giveKey / sellclient callbackДействия внутри жилья, в котором находится игрок.
ai-properties:takeKeyclient callback(charId): забрать ключ обратно.
ai-properties:client:insideсервер к клиенту(id | null, to): игрок теперь внутри этого жилья (или вышел из него); телепорт в to.

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