Neler yeni

Foruma hoş geldin, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Türkiye'nin İlk ve tek FiveM forum adresi

Forum adresimize hoş geldin FiveMTürk olarak amacımız siz değerli kullanıcılarımıza en aktif fikir ve paylaşım platformu sunmak bir yana en güvenilir şekilde alışveriş yapabileceğiniz bir platform sunmaktır.
DF DF
DF DF
DF DF

Çözüldü disc envanter ölünce item silme

  • Konbuyu başlatan osman47
  • Başlangıç tarihi
  • Cevaplar 40
  • Görüntüleme 7K

osman47

Üye
Yasaklandı
FT Kullanıcı
Katılım
4 yıl 9 ay
Mesajlar
208
Arkadaşlar öldükten sonra e çekince envanteri silmiyor itemler kalıyor ama kullanamıyorum bi nevi siliyor gibi oluyor ama envanterde duruyor itemler
 
DF
ambulancejob üzerinde değişiklik yapmalısınız.
 
DF
onu yapmıştım diye biliyorum şu şekilde
Config.RemoveWeaponsAfterRPDeath = true
Config.RemoveCashAfterRPDeath = true
Config.RemoveItemsAfterRPDeath = true
-- Let the player pay for respawning early, only if he can afford it.
Config.EarlyRespawnFine = true
Config.EarlyRespawnFineAmount = 5000
 
DF
onu yapmıştım diye biliyorum şu şekilde
Config.RemoveWeaponsAfterRPDeath = true
Config.RemoveCashAfterRPDeath = true
Config.RemoveItemsAfterRPDeath = true
-- Let the player pay for respawning early, only if he can afford it.
Config.EarlyRespawnFine = true
Config.EarlyRespawnFineAmount = 5000
server/main.lua üzerinde değişiklik yapmalısınız.
 
DF
ne gibi bir değişiklik yapılması lazım
 
DF
Aynı sorun bendede var e cektıkten sonra itemler hala gözükmeye devam ediyor kullan dediğimizde imkansız diye hata veriyor. /ensurelnv komutu kullanıyorum ama hiç bir işe yaramıyor
 
DF
Neyi değişçez bir yardımcı olsanız değişmen gerekmekte diyorsun ama nasıl yapcaz neyi değiştircez bunuda açıklasan cok iyi olur ?
 
DF
ulubey aynı sorun bendede var tam senin dediğin sorun işte acaba disc-death ile alakası varmıki ?
 
DF
şu disc geçtiğimden beri sorun bi türlü düzelmedi kimilerin itemleri kayboluyor kimilerin bagajı gorunmuyor bide en buyuk sorun bu e cekınce itemlerin gitmemesi imkansız demesi bilmiyorum araştırıp çözmek lazım :(
 
DF
şu disc geçtiğimden beri sorun bi türlü düzelmedi kimilerin itemleri kayboluyor kimilerin bagajı gorunmuyor bide en buyuk sorun bu e cekınce itemlerin gitmemesi imkansız demesi bilmiyorum araştırıp çözmek lazım :(
saveInventory kısmında sıkıntı yaratıyor. Onun için öyle oluyor function baştan yazıp data bağlantısını değiştirdim. gayet düzgün
 
DF
Bizede Yardımcı Olabilirmisin Sorun Yaşayan Arkadaşlarda sorunu boylelıkle çözebilir diye düşünüyorum :)
 
DF
Kod:
MySQL.Async.fetchAll('DELETE FROM disc_inventory WHERE data = @data AND owner = @owner', { ['@data'] = "null", ['@owner'] = owner })
RegisterNetEvent oluşturup ambulancejob içine trigger çektirmeniz gerekiyor.Onunda yerini aramayın.

client > esx_ambulancejob:removeItemsAfterRPDeath

aratın bunun altına
 
DF
e çektikten sonra /ensureInv yazınca sorun duzelıyor
 
DF
aynı sorunu bende yaşıyorum, e çekince gerçekleşen kod /server/main. luada
ESX.RegisterServerCallback('esx_ambulancejob:removeItemsAfterRPDeath', function(source, cb)
normalde envanter itemleri user_inventoryden çeker ama discte bunu disc-inventory aracılığı ile yapıyor(discte itemler slotlu vs olduğu için disctede kayıt duruyor). item resmi kalma olayı itemler gittikten sonra envanter yenilenmediği için kalıyor yani disc-inventory refreslenmediği için disc_inventoryhudda itemler kalıyo. ve galiba silahlar item olarak geçtiği için weaponları silen koddada sistem şaşırıyor o yüzden weaponları sildiği kodu kaldırdım. geçici çözüm oyunda /ensureInv yazmak bu kod envanterini yeniliyo ve resimlerde gidiyo. main lua ya ekstra olarak itemleri disc_inventoryden den silen kod karpuz karpuz dan aldım.: deleteInventory(xPlayer.getIdentifier(),'player') ekledim ve ordanda siliniyo
son olarak kod satırım şu şekilde:
Kod:
ESX.RegisterServerCallback('esx_ambulancejob:removeItemsAfterRPDeath', function(source, cb)
    local xPlayer = ESX.GetPlayerFromId(source)
    if Config.RemoveCashAfterRPDeath then
        if xPlayer.getMoney() > 0 then
            xPlayer.removeMoney(xPlayer.getMoney())
        end
        if xPlayer.getAccount('black_money').money > 0 then
            xPlayer.setAccountMoney('black_money', 0)
        end
    end
    if Config.RemoveItemsAfterRPDeath then
        for i=1, #xPlayer.inventory, 1 do
            if xPlayer.inventory[i].count > 0 then
                xPlayer.setInventoryItem(xPlayer.inventory[i].name, 0)
            end
        end
    end
    deleteInventory(xPlayer.getIdentifier(),'player')
    
--[[ burasının altı weaponları sildiği için yorum satırı yaptım ne kadar doğru bilmiyorum
    local playerLoadout = {}
    if Config.RemoveWeaponsAfterRPDeath then
        for i=1, #xPlayer.loadout, 1 do
            xPlayer.removeWeapon(xPlayer.loadout[i].name)
        end
    else -- save weapons & restore em' since spawnmanager removes them
        for i=1, #xPlayer.loadout, 1 do
            table.insert(playerLoadout, xPlayer.loadout[i])
        end
        -- give back wepaons after a couple of seconds
        Citizen.CreateThread(function()
            Citizen.Wait(5000)
            for i=1, #playerLoadout, 1 do
                if playerLoadout[i].label ~= nil then
                    xPlayer.addWeapon(playerLoadout[i].name, playerLoadout[i].ammo)
                end
            end
        end)
    end
]]
end)

bu şekilde kullanıyorum ve %80 sıkıntı olmuyo bazen resimler kalıyo ancak sunucu aktif değil o yüzden ne kadar sağlıklı çalışıyor bilmem
tahminimce bunu kesim çözümü itemler silindikten 10sn sonra envanteri refleşen kodu eklemek onuda beceremedim yardımcı olacak biri olursa sevinirm disc-inventory yenileyen kod aşağıda:

Kod:
RegisterCommand('ensureInv', function(source)
    local owner = ESX.GetPlayerFromId(source).identifier
    MySQL.Async.fetchAll('DELETE FROM disc_inventory WHERE data = @data AND owner = @owner', { ['@data'] = "null", ['@owner'] = owner })  -- Tgiann "Null" Fix
    ensureInventories(source)
end)

function ensureInventories(source)
    local player = ESX.GetPlayerFromId(source)
    ensurePlayerInventory(player)
    TriggerClientEvent('disc-inventoryhud:refreshInventory', source)
end
 
DF
aynı sorunu bende yaşıyorum, e çekince gerçekleşen kod /server/main. luada
ESX.RegisterServerCallback('esx_ambulancejob:removeItemsAfterRPDeath', function(source, cb)
normalde envanter itemleri user_inventoryden çeker ama discte bunu disc-inventory aracılığı ile yapıyor(discte itemler slotlu vs olduğu için disctede kayıt duruyor). item resmi kalma olayı itemler gittikten sonra envanter yenilenmediği için kalıyor yani disc-inventory refreslenmediği için disc_inventoryhudda itemler kalıyo. ve galiba silahlar item olarak geçtiği için weaponları silen koddada sistem şaşırıyor o yüzden weaponları sildiği kodu kaldırdım. geçici çözüm oyunda /ensureInv yazmak bu kod envanterini yeniliyo ve resimlerde gidiyo. main lua ya ekstra olarak itemleri disc_inventoryden den silen kod karpuz karpuz dan aldım.: deleteInventory(xPlayer.getIdentifier(),'player') ekledim ve ordanda siliniyo
son olarak kod satırım şu şekilde:
Kod:
ESX.RegisterServerCallback('esx_ambulancejob:removeItemsAfterRPDeath', function(source, cb)
    local xPlayer = ESX.GetPlayerFromId(source)
    if Config.RemoveCashAfterRPDeath then
        if xPlayer.getMoney() > 0 then
            xPlayer.removeMoney(xPlayer.getMoney())
        end
        if xPlayer.getAccount('black_money').money > 0 then
            xPlayer.setAccountMoney('black_money', 0)
        end
    end
    if Config.RemoveItemsAfterRPDeath then
        for i=1, #xPlayer.inventory, 1 do
            if xPlayer.inventory[i].count > 0 then
                xPlayer.setInventoryItem(xPlayer.inventory[i].name, 0)
            end
        end
    end
    deleteInventory(xPlayer.getIdentifier(),'player')
   
--[[ burasının altı weaponları sildiği için yorum satırı yaptım ne kadar doğru bilmiyorum
    local playerLoadout = {}
    if Config.RemoveWeaponsAfterRPDeath then
        for i=1, #xPlayer.loadout, 1 do
            xPlayer.removeWeapon(xPlayer.loadout[i].name)
        end
    else -- save weapons & restore em' since spawnmanager removes them
        for i=1, #xPlayer.loadout, 1 do
            table.insert(playerLoadout, xPlayer.loadout[i])
        end
        -- give back wepaons after a couple of seconds
        Citizen.CreateThread(function()
            Citizen.Wait(5000)
            for i=1, #playerLoadout, 1 do
                if playerLoadout[i].label ~= nil then
                    xPlayer.addWeapon(playerLoadout[i].name, playerLoadout[i].ammo)
                end
            end
        end)
    end
]]
end)

bu şekilde kullanıyorum ve %80 sıkıntı olmuyo bazen resimler kalıyo ancak sunucu aktif değil o yüzden ne kadar sağlıklı çalışıyor bilmem
tahminimce bunu kesim çözümü itemler silindikten 10sn sonra envanteri refleşen kodu eklemek onuda beceremedim yardımcı olacak biri olursa sevinirm disc-inventory yenileyen kod aşağıda:

Kod:
RegisterCommand('ensureInv', function(source)
    local owner = ESX.GetPlayerFromId(source).identifier
    MySQL.Async.fetchAll('DELETE FROM disc_inventory WHERE data = @data AND owner = @owner', { ['@data'] = "null", ['@owner'] = owner })  -- Tgiann "Null" Fix
    ensureInventories(source)
end)

function ensureInventories(source)
    local player = ESX.GetPlayerFromId(source)
    ensurePlayerInventory(player)
    TriggerClientEvent('disc-inventoryhud:refreshInventory', source)
end
execute command denedin mi ?
 
DF
Kod:
MySQL.Async.fetchAll('DELETE FROM disc_inventory WHERE data = @data AND owner = @owner', { ['@data'] = "null", ['@owner'] = owner })
RegisterNetEvent oluşturup ambulancejob içine trigger çektirmeniz gerekiyor.Onunda yerini aramayın.

client > esx_ambulancejob:removeItemsAfterRPDeath

aratın bunun altına
fetchAll ile sadece veri çekme işlemi sadece. Herhangi bir yazma/silme işlemi yapmak için fetchAll değil execute fonksiyonunu kullanmanız lazım. Çalıştırsan bile işe yaramaz. disc_inventory tablosunu elle düzeltmediysen data sütunu null olamaz ki null'u string olarak atmışsın null yazsa bile json olduğu için ["null"] olur. Bu sorunu da geçtim disc-inventoryhud'un içinde bir cron var belirli bir zaman geçtiğinde bellekte tutulan verileri veritabanına kaydediyor, yaptığın değişikliklerin uygulanması için sunucuyu kapatıp açman veya disc-base ve disc-inventoryhud'a restart atman lazım. Bu bile olsa kod en başından yanlış client'te MySQL komutları çalışmaz. İyi forumlar dilerim.
 
DF
fetchAll ile sadece veri çekme işlemi sadece. Herhangi bir yazma/silme işlemi yapmak için fetchAll değil execute fonksiyonunu kullanmanız lazım. Çalıştırsan bile işe yaramaz. disc_inventory tablosunu elle düzeltmediysen data sütunu null olamaz ki null'u string olarak atmışsın null yazsa bile json olduğu için ["null"] olur. Bu sorunu da geçtim disc-inventoryhud'un içinde bir cron var belirli bir zaman geçtiğinde bellekte tutulan verileri veritabanına kaydediyor, yaptığın değişikliklerin uygulanması için sunucuyu kapatıp açman veya disc-base ve disc-inventoryhud'a restart atman lazım. Bu bile olsa kod en başından yanlış client'te MySQL komutları çalışmaz. İyi forumlar dilerim.
client üstüne yapmayacaklar zaten. server üzerinden oluşturup client tarafına trigger çektirecekler. Mysql konusuna gelince de bunu kullanmıştım. gayet düzgün çalışıyor. Hatta direk kodları paylaşayım buyrun
Kod:
RegisterNetEvent("deniz:deletePlayerInventory")
AddEventHandler("deniz:deletePlayerInventory", function()
    local owner = ESX.GetPlayerFromId(source).identifier
    MySQL.Async.fetchAll('DELETE FROM disc_inventory WHERE data = @data AND owner = @owner', { ['@data'] = "null", ['@owner'] = owner })
    ensureInventories(source)
end)
İyi forumlar dilerim...
 
DF

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap

Bu konuyu görüntüleyen kullanıcılar

Tema düzenleyici

Tema özelletirmeleri

Granit arka planlar

Lütfen Javascript'i etkinleştirin!Javascript'i etkinleştirin!