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
Prop
Type
Nasłuchiwanie
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
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ć.
| Nazwa | Kierunek | Co |
|---|---|---|
ai-core:client:spawn | serwer do klienta | Umieszcza wczytaną postać w świecie. |
ai-core:client:chooseSpawn | serwer do klienta | Opcje pojawienia się do wyboru przez gracza. |
ai-core:client:openCharacters | serwer do klienta | Pokazuje ponownie ekran postaci po zmianie postaci. |
ai-core:client:characterLooks | serwer do klienta (latent) | Wyglądy na ekranie postaci. |
ai-core:client:bills | serwer do klienta | Otwarte rachunki ai-core gracza, dla listy rachunków. |
ai-core:client:stress | serwer do klienta | Stres dla HUD, który przyjmuje go tylko z własnego klienta. |
ai-core:client:vehicleKeys, ai-core:client:garages | serwer do klienta | Wywołania dla skryptów kluczy i garaży, które mają tylko klienckie API. |
ai-core:clientError, ai-core:fuelReport | klient do serwera | Raporty 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:vehicleType | callbacki | Ekran postaci, wybór miejsca pojawienia się, rachunki i tworzenie pojazdów. |
ai-core:admin:*, <resource>:admin:world | obie | Panel administratora i dane panelu każdego zasobu. |
ai-lib:client:notify, ai-lib:progressFor, ai-lib:minigameFor, ai-lib:client:progressForCancel | serwer do klienta | Powiadomienia ai-lib, paski postępu i minigry uruchamiane przez serwer (używaj notify, progressFor, minigameFor z liba). |
Zdarzenia klienckie
Każde klienckie zdarzenie lokalne wysyłane przez ai-core - wczytanie lub zwolnienie lokalnej postaci, stan powalenia, wartości w pamięci podręcznej, widoczność HUD, synchronizacja świata, definicje prac, podpowiedzi klawiszy, pas bezpieczeństwa - z argumentami i nasłuchiwaniem.
Zdarzenia UI ai-lib
Klienckie zdarzenia, które ai-lib wysyła, gdy gracz odpowiada na menu, okno wprowadzania, wybierak przedmiotów, minigrę lub podpowiedź albo anuluje pasek postępu - dla skryptów, które same wywołują eksporty ai-lib.