mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-09-04 08:13:21 +00:00
fix: undefined variables, args, indexes, etc.
This commit is contained in:
@@ -715,7 +715,7 @@ ESX.Game.SetVehicleProperties = function(vehicle, props)
|
||||
end
|
||||
end
|
||||
|
||||
ESX.Game.Utils.EndTextCommandDisplayText3D = function(coords, text, size, font)
|
||||
ESX.Game.Utils.DrawText3D = function(coords, text, size, font)
|
||||
local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z)
|
||||
|
||||
local camCoords = GetFinalRenderedCamCoord()
|
||||
|
||||
@@ -480,7 +480,7 @@ CreateThread(function()
|
||||
label = ('%s~n~%s'):format(label, _U('threw_pickup_prompt'))
|
||||
end
|
||||
|
||||
ESX.Game.Utils.EndTextCommandDisplayText3D({
|
||||
ESX.Game.Utils.DrawText3D({
|
||||
x = pickup.coords.x,
|
||||
y = pickup.coords.y,
|
||||
z = pickup.coords.z + 0.25
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -29,7 +29,7 @@ local function StartDBSync()
|
||||
end
|
||||
|
||||
MySQL.ready(function()
|
||||
MySQL.query('SELECT * FROM items', {}, function(result)
|
||||
MySQL.query('SELECT * FROM items', function(result)
|
||||
for k,v in ipairs(result) do
|
||||
ESX.Items[v.name] = {
|
||||
label = v.label,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -15,7 +15,6 @@ local closeMenu = function(namespace, name)
|
||||
action = 'closeMenu',
|
||||
namespace = namespace,
|
||||
name = name,
|
||||
data = data
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
@@ -28,7 +28,6 @@ local closeMenu = function(namespace, name)
|
||||
action = 'closeMenu',
|
||||
namespace = namespace,
|
||||
name = name,
|
||||
data = data
|
||||
})
|
||||
|
||||
if ESX.Table.SizeOf(OpenedMenus) == 0 then
|
||||
|
||||
@@ -28,7 +28,6 @@ CreateThread(function()
|
||||
action = 'closeMenu',
|
||||
namespace = namespace,
|
||||
name = name,
|
||||
data = data
|
||||
})
|
||||
|
||||
for k,v in pairs(OpenedMenus) do
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -331,7 +331,7 @@ function RemoveItemsAfterRPDeath()
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = {
|
||||
{
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -143,7 +143,7 @@ function StoreNearbyVehicle(playerCoords)
|
||||
ESX.Game.DeleteVehicle(vehicleId)
|
||||
local isBusy = true
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
CreateThread(function()
|
||||
BeginTextCommandBusyspinnerOn('STRING')
|
||||
AddTextComponentSubstringPlayerName(_U('garage_storing'))
|
||||
EndTextCommandBusyspinnerOn(4)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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,
|
||||
@@ -790,7 +790,7 @@ CreateThread(function()
|
||||
if distance < Config.DrawDistance then
|
||||
DrawMarker(Config.MarkerType, property.entering.x, property.entering.y, property.entering.z, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Config.MarkerSize.x, Config.MarkerSize.y, Config.MarkerSize.z, Config.MarkerColor.r, Config.MarkerColor.g, Config.MarkerColor.b, 100, false, true, 2, false, nil, nil, false)
|
||||
if Config.MarkerText == true then
|
||||
ESX.Game.Utils.EndTextCommandDisplayText3D(property.entering, property.name, 2)
|
||||
ESX.Game.Utils.DrawText3D(property.entering, property.name, 2)
|
||||
end
|
||||
letSleep = false
|
||||
end
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -24,7 +24,7 @@ if Config.Debug then
|
||||
|
||||
local text = ('ID: %s~n~Hash: %s~n~Model: %s'):format(id, hash, model)
|
||||
|
||||
ESX.Game.Utils.EndTextCommandDisplayText3D({
|
||||
ESX.Game.Utils.DrawText3D({
|
||||
x = coords.x,
|
||||
y = coords.y,
|
||||
z = coords.z + 2.0
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 <span style="color:green;">%s</span>]'):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 - <span style="color:orange;">%s</span>'):format(v.playerName, vehicleLabel, v.plate),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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] = {}
|
||||
|
||||
@@ -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 #GetActivePlayers() < Config.MinPlayer then
|
||||
CancelEvent()
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user