AI Core
Prace i służbyai-jobs

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

Sygnatura
GetMeta(src: number, key: "rep"): { hotdog?: number; [other: string]: unknown } | null
Lua
local rep = exports['ai-core']:GetMeta(source, 'rep') -- tabela lub nil

Zwraca

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 spawnVehicle z biblioteki, tablica WORK<source> (ID pracownika na serwerze), usuwane po zakończeniu zmiany.
  • Pracownik dostaje klucze przez warstwę kluczy AI Core (vehicleKeys.give z biblioteki) z celem job, 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.

NazwaKierunekCo przenosi
ai-jobs:startcallback klienta(routeId): zacznij zmianę w bazie, odpowiada { ok }.
ai-jobs:stopcallback klienta(): zakończ zmianę.
ai-jobs:arrivecallback klienta(stopId, underwater): praca na przystanku; serwer prowadzi pasek postępu, potem płaci.
ai-jobs:client:shiftserwer -> pracownik(shift | null): bieżący przystanek albo null, gdy zmiana się skończyła.
ai-jobs:client:attachserwer -> właściciel holowanego auta(carNetId, flatbedNetId): przyczep holowane auto do lawety.

Na tej stronie