Özelleştirme
Neredeyse her şey tek bir dosyada, config.lua içinde. İki bridge dosyası ve dil dosyaları da açıktır.
Hangi dosya neye karar verir
Section titled “Hangi dosya neye karar verir”| Dosya | Neye karar verir | Açık mı? |
|---|---|---|
config.lua | Dil, para birimi, etkileşim, yerleştirme sınırı ve fiyatlarıyla birlikte her sabit makine | Evet |
locales/*.lua | İstemler, bildirimler ve target etiketleri | Evet |
bridge/client_bridge.lua | Framework algılama, parayı okuma, bildirimler, yardım metni ve ox-target / qb-target / drawtext bölgeleri | Evet |
bridge/server_bridge.lua | Para veya jeton alma ve ödeme, karakter adları ve kimlikleri, bildirimler ve kullanılabilir kabin eşyaları | Evet |
items/ | ox, qb ve ESX için eşya tanımları ve items/images/ içindeki ikonlar | Evet |
ui/ | Kabin menüsü ve yedi oyun; ui/games/ içinde her biri ayrı bir klasör | Escrow’suz |
client/data.lua | Her kabin modeli için kamera ve ekran konumu | Escrow’lu |
mic_arcade_props/ | Kabin modelleri ve ekran renderer’ı | Yalnızca assetler |
Genel — config.lua
Section titled “Genel — config.lua”| Seçenek | Ne yapar | Varsayılan |
|---|---|---|
Config.Locale | locales/ içindeki hangi dosyanın kullanılacağı | 'en' |
Config.PaymentType | Bir oyunun neyle ödendiği: cash, bank, both veya item | 'item' |
Config.PaymentItem | PaymentType item olduğunda para birimi olarak kullanılan eşya | 'arcade_coin' |
Config.Interaction | ox-target (tire ile), qb-target veya drawtext | 'ox-target' |
Config.MaxArcadesPerPlayer | Bir karakterin aynı anda dışarıda tutabileceği yerleştirilmiş makine sayısı | 3 |
Ödeme türleri
Section titled “Ödeme türleri”| Değer | Ne olur |
|---|---|
cash | Nakitten ödenir (ESX’te money hesabı) |
bank | Banka hesabından ödenir |
both | Önce nakit; yetmezse kalanı bankadan alınır |
item | Config.PaymentItem ile ödenir, fiyatın her birimi için bir eşya |
DuoFight bahisleri ve kazançları için de aynı para birimi kullanılır.
Makineler ve fiyatlar — Config.Arcades
Section titled “Makineler ve fiyatlar — Config.Arcades”Kabin modeli başına bir girdi. Her girdide bir Price ve isteğe bağlı olarak istediğiniz sayıda sabit konum (x, y, z ve yönden oluşan vec4) bulunur — her birinde bir makine oluşturulur.
| Kabin | Model | Oyun | Fiyat | Hazır haliyle sabit |
|---|---|---|---|---|
| DuoFight | mic_arcade_duofight | İki oyunculu dövüş oyunu ya da bilgisayara karşı | 0 | Hayır (yorum satırı) |
| Alien | mic_arcade_alien | Alien | 100 | Hayır (yorum satırı) |
| Breakout | mic_arcade_brick | Breakout | 100 | Hayır (yorum satırı) |
| Pixel | mic_arcade_pixel | Pixel | 100 | Evet |
| Race | mic_arcade_race | Race | 100 | Evet |
| Tower | mic_arcade_tower | Tower | 100 | Evet |
| Road | mic_arcade_road | Road | 100 | Evet |
- Sabit bir makine eklemek için o modelin altındaki listeye bir konum ekleyin. Makinenin olmasını istediğiniz yerde durun, koordinatlarınızı ve yönünüzü alın ve yazın.
- Birini kaldırmak için konumunu silin veya yorum satırı yapın.
Price, o modelin yerleştirilmiş makineleri için geçerli olmaya devam eder. 0fiyatı kabini ücretsiz yapar.- Breakout kabininin orijini diğerlerinden daha aşağıdadır — hazır gelen Breakout konumu komşularından z ekseninde yaklaşık 0,7 daha aşağıdadır. Bir tane eklerken siz de aynısını yapın.
Price, o modelin yerleştirilmiş bir kabininin tahsil ettiği tutardır.
Yerleştirilen makineler
Section titled “Yerleştirilen makineler”Bir kabin eşyası (arcade_alien, arcade_race…) yerleştirmeyi başlatır:
| Tuş | Ne yapar |
|---|---|
| Etrafa bakın | Önizlemeyi baktığınız yere taşır |
| Fare tekerleği | Döndürür |
| E | Yerleştirir ve eşyayı alır |
| ESC / Backspace | İptal eder; eşya sizde kalır |
Yalnızca sahibi, makinenin üzerinde Pick Up Arcade seçeneğini görür (drawtext ile istemde gösterilen ikinci tuş). Geri almak eşyayı geri verir. Biri tarafından kullanılan bir makine geri alınamaz.
Config.MaxArcadesPerPlayer, bir karakterin şu anda yerleştirmiş olduğu makineleri sayar.
DuoFight bahisleri
Section titled “DuoFight bahisleri”DuoFight’ta iki oyuncuyu seçmek bir bahis ister: para biriminizle 1, 5, 25, 50 veya 100. Ev sahibi bunu öder ve makinede bekler; makineyi kullanan sonraki oyuncuya maç teklif edilir ve katılmak için aynı tutarı öder.
| Sonuç | Ne olur |
|---|---|
| Galibiyet | Kazanan iki bahsi de alır |
| Beraberlik | Her oyuncu bahsini geri alır |
| Bir oyuncu maçın ortasında ayrılır | Hükmen yenilir: diğer oyuncu iki bahsi de kazanır |
| Ev sahibi kimse katılmadan ayrılır | Maç iptal edilir; ev sahibinin bahsi iade edilmez |
| Bir oyuncunun bağlantısı kopar | Maç ödeme yapılmadan iptal edilir |
Skor tabloları
Section titled “Skor tabloları”DuoFight dışındaki her oyun, her karakterin en iyi skorunu mic_arcade_leaderboard tablosuna kaydeder ve makinede ilk on’u gösterir. İsimler, framework’ünüzdeki karakter adıdır. Bir skor tablosunu sıfırlamak için sunucu kapalıyken o tabloyu (veya yalnızca bir oyunun satırlarını) boşaltın.
Diller
Section titled “Diller”locales/ içinde on dil gelir: en, es, fr, de, it, pt, nl, ja, ru, zh. Config.Locale değerini koda ayarlayın.
Bir tane eklemek için locales/en.lua dosyasını kodunuzun adını taşıyan yeni bir dosyaya kopyalayın, Locales['en'] ifadesini kendi kodunuzla değiştirin, her satırın sağ tarafını çevirin ve Config.Locale değerini ayarlayın. Eksik bir anahtar Translation [xx][key] does not exist olarak görünür — İngilizceye geri dönüş (fallback) yoktur.
Dil dosyaları oyun dünyasının gösterdiklerini kapsar: target etiketleri, yardım istemleri ve bildirimler. Oyunların içindeki metin ui/games/ altındadır.
Bridge
Section titled “Bridge”| Dosya | Neleri kapsar |
|---|---|
bridge/client_bridge.lua | Framework algılama, oyuncuya gösterilen para veya jeton miktarı, Bridge.Notify, yardım metni ve ox-target, qb-target ya da drawtext için her makinedeki etkileşim bölgesi |
bridge/server_bridge.lua | Framework algılama, para veya eşya alma ve ödeme (Bridge.RemoveMoney, Bridge.AddMoney), kabin eşyaları, karakter adı ve kimliği, sunucu bildirimleri ve kullanılabilir kabin eşyalarının listesi |
Farklı bir bildirim kaynağı: istemci dosyasında Bridge.Notify, sunucu dosyasında Bridge.ServerNotify değerini değiştirin. Yetersiz para mesajları Bridge.RemoveMoney içinden gönderilir.
Farklı bir target kaynağı: istemci dosyasındaki Bridge.RegisterArcadeInteraction ve Bridge.RemoveArcadeInteraction, target’lara dokunulan tek yerlerdir.
Başka bir envanter: jetonlar ve kabin eşyaları, server_bridge.lua içinde framework’ün kendi oyuncu fonksiyonları üzerinden okunur ve silinir. Envanteriniz bunlara yanıt vermiyorsa Bridge.RemoveMoney, Bridge.AddMoney, Bridge.RemoveSpecificItem, Bridge.AddSpecificItem ve Bridge.GetMoney fonksiyonlarını kendi envanterinize yönlendirin.
Bir kabin için yeni bir kullanılabilir eşya: server_bridge.lua dosyasının en altındaki UsableArcades tablosu her eşyayı kabin modeline eşler.