Notes
![]() ![]() Notes - notes.io |
ESX = nil
Citizen.CreateThread(function()
while not ESX do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(100)
end
end)
end
local isNearPump = false
local isFueling = false
local currentFuel = 0.0
local currentTutar = 0.0
local currentCash = 1000
local fuelSynced = false
local inBlacklisted = false
function ManageFuelUsage(vehicle)
if not DecorExistOn(vehicle, Config.FuelDecor) then
SetFuel(vehicle, math.random(200, 800) / 10)
elseif not fuelSynced then
SetFuel(vehicle, GetFuel(vehicle))
fuelSynced = true
end
if IsVehicleEngineOn(vehicle) then
SetFuel(vehicle, GetVehicleFuelLevel(vehicle) - Config.FuelUsage[Round(GetVehicleCurrentRpm(vehicle), 1)] * (Config.Classes[GetVehicleClass(vehicle)] or 1.0) / 10)
end
end
Citizen.CreateThread(function()
DecorRegister(Config.FuelDecor, 1)
for i = 1, #Config.Blacklist do
if type(Config.Blacklist[i]) == 'string' then
Config.Blacklist[GetHashKey(Config.Blacklist[i])] = true
else
Config.Blacklist[Config.Blacklist[i]] = true
end
end
for i = #Config.Blacklist, 1, -1 do
table.remove(Config.Blacklist, i)
end
while true do
Citizen.Wait(1000)
local ped = PlayerPedId()
if IsPedInAnyVehicle(ped) then
local vehicle = GetVehiclePedIsIn(ped)
if Config.Blacklist[GetEntityModel(vehicle)] then
inBlacklisted = true
else
inBlacklisted = false
end
if not inBlacklisted and GetPedInVehicleSeat(vehicle, -1) == ped then
ManageFuelUsage(vehicle)
end
else
if fuelSynced then
fuelSynced = false
end
if inBlacklisted then
inBlacklisted = false
end
end
end
end)
function FindNearestFuelPump()
local coords = GetEntityCoords(PlayerPedId())
local fuelPumps = {}
local handle, object = FindFirstObject()
local success
repeat
if Config.PumpModels[GetEntityModel(object)] then
table.insert(fuelPumps, object)
end
success, object = FindNextObject(handle, object)
until not success
EndFindObject(handle)
local pumpObject = 0
local pumpDistance = 1000
for k,v in pairs(fuelPumps) do
local dstcheck = GetDistanceBetweenCoords(coords, GetEntityCoords(v))
if dstcheck < pumpDistance then
pumpDistance = dstcheck
pumpObject = v
end
end
return pumpObject, pumpDistance
end
Citizen.CreateThread(function()
while true do
Citizen.Wait(250)
local pumpObject, pumpDistance = FindNearestFuelPump()
if pumpDistance < 2.5 then
isNearPump = pumpObject
if Config.UseESX then
currentCash = ESX.GetPlayerData().money
end
else
isNearPump = false
Citizen.Wait(math.ceil(pumpDistance * 20))
end
end
end)
function DrawText3Ds(x, y, z, text)
local onScreen,_x,_y=World3dToScreen2d(x,y,z)
local px,py,pz=table.unpack(GetGameplayCamCoords())
SetTextScale(0.35, 0.35)
SetTextFont(4)
SetTextProportional(1)
SetTextColour(255, 255, 255, 215)
SetTextEntry("STRING")
SetTextCentre(1)
AddTextComponentString(text)
DrawText(_x,_y)
end
function LoadAnimDict(dict)
if not HasAnimDictLoaded(dict) then
RequestAnimDict(dict)
while not HasAnimDictLoaded(dict) do
Citizen.Wait(1)
end
end
end
AddEventHandler('fuel:startFuelUpTick', function(pumpObject, ped, vehicle)
currentFuel = GetVehicleFuelLevel(vehicle)
while isFueling do
Citizen.Wait(500)
local oldFuel = DecorGetFloat(vehicle, Config.FuelDecor)
local fuelToAdd = math.random(10, 20) / 10.0
local extraTutar = fuelToAdd / 1.5
if not pumpObject then
if GetAmmoInPedWeapon(ped, 883325847) - fuelToAdd * 100 >= 0 then
currentFuel = oldFuel + fuelToAdd
SetPedAmmo(ped, 883325847, math.floor(GetAmmoInPedWeapon(ped, 883325847) - fuelToAdd * 100))
else
isFueling = false
end
else
currentFuel = oldFuel + fuelToAdd
end
if currentFuel > 100.0 then
currentFuel = 100.0
isFueling = false
end
currentTutar = currentTutar + extraTutar
if currentCash >= currentTutar then
SetFuel(vehicle, currentFuel)
else
isFueling = false
end
end
if pumpObject then
TriggerServerEvent('fuel:pay', currentTutar)
end
currentTutar = 0.0
end)
function Round(num, numDecimalPlaces)
local mult = 10^(numDecimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end
AddEventHandler('fuel:refuelFromPump', function(pumpObject, ped, vehicle)
TaskTurnPedToFaceEntity(ped, vehicle, 1000)
Citizen.Wait(1000)
SetCurrentPedWeapon(ped, -1569615261, true)
LoadAnimDict("timetable@gardener@filling_can")
TaskPlayAnim(ped, "timetable@gardener@filling_can", "gar_ig_5_filling_can", 2.0, 8.0, -1, 50, 0, 0, 0, 0)
TriggerEvent('fuel:startFuelUpTick', pumpObject, ped, vehicle)
while isFueling do
Citizen.Wait(1)
for k,v in pairs(Config.DisableKeys) do
DisableControlAction(0, v)
end
local vehicleCoords = GetEntityCoords(vehicle)
if pumpObject then
local stringCoords = GetEntityCoords(pumpObject)
local extraString = ""
if Config.UseESX then
extraString = "nTutar: ~g~$" .. Round(currentTutar, 1)
end
DrawText3Ds(stringCoords.x, stringCoords.y, stringCoords.z + 1.2, Config.Strings.CancelFuelingPump .. extraString)
DrawText3Ds(vehicleCoords.x, vehicleCoords.y, vehicleCoords.z + 0.5, Round(currentFuel, 1) .. "%")
else
DrawText3Ds(vehicleCoords.x, vehicleCoords.y, vehicleCoords.z + 0.5, Config.Strings.CancelFuelingJerryCan .. "nGas can: ~g~" .. Round(GetAmmoInPedWeapon(ped, 883325847) / 4500 * 100, 1) .. "% | Vehicle: " .. Round(currentFuel, 1) .. "%")
end
if not IsEntityPlayingAnim(ped, "timetable@gardener@filling_can", "gar_ig_5_filling_can", 3) then
TaskPlayAnim(ped, "timetable@gardener@filling_can", "gar_ig_5_filling_can", 2.0, 8.0, -1, 50, 0, 0, 0, 0)
end
if IsControlJustReleased(0, 38) or DoesEntityExist(GetPedInVehicleSeat(vehicle, -1)) or (isNearPump and GetEntityHealth(pumpObject) <= 0) then
isFueling = false
end
end
ClearPedTasks(ped)
RemoveAnimDict("timetable@gardener@filling_can")
end)
Citizen.CreateThread(function()
while true do
Citizen.Wait(1)
local ped = PlayerPedId()
if not isFueling and ((isNearPump and GetEntityHealth(isNearPump) > 0) or (GetSelectedPedWeapon(ped) == 883325847 and not isNearPump)) then
if IsPedInAnyVehicle(ped) and GetPedInVehicleSeat(GetVehiclePedIsIn(ped), -1) == ped then
local pumpCoords = GetEntityCoords(isNearPump)
DrawText3Ds(pumpCoords.x, pumpCoords.y, pumpCoords.z + 1.2, Config.Strings.ExitVehicle)
else
local vehicle = GetPlayersLastVehicle()
local vehicleCoords = GetEntityCoords(vehicle)
if DoesEntityExist(vehicle) and GetDistanceBetweenCoords(GetEntityCoords(ped), vehicleCoords) < 2.5 then
if not DoesEntityExist(GetPedInVehicleSeat(vehicle, -1)) then
local stringCoords = GetEntityCoords(isNearPump)
local canFuel = true
if GetSelectedPedWeapon(ped) == 883325847 then
stringCoords = vehicleCoords
if GetAmmoInPedWeapon(ped, 883325847) < 100 then
canFuel = false
end
end
if GetVehicleFuelLevel(vehicle) < 95 and canFuel then
if currentCash > 0 then
DrawText3Ds(stringCoords.x, stringCoords.y, stringCoords.z + 1.2, Config.Strings.EToRefuel)
if IsControlJustReleased(0, 38) then
isFueling = true
TriggerEvent('fuel:refuelFromPump', isNearPump, ped, vehicle)
LoadAnimDict("timetable@gardener@filling_can")
end
else
DrawText3Ds(stringCoords.x, stringCoords.y, stringCoords.z + 1.2, Config.Strings.NotEnoughCash)
end
elseif not canFuel then
DrawText3Ds(stringCoords.x, stringCoords.y, stringCoords.z + 1.2, Config.Strings.JerryCanEmpty)
else
DrawText3Ds(stringCoords.x, stringCoords.y, stringCoords.z + 1.2, Config.Strings.FullTank)
end
end
elseif isNearPump then
local stringCoords = GetEntityCoords(isNearPump)
if currentCash >= Config.JerryCanTutar then
if not HasPedGotWeapon(ped, 883325847) then
DrawText3Ds(stringCoords.x, stringCoords.y, stringCoords.z + 1.2, Config.Strings.PurchaseJerryCan)
if IsControlJustReleased(0, 38) then
GiveWeaponToPed(ped, 883325847, 4500, false, true)
TriggerServerEvent('fuel:pay', Config.JerryCanTutar)
currentCash = ESX.GetPlayerData().money
end
else
if Config.UseESX then
local refillTutar = Round(Config.RefillTutar * (1 - GetAmmoInPedWeapon(ped, 883325847) / 4500))
if refillTutar > 0 then
if currentCash >= refillTutar then
DrawText3Ds(stringCoords.x, stringCoords.y, stringCoords.z + 1.2, Config.Strings.RefillJerryCan .. refillTutar)
if IsControlJustReleased(0, 38) then
TriggerServerEvent('fuel:pay', refillTutar)
SetPedAmmo(ped, 883325847, 4500)
end
else
DrawText3Ds(stringCoords.x, stringCoords.y, stringCoords.z + 1.2, Config.Strings.NotEnoughCashJerryCan)
end
else
DrawText3Ds(stringCoords.x, stringCoords.y, stringCoords.z + 1.2, Config.Strings.JerryCanFull)
end
else
DrawText3Ds(stringCoords.x, stringCoords.y, stringCoords.z + 1.2, Config.Strings.RefillJerryCan)
if IsControlJustReleased(0, 38) then
SetPedAmmo(ped, 883325847, 4500)
end
end
end
else
DrawText3Ds(stringCoords.x, stringCoords.y, stringCoords.z + 1.2, Config.Strings.NotEnoughCash)
end
else
Citizen.Wait(250)
end
end
else
Citizen.Wait(250)
end
end
end)
function CreateBlip(coords)
local blip = AddBlipForCoord(coords)
SetBlipSprite(blip, 361)
SetBlipScale(blip, 0.9)
SetBlipColour(blip, 4)
SetBlipDisplay(blip, 4)
SetBlipAsShortRange(blip, true)
BeginTextCommandSetBlipName("STRING")
AddTextComponentString("Gas Station")
EndTextCommandSetBlipName(blip)
return blip
end
if Config.ShowNearestGasStationOnly then
Citizen.CreateThread(function()
local currentGasBlip = 0
while true do
Citizen.Wait(10000)
local coords = GetEntityCoords(PlayerPedId())
local closest = 1000
local closestCoords
for k,v in pairs(Config.GasStations) do
local dstcheck = GetDistanceBetweenCoords(coords, v)
if dstcheck < closest then
closest = dstcheck
closestCoords = v
end
end
if DoesBlipExist(currentGasBlip) then
RemoveBlip(currentGasBlip)
end
currentGasBlip = CreateBlip(closestCoords)
end
end)
elseif Config.ShowAllGasStations then
Citizen.CreateThread(function()
for k,v in pairs(Config.GasStations) do
CreateBlip(v)
end
end)
end
function GetFuel(vehicle)
return DecorGetFloat(vehicle, Config.FuelDecor)
end
function SetFuel(vehicle, fuel)
if type(fuel) == 'number' and fuel >= 0 and fuel <= 100 then
SetVehicleFuelLevel(vehicle, fuel + 0.0)
DecorSetFloat(vehicle, Config.FuelDecor, GetVehicleFuelLevel(vehicle))
end
end
if Config.EnableHUD then
local function DrawAdvancedText(x,y ,w,h,sc, text, r,g,b,a,font,jus)
SetTextFont(font)
SetTextProportional(0)
SetTextScale(sc, sc)
N_0x4e096588b13ffeca(jus)
SetTextColour(r, g, b, a)
SetTextDropShadow(0, 0, 0, 0,255)
SetTextEdge(1, 0, 0, 0, 255)
SetTextDropShadow()
SetTextOutline()
SetTextEntry("STRING")
AddTextComponentString(text)
DrawText(x - 0.1+w, y - 0.02+h)
end
local mph = 0
local kmh = 0
local fuel = 0
local displayHud = false
local x = 0.01135
local y = 0.002
Citizen.CreateThread(function()
while true do
Citizen.Wait(50)
local ped = PlayerPedId()
if IsPedInAnyVehicle(ped) and not (Config.RemoveHUDForBlacklistedVehicle and inBlacklisted) then
local vehicle = GetVehiclePedIsIn(ped)
local speed = GetEntitySpeed(vehicle)
mph = tostring(math.ceil(speed * 2.236936))
kmh = tostring(math.ceil(speed * 3.6))
fuel = tostring(math.ceil(GetVehicleFuelLevel(vehicle)))
displayHud = true
else
displayHud = false
Citizen.Wait(500)
end
end
end)
Citizen.CreateThread(function()
while true do
Citizen.Wait(1)
if displayHud then
DrawAdvancedText(0.130 - x, 0.77 - y, 0.005, 0.0028, 0.6, mph, 255, 255, 255, 255, 6, 1)
DrawAdvancedText(0.174 - x, 0.77 - y, 0.005, 0.0028, 0.6, kmh, 255, 255, 255, 255, 6, 1)
DrawAdvancedText(0.2195 - x, 0.77 - y, 0.005, 0.0028, 0.6, fuel, 255, 255, 255, 255, 6, 1)
DrawAdvancedText(0.148 - x, 0.7765 - y, 0.005, 0.0028, 0.4, "mp/h km/h Fuel", 255, 255, 255, 255, 6, 1)
else
Citizen.Wait(750)
end
end
end)
end
![]() |
Notes is a web-based application for online taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000+ notes created and continuing...
With notes.io;
- * You can take a note from anywhere and any device with internet connection.
- * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
- * You can quickly share your contents without website, blog and e-mail.
- * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
- * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.
Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.
Easy: Notes.io doesn’t require installation. Just write and share note!
Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )
Free: Notes.io works for 14 years and has been free since the day it was started.
You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;
Email: [email protected]
Twitter: http://twitter.com/notesio
Instagram: http://instagram.com/notes.io
Facebook: http://facebook.com/notesio
Regards;
Notes.io Team