ed
This commit is contained in:
parent
875c8448e1
commit
c81ae4bb6d
219 changed files with 8036 additions and 7 deletions
29
resources/[tools]/bl_bridge/server/inventory/esx.lua
Normal file
29
resources/[tools]/bl_bridge/server/inventory/esx.lua
Normal file
|
@ -0,0 +1,29 @@
|
|||
local overrideFunction = {}
|
||||
|
||||
overrideFunction.methods = {
|
||||
addItem = {
|
||||
originalMethod = 'addInventoryItem',
|
||||
},
|
||||
removeItem = {
|
||||
originalMethod = 'removeInventoryItem',
|
||||
},
|
||||
getItem = {
|
||||
originalMethod = 'getInventoryItem',
|
||||
},
|
||||
setMetaData = { -- not exist :()
|
||||
|
||||
},
|
||||
canCarryItem = {
|
||||
originalMethod = 'canCarryItem',
|
||||
},
|
||||
items = {
|
||||
originalMethod = 'getInventory',
|
||||
modifier = {
|
||||
effect = function(originalFun)
|
||||
return originalFun.items
|
||||
end
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
return overrideFunction
|
67
resources/[tools]/bl_bridge/server/inventory/origen.lua
Normal file
67
resources/[tools]/bl_bridge/server/inventory/origen.lua
Normal file
|
@ -0,0 +1,67 @@
|
|||
local retreiveExportsData = require 'utils'.retreiveExportsData
|
||||
local overrideFunction = {}
|
||||
local origen_inventory = exports.origen_inventory
|
||||
|
||||
overrideFunction.methods = retreiveExportsData(origen_inventory, {
|
||||
addItem = {
|
||||
originalMethod = 'addItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
removeItem = {
|
||||
originalMethod = 'removeItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
effect = function(originalFun, source, name, count, slot)
|
||||
return originalFun(source, name, count, nil, slot)
|
||||
end,
|
||||
}
|
||||
},
|
||||
setMetaData = {
|
||||
originalMethod = 'setMetadata',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
canCarryItem = {
|
||||
originalMethod = 'canCarryItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
getItem = {
|
||||
originalMethod = 'getItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
items = {
|
||||
originalMethod = 'getItems',
|
||||
modifier = {
|
||||
executeFunc = true,
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
function overrideFunction.registerUsableItem(name, cb)
|
||||
exports.origen_inventory:CreateUseableItem(name, function(source, item)
|
||||
cb(source, item and item.slot, item and item.info)
|
||||
end)
|
||||
end
|
||||
|
||||
function overrideFunction.registerInventory(id, data)
|
||||
local type, name, items in data
|
||||
if type == 'shop' and origen_inventory.registerShop then
|
||||
origen_inventory:registerShop(id, {
|
||||
name = name or 'Shop',
|
||||
inventory = items or {},
|
||||
})
|
||||
elseif type == 'stash' then
|
||||
local maxWeight, slots in data
|
||||
origen_inventory:registerStash(id, name or 'Stash', slots or 10, maxWeight or 20000)
|
||||
end
|
||||
end
|
||||
|
||||
return overrideFunction
|
73
resources/[tools]/bl_bridge/server/inventory/ox.lua
Normal file
73
resources/[tools]/bl_bridge/server/inventory/ox.lua
Normal file
|
@ -0,0 +1,73 @@
|
|||
local retreiveExportsData = require 'utils'.retreiveExportsData
|
||||
local overrideFunction = {}
|
||||
local ox_inventory = exports.ox_inventory
|
||||
|
||||
overrideFunction.methods = retreiveExportsData(ox_inventory, {
|
||||
addItem = {
|
||||
originalMethod = 'AddItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
removeItem = {
|
||||
originalMethod = 'RemoveItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
effect = function(originalFun, source, name, count, slot)
|
||||
return originalFun(source, name, count, nil, slot)
|
||||
end,
|
||||
}
|
||||
},
|
||||
setMetaData = {
|
||||
originalMethod = 'SetMetadata',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
canCarryItem = {
|
||||
originalMethod = 'CanCarryItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
getItem = {
|
||||
originalMethod = 'GetSlotWithItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
items = {
|
||||
originalMethod = 'GetInventoryItems',
|
||||
modifier = {
|
||||
executeFunc = true,
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
local registeredItems = {}
|
||||
|
||||
AddEventHandler('ox_inventory:usedItem', function(playerId, itemName, slotId, metadata)
|
||||
local itemEffect = registeredItems[itemName]
|
||||
if not itemEffect then return end
|
||||
itemEffect(playerId, slotId, metadata)
|
||||
end)
|
||||
|
||||
function overrideFunction.registerUsableItem(name, cb)
|
||||
registeredItems[name] = cb
|
||||
end
|
||||
|
||||
function overrideFunction.registerInventory(id, data)
|
||||
local type, name, items in data
|
||||
if type == 'shop' then
|
||||
ox_inventory:RegisterShop(id, {
|
||||
name = name or 'Shop',
|
||||
inventory = items or {},
|
||||
})
|
||||
elseif type == 'stash' then
|
||||
local maxWeight, slots in data
|
||||
ox_inventory:RegisterStash(id, name or 'Stash', slots or 10, maxWeight or 20000)
|
||||
end
|
||||
end
|
||||
|
||||
return overrideFunction
|
118
resources/[tools]/bl_bridge/server/inventory/qb.lua
Normal file
118
resources/[tools]/bl_bridge/server/inventory/qb.lua
Normal file
|
@ -0,0 +1,118 @@
|
|||
local utils = require 'utils'
|
||||
local retreiveExportsData = utils.retreiveExportsData
|
||||
local overrideFunction = {}
|
||||
local registeredInventories = {}
|
||||
local inventoryName = GetFramework('inventory')
|
||||
local inventory = exports[inventoryName]
|
||||
overrideFunction.methods = retreiveExportsData(inventory, {
|
||||
addItem = {
|
||||
originalMethod = 'AddItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
effect = function(originalFun, src, name, amount, metadata, slot)
|
||||
TriggerClientEvent('inventory:client:ItemBox', src, name, "add", amount)
|
||||
TriggerClientEvent('qb-inventory:client:ItemBox', src, name, "add", amount)
|
||||
return originalFun(src, name, amount, slot, metadata)
|
||||
end
|
||||
}
|
||||
},
|
||||
removeItem = {
|
||||
originalMethod = 'RemoveItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
effect = function(originalFun, src, name, amount, slot)
|
||||
TriggerClientEvent('inventory:client:ItemBox', src, name, "remove", amount)
|
||||
TriggerClientEvent('qb-inventory:client:ItemBox', src, name, "remove", amount)
|
||||
return originalFun(src, name, amount, slot)
|
||||
end
|
||||
}
|
||||
},
|
||||
setMetaData = {
|
||||
originalMethod = 'SetItemData',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
effect = function(originalFun, src, slot, data)
|
||||
local item = inventory:GetItemBySlot(src, slot)
|
||||
|
||||
if not item then return end
|
||||
if type(data) ~= 'table' then return end
|
||||
|
||||
originalFun(src, item.name, 'info', data)
|
||||
end
|
||||
}
|
||||
},
|
||||
canCarryItem = {
|
||||
originalMethod = inventoryName == 'qb-inventory' and inventory.CanAddItem and 'CanAddItem' or 'HasItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
getItem = {
|
||||
originalMethod = 'GetItemByName',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
effect = function(originalFun, src, itemName)
|
||||
local data = originalFun(src, itemName)
|
||||
if not data then
|
||||
return false, 'Item not exist or you don\'t have it'
|
||||
end
|
||||
return {
|
||||
label = data.label,
|
||||
name = data.name,
|
||||
weight = data.weight,
|
||||
slot = data.slot,
|
||||
close = data.shouldClose,
|
||||
stack = not data.unique,
|
||||
metadata = data.info ~= '' and data.info or {},
|
||||
count = data.amount or 1
|
||||
}
|
||||
end
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
function overrideFunction.registerInventory(id, data)
|
||||
local type, name, items, slots, maxWeight in data
|
||||
|
||||
for k,v in ipairs(items or {}) do
|
||||
v.amount = v.amount or 1
|
||||
v.slot = k
|
||||
end
|
||||
|
||||
registeredInventories[('%s-%s'):format(type, id)] = {
|
||||
label = name,
|
||||
items = items,
|
||||
slots = slots or #items,
|
||||
maxweight = maxWeight
|
||||
}
|
||||
|
||||
if type == 'shop' and inventory.CreateShop then
|
||||
inventory:CreateShop({
|
||||
name = name,
|
||||
label = name,
|
||||
slots = slots or #items,
|
||||
items = items
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
utils.register('bl_bridge:validInventory', function(src, invType, invId)
|
||||
local inventoryData = registeredInventories[('%s-%s'):format(invType, invId)]
|
||||
if not inventoryData then return end
|
||||
|
||||
local isShop = invType == 'shop'
|
||||
|
||||
if isShop and inventory.OpenShop then
|
||||
return inventory:OpenShop(src, inventoryData.label)
|
||||
elseif not isShop and inventory.OpenInventory then
|
||||
return inventory:OpenInventory(src, inventoryData.label, {
|
||||
label = inventoryData.label,
|
||||
slots = inventoryData.slots,
|
||||
maxweight = inventoryData.maxweight,
|
||||
})
|
||||
end
|
||||
|
||||
return inventoryData
|
||||
end)
|
||||
|
||||
return overrideFunction
|
93
resources/[tools]/bl_bridge/server/inventory/qs.lua
Normal file
93
resources/[tools]/bl_bridge/server/inventory/qs.lua
Normal file
|
@ -0,0 +1,93 @@
|
|||
local utils = require 'utils'
|
||||
local retreiveExportsData = utils.retreiveExportsData
|
||||
local overrideFunction = {}
|
||||
local registeredInventories = {}
|
||||
local qs_inventory = exports['qs-inventory']
|
||||
|
||||
overrideFunction.methods = retreiveExportsData(qs_inventory, {
|
||||
addItem = {
|
||||
originalMethod = 'AddItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
effect = function(originalFun, src, name, amount, metadata, slot)
|
||||
return originalFun(src, name, amount, slot, metadata)
|
||||
end
|
||||
}
|
||||
},
|
||||
removeItem = {
|
||||
originalMethod = 'RemoveItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
setMetaData = {
|
||||
originalMethod = 'SetItemMetadata',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
canCarryItem = {
|
||||
originalMethod = 'CanCarryItem',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
getItem = {
|
||||
originalMethod = 'GetItemByName',
|
||||
modifier = {
|
||||
passSource = true, -- Src doesn't actually seem to be passed to originalFunc
|
||||
effect = function(originalFunc, src, itemName)
|
||||
local data = originalFunc(src, itemName)
|
||||
if not data then
|
||||
return false, 'Item does not exist or you don\'t have it'
|
||||
end
|
||||
return {
|
||||
label = data.label,
|
||||
name = data.name,
|
||||
weight = data.weight,
|
||||
slot = data.slot,
|
||||
close = data.shouldClose,
|
||||
stack = not data.unique,
|
||||
metadata = data.info ~= '' and data.info or {},
|
||||
count = data.amount or 1
|
||||
}
|
||||
end
|
||||
}
|
||||
},
|
||||
items = {
|
||||
originalMethod = 'GetInventory',
|
||||
modifier = {
|
||||
passSource = true,
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
function overrideFunction.registerInventory(id, data)
|
||||
local type, name, items, slots, maxWeight in data
|
||||
|
||||
for k,v in ipairs(items) do
|
||||
v.amount = v.amount or 10
|
||||
v.slot = k
|
||||
end
|
||||
|
||||
registeredInventories[('%s-%s'):format(type, id)] = {
|
||||
label = name,
|
||||
items = items,
|
||||
slots = slots or #items,
|
||||
maxweight = maxWeight
|
||||
}
|
||||
end
|
||||
|
||||
function overrideFunction.registerUsableItem(name, cb)
|
||||
qs_inventory:CreateUsableItem(name, function(source, item)
|
||||
cb(source, item and item.slot, item and item.info)
|
||||
end)
|
||||
end
|
||||
|
||||
utils.register('bl_bridge:validInventory', function(_, invType, invId)
|
||||
local inventory = registeredInventories[('%s-%s'):format(invType, invId)]
|
||||
if not inventory then return end
|
||||
return inventory
|
||||
end)
|
||||
|
||||
return overrideFunction
|
Loading…
Add table
Add a link
Reference in a new issue