From ec1e8c0852b7461472dc9c332464ad55c81682e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20N=27gadi?= Date: Sat, 19 Aug 2017 13:14:04 +0200 Subject: [PATCH] Add rare and canRemove flags on items --- es_extended.sql | 17 +++--- .../es_extended/client/functions.lua | 55 +++++++++++-------- .../[essential]/es_extended/server/common.lua | 6 +- .../[essential]/es_extended/server/main.lua | 24 ++++---- 4 files changed, 61 insertions(+), 41 deletions(-) diff --git a/es_extended.sql b/es_extended.sql index 834a229c..15ce8398 100644 --- a/es_extended.sql +++ b/es_extended.sql @@ -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`) ); diff --git a/resources/[essential]/es_extended/client/functions.lua b/resources/[essential]/es_extended/client/functions.lua index 792495f0..d9680031 100644 --- a/resources/[essential]/es_extended/client/functions.lua +++ b/resources/[essential]/es_extended/client/functions.lua @@ -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( diff --git a/resources/[essential]/es_extended/server/common.lua b/resources/[essential]/es_extended/server/common.lua index ffadee09..5e6a1042 100644 --- a/resources/[essential]/es_extended/server/common.lua +++ b/resources/[essential]/es_extended/server/common.lua @@ -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 diff --git a/resources/[essential]/es_extended/server/main.lua b/resources/[essential]/es_extended/server/main.lua index 6d56ac13..23bab0e4 100644 --- a/resources/[essential]/es_extended/server/main.lua +++ b/resources/[essential]/es_extended/server/main.lua @@ -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(