mirror of
https://github.com/jimathy/jim_bridge.git
synced 2026-08-17 05:56:02 +01:00
Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
15bea85bfb | ||
|
|
f889080bc0 | ||
|
|
7d62358558 | ||
|
|
f7a7e89c56 | ||
|
|
5f6720d37b | ||
|
|
e541201a08 | ||
|
|
2bf04f69cf | ||
|
|
8479aea1b0 | ||
|
|
d17a1da5b2 | ||
|
|
f1ff06c098 | ||
|
|
df785043e8 | ||
|
|
5ae4799a5f | ||
|
|
8cf4a6bd23 | ||
|
|
3e067c8492 | ||
|
|
6847639c65 | ||
|
|
0592c3ebc8 | ||
|
|
2ca1cbd110 | ||
|
|
8642733b78 | ||
|
|
5a4293182c | ||
|
|
6075878038 | ||
|
|
7eaeac886f | ||
|
|
fe27a1ca1c | ||
|
|
0caea0b473 |
161
crafting.lua
161
crafting.lua
@@ -43,7 +43,7 @@ function craftingMenu(data) local hasjob = false
|
|||||||
if Recipes[i].job then hasjob = false
|
if Recipes[i].job then hasjob = false
|
||||||
for l, b in pairs(Recipes[i].job) do
|
for l, b in pairs(Recipes[i].job) do
|
||||||
hasjob = hasJob(l, nil, b)
|
hasjob = hasJob(l, nil, b)
|
||||||
if hasJob == true then break end
|
if hasjob == true then break end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local setheader, settext = "", ""
|
local setheader, settext = "", ""
|
||||||
@@ -139,40 +139,42 @@ function makeItem(data)
|
|||||||
startTempCam(cam)
|
startTempCam(cam)
|
||||||
|
|
||||||
for i = 1, amount do
|
for i = 1, amount do
|
||||||
for _, v in pairs(data.craft) do
|
for k, v in pairs(data.craft) do
|
||||||
if type(v) == "table" then
|
if k ~= "amount" and k ~= "job" then
|
||||||
for l, b in pairs(v) do
|
if type(v) == "table" then
|
||||||
if crafting and progressBar({
|
for l, b in pairs(v) do
|
||||||
label = "Using "..b.." "..Items[l].label,
|
if crafting and progressBar({
|
||||||
time = 1000,
|
label = "Using "..b.." "..Items[l].label,
|
||||||
cancel = true,
|
time = 1000,
|
||||||
dict = 'pickup_object',
|
cancel = true,
|
||||||
anim = "putdown_low",
|
dict = 'pickup_object',
|
||||||
flag = 48,
|
anim = "putdown_low",
|
||||||
icon = l,
|
flag = 48,
|
||||||
}) then
|
icon = l,
|
||||||
--TriggerEvent('inventory:client:ItemBox', Items[l], "use", b) -- Show item box for each item
|
}) then
|
||||||
else
|
--TriggerEvent('inventory:client:ItemBox', Items[l], "use", b) -- Show item box for each item
|
||||||
crafted = false
|
else
|
||||||
crafting = false
|
crafted = false
|
||||||
break
|
crafting = false
|
||||||
|
break
|
||||||
|
end
|
||||||
|
Wait(200)
|
||||||
end
|
end
|
||||||
Wait(200)
|
if crafted then
|
||||||
end
|
if crafting and progressBar({
|
||||||
if crafted then
|
label = bartext..Items[data.item].label,
|
||||||
if crafting and progressBar({
|
time = bartime,
|
||||||
label = bartext..Items[data.item].label,
|
cancel = true,
|
||||||
time = bartime,
|
dict = animDict,
|
||||||
cancel = true,
|
anim = anim,
|
||||||
dict = animDict,
|
flag = 8,
|
||||||
anim = anim,
|
icon = data.item,
|
||||||
flag = 8,
|
}) then
|
||||||
icon = data.item,
|
TriggerServerEvent(GetCurrentResourceName()..":Crafting:GetItem", data.item, data.craft, data.stashName)
|
||||||
}) then
|
else
|
||||||
TriggerServerEvent(GetCurrentResourceName()..":Crafting:GetItem", data.item, data.craft, data.stashName)
|
crafting = false
|
||||||
else
|
break
|
||||||
crafting = false
|
end
|
||||||
break
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -240,10 +242,29 @@ function hasItem(items, amount, src) local amount = amount and amount or 1
|
|||||||
else grabInv = exports[QSInv]:getUserInventory()
|
else grabInv = exports[QSInv]:getUserInventory()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
elseif GetResourceState(OrigenInv):find("start") then
|
||||||
|
foundInv = OrigenInv
|
||||||
|
if src then
|
||||||
|
grabInv = exports[OrigenInv]:getPlayerInventory(src)
|
||||||
|
else
|
||||||
|
grabInv = exports[OrigenInv]:getPlayerInventory()
|
||||||
|
end
|
||||||
|
|
||||||
elseif GetResourceState(CoreInv):find("start") then
|
elseif GetResourceState(CoreInv):find("start") then
|
||||||
foundInv = CoreInv
|
foundInv = CoreInv
|
||||||
if src then grabInv = exports['core_inventory']:getInventory('primary-'..src)
|
if src then
|
||||||
else grabInv = exports[CoreInv]:getInventory('primary-'..GetPlayerServerId(PlayerPedId()))
|
if GetResourceState(QBExport):find("start") or GetResourceState(QBXExport):find("start") then
|
||||||
|
grabInv = Core.Functions.GetPlayer(src).PlayerData.items
|
||||||
|
elseif GetResourceState(ESXExport):find("start") then
|
||||||
|
local Player = ESX.GetPlayerFromId(src)
|
||||||
|
grabInv = Player.getInventory(false)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
local p = promise.new()
|
||||||
|
Core.Functions.TriggerCallback('core_inventory:server:getInventory', function(cb) p:resolve(cb) end)
|
||||||
|
local result = Citizen.Await(p)
|
||||||
|
if type(result) == "string" then result = json.decode(result) end
|
||||||
|
grabInv = result
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif GetResourceState(CodeMInv):find("start") then
|
elseif GetResourceState(CodeMInv):find("start") then
|
||||||
@@ -303,16 +324,27 @@ end
|
|||||||
function getStash(stashName)
|
function getStash(stashName)
|
||||||
local stashItems, items = {}, {}
|
local stashItems, items = {}, {}
|
||||||
if GetResourceState(OXInv):find("start") then
|
if GetResourceState(OXInv):find("start") then
|
||||||
if Config.System.Debug then print("^6Bridge^7: ^2Retrieving ^3Stash^2 with ^7ox_inventory") end
|
if Config.System.Debug then print("^6Bridge^7: ^2Retrieving ^3Stash^2 with ^7"..OXInv) end
|
||||||
stashItems = exports[OXInv]:Inventory(stashName).items
|
stashItems = exports[OXInv]:Inventory(stashName).items
|
||||||
|
|
||||||
elseif GetResourceState(QSInv):find("start") then
|
elseif GetResourceState(QSInv):find("start") then
|
||||||
if Config.System.Debug then print("^6Bridge^7: ^2Retrieving ^3Stash^2 with ^7qs-inventory") end
|
if Config.System.Debug then print("^6Bridge^7: ^2Retrieving ^3Stash^2 with ^7"..QSInv) end
|
||||||
stashItems = exports[QSInv]:GetStashItems(stashName)
|
stashItems = exports[QSInv]:GetStashItems(stashName)
|
||||||
|
|
||||||
|
elseif GetResourceState(CoreInv):find("start") then
|
||||||
|
if Config.System.Debug then print("^6Bridge^7: ^2Retrieving ^3Stash^2 with ^7"..CoreInv) end
|
||||||
|
stashItems = exports[CoreInv]:getInventory(stashName)
|
||||||
|
|
||||||
elseif GetResourceState(CodeMInv):find("start") then
|
elseif GetResourceState(CodeMInv):find("start") then
|
||||||
if Config.System.Debug then print("^6Bridge^7: ^2Retrieving ^3Stash^2 with ^7qs-inventory") end
|
if Config.System.Debug then print("^6Bridge^7: ^2Retrieving ^3Stash^2 with ^7"..CodeMInv) end
|
||||||
stashItems = exports[CodeMInv]:GetInventoryItems('Stash', stashName)
|
stashItems = exports[CodeMInv]:GetInventoryItems('Stash', stashName)
|
||||||
|
|
||||||
|
elseif GetResourceState(OrigenInv):find("start") then
|
||||||
|
if Config.System.Debug then print("^6Bridge^7: ^2Retrieving ^3Stash^2 with ^7"..OrigenInv) end
|
||||||
|
stashItems = exports[OrigenInv]:GetStash(stashName)
|
||||||
|
|
||||||
elseif GetResourceState(QBInv):find("start") then
|
elseif GetResourceState(QBInv):find("start") then
|
||||||
if Config.System.Debug then print("^6Bridge^7: ^2Retrieving ^3Stash^2 with ^7qb-inventory") end
|
if Config.System.Debug then print("^6Bridge^7: ^2Retrieving ^3Stash^2 with ^7"..QBInv) end
|
||||||
local result = MySQL.scalar.await('SELECT items FROM stashitems WHERE stash = ?', { stashName })
|
local result = MySQL.scalar.await('SELECT items FROM stashitems WHERE stash = ?', { stashName })
|
||||||
if result then stashItems = json.decode(result) end
|
if result then stashItems = json.decode(result) end
|
||||||
end
|
end
|
||||||
@@ -320,18 +352,18 @@ function getStash(stashName)
|
|||||||
for _, item in pairs(stashItems) do
|
for _, item in pairs(stashItems) do
|
||||||
local itemInfo = Items[item.name:lower()]
|
local itemInfo = Items[item.name:lower()]
|
||||||
if itemInfo then
|
if itemInfo then
|
||||||
items[item.slot] = {
|
items[#items+1] = {
|
||||||
name = itemInfo["name"],
|
name = itemInfo["name"] ~= nil and itemInfo["slot"] or nil,
|
||||||
amount = tonumber(item.amount) or tonumber(item.count),
|
amount = tonumber(item.amount) or tonumber(item.count),
|
||||||
info = item.info ~= nil and item.info or "",
|
info = item.info ~= nil and item.info or "",
|
||||||
label = itemInfo["label"],
|
label = itemInfo["label"] ~= nil and itemInfo["slot"] or nil,
|
||||||
description = itemInfo["description"] ~= nil and itemInfo["description"] or "",
|
description = itemInfo["description"] ~= nil and itemInfo["description"] or "",
|
||||||
weight = itemInfo["weight"],
|
weight = itemInfo["weight"] ~= nil and itemInfo["slot"] or nil,
|
||||||
type = itemInfo["type"],
|
type = itemInfo["type"] ~= nil and itemInfo["slot"] or nil,
|
||||||
unique = itemInfo["unique"],
|
unique = itemInfo["unique"] ~= nil and itemInfo["slot"] or nil,
|
||||||
useable = itemInfo["useable"],
|
useable = itemInfo["useable"] ~= nil and itemInfo["slot"] or nil,
|
||||||
image = itemInfo["image"],
|
image = itemInfo["image"] ~= nil and itemInfo["slot"] or nil,
|
||||||
slot = item.slot,
|
slot = itemInfo["slot"] ~= nil and itemInfo["slot"] or nil,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -347,10 +379,30 @@ function stashRemoveItem(stashItems, stashName, items) local amount = amount and
|
|||||||
if Config.System.Debug then print("^6Bridge^7: ^2Removing item from ^3Stash^2 with ^7"..OXInv, k, v) end
|
if Config.System.Debug then print("^6Bridge^7: ^2Removing item from ^3Stash^2 with ^7"..OXInv, k, v) end
|
||||||
end
|
end
|
||||||
elseif GetResourceState(QSInv):find("start") then
|
elseif GetResourceState(QSInv):find("start") then
|
||||||
|
for k, v in pairs(items) do
|
||||||
|
for l in pairs(stashItems) do
|
||||||
|
if stashItems[l].name == k then
|
||||||
|
if (stashItems[l].amount - v) <= 0 then
|
||||||
|
if Config.System.Debug then
|
||||||
|
print("^6Bridge^7: ^2None of this item left in stash ^3Stash^7", k, v)
|
||||||
|
end
|
||||||
|
stashItems[l] = nil
|
||||||
|
else
|
||||||
|
if Config.System.Debug then
|
||||||
|
print("^6Bridge^7: ^2Removing item from ^3Stash^2 with ^7"..QBInv, k, v)
|
||||||
|
end
|
||||||
|
exports[QSInv]:RemoveItemIntoStash(stashName, k, v, l)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
elseif GetResourceState(CoreInv):find("start") then
|
||||||
for k, v in pairs(items) do
|
for k, v in pairs(items) do
|
||||||
exports[QSInv]:RemoveItemIntoStash(stashName, k, v)
|
exports[CoreInv]:removeItemExact(stashName, k, v)
|
||||||
if Config.System.Debug then print("^6Bridge^7: ^2Removing item from ^3Stash^2 with ^7"..QSInv, k, v) end
|
if Config.System.Debug then print("^6Bridge^7: ^2Removing item from ^3Stash^2 with ^7"..CoreInv, k, v) end
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif GetResourceState(CodeMInv):find("start") then
|
elseif GetResourceState(CodeMInv):find("start") then
|
||||||
for k, v in pairs(items) do
|
for k, v in pairs(items) do
|
||||||
for l in pairs(stashItems) do
|
for l in pairs(stashItems) do
|
||||||
@@ -372,6 +424,13 @@ function stashRemoveItem(stashItems, stashName, items) local amount = amount and
|
|||||||
if Config.System.Debug then
|
if Config.System.Debug then
|
||||||
print("^6Bridge^7: ^3saveStash^7: ^2Saving ^3QB^2 stash ^7'^6"..stashName.."^7'")
|
print("^6Bridge^7: ^3saveStash^7: ^2Saving ^3QB^2 stash ^7'^6"..stashName.."^7'")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
elseif GetResourceState(OrigenInv):find("start") then
|
||||||
|
for k, v in pairs(items) do
|
||||||
|
exports[OrigenInv]:RemoveItem(stashName, k, v)
|
||||||
|
if Config.System.Debug then print("^6Bridge^7: ^2Removing item from ^3Stash^2 with ^7"..OrigenInv, k, v) end
|
||||||
|
end
|
||||||
|
|
||||||
elseif GetResourceState(QBInv):find("start") then
|
elseif GetResourceState(QBInv):find("start") then
|
||||||
for k, v in pairs(items) do
|
for k, v in pairs(items) do
|
||||||
for l in pairs(stashItems) do
|
for l in pairs(stashItems) do
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ Exports = {
|
|||||||
OXInv = "ox_inventory",
|
OXInv = "ox_inventory",
|
||||||
QBInv = "qb-inventory",
|
QBInv = "qb-inventory",
|
||||||
QSInv = "qs-inventory",
|
QSInv = "qs-inventory",
|
||||||
CoreInv = "core-inventory",
|
CoreInv = "core_inventory",
|
||||||
CodeMInv = "codem-inventory",
|
CodeMInv = "codem-inventory",
|
||||||
|
OrigenInv = "origen_inventory",
|
||||||
|
|
||||||
OXLibExport = "ox_lib",
|
OXLibExport = "ox_lib",
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ function pairsByKeys(t) local a = {} for n in pairs(t) do a[#a+1] = n end table.
|
|||||||
|
|
||||||
function playAnim(animDict, animName, duration, flag, ped)
|
function playAnim(animDict, animName, duration, flag, ped)
|
||||||
loadAnimDict(animDict)
|
loadAnimDict(animDict)
|
||||||
TaskPlayAnim(ped and ped or PlayerPedId(), animDict, animName, 1.0, -1.0, duration or 30000, flag or 50, 1, false, false, false)
|
TaskPlayAnim(ped and ped or PlayerPedId(), animDict, animName, 8.0, -8.0, duration or 30000, flag or 50, 1, false, false, false)
|
||||||
end
|
end
|
||||||
|
|
||||||
function stopAnim(animDict, animName)
|
function stopAnim(animDict, animName)
|
||||||
@@ -513,7 +513,7 @@ function setThirst(src, thirst)
|
|||||||
if GetResourceState(ESXExport):find("start") then
|
if GetResourceState(ESXExport):find("start") then
|
||||||
TriggerClientEvent('esx_status:add', src, 'thirst', thirst)
|
TriggerClientEvent('esx_status:add', src, 'thirst', thirst)
|
||||||
elseif GetResourceState(QBExport):find("start") or GetResourceState(QBXExport):find("start") then
|
elseif GetResourceState(QBExport):find("start") or GetResourceState(QBXExport):find("start") then
|
||||||
local Player = QBCore.Functions.GetPlayer(src)
|
local Player = Core.Functions.GetPlayer(src)
|
||||||
Player.Functions.SetMetaData('thirst', thirst)
|
Player.Functions.SetMetaData('thirst', thirst)
|
||||||
TriggerClientEvent("hud:client:UpdateNeeds", src, thirst, Player.PlayerData.metadata.thirst)
|
TriggerClientEvent("hud:client:UpdateNeeds", src, thirst, Player.PlayerData.metadata.thirst)
|
||||||
end
|
end
|
||||||
@@ -523,7 +523,7 @@ function setHunger(src, hunger)
|
|||||||
if GetResourceState(ESXExport):find("start") then
|
if GetResourceState(ESXExport):find("start") then
|
||||||
TriggerClientEvent('esx_status:add', src, 'hunger', hunger)
|
TriggerClientEvent('esx_status:add', src, 'hunger', hunger)
|
||||||
elseif GetResourceState(QBExport):find("start") or GetResourceState(QBXExport):find("start") then
|
elseif GetResourceState(QBExport):find("start") or GetResourceState(QBXExport):find("start") then
|
||||||
local Player = QBCore.Functions.GetPlayer(src)
|
local Player = Core.Functions.GetPlayer(src)
|
||||||
Player.Functions.SetMetaData('hunger', hunger)
|
Player.Functions.SetMetaData('hunger', hunger)
|
||||||
TriggerClientEvent("hud:client:UpdateNeeds", src, hunger, Player.PlayerData.metadata.hunger)
|
TriggerClientEvent("hud:client:UpdateNeeds", src, hunger, Player.PlayerData.metadata.hunger)
|
||||||
end
|
end
|
||||||
@@ -586,21 +586,35 @@ RegisterNetEvent(GetCurrentResourceName()..":server:toggleItem", function(give,
|
|||||||
if Config.System.Debug then
|
if Config.System.Debug then
|
||||||
print("^6Bridge^7: ^3"..addremove.."^7[^6"..OXInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
print("^6Bridge^7: ^3"..addremove.."^7[^6"..OXInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif GetResourceState(QSInv):find("start") then
|
elseif GetResourceState(QSInv):find("start") then
|
||||||
local success = exports[QSInv]:RemoveItem(src, item, amount)
|
local success = exports[QSInv]:RemoveItem(src, item, amount)
|
||||||
if Config.System.Debug then
|
if Config.System.Debug then
|
||||||
print("^6Bridge^7: ^3"..addremove.."^7[^6"..QSInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
print("^6Bridge^7: ^3"..addremove.."^7[^6"..QSInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
||||||
end
|
end
|
||||||
elseif GetResourceState(CoreInv):find("start") then
|
|
||||||
local success = exports[CoreInv]:removeItemExact('primary-'..src, item, amount)
|
elseif GetResourceState(CoreInv):find("start") then
|
||||||
|
if GetResourceState(QBExport):find("start") then
|
||||||
|
Core.Functions.GetPlayer(src).Functions.RemoveItem(item, amount, nil)
|
||||||
|
elseif GetResourceState(ESXExport):find("start") then
|
||||||
|
ESX.GetPlayerFromId(src).removeInventoryItem(item, count)
|
||||||
|
end
|
||||||
if Config.System.Debug then
|
if Config.System.Debug then
|
||||||
print("^6Bridge^7: ^3"..addremove.."^7[^6"..CoreInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
print("^6Bridge^7: ^3"..addremove.."^7[^6"..CoreInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
||||||
end
|
end
|
||||||
elseif GetResourceState(CodeMInv):find("start") then
|
|
||||||
|
elseif GetResourceState(OrigenInv):find("start") then
|
||||||
|
local success = exports[OrigenInv]:RemoveItem(src, item, amount)
|
||||||
|
if Config.System.Debug then
|
||||||
|
print("^6Bridge^7: ^3"..addremove.."^7[^6"..OrigenInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
||||||
|
end
|
||||||
|
|
||||||
|
elseif GetResourceState(CodeMInv):find("start") then
|
||||||
local success = exports[CodeMInv]:RemoveItem(src, item, amount)
|
local success = exports[CodeMInv]:RemoveItem(src, item, amount)
|
||||||
if Config.System.Debug then
|
if Config.System.Debug then
|
||||||
print("^6Bridge^7: ^3"..addremove.."^7[^6"..CodeMInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
print("^6Bridge^7: ^3"..addremove.."^7[^6"..CodeMInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif GetResourceState(QBInv):find("start") then
|
elseif GetResourceState(QBInv):find("start") then
|
||||||
while remamount > 0 do
|
while remamount > 0 do
|
||||||
if Core.Functions.GetPlayer(src).Functions.RemoveItem(item, 1) then end
|
if Core.Functions.GetPlayer(src).Functions.RemoveItem(item, 1) then end
|
||||||
@@ -625,21 +639,35 @@ RegisterNetEvent(GetCurrentResourceName()..":server:toggleItem", function(give,
|
|||||||
if Config.System.Debug then
|
if Config.System.Debug then
|
||||||
print("^6Bridge^7: ^3"..addremove.."^7[^6"..OXInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
print("^6Bridge^7: ^3"..addremove.."^7[^6"..OXInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif GetResourceState(QSInv):find("start") then
|
elseif GetResourceState(QSInv):find("start") then
|
||||||
local success = exports[QSInv]:AddItem(src, item, amount)
|
local success = exports[QSInv]:AddItem(src, item, amount)
|
||||||
if Config.System.Debug then
|
if Config.System.Debug then
|
||||||
print("^6Bridge^7: ^3"..addremove.."^7[^6"..QSInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
print("^6Bridge^7: ^3"..addremove.."^7[^6"..QSInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif GetResourceState(CoreInv):find("start") then
|
elseif GetResourceState(CoreInv):find("start") then
|
||||||
local success = exports[CoreInv]:addItem('primary-'..src, item, amount)
|
if GetResourceState(QBExport):find("start") or GetResourceState(QBXExport):find("start") then
|
||||||
if Config.System.Debug then
|
Core.Functions.GetPlayer(src).Functions.AddItem(item, amount, nil, nil)
|
||||||
|
elseif GetResourceState(ESXExport):find("start") then
|
||||||
|
ESX.GetPlayerFromId(src).addInventoryItem(item, amount)
|
||||||
|
end
|
||||||
|
if Config.System.Debug then
|
||||||
print("^6Bridge^7: ^3"..addremove.."^7[^6"..CoreInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
print("^6Bridge^7: ^3"..addremove.."^7[^6"..CoreInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif GetResourceState(CodeMInv):find("start") then
|
elseif GetResourceState(CodeMInv):find("start") then
|
||||||
local success = exports[CodeMInv]:AddItem(src, item, amount)
|
local success = exports[CodeMInv]:AddItem(src, item, amount)
|
||||||
if Config.System.Debug then
|
if Config.System.Debug then
|
||||||
print("^6Bridge^7: ^3"..addremove.."^7[^6"..CodeMInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
print("^6Bridge^7: ^3"..addremove.."^7[^6"..CodeMInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
elseif GetResourceState(OrigenInv):find("start") then
|
||||||
|
local success = exports[OrigenInv]:AddItem(src, item, amount)
|
||||||
|
if Config.System.Debug then
|
||||||
|
print("^6Bridge^7: ^3"..addremove.."^7[^6"..OrigenInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
||||||
|
end
|
||||||
|
|
||||||
elseif GetResourceState(QBInv):find("start") then
|
elseif GetResourceState(QBInv):find("start") then
|
||||||
if Core.Functions.GetPlayer(src).Functions.AddItem(item, amount or 1) then
|
if Core.Functions.GetPlayer(src).Functions.AddItem(item, amount or 1) then
|
||||||
--if Config.Crafting.showItemBox then
|
--if Config.Crafting.showItemBox then
|
||||||
@@ -649,6 +677,7 @@ RegisterNetEvent(GetCurrentResourceName()..":server:toggleItem", function(give,
|
|||||||
if Config.System.Debug then
|
if Config.System.Debug then
|
||||||
print("^6Bridge^7: ^3"..addremove.."^7[^6"..QBInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
print("^6Bridge^7: ^3"..addremove.."^7[^6"..QBInv.."^7] ^2Player^7("..src..") ^6"..Items[item].label.."^7("..item..") x^5"..(amount and amount or "1").."^7")
|
||||||
end
|
end
|
||||||
|
|
||||||
else
|
else
|
||||||
print("^4ERROR^7: ^2No Inventory detected ^7- ^2Check ^3exports^1.^2lua^7")
|
print("^4ERROR^7: ^2No Inventory detected ^7- ^2Check ^3exports^1.^2lua^7")
|
||||||
end
|
end
|
||||||
@@ -685,12 +714,12 @@ local function CheckVersion()
|
|||||||
PerformHttpRequest('https://raw.githubusercontent.com/jimathy/'..GetCurrentResourceName()..'/master/version.txt', function(err, freeVersion, headers)
|
PerformHttpRequest('https://raw.githubusercontent.com/jimathy/'..GetCurrentResourceName()..'/master/version.txt', function(err, freeVersion, headers)
|
||||||
if not freeVersion then print("^1Currently unable to run a version check for ^7'^3"..GetCurrentResourceName().."^7' ("..currentVersion.."^7)") return end
|
if not freeVersion then print("^1Currently unable to run a version check for ^7'^3"..GetCurrentResourceName().."^7' ("..currentVersion.."^7)") return end
|
||||||
local currentVersion = "^3"..GetResourceMetadata(GetCurrentResourceName(), 'version'):gsub("%.", "^7.^3").."^7"
|
local currentVersion = "^3"..GetResourceMetadata(GetCurrentResourceName(), 'version'):gsub("%.", "^7.^3").."^7"
|
||||||
freeVersion = "^3"..freeVersion:sub(1, -2):gsub("%.", "^7.^3").."^7"
|
freeVersion = "^3"..freeVersion:sub(1, -2):gsub("%.", "^7.^3"):gsub("%\r", "").."^7"
|
||||||
print("^6Version Check^7: ^2Running^7: "..currentVersion.." ^2Latest^7: "..freeVersion)
|
print("^6Version Check^7: ^2Running^7: "..currentVersion.." ^2Latest^7: "..freeVersion)
|
||||||
print(freeVersion == currentVersion and "^7'^3"..GetCurrentResourceName().."^7' - ^6You are running the latest version.^7 ("..currentVersion..")" or "^7'^3"..GetCurrentResourceName().."^7' - ^1You are currently running an outdated version^7, ^1please update^7!")
|
print(freeVersion == currentVersion and "^7'^3"..GetCurrentResourceName().."^7' - ^6You are running the latest version.^7 ("..currentVersion..")" or "^7'^3"..GetCurrentResourceName().."^7' - ^1You are currently running an outdated version^7, ^1please update^7!")
|
||||||
end)
|
end)
|
||||||
else
|
else
|
||||||
newestVersion = "^3"..newestVersion:sub(1, -2):gsub("%.", "^7.^3").."^7"
|
newestVersion = "^3"..newestVersion:sub(1, -2):gsub("%.", "^7.^3"):gsub("%\r", "").."^7"
|
||||||
print("^6Version Check^7: ^2Running^7: "..currentVersion.." ^2Latest^7: "..newestVersion)
|
print("^6Version Check^7: ^2Running^7: "..currentVersion.." ^2Latest^7: "..newestVersion)
|
||||||
print(newestVersion == currentVersion and '^6You are running the latest version.^7 ('..currentVersion..')' or "^1You are currently running an outdated version^7, ^1please update^7!")
|
print(newestVersion == currentVersion and '^6You are running the latest version.^7 ('..currentVersion..')' or "^1You are currently running an outdated version^7, ^1please update^7!")
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
name "Jim_Bridge"
|
name "Jim_Bridge"
|
||||||
author "Jimathy"
|
author "Jimathy"
|
||||||
version "1.0.4"
|
version "1.0.7"
|
||||||
description "Framework Bridge By Jimathy"
|
description "Framework Bridge By Jimathy"
|
||||||
fx_version "cerulean"
|
fx_version "cerulean"
|
||||||
game "gta5"
|
game "gta5"
|
||||||
@@ -11,4 +11,4 @@ files {
|
|||||||
'functions.lua',
|
'functions.lua',
|
||||||
'wrapper.lua',
|
'wrapper.lua',
|
||||||
'crafting.lua',
|
'crafting.lua',
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
1.0.4
|
1.0.7
|
||||||
|
|||||||
74
wrapper.lua
74
wrapper.lua
@@ -1,5 +1,8 @@
|
|||||||
Items, Vehicles, Jobs, Gangs, Core, ESX = {}, nil, nil, nil, nil, nil
|
Items, Vehicles, Jobs, Gangs, Core, ESX = {}, nil, nil, nil, nil, nil
|
||||||
|
|
||||||
|
if GetResourceState("ps-inventory"):find("start") then Exports.QBInv = "ps-inventory" end
|
||||||
|
if GetResourceState("lj-inventory"):find("start") then Exports.QBInv = "lj-inventory" end
|
||||||
|
|
||||||
OXLibExport = Exports and Exports.OXLibExport or ""
|
OXLibExport = Exports and Exports.OXLibExport or ""
|
||||||
|
|
||||||
QBXExport = Exports and Exports.QBXExport or ""
|
QBXExport = Exports and Exports.QBXExport or ""
|
||||||
@@ -12,6 +15,7 @@ QBInv = Exports and Exports.QBInv or ""
|
|||||||
QSInv = Exports and Exports.QSInv or ""
|
QSInv = Exports and Exports.QSInv or ""
|
||||||
CoreInv = Exports and Exports.CoreInv or ""
|
CoreInv = Exports and Exports.CoreInv or ""
|
||||||
CodeMInv = Exports and Exports.CodeMInv or ""
|
CodeMInv = Exports and Exports.CodeMInv or ""
|
||||||
|
OrigenInv = Exports and Exports.OrigenInv or ""
|
||||||
|
|
||||||
QBMenuExport = Exports and Exports.QBMenuExport or ""
|
QBMenuExport = Exports and Exports.QBMenuExport or ""
|
||||||
|
|
||||||
@@ -23,7 +27,7 @@ function CheckBridgeVersion()
|
|||||||
local currentVersion = "^3"..GetResourceMetadata("jim_bridge", 'version'):gsub("%.", "^7.^3").."^7"
|
local currentVersion = "^3"..GetResourceMetadata("jim_bridge", 'version'):gsub("%.", "^7.^3").."^7"
|
||||||
PerformHttpRequest('https://raw.githubusercontent.com/jimathy/jim_bridge/master/version.txt', function(err, newestVersion, headers)
|
PerformHttpRequest('https://raw.githubusercontent.com/jimathy/jim_bridge/master/version.txt', function(err, newestVersion, headers)
|
||||||
if not newestVersion then print("^1Currently unable to run a version check for ^7'^3jim_bridge^7' ("..currentVersion.."^7)") return end
|
if not newestVersion then print("^1Currently unable to run a version check for ^7'^3jim_bridge^7' ("..currentVersion.."^7)") return end
|
||||||
newestVersion = "^3"..newestVersion:sub(1, -2):gsub("%.", "^7.^3").."^7"
|
newestVersion = "^3"..newestVersion:sub(1, -2):gsub("%.", "^7.^3"):gsub("%\r", "").."^7"
|
||||||
print(newestVersion == currentVersion and "^7'^3jim_bridge^7' - ^6You are running the latest version.^7 ("..currentVersion..")" or "^7'^3jim_bridge^7' - ^1You are currently running an outdated version^7, ^1please update^7!")
|
print(newestVersion == currentVersion and "^7'^3jim_bridge^7' - ^6You are running the latest version.^7 ("..currentVersion..")" or "^7'^3jim_bridge^7' - ^1You are currently running an outdated version^7, ^1please update^7!")
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
@@ -223,16 +227,19 @@ end
|
|||||||
|
|
||||||
function openMenu(Menu, data)
|
function openMenu(Menu, data)
|
||||||
if Config.System.Menu == "ox" then
|
if Config.System.Menu == "ox" then
|
||||||
if data.onBack then
|
local index = nil
|
||||||
|
if data.onBack and not data.onSelected then
|
||||||
table.insert(Menu, 1, { icon = "fas fa-circle-arrow-left",
|
table.insert(Menu, 1, { icon = "fas fa-circle-arrow-left",
|
||||||
title = "Return",
|
title = "Return",
|
||||||
onSelect = data.onBack,
|
onSelect = data.onBack,
|
||||||
|
label = "Return"
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
for k in pairs(Menu) do
|
for k in pairs(Menu) do
|
||||||
if not Menu[k].title then
|
if not Menu[k].title then
|
||||||
if Menu[k].header ~= nil and Menu[k].header ~= "" then
|
if Menu[k].header ~= nil and Menu[k].header ~= "" then
|
||||||
Menu[k].title = Menu[k].header
|
Menu[k].title = Menu[k].header
|
||||||
|
Menu[k].label = Menu[k].header
|
||||||
if Menu[k].txt then Menu[k].description = Menu[k].txt else Menu[k].description = "" end
|
if Menu[k].txt then Menu[k].description = Menu[k].txt else Menu[k].description = "" end
|
||||||
else
|
else
|
||||||
Menu[k].title = Menu[k].txt
|
Menu[k].title = Menu[k].txt
|
||||||
@@ -246,8 +253,22 @@ function openMenu(Menu, data)
|
|||||||
Menu[k].disabled = true
|
Menu[k].disabled = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
lib.registerContext({id = 'Menu', title = data.header..br..br..(data.headertxt and data.headertxt or ""), position = 'top-right', options = Menu, canClose = data.canClose and data.canClose or nil, onExit = data.onExit and data.onExit or nil, })
|
local menuID = 'Menu'
|
||||||
lib.showContext("Menu")
|
(data.onSelected and lib.registerMenu or lib.registerContext)({
|
||||||
|
id = menuID,
|
||||||
|
title = data.header..br..br..(data.headertxt and data.headertxt or ""),
|
||||||
|
position = 'top-right',
|
||||||
|
options = Menu,
|
||||||
|
canClose = data.canClose and data.canClose or nil,
|
||||||
|
onClose = (data.onBack and data.onBack) or (data.onExit and data.onExit) or nil,
|
||||||
|
onExit = data.onExit and data.onExit or nil,
|
||||||
|
onSelected = data.onSelected and (function(selected) index = selected end) or nil,
|
||||||
|
}, (data.onSelected and (function(x, y, args) Menu[x].onSelect() end) or nil))
|
||||||
|
if data.onSelected then
|
||||||
|
lib.showMenu(menuID, 1)
|
||||||
|
else
|
||||||
|
lib.showContext(menuID)
|
||||||
|
end
|
||||||
elseif Config.System.Menu == "qb" then
|
elseif Config.System.Menu == "qb" then
|
||||||
if data.onBack then
|
if data.onBack then
|
||||||
table.insert(Menu, 1, { icon = "fas fa-circle-arrow-left",
|
table.insert(Menu, 1, { icon = "fas fa-circle-arrow-left",
|
||||||
@@ -750,7 +771,7 @@ function createInput(title, opts)
|
|||||||
isRequired = opts[i].isRequired,
|
isRequired = opts[i].isRequired,
|
||||||
label = opts[i].label or opts[i].text,
|
label = opts[i].label or opts[i].text,
|
||||||
name = opts[i].name,
|
name = opts[i].name,
|
||||||
default = opts[i].options[1].value,
|
default = opts[i].default or opts[i].options[1].value,
|
||||||
options = opts[i].options,
|
options = opts[i].options,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
@@ -767,6 +788,7 @@ function createInput(title, opts)
|
|||||||
options[i] = {
|
options[i] = {
|
||||||
type = "input",
|
type = "input",
|
||||||
label = opts[i].text ..(opts[i].txt and " - "..opts[i].txt or ""),
|
label = opts[i].text ..(opts[i].txt and " - "..opts[i].txt or ""),
|
||||||
|
default = opts[i].default,
|
||||||
isRequired = opts[i].isRequired,
|
isRequired = opts[i].isRequired,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
@@ -925,25 +947,49 @@ function getVehicleProperties(vehicle)
|
|||||||
if vehicle == nil then return nil end
|
if vehicle == nil then return nil end
|
||||||
if GetResourceState(QBExport):find("start") and not GetResourceState(QBXExport):find("start") then
|
if GetResourceState(QBExport):find("start") and not GetResourceState(QBXExport):find("start") then
|
||||||
properties = Core.Functions.GetVehicleProperties(vehicle)
|
properties = Core.Functions.GetVehicleProperties(vehicle)
|
||||||
|
if Config.System.Debug then print("^6Bridge^7: ^2Getting Vehicle Properties ^7[^6"..QBExport.."^7] - [^3"..vehicle.."^7] - [^3"..GetEntityModel(vehicle).."^7/^3"..properties.model.."^7] - [^3"..properties.plate.."^7]") end
|
||||||
elseif GetResourceState(OXLibExport):find("start") then
|
elseif GetResourceState(OXLibExport):find("start") then
|
||||||
properties = lib.getVehicleProperties(vehicle)
|
properties = lib.getVehicleProperties(vehicle)
|
||||||
|
if Config.System.Debug then print("^6Bridge^7: ^2Getting Vehicle Properties ^7[^6"..OXLibExport.."^7] - [^3"..vehicle.."^7] - [^3"..GetEntityModel(vehicle).."^7/^3"..properties.model.."^7] - [^3"..properties.plate.."^7]") end
|
||||||
end
|
end
|
||||||
return properties
|
return properties
|
||||||
end
|
end
|
||||||
|
|
||||||
function setVehicleProperties(vehicle, props)
|
function setVehicleProperties(vehicle, props)
|
||||||
if not DoesEntityExist(vehicle) then
|
local oldProps = getVehicleProperties(vehicle)
|
||||||
print(("Unable to set vehicle properties for '%s' (entity does not exist)"):
|
if checkDifferences(vehicle, props) then
|
||||||
format(vehicle))
|
--if Config.System.Debug then debugDifferences(vehicle, props) end
|
||||||
end
|
if not DoesEntityExist(vehicle) then
|
||||||
if GetResourceState(QBExport):find("start") and not GetResourceState(QBXExport):find("start") then
|
print(("Unable to set vehicle properties for '%s' (entity does not exist)"):
|
||||||
if Config.System.Debug then print("^6Bridge^7: ^2Setting Vehicle Properties ^7[^6"..QBExport.."^7] - [^3"..vehicle.."^7] - [^3"..GetEntityModel(vehicle).."^7] - [^3"..props.plate.."^7]") end
|
format(vehicle))
|
||||||
Core.Functions.SetVehicleProperties(vehicle, props)
|
end
|
||||||
|
if GetResourceState(QBExport):find("start") and not GetResourceState(QBXExport):find("start") then
|
||||||
|
Core.Functions.SetVehicleProperties(vehicle, props)
|
||||||
|
if Config.System.Debug then print("^6Bridge^7: ^2Setting Vehicle Properties ^7[^6"..QBExport.."^7] - [^3"..vehicle.."^7] - [^3"..GetEntityModel(vehicle).."^7/^3"..props.model.."^7] - [^3"..props.plate.."^7]") end
|
||||||
|
else
|
||||||
|
TriggerServerEvent(GetCurrentResourceName()..":ox:setVehicleProperties", VehToNet(vehicle), props)
|
||||||
|
end
|
||||||
else
|
else
|
||||||
TriggerServerEvent(GetCurrentResourceName()..":ox:setVehicleProperties", VehToNet(vehicle), props)
|
if Config.System.Debug then print("^6Bridge^7: ^2No Changes Found ^7 [^3"..vehicle.."^7] - [^3"..GetEntityModel(vehicle).."^7/^3"..props.model.."^7] - [^3"..props.plate.."^7]") end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function checkDifferences(vehicle, newProps)
|
||||||
|
local oldProps = getVehicleProperties(vehicle)
|
||||||
|
if Config.System.Debug then print("^6Bridge^7: ^2Finding differences in ^3Vehicle Properties^7") end
|
||||||
|
local allow = false
|
||||||
|
for k in pairs(oldProps) do
|
||||||
|
if json.encode(oldProps[k]) ~= json.encode(newProps[k]) then
|
||||||
|
allow = true
|
||||||
|
if Config.System.Debug then
|
||||||
|
print("^6Bridge^7: ^5Old ^7[^3"..k.."^7] - "..json.encode(oldProps[k], { indent = true }))
|
||||||
|
print("^6Bridge^7: ^5New ^7[^3"..k.."^7] - "..json.encode(newProps[k], { indent = true }))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return allow
|
||||||
|
end
|
||||||
|
|
||||||
RegisterNetEvent(GetCurrentResourceName()..":ox:setVehicleProperties", function(netId, props)
|
RegisterNetEvent(GetCurrentResourceName()..":ox:setVehicleProperties", function(netId, props)
|
||||||
local vehicle = NetworkGetEntityFromNetworkId(netId)
|
local vehicle = NetworkGetEntityFromNetworkId(netId)
|
||||||
local value = props
|
local value = props
|
||||||
@@ -1215,6 +1261,8 @@ function invImg(item)
|
|||||||
imgLink = "nui://"..QSInv.."/html/images/"..(Items[item].image or "")
|
imgLink = "nui://"..QSInv.."/html/images/"..(Items[item].image or "")
|
||||||
elseif GetResourceState(CoreInv and CoreInv or ""):find("start") then
|
elseif GetResourceState(CoreInv and CoreInv or ""):find("start") then
|
||||||
imgLink = "nui://"..CoreInv.."/html/img/"..(Items[item].image or "")
|
imgLink = "nui://"..CoreInv.."/html/img/"..(Items[item].image or "")
|
||||||
|
elseif GetResourceState(OrigenInv and OrigenInv or ""):find("start") then
|
||||||
|
imgLink = "nui://"..OrigenInv.."/html/img/"..(Items[item].image or "")
|
||||||
elseif GetResourceState(QBInv and QBInv or ""):find("start") then
|
elseif GetResourceState(QBInv and QBInv or ""):find("start") then
|
||||||
imgLink = "nui://"..QBInv.."/html/images/"..(Items[item].image or "")
|
imgLink = "nui://"..QBInv.."/html/images/"..(Items[item].image or "")
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user