QBCore'da öğe nasıl eklenir: items.lua, resimler, CreateUseableItem
QBCore'a özel öğe ekleyin: qb-core/shared/items.lua girişi ve alanları, qb-inventory'de resim, onu verme ve CreateUseableItem ile kullanılabilir yapma.
QBCore sunucunuza bir öğe eklediniz ve ya oyunda mevcut değil, simge yok, ya da kullanıldığında hiçbir şey yapmaz. İşte tam yol: öğe girişi, resim, verme ve kullanılabilir yapma.
1. Öğe girişi
qb-core/shared/items.lua açın. Öğeler QBShared.Items tablosundaki adına göre tuşlandırılmış girişlerdir. Sizinkinizi ekleyin, önceki girişten sonra virgül ile:
['burger'] = {
['name'] = 'burger',
['label'] = 'Burger',
['weight'] = 220,
['type'] = 'item',
['image'] = 'burger.png',
['unique'] = false,
['useable'] = true,
['shouldClose'] = true,
['description'] = 'A warm burger.',
},Her alan ne yapar:
| Alan | Anlam |
|---|---|
name |
Öğe adı; anahtar ile eşleşmeli, küçük harf, boşluk yok |
label |
Oyunculara gösterilen ad |
weight |
Bir öğenin ağırlığı |
type |
Normal öğeler için item, silahlar için weapon |
image |
Simgenin dosya adı, uzantı dahil |
unique |
Her kopya kendi yuvasıysa true (veri taşıyabilir) |
useable |
Oyuncular kullanabilirse true |
shouldClose |
Kullanımda envanteri kapatsın true |
description |
Etiketin altındaki metin |
Emin olmadığınızda aynı dosyada komşu bir öğeyi kopyalayın: dosya sürümünüzün beklediği alanları tamamen gösterir.
Dikkat:
items.lua'da bir virgül veya ayraç eksikse qb-core yüklenmesini durdurur ve bununla birlikte ona bağlı her betik. Düzenlendikten sonra her şey bozulursa, önce son girişine bakın.
2. Resim
image alanından adı ile bir .png'yi envanterun resimler klasörüne koyun:
qb-inventory/html/images/burger.pngKlasör, öğenin yiyecek, araç veya belge olması fark etmez. Farklı envanter kaynağında bunun yerine kendi resimler klasörünü kullanın. Eksik dosya boş bir simge gösterir ve ad image alanına tam olarak eşleşmelidir, uzantı dahil.
3. Yeniden başlatın ve test edin
items.lua qb-core başlatıldığında okunur. Sunucu konsolunda:
restart qb-coreOyuncular çevrimiçiyken qb-core'ı yeniden başlatmak bağlantıyı kesebilir veya ona bağlı betikleri bozabilir, bu nedenle canlı sunucuda sessiz bir zamanda bunu yapın veya tüm sunucuyu yeniden başlatın. Sonra kendinize admin komutu ile öğeyi verin:
/giveitem <player id> burger 1Bir betikten, sunucu tarafında:
local QBCore = exports['qb-core']:GetCoreObject()
local Player = QBCore.Functions.GetPlayer(source)
if Player then
Player.Functions.AddItem('burger', 1)
endBurada QBCore nil ise, attempt to index a nil value (global 'QBCore') bölümünü okuyun.
4. Kullanılabilir yapın
useable = true ayarı yalnızca kullanımı izin verir. Ayrıca sunucuda ne olacağını söylemelisiniz:
local QBCore = exports['qb-core']:GetCoreObject()
QBCore.Functions.CreateUseableItem('burger', function(source, item)
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
if Player.Functions.RemoveItem('burger', 1) then
TriggerClientEvent('QBCore:Notify', source, 'You ate the burger', 'success')
-- your effect here: heal, hunger, an animation event
end
end)Geri çağırma oyuncu kimliğini ve öğe verilerini alır. Yukarıdaki gibi kullanım tüketmeli ise öğeyi kendiniz kaldırın.
Betiğinizin yeniden başlatılması öğeyi çalışmayı durdurursa, kaydın betik başlatıldığında gerçekleştiğini unutmayın. CreateUseableItem'ı içeren betiği yeniden başlatın, yalnızca qb-inventory'i değil.
Veri taşıyan öğeler
Metin içeren not veya kod içeren bilet gibi bilgi taşıyan öğeler için unique'i true olarak ayarlayın. Her kopya daha sonra kendi verilerini info tablosunda tutabilir, bunu öğe eklerken verirsiniz:
Player.Functions.AddItem('ticket', 1, false, { code = 'A12' })Yaygın sorunlar
- Öğe adı uyuşmazlığı. Anahtar,
namealanı, resim adı veAddItem'a geçtiğiniz ad aynı kelime olmalıdır. - Öğe farklı bir dosyaya eklendi. Bazı betikler öğelerini betiğin içinde listenin bir kopyasına eklemenizi ister. Kurulum notlarını kontrol edin ve
qb-core/shared/items.lua'ya öğe ekleyin, aksi takdirde söylenilmedikçe. - Eski envanter. Eski qb-inventory sürümleri bazı öğe verilerinin kendi klasöründe ayrı bir kopyasını tutar. Bir öğe yanlış etiket gösterirse, başka bir şeyin tanımlamadığını kontrol edin.
QBox'ta
QBox qb-inventory yerine ox_inventory kullanır ve öğeleri ox_inventory/data/items.lua'da yaşar. Biçim farklıdır ve kullanılabilir öğe çağrıları da. ox_inventory'ye öğe ekleme bölümünü izleyin.
Dosyaları düzenlemeden öğe ekleme
Her yeni öğe için items.lua'yı değiştirmek ve çekirdek yeniden başlatmak yavaş kısmıdır. Item Creator yerine oyunda öğe oluşturmanıza izin verir.
Item Creator V2Animasyonlar, proplar, efektler ve daha fazlasıyla kullanılabilir eşyalar oluşturun — kod yazmadan.başlangıç €18,15Scripti gör →
Kontrol listesi
| Belirtisi | Çözüm |
|---|---|
| Öğe bulunamadı | qb-core/shared/items.lua'ya ekleyin ve restart qb-core |
| Düzenledikten sonra her şey bozuldu | items.lua'da söz dizimi hatası; virgül ve ayraçları kontrol edin |
| Boş simge | burger.png öğesini qb-inventory/html/images'ye image alanı ile eşleşecek şekilde ekleyin |
| Öğe hiçbir şey yapmaz | useable = true ayarlayın ve QBCore.Functions.CreateUseableItem kaydedin |
| Ad uyuşmamaz | Anahtar, name, resim ve kodda aynı adı kullanın |
| QBox sunucu | Bunun yerine ox_inventory'in data/items.lua'sını kullanın |
Kısa yanıtlar
QBCore'da öğeler nerede tanımlanır?
qb-core/shared/items.lua'da. Her öğe QBShared.Items içinde bir tablodur, adına göre tuşlandırılır ve simge envanterun resimler klasöründe aynı adın bir .png'sidir.
QBox, qb-core/shared/items.lua'yı kullanır mı?
Hayır. QBox ox_inventory kullanır; burada öğeler ox_inventory/data/items.lua'da yaşar. Bu makalede bağlantılı ox_inventory kılavuzuna bakın.
Öğem neden kullanılamıyor?
Ya öğe girişinde useable yanlıştır, ya da hiçbir kod onu kaydetmemiştir. useable = true olarak ayarlayın ve sunucuda QBCore.Functions.CreateUseableItem ile kaydedin.
