Add rare and canRemove flags on items

This commit is contained in:
Jérémie N'gadi
2017-08-19 13:14:04 +02:00
parent 8c74011b39
commit ec1e8c0852
4 changed files with 61 additions and 41 deletions
+10 -7
View File
@@ -1,12 +1,13 @@
USE `essentialmode`;
ALTER TABLE `users`
ADD COLUMN `name` VARCHAR(255) NULL DEFAULT '' AFTER `money`,
ADD COLUMN `skin` LONGTEXT NULL AFTER `name`,
ADD COLUMN `job` varchar(255) NULL DEFAULT 'unemployed' AFTER `skin`,
ADD COLUMN `job_grade` INT NULL DEFAULT 0 AFTER `job`,
ADD COLUMN `loadout` LONGTEXT NULL AFTER `job_grade`,
ADD COLUMN `position` VARCHAR(255) NULL AFTER `loadout`;
ADD COLUMN `name` VARCHAR(255) NULL DEFAULT '' AFTER `money`,
ADD COLUMN `skin` LONGTEXT NULL AFTER `name`,
ADD COLUMN `job` varchar(255) NULL DEFAULT 'unemployed' AFTER `skin`,
ADD COLUMN `job_grade` INT NULL DEFAULT 0 AFTER `job`,
ADD COLUMN `loadout` LONGTEXT NULL AFTER `job_grade`,
ADD COLUMN `position` VARCHAR(255) NULL AFTER `loadout`
;
CREATE TABLE `items` (
@@ -14,7 +15,9 @@ CREATE TABLE `items` (
`name` varchar(255) NOT NULL,
`label` varchar(255) NOT NULL,
`limit` int(11) NOT NULL DEFAULT '-1',
`rare` int(11) NOT NULL DEFAULT '0',
`can_remove` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`)
);
@@ -972,20 +972,24 @@ ESX.ShowInventory = function()
local elements = {}
table.insert(elements, {
label = '[Cash] $' .. data.money,
count = data.money,
type = 'item_money',
value = 'money',
usable = false
label = '[Cash] $' .. data.money,
count = data.money,
type = 'item_money',
value = 'money',
usable = false,
rare = false,
canRemove = true
})
for i=1, #data.accounts, 1 do
table.insert(elements, {
label = '[' .. data.accounts[i].label .. '] $' .. data.accounts[i].money,
count = data.accounts[i].money,
type = 'item_account',
value = data.accounts[i].name,
usable = false
label = '[' .. data.accounts[i].label .. '] $' .. data.accounts[i].money,
count = data.accounts[i].money,
type = 'item_account',
value = data.accounts[i].name,
usable = false,
rare = false,
canRemove = true
})
end
@@ -993,11 +997,13 @@ ESX.ShowInventory = function()
if data.inventory[i].count > 0 then
table.insert(elements, {
label = data.inventory[i].label .. ' x' .. data.inventory[i].count,
count = data.inventory[i].count,
type = 'item_standard',
value = data.inventory[i].name,
usable = data.inventory[i].usable
label = data.inventory[i].label .. ' x' .. data.inventory[i].count,
count = data.inventory[i].count,
type = 'item_standard',
value = data.inventory[i].name,
usable = data.inventory[i].usable,
rare = data.inventory[i].rare,
canRemove = data.inventory[i].canRemove,
})
end
@@ -1012,11 +1018,13 @@ ESX.ShowInventory = function()
local ammo = GetAmmoInPedWeapon(playerPed, weaponHash)
table.insert(elements, {
label = Config.Weapons[i].label .. ' x1 [' .. ammo .. ']',
count = 1,
type = 'item_weapon',
value = Config.Weapons[i].name,
usable = false
label = Config.Weapons[i].label .. ' x1 [' .. ammo .. ']',
count = 1,
type = 'item_weapon',
value = Config.Weapons[i].name,
usable = false,
rare = false,
canRemove = true
})
end
@@ -1041,8 +1049,11 @@ ESX.ShowInventory = function()
table.insert(elements, {label = _U('use'), action = 'use', type = data.current.type, value = data.current.value})
end
table.insert(elements, {label = _U('give'), action = 'give', type = data.current.type, value = data.current.value})
table.insert(elements, {label = _U('remove'), action = 'remove', type = data.current.type, value = data.current.value})
if data.current.canRemove then
table.insert(elements, {label = _U('give'), action = 'give', type = data.current.type, value = data.current.value})
table.insert(elements, {label = _U('remove'), action = 'remove', type = data.current.type, value = data.current.value})
end
table.insert(elements, {label = _U('return'), action = 'return'})
ESX.UI.Menu.Open(
@@ -22,8 +22,10 @@ AddEventHandler('onMySQLReady', function ()
for i=1, #result, 1 do
ESX.Items[result[i].name] = {
label = result[i].label,
limit = result[i].limit
label = result[i].label,
limit = result[i].limit,
rare = (result[i].rare == 1 and true or false),
canRemove = (result[i].can_remove == 1 and true or false),
}
end
@@ -71,11 +71,13 @@ AddEventHandler('es:playerLoaded', function(source, _player)
for i=1, #inventory, 1 do
table.insert(userData.inventory, {
name = inventory[i].item,
count = inventory[i].count,
label = ESX.Items[inventory[i].item].label,
limit = ESX.Items[inventory[i].item].limit,
usable = ESX.UsableItemsCallbacks[inventory[i].item] ~= nil
name = inventory[i].item,
count = inventory[i].count,
label = ESX.Items[inventory[i].item].label,
limit = ESX.Items[inventory[i].item].limit,
usable = ESX.UsableItemsCallbacks[inventory[i].item] ~= nil,
rare = ESX.Items[inventory[i].item].rare,
canRemove = ESX.Items[inventory[i].item].canRemove,
})
end
@@ -93,11 +95,13 @@ AddEventHandler('es:playerLoaded', function(source, _player)
if not found then
table.insert(userData.inventory, {
name = k,
count = 0,
label = ESX.Items[k].label,
limit = ESX.Items[k].limit,
usable = ESX.UsableItemsCallbacks[k] ~= nil
name = k,
count = 0,
label = ESX.Items[k].label,
limit = ESX.Items[k].limit,
usable = ESX.UsableItemsCallbacks[k] ~= nil,
rare = ESX.Items[k].rare,
canRemove = ESX.Items[k].canRemove,
})
MySQL.Async.execute(