1
0
Fork 0
forked from Simnation/Main
Main/resources/[inventory]/qs-inventory/server/custom/misc/GiveItemToPlayer.lua
2025-06-07 08:51:21 +02:00

101 lines
4.7 KiB
Lua

local umIdCard = GetResourceState('um-idcard') == 'started'
function GiveItemToPlayer(source, item, amount)
local id = source
local identifier = GetPlayerIdentifier(id)
amount = tonumber(amount)
local itemData = ItemList[item:lower()]
local cardlist = { 'id_card', 'driver_license', 'weaponlicense', 'lawyerpass' }
if not identifier then return end
if itemData then
Debug('item list', itemData, 'list', ItemList)
local info = {}
if string.find(table.concat(cardlist, ','), itemData['name']) and umIdCard then
exports['um-idcard']:CreateMetaLicense(source, itemData['name'])
return
elseif itemData['name'] == 'id_card' then
local _, charinfo = GetUserName(identifier)
info.citizenid = charinfo.citizenid
info.firstname = charinfo.firstname
info.lastname = charinfo.lastname
info.birthdate = charinfo.birthdate
info.gender = Config.Genders[charinfo.gender]
info.nationality = charinfo.nationality
elseif itemData['name'] == 'weaponlicense' then
local _, charinfo = GetUserName(identifier)
info.firstname = charinfo.firstname
info.lastname = charinfo.lastname
info.birthdate = charinfo.birthdate
info.gender = Config.Genders[charinfo.gender]
elseif itemData['name'] == 'driver_license' then
local _, charinfo = GetUserName(identifier)
info.firstname = charinfo.firstname
info.lastname = charinfo.lastname
info.birthdate = charinfo.birthdate
info.type = 'Class C Driver License'
elseif itemData['name'] == 'harness' then
info.uses = 20
elseif itemData['name'] == 'markedbills' then
info.worth = math.random(5000, 10000)
elseif itemData['name'] == 'labkey' then
info.lab = exports['qb-methlab']:GenerateRandomLab()
elseif itemData['name'] == 'printerdocument' then
info.url = 'https://cdn.discordapp.com/attachments/870094209783308299/870104331142189126/Logo_-_Display_Picture_-_Stylized_-_Red.png'
elseif ItemList[itemData['name']]['decay'] and ItemList[itemData['name']]['decay'] > 0 then
info.quality = 100
-- Quasar Scripts :
-- Vehiclekeys
elseif itemData['name'] == 'plate' then
info.plate = GeneratePlate()
-- DLC Backpacks
elseif itemData['name'] == 'backpack' then
info.ID = 'backpack_' .. math.random(111111, 999999)
info.weight = 10000
info.slots = 10
elseif itemData['name'] == 'backpack2' then
info.ID = 'backpack_' .. math.random(111111, 999999)
info.weight = 10000
info.slots = 10
elseif itemData['name'] == 'paramedicbag' then
info.ID = 'paramedic_' .. math.random(111111, 999999)
info.weight = 10000
info.slots = 10
elseif itemData['name'] == 'briefcase' then
info.ID = 'briefcase_' .. math.random(111111, 999999)
info.weight = 10000
info.slots = 10
elseif itemData['name'] == 'tradingcard_psa' then
local psaId = tostring(RandomStr(3) .. RandomInt(2) .. RandomStr(1) .. RandomInt(2) .. RandomInt(3))
info.serial = psaId
elseif itemData['name'] == 'money' then
return TriggerClientEvent(Config.InventoryPrefix .. ':client:sendTextMessage', source, Lang('INVENTORY_NOTIFICATION_MONEY_NO_ITEM'), 'error')
elseif itemData['name'] == 'cash' then
return TriggerClientEvent(Config.InventoryPrefix .. ':client:sendTextMessage', source, Lang('INVENTORY_NOTIFICATION_MONEY_NO_ITEM'), 'error')
end
if itemData['type'] == 'weapon' then
if amount == 1 then amount = 0 end
info.serie = CreateSerialNumber()
info.quality = 100
info.ammo = amount
if amount > 1000 then
return TriggerClientEvent(Config.InventoryPrefix .. ':client:sendTextMessage', source, Lang('INVENTORY_NOTIFICATION_GIVEWEAPON_LIMIT'), 'error')
end
AddItem(id, itemData['name'], 1, false, info)
SendWebhook(Webhooks.admin, 'Give Weapon To Player (Admin)', 7393279, '**' .. GetPlayerName(source) .. ' (id: ' .. source .. ') sent a weapon!**\n**Name:** ' .. itemData['name'] .. '\n**Bullets:** ' .. amount)
return
end
if AddItem(id, itemData['name'], amount, false, info) then
TriggerClientEvent(Config.InventoryPrefix .. ':client:sendTextMessage', source, Lang('INVENTORY_NOTIFICATION_GIVE_ITEM') .. ' ' .. amount .. ' ' .. itemData['label'], 'success')
SendWebhook(Webhooks.admin, 'Give Item To Player (Admin)', 7393279, '**' .. GetPlayerName(source) .. ' (id: ' .. source .. ') sent a item!**\n**Name:** ' .. itemData['name'] .. '\n**Amount:** ' .. amount)
else
TriggerClientEvent(Config.InventoryPrefix .. ':client:sendTextMessage', source, Lang('INVENTORY_NOTIFICATION_CANT_GIVE'), 'error')
end
else
TriggerClientEvent(Config.InventoryPrefix .. ':client:sendTextMessage', source, Lang('INVENTORY_NOTIFICATION_MISSING_ITEM'), 'error')
end
end
exports('GiveItemToPlayer', GiveItemToPlayer)