Hocam merhaba, sıkıntınız esx_basicneeds ile alakalı. İtemları tüketebilmek için itemları esx_basicneeds/server/main.lua içerisine eklemeniz ve tükettiğinizde yemek barınızı mı yoksa su barınızı mı etkileyecek onu seçmeniz gerekiyor. Şöyle bir örnek vereyim:
ESX.RegisterUsableItem('bread', function(source)
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeInventoryItem('bread', 1)
TriggerClientEvent('esx_status:add', source, 'hunger', 200000)
TriggerClientEvent('esx_basicneeds: onEat', source)
xPlayer.showNotification(_U('used_bread'))
end)
Yukarıdaki kodu server/main.lua içerisinden aldım. Siz de kendi kullanmak istediğiniz itemleri yukarıdaki kod gibi aynı dosya içerisine eklemeniz gerekiyor. Yukarıdaki kodda "bread" isimli item'ı kullandığınızda "onEat" olacağını yani yenileceğini ve "hunger" barını yani açlık barını "200000" birim dolduracağını ardından dil dosyasında "used_bread" ile tanımlı yazının ekranda bildirim olarak çıkacağını yazıyor. Sizin de tüketmek istediğiniz her itemı yukarıdaki kod gibi server/main.lua'ya eklemeniz gerekiyor. Tekrar örnek vermek gerekirse diyelim ki siz database'inize "cocacola" adlı bir item eklediniz ve bu item'ı içebilmek istiyorsunuz. O zaman yukardaki kodu aynı dosya içerisinde kopyala yapıştır ile çoğaltarak şu şekilde düzenlemeniz gerekiyor:
ESX.RegisterUsableItem('cocacola', function(source)
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeInventoryItem('cocacola', 1)
TriggerClientEvent('esx_status:add', source, 'thirst', 200000)
TriggerClientEvent('esx_basicneeds: onDrink', source)
xPlayer.showNotification(_U('used_water'))
end)
Burada item ismimizi cocacola olarak değiştirdik ve içmek istediğimiz için ve su barımızı doldurmasını istediğimiz için "hunger" yerine "thirst" yazdık. Ardından kolayı içebilmek için "onEat" kısmını da "onDrink" olarak değiştirdik. Ardından susuzluğumuzla alakalı bir bir bildirim gelmesini istediğimiz için "used_bread" bildirimini "used_water" ile değiştirdik. Yukarda değiştirmedik ama örneğin tükettiğimiz item'ın içme barımızı daha az doldurmasını isteseydik örneğin "200000" birimi "100000" ile değiştirebilirdik. Genel olarak item tüketme mantığı bu şekilde gerçekleşiyor. Kolay gelsin.