AI Core
Suç ve yarışai-streetraces

Geliştiriciler için ai-streetraces

ai-streetraces’in export’u yoktur. Polis ihbarı, hesap defteri sebepleri ve özel event’leri.

ai-streetraces’in export’u ya da state bag’i yoktur. Yarışlar sadece server’ın belleğinde yaşar; para, ihbarlar ve menü öğesi AI Core üzerinden gider.

Polis ihbarı

Bir yarışın geri sayımı başladığında (paneldeki Alert chance değerine göre) lib’in dispatch.alert fonksiyonu üzerinden bir ihbar gönderebilir: "Street race" başlığı, "(count) vehicles lining up for an illegal race" mesajı, başlangıç çizgisinde, source olarak ilk yarışçı, ikon flag-checkered. Hangi ihbar script’i çalışıyorsa ona ulaşır.

Para

Bütün para paneldeki Money account hesabında şu hesap defteri sebepleriyle (ledger reason) hareket eder:

SebepNe zaman
streetrace:<raceId>Oluştururken ya da katılırken giriş ücreti alınır.
streetrace:refundBir giriş ücreti geri gelir (başlangıçtan önce ayrıldı, iptal edildi, yetersiz yarışçı, resource durdu).
streetrace:wonKazanan potu alır.
streetrace:splitSüre sınırı doldu; hâlâ yarışta olan her yarışçı bir pay alır.

Menüyü başka bir script’ten açmak

Server yarış menüsünü ai-streetraces:client:openMenu client event’iyle açar (/race bunu yapar). Menüyü kendi telefon uygulamana ya da etkileşim noktana koymak için kullan.

Taraf: Server -> client · Argümanlar: yok

// server
emitNet("ai-streetraces:client:openMenu", source);

Menü sadece oyuncunun şu an yapabileceklerini gösterir (harita işaretine yarış oluştur, bir davete katıl, başlat, iptal et, ayrıl ya da pes et) ve her seçim server’da kontrol edilir; bu yüzden menüyü herkes için açmak güvenlidir.

Özel event’ler ve callback’ler

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

AdYönNe taşır
ai-streetraces:createclient callback’i(buyIn, finishX, finishY): oyuncunun konumundan bitişe bir yarış oluştur.
ai-streetraces:joinclient callback’i(raceId): oyuncunun davet edildiği bir yarışa katıl (giriş ücretini öder).
ai-streetraces:leaveclient callback’i(): yarıştan ayrıl; ev sahibi başlangıçtan önce ayrılırsa yarış iptal olur.
ai-streetraces:beginclient callback’i(): ev sahibi katılma süresini hemen bitirir.
ai-streetraces:finishclient callback’i(): yarışçı bitişe ulaştı.
ai-streetraces:client:stateserver -> yarışçı(race, serverNow): oyuncunun içinde olduğu yarışın anlık görüntüsü (snapshot).
ai-streetraces:client:racerserver -> yarışçılar(racer, pot): bir yarışçı katıldı.
ai-streetraces:client:racerLeftserver -> yarışçılar(racerId, pot): bir yarışçı ayrıldı.
ai-streetraces:client:startserver -> yarışçılar(startAt, serverNow): geri sayım çalışıyor; startAt anında GO (server saati).
ai-streetraces:client:endedserver -> yarışçı(): yarış bu oyuncu için bitti.
ai-streetraces:client:inviteserver -> yeni bir yarışın yakınındaki oyuncular(invite, serverNow).
ai-streetraces:client:uninviteserver -> davet edilen oyuncular(raceId): yarış artık yarışçı almıyor.

Bu sayfada