mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-30 01:38:52 +00:00
Replaced for i= loops with ipairs
This commit is contained in:
+28
-37
@@ -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 = '<div><img src="img/accounts/' .. xPlayer.accounts[i].name .. '.png"/> {{money}}</div>'
|
||||
for k,v in ipairs(xPlayer.accounts) do
|
||||
local accountTpl = '<div><img src="img/accounts/' .. v.name .. '.png"/> {{money}}</div>'
|
||||
|
||||
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
|
||||
|
||||
+41
-45
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user