ESX = nil Citizen.CreateThread(function() while ESX == nil do TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end) Citizen.Wait(0) end end) -------------------------------------------------------------------------------- -- NE RIEN MODIFIER -------------------------------------------------------------------------------- local namezone = "Delivery" local namezonenum = 0 local namezoneregion = 0 local MissionRegion = 0 local viemaxvehicule = 1000 local argentretire = 0 local livraisonTotalPaye = 0 local livraisonnombre = 0 local MissionRetourCamion = false local MissionNum = 0 local MissionLivraison = false local isInService = false local PlayerData = nil local GUI = {} GUI.Time = 0 local hasAlreadyEnteredMarker = false local lastZone = nil local Blips = {} local plaquevehicule = "" local plaquevehiculeactuel = "" local CurrentAction = nil local price = 500 local CurrentActionMsg = '' local CurrentActionData = {} -------------------------------------------------------------------------------- RegisterNetEvent('esx:playerLoaded') AddEventHandler('esx:playerLoaded', function(xPlayer) ESX.PlayerData = xPlayer end) RegisterNetEvent('esx:setJob') AddEventHandler('esx:setJob', function(job) ESX.PlayerData.job = job end) -- MENUS function MenuCloakRoom() ESX.UI.Menu.CloseAll() ESX.UI.Menu.Open( 'default', GetCurrentResourceName(), 'cloakroom', { title = _U('cloakroom'), align = 'bottom-right', elements = { {label = _U('job_wear'), value = 'job_wear'}, {label = _U('citizen_wear'), value = 'citizen_wear'} } }, function(data, menu) if data.current.value == 'citizen_wear' then isInService = false ESX.TriggerServerCallback('esx_skin:getPlayerSkin', function(skin, jobSkin) local model = nil if skin.***** == 0 or 1 then model = GetHashKey("mp_m_freemode_01") else model = GetHashKey("mp_f_freemode_01") end RequestModel(model) while not HasModelLoaded(model) do RequestModel(model) Citizen.Wait(1) end SetPlayerModel(PlayerId(), model) SetModelAsNoLongerNeeded(model) TriggerEvent('skinchanger:loadSkin', skin) TriggerEvent('esx:restoreLoadout') end) end if data.current.value == 'job_wear' then isInService = true ESX.TriggerServerCallback('esx_skin:getPlayerSkin', function(skin) if skin.***** == 0 or 1 then SetModelAsNoLongerNeeded(model) -- Uses Current Player Model RequestModel(model) while not HasModelLoaded(model) do RequestModel(model) Citizen.Wait(0) end xPlayer.removeAccountMoney('black_money', price) SetPlayerModel(PlayerId(), model) else end end) end menu.close() end, function(data, menu) menu.close() end ) end function MenuVehicleSpawner(xPlayer) local elements = {} local xPlayer = ESX.GetPlayerData() for i=1, #Config.Trucks, 1 do table.insert(elements, {label = GetLabelText(GetDisplayNameFromVehicleModel(Config.Trucks[i])), value = Config.Trucks[i]}) end ESX.UI.Menu.CloseAll() ESX.UI.Menu.Open( 'default', GetCurrentResourceName(), 'vehiclespawner', { title = _U('vehiclespawner'), align = 'bottom-right', elements = elements }, function(data, menu) ESX.Game.SpawnVehicle(data.current.value, Config.Zones.VehicleSpawnPoint.Pos, 270.0, function(vehicle) platenum = math.random(10000, 99999) SetVehicleNumberPlateText(vehicle, "WAL"..platenum) MissionLivraisonSelect() plaquevehicule = "WAL"..platenum --xPlayer.removeAccountMoney('black_money', 1000) -- Cost $500 Dirty Money if data.current.value == 'phantom3' then ESX.Game.SpawnVehicle("trailers2", Config.Zones.VehicleSpawnPoint.Pos, 270.0, function(trailer) AttachVehicleToTrailer(vehicle, trailer, 1.1) end) end TaskWarpPedIntoVehicle(GetPlayerPed(-1), vehicle, -1) end) menu.close() end, function(data, menu) menu.close() end ) end function IsATruck() local isATruck = false local playerPed = GetPlayerPed(-1) for i=1, #Config.Trucks, 1 do if IsVehicleModel(GetVehiclePedIsUsing(playerPed), Config.Trucks[i]) then isATruck = true break end end return isATruck end function IsJobTrucker() return true end AddEventHandler('esx_godirtyjob:hasEnteredMarker', function(zone) local playerPed = GetPlayerPed(-1) if zone == 'CloakRoom' then MenuCloakRoom() end if zone == 'VehicleSpawner' then if isInService and IsJobTrucker() then if MissionRetourCamion or MissionLivraison then CurrentAction = 'hint' CurrentActionMsg = _U('already_have_truck') else ESX.TriggerServerCallback('fn_hud:getStatus', function(data) bank = data.black_money if bank > 10000 then MenuVehicleSpawner() else ESX.ShowNotification('Bạn cần cầm ~b~10000$ ~y~tiền bẩn') end end) end end end if zone == namezone then if isInService and MissionLivraison and MissionNum == namezonenum and MissionRegion == namezoneregion and IsJobTrucker() then if IsPedSittingInAnyVehicle(playerPed) and IsATruck() then VerifPlaqueVehiculeActuel() if plaquevehicule == plaquevehiculeactuel then if Blips['delivery'] ~= nil then RemoveBlip(Blips['delivery']) Blips['delivery'] = nil end CurrentAction = 'delivery' CurrentActionMsg = _U('delivery') else CurrentAction = 'hint' CurrentActionMsg = _U('not_your_truck') end else CurrentAction = 'hint' CurrentActionMsg = _U('not_your_truck2') end end end if zone == 'AnnulerMission' then if isInService and MissionLivraison and IsJobTrucker() then if IsPedSittingInAnyVehicle(playerPed) and IsATruck() then VerifPlaqueVehiculeActuel() TriggerServerEvent('esx:clientLog', "3'" .. json.encode(plaquevehicule) .. "' '" .. json.encode(plaquevehiculeactuel) .. "'") if plaquevehicule == plaquevehiculeactuel then CurrentAction = 'retourcamionannulermission' CurrentActionMsg = _U('cancel_mission') else CurrentAction = 'hint' CurrentActionMsg = _U('not_your_truck') end else CurrentAction = 'retourcamionperduannulermission' end end end if zone == 'RetourCamion' then if isInService and MissionRetourCamion and IsJobTrucker() then if IsPedSittingInAnyVehicle(playerPed) and IsATruck() then VerifPlaqueVehiculeActuel() if plaquevehicule == plaquevehiculeactuel then CurrentAction = 'retourcamion' CurrentActionMsg = _U('return_finished') else CurrentAction = 'retourcamionannulermission' CurrentActionMsg = _U('not_your_truck') end else CurrentAction = 'retourcamionperdu' end end end end) AddEventHandler('esx_godirtyjob:hasExitedMarker', function(zone) ESX.UI.Menu.CloseAll() CurrentAction = nil CurrentActionMsg = '' end) function nouvelledestination() livraisonnombre = livraisonnombre+1 livraisonTotalPaye = livraisonTotalPaye+destination.Paye if livraisonnombre >= Config.MaxDelivery then LLgRi7cWeUUu5zpB7dekZFapB2XdRCvM4N() else livraisonsuite = math.random(0, 100) if livraisonsuite <= 10 then LLgRi7cWeUUu5zpB7dekZFapB2XdRCvM4N() elseif livraisonsuite <= 99 then MissionLivraisonSelect() elseif livraisonsuite <= 100 then if MissionRegion == 1 then MissionRegion = 2 elseif MissionRegion == 2 then MissionRegion = 1 end MissionLivraisonSelect() end end end function retourcamion_oui() if Blips['delivery'] ~= nil then RemoveBlip(Blips['delivery']) Blips['delivery'] = nil end if Blips['annulermission'] ~= nil then RemoveBlip(Blips['annulermission']) Blips['annulermission'] = nil end MissionRetourCamion = false livraisonnombre = 0 MissionRegion = 0 TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) print('retourcamion_oui <<< Has been Triggered') donnerlapaye() end function retourcamion_non() if livraisonnombre >= Config.MaxDelivery then ESX.ShowNotification(_U('need_it')) else ESX.ShowNotification(_U('ok_work')) TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) print('retourcamion_non <<< Has been Triggered') nouvelledestination() end end function retourcamionperdu_oui() if Blips['delivery'] ~= nil then RemoveBlip(Blips['delivery']) Blips['delivery'] = nil end if Blips['annulermission'] ~= nil then RemoveBlip(Blips['annulermission']) Blips['annulermission'] = nil end TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) print('retourcamionperdu_oui <<< Has been Triggered') MissionRetourCamion = false livraisonnombre = 0 MissionRegion = 0 donnerlapayesanscamion() end function retourcamionperdu_non() ESX.ShowNotification(_U('scared_me')) end function retourcamionannulermission_oui() if Blips['delivery'] ~= nil then RemoveBlip(Blips['delivery']) Blips['delivery'] = nil end if Blips['annulermission'] ~= nil then RemoveBlip(Blips['annulermission']) Blips['annulermission'] = nil end MissionLivraison = false livraisonnombre = 0 MissionRegion = 0 TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) print('retourcamionperdu_non <<< Has been Triggered') donnerlapaye() end function retourcamionannulermission_non() ESX.ShowNotification(_U('resume_delivery')) end function retourcamionperduannulermission_oui() if Blips['delivery'] ~= nil then RemoveBlip(Blips['delivery']) Blips['delivery'] = nil end if Blips['annulermission'] ~= nil then RemoveBlip(Blips['annulermission']) Blips['annulermission'] = nil end MissionLivraison = false livraisonnombre = 0 MissionRegion = 0 TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) print('retourcamionperduannulermission_oui <<< Has been Triggered') donnerlapayesanscamion() end function retourcamionperduannulermission_non() ESX.ShowNotification(_U('resume_delivery')) end function round(num, numDecimalPlaces) local mult = 5^(numDecimalPlaces or 0) return math.floor(num * mult + 0.5) / mult end function donnerlapaye() ped = GetPlayerPed(-1) vehicle = GetVehiclePedIsIn(ped, false) vievehicule = GetVehicleEngineHealth(vehicle) calculargentretire = round(viemaxvehicule-vievehicule) if calculargentretire <= 0 then argentretire = 0 else argentretire = calculargentretire end ESX.Game.DeleteVehicle(vehicle) local amount = livraisonTotalPaye-argentretire if vievehicule >= 1 then if livraisonTotalPaye == 0 then ESX.ShowNotification(_U('not_delivery')) ESX.ShowNotification(_U('pay_repair')) ESX.ShowNotification(_U('repair_minus')..argentretire) TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) livraisonTotalPaye = 0 else if argentretire <= 0 then TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) livraisonTotalPaye = 0 else ESX.ShowNotification(_U('repair_minus')..argentretire) TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) livraisonTotalPaye = 0 end end else if livraisonTotalPaye ~= 0 and amount <= 0 then ESX.ShowNotification(_U('truck_state')) livraisonTotalPaye = 0 else if argentretire <= 0 then TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) livraisonTotalPaye = 0 else ESX.ShowNotification(_U('repair_minus')..argentretire) TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) livraisonTotalPaye = 0 end end end end function donnerlapayesanscamion() ped = GetPlayerPed(-1) argentretire = Config.TruckPrice -- donne paye local amount = livraisonTotalPaye-argentretire if livraisonTotalPaye == 0 then ESX.ShowNotification(_U('no_delivery_no_truck')) ESX.ShowNotification(_U('truck_price')..argentretire) TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) livraisonTotalPaye = 0 else if amount >= 1 then ESX.ShowNotification(_U('truck_price')..argentretire) TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) livraisonTotalPaye = 0 else ESX.ShowNotification(_U('truck_state')) livraisonTotalPaye = 0 end end end function DisplayHelpText(str) SetTextComponentFormat("STRING") AddTextComponentString(str) DisplayHelpTextFromStringLabel(0, 0, 1, -1) end -- Key Controls Citizen.CreateThread(function() while true do Citizen.Wait(15) if CurrentAction ~= nil and ESX.PlayerData.job.name ~= 'police' and ESX.PlayerData.job.name ~= 'offpolice' then DisplayHelpText(CurrentActionMsg) if IsControlJustReleased(0, 38) and IsJobTrucker() then if CurrentAction == 'delivery' then --- local money = xPlayer.getAccount('black_money').money --- if money > amount or money == amount then nouvelledestination() -- Player.addMoney(tonumber(amount)) --- elseif money < amount or money == money then -- Player.addMoney(tonumber(money)) -- retourcamionannulermission_oui() -- end -- end end if CurrentAction == 'retourcamion' then retourcamion_oui() --end elseif CurrentAction == 'retourcamionperdu' then retourcamionperdu_oui() --end elseif CurrentAction == 'retourcamionannulermission' then retourcamionannulermission_oui() --end elseif CurrentAction == 'retourcamionperduannulermission' then retourcamionperduannulermission_oui() end CurrentAction = nil end end end end) -- DISPLAY MISSION MARKERS AND MARKERS Citizen.CreateThread(function() while true do Wait(15) local cansee = false local coords = GetEntityCoords(GetPlayerPed(-1)) if MissionLivraison then if GetDistanceBetweenCoords(coords, destination.Pos.x, destination.Pos.y, destination.Pos.z, true) < 10.0 then cansee = true DrawMarker(destination.Type, destination.Pos.x, destination.Pos.y, destination.Pos.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, destination.Size.x, destination.Size.y, destination.Size.z, destination.Color.r, destination.Color.g, destination.Color.b, 100, false, true, 2, false, false, false, false) end if GetDistanceBetweenCoords(coords, Config.Livraison.AnnulerMission.Pos.x, Config.Livraison.AnnulerMission.Pos.y, Config.Livraison.AnnulerMission.Pos.z, true) < 10.0 then cansee = true DrawMarker(Config.Livraison.AnnulerMission.Type, Config.Livraison.AnnulerMission.Pos.x, Config.Livraison.AnnulerMission.Pos.y, Config.Livraison.AnnulerMission.Pos.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.Livraison.AnnulerMission.Size.x, Config.Livraison.AnnulerMission.Size.y, Config.Livraison.AnnulerMission.Size.z, Config.Livraison.AnnulerMission.Color.r, Config.Livraison.AnnulerMission.Color.g, Config.Livraison.AnnulerMission.Color.b, 100, false, true, 2, false, false, false, false) end elseif MissionRetourCamion then if GetDistanceBetweenCoords(coords, destination.Pos.x, destination.Pos.y, destination.Pos.z, true) < 10.0 then cansee = true DrawMarker(destination.Type, destination.Pos.x, destination.Pos.y, destination.Pos.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, destination.Size.x, destination.Size.y, destination.Size.z, destination.Color.r, destination.Color.g, destination.Color.b, 100, false, true, 2, false, false, false, false) end end for k,v in pairs(Config.Zones) do if isInService and (IsJobTrucker() and v.Type ~= -1 and GetDistanceBetweenCoords(coords, v.Pos.x, v.Pos.y, v.Pos.z, true) < Config.DrawDistance) then cansee = true DrawMarker(v.Type, v.Pos.x, v.Pos.y, v.Pos.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, v.Size.x, v.Size.y, v.Size.z, v.Color.r, v.Color.g, v.Color.b, 100, false, true, 2, false, false, false, false) end end for k,v in pairs(Config.Cloakroom) do cansee = true if(IsJobTrucker() and v.Type ~= -1 and GetDistanceBetweenCoords(coords, v.Pos.x, v.Pos.y, v.Pos.z, true) < Config.DrawDistance) then DrawMarker(v.Type, v.Pos.x, v.Pos.y, v.Pos.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, v.Size.x, v.Size.y, v.Size.z, v.Color.r, v.Color.g, v.Color.b, 100, false, true, 2, false, false, false, false) end end if cansee == false then Wait(1000) end end end) -- Activate menu when player is inside marker Citizen.CreateThread(function() while true do Wait(500) if true then local coords = GetEntityCoords(GetPlayerPed(-1)) local isInMarker = false local currentZone = nil for k,v in pairs(Config.Zones) do if(GetDistanceBetweenCoords(coords, v.Pos.x, v.Pos.y, v.Pos.z, true) < v.Size.x) then isInMarker = true currentZone = k end end for k,v in pairs(Config.Cloakroom) do if(GetDistanceBetweenCoords(coords, v.Pos.x, v.Pos.y, v.Pos.z, true) < v.Size.x) then isInMarker = true currentZone = k end end for k,v in pairs(Config.Livraison) do if(GetDistanceBetweenCoords(coords, v.Pos.x, v.Pos.y, v.Pos.z, true) < v.Size.x) then isInMarker = true currentZone = k end end if isInMarker and not hasAlreadyEnteredMarker then hasAlreadyEnteredMarker = true lastZone = currentZone TriggerEvent('esx_godirtyjob:hasEnteredMarker', currentZone) end if not isInMarker and hasAlreadyEnteredMarker then hasAlreadyEnteredMarker = false TriggerEvent('esx_godirtyjob:hasExitedMarker', lastZone) end end end end) -- CREATE BLIPS Citizen.CreateThread(function() local blip = AddBlipForCoord(Config.Cloakroom.CloakRoom.Pos.x, Config.Cloakroom.CloakRoom.Pos.y, Config.Cloakroom.CloakRoom.Pos.z) SetBlipSprite (blip, 351) SetBlipDisplay(blip, 4) SetBlipScale (blip, 1.2) SetBlipColour (blip, 49) SetBlipAsShortRange(blip, true) BeginTextCommandSetBlipName("STRING") AddTextComponentString(_U('Money_Laundering')) EndTextCommandSetBlipName(blip) end) ------------------------------------------------- -- Fonctions ------------------------------------------------- -- Fonction selection nouvelle mission livraison function MissionLivraisonSelect() local amount = livraisonTotalPaye-argentretire TriggerServerEvent('esx:clientLog', "MissionLivraisonSelect num") TriggerServerEvent('esx:clientLog', MissionRegion) if MissionRegion == 0 then TriggerServerEvent('esx:clientLog', "MissionLivraisonSelect 1") TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) print('Payout Started') MissionRegion = math.random(1,2) end if MissionRegion == 1 then -- Los santos TriggerServerEvent('esx:clientLog', "MissionLivraisonSelect 2") TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) print('Payout Started') MissionNum = math.random(1, 10) if MissionNum == 1 then destination = Config.Livraison.Delivery1LS namezone = "Delivery1LS" namezonenum = 1 namezoneregion = 1 elseif MissionNum == 2 then destination = Config.Livraison.Delivery2LS namezone = "Delivery2LS" namezonenum = 2 namezoneregion = 1 elseif MissionNum == 3 then destination = Config.Livraison.Delivery3LS namezone = "Delivery3LS" namezonenum = 3 namezoneregion = 1 elseif MissionNum == 4 then destination = Config.Livraison.Delivery4LS namezone = "Delivery4LS" namezonenum = 4 namezoneregion = 1 elseif MissionNum == 5 then destination = Config.Livraison.Delivery5LS namezone = "Delivery5LS" namezonenum = 5 namezoneregion = 1 elseif MissionNum == 6 then destination = Config.Livraison.Delivery6LS namezone = "Delivery6LS" namezonenum = 6 namezoneregion = 1 elseif MissionNum == 7 then destination = Config.Livraison.Delivery7LS namezone = "Delivery7LS" namezonenum = 7 namezoneregion = 1 elseif MissionNum == 8 then destination = Config.Livraison.Delivery8LS namezone = "Delivery8LS" namezonenum = 8 namezoneregion = 1 elseif MissionNum == 9 then destination = Config.Livraison.Delivery9LS namezone = "Delivery9LS" namezonenum = 9 namezoneregion = 1 elseif MissionNum == 10 then destination = Config.Livraison.Delivery10LS namezone = "Delivery10LS" namezonenum = 10 namezoneregion = 1 end elseif MissionRegion == 2 then -- Blaine County TriggerServerEvent('esx:clientLog', "MissionLivraisonSelect 3") TriggerServerEvent("esx_godirtyjob:BanGioivcl", amount) print('Payout Started') MissionNum = math.random(1, 10) if MissionNum == 1 then destination = Config.Livraison.Delivery1BC namezone = "Delivery1BC" namezonenum = 1 namezoneregion = 2 elseif MissionNum == 2 then destination = Config.Livraison.Delivery2BC namezone = "Delivery2BC" namezonenum = 2 namezoneregion = 2 elseif MissionNum == 3 then destination = Config.Livraison.Delivery3BC namezone = "Delivery3BC" namezonenum = 3 namezoneregion = 2 elseif MissionNum == 4 then destination = Config.Livraison.Delivery4BC namezone = "Delivery4BC" namezonenum = 4 namezoneregion = 2 elseif MissionNum == 5 then destination = Config.Livraison.Delivery5BC namezone = "Delivery5BC" namezonenum = 5 namezoneregion = 2 elseif MissionNum == 6 then destination = Config.Livraison.Delivery6BC namezone = "Delivery6BC" namezonenum = 6 namezoneregion = 2 elseif MissionNum == 7 then destination = Config.Livraison.Delivery7BC namezone = "Delivery7BC" namezonenum = 7 namezoneregion = 2 elseif MissionNum == 8 then destination = Config.Livraison.Delivery8BC namezone = "Delivery8BC" namezonenum = 8 namezoneregion = 2 elseif MissionNum == 9 then destination = Config.Livraison.Delivery9BC namezone = "Delivery9BC" namezonenum = 9 namezoneregion = 2 elseif MissionNum == 10 then destination = Config.Livraison.Delivery10BC namezone = "Delivery10BC" namezonenum = 10 namezoneregion = 2 end end MissionLivraisonLetsGo() end -- Fonction active mission livraison function MissionLivraisonLetsGo() if Blips['delivery'] ~= nil then RemoveBlip(Blips['delivery']) Blips['delivery'] = nil end if Blips['annulermission'] ~= nil then RemoveBlip(Blips['annulermission']) Blips['annulermission'] = nil end Blips['delivery'] = AddBlipForCoord(destination.Pos.x, destination.Pos.y, destination.Pos.z) SetBlipRoute(Blips['delivery'], true) BeginTextCommandSetBlipName("STRING") AddTextComponentString(_U('blip_delivery')) EndTextCommandSetBlipName(Blips['delivery']) Blips['annulermission'] = AddBlipForCoord(Config.Livraison.AnnulerMission.Pos.x, Config.Livraison.AnnulerMission.Pos.y, Config.Livraison.AnnulerMission.Pos.z) BeginTextCommandSetBlipName("STRING") AddTextComponentString(_U('blip_goal')) EndTextCommandSetBlipName(Blips['annulermission']) if MissionRegion == 1 then -- Los santos ESX.ShowNotification(_U('meet_ls')) elseif MissionRegion == 2 then -- Blaine County ESX.ShowNotification(_U('meet_bc')) elseif MissionRegion == 0 then -- au cas ou ESX.ShowNotification(_U('meet_del')) end MissionLivraison = true end --Fonction retour au depot function LLgRi7cWeUUu5zpB7dekZFapB2XdRCvM4N() destination = Config.Livraison.RetourCamion Blips['delivery'] = AddBlipForCoord(destination.Pos.x, destination.Pos.y, destination.Pos.z) SetBlipRoute(Blips['delivery'], true) BeginTextCommandSetBlipName("STRING") AddTextComponentString(_U('blip_depot')) EndTextCommandSetBlipName(Blips['delivery']) if Blips['annulermission'] ~= nil then RemoveBlip(Blips['annulermission']) Blips['annulermission'] = nil end ESX.ShowNotification(_U('return_depot')) MissionRegion = 0 MissionLivraison = false MissionNum = 0 MissionRetourCamion = true end function SavePlaqueVehicule() plaquevehicule = GetVehicleNumberPlateText(GetVehiclePedIsIn(GetPlayerPed(-1), false)) end function VerifPlaqueVehiculeActuel() plaquevehiculeactuel = GetVehicleNumberPlateText(GetVehiclePedIsIn(GetPlayerPed(-1), false)) end
Write, Run & Share Lua code online using OneCompiler's Lua online compiler for free. It's one of the robust, feature-rich online compilers for Lua language, running the latest Lua version 5.4. Getting started with the OneCompiler's Lua editor is easy and fast. The editor shows sample boilerplate code when you choose language as Lua and start coding.
OneCompiler's Lua online editor supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample Lua program which takes name as input and prints hello message with your name.
name = io.read("*a")
print ("Hello ", name)
Lua is a light weight embeddable scripting language which is built on top of C. It is used in almost all kind of applications like games, web applications, mobile applications, image processing etc. It's a very powerful, fast, easy to learn, open-source scripting language.
-- global variables
a = 10
-- local variables
local x = 30
Value Type | Description |
---|---|
number | Represents numbers |
string | Represents text |
nil | Differentiates values whether it has data or not |
boolean | Value can be either true or false |
function | Represents a sub-routine |
userdata | Represents arbitary C data |
thread | Represents independent threads of execution. |
table | Can hold any value except nil |
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while(condition)
do
--code
end
Repeat-Until is also used to iterate a set of statements based on a condition. It is very similar to Do-While, it is mostly used when you need to execute the statements atleast once.
repeat
--code
until( condition )
For loop is used to iterate a set of statements based on a condition.
for init,max/min value, increment
do
--code
end
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increase re-usuability and modularity.
optional_function_scope function function_name( argument1, argument2, argument3........, argumentn)
--code
return params with comma seperated
end