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
| Tabela | Co przechowuje |
|---|---|
ai_properties_owned | Jeden wiersz na posiadaną nieruchomość: ID postaci właściciela i imię właściciela. |
ai_properties_keys | Posiadacze 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.
| Nazwa | Rodzaj | Co robi |
|---|---|---|
ai-properties:mine | callback klienta | Nieruchomości, które gracz posiada lub do których ma klucz (migawka sesji). Limit 2 na 10 sekund. |
ai-properties:client:access | serwer do klienta | (id, access): zmienił się dostęp gracza ("owner", "key" lub false). |
ai-properties:buy / enter | callback klienta | (id): kup przy drzwiach albo wejdź. |
ai-properties:exit / stash / keys / giveKey / sell | callback klienta | Akcje w nieruchomości, w której jest gracz. |
ai-properties:takeKey | callback klienta | (charId): zabierz klucz z powrotem. |
ai-properties:client:inside | serwer do klienta | (id | null, to): gracz jest teraz w tej nieruchomości (albo z niej wyszedł); teleport do to. |