AI Core

Tworzenie skryptu

Od pustego szablonu do skryptu z panelem administratora, w sposób AI Core.

Utwórz go z szablonu

bun run new garbagejob "Garbage routes with pay per stop"
bun install
cd resources/[ai]/ai-garbagejob && git init && bun run build

Następnie dodaj ensure ai-garbagejob do server.cfg. Szablon daje ci resource/client, resource/server, resource/common, locales/en.json, CLAUDE.md do uzupełnienia i konfigurację builda.

Dodaj panel

Napisz resource/server/schema.ts (pliki, zakładki, karty, widżety) i utwórz new AdminPanel(schema) na serwerze. Dane potrzebne światu (miejsca, blipy, ceny, które widzą gracze) mają sync: "all" i są czytane na kliencie przez new AdminWorld([...]); wszystko inne zostaje na serwerze.

Używaj lib do wszystkiego

// klient: miejsce, z którego korzystają gracze, pokazane jako prompt lub opcja target
const points = new Points();
points.add("depot", {
  coords: route.depot,
  label: Locale("PROMPT_START"),
  icon: "truck",
  canShow: () => hasJob(["garbage"]),
  onPressed: () => callAction(EVENTS.start, [route.id], { fallback: "ERR_FAR" }),
});
// serwer: żądanie, sprawdzane, zanim cokolwiek się zmieni
onClientCallback(
  EVENTS.start,
  { args: oneArg((v) => readText(v, 32)), guards: [hasCharacter()], lock: true },
  (source, id) => {
    if (!isNear(source, route.depot, 3)) return fail("ERR_FAR");
    return { ok: true };
  },
);

Sprawdź i zrestartuj

bun run typecheck && bun run lint && bun run build
bun tools/rcon.ts --log ../logs/fxserver.log --wait 3 "ensure ai-garbagejob"

Najprościej poprosić swoje AI: otwórz folder serwera w Claude Code i opisz skrypt. Zasady sprawią, że użyje szablonu, lib i panelu. Zobacz Praca z AI.

Na tej stronie