Özelleştirme
Değiştirebileceğiniz her şey config.lua ve locales/ içindedir. Uygulamanın ekranları dışında kaynağın geri kalanı şifrelidir (escrow).
Hangi dosya neyi belirler
Section titled “Hangi dosya neyi belirler”| Dosya | Neyi belirler | Düzenlemeye açık |
|---|---|---|
config.lua | Framework, para, başarısızlık olasılığı, polis, App Store girdisi, uyuşturucular, seviyeler, bölgeler | Evet |
locales/*.lua | Telefon bildirimleri, her dil için bir dosya | Evet |
locales/locales.lua | Dil dosyalarının doldurduğu dil tablosu | Evet |
ui/img/ | Uygulamanın görselleri: her uyuşturucu için bir tane, ana ekran logosu ve uygulama ikonu (icon.png) | Evet |
ui/index.html, ui/styles.css, ui/script.js | Uygulamanın ekranları, düzeni ve buton etiketleri | — |
player_data.json | Her satıcının satışları, seviyesi ve bonusu. Kaynak tarafından yazılır | Evet |
client/, server/ | Mantık | Şifreli |
Ayrı bir bridge klasörü yoktur: framework aşağıdaki Config.Framework ile seçilir.
Framework ve para
Section titled “Framework ve para”| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.Framework | "ESX" veya "QB", büyük harflerle. QBox üzerinde "QB" kullanın — QBox, QBCore kaynaklarını uyumluluk katmanı üzerinden çalıştırır | "ESX" |
Config.esxResourceName | ESX’in kaynak adı, sizinki standart olanı değilse | "es_extended" |
Config.qbResourceName | QBCore’un kaynak adı, sizinki standart olanı değilse. QBox’ta "qb-core" olarak bırakın | "qb-core" |
Config.BlackMoney | Temiz nakit yerine kara parayla öder | true |
Config.MoneyAsItem | Bir hesaba değil, envanter eşyası olarak öder | true |
Config.MoneyItem | MoneyAsItem açık ve BlackMoney kapalıyken ödenen eşya | "money" |
Oyuncunun gerçekte aldığı:
| ESX | QBCore / QBox | |
|---|---|---|
| Kara para, eşya olarak | black_money eşyası | blackmoney eşyası |
| Kara para, hesap olarak | black_money hesabı | blackmoney eşyası |
| Temiz para, eşya olarak | Config.MoneyItem içindeki eşya | Config.MoneyItem içindeki eşya |
| Temiz para, hesap olarak | Nakit | Nakit |
Anlaşma
Section titled “Anlaşma”| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.Failure | Alıcının, oyuncu kapıyı çaldıktan sonra onu geri çevirme olasılığı, 0 ile 100 arası. Uyuşturucular oyuncuda kalır | 55 |
Config.DealTimeout | Teklifin süresi dolmadan kapıya ulaşmak için saniye | 300 |
Config.MinimumPolice | Birinin alım yapabilmesi için çevrimiçi olması gereken polis sayısı. 0 kontrolü kapatır | 1 |
Satılan miktar, oyuncu SELL düğmesine dokunduğunda uyuşturucunun minAmount ve maxAmount değerleri arasından rastgele seçilir; kapı, uyuşturucunun bölgelerinden rastgele seçilir.
| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.PoliceJobs | Polis sayılan ve ihbar alan meslekler | police, sheriff |
Config.PoliceAlertChance | Başarılı bir satışın ihbar edilme olasılığı, 0 ile 100 arası | 20 |
Config.PoliceNotifyAppName | Memurun lb-phone’undaki ihbarın başlığı | "Police Dispatch" |
Config.PoliceBlipSprite | Satışın gerçekleştiği yere konan blip | 161 |
Config.PoliceBlipColor | Rengi | 38 |
Config.PoliceBlipScale | Boyutu | 1.0 |
Config.PoliceBlipDuration | Blip’in kaybolmasına kadar geçen saniye | 120 |
Config.PriceMultipliers | Çevrimiçi polis sayısına göre fiyat kademeleri; her biri minPolice, maxPolice ve multiplier içerir | Aşağıya bakın |
Birlikte gelen kademeler: 1–2 memur ×1.0, 3–4 ×1.2, 5–6 ×1.4, 7–9 ×1.6, 10 veya daha fazla ×2.0. Hiçbir kademenin kapsamadığı bir memur sayısında fiyatlar ×1.0’da kalır.
Fiyat nasıl hesaplanır. Seviye bonusu ve polis bonusu çarpılmaz, toplanır: 5. seviye bir satıcı (×1.5) altı memur çevrimiçiyken (×1.4) satış yaparsa temel fiyatın 1 + 0.5 + 0.4 = ×1.9’unu alır.
PoliceJobs içindeki bir mesleğe sahip her memur ihbarı alır; görevde olma (on-duty) kontrolü yoktur.
Uygulamayı kimler görür
Section titled “Uygulamayı kimler görür”| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.BlockedAppJobs | Uygulamayı göremeyen veya kuramayan meslekler. Oyuncu yüklendiğinde ve mesleği her değiştiğinde kontrol edilir | police, sheriff, ambulance, mechanic |
App Store girdisi
Section titled “App Store girdisi”| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.name | Uygulamanın telefondaki adı | "Drug Dealer" |
Config.description | App Store’da adının altındaki satır | "Deal dope, dodge the cops" |
Config.defaultApp | true onu her telefona önceden yüklü koyar; false App Store’dan indirilmesi anlamına gelir | false |
Config.size | Mağazada gösterilen boyut, KB cinsinden | 25400 |
Config.price | Kurulumun maliyeti | 0 |
Uygulama ikonu ui/img/icon.png dosyasıdır. Değiştirmek için dosyayı değiştirin.
Uyuşturucular
Section titled “Uyuşturucular”Config.drugs bir listedir; her girdi uygulamada bir düğmedir.
| Alan | Ne işe yarar |
|---|---|
item | Satılan envanter eşyası |
label | Uygulamada ve bildirimlerde gösterilen ad |
price | Bonuslardan önce birim fiyatı |
minAmount, maxAmount | Her anlaşmanın miktarının çekildiği aralık |
zones | Bir alıcının Config.NPCLocations içindeki hangi bölgelerde olabileceği |
image | ui/img/ içindeki bir dosya adı |
minLevel | Satabilmek için gereken satıcı seviyesi |
Bir uyuşturucu eklemek için bir girdi ekleyin, görselini ui/img/ içine koyun ve eşyanın envanterinizde var olduğundan emin olun. Birlikte gelen listenin kullandığı, zaten orada duran görseller: baggy_weed.png, baggy_cocaine.png, lsd.png, baggy_meth.png, mushroom.png, opium.png, crack.png, drug_heroin.png, xtc_baggy.png, oxy.png, drug_lean.png, drug_hash.png.
Seviyeler
Section titled “Seviyeler”Config.levels rütbeleri sırayla listeler. Her birinin bir level numarası, bir name, salesRequired (birim değil, toplam anlaşma sayısı) ve bonusMultiplier değeri vardır.
| Seviye | Ad | Satış | Bonus |
|---|---|---|---|
| 1 | Newbie | 0 | ×1.0 |
| 2 | Rookie | 25 | ×1.1 |
| 3 | Hustler | 75 | ×1.2 |
| 4 | Dealer | 150 | ×1.35 |
| 5 | Trader | 300 | ×1.5 |
| 6 | Boss | 600 | ×1.75 |
| 7 | Kingpin | 1200 | ×2.0 |
| 8 | Overlord | 2000 | ×2.25 |
| 9 | Tycoon | 3500 | ×2.5 |
| 10 | Legend | 5000 | ×3.0 |
Bunları salesRequired değerine göre artan sırada tutun; seviye, listede aşağı doğru yürünerek hesaplanır.
| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.dataFile | Kaynak klasöründe her satıcının ilerlemesini saklayan dosya | "player_data.json" |
İlerleme karakter başına tutulur: ESX identifier’ı veya QBCore citizen ID’si.
Bölgeler
Section titled “Bölgeler”Config.NPCLocations numaralandırılmıştır; bir uyuşturucunun zones alanının atıfta bulunduğu şey bu numaralardır. Her bölgenin şunları vardır:
| Alan | Ne işe yarar |
|---|---|
peds | Ped modelleri; kapıyı açmak için rastgele biri seçilir |
locations | Kapı konumları (x, y, z ve heading) |
| Bölge | Alan | Birlikte gelen kapı |
|---|---|---|
| 1 | Grove | 1 |
| 2 | İskele ve plaj | 10 |
| 3 | Vinewood evleri | 10 |
| 4 | Sandy Shores | 8 |
| 5 | Paleto Bay | 9 |
Bölge ve kapıları serbestçe ekleyebilirsiniz. Bilmeniz gereken bir şey: polis ihbarındaki bölge adı kaynağın kendisinden gelir ve yalnızca 1’den 5’e kadar olan bölgeleri bilir; eklediğiniz her bölge “Unknown Zone” olarak bildirilir.
Diller
Section titled “Diller”locales/ içinde dokuz dil gelir: en, es, fr, de, it, pt, pl, ru ve tr. Config.Locale değerini bunlardan birine ayarlayın.
Bir dil eklemek için:
locales/en.luadosyasını yeni bir dosyaya kopyalayın, örneğinlocales/nl.lua.- En üstteki kodu
nlolarak değiştirin ve metni çevirin. locales/nl.luadosyasınıfxmanifest.luaiçindekishared_scriptslistesine, diğerlerinin yanına veconfig.luaüstüne ekleyin.Config.Locale = "nl"olarak ayarlayın, ardındanrefreshyapın ve kaynağı yeniden başlatın.
Dil dosyaları telefon bildirimlerini kapsar. Uygulamanın kendi düğmeleri — DRUGS, PROFILE, SELL, CANCEL ve profil ekranı — ui/script.js ve ui/index.html içinde yazılıdır.