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:

lua
['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:

text
qb-inventory/html/images/burger.png

Klasö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:

text
restart qb-core

Oyuncular ç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:

text
/giveitem <player id> burger 1

Bir betikten, sunucu tarafında:

lua
local QBCore = exports['qb-core']:GetCoreObject()

local Player = QBCore.Functions.GetPlayer(source)
if Player then
    Player.Functions.AddItem('burger', 1)
end

Burada 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:

lua
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:

lua
Player.Functions.AddItem('ticket', 1, false, { code = 'A12' })

Yaygın sorunlar

  • Öğe adı uyuşmazlığı. Anahtar, name alanı, resim adı ve AddItem'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.

Bu sorunu yaşatmayan scriptler

Item Creator V2Animasyonlar, proplar, efektler ve daha fazlasıyla kullanılabilir eşyalar oluşturun — kod yazmadan.Scripti gör →Shop CreatorBir dakikadan kısa sürede dükkân kurun — sahipler, çalışanlar, kasalar ve soygunlar dahil.Scripti gör →

Okumaya devam edin