example
example

求助 如何将OX背包里的某个物品设置为不可移动和交易。

Parker

新用户
认证用户
黄金
14.00 黄金
如何将OX背包里的某个物品设置为玩家之间不可移动和交易但是可以被消耗,管理员可以通过打开玩家背包移除或添加。
 
f0b130f6ad59780f2ad62e79e0e589b7.png例如:我设置一个OX商店,玩家可以用这个道具在商店里兑换奖励或者找管理员兑换奖励,但是不能玩家之间交易或者移动丢弃,但是可以被消耗。
 
Lua:
local itemFilter = {
            swapItems = function(payload)
                DebugPrint('收到物品交换请求')
                DebugPrint(string.format('交换类型: %s', payload.toType or 'nil'))
                DebugPrint(string.format('完整payload: %s', json.encode(payload)))
                
                if not payload then
                    DebugPrint('payload为空')
                    return true
                end
                
                if not payload.fromSlot then
                    DebugPrint('fromSlot为空')
                    return true
                end
                
                if not payload.fromSlot.name then
                    DebugPrint('fromSlot.name为空')
                    return true
                end
                
                if payload.toType == 'drop' then
                    local itemName = payload.fromSlot.name
                    DebugPrint(string.format('检查物品: %s, 限制状态: %s', itemName, tostring(Config.RestrictedItems[itemName])))
                    DebugPrint(string.format('当前限制物品列表: %s', json.encode(Config.RestrictedItems)))
                    
                    if Config.RestrictedItems[itemName] then
                        DebugPrint(string.format(Config.Lang.Debug.ItemCheck, itemName))
                        Notify(payload.fromInventory, Config.Lang.Messages.Discard)
                        return false
                    end
                end
                return true
            end
        }
        
        -- 注册钩子
        exports.ox_inventory:registerHook('swapItems', itemFilter.swapItems)
 
楼上的回答解决你的问题了没,如果没有回应的话我就把他的回答标记为解决方案了哈。
 
后退
顶部