diff --git a/client/main.lua b/client/main.lua index f04422d7..722d4041 100644 --- a/client/main.lua +++ b/client/main.lua @@ -8,15 +8,15 @@ AddEventHandler('esx:playerLoaded', function(xPlayer) ESX.PlayerData = xPlayer if Config.EnableHud then - for i=1, #xPlayer.accounts, 1 do - local accountTpl = '
 {{money}}
' + for k,v in ipairs(xPlayer.accounts) do + local accountTpl = '
 {{money}}
' - ESX.UI.HUD.RegisterElement('account_' .. xPlayer.accounts[i].name, i-1, 0, accountTpl, { + ESX.UI.HUD.RegisterElement('account_' .. v.name, k - 1, 0, accountTpl, { money = 0 }) - ESX.UI.HUD.UpdateElement('account_' .. xPlayer.accounts[i].name, { - money = ESX.Math.GroupDigits(xPlayer.accounts[i].money) + ESX.UI.HUD.UpdateElement('account_' .. v.name, { + money = ESX.Math.GroupDigits(v.money) }) end @@ -81,22 +81,21 @@ AddEventHandler('esx:restoreLoadout', function() RemoveAllPedWeapons(playerPed, true) - for i=1, #ESX.PlayerData.loadout, 1 do - local weaponName = ESX.PlayerData.loadout[i].name + for k,v in ipairs(ESX.PlayerData.loadout) do + local weaponName = v.name local weaponHash = GetHashKey(weaponName) GiveWeaponToPed(playerPed, weaponHash, 0, false, false) local ammoType = GetPedAmmoTypeFromWeapon(playerPed, weaponHash) - for j=1, #ESX.PlayerData.loadout[i].components, 1 do - local weaponComponent = ESX.PlayerData.loadout[i].components[j] - local componentHash = ESX.GetWeaponComponent(weaponName, weaponComponent).hash + for k2,v2 in ipairs(v.components) do + local componentHash = ESX.GetWeaponComponent(weaponName, v2).hash GiveWeaponComponentToPed(playerPed, weaponHash, componentHash) end if not ammoTypes[ammoType] then - AddAmmoToPed(playerPed, weaponHash, ESX.PlayerData.loadout[i].ammo) + AddAmmoToPed(playerPed, weaponHash, v.ammo) ammoTypes[ammoType] = true end end @@ -106,9 +105,9 @@ end) RegisterNetEvent('esx:setAccountMoney') AddEventHandler('esx:setAccountMoney', function(account) - for i=1, #ESX.PlayerData.accounts, 1 do - if ESX.PlayerData.accounts[i].name == account.name then - ESX.PlayerData.accounts[i] = account + for k,v in ipairs(ESX.PlayerData.accounts) do + if v.name == account.name then + ESX.PlayerData.accounts[k] = account break end end @@ -127,9 +126,9 @@ end) RegisterNetEvent('esx:addInventoryItem') AddEventHandler('esx:addInventoryItem', function(item, count) - for i=1, #ESX.PlayerData.inventory, 1 do - if ESX.PlayerData.inventory[i].name == item.name then - ESX.PlayerData.inventory[i] = item + for k,v in ipairs(ESX.PlayerData.inventory) do + if v.name == item.name then + ESX.PlayerData.inventory[k] = item break end end @@ -143,9 +142,9 @@ end) RegisterNetEvent('esx:removeInventoryItem') AddEventHandler('esx:removeInventoryItem', function(item, count) - for i=1, #ESX.PlayerData.inventory, 1 do - if ESX.PlayerData.inventory[i].name == item.name then - ESX.PlayerData.inventory[i] = item + for k,v in ipairs(ESX.PlayerData.inventory) do + if v.name == item.name then + ESX.PlayerData.inventory[k] = item break end end @@ -411,18 +410,17 @@ Citizen.CreateThread(function() isLoadoutLoaded = false end - for i=1, #Config.Weapons do - local weaponName = Config.Weapons[i].name + for k,v in ipairs(Config.Weapons) do + local weaponName = v.name local weaponHash = GetHashKey(weaponName) local weaponComponents = {} if HasPedGotWeapon(playerPed, weaponHash, false) and weaponName ~= 'WEAPON_UNARMED' then local ammo = GetAmmoInPedWeapon(playerPed, weaponHash) - local components = Config.Weapons[i].components - for j=1, #components do - if HasPedGotWeaponComponent(playerPed, weaponHash, components[j].hash) then - table.insert(weaponComponents, components[j].name) + for k2,v2 in ipairs(v.components) do + if HasPedGotWeaponComponent(playerPed, weaponHash, v2.hash) then + table.insert(weaponComponents, v2.name) end end @@ -435,7 +433,7 @@ Citizen.CreateThread(function() table.insert(loadout, { name = weaponName, ammo = ammo, - label = Config.Weapons[i].label, + label = v.label, components = weaponComponents }) else @@ -480,7 +478,7 @@ if Config.DisableWantedLevel then end) end --- pickups +-- Pickups Citizen.CreateThread(function() while true do Citizen.Wait(0) @@ -518,23 +516,16 @@ end) Citizen.CreateThread(function() while true do Citizen.Wait(1000) + local playerPed = PlayerPedId() if ESX.PlayerLoaded and isPlayerSpawned then - local playerPed = PlayerPedId() - local coords = GetEntityCoords(playerPed) + local coords = GetEntityCoords(playerPed) if not IsEntityDead(playerPed) then ESX.PlayerData.lastPosition = {x = coords.x, y = coords.y, z = coords.z} end end - end -end) -Citizen.CreateThread(function() - while true do - Citizen.Wait(1000) - - local playerPed = PlayerPedId() if IsEntityDead(playerPed) and isPlayerSpawned then isPlayerSpawned = false end diff --git a/server/classes/player.lua b/server/classes/player.lua index 5642c527..15bd7057 100644 --- a/server/classes/player.lua +++ b/server/classes/player.lua @@ -139,23 +139,19 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l self.getAccounts = function() local accounts = {} - for i=1, #Config.Accounts, 1 do - if Config.Accounts[i] == 'bank' then - + for k,v in ipairs(Config.Accounts) do + if v == 'bank' then table.insert(accounts, { name = 'bank', money = self.get('bank'), - label = Config.AccountLabels['bank'] + label = Config.AccountLabels.bank }) - else - - for j=1, #self.accounts, 1 do - if self.accounts[j].name == Config.Accounts[i] then - table.insert(accounts, self.accounts[j]) + for k2,v2 in ipairs(self.accounts) do + if v2 == v then + table.insert(accounts, v2) end end - end end @@ -167,13 +163,13 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l return { name = 'bank', money = self.get('bank'), - label = Config.AccountLabels['bank'] + label = Config.AccountLabels.bank } end - for i=1, #self.accounts, 1 do - if self.accounts[i].name == a then - return self.accounts[i] + for k,v in ipairs(self.accounts) do + if v.name == a then + return v end end end @@ -213,24 +209,24 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l end self.getMissingAccounts = function(cb) - MySQL.Async.fetchAll('SELECT * FROM `user_accounts` WHERE `identifier` = @identifier', { + MySQL.Async.fetchAll('SELECT name FROM user_accounts WHERE identifier = @identifier', { ['@identifier'] = self.getIdentifier() }, function(result) local missingAccounts = {} - for i=1, #Config.Accounts, 1 do - if Config.Accounts[i] ~= 'bank' then + for k,v in ipairs(Config.Accounts) do + if v ~= 'bank' then local found = false - for j=1, #result, 1 do - if Config.Accounts[i] == result[j].name then + for k2,v2 in ipairs(result) do + if v == v2.name then found = true break end end if not found then - table.insert(missingAccounts, Config.Accounts[i]) + table.insert(missingAccounts, v) end end end @@ -240,12 +236,12 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l end self.createAccounts = function(missingAccounts, cb) - for i=1, #missingAccounts, 1 do - MySQL.Async.execute('INSERT INTO `user_accounts` (identifier, name) VALUES (@identifier, @name)', { + for k,v in ipairs(missingAccounts) do + MySQL.Async.execute('INSERT INTO user_accounts (identifier, name) VALUES (@identifier, @name)', { ['@identifier'] = self.getIdentifier(), - ['@name'] = missingAccounts[i] + ['@name'] = v }, function(rowsChanged) - if cb ~= nil then + if cb then cb() end end) @@ -308,9 +304,9 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l end self.getInventoryItem = function(name) - for i=1, #self.inventory, 1 do - if self.inventory[i].name == name then - return self.inventory[i] + for k,v in ipairs(self.inventory) do + if v.name == name then + return v end end end @@ -366,11 +362,11 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l self.job.skin_male = {} self.job.skin_female = {} - if gradeObject.skin_male ~= nil then + if gradeObject.skin_male then self.job.skin_male = json.decode(gradeObject.skin_male) end - if gradeObject.skin_female ~= nil then + if gradeObject.skin_female then self.job.skin_female = json.decode(gradeObject.skin_female) end @@ -412,15 +408,15 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l self.removeWeapon = function(weaponName, ammo) local weaponLabel - for i=1, #self.loadout, 1 do - if self.loadout[i].name == weaponName then - weaponLabel = self.loadout[i].label + for k,v in ipairs(self.loadout) do + if v.name == weaponName then + weaponLabel = v.label - for j=1, #self.loadout[i].components, 1 do - TriggerClientEvent('esx:removeWeaponComponent', self.source, weaponName, self.loadout[i].components[j]) + for k2,v2 in ipairs(v.components) do + TriggerClientEvent('esx:removeWeaponComponent', self.source, weaponName, v2) end - table.remove(self.loadout, i) + table.remove(self.loadout, k) break end end @@ -438,9 +434,9 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l return end - for i=1, #self.loadout[loadoutNum].components, 1 do - if self.loadout[loadoutNum].components.name == weaponComponent then - table.remove(self.loadout[loadoutNum].components, i) + for k,v in ipairs(self.loadout[loadoutNum].components) do + if v.name == weaponComponent then + table.remove(self.loadout[loadoutNum].components, k) break end end @@ -455,8 +451,8 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l return false end - for i=1, #weapon.components, 1 do - if weapon.components[i] == weaponComponent then + for k,v in ipairs(weapon.components) do + if v == weaponComponent then return true end end @@ -465,8 +461,8 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l end self.hasWeapon = function(weaponName) - for i=1, #self.loadout, 1 do - if self.loadout[i].name == weaponName then + for k,v in ipairs(self.loadout) do + if v.name == weaponName then return true end end @@ -475,9 +471,9 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l end self.getWeapon = function(weaponName) - for i=1, #self.loadout, 1 do - if self.loadout[i].name == weaponName then - return i, self.loadout[i] + for k,v in ipairs(self.loadout) do + if v.name == weaponName then + return k, v end end