AI Core
Suç ve yarışai-robberies

Geliştiriciler için ai-robberies

ai-robberies’in soyulan hedefler için GlobalState anahtarları, ev metadata’sı, ihbarları, hesap defteri sebepleri ve özel event’leri.

ai-robberies’in hiç export’u yoktur. Yerler ve hedefler panel verisidir; ödüller, aletler, ihbarlar ve kapılar AI Core üzerinden gider. Başka bir script’in okuyabileceği şeyler aşağıda listelenmiştir.

GlobalState rob:<targetId>

Bir hedef soyulmuş ve yerinin bekleme süresini beklerken true, bekleme süresinden sonra false. Server yazar; her client okuyabilir. Resource başlarken her anahtar sıfırlanır. Hedef id’leri Targets sekmesindeki kayıt id’leridir (store_1_register_1, store_1_safe, vangelico_vitrine_1...).

Taraf: Server ve client (okuma) · Bekler: hayır

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

Dönüş değeri

Boşaltılmışken true. Bekleme süresi bittikten sonra false; resource başladığından beri hedef soyulmadıysa undefined / nil.

Örnek

Kasa boşaltılmışken kendi market script’inde bir "soyuldu" işareti göster:

// client
const SAFE = "store_1_safe";

AddStateBagChangeHandler(`rob:${SAFE}`, "global", (_bag: string, _key: string, value: unknown) => {
  const emptied = value === true;
  // ... işaretini göster ya da gizle
});

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

Bu anahtarları oku, asla yazma: sahibi ai-robberies’tir ve onları kendi zamanlayıcılarıyla ayarlar. Başka bir script’in yazdığı bir değer server’ın kontrollerini ve client’ların etiketlerini birbirinden koparır.

Karakter metadata’sı robbery_house

Bir karakterin içinde bulunduğu ev yerinin id’si (house_12), dışarıdayken null. ai-robberies soyguncu içeri girdiğinde ayarlar, çıktığında temizler. Bir evin içindeyken oyundan çıkan karakter bir sonraki yüklemesinde ev kapısına geri konur.

Polis ihbarları

Lib’in dispatch.alert fonksiyonu üzerinden gönderilir, bu yüzden hangi ihbar script’i çalışıyorsa ona ulaşır:

Ne zamanKodBaşlıkİkonÖncelik
Bir ziyaretteki ilk soygun (yerin ihbar ihtimaline göre)10-90Soygun ihbarı metni; mesaj olarak yerin adı, koordinat olarak yerin ihbar noktasısack-dollarhigh
Bir zırhlı araç işi başlar10-90Zırhlı araç ihbarı metni, soyguncunun konumunda, kırmızı 67 numaralı blip sprite’ıtruckhigh

Para

Çalınan para paneldeki Money account hesabına robbery:<placeId> hesap defteri sebebiyle (ledger reason) gider (örneğin robbery:store_1).

Kapılar

Doorlock door id’si olan bir kapı hedefi AI Core’un kapı katmanı (lib doors.setLocked) üzerinden açılır ve yerin bekleme süresi bitince tekrar kilitlenir.

Özel event’ler ve callback’ler

Script’in kendi sözleşmesi (resource/common/robbery.ts). Server her çağrıda polis sayısını, mesafeyi, eşyaları ve sahiplenmeleri kontrol eder. Sürümler arasında değişebilirler: başka resource’lardan tetikleme ya da dinleme.

AdYönNe taşır
ai-robberies:startclient callback’i(targetId): bir hedefi soymaya başla; { ok, entered? } ile cevap verir. İlerleme çubuğunu ve ödülü server çalıştırır.
ai-robberies:exitclient callback’i(): oyuncunun içinde bulunduğu evden çık.
ai-robberies:client:insideserver -> player(placeId | null, to): oyuncu artık bu evin içinde (ya da çıktı); to konumuna ışınla.
ai-robberies:truckStartclient callback’i(): iş verende bir zırhlı araç işi için öde.
ai-robberies:client:truckJobserver -> player(netId, x, y, z): soyulacak araç ve arka kapıları.
ai-robberies:truckPlantclient callback’i(): patlayıcıyı yerleştir (server’ın çalıştırdığı ilerleme çubuğu; kapılar fitilden sonra patlar).
ai-robberies:client:truckOpenserver -> aracın yakınındaki oyuncular(netId): arka kapılar açık.
ai-robberies:truckLootclient callback’i(): parayı al (server’ın çalıştırdığı ilerleme çubuğu).
ai-robberies:client:truckEndserver -> aracı bilen oyuncular(): zırhlı araç işi bitti.

Bu sayfada