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

Cevaplandı DİSC-İNVENTORYHUD ÇANTA SİSTEMİ NASIL EKLENİR?

  • Konbuyu başlatan Sethh
  • Başlangıç tarihi
  • Cevaplar 5
  • Görüntüleme 571

Sethh

Üye
FT Kullanıcı
Katılım
3 yıl 9 ay 26 gün
Mesajlar
150
Merhaba, disc-inventoryhud için çanta sistemi eklemek istiyorum, nasıl yapabilirim? çantayı kullandığımda başka bir yere sağ tarafa slot açmasını istemiyorum, üzerimize çanta aldığımızda kilo artsın istiyorum, fakat 2'side olur ama sadece kilo eklerse daha iyi olur. Bilen varsa yardımcı olursa sevinirim
 
Bir Stash Ekliyebilirsin
 
çalışır mı bilmiyorum ama eskiden bu kodları kullanıyordum:

Öncelikle server klasörüne bag.lua diye bir dosya ekle ve ardından bag.lua aç ve içine bu kodları ekle:


C++:
ESX = nil

TriggerEvent('esx:getSharedObject', function(obj)
    ESX = obj
end)

ESX.RegisterUsableItem('bag', function(source)
    TriggerClientEvent('disc-inventoryhud:canta', source)
end)

Citizen.CreateThread(function()
    TriggerEvent('disc-inventoryhud:RegisterInventory', {
        name = 'canta',
        label = 'Çanta',
        slots = 80,
        weight = 50
    })
end)

server/player.lua kısmına şu kodları ekle:

C++:
function getPlayerDisplayInventory(identifier, cb)
    local player = ESX.GetPlayerFromIdentifier(identifier)
    local bagc = player.getInventoryItem('bag').count
    if bagc >= 1 then
        bagc = Config.BagWeight
        player.setMaxWeight(ESX.GetConfig().MaxWeight + Config.BagWeight)
    else
        bagc = 0
        player.setMaxWeight(24)
    end
    getInventory(identifier, 'player', function(inventory)
        local itemsObject = {}

        for k, v in pairs(inventory) do
            local esxItem = player.getInventoryItem(v.name)
            local item = createDisplayItem(v, esxItem, tonumber(k))
            table.insert(itemsObject, item)
        end

        local inv = {
            invId = identifier,
            invTier = InvType['player'],
            bagcount = bagc,
            inventory = itemsObject,
            cash = player.getMoney(),
            bank = player.getAccount('bank').money,
            black_money = player.getAccount('black_money').money,
        }
        cb(inv)
    end)
end

inventory.lua'ya bu kodları ekle:

C++:
function getDisplayInventory(identifier, type, cb, source)
    local player = ESX.GetPlayerFromId(source)
    local bagc = player.getInventoryItem('bag').count
    if bagc >= 1 then
        bagc = 10
    else
        bagc = 0
    end
    InvType[type].getInventory(identifier, function(inventory)
        local itemsObject = {}

        for k, v in pairs(inventory) do
            if k ~= 'cash' and k ~= 'black_money' then
                local esxItem = player.getInventoryItem(v.name)
                local item = createDisplayItem(v, esxItem, tonumber(k))
                item.usable = false
                item.giveable = false
                item.canRemove = false
                table.insert(itemsObject, item)
            end
        end
        local inv
        if type == 'player' then
            local targetPlayer = ESX.GetPlayerFromIdentifier(identifier)
            inv = {
                invId = identifier,
                invTier = InvType[type],
                inventory = itemsObject,
                bagcount = bagc,
                cash = targetPlayer.getMoney(),
                black_money = targetPlayer.getAccount('black_money').money
            }
        else
            inv = {
                invId = identifier,
                invTier = InvType[type],
                inventory = itemsObject,
                bagcount = bagc,
                cash = inventory['cash'] or 0,
                black_money = inventory['black_money'] or 0
            }
        end
        cb(inv)
    end)
end

ardından inventory.js dosyasını aç ve 'window.addEventListener' kısmını bul, ardından içine altta verdiğim ss bak, o kısma yine altta vereceğim kodları ekle:

43910

ss'deki işaretli olan kısımların altında bagWeight = event.data.bag; var onları kendi envanterine ekle.

Buda kod:


C++:
bagWeight = event.data.Bag;

ardından inventory.js 'function setupPlayerSlots()' bu kodu bul be bununla değiştir:

C++:
function setupPlayerSlots() {
    $('#inventoryOne').html("");
    $('#player-inv-id').html("");
    $('#inventoryOne').removeData('invOwner');
    $('#inventoryOne').removeData('invTier');
    $('#player-max').html(firstTier.weight + bagWeight + 'kg');
    birincienvanter = firstTier.weight + bagWeight
    for (i = 1; i <= (firstTier.slots); i++) {
        $("#inventoryOne").append($('.slot-template').clone());
        $('#inventoryOne').find('.slot-template').data('slot', i);
        $('#inventoryOne').find('.slot-template').data('inventory', 'inventoryOne');
        $('#inventoryOne').find('.slot-template').removeClass('slot-template');
    }
}

bunları yaptıktan sonra inventory.js bu kodu ekle:

C++:
var bagWeight = 0;

ve config.lua'ya bu kodu ekle:

C++:
Config.BagWeight = 10

client/inventory.lua aç ve bu kodu bul 'refreshPlayerInventory()' ve aşağıda verdiğim ile değiştir:

C++:
function refreshPlayerInventory()
    ESX.TriggerServerCallback('disc-inventoryhud:getPlayerInventory', function(data)
        SendNUIMessage(
                { action = "setItems",
                  itemList = data.inventory,
                  invOwner = data.invId,
                  Bag = data.bagcount,
                  invTier = data.invTier,
                  money = {
                      cash = data.cash,
                      bank = data.bank,
                      black_money = data.black_money
                  }
                }
        )
        TriggerServerEvent('disc-inventoryhud:openInventory', {
            type = 'player',
            owner = ESX.GetPlayerData().identifier
        })
    end, 'player', ESX.GetPlayerData().identifier)
end

ve tekrar aynı dosya 'RefreshSecondaryInventory()' kısmını bu ve verdiğim ss gibi yap:

43913

Yani invOwner = data.invId, altına bu kodu ekle:

C++:
Bag = data.bagcount,

Bunları dene eğer hata çıkarsa söyle belki unuttuğum şeyler vardır, bide bunları yapmadan önce envanterin yedeğini almayı unutma. Eğer kodları değiştirmeyeceksen'de verdiğim kodlara bakarak kendi kodlarını düzenle. Envater farklı olabilir.
 

Ekli dosyalar

  • 1613300778813.png
    1613300778813.png
    28.6 KB · Görüntüleme: 2
Selamlar konunuz çözüme ulaştımı? 24 saat içinde geri dönüş yaparmısınız?
 
Evet konu çözülmüştür kilitleyebilirsiniz, ayrıca Oph3Z Oph3Z yardımları için teşekkürlerimi sunuyorum
 
Konu çözüme ulaştığı için tarafımca ön eki değiştirilmiştir.
 

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!