diff --git a/[SQL]/legacy.sql b/[SQL]/legacy.sql index 7e31e394d..35d279abc 100644 --- a/[SQL]/legacy.sql +++ b/[SQL]/legacy.sql @@ -2,7 +2,7 @@ CREATE TABLE `addon_account` ( `name` varchar(60) NOT NULL, `label` varchar(100) NOT NULL, `shared` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -- Dumping data for table `addon_account` @@ -28,7 +28,7 @@ CREATE TABLE `addon_account_data` ( `account_name` varchar(100) DEFAULT NULL, `money` int(11) NOT NULL, `owner` varchar(60) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -- Dumping data for table `addon_account_data` @@ -54,7 +54,7 @@ CREATE TABLE `addon_inventory` ( `name` varchar(60) NOT NULL, `label` varchar(100) NOT NULL, `shared` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -- Dumping data for table `addon_inventory` @@ -80,7 +80,7 @@ CREATE TABLE `addon_inventory_items` ( `name` varchar(100) NOT NULL, `count` int(11) NOT NULL, `owner` varchar(60) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -------------------------------------------------------- @@ -90,13 +90,13 @@ CREATE TABLE `addon_inventory_items` ( CREATE TABLE `billing` ( `id` int(11) NOT NULL, - `identifier` varchar(60) DEFAULT NULL, + `identifier` varchar(60) NOT NULL, `sender` varchar(40) NOT NULL, `target_type` varchar(50) NOT NULL, `target` varchar(40) NOT NULL, `label` varchar(255) NOT NULL, `amount` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -------------------------------------------------------- @@ -108,7 +108,7 @@ CREATE TABLE `cardealer_vehicles` ( `id` int(11) NOT NULL, `vehicle` varchar(255) NOT NULL, `price` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -------------------------------------------------------- @@ -120,7 +120,7 @@ CREATE TABLE `datastore` ( `name` varchar(60) NOT NULL, `label` varchar(100) NOT NULL, `shared` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -- Dumping data for table `datastore` @@ -144,7 +144,7 @@ CREATE TABLE `datastore_data` ( `name` varchar(60) NOT NULL, `owner` varchar(60) DEFAULT NULL, `data` longtext DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -- Dumping data for table `datastore_data` @@ -169,7 +169,7 @@ CREATE TABLE `items` ( `weight` int(11) NOT NULL DEFAULT 1, `rare` tinyint(4) NOT NULL DEFAULT 0, `can_remove` tinyint(4) NOT NULL DEFAULT 1 -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -- Dumping data for table `items` @@ -219,7 +219,7 @@ CREATE TABLE `jobs` ( `name` varchar(50) NOT NULL, `label` varchar(50) DEFAULT NULL, `whitelisted` tinyint(1) NOT NULL DEFAULT 0 -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -- Dumping data for table `jobs` @@ -255,7 +255,7 @@ CREATE TABLE `job_grades` ( `salary` int(11) NOT NULL, `skin_male` longtext NOT NULL, `skin_female` longtext NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -- Dumping data for table `job_grades` @@ -303,7 +303,7 @@ INSERT INTO `job_grades` (`id`, `job_name`, `grade`, `name`, `label`, `salary`, CREATE TABLE `licenses` ( `type` varchar(60) NOT NULL, `label` varchar(60) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -- Dumping data for table `licenses` @@ -320,11 +320,11 @@ INSERT INTO `licenses` (`type`, `label`) VALUES CREATE TABLE `owned_properties` ( `id` int(11) NOT NULL, - `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(255) NOT NULL, `price` double NOT NULL, `rented` int(11) NOT NULL, - `owner` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + `owner` varchar(60) NOT NULL +) ENGINE=InnoDB; -- -------------------------------------------------------- @@ -339,7 +339,7 @@ CREATE TABLE `owned_vehicles` ( `type` varchar(20) NOT NULL DEFAULT 'car', `job` varchar(20) DEFAULT NULL, `stored` tinyint(4) NOT NULL DEFAULT 0 -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -------------------------------------------------------- @@ -351,20 +351,20 @@ CREATE TABLE `owned_vehicles` ( CREATE TABLE `properties` ( `id` int(11) NOT NULL, - `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `label` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `entering` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `exit` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `inside` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `outside` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `ipls` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '[]', - `gateway` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, + `label` varchar(255) DEFAULT NULL, + `entering` varchar(255) DEFAULT NULL, + `exit` varchar(255) DEFAULT NULL, + `inside` varchar(255) DEFAULT NULL, + `outside` varchar(255) DEFAULT NULL, + `ipls` varchar(255) DEFAULT '[]', + `gateway` varchar(255) DEFAULT NULL, `is_single` int(11) DEFAULT NULL, `is_room` int(11) DEFAULT NULL, `is_gateway` int(11) DEFAULT NULL, - `room_menu` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `room_menu` varchar(255) DEFAULT NULL, `price` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB; -- -- Dumping data for table `properties` @@ -457,7 +457,7 @@ CREATE TABLE `rented_vehicles` ( `base_price` int(11) NOT NULL, `rent_price` int(11) NOT NULL, `owner` varchar(22) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -- Table structure for table `society_moneywash` @@ -468,7 +468,7 @@ CREATE TABLE `society_moneywash` ( `identifier` varchar(60) NOT NULL, `society` varchar(60) NOT NULL, `amount` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -------------------------------------------------------- @@ -495,7 +495,7 @@ CREATE TABLE `users` ( `is_dead` tinyint(1) DEFAULT 0, `id` int(11) NOT NULL, `last_property` varchar(255) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -------------------------------------------------------- @@ -506,8 +506,8 @@ CREATE TABLE `users` ( CREATE TABLE `user_licenses` ( `id` int(11) NOT NULL, `type` varchar(60) NOT NULL, - `owner` varchar(60) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; + `owner` varchar(60) NOT NULL +) ENGINE=InnoDB; -- -------------------------------------------------------- @@ -517,11 +517,11 @@ CREATE TABLE `user_licenses` ( CREATE TABLE `user_parkings` ( `id` int(11) NOT NULL, - `identifier` varchar(60) DEFAULT NULL, + `identifier` varchar(60) NOT NULL, `garage` varchar(60) DEFAULT NULL, `zone` int(11) NOT NULL, `vehicle` longtext DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB; -- -------------------------------------------------------- @@ -534,7 +534,7 @@ CREATE TABLE `vehicles` ( `model` varchar(60) NOT NULL, `price` int(11) NOT NULL, `category` varchar(60) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -- Dumping data for table `vehicles` @@ -791,7 +791,7 @@ INSERT INTO `vehicles` (`name`, `model`, `price`, `category`) VALUES CREATE TABLE `vehicle_categories` ( `name` varchar(60) NOT NULL, `label` varchar(60) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -- Dumping data for table `vehicle_categories` @@ -822,7 +822,7 @@ CREATE TABLE `vehicle_sold` ( `plate` varchar(50) NOT NULL, `soldby` varchar(50) NOT NULL, `date` varchar(50) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB; -- -------------------------------------------------------- @@ -835,7 +835,7 @@ CREATE TABLE `weashops` ( `zone` varchar(255) NOT NULL, `item` varchar(255) NOT NULL, `price` int(11) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB; -- -- Dumping data for table `weashops` @@ -1140,7 +1140,7 @@ CREATE TABLE `user_contacts` ( PRIMARY KEY (`id`), INDEX `index_user_contacts_identifier_name_number` (`identifier`, `name`, `number`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB; ALTER TABLE `users` @@ -1157,7 +1157,7 @@ ALTER TABLE `users` `category` int DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB; INSERT INTO `fine_types` (label, amount, category) VALUES ('Misuse of a horn', 30, 0), diff --git a/[esx]/es_extended/client/entityiter.lua b/[esx]/es_extended/client/entityiter.lua deleted file mode 100644 index 541ae0954..000000000 --- a/[esx]/es_extended/client/entityiter.lua +++ /dev/null @@ -1,95 +0,0 @@ ---[[The MIT License (MIT) - -Copyright (c) 2017 IllidanS4 - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -]] - -local entityEnumerator = { - __gc = function(enum) - if enum.destructor and enum.handle then - enum.destructor(enum.handle) - end - - enum.destructor = nil - enum.handle = nil - end -} - -local function EnumerateEntities(initFunc, moveFunc, disposeFunc) - return coroutine.wrap(function() - local iter, id = initFunc() - if not id or id == 0 then - disposeFunc(iter) - return - end - - local enum = {handle = iter, destructor = disposeFunc} - setmetatable(enum, entityEnumerator) - local next = true - - repeat - coroutine.yield(id) - next, id = moveFunc(iter) - until not next - - enum.destructor, enum.handle = nil, nil - disposeFunc(iter) - end) -end - -function EnumerateEntitiesWithinDistance(entities, isPlayerEntities, coords, maxDistance) - local nearbyEntities = {} - - if coords then - coords = vector3(coords.x, coords.y, coords.z) - else - local playerPed = ESX.PlayerData.ped - coords = GetEntityCoords(playerPed) - end - - for k,entity in pairs(entities) do - local distance = #(coords - GetEntityCoords(entity)) - - if distance <= maxDistance then - table.insert(nearbyEntities, isPlayerEntities and k or entity) - end - end - - return nearbyEntities -end - -function EnumerateObjects() - return EnumerateEntities(FindFirstObject, FindNextObject, EndFindObject) -end - -function EnumeratePeds() - return EnumerateEntities(FindFirstPed, FindNextPed, EndFindPed) -end - -function EnumerateVehicles() - return EnumerateEntities(FindFirstVehicle, FindNextVehicle, EndFindVehicle) -end - -function EnumeratePickups() - return EnumerateEntities(FindFirstPickup, FindNextPickup, EndFindPickup) -end diff --git a/[esx]/es_extended/client/functions.lua b/[esx]/es_extended/client/functions.lua index 033ba176e..1a082d94f 100644 --- a/[esx]/es_extended/client/functions.lua +++ b/[esx]/es_extended/client/functions.lua @@ -21,7 +21,7 @@ ESX.Scaleform.Utils = {} ESX.Streaming = {} -ESX.SetTimeout = function(msec, cb) +function ESX.SetTimeout(msec, cb) table.insert(Core.TimeoutCallbacks, { time = GetGameTimer() + msec, cb = cb @@ -29,19 +29,45 @@ ESX.SetTimeout = function(msec, cb) return #Core.TimeoutCallbacks end -ESX.ClearTimeout = function(i) +function ESX.ClearTimeout(i) Core.TimeoutCallbacks[i] = nil end -ESX.IsPlayerLoaded = function() +function ESX.IsPlayerLoaded() return ESX.PlayerLoaded end -ESX.GetPlayerData = function() +function ESX.GetPlayerData() return ESX.PlayerData end -ESX.SetPlayerData = function(key, val) +function ESX.SearchInventory(items, count) + if type(items) == 'string' then items = {items} end + + local returnData = {} + local itemCount = #items + + for i = 1, itemCount do + local itemName = items[i] + returnData[itemName] = count and 0 + + for _, item in pairs(ESX.PlayerData.inventory) do + if item.name == itemName then + if count then + returnData[itemName] = returnData[itemName] + item.count + else + returnData[itemName] = item + end + end + end + end + + if next(returnData) then + return itemCount == 1 and returnData[items[1]] or returnData + end +end + +function ESX.SetPlayerData(key, val) local current = ESX.PlayerData[key] ESX.PlayerData[key] = val if key ~= 'inventory' and key ~= 'loadout' then @@ -51,22 +77,22 @@ ESX.SetPlayerData = function(key, val) end end -ESX.ShowNotification = function(msg) - SetNotificationTextEntry('STRING') - AddTextComponentString(msg) - DrawNotification(0,1) +function ESX.ShowNotification(msg) + BeginTextCommandThefeedPost('STRING') + AddTextComponentSubstringPlayerName(msg) + EndTextCommandThefeedPostTicker(0,1) end -ESX.ShowAdvancedNotification = function(sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex) +function ESX.ShowAdvancedNotification(sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex) if saveToBrief == nil then saveToBrief = true end AddTextEntry('esxAdvancedNotification', msg) BeginTextCommandThefeedPost('esxAdvancedNotification') - if hudColorIndex then ThefeedNextPostBackgroundColor(hudColorIndex) end + if hudColorIndex then ThefeedSetNextPostBackgroundColor(hudColorIndex) end EndTextCommandThefeedPostMessagetext(textureDict, textureDict, false, iconType, sender, subject) EndTextCommandThefeedPostTicker(flash or false, saveToBrief) end -ESX.ShowHelpNotification = function(msg, thisFrame, beep, duration) +function ESX.ShowHelpNotification(msg, thisFrame, beep, duration) AddTextEntry('esxHelpNotification', msg) if thisFrame then @@ -78,7 +104,7 @@ ESX.ShowHelpNotification = function(msg, thisFrame, beep, duration) end end -ESX.ShowFloatingHelpNotification = function(msg, coords) +function ESX.ShowFloatingHelpNotification(msg, coords) AddTextEntry('esxFloatingHelpNotification', msg) SetFloatingHelpTextWorldPosition(1, coords) SetFloatingHelpTextStyle(1, 1, 2, -1, 3, 0) @@ -86,7 +112,7 @@ ESX.ShowFloatingHelpNotification = function(msg, coords) EndTextCommandDisplayHelp(2, false, false, -1) end -ESX.TriggerServerCallback = function(name, cb, ...) +function ESX.TriggerServerCallback(name, cb, ...) Core.ServerCallbacks[Core.CurrentRequestId] = cb TriggerServerEvent('esx:triggerServerCallback', name, Core.CurrentRequestId, ...) @@ -98,14 +124,14 @@ ESX.TriggerServerCallback = function(name, cb, ...) end end -ESX.UI.HUD.SetDisplay = function(opacity) +function ESX.UI.HUD.SetDisplay(opacity) SendNUIMessage({ action = 'setHUDDisplay', opacity = opacity }) end -ESX.UI.HUD.RegisterElement = function(name, index, priority, html, data) +function ESX.UI.HUD.RegisterElement(name, index, priority, html, data) local found = false for i=1, #ESX.UI.HUD.RegisteredElements, 1 do @@ -133,7 +159,7 @@ ESX.UI.HUD.RegisterElement = function(name, index, priority, html, data) ESX.UI.HUD.UpdateElement(name, data) end -ESX.UI.HUD.RemoveElement = function(name) +function ESX.UI.HUD.RemoveElement(name) for i=1, #ESX.UI.HUD.RegisteredElements, 1 do if ESX.UI.HUD.RegisteredElements[i] == name then table.remove(ESX.UI.HUD.RegisteredElements, i) @@ -147,14 +173,14 @@ ESX.UI.HUD.RemoveElement = function(name) }) end -ESX.UI.HUD.Reset = function() +function ESX.UI.HUD.Reset() SendNUIMessage({ action = 'resetHUDElements' }) ESX.UI.HUD.RegisteredElements = {} end -ESX.UI.HUD.UpdateElement = function(name, data) +function ESX.UI.HUD.UpdateElement(name, data) SendNUIMessage({ action = 'updateHUDElement', name = name, @@ -162,14 +188,14 @@ ESX.UI.HUD.UpdateElement = function(name, data) }) end -ESX.UI.Menu.RegisterType = function(type, open, close) +function ESX.UI.Menu.RegisterType(type, open, close) ESX.UI.Menu.RegisteredTypes[type] = { open = open, close = close } end -ESX.UI.Menu.Open = function(type, namespace, name, data, submit, cancel, change, close) +function ESX.UI.Menu.Open(type, namespace, name, data, submit, cancel, change, close) local menu = {} menu.type = type @@ -254,7 +280,7 @@ ESX.UI.Menu.Open = function(type, namespace, name, data, submit, cancel, change, return menu end -ESX.UI.Menu.Close = function(type, namespace, name) +function ESX.UI.Menu.Close(type, namespace, name) for i=1, #ESX.UI.Menu.Opened, 1 do if ESX.UI.Menu.Opened[i] then if ESX.UI.Menu.Opened[i].type == type and ESX.UI.Menu.Opened[i].namespace == namespace and ESX.UI.Menu.Opened[i].name == name then @@ -265,7 +291,7 @@ ESX.UI.Menu.Close = function(type, namespace, name) end end -ESX.UI.Menu.CloseAll = function() +function ESX.UI.Menu.CloseAll() for i=1, #ESX.UI.Menu.Opened, 1 do if ESX.UI.Menu.Opened[i] then ESX.UI.Menu.Opened[i].close() @@ -274,7 +300,7 @@ ESX.UI.Menu.CloseAll = function() end end -ESX.UI.Menu.GetOpened = function(type, namespace, name) +function ESX.UI.Menu.GetOpened(type, namespace, name) for i=1, #ESX.UI.Menu.Opened, 1 do if ESX.UI.Menu.Opened[i] then if ESX.UI.Menu.Opened[i].type == type and ESX.UI.Menu.Opened[i].namespace == namespace and ESX.UI.Menu.Opened[i].name == name then @@ -284,15 +310,15 @@ ESX.UI.Menu.GetOpened = function(type, namespace, name) end end -ESX.UI.Menu.GetOpenedMenus = function() +function ESX.UI.Menu.GetOpenedMenus() return ESX.UI.Menu.Opened end -ESX.UI.Menu.IsOpen = function(type, namespace, name) +function ESX.UI.Menu.IsOpen(type, namespace, name) return ESX.UI.Menu.GetOpened(type, namespace, name) ~= nil end -ESX.UI.ShowInventoryItemNotification = function(add, item, count) +function ESX.UI.ShowInventoryItemNotification(add, item, count) SendNUIMessage({ action = 'inventoryNotification', add = add, @@ -301,7 +327,7 @@ ESX.UI.ShowInventoryItemNotification = function(add, item, count) }) end -ESX.Game.GetPedMugshot = function(ped, transparent) +function ESX.Game.GetPedMugshot(ped, transparent) if DoesEntityExist(ped) then local mugshot @@ -321,7 +347,7 @@ ESX.Game.GetPedMugshot = function(ped, transparent) end end -ESX.Game.Teleport = function(entity, coords, cb) +function ESX.Game.Teleport(entity, coords, cb) local vector = type(coords) == "vector4" and coords or type(coords) == "vector3" and vector4(coords, 0.0) or vec(coords.x, coords.y, coords.z, coords.heading or 0.0) if DoesEntityExist(entity) then @@ -339,7 +365,7 @@ ESX.Game.Teleport = function(entity, coords, cb) end end -ESX.Game.SpawnObject = function(object, coords, cb, networked) +function ESX.Game.SpawnObject(object, coords, cb, networked) local model = type(object) == 'number' and object or GetHashKey(object) local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z) networked = networked == nil and true or networked @@ -354,21 +380,21 @@ ESX.Game.SpawnObject = function(object, coords, cb, networked) end) end -ESX.Game.SpawnLocalObject = function(object, coords, cb) +function ESX.Game.SpawnLocalObject(object, coords, cb) ESX.Game.SpawnObject(object, coords, cb, false) end -ESX.Game.DeleteVehicle = function(vehicle) +function ESX.Game.DeleteVehicle(vehicle) SetEntityAsMissionEntity(vehicle, false, true) DeleteVehicle(vehicle) end -ESX.Game.DeleteObject = function(object) +function ESX.Game.DeleteObject(object) SetEntityAsMissionEntity(object, false, true) DeleteObject(object) end -ESX.Game.SpawnVehicle = function(vehicle, coords, heading, cb, networked) +function ESX.Game.SpawnVehicle(vehicle, coords, heading, cb, networked) local model = (type(vehicle) == 'number' and vehicle or GetHashKey(vehicle)) local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z) networked = networked == nil and true or networked @@ -398,22 +424,22 @@ ESX.Game.SpawnVehicle = function(vehicle, coords, heading, cb, networked) end) end -ESX.Game.SpawnLocalVehicle = function(vehicle, coords, heading, cb) +function ESX.Game.SpawnLocalVehicle(vehicle, coords, heading, cb) ESX.Game.SpawnVehicle(vehicle, coords, heading, cb, false) end -ESX.Game.IsVehicleEmpty = function(vehicle) +function ESX.Game.IsVehicleEmpty(vehicle) local passengers = GetVehicleNumberOfPassengers(vehicle) local driverSeatFree = IsVehicleSeatFree(vehicle, -1) return passengers == 0 and driverSeatFree end -ESX.Game.GetObjects = function() -- Leave the function for compatibility +function ESX.Game.GetObjects() -- Leave the function for compatibility return GetGamePool('CObject') end -ESX.Game.GetPeds = function(onlyOtherPeds) +function ESX.Game.GetPeds(onlyOtherPeds) local peds, myPed, pool = {}, ESX.PlayerData.ped, GetGamePool('CPed') for i=1, #pool do @@ -425,11 +451,11 @@ ESX.Game.GetPeds = function(onlyOtherPeds) return peds end -ESX.Game.GetVehicles = function() -- Leave the function for compatibility +function ESX.Game.GetVehicles() -- Leave the function for compatibility return GetGamePool('CVehicle') end -ESX.Game.GetPlayers = function(onlyOtherPlayers, returnKeyValue, returnPeds) +function ESX.Game.GetPlayers(onlyOtherPlayers, returnKeyValue, returnPeds) local players, myPlayer = {}, PlayerId() for k,player in ipairs(GetActivePlayers()) do @@ -447,36 +473,57 @@ ESX.Game.GetPlayers = function(onlyOtherPlayers, returnKeyValue, returnPeds) return players end -ESX.Game.GetClosestObject = function(coords, modelFilter) +function ESX.Game.GetClosestObject(coords, modelFilter) return ESX.Game.GetClosestEntity(ESX.Game.GetObjects(), false, coords, modelFilter) end -ESX.Game.GetClosestPed = function(coords, modelFilter) +function ESX.Game.GetClosestPed(coords, modelFilter) return ESX.Game.GetClosestEntity(ESX.Game.GetPeds(true), false, coords, modelFilter) end -ESX.Game.GetClosestPlayer = function(coords) +function ESX.Game.GetClosestPlayer(coords) return ESX.Game.GetClosestEntity(ESX.Game.GetPlayers(true, true), true, coords, nil) end -ESX.Game.GetClosestVehicle = function(coords, modelFilter) +function ESX.Game.GetClosestVehicle(coords, modelFilter) return ESX.Game.GetClosestEntity(ESX.Game.GetVehicles(), false, coords, modelFilter) end -ESX.Game.GetPlayersInArea = function(coords, maxDistance) +local function EnumerateEntitiesWithinDistance(entities, isPlayerEntities, coords, maxDistance) + local nearbyEntities = {} + + if coords then + coords = vector3(coords.x, coords.y, coords.z) + else + local playerPed = ESX.PlayerData.ped + coords = GetEntityCoords(playerPed) + end + + for k,entity in pairs(entities) do + local distance = #(coords - GetEntityCoords(entity)) + + if distance <= maxDistance then + table.insert(nearbyEntities, isPlayerEntities and k or entity) + end + end + + return nearbyEntities +end + +function ESX.Game.GetPlayersInArea(coords, maxDistance) return EnumerateEntitiesWithinDistance(ESX.Game.GetPlayers(true, true), true, coords, maxDistance) end -ESX.Game.GetVehiclesInArea = function(coords, maxDistance) +function ESX.Game.GetVehiclesInArea(coords, maxDistance) return EnumerateEntitiesWithinDistance(ESX.Game.GetVehicles(), false, coords, maxDistance) end -ESX.Game.IsSpawnPointClear = function(coords, maxDistance) +function ESX.Game.IsSpawnPointClear(coords, maxDistance) return #ESX.Game.GetVehiclesInArea(coords, maxDistance) == 0 end -ESX.Game.GetClosestEntity = function(entities, isPlayerEntities, coords, modelFilter) +function ESX.Game.GetClosestEntity(entities, isPlayerEntities, coords, modelFilter) local closestEntity, closestEntityDistance, filteredEntities = -1, -1, nil if coords then @@ -507,11 +554,11 @@ ESX.Game.GetClosestEntity = function(entities, isPlayerEntities, coords, modelFi return closestEntity, closestEntityDistance end -ESX.Game.GetVehicleInDirection = function() +function ESX.Game.GetVehicleInDirection() local playerPed = ESX.PlayerData.ped local playerCoords = GetEntityCoords(playerPed) local inDirection = GetOffsetFromEntityInWorldCoords(playerPed, 0.0, 5.0, 0.0) - local rayHandle = StartShapeTestRay(playerCoords, inDirection, 10, playerPed, 0) + local rayHandle = StartExpensiveSynchronousShapeTestLosProbe(playerCoords, inDirection, 10, playerPed, 0) local numRayHandle, hit, endCoords, surfaceNormal, entityHit = GetShapeTestResult(rayHandle) if hit == 1 and GetEntityType(entityHit) == 2 then @@ -522,7 +569,7 @@ ESX.Game.GetVehicleInDirection = function() return nil end -ESX.Game.GetVehicleProperties = function(vehicle) +function ESX.Game.GetVehicleProperties(vehicle) if DoesEntityExist(vehicle) then local colorPrimary, colorSecondary = GetVehicleColours(vehicle) local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle) @@ -555,7 +602,7 @@ ESX.Game.GetVehicleProperties = function(vehicle) wheels = GetVehicleWheelType(vehicle), windowTint = GetVehicleWindowTint(vehicle), - xenonColor = GetVehicleXenonLightsColour(vehicle), + xenonColor = GetVehicleXenonLightsColor(vehicle), neonEnabled = { IsVehicleNeonLightEnabled(vehicle, 0), @@ -623,7 +670,7 @@ ESX.Game.GetVehicleProperties = function(vehicle) end end -ESX.Game.SetVehicleProperties = function(vehicle, props) +function ESX.Game.SetVehicleProperties(vehicle, props) if DoesEntityExist(vehicle) then local colorPrimary, colorSecondary = GetVehicleColours(vehicle) local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle) @@ -661,7 +708,7 @@ ESX.Game.SetVehicleProperties = function(vehicle, props) end if props.neonColor then SetVehicleNeonLightsColour(vehicle, props.neonColor[1], props.neonColor[2], props.neonColor[3]) end - if props.xenonColor then SetVehicleXenonLightsColour(vehicle, props.xenonColor) end + if props.xenonColor then SetVehicleXenonLightsColor(vehicle, props.xenonColor) end if props.modSmokeEnabled then ToggleVehicleMod(vehicle, 20, true) end if props.tyreSmokeColor then SetVehicleTyreSmokeColor(vehicle, props.tyreSmokeColor[1], props.tyreSmokeColor[2], props.tyreSmokeColor[3]) end if props.modSpoilers then SetVehicleMod(vehicle, 0, props.modSpoilers, false) end @@ -715,10 +762,10 @@ ESX.Game.SetVehicleProperties = function(vehicle, props) end end -ESX.Game.Utils.DrawText3D = function(coords, text, size, font) +function ESX.Game.Utils.DrawText3D(coords, text, size, font) local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z) - local camCoords = GetGameplayCamCoords() + local camCoords = GetFinalRenderedCamCoord() local distance = #(vector - camCoords) if not size then size = 1 end @@ -732,15 +779,15 @@ ESX.Game.Utils.DrawText3D = function(coords, text, size, font) SetTextFont(font) SetTextProportional(1) SetTextColour(255, 255, 255, 215) - SetTextEntry('STRING') + BeginTextCommandDisplayText('STRING') SetTextCentre(true) - AddTextComponentString(text) + AddTextComponentSubstringPlayerName(text) SetDrawOrigin(vector.xyz, 0) - DrawText(0.0, 0.0) + EndTextCommandDisplayText(0.0, 0.0) ClearDrawOrigin() end -ESX.ShowInventory = function() +function ESX.ShowInventory() local playerPed = ESX.PlayerData.ped local elements, currentWeight = {}, 0 diff --git a/[esx]/es_extended/client/main.lua b/[esx]/es_extended/client/main.lua index abf86c0ac..ba0774bbd 100644 --- a/[esx]/es_extended/client/main.lua +++ b/[esx]/es_extended/client/main.lua @@ -6,6 +6,7 @@ CreateThread(function() if NetworkIsPlayerActive(PlayerId()) then exports.spawnmanager:setAutoSpawn(false) DoScreenFadeOut(0) + Wait(500) TriggerServerEvent('esx:onPlayerJoined') break end @@ -517,7 +518,7 @@ AddEventHandler("esx:tpm", function() break end - Wait(5) + Wait(0) end TriggerEvent('chatMessage', "Successfully Teleported") else diff --git a/[esx]/es_extended/client/modules/scaleform.lua b/[esx]/es_extended/client/modules/scaleform.lua index ad3969d08..6ef9357a6 100644 --- a/[esx]/es_extended/client/modules/scaleform.lua +++ b/[esx]/es_extended/client/modules/scaleform.lua @@ -1,13 +1,13 @@ -ESX.Scaleform.ShowFreemodeMessage = function(title, msg, sec) +function ESX.Scaleform.ShowFreemodeMessage(title, msg, sec) local scaleform = ESX.Scaleform.Utils.RequestScaleformMovie('MP_BIG_MESSAGE_FREEMODE') BeginScaleformMovieMethod(scaleform, 'SHOW_SHARD_WASTED_MP_MESSAGE') - PushScaleformMovieMethodParameterString(title) - PushScaleformMovieMethodParameterString(msg) + ScaleformMovieMethodAddParamTextureNameString(title) + ScaleformMovieMethodAddParamTextureNameString(msg) EndScaleformMovieMethod() while sec > 0 do - Wait(1) + Wait(0) sec = sec - 0.01 DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255) @@ -16,29 +16,29 @@ ESX.Scaleform.ShowFreemodeMessage = function(title, msg, sec) SetScaleformMovieAsNoLongerNeeded(scaleform) end -ESX.Scaleform.ShowBreakingNews = function(title, msg, bottom, sec) +function ESX.Scaleform.ShowBreakingNews(title, msg, bottom, sec) local scaleform = ESX.Scaleform.Utils.RequestScaleformMovie('BREAKING_NEWS') BeginScaleformMovieMethod(scaleform, 'SET_TEXT') - PushScaleformMovieMethodParameterString(msg) - PushScaleformMovieMethodParameterString(bottom) + ScaleformMovieMethodAddParamTextureNameString(msg) + ScaleformMovieMethodAddParamTextureNameString(bottom) EndScaleformMovieMethod() BeginScaleformMovieMethod(scaleform, 'SET_SCROLL_TEXT') - PushScaleformMovieMethodParameterInt(0) -- top ticker - PushScaleformMovieMethodParameterInt(0) -- Since this is the first string, start at 0 - PushScaleformMovieMethodParameterString(title) + ScaleformMovieMethodAddParamInt(0) -- top ticker + ScaleformMovieMethodAddParamInt(0) -- Since this is the first string, start at 0 + ScaleformMovieMethodAddParamTextureNameString(title) EndScaleformMovieMethod() BeginScaleformMovieMethod(scaleform, 'DISPLAY_SCROLL_TEXT') - PushScaleformMovieMethodParameterInt(0) -- Top ticker - PushScaleformMovieMethodParameterInt(0) -- Index of string + ScaleformMovieMethodAddParamInt(0) -- Top ticker + ScaleformMovieMethodAddParamInt(0) -- Index of string EndScaleformMovieMethod() while sec > 0 do - Wait(1) + Wait(0) sec = sec - 0.01 DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255) @@ -47,21 +47,21 @@ ESX.Scaleform.ShowBreakingNews = function(title, msg, bottom, sec) SetScaleformMovieAsNoLongerNeeded(scaleform) end -ESX.Scaleform.ShowPopupWarning = function(title, msg, bottom, sec) +function ESX.Scaleform.ShowPopupWarning(title, msg, bottom, sec) local scaleform = ESX.Scaleform.Utils.RequestScaleformMovie('POPUP_WARNING') BeginScaleformMovieMethod(scaleform, 'SHOW_POPUP_WARNING') - PushScaleformMovieMethodParameterFloat(500.0) -- black background - PushScaleformMovieMethodParameterString(title) - PushScaleformMovieMethodParameterString(msg) - PushScaleformMovieMethodParameterString(bottom) - PushScaleformMovieMethodParameterBool(true) + ScaleformMovieMethodAddParamFloat(500.0) -- black background + ScaleformMovieMethodAddParamTextureNameString(title) + ScaleformMovieMethodAddParamTextureNameString(msg) + ScaleformMovieMethodAddParamTextureNameString(bottom) + ScaleformMovieMethodAddParamBool(true) EndScaleformMovieMethod() while sec > 0 do - Wait(1) + Wait(0) sec = sec - 0.01 DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255) @@ -70,7 +70,7 @@ ESX.Scaleform.ShowPopupWarning = function(title, msg, bottom, sec) SetScaleformMovieAsNoLongerNeeded(scaleform) end -ESX.Scaleform.ShowTrafficMovie = function(sec) +function ESX.Scaleform.ShowTrafficMovie(sec) local scaleform = ESX.Scaleform.Utils.RequestScaleformMovie('TRAFFIC_CAM') BeginScaleformMovieMethod(scaleform, 'PLAY_CAM_MOVIE') @@ -78,7 +78,7 @@ ESX.Scaleform.ShowTrafficMovie = function(sec) EndScaleformMovieMethod() while sec > 0 do - Wait(1) + Wait(0) sec = sec - 0.01 DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255) @@ -87,7 +87,7 @@ ESX.Scaleform.ShowTrafficMovie = function(sec) SetScaleformMovieAsNoLongerNeeded(scaleform) end -ESX.Scaleform.Utils.RequestScaleformMovie = function(movie) +function ESX.Scaleform.Utils.RequestScaleformMovie(movie) local scaleform = RequestScaleformMovie(movie) while not HasScaleformMovieLoaded(scaleform) do diff --git a/[esx]/es_extended/client/modules/streaming.lua b/[esx]/es_extended/client/modules/streaming.lua index 83030f3f4..7f430d9f3 100644 --- a/[esx]/es_extended/client/modules/streaming.lua +++ b/[esx]/es_extended/client/modules/streaming.lua @@ -5,7 +5,7 @@ function ESX.Streaming.RequestModel(modelHash, cb) RequestModel(modelHash) while not HasModelLoaded(modelHash) do - Wait(4) + Wait(0) end end @@ -19,7 +19,7 @@ function ESX.Streaming.RequestStreamedTextureDict(textureDict, cb) RequestStreamedTextureDict(textureDict) while not HasStreamedTextureDictLoaded(textureDict) do - Wait(4) + Wait(0) end end @@ -33,7 +33,7 @@ function ESX.Streaming.RequestNamedPtfxAsset(assetName, cb) RequestNamedPtfxAsset(assetName) while not HasNamedPtfxAssetLoaded(assetName) do - Wait(4) + Wait(0) end end @@ -47,7 +47,7 @@ function ESX.Streaming.RequestAnimSet(animSet, cb) RequestAnimSet(animSet) while not HasAnimSetLoaded(animSet) do - Wait(4) + Wait(0) end end @@ -61,7 +61,7 @@ function ESX.Streaming.RequestAnimDict(animDict, cb) RequestAnimDict(animDict) while not HasAnimDictLoaded(animDict) do - Wait(4) + Wait(0) end end @@ -75,7 +75,7 @@ function ESX.Streaming.RequestWeaponAsset(weaponHash, cb) RequestWeaponAsset(weaponHash) while not HasWeaponAssetLoaded(weaponHash) do - Wait(4) + Wait(0) end end diff --git a/[esx]/es_extended/common/functions.lua b/[esx]/es_extended/common/functions.lua index e47b5b7ff..5801fca65 100644 --- a/[esx]/es_extended/common/functions.lua +++ b/[esx]/es_extended/common/functions.lua @@ -4,7 +4,7 @@ for i = 48, 57 do table.insert(Charset, string.char(i)) end for i = 65, 90 do table.insert(Charset, string.char(i)) end for i = 97, 122 do table.insert(Charset, string.char(i)) end -ESX.GetRandomString = function(length) +function ESX.GetRandomString(length) math.randomseed(GetGameTimer()) if length > 0 then @@ -14,11 +14,11 @@ ESX.GetRandomString = function(length) end end -ESX.GetConfig = function() +function ESX.GetConfig() return Config end -ESX.GetWeapon = function(weaponName) +function ESX.GetWeapon(weaponName) weaponName = string.upper(weaponName) for k,v in ipairs(Config.Weapons) do @@ -28,7 +28,7 @@ ESX.GetWeapon = function(weaponName) end end -ESX.GetWeaponFromHash = function(weaponHash) +function ESX.GetWeaponFromHash(weaponHash) for k,v in ipairs(Config.Weapons) do if GetHashKey(v.name) == weaponHash then return v @@ -36,11 +36,11 @@ ESX.GetWeaponFromHash = function(weaponHash) end end -ESX.GetWeaponList = function() +function ESX.GetWeaponList() return Config.Weapons end -ESX.GetWeaponLabel = function(weaponName) +function ESX.GetWeaponLabel(weaponName) weaponName = string.upper(weaponName) for k,v in ipairs(Config.Weapons) do @@ -50,7 +50,7 @@ ESX.GetWeaponLabel = function(weaponName) end end -ESX.GetWeaponComponent = function(weaponName, weaponComponent) +function ESX.GetWeaponComponent(weaponName, weaponComponent) weaponName = string.upper(weaponName) local weapons = Config.Weapons @@ -65,7 +65,7 @@ ESX.GetWeaponComponent = function(weaponName, weaponComponent) end end -ESX.DumpTable = function(table, nb) +function ESX.DumpTable(table, nb) if nb == nil then nb = 0 end @@ -95,6 +95,6 @@ ESX.DumpTable = function(table, nb) end end -ESX.Round = function(value, numDecimalPlaces) +function ESX.Round(value, numDecimalPlaces) return ESX.Math.Round(value, numDecimalPlaces) end diff --git a/[esx]/es_extended/common/modules/math.lua b/[esx]/es_extended/common/modules/math.lua index 947ccd78d..12ca28e27 100644 --- a/[esx]/es_extended/common/modules/math.lua +++ b/[esx]/es_extended/common/modules/math.lua @@ -1,6 +1,6 @@ ESX.Math = {} -ESX.Math.Round = function(value, numDecimalPlaces) +function ESX.Math.Round(value, numDecimalPlaces) if numDecimalPlaces then local power = 10^numDecimalPlaces return math.floor((value * power) + 0.5) / (power) @@ -10,13 +10,13 @@ ESX.Math.Round = function(value, numDecimalPlaces) end -- credit http://richard.warburton.it -ESX.Math.GroupDigits = function(value) +function ESX.Math.GroupDigits(value) local left,num,right = string.match(value,'^([^%d]*%d)(%d*)(.-)$') return left..(num:reverse():gsub('(%d%d%d)','%1' .. _U('locale_digit_grouping_symbol')):reverse())..right end -ESX.Math.Trim = function(value) +function ESX.Math.Trim(value) if value then return (string.gsub(value, "^%s*(.-)%s*$", "%1")) else diff --git a/[esx]/es_extended/es_extended.sql b/[esx]/es_extended/es_extended.sql index 7ba355563..8ad88de1f 100644 --- a/[esx]/es_extended/es_extended.sql +++ b/[esx]/es_extended/es_extended.sql @@ -1,6 +1,12 @@ CREATE DATABASE IF NOT EXISTS `es_extended`; USE `es_extended`; +ALTER DATABASE `es_extended` + DEFAULT CHARACTER SET UTF8MB4; + +ALTER DATABASE `es_extended` + DEFAULT COLLATE UTF8MB4_UNICODE_CI; + CREATE TABLE `users` ( `identifier` VARCHAR(60) NOT NULL, `accounts` LONGTEXT NULL DEFAULT NULL, @@ -12,7 +18,7 @@ CREATE TABLE `users` ( `position` VARCHAR(255) NULL DEFAULT '{"x":-269.4,"y":-955.3,"z":31.2,"heading":205.8}', PRIMARY KEY (`identifier`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB; CREATE TABLE `items` ( @@ -23,7 +29,7 @@ CREATE TABLE `items` ( `can_remove` TINYINT NOT NULL DEFAULT 1, PRIMARY KEY (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB; CREATE TABLE `job_grades` ( @@ -37,7 +43,7 @@ CREATE TABLE `job_grades` ( `skin_female` LONGTEXT NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB; INSERT INTO `job_grades` VALUES (1,'unemployed',0,'unemployed','Unemployed',200,'{}','{}'); @@ -47,7 +53,7 @@ CREATE TABLE `jobs` ( `label` VARCHAR(50) DEFAULT NULL, PRIMARY KEY (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB; INSERT INTO `jobs` VALUES ('unemployed','Unemployed'); diff --git a/[esx]/es_extended/fxmanifest.lua b/[esx]/es_extended/fxmanifest.lua index 3f3c34711..baf5c145b 100644 --- a/[esx]/es_extended/fxmanifest.lua +++ b/[esx]/es_extended/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ES Extended' -version 'legacy' +version '1.5.0' shared_scripts { 'locale.lua', @@ -31,7 +31,6 @@ server_scripts { client_scripts { 'client/common.lua', - 'client/entityiter.lua', 'client/functions.lua', 'client/wrapper.lua', 'client/main.lua', diff --git a/[esx]/es_extended/locales/es.lua b/[esx]/es_extended/locales/es.lua index f32814b9d..83a4c522f 100644 --- a/[esx]/es_extended/locales/es.lua +++ b/[esx]/es_extended/locales/es.lua @@ -162,7 +162,7 @@ Locales['es'] = { -- SMG & LMG ['weapon_assaultsmg'] = 'Subfusil de Asalto', ['weapon_combatmg'] = 'Ametralladora de Combate', - ['weapon_combatmg'] = 'Ametralladora MK2', + ['weapon_combatmg_mk2'] = 'Ametralladora MK2', ['weapon_combatpdw'] = 'Subfusil PDW', ['weapon_gusenberg'] = 'Subfusil de Barril', ['weapon_machinepistol'] = 'Pistola Ametralladora', diff --git a/[esx]/es_extended/server/classes/player.lua b/[esx]/es_extended/server/classes/player.lua index 69f95f707..d933b3137 100644 --- a/[esx]/es_extended/server/classes/player.lua +++ b/[esx]/es_extended/server/classes/player.lua @@ -18,20 +18,20 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, ExecuteCommand(('add_principal identifier.%s group.%s'):format(self.license, self.group)) - self.triggerEvent = function(eventName, ...) + function self.triggerEvent(eventName, ...) TriggerClientEvent(eventName, self.source, ...) end - self.setCoords = function(coords) + function self.setCoords(coords) self.updateCoords(coords) self.triggerEvent('esx:teleport', coords) end - self.updateCoords = function(coords) + function self.updateCoords(coords) self.coords = {x = ESX.Math.Round(coords.x, 1), y = ESX.Math.Round(coords.y, 1), z = ESX.Math.Round(coords.z, 1), heading = ESX.Math.Round(coords.heading or 0.0, 1)} end - self.getCoords = function(vector) + function self.getCoords(vector) if vector then return vector3(self.coords.x, self.coords.y, self.coords.z) else @@ -39,52 +39,52 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.kick = function(reason) + function self.kick(reason) DropPlayer(self.source, reason) end - self.setMoney = function(money) + function self.setMoney(money) money = ESX.Math.Round(money) self.setAccountMoney('money', money) end - self.getMoney = function() + function self.getMoney() return self.getAccount('money').money end - self.addMoney = function(money) + function self.addMoney(money) money = ESX.Math.Round(money) self.addAccountMoney('money', money) end - self.removeMoney = function(money) + function self.removeMoney(money) money = ESX.Math.Round(money) self.removeAccountMoney('money', money) end - self.getIdentifier = function() + function self.getIdentifier() return self.identifier end - self.setGroup = function(newGroup) + function self.setGroup(newGroup) ExecuteCommand(('remove_principal identifier.%s group.%s'):format(self.license, self.group)) self.group = newGroup ExecuteCommand(('add_principal identifier.%s group.%s'):format(self.license, self.group)) end - self.getGroup = function() + function self.getGroup() return self.group end - self.set = function(k, v) + function self.set(k, v) self.variables[k] = v end - self.get = function(k) + function self.get(k) return self.variables[k] end - self.getAccounts = function(minimal) + function self.getAccounts(minimal) if minimal then local minimalAccounts = {} @@ -98,7 +98,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.getAccount = function(account) + function self.getAccount(account) for k,v in ipairs(self.accounts) do if v.name == account then return v @@ -106,7 +106,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.getInventory = function(minimal) + function self.getInventory(minimal) if minimal then local minimalInventory = {} @@ -122,11 +122,11 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.getJob = function() + function self.getJob() return self.job end - self.getLoadout = function(minimal) + function self.getLoadout(minimal) if minimal then local minimalLoadout = {} @@ -155,15 +155,15 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.getName = function() + function self.getName() return self.name end - self.setName = function(newName) + function self.setName(newName) self.name = newName end - self.setAccountMoney = function(accountName, money) + function self.setAccountMoney(accountName, money) if money >= 0 then local account = self.getAccount(accountName) @@ -177,7 +177,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.addAccountMoney = function(accountName, money) + function self.addAccountMoney(accountName, money) if money > 0 then local account = self.getAccount(accountName) @@ -190,7 +190,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.removeAccountMoney = function(accountName, money) + function self.removeAccountMoney(accountName, money) if money > 0 then local account = self.getAccount(accountName) @@ -203,17 +203,15 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.getInventoryItem = function(name) + function self.getInventoryItem(name) for k,v in ipairs(self.inventory) do if v.name == name then return v end end - - return end - self.addInventoryItem = function(name, count) + function self.addInventoryItem(name, count) local item = self.getInventoryItem(name) if item then @@ -226,7 +224,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.removeInventoryItem = function(name, count) + function self.removeInventoryItem(name, count) local item = self.getInventoryItem(name) if item then @@ -243,7 +241,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.setInventoryItem = function(name, count) + function self.setInventoryItem(name, count) local item = self.getInventoryItem(name) if item and count >= 0 then @@ -257,22 +255,22 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.getWeight = function() + function self.getWeight() return self.weight end - self.getMaxWeight = function() + function self.getMaxWeight() return self.maxWeight end - self.canCarryItem = function(name, count) + function self.canCarryItem(name, count) local currentWeight, itemWeight = self.weight, ESX.Items[name].weight local newWeight = currentWeight + (itemWeight * count) return newWeight <= self.maxWeight end - self.canSwapItem = function(firstItem, firstItemCount, testItem, testItemCount) + function self.canSwapItem(firstItem, firstItemCount, testItem, testItemCount) local firstItemObject = self.getInventoryItem(firstItem) local testItemObject = self.getInventoryItem(testItem) @@ -286,12 +284,12 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, return false end - self.setMaxWeight = function(newWeight) + function self.setMaxWeight(newWeight) self.maxWeight = newWeight self.triggerEvent('esx:setMaxWeight', self.maxWeight) end - self.setJob = function(job, grade) + function self.setJob(job, grade) grade = tostring(grade) local lastJob = json.decode(json.encode(self.job)) @@ -326,7 +324,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.addWeapon = function(weaponName, ammo) + function self.addWeapon(weaponName, ammo) if not self.hasWeapon(weaponName) then local weaponLabel = ESX.GetWeaponLabel(weaponName) @@ -343,7 +341,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.addWeaponComponent = function(weaponName, weaponComponent) + function self.addWeaponComponent(weaponName, weaponComponent) local loadoutNum, weapon = self.getWeapon(weaponName) if weapon then @@ -359,7 +357,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.addWeaponAmmo = function(weaponName, ammoCount) + function self.addWeaponAmmo(weaponName, ammoCount) local loadoutNum, weapon = self.getWeapon(weaponName) if weapon then @@ -368,7 +366,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.updateWeaponAmmo = function(weaponName, ammoCount) + function self.updateWeaponAmmo(weaponName, ammoCount) local loadoutNum, weapon = self.getWeapon(weaponName) if weapon then @@ -378,7 +376,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.setWeaponTint = function(weaponName, weaponTintIndex) + function self.setWeaponTint(weaponName, weaponTintIndex) local loadoutNum, weapon = self.getWeapon(weaponName) if weapon then @@ -392,7 +390,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.getWeaponTint = function(weaponName) + function self.getWeaponTint(weaponName) local loadoutNum, weapon = self.getWeapon(weaponName) if weapon then @@ -402,7 +400,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, return 0 end - self.removeWeapon = function(weaponName) + function self.removeWeapon(weaponName) local weaponLabel for k,v in ipairs(self.loadout) do @@ -424,7 +422,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.removeWeaponComponent = function(weaponName, weaponComponent) + function self.removeWeaponComponent(weaponName, weaponComponent) local loadoutNum, weapon = self.getWeapon(weaponName) if weapon then @@ -446,7 +444,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.removeWeaponAmmo = function(weaponName, ammoCount) + function self.removeWeaponAmmo(weaponName, ammoCount) local loadoutNum, weapon = self.getWeapon(weaponName) if weapon then @@ -455,7 +453,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.hasWeaponComponent = function(weaponName, weaponComponent) + function self.hasWeaponComponent(weaponName, weaponComponent) local loadoutNum, weapon = self.getWeapon(weaponName) if weapon then @@ -471,7 +469,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end - self.hasWeapon = function(weaponName) + function self.hasWeapon(weaponName) for k,v in ipairs(self.loadout) do if v.name == weaponName then return true @@ -481,21 +479,19 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, return false end - self.getWeapon = function(weaponName) + function self.getWeapon(weaponName) for k,v in ipairs(self.loadout) do if v.name == weaponName then return k, v end end - - return end - self.showNotification = function(msg) + function self.showNotification(msg) self.triggerEvent('esx:showNotification', msg) end - self.showHelpNotification = function(msg, thisFrame, beep, duration) + function self.showHelpNotification(msg, thisFrame, beep, duration) self.triggerEvent('esx:showHelpNotification', msg, thisFrame, beep, duration) end diff --git a/[esx]/es_extended/server/common.lua b/[esx]/es_extended/server/common.lua index 38d382391..a5062c81c 100644 --- a/[esx]/es_extended/server/common.lua +++ b/[esx]/es_extended/server/common.lua @@ -29,45 +29,62 @@ local function StartDBSync() end MySQL.ready(function() - MySQL.query('SELECT * FROM items', {}, function(result) - for k,v in ipairs(result) do - ESX.Items[v.name] = { - label = v.label, - weight = v.weight, - rare = v.rare, - canRemove = v.can_remove - } - end - end) + local items = MySQL.query.await('SELECT * FROM items') + for k, v in ipairs(items) do + ESX.Items[v.name] = { + label = v.label, + weight = v.weight, + rare = v.rare, + canRemove = v.can_remove + } + end local Jobs = {} - MySQL.query('SELECT * FROM jobs', {}, function(jobs) - for k,v in ipairs(jobs) do - Jobs[v.name] = v - Jobs[v.name].grades = {} + local jobs = MySQL.query.await('SELECT * FROM jobs') + + for _, v in ipairs(jobs) do + Jobs[v.name] = v + Jobs[v.name].grades = {} + end + + local jobGrades = MySQL.query.await('SELECT * FROM job_grades') + + for _, v in ipairs(jobGrades) do + if Jobs[v.job_name] then + Jobs[v.job_name].grades[tostring(v.grade)] = v + else + print(('[^3WARNING^7] Ignoring job grades for ^5"%s"^0 due to missing job'):format(v.job_name)) end + end - MySQL.query('SELECT * FROM job_grades', {}, function(jobGrades) - for k,v in ipairs(jobGrades) do - if Jobs[v.job_name] then - Jobs[v.job_name].grades[tostring(v.grade)] = v - else - print(('[^3WARNING^7] Ignoring job grades for ^5"%s"^0 due to missing job'):format(v.job_name)) - end - end + for _, v in pairs(Jobs) do + if ESX.Table.SizeOf(v.grades) == 0 then + Jobs[v.name] = nil + print(('[^3WARNING^7] Ignoring job ^5"%s"^0due to no job grades found'):format(v.name)) + end + end - for k2,v2 in pairs(Jobs) do - if ESX.Table.SizeOf(v2.grades) == 0 then - Jobs[v2.name] = nil - print(('[^3WARNING^7] Ignoring job ^5"%s"^0due to no job grades found'):format(v2.name)) - end - end - ESX.Jobs = Jobs - print('[^2INFO^7] ESX ^5Legacy^0 initialized') - StartDBSync() - StartPayCheck() - end) - end) + if not Jobs then + -- Fallback data, if no jobs exist + ESX.Jobs['unemployed'] = { + label = 'Unemployed', + grades = { + ['0'] = { + grade = 0, + label = 'Unemployed', + salary = 200, + skin_male = {}, + skin_female = {} + } + } + } + else + ESX.Jobs = Jobs + end + + print('[^2INFO^7] ESX ^5Legacy^0 initialized') + StartDBSync() + StartPayCheck() end) RegisterServerEvent('esx:clientLog') diff --git a/[esx]/es_extended/server/functions.lua b/[esx]/es_extended/server/functions.lua index 540f920c6..fae84bdae 100644 --- a/[esx]/es_extended/server/functions.lua +++ b/[esx]/es_extended/server/functions.lua @@ -1,10 +1,10 @@ -ESX.Trace = function(msg) +function ESX.Trace(msg) if Config.EnableDebug then print(('[^2TRACE^7] %s^7'):format(msg)) end end -ESX.SetTimeout = function(msec, cb) +function ESX.SetTimeout(msec, cb) local id = Core.TimeoutCount + 1 SetTimeout(msec, function() @@ -20,7 +20,7 @@ ESX.SetTimeout = function(msec, cb) return id end -ESX.RegisterCommand = function(name, group, cb, allowConsole, suggestion) +function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion) if type(name) == 'table' then for k,v in ipairs(name) do ESX.RegisterCommand(v, group, cb, allowConsole, suggestion) @@ -147,15 +147,15 @@ ESX.RegisterCommand = function(name, group, cb, allowConsole, suggestion) end end -ESX.ClearTimeout = function(id) +function ESX.ClearTimeout(id) Core.CancelledTimeouts[id] = true end -ESX.RegisterServerCallback = function(name, cb) +function ESX.RegisterServerCallback(name, cb) Core.ServerCallbacks[name] = cb end -ESX.TriggerServerCallback = function(name, requestId, source, cb, ...) +function ESX.TriggerServerCallback(name, requestId, source, cb, ...) if Core.ServerCallbacks[name] then Core.ServerCallbacks[name](source, cb, ...) else @@ -163,7 +163,7 @@ ESX.TriggerServerCallback = function(name, requestId, source, cb, ...) end end -Core.SavePlayer = function(xPlayer, cb) +function Core.SavePlayer(xPlayer, cb) MySQL.prepare('UPDATE `users` SET `accounts` = ?, `job` = ?, `job_grade` = ?, `group` = ?, `position` = ?, `inventory` = ?, `loadout` = ? WHERE `identifier` = ?', { json.encode(xPlayer.getAccounts(true)), xPlayer.job.name, @@ -181,7 +181,7 @@ Core.SavePlayer = function(xPlayer, cb) end) end -Core.SavePlayers = function(cb) +function Core.SavePlayers(cb) local xPlayers = ESX.GetExtendedPlayers() local count = #xPlayers if count > 0 then @@ -209,7 +209,7 @@ Core.SavePlayers = function(cb) end end -ESX.GetPlayers = function() +function ESX.GetPlayers() local sources = {} for k,v in pairs(ESX.Players) do @@ -219,7 +219,7 @@ ESX.GetPlayers = function() return sources end -ESX.GetExtendedPlayers = function(key, val) +function ESX.GetExtendedPlayers(key, val) local xPlayers = {} for k, v in pairs(ESX.Players) do if key then @@ -233,11 +233,11 @@ ESX.GetExtendedPlayers = function(key, val) return xPlayers end -ESX.GetPlayerFromId = function(source) +function ESX.GetPlayerFromId(source) return ESX.Players[tonumber(source)] end -ESX.GetPlayerFromIdentifier = function(identifier) +function ESX.GetPlayerFromIdentifier(identifier) for k,v in pairs(ESX.Players) do if v.identifier == identifier then return v @@ -245,7 +245,7 @@ ESX.GetPlayerFromIdentifier = function(identifier) end end -ESX.GetIdentifier = function(playerId) +function ESX.GetIdentifier(playerId) for k,v in ipairs(GetPlayerIdentifiers(playerId)) do if string.match(v, 'license:') then local identifier = string.gsub(v, 'license:', '') @@ -254,25 +254,25 @@ ESX.GetIdentifier = function(playerId) end end -ESX.RegisterUsableItem = function(item, cb) +function ESX.RegisterUsableItem(item, cb) Core.UsableItemsCallbacks[item] = cb end -ESX.UseItem = function(source, item) +function ESX.UseItem(source, item) Core.UsableItemsCallbacks[item](source, item) end -ESX.GetItemLabel = function(item) +function ESX.GetItemLabel(item) if ESX.Items[item] then return ESX.Items[item].label end end -ESX.GetJobs = function() +function ESX.GetJobs() return ESX.Jobs end -ESX.GetUsableItems = function() +function ESX.GetUsableItems() local Usables = {} for k in pairs(Core.UsableItemsCallbacks) do Usables[k] = true @@ -280,7 +280,7 @@ ESX.GetUsableItems = function() return Usables end -ESX.CreatePickup = function(type, name, count, label, playerId, components, tintIndex) +function ESX.CreatePickup(type, name, count, label, playerId, components, tintIndex) local pickupId = (Core.PickupId == 65635 and 0 or Core.PickupId + 1) local xPlayer = ESX.GetPlayerFromId(playerId) local coords = xPlayer.getCoords() @@ -300,7 +300,7 @@ ESX.CreatePickup = function(type, name, count, label, playerId, components, tint Core.PickupId = pickupId end -ESX.DoesJobExist = function(job, grade) +function ESX.DoesJobExist(job, grade) grade = tostring(grade) if job and grade then @@ -312,7 +312,7 @@ ESX.DoesJobExist = function(job, grade) return false end -Core.IsPlayerAdmin = function(playerId) +function Core.IsPlayerAdmin(playerId) if (IsPlayerAceAllowed(playerId, 'command') or GetConvar('sv_lan', '') == 'true') and true or false then return true end diff --git a/[esx]/es_extended/server/main.lua b/[esx]/es_extended/server/main.lua index 7556ef1bc..61c583064 100644 --- a/[esx]/es_extended/server/main.lua +++ b/[esx]/es_extended/server/main.lua @@ -16,6 +16,8 @@ loadPlayer = loadPlayer..' FROM `users` WHERE identifier = ?' if Config.Multichar then AddEventHandler('esx:onPlayerJoined', function(src, char, data) + while not next(ESX.Jobs) do Wait(50) end + if not ESX.Players[src] then local identifier = char..':'..ESX.GetIdentifier(src) if data then @@ -28,6 +30,8 @@ if Config.Multichar then else RegisterNetEvent('esx:onPlayerJoined') AddEventHandler('esx:onPlayerJoined', function() + while not next(ESX.Jobs) do Wait(50) end + if not ESX.Players[source] then onPlayerJoined(source) end @@ -306,7 +310,7 @@ if Config.Multichar then AddEventHandler('esx:playerLogout', function(playerId) local xPlayer = ESX.GetPlayerFromId(playerId) if xPlayer then - TriggerEvent('esx:playerDropped', playerId, reason) + TriggerEvent('esx:playerDropped', playerId) Core.SavePlayer(xPlayer, function() ESX.Players[playerId] = nil diff --git a/[esx]/es_extended/server/paycheck.lua b/[esx]/es_extended/server/paycheck.lua index 9001b1c20..bd6ec9109 100644 --- a/[esx]/es_extended/server/paycheck.lua +++ b/[esx]/es_extended/server/paycheck.lua @@ -1,4 +1,4 @@ -StartPayCheck = function() +function StartPayCheck() CreateThread(function() while true do Wait(Config.PaycheckInterval) diff --git a/[esx]/esx_identity/fxmanifest.lua b/[esx]/esx_identity/fxmanifest.lua index 157b7ca4f..863c708e8 100644 --- a/[esx]/esx_identity/fxmanifest.lua +++ b/[esx]/esx_identity/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Identity' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx]/esx_identity/server/main.lua b/[esx]/esx_identity/server/main.lua index b31cfda33..6219d895a 100644 --- a/[esx]/esx_identity/server/main.lua +++ b/[esx]/esx_identity/server/main.lua @@ -88,7 +88,7 @@ if Config.UseDeferrals then saveIdentityToDatabase(xPlayer.identifier, currentIdentity) end - Wait(5) + Wait(0) alreadyRegistered[xPlayer.identifier] = true TriggerClientEvent('esx_identity:alreadyRegistered', xPlayer.source) @@ -142,7 +142,7 @@ elseif not Config.UseDeferrals then Wait(300) while not ESX do - Wait(10) + Wait(0) end local xPlayers = ESX.GetExtendedPlayers() @@ -170,7 +170,7 @@ elseif not Config.UseDeferrals then saveIdentityToDatabase(xPlayer.identifier, currentIdentity) end - Wait(10) + Wait(0) TriggerClientEvent('esx_identity:alreadyRegistered', xPlayer.source) playerIdentity[xPlayer.identifier] = nil @@ -223,7 +223,7 @@ elseif not Config.UseDeferrals then end) function checkIdentity(xPlayer) - MySQL.single('SELECT firstname, lastname, dateofbirth, sex, height FROM users WHERE identifier = ?', {identifier}, + MySQL.single('SELECT firstname, lastname, dateofbirth, sex, height FROM users WHERE identifier = ?', { xPlayer.identifier }, function(result) if result then if result.firstname then diff --git a/[esx]/esx_menu_default/client/main.lua b/[esx]/esx_menu_default/client/main.lua index 31e4cc301..0b9be851c 100644 --- a/[esx]/esx_menu_default/client/main.lua +++ b/[esx]/esx_menu_default/client/main.lua @@ -1,7 +1,7 @@ local GUI, MenuType = {}, 'default' GUI.Time = 0 -local openMenu = function(namespace, name, data) +local function openMenu(namespace, name, data) SendNUIMessage({ action = 'openMenu', namespace = namespace, @@ -10,12 +10,11 @@ local openMenu = function(namespace, name, data) }) end -local closeMenu = function(namespace, name) +local function closeMenu(namespace, name) SendNUIMessage({ action = 'closeMenu', namespace = namespace, name = name, - data = data }) end @@ -61,32 +60,32 @@ CreateThread(function() while true do Wait(15) - if IsControlPressed(0, 18) and IsInputDisabled(0) and (GetGameTimer() - GUI.Time) > 150 then + if IsControlPressed(0, 18) and IsUsingKeyboard(0) and (GetGameTimer() - GUI.Time) > 150 then SendNUIMessage({action = 'controlPressed', control = 'ENTER'}) GUI.Time = GetGameTimer() end - if IsControlPressed(0, 177) and IsInputDisabled(0) and (GetGameTimer() - GUI.Time) > 150 then + if IsControlPressed(0, 177) and IsUsingKeyboard(0) and (GetGameTimer() - GUI.Time) > 150 then SendNUIMessage({action = 'controlPressed', control = 'BACKSPACE'}) GUI.Time = GetGameTimer() end - if IsControlPressed(0, 27) and IsInputDisabled(0) and (GetGameTimer() - GUI.Time) > 200 then + if IsControlPressed(0, 27) and IsUsingKeyboard(0) and (GetGameTimer() - GUI.Time) > 200 then SendNUIMessage({action = 'controlPressed', control = 'TOP'}) GUI.Time = GetGameTimer() end - if IsControlPressed(0, 173) and IsInputDisabled(0) and (GetGameTimer() - GUI.Time) > 200 then + if IsControlPressed(0, 173) and IsUsingKeyboard(0) and (GetGameTimer() - GUI.Time) > 200 then SendNUIMessage({action = 'controlPressed', control = 'DOWN'}) GUI.Time = GetGameTimer() end - if IsControlPressed(0, 174) and IsInputDisabled(0) and (GetGameTimer() - GUI.Time) > 150 then + if IsControlPressed(0, 174) and IsUsingKeyboard(0) and (GetGameTimer() - GUI.Time) > 150 then SendNUIMessage({action = 'controlPressed', control = 'LEFT'}) GUI.Time = GetGameTimer() end - if IsControlPressed(0, 175) and IsInputDisabled(0) and (GetGameTimer() - GUI.Time) > 150 then + if IsControlPressed(0, 175) and IsUsingKeyboard(0) and (GetGameTimer() - GUI.Time) > 150 then SendNUIMessage({action = 'controlPressed', control = 'RIGHT'}) GUI.Time = GetGameTimer() end diff --git a/[esx]/esx_menu_default/fxmanifest.lua b/[esx]/esx_menu_default/fxmanifest.lua index 5d1458e05..5c4f76760 100644 --- a/[esx]/esx_menu_default/fxmanifest.lua +++ b/[esx]/esx_menu_default/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Menu Default' -version 'legacy' +version '1.5.0' client_scripts { '@es_extended/imports.lua', diff --git a/[esx]/esx_menu_dialog/client/main.lua b/[esx]/esx_menu_dialog/client/main.lua index 503d28b2b..f58986c91 100644 --- a/[esx]/esx_menu_dialog/client/main.lua +++ b/[esx]/esx_menu_dialog/client/main.lua @@ -1,6 +1,6 @@ local Timeouts, OpenedMenus, MenuType = {}, {}, 'dialog' -local openMenu = function(namespace, name, data) +local function openMenu(namespace, name, data) for i=1, #Timeouts, 1 do ESX.ClearTimeout(Timeouts[i]) end @@ -21,14 +21,13 @@ local openMenu = function(namespace, name, data) table.insert(Timeouts, timeoutId) end -local closeMenu = function(namespace, name) +local function closeMenu(namespace, name) OpenedMenus[namespace .. '_' .. name] = nil SendNUIMessage({ action = 'closeMenu', namespace = namespace, name = name, - data = data }) if ESX.Table.SizeOf(OpenedMenus) == 0 then @@ -83,7 +82,7 @@ end) CreateThread(function() while true do - Wait(10) + Wait(0) if ESX.Table.SizeOf(OpenedMenus) > 0 then DisableControlAction(0, 1, true) -- LookLeftRight diff --git a/[esx]/esx_menu_dialog/fxmanifest.lua b/[esx]/esx_menu_dialog/fxmanifest.lua index b24958327..e6d7ad496 100644 --- a/[esx]/esx_menu_dialog/fxmanifest.lua +++ b/[esx]/esx_menu_dialog/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Menu Dialog' -version 'legacy' +version '1.5.0' client_scripts { '@es_extended/imports.lua', diff --git a/[esx]/esx_menu_list/client/main.lua b/[esx]/esx_menu_list/client/main.lua index 33f3f1cfe..9cd27f91d 100644 --- a/[esx]/esx_menu_list/client/main.lua +++ b/[esx]/esx_menu_list/client/main.lua @@ -2,7 +2,7 @@ CreateThread(function() local MenuType = 'list' local OpenedMenus = {} - local openMenu = function(namespace, name, data) + local function openMenu(namespace, name, data) OpenedMenus[namespace .. '_' .. name] = true @@ -19,7 +19,7 @@ CreateThread(function() end - local closeMenu = function(namespace, name) + local function closeMenu(namespace, name) OpenedMenus[namespace .. '_' .. name] = nil local OpenedMenuCount = 0 @@ -28,7 +28,6 @@ CreateThread(function() action = 'closeMenu', namespace = namespace, name = name, - data = data }) for k,v in pairs(OpenedMenus) do diff --git a/[esx]/esx_menu_list/fxmanifest.lua b/[esx]/esx_menu_list/fxmanifest.lua index 059169c2a..fdcae6a29 100644 --- a/[esx]/esx_menu_list/fxmanifest.lua +++ b/[esx]/esx_menu_list/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Menu List' -version 'legacy' +version '1.5.0' client_scripts { '@es_extended/imports.lua', diff --git a/[esx]/esx_skin/fxmanifest.lua b/[esx]/esx_skin/fxmanifest.lua index f41346c37..b3b9270a7 100644 --- a/[esx]/esx_skin/fxmanifest.lua +++ b/[esx]/esx_skin/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Skin' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx]/skinchanger/client/main.lua b/[esx]/skinchanger/client/main.lua index d35284e74..99f45c0be 100644 --- a/[esx]/skinchanger/client/main.lua +++ b/[esx]/skinchanger/client/main.lua @@ -165,9 +165,9 @@ function GetMaxVals() chin_3 = 10, chin_4 = 10, neck_thickness = 10, - age_1 = GetNumHeadOverlayValues(3)-1, + age_1 = GetPedHeadOverlayNum(3)-1, age_2 = 10, - beard_1 = GetNumHeadOverlayValues(1)-1, + beard_1 = GetPedHeadOverlayNum(1)-1, beard_2 = 10, beard_3 = GetNumHairColors()-1, beard_4 = GetNumHairColors()-1, @@ -177,37 +177,37 @@ function GetMaxVals() hair_color_2 = GetNumHairColors()-1, eye_color = 31, eye_squint = 10, - eyebrows_1 = GetNumHeadOverlayValues(2)-1, + eyebrows_1 = GetPedHeadOverlayNum(2)-1, eyebrows_2 = 10, eyebrows_3 = GetNumHairColors()-1, eyebrows_4 = GetNumHairColors()-1, eyebrows_5 = 10, eyebrows_6 = 10, - makeup_1 = GetNumHeadOverlayValues(4)-1, + makeup_1 = GetPedHeadOverlayNum(4)-1, makeup_2 = 10, makeup_3 = GetNumHairColors()-1, makeup_4 = GetNumHairColors()-1, - lipstick_1 = GetNumHeadOverlayValues(8)-1, + lipstick_1 = GetPedHeadOverlayNum(8)-1, lipstick_2 = 10, lipstick_3 = GetNumHairColors()-1, lipstick_4 = GetNumHairColors()-1, - blemishes_1 = GetNumHeadOverlayValues(0)-1, + blemishes_1 = GetPedHeadOverlayNum(0)-1, blemishes_2 = 10, - blush_1 = GetNumHeadOverlayValues(5)-1, + blush_1 = GetPedHeadOverlayNum(5)-1, blush_2 = 10, blush_3 = GetNumHairColors()-1, - complexion_1 = GetNumHeadOverlayValues(6)-1, + complexion_1 = GetPedHeadOverlayNum(6)-1, complexion_2 = 10, - sun_1 = GetNumHeadOverlayValues(7)-1, + sun_1 = GetPedHeadOverlayNum(7)-1, sun_2 = 10, - moles_1 = GetNumHeadOverlayValues(9)-1, + moles_1 = GetPedHeadOverlayNum(9)-1, moles_2 = 10, - chest_1 = GetNumHeadOverlayValues(10)-1, + chest_1 = GetPedHeadOverlayNum(10)-1, chest_2 = 10, chest_3 = GetNumHairColors()-1, - bodyb_1 = GetNumHeadOverlayValues(11)-1, + bodyb_1 = GetPedHeadOverlayNum(11)-1, bodyb_2 = 10, - bodyb_3 = GetNumHeadOverlayValues(12)-1, + bodyb_3 = GetPedHeadOverlayNum(12)-1, bodyb_4 = 10, ears_1 = GetNumberOfPedPropDrawableVariations (playerPed, 2) - 1, ears_2 = GetNumberOfPedPropTextureVariations (playerPed, 2, Character['ears_1'] - 1), @@ -356,7 +356,7 @@ function ApplySkin(skin, clothes) SetPedHeadOverlay (playerPed, 3, Character['age_1'], (Character['age_2'] / 10) + 0.0) -- Age + opacity SetPedHeadOverlay (playerPed, 0, Character['blemishes_1'], (Character['blemishes_2'] / 10) + 0.0) -- Blemishes + opacity SetPedHeadOverlay (playerPed, 1, Character['beard_1'], (Character['beard_2'] / 10) + 0.0) -- Beard + opacity - SetPedEyeColor (playerPed, Character['eye_color'], 0, 1) -- Eyes color + SetPedEyeColor (playerPed, Character['eye_color']) -- Eyes color SetPedHeadOverlay (playerPed, 2, Character['eyebrows_1'], (Character['eyebrows_2'] / 10) + 0.0) -- Eyebrows + opacity SetPedHeadOverlay (playerPed, 4, Character['makeup_1'], (Character['makeup_2'] / 10) + 0.0) -- Makeup + opacity SetPedHeadOverlay (playerPed, 8, Character['lipstick_1'], (Character['lipstick_2'] / 10) + 0.0) -- Lipstick + opacity diff --git a/[esx_addons]/esx_accessories/client/main.lua b/[esx_addons]/esx_accessories/client/main.lua index 5894021ce..3118bae0e 100644 --- a/[esx_addons]/esx_accessories/client/main.lua +++ b/[esx_addons]/esx_accessories/client/main.lua @@ -145,7 +145,7 @@ CreateThread(function() SetBlipAsShortRange(blip, true) BeginTextCommandSetBlipName("STRING") - AddTextComponentString(_U('shop', _U(string.lower(k)))) + AddTextComponentSubstringPlayerName(_U('shop', _U(string.lower(k)))) EndTextCommandSetBlipName(blip) end end @@ -222,7 +222,7 @@ CreateThread(function() end if Config.EnableControls then - if IsControlJustReleased(0, 311) and IsInputDisabled(0) and not ESX.PlayerData.dead then + if IsControlJustReleased(0, 311) and IsUsingKeyboard(0) and not ESX.PlayerData.dead then OpenAccessoryMenu() end end diff --git a/[esx_addons]/esx_accessories/fxmanifest.lua b/[esx_addons]/esx_accessories/fxmanifest.lua index 5bf4dcb1d..c89087a06 100644 --- a/[esx_addons]/esx_accessories/fxmanifest.lua +++ b/[esx_addons]/esx_accessories/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Accessories' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_accessories/server/main.lua b/[esx_addons]/esx_accessories/server/main.lua index 75e0a4d61..23e7fbdb1 100644 --- a/[esx_addons]/esx_accessories/server/main.lua +++ b/[esx_addons]/esx_accessories/server/main.lua @@ -8,8 +8,8 @@ end) RegisterServerEvent('esx_accessories:save') AddEventHandler('esx_accessories:save', function(skin, accessory) - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) TriggerEvent('esx_datastore:getDataStore', 'user_' .. string.lower(accessory), xPlayer.identifier, function(store) store.set('has' .. accessory, true) diff --git a/[esx_addons]/esx_addonaccount/fxmanifest.lua b/[esx_addons]/esx_addonaccount/fxmanifest.lua index e69a6599f..6c5281537 100644 --- a/[esx_addons]/esx_addonaccount/fxmanifest.lua +++ b/[esx_addons]/esx_addonaccount/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Addon Account' -version 'legacy' +version '1.5.0' server_scripts { '@es_extended/imports.lua', diff --git a/[esx_addons]/esx_addonaccount/server/classes/addonaccount.lua b/[esx_addons]/esx_addonaccount/server/classes/addonaccount.lua index df0993066..a3ae99aa9 100644 --- a/[esx_addons]/esx_addonaccount/server/classes/addonaccount.lua +++ b/[esx_addons]/esx_addonaccount/server/classes/addonaccount.lua @@ -5,22 +5,22 @@ function CreateAddonAccount(name, owner, money) self.owner = owner self.money = money - self.addMoney = function(m) + function self.addMoney(m) self.money = self.money + m self.save() end - self.removeMoney = function(m) + function self.removeMoney(m) self.money = self.money - m self.save() end - self.setMoney = function(m) + function self.setMoney(m) self.money = m self.save() end - self.save = function() + function self.save() if self.owner == nil then MySQL.update('UPDATE addon_account_data SET money = ? WHERE account_name = ?', {self.money, self.name}) else diff --git a/[esx_addons]/esx_addoninventory/fxmanifest.lua b/[esx_addons]/esx_addoninventory/fxmanifest.lua index e28543f32..bfc1a4d7c 100644 --- a/[esx_addons]/esx_addoninventory/fxmanifest.lua +++ b/[esx_addons]/esx_addoninventory/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Addon Inventory' -version 'legacy' +version '1.5.0' server_scripts { '@es_extended/imports.lua', diff --git a/[esx_addons]/esx_addoninventory/server/classes/addoninventory.lua b/[esx_addons]/esx_addoninventory/server/classes/addoninventory.lua index 5955ca72b..d5148f405 100644 --- a/[esx_addons]/esx_addoninventory/server/classes/addoninventory.lua +++ b/[esx_addons]/esx_addoninventory/server/classes/addoninventory.lua @@ -5,28 +5,28 @@ function CreateAddonInventory(name, owner, items) self.owner = owner self.items = items - self.addItem = function(name, count) + function self.addItem(name, count) local item = self.getItem(name) item.count = item.count + count Wait(100) self.saveItem(name, item.count) end - self.removeItem = function(name, count) + function self.removeItem(name, count) local item = self.getItem(name) item.count = item.count - count self.saveItem(name, item.count) end - self.setItem = function(name, count) + function self.setItem(name, count) local item = self.getItem(name) item.count = count self.saveItem(name, item.count) end - self.getItem = function(name) + function self.getItem(name) for i=1, #self.items, 1 do if self.items[i].name == name then return self.items[i] @@ -61,7 +61,7 @@ function CreateAddonInventory(name, owner, items) return item end - self.saveItem = function(name, count) + function self.saveItem(name, count) if self.owner == nil then MySQL.update('UPDATE addon_inventory_items SET count = @count WHERE inventory_name = @inventory_name AND name = @item_name', { ['@inventory_name'] = self.name, diff --git a/[esx_addons]/esx_ambulancejob/client/main.lua b/[esx_addons]/esx_ambulancejob/client/main.lua index 70ccb7657..bb66337c0 100644 --- a/[esx_addons]/esx_ambulancejob/client/main.lua +++ b/[esx_addons]/esx_ambulancejob/client/main.lua @@ -116,7 +116,7 @@ function OnPlayerDeath() StartDeathTimer() StartDistressSignal() - StartScreenEffect('DeathFailOut', 0, false) + AnimpostfxPlay('DeathFailOut', 0, false) end RegisterNetEvent('esx_ambulancejob:useItem') @@ -258,10 +258,9 @@ function StartDeathTimer() text = _U('respawn_available_in', secondsToClock(earlySpawnTimer)) DrawGenericTextThisFrame() - - SetTextEntry('STRING') - AddTextComponentString(text) - DrawText(0.5, 0.8) + BeginTextCommandDisplayText('STRING') + AddTextComponentSubstringPlayerName(text) + EndTextCommandDisplayText(0.5, 0.8) end -- bleedout timer @@ -294,9 +293,9 @@ function StartDeathTimer() DrawGenericTextThisFrame() - SetTextEntry('STRING') - AddTextComponentString(text) - DrawText(0.5, 0.8) + BeginTextCommandDisplayText('STRING') + AddTextComponentSubstringPlayerName(text) + EndTextCommandDisplayText(0.5, 0.8) end if bleedoutTimer < 1 and isDead then @@ -312,7 +311,7 @@ function RemoveItemsAfterRPDeath() DoScreenFadeOut(800) while not IsScreenFadedOut() do - Wait(10) + Wait(0) end ESX.TriggerServerCallback('esx_ambulancejob:removeItemsAfterRPDeath', function() @@ -325,14 +324,14 @@ function RemoveItemsAfterRPDeath() ESX.SetPlayerData('loadout', {}) RespawnPed(PlayerPedId(), formattedCoords, Config.RespawnPoint.heading) - StopScreenEffect('DeathFailOut') + AnimpostfxStop('DeathFailOut') DoScreenFadeIn(800) end) end) end function RespawnPed(ped, coords, heading) - SetEntityCoordsNoOffset(ped, coords.x, coords.y, coords.z, false, false, false, true) + SetEntityCoordsNoOffset(ped, coords.x, coords.y, coords.z, false, false, false) NetworkResurrectLocalPlayer(coords.x, coords.y, coords.z, heading, true, false) SetPlayerInvincible(ped, false) ClearPedBloodDamage(ped) @@ -377,7 +376,7 @@ AddEventHandler('esx_ambulancejob:revive', function() RespawnPed(playerPed, formattedCoords, 0.0) - StopScreenEffect('DeathFailOut') + AnimpostfxStop('DeathFailOut') DoScreenFadeIn(800) end) diff --git a/[esx_addons]/esx_ambulancejob/client/vehicle.lua b/[esx_addons]/esx_ambulancejob/client/vehicle.lua index 1b51c2936..db53683d7 100644 --- a/[esx_addons]/esx_ambulancejob/client/vehicle.lua +++ b/[esx_addons]/esx_ambulancejob/client/vehicle.lua @@ -135,10 +135,15 @@ function StoreNearbyVehicle(playerCoords) isBusy = true CreateThread(function() + BeginTextCommandBusyspinnerOn('STRING') + AddTextComponentSubstringPlayerName(_U('garage_storing')) + EndTextCommandBusyspinnerOn(4) + while isBusy do - Wait(0) - drawLoadingText(_U('garage_storing'), 255, 255, 255, 255) + Wait(100) end + + BusyspinnerOff() end) -- Workaround for vehicle not deleting when other players are near it. diff --git a/[esx_addons]/esx_ambulancejob/fxmanifest.lua b/[esx_addons]/esx_ambulancejob/fxmanifest.lua index 53f3cc054..a0715a409 100644 --- a/[esx_addons]/esx_ambulancejob/fxmanifest.lua +++ b/[esx_addons]/esx_ambulancejob/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Ambulance Job' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_animations/fxmanifest.lua b/[esx_addons]/esx_animations/fxmanifest.lua index c1777fa72..24c81ee8b 100644 --- a/[esx_addons]/esx_animations/fxmanifest.lua +++ b/[esx_addons]/esx_animations/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Animations' -version 'legacy' +version '1.5.0' client_scripts { '@es_extended/imports.lua', diff --git a/[esx_addons]/esx_atm/client/main.lua b/[esx_addons]/esx_atm/client/main.lua index 35297d873..55ea7d737 100644 --- a/[esx_addons]/esx_atm/client/main.lua +++ b/[esx_addons]/esx_atm/client/main.lua @@ -37,7 +37,7 @@ CreateThread(function() SetBlipColour(ATMLocation.blip, 2) SetBlipAsShortRange(ATMLocation.blip, true) BeginTextCommandSetBlipName("STRING") - AddTextComponentString(_U('atm_blip')) + AddTextComponentSubstringPlayerName(_U('atm_blip')) EndTextCommandSetBlipName(ATMLocation.blip) end end) @@ -45,7 +45,7 @@ end) -- Activate menu when player is inside marker CreateThread(function() while true do - Wait(10) + Wait(0) local coords = GetEntityCoords(PlayerPedId()) local canSleep = true isInATMMarker = false diff --git a/[esx_addons]/esx_atm/fxmanifest.lua b/[esx_addons]/esx_atm/fxmanifest.lua index 1c820f23b..dbfd8f655 100644 --- a/[esx_addons]/esx_atm/fxmanifest.lua +++ b/[esx_addons]/esx_atm/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Atm' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_atm/server/main.lua b/[esx_addons]/esx_atm/server/main.lua index 5832a03c7..8414a414d 100644 --- a/[esx_addons]/esx_atm/server/main.lua +++ b/[esx_addons]/esx_atm/server/main.lua @@ -1,7 +1,7 @@ RegisterServerEvent('esx_atm:deposit') AddEventHandler('esx_atm:deposit', function(amount) - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) amount = tonumber(amount) if not tonumber(amount) then return end @@ -18,8 +18,8 @@ end) RegisterServerEvent('esx_atm:withdraw') AddEventHandler('esx_atm:withdraw', function(amount) - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) amount = tonumber(amount) local accountMoney = xPlayer.getAccount('bank').money diff --git a/[esx_addons]/esx_bankerjob/fxmanifest.lua b/[esx_addons]/esx_bankerjob/fxmanifest.lua index af3474983..55e071887 100644 --- a/[esx_addons]/esx_bankerjob/fxmanifest.lua +++ b/[esx_addons]/esx_bankerjob/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Banker job' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_bankerjob/server/main.lua b/[esx_addons]/esx_bankerjob/server/main.lua index 394d5fcc0..74e36a5bb 100644 --- a/[esx_addons]/esx_bankerjob/server/main.lua +++ b/[esx_addons]/esx_bankerjob/server/main.lua @@ -78,7 +78,7 @@ function CalculateBankSavings(d, h, m) local newMoney = result[i].money + interests bankInterests = bankInterests + interests - local scope = function(newMoney, owner) + local function scope(newMoney, owner) table.insert(asyncTasks, function(cb) MySQL.update('UPDATE addon_account_data SET money = @money WHERE owner = @owner AND account_name = @account_name', { ['@money'] = newMoney, diff --git a/[esx_addons]/esx_barbershop/fxmanifest.lua b/[esx_addons]/esx_barbershop/fxmanifest.lua index 33a8c7314..4f8210aee 100644 --- a/[esx_addons]/esx_barbershop/fxmanifest.lua +++ b/[esx_addons]/esx_barbershop/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Barber Shop' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_barbershop/server/main.lua b/[esx_addons]/esx_barbershop/server/main.lua index 4da9ee482..dbd71d1e6 100644 --- a/[esx_addons]/esx_barbershop/server/main.lua +++ b/[esx_addons]/esx_barbershop/server/main.lua @@ -1,7 +1,7 @@ RegisterServerEvent('esx_barbershop:pay') AddEventHandler('esx_barbershop:pay', function() - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) xPlayer.removeMoney(Config.Price) TriggerClientEvent('esx:showNotification', source, _U('you_paid', ESX.Math.GroupDigits(Config.Price))) diff --git a/[esx_addons]/esx_basicneeds/fxmanifest.lua b/[esx_addons]/esx_basicneeds/fxmanifest.lua index f24d1c4e4..921eea3e0 100644 --- a/[esx_addons]/esx_basicneeds/fxmanifest.lua +++ b/[esx_addons]/esx_basicneeds/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Basic Needs' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_billing/fxmanifest.lua b/[esx_addons]/esx_billing/fxmanifest.lua index ffc3dcd7d..9acbb0f50 100644 --- a/[esx_addons]/esx_billing/fxmanifest.lua +++ b/[esx_addons]/esx_billing/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Billing' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_boat/fxmanifest.lua b/[esx_addons]/esx_boat/fxmanifest.lua index 48015f9ee..3b23847bd 100644 --- a/[esx_addons]/esx_boat/fxmanifest.lua +++ b/[esx_addons]/esx_boat/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Boat' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_clotheshop/client/main.lua b/[esx_addons]/esx_clotheshop/client/main.lua index 23b33c368..7a6271fb3 100644 --- a/[esx_addons]/esx_clotheshop/client/main.lua +++ b/[esx_addons]/esx_clotheshop/client/main.lua @@ -135,7 +135,7 @@ end) -- Enter / Exit marker events & draw markers CreateThread(function() while true do - Wait(1) + Wait(0) local playerCoords, isInMarker, currentZone, letSleep = GetEntityCoords(PlayerPedId()), false, nil, true for k,v in pairs(Config.Shops) do diff --git a/[esx_addons]/esx_clotheshop/fxmanifest.lua b/[esx_addons]/esx_clotheshop/fxmanifest.lua index a018dbce0..b02101818 100644 --- a/[esx_addons]/esx_clotheshop/fxmanifest.lua +++ b/[esx_addons]/esx_clotheshop/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Clothes Shop' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_cruisecontrol/fxmanifest.lua b/[esx_addons]/esx_cruisecontrol/fxmanifest.lua index 50f83a38b..e4c061654 100644 --- a/[esx_addons]/esx_cruisecontrol/fxmanifest.lua +++ b/[esx_addons]/esx_cruisecontrol/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'CruiseControl System for ESX' -version 'legacy' +version '1.5.0' dependencies { 'es_extended' diff --git a/[esx_addons]/esx_datastore/fxmanifest.lua b/[esx_addons]/esx_datastore/fxmanifest.lua index 0318b754b..3d331a777 100644 --- a/[esx_addons]/esx_datastore/fxmanifest.lua +++ b/[esx_addons]/esx_datastore/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Data Store' -version 'legacy' +version '1.5.0' server_scripts { '@es_extended/imports.lua', diff --git a/[esx_addons]/esx_datastore/server/classes/datastore.lua b/[esx_addons]/esx_datastore/server/classes/datastore.lua index 736114430..537113861 100644 --- a/[esx_addons]/esx_datastore/server/classes/datastore.lua +++ b/[esx_addons]/esx_datastore/server/classes/datastore.lua @@ -17,16 +17,16 @@ function CreateDataStore(name, owner, data) self.name = name self.owner = owner - self.data = data + self.data = type(data) == 'string' and json.decode(data) or data local timeoutCallbacks = {} - self.set = function(key, val) + function self.set(key, val) data[key] = val self.save() end - self.get = function(key, i) + function self.get(key, i) local path = stringsplit(key, '.') local obj = self.data @@ -41,7 +41,7 @@ function CreateDataStore(name, owner, data) end end - self.count = function(key, i) + function self.count(key, i) local path = stringsplit(key, '.') local obj = self.data @@ -60,7 +60,7 @@ function CreateDataStore(name, owner, data) end end - self.save = function() + function self.save() for i=1, #timeoutCallbacks, 1 do ESX.ClearTimeout(timeoutCallbacks[i]) timeoutCallbacks[i] = nil diff --git a/[esx_addons]/esx_datastore/server/main.lua b/[esx_addons]/esx_datastore/server/main.lua index d1eafd78c..fee178219 100644 --- a/[esx_addons]/esx_datastore/server/main.lua +++ b/[esx_addons]/esx_datastore/server/main.lua @@ -12,10 +12,10 @@ AddEventHandler('onResourceStart', function(resourceName) DataStoresIndex[#DataStoresIndex + 1] = data.name DataStores[data.name] = {} end - DataStores[data.name][#DataStores[data.name] + 1] = CreateDataStore(data.name, data.owner, data.data) + DataStores[data.name][#DataStores[data.name] + 1] = CreateDataStore(data.name, data.owner, json.decode(data.data)) else if data.data then - SharedDataStores[data.name] = CreateDataStore(data.name, nil, data.data) + SharedDataStores[data.name] = CreateDataStore(data.name, nil, json.decode(data.data)) else newData[#newData + 1] = {data.name, '\'{}\''} end @@ -26,7 +26,7 @@ AddEventHandler('onResourceStart', function(resourceName) MySQL.prepare('INSERT INTO datastore_data (name, data) VALUES (?, ?)', newData) for i = 1, #newData do local new = newData[i] - SharedDataStores[new[1]] = CreateDataStore(new[1], nil, new[2]) + SharedDataStores[new[1]] = CreateDataStore(new[1], nil, {}) end end end diff --git a/[esx_addons]/esx_dmvschool/client/main.lua b/[esx_addons]/esx_dmvschool/client/main.lua index 806d163ff..08b004055 100644 --- a/[esx_addons]/esx_dmvschool/client/main.lua +++ b/[esx_addons]/esx_dmvschool/client/main.lua @@ -51,8 +51,7 @@ function StopTheoryTest(success) end function StartDriveTest(type) - local pos = vector3(VehicleSpawnPoint.Pos.x, VehicleSpawnPoint.Pos.y,VehicleSpawnPoint.Pos.z) - ESX.Game.SpawnVehicle(Config.VehicleModels[type], pos, Config.Zones.VehicleSpawnPoint.Pos.h, function(vehicle) + ESX.Game.SpawnVehicle(Config.VehicleModels[type], vector3(Config.Zones.VehicleSpawnPoint.Pos.x, Config.Zones.VehicleSpawnPoint.Pos.y, Config.Zones.VehicleSpawnPoint.Pos.z), Config.Zones.VehicleSpawnPoint.Pos.h, function(vehicle) CurrentTest = 'drive' CurrentTestType = type CurrentCheckPoint = 0 @@ -209,7 +208,7 @@ CreateThread(function() SetBlipAsShortRange(blip, true) BeginTextCommandSetBlipName("STRING") - AddTextComponentString(_U('driving_school_blip')) + AddTextComponentSubstringPlayerName(_U('driving_school_blip')) EndTextCommandSetBlipName(blip) end) @@ -263,7 +262,7 @@ end) -- Block UI CreateThread(function() while true do - Wait(1) + Wait(0) if CurrentTest == 'theory' then local playerPed = PlayerPedId() @@ -360,7 +359,7 @@ end) -- Speed / Damage control CreateThread(function() while true do - Wait(10) + Wait(0) if CurrentTest == 'drive' then diff --git a/[esx_addons]/esx_dmvschool/fxmanifest.lua b/[esx_addons]/esx_dmvschool/fxmanifest.lua index 5672f9674..736e155f8 100644 --- a/[esx_addons]/esx_dmvschool/fxmanifest.lua +++ b/[esx_addons]/esx_dmvschool/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX DMV School' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_dmvschool/server/main.lua b/[esx_addons]/esx_dmvschool/server/main.lua index 181de5bfa..db4ee0ad5 100644 --- a/[esx_addons]/esx_dmvschool/server/main.lua +++ b/[esx_addons]/esx_dmvschool/server/main.lua @@ -19,11 +19,11 @@ end) RegisterNetEvent('esx_dmvschool:addLicense') AddEventHandler('esx_dmvschool:addLicense', function(type) - local _source = source + local source = source - TriggerEvent('esx_license:addLicense', _source, type, function() - TriggerEvent('esx_license:getLicenses', _source, function(licenses) - TriggerClientEvent('esx_dmvschool:loadLicenses', _source, licenses) + TriggerEvent('esx_license:addLicense', source, type, function() + TriggerEvent('esx_license:getLicenses', source, function(licenses) + TriggerClientEvent('esx_dmvschool:loadLicenses', source, licenses) end) end) end) diff --git a/[esx_addons]/esx_drugs/client/main.lua b/[esx_addons]/esx_drugs/client/main.lua index 678c6b760..84226dab5 100644 --- a/[esx_addons]/esx_drugs/client/main.lua +++ b/[esx_addons]/esx_drugs/client/main.lua @@ -7,7 +7,7 @@ CreateThread(function() local playerPed = PlayerPedId() local coords = GetEntityCoords(playerPed) - if #(coords - Config.CircleZones.DrugDealer.coords) < 0.5 then + if #(coords - Config.CircleZones.DrugDealer.coords) < 2.0 then if not menuOpen then ESX.ShowHelpNotification(_U('dealer_prompt')) @@ -131,7 +131,7 @@ function CreateBlipCircle(coords, text, radius, color, sprite) SetBlipAsShortRange(blip, true) BeginTextCommandSetBlipName("STRING") - AddTextComponentString(text) + AddTextComponentSubstringPlayerName(text) EndTextCommandSetBlipName(blip) end diff --git a/[esx_addons]/esx_drugs/client/weed.lua b/[esx_addons]/esx_drugs/client/weed.lua index dd43b7a6f..f52fe347e 100644 --- a/[esx_addons]/esx_drugs/client/weed.lua +++ b/[esx_addons]/esx_drugs/client/weed.lua @@ -165,7 +165,7 @@ end function GenerateWeedCoords() while true do - Wait(1) + Wait(0) local weedCoordX, weedCoordY diff --git a/[esx_addons]/esx_drugs/fxmanifest.lua b/[esx_addons]/esx_drugs/fxmanifest.lua index 3fc802ccd..39b58d5e3 100644 --- a/[esx_addons]/esx_drugs/fxmanifest.lua +++ b/[esx_addons]/esx_drugs/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Drugs' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_drugs/server/main.lua b/[esx_addons]/esx_drugs/server/main.lua index 929b16530..f687118d1 100644 --- a/[esx_addons]/esx_drugs/server/main.lua +++ b/[esx_addons]/esx_drugs/server/main.lua @@ -81,15 +81,15 @@ end) RegisterServerEvent('esx_drugs:processCannabis') AddEventHandler('esx_drugs:processCannabis', function() if not playersProcessingCannabis[source] then - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) local xCannabis = xPlayer.getInventoryItem('cannabis') local can = true outofbound = false if xCannabis.count >= 3 then while outofbound == false and can do - if playersProcessingCannabis[_source] == nil then - playersProcessingCannabis[_source] = ESX.SetTimeout(Config.Delays.WeedProcessing , function() + if playersProcessingCannabis[source] == nil then + playersProcessingCannabis[source] = ESX.SetTimeout(Config.Delays.WeedProcessing , function() if xCannabis.count >= 3 then if xPlayer.canSwapItem('cannabis', 3, 'marijuana', 1) then xPlayer.removeInventoryItem('cannabis', 3) @@ -106,7 +106,7 @@ AddEventHandler('esx_drugs:processCannabis', function() TriggerEvent('esx_drugs:cancelProcessing') end - playersProcessingCannabis[_source] = nil + playersProcessingCannabis[source] = nil end) else Wait(Config.Delays.WeedProcessing) diff --git a/[esx_addons]/esx_garage/client/main.lua b/[esx_addons]/esx_garage/client/main.lua index 00d371bd4..f7b3a0396 100644 --- a/[esx_addons]/esx_garage/client/main.lua +++ b/[esx_addons]/esx_garage/client/main.lua @@ -59,7 +59,7 @@ AddEventHandler('esx_garage:hasEnteredMarker', function(name, part, parking) for j=1, #vehicles, 1 do if i == vehicles[j].zone then - local spawn = function(j) + local function spawn(j) local vehicle = GetClosestVehicle(garage.Parkings[i].Pos.x, garage.Parkings[i].Pos.y, garage.Parkings[i].Pos.z, 2.0, 0, 71) @@ -97,7 +97,7 @@ AddEventHandler('esx_garage:hasEnteredMarker', function(name, part, parking) for j=1, #vehicles, 1 do if i == vehicles[j].zone then - local spawn = function(j) + local function spawn(j) local vehicle = GetClosestVehicle(garage.Parkings[i].Pos.x, garage.Parkings[i].Pos.garage.Parkings[i].Pos.y, garage.Parkings[i].Pos.z, 2.0, 0, 71) @@ -138,7 +138,7 @@ AddEventHandler('esx_garage:hasEnteredMarker', function(name, part, parking) for j=1, #vehicles, 1 do if i == vehicles[j].zone then - local spawn = function(j) + local function spawn(j) local vehicle = GetClosestVehicle(garage.Parkings[i].Pos.x, garage.Parkings[i].Pos.y, garage.Parkings[i].Pos.z, 2.0, 0, 71) @@ -273,7 +273,7 @@ CreateThread(function() SetBlipAsShortRange(blip, true) BeginTextCommandSetBlipName("STRING") - AddTextComponentString("Garage") + AddTextComponentSubstringPlayerName("Garage") EndTextCommandSetBlipName(blip) end @@ -390,7 +390,7 @@ CreateThread(function() TriggerEvent('esx_property:hasExitedMarker', LastGarage, LastPart, LastParking) end - Wait(1) + Wait(0) else Wait(500) end end end) diff --git a/[esx_addons]/esx_garage/fxmanifest.lua b/[esx_addons]/esx_garage/fxmanifest.lua index c37011245..1576e4a20 100644 --- a/[esx_addons]/esx_garage/fxmanifest.lua +++ b/[esx_addons]/esx_garage/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Garage' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_garage/server/main.lua b/[esx_addons]/esx_garage/server/main.lua index b7517e82d..ebf4c54f0 100644 --- a/[esx_addons]/esx_garage/server/main.lua +++ b/[esx_addons]/esx_garage/server/main.lua @@ -1,7 +1,7 @@ RegisterServerEvent('esx_garage:setParking') AddEventHandler('esx_garage:setParking', function(garage, zone, vehicleProps) - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) if vehicleProps == false then diff --git a/[esx_addons]/esx_holdup/client/main.lua b/[esx_addons]/esx_holdup/client/main.lua index f83c26742..6f8d33ab4 100644 --- a/[esx_addons]/esx_holdup/client/main.lua +++ b/[esx_addons]/esx_holdup/client/main.lua @@ -60,7 +60,7 @@ AddEventHandler('esx_holdup:startTimer', function() end) CreateThread(function() while holdingUp do - Wait(1) + Wait(0) DrawTxt(0.66, 1.44, 1.0, 1.0, 0.4, _U('robbery_timer', timer), 255, 255, 255, 255) end end) @@ -73,14 +73,14 @@ CreateThread(function() SetBlipScale(blip, 0.8) SetBlipAsShortRange(blip, true) BeginTextCommandSetBlipName('STRING') - AddTextComponentString(_U('shop_robbery')) + AddTextComponentSubstringPlayerName(_U('shop_robbery')) EndTextCommandSetBlipName(blip) end end) CreateThread(function() while true do - Wait(1) + Wait(0) local playerPos, letSleep = GetEntityCoords(PlayerPedId()), true for k,v in pairs(Stores) do local distance = #(playerPos - v.position) @@ -88,7 +88,7 @@ CreateThread(function() if not holdingUp then letSleep = false DrawMarker(Config.Marker.Type, v.position, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Config.Marker.x, Config.Marker.y, Config.Marker.z, Config.Marker.r, Config.Marker.g, Config.Marker.b, Config.Marker.a, false, false, 2, false, false, false, false) - if distance < 0.5 then + if distance < 2.0 then ESX.ShowHelpNotification(_U('press_to_rob', v.nameOfStore)) if IsControlJustReleased(0, 38) then if IsPedArmed(PlayerPedId(), 4) then diff --git a/[esx_addons]/esx_holdup/fxmanifest.lua b/[esx_addons]/esx_holdup/fxmanifest.lua index 89d693653..2616b54b1 100644 --- a/[esx_addons]/esx_holdup/fxmanifest.lua +++ b/[esx_addons]/esx_holdup/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Holdup' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_holdup/server/main.lua b/[esx_addons]/esx_holdup/server/main.lua index 595a3427b..6d5ecaa76 100644 --- a/[esx_addons]/esx_holdup/server/main.lua +++ b/[esx_addons]/esx_holdup/server/main.lua @@ -3,28 +3,28 @@ local robbers = {} RegisterServerEvent('esx_holdup:tooFar') AddEventHandler('esx_holdup:tooFar', function(currentStore) - local _source = source + local source = source rob = false for _, xPlayer in pairs(ESX.GetExtendedPlayers('job', 'police')) do TriggerClientEvent('esx:showNotification', xPlayer.source, _U('robbery_cancelled_at', Stores[currentStore].nameOfStore)) TriggerClientEvent('esx_holdup:killBlip', xPlayer.source) end - if robbers[_source] then - TriggerClientEvent('esx_holdup:tooFar', _source) - ESX.ClearTimeout(robbers[_source]) - robbers[_source] = nil - TriggerClientEvent('esx:showNotification', _source, _U('robbery_cancelled_at', Stores[currentStore].nameOfStore)) + if robbers[source] then + TriggerClientEvent('esx_holdup:tooFar', source) + ESX.ClearTimeout(robbers[source]) + robbers[source] = nil + TriggerClientEvent('esx:showNotification', source, _U('robbery_cancelled_at', Stores[currentStore].nameOfStore)) end end) RegisterServerEvent('esx_holdup:robberyStarted') AddEventHandler('esx_holdup:robberyStarted', function(currentStore) - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) if Stores[currentStore] then local store = Stores[currentStore] if (os.time() - store.lastRobbed) < Config.TimerBeforeNewRob and store.lastRobbed ~= 0 then - TriggerClientEvent('esx:showNotification', _source, _U('recently_robbed', Config.TimerBeforeNewRob - (os.time() - store.lastRobbed))) + TriggerClientEvent('esx:showNotification', source, _U('recently_robbed', Config.TimerBeforeNewRob - (os.time() - store.lastRobbed))) return end if not rob then @@ -35,15 +35,15 @@ AddEventHandler('esx_holdup:robberyStarted', function(currentStore) TriggerClientEvent('esx:showNotification', xPlayer.source, _U('rob_in_prog', store.nameOfStore)) TriggerClientEvent('esx_holdup:setBlip', xPlayer.source, Stores[currentStore].position) end - TriggerClientEvent('esx:showNotification', _source, _U('started_to_rob', store.nameOfStore)) - TriggerClientEvent('esx:showNotification', _source, _U('alarm_triggered')) - TriggerClientEvent('esx_holdup:currentlyRobbing', _source, currentStore) - TriggerClientEvent('esx_holdup:startTimer', _source) + TriggerClientEvent('esx:showNotification', source, _U('started_to_rob', store.nameOfStore)) + TriggerClientEvent('esx:showNotification', source, _U('alarm_triggered')) + TriggerClientEvent('esx_holdup:currentlyRobbing', source, currentStore) + TriggerClientEvent('esx_holdup:startTimer', source) Stores[currentStore].lastRobbed = os.time() - robbers[_source] = ESX.SetTimeout(store.secondsRemaining * 1000, function() + robbers[source] = ESX.SetTimeout(store.secondsRemaining * 1000, function() rob = false if xPlayer then - TriggerClientEvent('esx_holdup:robberyComplete', _source, store.reward) + TriggerClientEvent('esx_holdup:robberyComplete', source, store.reward) if Config.GiveBlackMoney then xPlayer.addAccountMoney('black_money', store.reward) else @@ -57,10 +57,10 @@ AddEventHandler('esx_holdup:robberyStarted', function(currentStore) end end) else - TriggerClientEvent('esx:showNotification', _source, _U('min_police', Config.PoliceNumberRequired)) + TriggerClientEvent('esx:showNotification', source, _U('min_police', Config.PoliceNumberRequired)) end else - TriggerClientEvent('esx:showNotification', _source, _U('robbery_already')) + TriggerClientEvent('esx:showNotification', source, _U('robbery_already')) end end end) diff --git a/[esx_addons]/esx_joblisting/client/main.lua b/[esx_addons]/esx_joblisting/client/main.lua index 940217696..811eac573 100644 --- a/[esx_addons]/esx_joblisting/client/main.lua +++ b/[esx_addons]/esx_joblisting/client/main.lua @@ -33,7 +33,7 @@ end) -- Activate menu when player is inside marker, and draw markers CreateThread(function() while true do - Wait(1) + Wait(0) local coords = GetEntityCoords(PlayerPedId()) isInMarker = false diff --git a/[esx_addons]/esx_joblisting/fxmanifest.lua b/[esx_addons]/esx_joblisting/fxmanifest.lua index 8465c8c39..33a05f317 100644 --- a/[esx_addons]/esx_joblisting/fxmanifest.lua +++ b/[esx_addons]/esx_joblisting/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Job Listing' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_jobs/client/main.lua b/[esx_addons]/esx_jobs/client/main.lua index 95886536d..53915dc2b 100644 --- a/[esx_addons]/esx_jobs/client/main.lua +++ b/[esx_addons]/esx_jobs/client/main.lua @@ -255,7 +255,7 @@ function refreshBlips() SetBlipAsShortRange(blip, true) BeginTextCommandSetBlipName("STRING") - AddTextComponentString(zoneValues.Name) + AddTextComponentSubstringPlayerName(zoneValues.Name) EndTextCommandSetBlipName(blip) table.insert(JobBlips, blip) end @@ -302,7 +302,7 @@ end) -- Show top left hint CreateThread(function() while true do - Wait(10) + Wait(0) if hintIsShowed then ESX.ShowHelpNotification(hintToDisplay) @@ -315,7 +315,7 @@ end) -- Display markers (only if on duty and the player's job ones) CreateThread(function() while true do - Wait(1) + Wait(0) local zones = {} if ESX.PlayerData.job ~= nil then @@ -401,7 +401,7 @@ end) CreateThread(function() while true do - Wait(1) + Wait(0) if ESX.PlayerData.job ~= nil and ESX.PlayerData.job.name ~= 'unemployed' then local zones = nil diff --git a/[esx_addons]/esx_jobs/fxmanifest.lua b/[esx_addons]/esx_jobs/fxmanifest.lua index 09d5422e6..8b16cd1b4 100644 --- a/[esx_addons]/esx_jobs/fxmanifest.lua +++ b/[esx_addons]/esx_jobs/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Jobs' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_jobs/jobs/lumberjack.lua b/[esx_addons]/esx_jobs/jobs/lumberjack.lua index 5eca3b240..2b248cc57 100644 --- a/[esx_addons]/esx_jobs/jobs/lumberjack.lua +++ b/[esx_addons]/esx_jobs/jobs/lumberjack.lua @@ -59,7 +59,7 @@ Config.Jobs.lumberjack = { Color = {r = 204, g = 204, b = 0}, Marker = 1, Blip = false, - Name = _U('lj_cutwood'), + Name = _U('lj_woodcutting'), Type = 'work', Item = { { diff --git a/[esx_addons]/esx_jobs/locales/br.lua b/[esx_addons]/esx_jobs/locales/br.lua index 2c1b838a9..c543c401b 100644 --- a/[esx_addons]/esx_jobs/locales/br.lua +++ b/[esx_addons]/esx_jobs/locales/br.lua @@ -31,7 +31,7 @@ Locales['br'] = { ['lj_mapblip'] = 'pilha de madeira', ['lj_wood'] = 'madeira', ['lj_pickup'] = 'pressione ~INPUT_PICKUP~ para recuperar madeira.', - ['lj_cutwood'] = 'corte de Madeira', + ['lj_woodcutting'] = 'corte de Madeira', ['lj_cutwood_button'] = 'pressione ~INPUT_PICKUP~ para cortar madeira.', ['lj_board'] = 'tábua', ['lj_planks'] = 'tábua embalada', diff --git a/[esx_addons]/esx_jobs/locales/cs.lua b/[esx_addons]/esx_jobs/locales/cs.lua index 18cb39aec..532d803ac 100644 --- a/[esx_addons]/esx_jobs/locales/cs.lua +++ b/[esx_addons]/esx_jobs/locales/cs.lua @@ -31,7 +31,7 @@ Locales['cs'] = { ['lj_mapblip'] = 'vyroba dreva', ['lj_wood'] = 'drevo', ['lj_pickup'] = 'stiskni ~INPUT_PICKUP~ pro ziskani dreva.', - ['lj_cutwood'] = 'rezani dreva', + ['lj_woodcutting'] = 'rezani dreva', ['lj_cutwood_button'] = 'stiskni ~INPUT_PICKUP~ pro rezani dreva.', ['lj_board'] = 'prkna', ['lj_planks'] = 'baleni prken', diff --git a/[esx_addons]/esx_jobs/locales/de.lua b/[esx_addons]/esx_jobs/locales/de.lua index abdb99ef9..059c44821 100644 --- a/[esx_addons]/esx_jobs/locales/de.lua +++ b/[esx_addons]/esx_jobs/locales/de.lua @@ -31,7 +31,7 @@ Locales['de'] = { ['lj_mapblip'] = 'Holzstapel', ['lj_wood'] = 'Holz', ['lj_pickup'] = 'Drücke ~INPUT_PICKUP~ um Holz zu sammeln.', - ['lj_cutwood'] = 'Holzverarbeitung', + ['lj_woodcutting'] = 'Holzverarbeitung', ['lj_cutwood_button'] = 'Drücke ~INPUT_PICKUP~ um das Holz zu schneiden.', ['lj_board'] = 'Bretter', ['lj_planks'] = 'Holz verarbeiten', diff --git a/[esx_addons]/esx_jobs/locales/en.lua b/[esx_addons]/esx_jobs/locales/en.lua index 8cd6ba0b9..aaca224f1 100644 --- a/[esx_addons]/esx_jobs/locales/en.lua +++ b/[esx_addons]/esx_jobs/locales/en.lua @@ -31,7 +31,7 @@ Locales['en'] = { ['lj_mapblip'] = 'wood pile', ['lj_wood'] = 'wood', ['lj_pickup'] = 'press ~INPUT_PICKUP~ to retrieve wood.', - ['lj_cutwood'] = 'wood cutting', + ['lj_woodcutting'] = 'wood cutting', ['lj_cutwood_button'] = 'press ~INPUT_PICKUP~ to cut wood.', ['lj_board'] = 'boards', ['lj_planks'] = 'package board', diff --git a/[esx_addons]/esx_jobs/locales/es.lua b/[esx_addons]/esx_jobs/locales/es.lua index 89c82ec37..601ae38c9 100644 --- a/[esx_addons]/esx_jobs/locales/es.lua +++ b/[esx_addons]/esx_jobs/locales/es.lua @@ -31,7 +31,7 @@ Locales['es'] = { ['lj_mapblip'] = 'pila de madera', ['lj_wood'] = 'madera', ['lj_pickup'] = 'presiona ~INPUT_PICKUP~ para agarrar madera.', - ['lj_cutwood'] = 'cortar madera', + ['lj_woodcutting'] = 'cortar madera', ['lj_cutwood_button'] = 'presiona ~INPUT_PICKUP~ para cortar madera.', ['lj_board'] = 'tablas', ['lj_planks'] = 'empaquetar', diff --git a/[esx_addons]/esx_jobs/locales/fi.lua b/[esx_addons]/esx_jobs/locales/fi.lua index a656b5264..e8dbb34aa 100644 --- a/[esx_addons]/esx_jobs/locales/fi.lua +++ b/[esx_addons]/esx_jobs/locales/fi.lua @@ -31,7 +31,7 @@ Locales['fi'] = { ['lj_mapblip'] = 'puukasa', ['lj_wood'] = 'puu', ['lj_pickup'] = 'paina ~INPUT_PICKUP~ kerätäksesi puita', - ['lj_cutwood'] = 'puun hakkuu', + ['lj_woodcutting'] = 'puun hakkuu', ['lj_cutwood_button'] = 'paina ~INPUT_PICKUP~ pilkkoaksesi puita.', ['lj_board'] = 'lankkuja', ['lj_planks'] = 'paketoituja lankkuja', diff --git a/[esx_addons]/esx_jobs/locales/fr.lua b/[esx_addons]/esx_jobs/locales/fr.lua index ab76c2a4a..d82b96216 100644 --- a/[esx_addons]/esx_jobs/locales/fr.lua +++ b/[esx_addons]/esx_jobs/locales/fr.lua @@ -31,7 +31,7 @@ Locales['fr'] = { ['lj_mapblip'] = 'tas de bois', ['lj_wood'] = 'bois', ['lj_pickup'] = 'appuyez sur ~INPUT_PICKUP~ pour récupérer du bois.', - ['lj_cutwood'] = 'découpe du bois', + ['lj_woodcutting'] = 'découpe du bois', ['lj_cutwood_button'] = 'appuyez sur ~INPUT_PICKUP~ pour couper du bois.', ['lj_board'] = 'planches', ['lj_planks'] = 'paquet de planche', diff --git a/[esx_addons]/esx_jobs/locales/sv.lua b/[esx_addons]/esx_jobs/locales/sv.lua index 3a39f3557..2ae9b1456 100644 --- a/[esx_addons]/esx_jobs/locales/sv.lua +++ b/[esx_addons]/esx_jobs/locales/sv.lua @@ -31,7 +31,7 @@ Locales['sv'] = { ['lj_mapblip'] = 'trähög', ['lj_wood'] = 'träd', ['lj_pickup'] = 'tryck ~INPUT_PICKUP~ för att hämta trä.', - ['lj_cutwood'] = 'trädfällning', + ['lj_woodcutting'] = 'trädfällning', ['lj_cutwood_button'] = 'tryck ~INPUT_PICKUP~ för att hugga trä.', ['lj_board'] = 'brädor', ['lj_planks'] = 'brädpaket', diff --git a/[esx_addons]/esx_jobs/server/main.lua b/[esx_addons]/esx_jobs/server/main.lua index ae1a03235..2dbcbd8cf 100644 --- a/[esx_addons]/esx_jobs/server/main.lua +++ b/[esx_addons]/esx_jobs/server/main.lua @@ -6,7 +6,7 @@ CreateThread(function() local timeNow = os.clock() for playerId,data in pairs(playersWorking) do - Wait(10) + Wait(0) local xPlayer = ESX.GetPlayerFromId(playerId) -- is player still online? diff --git a/[esx_addons]/esx_license/fxmanifest.lua b/[esx_addons]/esx_license/fxmanifest.lua index 610dd13c9..e65e3786c 100644 --- a/[esx_addons]/esx_license/fxmanifest.lua +++ b/[esx_addons]/esx_license/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX License' -version 'legacy' +version '1.5.0' server_scripts { '@async/async.lua', diff --git a/[esx_addons]/esx_lscustom/fxmanifest.lua b/[esx_addons]/esx_lscustom/fxmanifest.lua index 29f33fa19..eb4f7c761 100644 --- a/[esx_addons]/esx_lscustom/fxmanifest.lua +++ b/[esx_addons]/esx_lscustom/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX LS Customs' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_lscustom/server/main.lua b/[esx_addons]/esx_lscustom/server/main.lua index 766d8d13f..19e8cf731 100644 --- a/[esx_addons]/esx_lscustom/server/main.lua +++ b/[esx_addons]/esx_lscustom/server/main.lua @@ -2,8 +2,8 @@ local Vehicles RegisterServerEvent('esx_lscustom:buyMod') AddEventHandler('esx_lscustom:buyMod', function(price) - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) price = tonumber(price) if Config.IsMechanicJobOnly then @@ -14,21 +14,21 @@ AddEventHandler('esx_lscustom:buyMod', function(price) end) if price < societyAccount.money then - TriggerClientEvent('esx_lscustom:installMod', _source) - TriggerClientEvent('esx:showNotification', _source, _U('purchased')) + TriggerClientEvent('esx_lscustom:installMod', source) + TriggerClientEvent('esx:showNotification', source, _U('purchased')) societyAccount.removeMoney(price) else - TriggerClientEvent('esx_lscustom:cancelInstallMod', _source) - TriggerClientEvent('esx:showNotification', _source, _U('not_enough_money')) + TriggerClientEvent('esx_lscustom:cancelInstallMod', source) + TriggerClientEvent('esx:showNotification', source, _U('not_enough_money')) end else if price < xPlayer.getMoney() then - TriggerClientEvent('esx_lscustom:installMod', _source) - TriggerClientEvent('esx:showNotification', _source, _U('purchased')) + TriggerClientEvent('esx_lscustom:installMod', source) + TriggerClientEvent('esx:showNotification', source, _U('purchased')) xPlayer.removeMoney(price) else - TriggerClientEvent('esx_lscustom:cancelInstallMod', _source) - TriggerClientEvent('esx:showNotification', _source, _U('not_enough_money')) + TriggerClientEvent('esx_lscustom:cancelInstallMod', source) + TriggerClientEvent('esx:showNotification', source, _U('not_enough_money')) end end end) diff --git a/[esx_addons]/esx_mechanicjob/client/main.lua b/[esx_addons]/esx_mechanicjob/client/main.lua index c2210efd8..956417407 100644 --- a/[esx_addons]/esx_mechanicjob/client/main.lua +++ b/[esx_addons]/esx_mechanicjob/client/main.lua @@ -767,7 +767,7 @@ end) -- Pop NPC mission vehicle when inside area CreateThread(function() while true do - Wait(10) + Wait(0) if NPCTargetTowableZone and not NPCHasSpawnedTowable then local coords = GetEntityCoords(PlayerPedId()) @@ -838,7 +838,7 @@ end) -- Enter / Exit marker events CreateThread(function() while true do - Wait(10) + Wait(0) if ESX.PlayerData.job and ESX.PlayerData.job.name == 'mechanic' then @@ -935,11 +935,12 @@ CreateThread(function() TriggerServerEvent('esx_society:putVehicleInGarage', 'mechanic', vehicleProps) else + local entityModel = GetEntityModel(CurrentActionData.vehicle) if - GetEntityModel(vehicle) == GetHashKey("flatbed") or - GetEntityModel(vehicle) == GetHashKey("towtruck2") or - GetEntityModel(vehicle) == GetHashKey("slamvan3") + entityModel == GetHashKey("flatbed") or + entityModel == GetHashKey("towtruck2") or + entityModel == GetHashKey("slamvan3") then TriggerServerEvent('esx_service:disableService', 'mechanic') end diff --git a/[esx_addons]/esx_mechanicjob/fxmanifest.lua b/[esx_addons]/esx_mechanicjob/fxmanifest.lua index 95992bdd6..9fcebfe41 100644 --- a/[esx_addons]/esx_mechanicjob/fxmanifest.lua +++ b/[esx_addons]/esx_mechanicjob/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Mechanic Job' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_mechanicjob/server/main.lua b/[esx_addons]/esx_mechanicjob/server/main.lua index 4a7333c5f..42246c336 100644 --- a/[esx_addons]/esx_mechanicjob/server/main.lua +++ b/[esx_addons]/esx_mechanicjob/server/main.lua @@ -27,16 +27,16 @@ end RegisterServerEvent('esx_mechanicjob:startHarvest') AddEventHandler('esx_mechanicjob:startHarvest', function() - local _source = source - PlayersHarvesting[_source] = true - TriggerClientEvent('esx:showNotification', _source, _U('recovery_gas_can')) + local source = source + PlayersHarvesting[source] = true + TriggerClientEvent('esx:showNotification', source, _U('recovery_gas_can')) Harvest(source) end) RegisterServerEvent('esx_mechanicjob:stopHarvest') AddEventHandler('esx_mechanicjob:stopHarvest', function() - local _source = source - PlayersHarvesting[_source] = false + local source = source + PlayersHarvesting[source] = false end) local function Harvest2(source) @@ -59,16 +59,16 @@ end RegisterServerEvent('esx_mechanicjob:startHarvest2') AddEventHandler('esx_mechanicjob:startHarvest2', function() - local _source = source - PlayersHarvesting2[_source] = true - TriggerClientEvent('esx:showNotification', _source, _U('recovery_repair_tools')) - Harvest2(_source) + local source = source + PlayersHarvesting2[source] = true + TriggerClientEvent('esx:showNotification', source, _U('recovery_repair_tools')) + Harvest2(source) end) RegisterServerEvent('esx_mechanicjob:stopHarvest2') AddEventHandler('esx_mechanicjob:stopHarvest2', function() - local _source = source - PlayersHarvesting2[_source] = false + local source = source + PlayersHarvesting2[source] = false end) local function Harvest3(source) @@ -90,16 +90,16 @@ end RegisterServerEvent('esx_mechanicjob:startHarvest3') AddEventHandler('esx_mechanicjob:startHarvest3', function() - local _source = source - PlayersHarvesting3[_source] = true - TriggerClientEvent('esx:showNotification', _source, _U('recovery_body_tools')) - Harvest3(_source) + local source = source + PlayersHarvesting3[source] = true + TriggerClientEvent('esx:showNotification', source, _U('recovery_body_tools')) + Harvest3(source) end) RegisterServerEvent('esx_mechanicjob:stopHarvest3') AddEventHandler('esx_mechanicjob:stopHarvest3', function() - local _source = source - PlayersHarvesting3[_source] = false + local source = source + PlayersHarvesting3[source] = false end) local function Craft(source) @@ -123,16 +123,16 @@ end RegisterServerEvent('esx_mechanicjob:startCraft') AddEventHandler('esx_mechanicjob:startCraft', function() - local _source = source - PlayersCrafting[_source] = true - TriggerClientEvent('esx:showNotification', _source, _U('assembling_blowtorch')) - Craft(_source) + local source = source + PlayersCrafting[source] = true + TriggerClientEvent('esx:showNotification', source, _U('assembling_blowtorch')) + Craft(source) end) RegisterServerEvent('esx_mechanicjob:stopCraft') AddEventHandler('esx_mechanicjob:stopCraft', function() - local _source = source - PlayersCrafting[_source] = false + local source = source + PlayersCrafting[source] = false end) local function Craft2(source) @@ -156,16 +156,16 @@ end RegisterServerEvent('esx_mechanicjob:startCraft2') AddEventHandler('esx_mechanicjob:startCraft2', function() - local _source = source - PlayersCrafting2[_source] = true - TriggerClientEvent('esx:showNotification', _source, _U('assembling_repair_kit')) - Craft2(_source) + local source = source + PlayersCrafting2[source] = true + TriggerClientEvent('esx:showNotification', source, _U('assembling_repair_kit')) + Craft2(source) end) RegisterServerEvent('esx_mechanicjob:stopCraft2') AddEventHandler('esx_mechanicjob:stopCraft2', function() - local _source = source - PlayersCrafting2[_source] = false + local source = source + PlayersCrafting2[source] = false end) local function Craft3(source) @@ -189,22 +189,22 @@ end RegisterServerEvent('esx_mechanicjob:startCraft3') AddEventHandler('esx_mechanicjob:startCraft3', function() - local _source = source - PlayersCrafting3[_source] = true - TriggerClientEvent('esx:showNotification', _source, _U('assembling_body_kit')) - Craft3(_source) + local source = source + PlayersCrafting3[source] = true + TriggerClientEvent('esx:showNotification', source, _U('assembling_body_kit')) + Craft3(source) end) RegisterServerEvent('esx_mechanicjob:stopCraft3') AddEventHandler('esx_mechanicjob:stopCraft3', function() - local _source = source - PlayersCrafting3[_source] = false + local source = source + PlayersCrafting3[source] = false end) RegisterServerEvent('esx_mechanicjob:onNPCJobMissionCompleted') AddEventHandler('esx_mechanicjob:onNPCJobMissionCompleted', function() - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) local total = math.random(Config.NPCJobEarnings.min, Config.NPCJobEarnings.max); if xPlayer.job.grade >= 3 then @@ -215,37 +215,37 @@ AddEventHandler('esx_mechanicjob:onNPCJobMissionCompleted', function() account.addMoney(total) end) - TriggerClientEvent("esx:showNotification", _source, _U('your_comp_earned').. total) + TriggerClientEvent("esx:showNotification", source, _U('your_comp_earned').. total) end) ESX.RegisterUsableItem('blowpipe', function(source) - local _source = source + local source = source local xPlayer = ESX.GetPlayerFromId(source) xPlayer.removeInventoryItem('blowpipe', 1) - TriggerClientEvent('esx_mechanicjob:onHijack', _source) - TriggerClientEvent('esx:showNotification', _source, _U('you_used_blowtorch')) + TriggerClientEvent('esx_mechanicjob:onHijack', source) + TriggerClientEvent('esx:showNotification', source, _U('you_used_blowtorch')) end) ESX.RegisterUsableItem('fixkit', function(source) - local _source = source + local source = source local xPlayer = ESX.GetPlayerFromId(source) xPlayer.removeInventoryItem('fixkit', 1) - TriggerClientEvent('esx_mechanicjob:onFixkit', _source) - TriggerClientEvent('esx:showNotification', _source, _U('you_used_repair_kit')) + TriggerClientEvent('esx_mechanicjob:onFixkit', source) + TriggerClientEvent('esx:showNotification', source, _U('you_used_repair_kit')) end) ESX.RegisterUsableItem('carokit', function(source) - local _source = source + local source = source local xPlayer = ESX.GetPlayerFromId(source) xPlayer.removeInventoryItem('carokit', 1) - TriggerClientEvent('esx_mechanicjob:onCarokit', _source) - TriggerClientEvent('esx:showNotification', _source, _U('you_used_body_kit')) + TriggerClientEvent('esx_mechanicjob:onCarokit', source) + TriggerClientEvent('esx:showNotification', source, _U('you_used_body_kit')) end) RegisterServerEvent('esx_mechanicjob:getStockItem') diff --git a/[esx_addons]/esx_optionalneeds/fxmanifest.lua b/[esx_addons]/esx_optionalneeds/fxmanifest.lua index fd3ecbdb8..61de3d63d 100644 --- a/[esx_addons]/esx_optionalneeds/fxmanifest.lua +++ b/[esx_addons]/esx_optionalneeds/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Optional Needs' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_phone/client/main.lua b/[esx_addons]/esx_phone/client/main.lua index 06896fafe..b2f2063a4 100644 --- a/[esx_addons]/esx_phone/client/main.lua +++ b/[esx_addons]/esx_phone/client/main.lua @@ -42,7 +42,7 @@ AddEventHandler('esx_phone:loaded', function(phoneNumber, contacts) PhoneData.contacts = {} for i=1, #contacts, 1 do - contacts[i].online = (PhoneNumberSources[contacts[i].number] == nil and false or NetworkIsPlayerActive(GetPlayerFromServerId(PhoneNumberSources[contacts[i].number]))), + contacts[i].online = (PhoneNumberSources[contacts[i].number] == nil and false or NetworkIsPlayerActive(GetPlayerFromServerId(PhoneNumberSources[contacts[i].number]))) table.insert(PhoneData.contacts, contacts[i]) end @@ -241,7 +241,7 @@ CreateThread(function() else -- open phone -- todo: is player busy (handcuffed, etc) - if IsControlJustReleased(0, 288) and IsInputDisabled(0) then + if IsControlJustReleased(0, 288) and IsUsingKeyboard(0) then if not ESX.UI.Menu.IsOpen('phone', GetCurrentResourceName(), 'main') then ESX.UI.Menu.CloseAll() ESX.UI.Menu.Open('phone', GetCurrentResourceName(), 'main') @@ -267,7 +267,7 @@ CreateThread(function() if CurrentAction then ESX.ShowHelpNotification(CurrentActionMsg) - if IsControlJustReleased(0, 38) and IsInputDisabled(0) then + if IsControlJustReleased(0, 38) and IsUsingKeyboard(0) then if CurrentAction == 'dispatch' then TriggerServerEvent('esx_phone:stopDispatch', CurrentDispatchRequestId) SetNewWaypoint(CurrentActionData.position.x, CurrentActionData.position.y) diff --git a/[esx_addons]/esx_phone/fxmanifest.lua b/[esx_addons]/esx_phone/fxmanifest.lua index b221e21f6..3b16be41d 100644 --- a/[esx_addons]/esx_phone/fxmanifest.lua +++ b/[esx_addons]/esx_phone/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Phone' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_policejob/client/main.lua b/[esx_addons]/esx_policejob/client/main.lua index edd9c78fd..d99bb1d1b 100644 --- a/[esx_addons]/esx_policejob/client/main.lua +++ b/[esx_addons]/esx_policejob/client/main.lua @@ -164,7 +164,7 @@ function OpenCloakroomMenu() end, 'police') while awaitService == nil do - Wait(5) + Wait(0) end -- if we couldn't enter service don't let the player get changed diff --git a/[esx_addons]/esx_policejob/client/vehicle.lua b/[esx_addons]/esx_policejob/client/vehicle.lua index a23c390c6..cc52d5084 100644 --- a/[esx_addons]/esx_policejob/client/vehicle.lua +++ b/[esx_addons]/esx_policejob/client/vehicle.lua @@ -144,10 +144,15 @@ function StoreNearbyVehicle(playerCoords) local isBusy = true CreateThread(function() + BeginTextCommandBusyspinnerOn('STRING') + AddTextComponentSubstringPlayerName(_U('garage_storing')) + EndTextCommandBusyspinnerOn(4) + while isBusy do - Wait(0) - drawLoadingText(_U('garage_storing'), 255, 255, 255, 255) + Wait(100) end + + BusyspinnerOff() end) -- Workaround for vehicle not deleting when other players are near it. diff --git a/[esx_addons]/esx_policejob/fxmanifest.lua b/[esx_addons]/esx_policejob/fxmanifest.lua index 73388e125..1f6c47bde 100644 --- a/[esx_addons]/esx_policejob/fxmanifest.lua +++ b/[esx_addons]/esx_policejob/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Police Job' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_policejob/server/main.lua b/[esx_addons]/esx_policejob/server/main.lua index baf1b155f..dbeeb2a7f 100644 --- a/[esx_addons]/esx_policejob/server/main.lua +++ b/[esx_addons]/esx_policejob/server/main.lua @@ -9,8 +9,8 @@ TriggerEvent('esx_society:registerSociety', 'police', 'Police', 'society_police' RegisterNetEvent('esx_policejob:confiscatePlayerItem') AddEventHandler('esx_policejob:confiscatePlayerItem', function(target, itemType, itemName, amount) - local _source = source - local sourceXPlayer = ESX.GetPlayerFromId(_source) + local source = source + local sourceXPlayer = ESX.GetPlayerFromId(source) local targetXPlayer = ESX.GetPlayerFromId(target) if sourceXPlayer.job.name ~= 'police' then @@ -114,8 +114,8 @@ end) RegisterNetEvent('esx_policejob:getStockItem') AddEventHandler('esx_policejob:getStockItem', function(itemName, count) - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) TriggerEvent('esx_addoninventory:getSharedInventory', 'society_police', function(inventory) local inventoryItem = inventory.getItem(itemName) @@ -422,6 +422,7 @@ AddEventHandler('playerDropped', function() local playerId = source if playerId then local xPlayer = ESX.GetPlayerFromId(playerId) + if xPlayer and xPlayer.job.name == 'police' then Wait(5000) TriggerClientEvent('esx_policejob:updateBlip', -1) @@ -431,7 +432,9 @@ end) RegisterNetEvent('esx_policejob:spawned') AddEventHandler('esx_policejob:spawned', function() + local playerId = source local xPlayer = ESX.GetPlayerFromId(playerId) + if xPlayer and xPlayer.job.name == 'police' then Wait(5000) TriggerClientEvent('esx_policejob:updateBlip', -1) @@ -441,7 +444,7 @@ end) RegisterNetEvent('esx_policejob:forceBlip') AddEventHandler('esx_policejob:forceBlip', function() for _, xPlayer in pairs(ESX.GetExtendedPlayers('job', 'police')) do - TriggerClientEvent('esx_policejob:updateBlip', -1) + TriggerClientEvent('esx_policejob:updateBlip', xPlayer.source) end end) diff --git a/[esx_addons]/esx_property/client/main.lua b/[esx_addons]/esx_property/client/main.lua index 074d86552..75e6ff724 100644 --- a/[esx_addons]/esx_property/client/main.lua +++ b/[esx_addons]/esx_property/client/main.lua @@ -272,7 +272,7 @@ end function OpenGatewayMenu(property) if Config.EnablePlayerManagement then - OpenGatewayOwnedPropertiesMenu(gatewayProperties) + OpenGatewayOwnedPropertiesMenu(property) else ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'gateway', { title = property.name, diff --git a/[esx_addons]/esx_property/fxmanifest.lua b/[esx_addons]/esx_property/fxmanifest.lua index 65a611015..72f2d9e0d 100644 --- a/[esx_addons]/esx_property/fxmanifest.lua +++ b/[esx_addons]/esx_property/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Property' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_property/server/main.lua b/[esx_addons]/esx_property/server/main.lua index e4c04451d..f0268d6fa 100644 --- a/[esx_addons]/esx_property/server/main.lua +++ b/[esx_addons]/esx_property/server/main.lua @@ -136,7 +136,7 @@ ESX.RegisterServerCallback('esx_property:getProperties', function(source, cb) end) AddEventHandler('esx_ownedproperty:getOwnedProperties', function(cb) - MySQL.query('SELECT * FROM owned_properties', {}, function(result) + MySQL.query('SELECT * FROM owned_properties', function(result) local properties = {} for i=1, #result, 1 do @@ -410,7 +410,7 @@ function payRent(d, h, m) local tasks, timeStart = {}, os.clock() print('[esx_property] [^2INFO^7] Paying rent cron job started') - MySQL.query('SELECT * FROM owned_properties WHERE rented = 1', {}, function(result) + MySQL.query('SELECT * FROM owned_properties WHERE rented = 1', function(result) for k,v in ipairs(result) do table.insert(tasks, function(cb) local xPlayer = ESX.GetPlayerFromIdentifier(v.owner) diff --git a/[esx_addons]/esx_realestateagentjob/fxmanifest.lua b/[esx_addons]/esx_realestateagentjob/fxmanifest.lua index e7bbbd591..cc4e4b8fd 100644 --- a/[esx_addons]/esx_realestateagentjob/fxmanifest.lua +++ b/[esx_addons]/esx_realestateagentjob/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Real Estate Job' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_rpchat/fxmanifest.lua b/[esx_addons]/esx_rpchat/fxmanifest.lua index b873ecb67..de6ed9ec4 100644 --- a/[esx_addons]/esx_rpchat/fxmanifest.lua +++ b/[esx_addons]/esx_rpchat/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX RP Chat' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_service/fxmanifest.lua b/[esx_addons]/esx_service/fxmanifest.lua index 4ec5fc705..60acf0551 100644 --- a/[esx_addons]/esx_service/fxmanifest.lua +++ b/[esx_addons]/esx_service/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Service' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_service/server/main.lua b/[esx_addons]/esx_service/server/main.lua index ac0dcc879..ca2f931e8 100644 --- a/[esx_addons]/esx_service/server/main.lua +++ b/[esx_addons]/esx_service/server/main.lua @@ -75,8 +75,8 @@ end) AddEventHandler('esx:playerDropped', function(playerId, reason) for k,v in pairs(InService) do - if v[_source] == true then - v[_source] = nil + if v[source] == true then + v[source] = nil end end end) diff --git a/[esx_addons]/esx_shops/fxmanifest.lua b/[esx_addons]/esx_shops/fxmanifest.lua index dcc85135f..efd4bba98 100644 --- a/[esx_addons]/esx_shops/fxmanifest.lua +++ b/[esx_addons]/esx_shops/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Shops' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_shops/server/main.lua b/[esx_addons]/esx_shops/server/main.lua index fea81c55e..90335a563 100644 --- a/[esx_addons]/esx_shops/server/main.lua +++ b/[esx_addons]/esx_shops/server/main.lua @@ -2,8 +2,8 @@ local ShopItems = {} RegisterServerEvent('esx_shops:buyItem') AddEventHandler('esx_shops:buyItem', function(itemName, amount, zone) - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) amount = ESX.Math.Round(amount) diff --git a/[esx_addons]/esx_sit/fxmanifest.lua b/[esx_addons]/esx_sit/fxmanifest.lua index d90ca4719..cf16b31c1 100644 --- a/[esx_addons]/esx_sit/fxmanifest.lua +++ b/[esx_addons]/esx_sit/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Sit' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_sit/lists/seat.lua b/[esx_addons]/esx_sit/lists/seat.lua index cc27adf6f..6cb5df31f 100644 --- a/[esx_addons]/esx_sit/lists/seat.lua +++ b/[esx_addons]/esx_sit/lists/seat.lua @@ -11,7 +11,7 @@ Config.Sitable = { prop_bench_04 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, prop_bench_05 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, prop_bench_06 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, - prop_bench_05 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.45, forwardOffset = 0.0, leftOffset = 0.0}, + prop_bench_07 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.45, forwardOffset = 0.0, leftOffset = 0.0}, prop_bench_08 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, prop_bench_09 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.31, forwardOffset = 0.0, leftOffset = 0.0}, prop_bench_10 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, @@ -32,7 +32,7 @@ Config.Sitable = { prop_chair_04b = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, prop_chair_05 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, prop_chair_06 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, - prop_chair_05 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, + prop_chair_057 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, prop_chair_08 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, prop_chair_09 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, prop_chair_10 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, @@ -85,12 +85,8 @@ Config.Sitable = { v_ilev_fh_dineeamesa = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, - v_ilev_fh_kitchenstool = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, v_ilev_tort_stool = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, v_ilev_fh_kitchenstool = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, - v_ilev_fh_kitchenstool = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, - v_ilev_fh_kitchenstool = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, - v_ilev_fh_kitchenstool = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, -- SEAT hei_prop_yah_seat_01 = { scenario = 'PROP_HUMAN_SEAT_BENCH', verticalOffset = -0.5, forwardOffset = 0.0, leftOffset = 0.0}, diff --git a/[esx_addons]/esx_society/fxmanifest.lua b/[esx_addons]/esx_society/fxmanifest.lua index ba2f0b044..fbb6aa678 100644 --- a/[esx_addons]/esx_society/fxmanifest.lua +++ b/[esx_addons]/esx_society/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Society' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_society/server/main.lua b/[esx_addons]/esx_society/server/main.lua index 2f255c57e..8e5415a09 100644 --- a/[esx_addons]/esx_society/server/main.lua +++ b/[esx_addons]/esx_society/server/main.lua @@ -328,7 +328,7 @@ ESX.RegisterServerCallback('esx_society:getOnlinePlayers', function(source, cb) onlinePlayers = {} return end - while getOnlinePlayers do Wait(10) end -- Wait for the xPlayer loop to finish + while getOnlinePlayers do Wait(0) end -- Wait for the xPlayer loop to finish cb(onlinePlayers) end) diff --git a/[esx_addons]/esx_status/client/classes/status.lua b/[esx_addons]/esx_status/client/classes/status.lua index b71f6889f..15c864415 100644 --- a/[esx_addons]/esx_status/client/classes/status.lua +++ b/[esx_addons]/esx_status/client/classes/status.lua @@ -9,23 +9,23 @@ function CreateStatus(name, default, color, visible, tickCallback) self.visible = visible self.tickCallback = tickCallback - self._set = function(k, v) + function self._set(k, v) self[k] = v end - self._get = function(k) + function self._get(k) return self[k] end - self.onTick = function() + function self.onTick() self.tickCallback(self) end - self.set = function(val) + function self.set(val) self.val = val end - self.add = function(val) + function self.add(val) if self.val + val > Config.StatusMax then self.val = Config.StatusMax else @@ -33,7 +33,7 @@ function CreateStatus(name, default, color, visible, tickCallback) end end - self.remove = function(val) + function self.remove(val) if self.val - val < 0 then self.val = 0 else @@ -41,7 +41,7 @@ function CreateStatus(name, default, color, visible, tickCallback) end end - self.getPercent = function() + function self.getPercent() return (self.val / Config.StatusMax) * 100 end diff --git a/[esx_addons]/esx_status/fxmanifest.lua b/[esx_addons]/esx_status/fxmanifest.lua index d087e8af6..84a128c51 100644 --- a/[esx_addons]/esx_status/fxmanifest.lua +++ b/[esx_addons]/esx_status/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Status' -version 'legacy' +version '1.5.0' lua54 'yes' diff --git a/[esx_addons]/esx_status/server/classes/status.lua b/[esx_addons]/esx_status/server/classes/status.lua index 226daa606..0ec74da99 100644 --- a/[esx_addons]/esx_status/server/classes/status.lua +++ b/[esx_addons]/esx_status/server/classes/status.lua @@ -11,23 +11,23 @@ function CreateStatus(xPlayer, name, default, color, visible, tickCallback, clie self.tickCallback = tickCallback self.clientAction = clientAction - self._set = function(k, v) + function self._set(k, v) self[k] = v end - self._get = function(k) + function self._get(k) return self[k] end - self.onTick = function() + function self.onTick() self.tickCallback(self) end - self.set = function(val) + function self.set(val) self.val = val end - self.add = function(val) + function self.add(val) if self.val + val > Config.StatusMax then self.val = Config.StatusMax else @@ -35,7 +35,7 @@ function CreateStatus(xPlayer, name, default, color, visible, tickCallback, clie end end - self.remove = function(val) + function self.remove(val) if self.val - val < 0 then self.val = 0 else @@ -43,11 +43,11 @@ function CreateStatus(xPlayer, name, default, color, visible, tickCallback, clie end end - self.getPercent = function() + function self.getPercent() return (self.val / Config.StatusMax) * 100 end - self.updateClient = function() + function self.updateClient() TriggerEvent('esx_status:updateClient', self.xPlayer.source) end diff --git a/[esx_addons]/esx_taxijob/client/main.lua b/[esx_addons]/esx_taxijob/client/main.lua index a3e9f4deb..db7de34d1 100644 --- a/[esx_addons]/esx_taxijob/client/main.lua +++ b/[esx_addons]/esx_taxijob/client/main.lua @@ -608,7 +608,7 @@ CreateThread(function() TriggerServerEvent('esx_taxijob:success') RemoveBlip(DestinationBlip) - local scope = function(customer) + local function scope(customer) ESX.SetTimeout(60000, function() DeletePed(customer) end) @@ -628,7 +628,7 @@ CreateThread(function() targetCoords = Config.JobLocations[GetRandomIntInRange(1, #Config.JobLocations)] local distance = #(playerCoords - targetCoords) while distance < Config.MinimumDistance do - Wait(5) + Wait(0) targetCoords = Config.JobLocations[GetRandomIntInRange(1, #Config.JobLocations)] distance = #(playerCoords - targetCoords) @@ -649,7 +649,7 @@ CreateThread(function() BeginTextCommandSetBlipName('STRING') AddTextComponentSubstringPlayerName('Destination') - EndTextCommandSetBlipName(blip) + EndTextCommandSetBlipName(DestinationBlip) SetBlipRoute(DestinationBlip, true) CustomerEnteredVehicle = true @@ -699,7 +699,7 @@ CreateThread(function() end) CreateThread(function() - while onJob do + while OnJob do Wait(10000) if ESX.PlayerData.job ~= nil and ESX.PlayerData.job.grade < 3 then if not IsInAuthorizedVehicle() then diff --git a/[esx_addons]/esx_taxijob/fxmanifest.lua b/[esx_addons]/esx_taxijob/fxmanifest.lua index 9f85f3d35..55d9ab7b8 100644 --- a/[esx_addons]/esx_taxijob/fxmanifest.lua +++ b/[esx_addons]/esx_taxijob/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Taxi Job' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_vehicleshop/client/main.lua b/[esx_addons]/esx_vehicleshop/client/main.lua index 5dd8e6b97..15bea909a 100644 --- a/[esx_addons]/esx_vehicleshop/client/main.lua +++ b/[esx_addons]/esx_vehicleshop/client/main.lua @@ -9,8 +9,6 @@ function getVehicleFromModel(model) return vehicle end end - - return end function getVehicles() @@ -440,7 +438,7 @@ function OpenPopVehicleMenu() local elements = {} for k,v in ipairs(vehicles) do - local vehicleLabel = getVehicleLabelFromModel(v.vehicle) + local vehicleLabel = getVehicleFromModel(v.vehicle).label table.insert(elements, { label = ('%s [MSRP %s]'):format(vehicleLabel, _U('generic_shopitem', ESX.Math.GroupDigits(v.price))), @@ -477,7 +475,7 @@ function OpenRentedVehiclesMenu() local elements = {} for k,v in ipairs(vehicles) do - local vehicleLabel = getVehicleLabelFromModel(v.name) + local vehicleLabel = getVehicleFromModel(v.name).label table.insert(elements, { label = ('%s: %s - %s'):format(v.playerName, vehicleLabel, v.plate), @@ -756,7 +754,7 @@ end) -- Enter / Exit marker events & Draw Markers CreateThread(function() while true do - Wait(4) + Wait(0) local playerCoords = GetEntityCoords(PlayerPedId()) local isInMarker, letSleep, currentZone = false, true @@ -796,7 +794,7 @@ end) -- Key controls CreateThread(function() while true do - Wait(5) + Wait(0) if CurrentAction then ESX.ShowHelpNotification(CurrentActionMsg) @@ -850,8 +848,8 @@ CreateThread(function() RequestIpl('shr_int') -- Load walls and floor local interiorID = 7170 - LoadInterior(interiorID) - EnableInteriorProp(interiorID, 'csr_beforeMission') -- Load large window + PinInteriorInMemory(interiorID) + ActivateInteriorEntitySet(interiorID, 'csr_beforeMission') -- Load large window RefreshInterior(interiorID) end) diff --git a/[esx_addons]/esx_vehicleshop/client/utils.lua b/[esx_addons]/esx_vehicleshop/client/utils.lua index 1a76a4d23..ef2a9f511 100644 --- a/[esx_addons]/esx_vehicleshop/client/utils.lua +++ b/[esx_addons]/esx_vehicleshop/client/utils.lua @@ -11,7 +11,7 @@ function GeneratePlate() local doBreak = false while true do - Wait(2) + Wait(0) math.randomseed(GetGameTimer()) if Config.PlateUseSpace then generatedPlate = string.upper(GetRandomLetter(Config.PlateLetters) .. ' ' .. GetRandomNumber(Config.PlateNumbers)) diff --git a/[esx_addons]/esx_vehicleshop/fxmanifest.lua b/[esx_addons]/esx_vehicleshop/fxmanifest.lua index c50694f76..a046a9ff2 100644 --- a/[esx_addons]/esx_vehicleshop/fxmanifest.lua +++ b/[esx_addons]/esx_vehicleshop/fxmanifest.lua @@ -6,7 +6,7 @@ lua54 'yes' description 'ESX Vehicle Shop' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/[esx_addons]/esx_vehicleshop/server/main.lua b/[esx_addons]/esx_vehicleshop/server/main.lua index 68adf87d9..7d82043ee 100644 --- a/[esx_addons]/esx_vehicleshop/server/main.lua +++ b/[esx_addons]/esx_vehicleshop/server/main.lua @@ -113,8 +113,8 @@ end) RegisterNetEvent('esx_vehicleshop:getStockItem') AddEventHandler('esx_vehicleshop:getStockItem', function(itemName, count) - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) TriggerEvent('esx_addoninventory:getSharedInventory', 'society_cardealer', function(inventory) local item = inventory.getItem(itemName) @@ -138,8 +138,8 @@ end) RegisterNetEvent('esx_vehicleshop:putStockItems') AddEventHandler('esx_vehicleshop:putStockItems', function(itemName, count) - local _source = source - local xPlayer = ESX.GetPlayerFromId(_source) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) TriggerEvent('esx_addoninventory:getSharedInventory', 'society_cardealer', function(inventory) local item = inventory.getItem(itemName) @@ -242,7 +242,7 @@ ESX.RegisterServerCallback('esx_vehicleshop:getRentedVehicles', function(source, local vehicles = {} for i = 1, #result do - local vehicle = tab[i] + local vehicle = result[i] vehicles[#vehicles + 1] = { name = vehicle.vehicle, plate = vehicle.plate, diff --git a/[esx_addons]/esx_voice/client/main.lua b/[esx_addons]/esx_voice/client/main.lua index f828eefca..6bbf734e5 100644 --- a/[esx_addons]/esx_voice/client/main.lua +++ b/[esx_addons]/esx_voice/client/main.lua @@ -43,7 +43,7 @@ end) CreateThread(function() while true do - Wait(1) + Wait(0) if IsControlJustPressed(1, Keys['H']) and IsControlPressed(1, Keys['LEFTSHIFT']) then voice.current = (voice.current + 1) % 3 diff --git a/[esx_addons]/esx_voice/fxmanifest.lua b/[esx_addons]/esx_voice/fxmanifest.lua index b127896e9..1e7b97ada 100644 --- a/[esx_addons]/esx_voice/fxmanifest.lua +++ b/[esx_addons]/esx_voice/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Voice Controller' -version 'legacy' +version '1.5.0' client_scripts { '@es_extended/imports.lua', diff --git a/[esx_addons]/esx_weaponshop/client/main.lua b/[esx_addons]/esx_weaponshop/client/main.lua index 0d3c52079..f8553d9f0 100644 --- a/[esx_addons]/esx_weaponshop/client/main.lua +++ b/[esx_addons]/esx_weaponshop/client/main.lua @@ -90,11 +90,11 @@ function DisplayBoughtScaleform(weaponName, price) BeginScaleformMovieMethod(scaleform, 'SHOW_WEAPON_PURCHASED') - PushScaleformMovieMethodParameterString(_U('weapon_bought', ESX.Math.GroupDigits(price))) - PushScaleformMovieMethodParameterString(ESX.GetWeaponLabel(weaponName)) - PushScaleformMovieMethodParameterInt(GetHashKey(weaponName)) - PushScaleformMovieMethodParameterString('') - PushScaleformMovieMethodParameterInt(100) + ScaleformMovieMethodAddParamTextureNameString(_U('weapon_bought', ESX.Math.GroupDigits(price))) + ScaleformMovieMethodAddParamTextureNameString(ESX.GetWeaponLabel(weaponName)) + ScaleformMovieMethodAddParamInt(GetHashKey(weaponName)) + ScaleformMovieMethodAddParamTextureNameString('') + ScaleformMovieMethodAddParamInt(100) EndScaleformMovieMethod() diff --git a/[esx_addons]/esx_weaponshop/fxmanifest.lua b/[esx_addons]/esx_weaponshop/fxmanifest.lua index a701a0cab..9353760ea 100644 --- a/[esx_addons]/esx_weaponshop/fxmanifest.lua +++ b/[esx_addons]/esx_weaponshop/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Weapon Shop' -version 'legacy' +version '1.5.0' shared_scripts { '@es_extended/imports.lua', diff --git a/[esx_addons]/esx_weaponshop/server/main.lua b/[esx_addons]/esx_weaponshop/server/main.lua index 26d584631..2f19e15be 100644 --- a/[esx_addons]/esx_weaponshop/server/main.lua +++ b/[esx_addons]/esx_weaponshop/server/main.lua @@ -2,7 +2,7 @@ local shopItems = {} MySQL.ready(function() - MySQL.query('SELECT * FROM weashops', {}, function(result) + MySQL.query('SELECT * FROM weashops', function(result) for i=1, #result, 1 do if shopItems[result[i].zone] == nil then shopItems[result[i].zone] = {} diff --git a/[esx_addons]/esx_whitelist/fxmanifest.lua b/[esx_addons]/esx_whitelist/fxmanifest.lua index faff6fdce..c801733ab 100644 --- a/[esx_addons]/esx_whitelist/fxmanifest.lua +++ b/[esx_addons]/esx_whitelist/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Whitelist' -version 'legacy' +version '1.5.0' server_scripts { '@es_extended/imports.lua', diff --git a/[esx_addons]/esx_whitelist/server/main.lua b/[esx_addons]/esx_whitelist/server/main.lua index 452102698..399ed8182 100644 --- a/[esx_addons]/esx_whitelist/server/main.lua +++ b/[esx_addons]/esx_whitelist/server/main.lua @@ -3,7 +3,7 @@ WhiteList = {} function loadWhiteList(cb) Whitelist = {} - MySQL.query('SELECT identifier FROM whitelist', {}, function(result) + MySQL.query('SELECT identifier FROM whitelist', function(result) for k,v in ipairs(result) do WhiteList[v.identifier] = true end @@ -19,16 +19,18 @@ MySQL.ready(function() end) AddEventHandler('playerConnecting', function(name, setCallback, deferrals) - local xPlayers = ESX.GetPlayers() + if #GetPlayers() < Config.MinPlayer then + deferrals.done() + end -- Mark this connection as deferred, this is to prevent problems while checking player identifiers. deferrals.defer() local playerId, kickReason = source - + -- Letting the user know what's going on. deferrals.update(_U('whitelist_check')) - + -- Needed, not sure why. Wait(100) @@ -42,13 +44,9 @@ AddEventHandler('playerConnecting', function(name, setCallback, deferrals) kickReason = _U('not_whitelisted') end - if whitelisted or #xPlayers < Config.MinPlayer then - deferrals.done() + if kickReason then + deferrals.done(kickReason) else - if kickReason then - deferrals.done(kickReason) - else - deferrals.done() - end - end + deferrals.done() + end end) diff --git a/[esx_addons]/instance/fxmanifest.lua b/[esx_addons]/instance/fxmanifest.lua index 2fcd3cc9b..d1518ac1e 100644 --- a/[esx_addons]/instance/fxmanifest.lua +++ b/[esx_addons]/instance/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'Instance' -version 'legacy' +version '1.5.0' shared_script '@es_extended/imports.lua' diff --git a/esx_example/client/main.lua b/esx_example/client/main.lua index 818cc3d13..6a5da8b3e 100644 --- a/esx_example/client/main.lua +++ b/esx_example/client/main.lua @@ -20,7 +20,7 @@ AddEventHandler('esx:setJob', function(job) ESX.PlayerData.job = job end) -OnPlayerData = function(key, val, last) +function OnPlayerData(key, val, last) if type(val) == 'table' then val = json.encode(val) end print('PlayerData.'..key..' was set to '..val) if key == 'job' then