forked from Simnation/Main
111 lines
3.2 KiB
Lua
111 lines
3.2 KiB
Lua
![]() |
-- Export used for ox_inventory
|
||
|
exports('UseBag', function(event, item, inventory)
|
||
|
-- Player is attempting to use the item.
|
||
|
if event == 'usingItem' then
|
||
|
local player = inventory.id
|
||
|
TriggerClientEvent('kq_outfitbag2:client:place', player, item.name, item.name)
|
||
|
return true
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
|
||
|
RegisterServerEvent('kq_outfitbag2:server:log')
|
||
|
AddEventHandler('kq_outfitbag2:server:log', function(outfit, name)
|
||
|
local data = '{\n'
|
||
|
|
||
|
data = data .. ' name = "' .. name .. '",\n'
|
||
|
data = data .. ' model = ' .. GetEntityModel(GetPlayerPed(source)) .. ',\n'
|
||
|
data = data .. ' drawable = {\n'
|
||
|
|
||
|
for k, drawable in pairs(outfit.drawable) do
|
||
|
data = data .. ' ' .. k .. ' = { drawable = ' .. drawable.drawable .. ', texture = ' .. drawable.texture .. ', palette = ' .. drawable.palette .. ' }, \n'
|
||
|
end
|
||
|
|
||
|
data = data .. ' },\n'
|
||
|
data = data .. ' props = {\n'
|
||
|
|
||
|
for k, drawable in pairs(outfit.props) do
|
||
|
data = data .. ' ' .. k .. ' = { prop = ' .. drawable.prop .. ', texture = ' .. drawable.texture .. ' }, \n'
|
||
|
end
|
||
|
|
||
|
data = data .. ' },\n},'
|
||
|
|
||
|
SaveResourceFile(GetCurrentResourceName(), 'outfit-outputs/' .. name .. '.txt', data, -1)
|
||
|
end)
|
||
|
|
||
|
---
|
||
|
|
||
|
local sqlDriver = Config.sql.driver
|
||
|
|
||
|
function GetSavedPlayerOutfits(player)
|
||
|
local identifier = _GetPlayerIdentifier(player)
|
||
|
|
||
|
local query = 'SELECT * FROM kq_extra WHERE `tag` = @tag AND `player` = @player ORDER BY `id`'
|
||
|
local data = {
|
||
|
['@tag'] = DB_TAG,
|
||
|
['@player'] = identifier,
|
||
|
}
|
||
|
|
||
|
return SqlQuery(query, data)
|
||
|
end
|
||
|
|
||
|
function SaveOutfit(player, outfit)
|
||
|
local identifier = _GetPlayerIdentifier(player)
|
||
|
|
||
|
local mutation = 'INSERT INTO kq_extra (`player`, `tag`, `data`) VALUES(@player, @tag, @data);'
|
||
|
local data = {
|
||
|
['@player'] = identifier,
|
||
|
['@tag'] = DB_TAG,
|
||
|
['@data'] = json.encode(outfit),
|
||
|
}
|
||
|
|
||
|
SqlMutate(mutation, data)
|
||
|
end
|
||
|
|
||
|
function DeleteOutfit(player, outfitId)
|
||
|
local identifier = _GetPlayerIdentifier(player)
|
||
|
|
||
|
local mutation = 'DELETE FROM kq_extra WHERE `player` = @player AND `tag` = @tag AND `id` = @id;'
|
||
|
local data = {
|
||
|
['@player'] = identifier,
|
||
|
['@tag'] = DB_TAG,
|
||
|
['@id'] = outfitId,
|
||
|
}
|
||
|
|
||
|
SqlMutate(mutation, data)
|
||
|
end
|
||
|
|
||
|
function SqlQuery(query, data)
|
||
|
if sqlDriver == 'mysql' then
|
||
|
return MySQL.Sync.fetchAll(query, data or {})
|
||
|
end
|
||
|
|
||
|
if sqlDriver == 'oxmysql' then
|
||
|
if Config.sql.newOxMysql then
|
||
|
return exports[sqlDriver]:fetchSync(query, data)
|
||
|
end
|
||
|
return exports[sqlDriver]:query_async(query, data)
|
||
|
else
|
||
|
return exports[sqlDriver]:executeSync(query, data)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function SqlMutate(query, data)
|
||
|
if sqlDriver == 'mysql' then
|
||
|
MySQL.Sync.insert(query, data)
|
||
|
return
|
||
|
end
|
||
|
|
||
|
if sqlDriver == 'oxmysql' then
|
||
|
exports[sqlDriver]:insertSync(query, data)
|
||
|
else
|
||
|
exports[sqlDriver]:executeSync(query, data)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if not Config.esxSettings.enabled and not Config.qbSettings.enabled then
|
||
|
function _GetPlayerIdentifier(player)
|
||
|
return GetPlayerIdentifierByType(player, 'license')
|
||
|
end
|
||
|
end
|