AI Core
Świat i narzędziaai-properties

ai-properties dla deweloperów

Flagi GlobalState, metadane, nazwy schowków, tabele i wewnętrzne zdarzenia ai-properties.

ai-properties nie ma eksportów. Inne skrypty mogą odczytać trzy rzeczy, które przechowuje.

Flaga własności (GlobalState)

Każda posiadana nieruchomość ma klucz GlobalState prop:<id> ustawiony na true (na przykład prop:grove_1). Klucz jest usuwany (a nie ustawiany na false), gdy nieruchomość zostanie sprzedana. Czytelny na serwerze i na każdym kliencie.

// Klient lub serwer: czy ktoś jest właścicielem Grove Street 1?
const owned = GlobalState["prop:grove_1"] === true;

Nieruchomość, w której jest postać (metadane)

Metadane ai-core property zawierają ID nieruchomości, w której jest postać, albo nic, gdy jest na zewnątrz. Wnętrze każdej nieruchomości działa we własnym routing buckecie, pobieranym z alokatora bucketów ai-core, dopóki ktoś jest w środku.

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";
}

Schowki

Schowek nieruchomości to property_<id>_<owner charId> (na przykład property_grove_1_12). Jest osobny dla każdego właściciela: po sprzedaży następny właściciel dostaje nową, pustą nazwę schowka. Rozmiar pochodzi ze slotów i wagi schowka z panelu.

Tabele

TabelaCo przechowuje
ai_properties_ownedJeden wiersz na posiadaną nieruchomość: ID postaci właściciela i imię właściciela.
ai_properties_keysPosiadacze kluczy dla każdej nieruchomości, z imieniem z chwili wydania klucza.

Zdarzenia

Zdarzenia ai-properties są wewnętrzne (jego klient i jego serwer); nie wywołuj ich z innych skryptów.

NazwaRodzajCo robi
ai-properties:minecallback klientaNieruchomości, które gracz posiada lub do których ma klucz (migawka sesji). Limit 2 na 10 sekund.
ai-properties:client:accessserwer do klienta(id, access): zmienił się dostęp gracza ("owner", "key" lub false).
ai-properties:buy / entercallback klienta(id): kup przy drzwiach albo wejdź.
ai-properties:exit / stash / keys / giveKey / sellcallback klientaAkcje w nieruchomości, w której jest gracz.
ai-properties:takeKeycallback klienta(charId): zabierz klucz z powrotem.
ai-properties:client:insideserwer do klienta(id | null, to): gracz jest teraz w tej nieruchomości (albo z niej wyszedł); teleport do to.

Na tej stronie