AI Core
Dokumentacja APIZdarzenia i stan

Zdarzenia sieciowe

Zdarzenia sieciowe, których może nasłuchiwać skrypt kliencki (kanał danych gracza ai-core), i własny ruch sieciowy ai-core, którego inne skrypty nie mogą wywoływać.

Zdarzenie sieciowe podróżuje między serwerem a klientem jednego gracza. ai-core wysyła ich bardzo mało: własne dane gracza wychodzą raz, gdy postać się wczytuje, potem tylko wartości, które się zmieniają, i tylko do tego gracza. Wszystko inne, czego potrzebuje twój skrypt, to zdarzenie klienckie albo state bag.

Rzadko potrzebujesz tych zdarzeń bezpośrednio. onPlayerData(key, handler) z liba (TypeScript) i aiLib.playerData.onChange(key, handler) (Lua) nasłuchują obu za ciebie, scalają łatki pieniędzy i metadanych i czytają wartości startowe z ai-core.

ai-core:client:playerData

Serwer wysyła jedną wartość własnych danych gracza: całą wartość jednego klucza. Wysyłane raz na klucz, gdy postać się wczytuje, potem za każdym razem, gdy ta wartość się zmienia (praca, służba, gang...).

Strona: Serwer do własnego klienta gracza

Argumenty

Nasłuchiwanie

resource/client/index.ts
import { onPlayerData } from "@aicore-fivem/lib/client";

// Lib nasłuchuje ai-core:client:playerData i playerDataPatch za ciebie.
onPlayerData("job", (job) => console.log(`main job: ${job.job} grade ${job.grade}`));

ai-core:client:playerDataPatch

Serwer wysyła tylko zmienione wpisy wartości mapy: money (nowe saldo jednego konta) lub metadata (jeden klucz). Scal łatkę z tym, co masz.

Strona: Serwer do własnego klienta gracza

Argumenty

Prop

Type

Nasłuchiwanie

resource/client/index.ts
import { getPlayerData, onPlayerData } from "@aicore-fivem/lib/client";

// Lib scala łatki: handler dostaje całą scaloną mapę pieniędzy.
const show = (money: Record<string, number>): void => SendNUIMessage({ action: "cash", data: money.cash ?? 0 });
show(getPlayerData("money") ?? {});
onPlayerData("money", show);

Na kliencie nasłuchuj zdarzeń sieciowych tylko przez onServerEvent z liba (TypeScript) lub aiLib.onServerEvent (Lua). Sprawdzają, czy zdarzenie naprawdę przyszło z serwera; goły handler RegisterNetEvent działa też wtedy, gdy inny kliencki zasób wyśle tę nazwę lokalnie.

Własny ruch ai-core: nie wywołuj

Te zdarzenia sieciowe i callbacki to wewnętrzny ruch ai-core między jego serwerem a klientem (lub libem). Są wymienione, abyś rozpoznał je w logach. Nigdy nie wywołuj ich z innego skryptu i nie buduj na nich: ich argumenty mogą się zmienić.

NazwaKierunekCo
ai-core:client:spawnserwer do klientaUmieszcza wczytaną postać w świecie.
ai-core:client:chooseSpawnserwer do klientaOpcje pojawienia się do wyboru przez gracza.
ai-core:client:openCharactersserwer do klientaPokazuje ponownie ekran postaci po zmianie postaci.
ai-core:client:characterLooksserwer do klienta (latent)Wyglądy na ekranie postaci.
ai-core:client:billsserwer do klientaOtwarte rachunki ai-core gracza, dla listy rachunków.
ai-core:client:stressserwer do klientaStres dla HUD, który przyjmuje go tylko z własnego klienta.
ai-core:client:vehicleKeys, ai-core:client:garagesserwer do klientaWywołania dla skryptów kluczy i garaży, które mają tylko klienckie API.
ai-core:clientError, ai-core:fuelReportklient do serweraRaporty błędów klienckich paczek; poziomy paliwa z klienckich skryptów paliwa.
ai-core:characters, ai-core:createCharacter, ai-core:deleteCharacter, ai-core:selectCharacter, ai-core:spawnChoice, ai-core:payBill, ai-core:vehicleTypecallbackiEkran postaci, wybór miejsca pojawienia się, rachunki i tworzenie pojazdów.
ai-core:admin:*, <resource>:admin:worldobiePanel administratora i dane panelu każdego zasobu.
ai-lib:client:notify, ai-lib:progressFor, ai-lib:minigameFor, ai-lib:client:progressForCancelserwer do klientaPowiadomienia ai-lib, paski postępu i minigry uruchamiane przez serwer (używaj notify, progressFor, minigameFor z liba).

Na tej stronie