Özelleştirme
Ayarlar config.lua içindedir. Framework’ünüzle, envanterinizle ve target kaynağınızla konuşan dosyalar açık bırakılmıştır; böylece işleri farklı yapan bir sunucu, şifreli çekirdeğe dokunmadan bunları uyarlayabilir.
Hangi dosya neyi belirler
Section titled “Hangi dosya neyi belirler”| Dosya veya klasör | Neyi belirler | Açık mı? |
|---|---|---|
config.lua | Bu sayfadaki her ayar, bildirim fonksiyonu, eşyalar ve aromalar | Açık |
locales/*.lua | Her metin: menü, target etiketleri, mesajlar. Her dil için bir dosya | Açık |
server_functions.lua | Bir oyuncuyu almak, eşya eklemek, çıkarmak ve kontrol etmek, kullanılabilir eşyaları kaydetmek, aroma listesi callback’i ve ReduceStress | Açık |
client/client_functions.lua | Oyuncu verisini okumak ve hazırlık menüsü için meslek kontrolü | Açık |
target/target.lua | Nargileler ve mobilyalar üzerindeki her target seçeneği, ox_target ve qb-target için | Açık |
client/client.lua, server/server.lua, locale.lua | Yerleştirme, hortum, duman, sahiplik ve malzemeler | Şifreli |
html/ | Hazırlık menüsü: index.html, style.css, script.js | Düz dosyalar |
inventory_items/ | ESX, ox_inventory ve QBCore için hazır eşya tanımları | Referans |
inventory_images/ | Her eşya için bir ikon | Varlıklar |
mic_hookah_prop/stream/ | On nargile modeli | Varlıklar, ayrı kaynak |
Framework, target ve görseller
Section titled “Framework, target ve görseller”| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.Locale | Dil | en |
Config.Framework | esx, qbcore veya qbox | esx |
Config.ESXResourceName | ESX’in klasör adı | es_extended |
Config.QBResourceName | QBCore’un klasör adı | qb-core |
Config.QBoxResourceName | QBox’un klasör adı | qbx_core |
Config.Target | ox_target veya qb-target | ox_target |
Config.QBTargetResourceName | qb-target’in klasör adı | qb-target |
Config.InventoryImagePath | Hazırlık menüsünün aroma ikonlarını yüklediği yer | nui://ox_inventory/web/images/ |
Erişim
Section titled “Erişim”| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.AdminGroups | Herhangi bir nargilenin veya mobilyanın menüsünü açabilen ve onu alabilen gruplar. false, herkesin yönetici sayılması demektir | false |
Config.AllowedJobs | Hazırlık menüsünü açmasına izin verilen meslekler. false herhangi bir meslek demektir | false |
Varsayılan olarak herkes herkesin nargilesini yönetebilir. Her nargilenin onu koyan oyuncuya ait olmasını sağlamak için yetkili gruplarınızı Config.AdminGroups içinde listeleyin — örneğin admin ve superadmin. ESX’te liste oyuncunun grubuyla, QBCore ve QBox’ta ise oyuncunun permission alanıyla eşleştirilir.
Bir liste tanımlıyken:
| Kim | Open Setup Menu | Pickup | Grab Hose |
|---|---|---|---|
| Onu koyan oyuncu | evet (mesleğine izin veriliyorsa) | evet | evet |
| Bir yönetici grubu | evet (mesleğine izin veriliyorsa) | evet | evet |
| Başka herkes | hayır | hayır | evet |
Config.AllowedJobs yalnızca hazırlık menüsünü korur. Herkes hortumu tutup yanan bir nargileyi içebilir.
İçme ve malzemeler
Section titled “İçme ve malzemeler”| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.MaxActiveTime | Kömür ve su için “dolu”nun anlamı. Bir hookah_coal veya hookah_water onu bu değere kadar doldurur | 1800 |
Config.ConsumptionPerPuff | Her nefesin charcoal ve water değerinden ne kadar düşürdüğü | 10 ve 10 |
Config.MaxPuffsPerSession | Yukarıdaki ikisinden hesaplanır (1800 ÷ 10 = 180). Bilginiz için; script bunu okumaz | 180 |
Config.MaxHoseDistance | Hortumun kopmadan önce uzadığı metre | 3.5 |
Config.MaxSimultaneousUsers | Aynı nargileyi içen kişiler için öngörülen üst sınır | 4 |
Config.Stress | Her nefeste ReduceStress fonksiyonunu çağırır | true |
Nargile bir saate göre sönmez: kömür ve su yalnızca biri nefes aldığında azalır. İkisinden biri sıfıra ulaştığında nargile söner ve yeniden doldurulması gerekir.
Config.Stress açıkken server_functions.lua içindeki ReduceStress, her nefeste oyuncunun sunucu kimliğini alır. Boş ve yorum satırı örneklerle gelir: stres veya HUD kaynağınızdan bir client olayı, bir export ya da bir server olayı. Çağrınızı oraya koyun.
| Seçenek | Ne işe yarar | Varsayılan |
|---|---|---|
Config.Particle | Hangi partikülün kullanılacağı: bir dict ve bir name | scr_recartheft / scr_wheel_burnout |
Config.VapeExhale | Dumanın boyutu | 0.5 |
Config bu ikisini “ne yaptığınızı bilmiyorsanız değiştirmeyin” olarak işaretler. Her bulut üç saniye sürer ve 150 metre içindeki oyunculara gösterilir.
Nargileler, mobilyalar ve aromalar
Section titled “Nargileler, mobilyalar ve aromalar”Tam listeler 🎒 Eşyalar sayfasındadır.
Config.HookahItems — eşya adı → model. Bir nargile eklemek için modelin yüklenmesi (stream) gerekir (örneğin mic_hookah_prop/stream/ içinde, .ytyp dosyasında bir girdiyle); ardından satırı buraya ve eşyayı envanterinize ekleyin.
Config.PlaceableProps — eşya adı → propModel, type (furniture) ve isChair. Her temel oyun prop’u çalışır. Sit Down sunması gereken her şeyde isChair = true ayarlayın.
Config.Flavors — eşya adı → ayarlar:
| Alan | Ne işe yarar |
|---|---|
Label | Hazırlık menüsünde gösterilen ad |
SmokeColor | Dumanın R, G, B rengi |
ScreenEffect | İçen kişiye oynatılan bir GTA ekran efekti adı veya hiçbiri için false |
EffectDuration | Ekran efektinin sürdüğü saniye |
Config, Config.Flavors yanında bir ekran efekti adları listesine bağlantı verir. Bir aroma eklemek için bir girdiyi kopyalayın, ona yeni bir eşya adı verin ve eşyayı ve ikonunu envanterinize ekleyin.
Bildirimler
Section titled “Bildirimler”config.lua içindeki Config.Notify her mesajı gönderir: ESX’te ShowNotification, QBCore ve QBox’ta Functions.Notify, aksi halde konsol. Kendi bildirim kaynağınızı kullanmak için gövdesini değiştirin.
Diller
Section titled “Diller”locales/ içinde on bir dosya gelir: en, es, fr, de, it, pt, ru, cn, nl, pl, tr. Config.Locale ile birini seçin.
Config.Locale üstündeki yorum jp değerinden de söz eder, ancak Japonca dosya gelmez; bunu ayarlamak “Locale [jp] does not exist” gösterir.
Her dosya hazırlık menüsünü, target etiketlerini ve mesajları kapsar. Birkaç kelime dil dosyalarında değil, Lua içinde yazılıdır: yerleştirme ipuçları (Rotate Right, Rotate Left, Height Up, Height Down, Place Prop, Cancel), “You are already placing an object” ve boş bir aroma için “None”.
Bir dil eklemek için: locales/en.lua dosyasını kopyalayın, en üstteki anahtarı kendi kodunuza çevirin ve metni çevirin. Manifest locales/ içindeki her şeyi kendisi yükler, dolayısıyla kaydedilecek başka bir şey yoktur. Config.Locale ayarlayın, refresh yapın ve yeniden başlatın.
Sunucunuza uyarlamak
Section titled “Sunucunuza uyarlamak”| Değiştirmek için | Düzenleyin |
|---|---|
| Özel bir framework | config.lua sonundaki framework nesnesi ile server_functions.lua ve client/client_functions.lua içindeki fonksiyonlar |
| Farklı bir envanter | server_functions.lua içindeki AddItem, RemoveItem ve HasItem ile altındaki kullanılabilir eşya kaydı |
| Farklı bir target | target/target.lua — seçenek listeleri ortaktır, yalnızca iki addModel / AddTargetModel çağrısı farklıdır |
| Target etiketleri, ikonları veya mesafesi | İkonlar ve mesafe için target/target.lua, etiketler için locales/ |
| Meslek kuralları | client/client_functions.lua içindeki CheckJobAccess |
ox_inventory başlatılmış QBCore ve QBox’ta server_functions.lua, QBCore eşya bridge’inin kullanımı iletmediği kurulumlar için bir yedek olarak her nargile ve mobilya eşyasını ox_inventory’nin kendi kullanım kancası (hook) üzerinden de kaydeder.
Tuşlar ve komutlar
Section titled “Tuşlar ve komutlar”| Tuş veya komut | Ne zaman | Ne işe yarar |
|---|---|---|
| E | Elinde nargile varken | Yerleştirmeyi başlatır |
| X | Elinde nargile varken | Yerleştirmeden kaldırır |
| Fare tekerleği | Yerleştirirken | Önizlemeyi döndürür |
| Yukarı / aşağı ok | Yerleştirirken | Önizlemeyi yükseltir veya alçaltır |
| E | Yerleştirirken | Yere koyar |
| X | Yerleştirirken | İptal eder |
| E | Yanan bir nargilenin hortumu elindeyken | Bir nefes alır |
| X (“Hookah - Stand Up X”) | Otururken | Ayağa kalkar. Her oyuncunun FiveM tuş atamalarında yeniden atanabilir |
/hookah:chair:stand_up | Otururken | Aynısı, komut olarak |