AI Core
Przestępczość i wyścigiai-robberies

ai-robberies dla deweloperów

Klucze GlobalState obrabowanych celów, metadane domu, alerty i powody wpisów ai-robberies oraz jego prywatne zdarzenia.

ai-robberies nie ma eksportów. Miejsca i cele to dane panelu, a nagrody, narzędzia, alerty i drzwi przechodzą przez AI Core. Poniżej jest to, co może odczytać inny skrypt.

GlobalState rob:<targetId>

true, gdy cel został obrabowany i czeka na czas odnowienia swojego miejsca, false po upływie tego czasu. Zapisuje go serwer; każdy klient może go odczytać. Przy starcie zasobu każdy klucz jest resetowany. ID celów to ID rekordów z zakładki Targets (store_1_register_1, store_1_safe, vangelico_vitrine_1...).

Strona: serwer i klient (odczyt) · Czeka: nie

Sygnatura
GlobalState[`rob:${targetId}`]: boolean | undefined
Lua
local emptied = GlobalState['rob:' .. targetId] == true

Zwraca

true, gdy cel jest opróżniony. false po zakończeniu czasu odnowienia, undefined / nil, gdy cel nie był obrabowany od startu zasobu.

Przykład

Pokaż znacznik „obrabowane” we własnym skrypcie sklepu, dopóki sejf jest opróżniony:

// klient
const SAFE = "store_1_safe";

AddStateBagChangeHandler(`rob:${SAFE}`, "global", (_bag: string, _key: string, value: unknown) => {
  const emptied = value === true;
  // ... pokaż lub ukryj swój znacznik
});

const emptiedNow = GlobalState[`rob:${SAFE}`] === true;

Tylko odczytuj te klucze, nigdy ich nie zapisuj: należą do ai-robberies, który ustawia je według własnych liczników czasu. Wartość zapisana przez inny skrypt rozsynchronizowuje sprawdzenia serwera i etykiety klientów.

Metadane postaci robbery_house

ID domu, w którym jest postać (house_12), lub null, gdy jest na zewnątrz. ai-robberies ustawia je, gdy rabuś się włamie, i czyści, gdy wyjdzie. Postać, która opuściła grę w domu, przy następnym wczytaniu pojawia się przy drzwiach domu.

Alerty policyjne

Wysyłane przez dispatch.alert biblioteki, więc trafiają do tego skryptu alertów, który działa:

KiedyKodTytułIkonaPriorytet
Pierwszy napad podczas wizyty (według szansy alertu miejsca)10-90Tekst alertu o napadzie, z nazwą miejsca jako wiadomością i punktem alertu miejsca jako współrzędnymisack-dollarwysoki
Rozpoczyna się zlecenie na furgonetkę konwojową10-90Tekst alertu o furgonetce, w miejscu rabusia, czerwony blip ze sprite 67truckwysoki

Pieniądze

Skradzione pieniądze trafiają na konto ustawione w Money account w panelu z powodem wpisu robbery:<placeId> (na przykład robbery:store_1).

Drzwi

Cel typu drzwi z ID Doorlock door jest odblokowywany przez warstwę drzwi AI Core (doors.setLocked biblioteki) i blokowany ponownie po zakończeniu czasu odnowienia miejsca.

Prywatne zdarzenia i callbacki

Własny kontrakt skryptu (resource/common/robbery.ts). Serwer sprawdza liczbę policjantów, odległość, przedmioty i zajęcie celu przy każdym wywołaniu. Mogą się zmieniać między wersjami: nie wywołuj ich ani nie nasłuchuj ich z innych zasobów.

NazwaKierunekCo przenosi
ai-robberies:startcallback klienta(targetId): zacznij rabować cel; odpowiada { ok, entered? }. Serwer prowadzi pasek postępu i nagrodę.
ai-robberies:exitcallback klienta(): opuść dom, w którym jest gracz.
ai-robberies:client:insideserwer -> gracz(placeId | null, to): gracz jest teraz w tym domu (albo z niego wyszedł); teleport do to.
ai-robberies:truckStartcallback klienta(): zapłać zleceniodawcy za zlecenie na furgonetkę konwojową.
ai-robberies:client:truckJobserwer -> gracz(netId, x, y, z): furgonetka do obrabowania i jej tylne drzwi.
ai-robberies:truckPlantcallback klienta(): podłóż ładunek (pasek postępu prowadzony przez serwer; drzwi wylatują po czasie zapalnika).
ai-robberies:client:truckOpenserwer -> gracze przy furgonetce(netId): tylne drzwi są otwarte.
ai-robberies:truckLootcallback klienta(): zabierz gotówkę (pasek postępu prowadzony przez serwer).
ai-robberies:client:truckEndserwer -> gracze, którzy znali furgonetkę(): zlecenie na furgonetkę się skończyło.

Na tej stronie