ai-jobs dla deweloperów
Co ai-jobs udostępnia innym skryptom (nie ma eksportów): reputacja sprzedawcy hot dogów, tablice i klucze pojazdów służbowych, powody wpisów oraz jego prywatne zdarzenia.
ai-jobs nie ma eksportów. Inne skrypty nigdy nie muszą go wywoływać: trasy i przystanki to dane panelu, a wszystko, co robi zmiana, przechodzi przez AI Core (pieniądze, klucze, ekwipunek). Poniżej jest to, co może odczytać inny skrypt.
Reputacja sprzedawcy hot dogów
Reputacja sprzedawcy hot dogów to metadane postaci ai-core pod kluczem rep, pole hotdog (to samo miejsce, w którym QBCore trzyma PlayerData.metadata.rep). To liczba całkowita od 0 do Highest reputation z panelu. ai-jobs odczytuje ją przy wynajmie stoiska i zapisuje po każdym przygotowanym hot dogu, zachowując pozostałe pola rep bez zmian.
Strona: serwer · Czeka: nie
GetMeta(src: number, key: "rep"): { hotdog?: number; [other: string]: unknown } | nulllocal rep = exports['ai-core']:GetMeta(source, 'rep') -- tabela lub nilZwraca
Tabela rep postaci albo null / nil, gdy gracz nie ma wczytanej postaci lub nigdy nie zdobył reputacji. hotdog nie istnieje do pierwszego przygotowanego hot doga.
Przykład
import { addCommand, notify, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
// /hotdogrep pokazuje graczowi jego reputację sprzedawcy hot dogów.
addCommand("hotdogrep", { help: "Show your hot dog reputation" }, (source) => {
if (source === 0) return;
const rep = core.GetMeta(source, "rep") as { hotdog?: number } | null;
notify(source, `Hot dog reputation: ${rep?.hotdog ?? 0}`, "info");
});Zapisuj reputację tylko przez SetMeta(source, "rep", { ...old, hotdog = value }), zachowując pozostałe pola. Wynajęte stoisko trzyma wartość odczytaną przy wynajmie i zapisuje własną wartość po następnym hot dogu, więc zmiana wprowadzona w czasie wynajmu stoiska zostaje nadpisana.
Pojazdy służbowe
- Tworzone przez
spawnVehiclez biblioteki, tablicaWORK<source>(ID pracownika na serwerze), usuwane po zakończeniu zmiany. - Pracownik dostaje klucze przez warstwę kluczy AI Core (
vehicleKeys.givez biblioteki) z celemjob, więc widzi je każdy działający skrypt kluczy. - Zepsute auto z trasy holowniczej pojawia się zamknięte, bez kluczy, i jest usuwane w bazie lub po zakończeniu zmiany.
Pieniądze
Zapłata za trasę trafia na konto Pay account trasy z powodem wpisu work:<routeId> (na przykład work:taxi). Sprzedaż hot dogów trafia na Sales paid into. Oba są widoczne w historii transakcji ai-core.
Prywatne zdarzenia i callbacki
To własny kontrakt klient-serwer skryptu (resource/common/routes.ts i resource/common/hotdog.ts). Serwer sprawdza każde wywołanie (odległość, czas, bieżący przystanek). Mogą się zmieniać między wersjami: nie wywołuj ich ani nie nasłuchuj ich z innych zasobów.
| Nazwa | Kierunek | Co przenosi |
|---|---|---|
ai-jobs:start | callback klienta | (routeId): zacznij zmianę w bazie, odpowiada { ok }. |
ai-jobs:stop | callback klienta | (): zakończ zmianę. |
ai-jobs:arrive | callback klienta | (stopId, underwater): praca na przystanku; serwer prowadzi pasek postępu, potem płaci. |
ai-jobs:client:shift | serwer -> pracownik | (shift | null): bieżący przystanek albo null, gdy zmiana się skończyła. |
ai-jobs:client:attach | serwer -> właściciel holowanego auta | (carNetId, flatbedNetId): przyczep holowane auto do lawety. |
ai-jobs
Trasy pracy zaczynane w bazie (taksówka, autobus, ciężarówka, śmieciarka, wiadomości, holowanie, recykling, winnica, nurkowanie) i stoisko z hot dogami.
ai-police
Praca policji dla funkcjonariuszy na służbie: skuwanie, eskorta, sadzanie w pojeździe, przeszukanie, mandat, wysłanie do więzienia i odholowanie, a także posterunki służby i alerty o strzałach.