ACBD 发表于 2025-2-22 00:17:00

帮我把ox背包写法 变成qb背包


QBCore = nil

TriggerEvent('QBCore:GetObject', function(obj) QBCore = obj end)

--------------------------------

QBCore.Functions.CreateUseableItem(Config.ItemName, function(source)
    TriggerClientEvent("jz_musicBox:addBoombox", source)
end)

--------------------------------

RegisterNetEvent('ox_inventory:onUseItem')
AddEventHandler('ox_inventory:onUseItem', function(item)
    local src = source
    if item == Config.ItemName then
      TriggerClientEvent("jz_musicBox:addBoombox", src)
    end
end)

--------------------------------

function getPlayer()
    return QBCore.Functions.GetPlayer(source)
end

--------------------------------

RegisterNetEvent("jz_musicBox:addBoombox", function()
    local src = source
    local player = getPlayer()

    if Config.Inventory == "defaultinv" then
      player.Functions.AddItem(Config.ItemName, 1)
    elseif Config.Inventory == "ox" then
      exports.ox_inventory:AddItem(src, Config.ItemName, 1)
    else
      --- OTHER INVENTORY ADD TRIGGER
    end
end)

--------------------------------

RegisterNetEvent("jz_musicBox:removeBoombox", function()
    local src = source
    local player = getPlayer()

    if Config.Inventory == "defaultinv" then
      player.Functions.RemoveItem(Config.ItemName, 1)
    elseif Config.Inventory == "ox" then
      exports.ox_inventory:RemoveItem(src, Config.ItemName, 1)
    else
      --- OTHER INVENTORY REMOVE TRIGGER
    end
end)


ChatGPT 发表于 2025-2-22 00:17:14

下面是将你的 `ox_inventory` 背包写法转换为 `qb_inventory` 背包写法的代码。请根据自己的需要进行调整:


QBCore = nil

TriggerEvent('QBCore:GetObject', function(obj) QBCore = obj end)

--------------------------------

QBCore.Functions.CreateUseableItem(Config.ItemName, function(source)
    TriggerClientEvent("jz_musicBox:addBoombox", source)
end)

--------------------------------

RegisterNetEvent('qb_inventory:onUseItem')
AddEventHandler('qb_inventory:onUseItem', function(item)
    local src = source
    if item == Config.ItemName then
      TriggerClientEvent("jz_musicBox:addBoombox", src)
    end
end)

--------------------------------

function getPlayer()
    return QBCore.Functions.GetPlayer(source)
end

--------------------------------

RegisterNetEvent("jz_musicBox:addBoombox", function()
    local src = source
    local player = getPlayer()

    if Config.Inventory == "defaultinv" then
      player.Functions.AddItem(Config.ItemName, 1)
    elseif Config.Inventory == "qb" then
      -- 使用 QBCore 的方法添加物品
      player.Functions.AddItem(Config.ItemName, 1)
    else
      --- 其他背包添加触发
    end
end)

--------------------------------

RegisterNetEvent("jz_musicBox:removeBoombox", function()
    local src = source
    local player = getPlayer()

    if Config.Inventory == "defaultinv" then
      player.Functions.RemoveItem(Config.ItemName, 1)
    elseif Config.Inventory == "qb" then
      -- 使用 QBCore 的方法移除物品
      player.Functions.RemoveItem(Config.ItemName, 1)
    else
      --- 其他背包移除触发
    end
end)


### 说明:
- `qx_inventory:onUseItem` 被更改为 `qb_inventory:onUseItem`。
- 添加和移除物品的逻辑对于 QBCore 来说是相同的,因此我们直接调用了 `player.Functions.AddItem` 和 `player.Functions.RemoveItem` 方法。
- 请确保 `Config.Inventory` 变量值正确,以便于选择适当的库存逻辑。

此代码现在适用于 QBCore 背包系统。希望对你有帮助!
页: [1]
查看完整版本: 帮我把ox背包写法 变成qb背包