├── ESX
└── esx_trew_hud
│ ├── html
│ ├── img
│ │ ├── weapons
│ │ │ ├── bat.png
│ │ │ ├── mg.png
│ │ │ ├── rpg.png
│ │ │ ├── smg.png
│ │ │ ├── ball.png
│ │ │ ├── bzgas.png
│ │ │ ├── flare.png
│ │ │ ├── knife.png
│ │ │ ├── appistol.png
│ │ │ ├── bottle.png
│ │ │ ├── combatmg.png
│ │ │ ├── crowbar.png
│ │ │ ├── dagger.png
│ │ │ ├── firework.png
│ │ │ ├── flaregun.png
│ │ │ ├── golfclub.png
│ │ │ ├── grenade.png
│ │ │ ├── hammer.png
│ │ │ ├── hatchet.png
│ │ │ ├── knuckle.png
│ │ │ ├── machete.png
│ │ │ ├── microsmg.png
│ │ │ ├── minigun.png
│ │ │ ├── minismg.png
│ │ │ ├── molotov.png
│ │ │ ├── musket.png
│ │ │ ├── pipebomb.png
│ │ │ ├── pistol.png
│ │ │ ├── pistol50.png
│ │ │ ├── poolcue.png
│ │ │ ├── proxmine.png
│ │ │ ├── railgun.png
│ │ │ ├── revolver.png
│ │ │ ├── smg_mk2.png
│ │ │ ├── snowball.png
│ │ │ ├── stungun.png
│ │ │ ├── unarmed.png
│ │ │ ├── wrench.png
│ │ │ ├── assaultsmg.png
│ │ │ ├── battleaxe.png
│ │ │ ├── combatpdw.png
│ │ │ ├── dbshotgun.png
│ │ │ ├── flashlight.png
│ │ │ ├── gusenberg.png
│ │ │ ├── nightstick.png
│ │ │ ├── petrolcan.png
│ │ │ ├── pistol_mk2.png
│ │ │ ├── raycarbine.png
│ │ │ ├── rayminigun.png
│ │ │ ├── raypistol.png
│ │ │ ├── snspistol.png
│ │ │ ├── stickybomb.png
│ │ │ ├── advancedrifle.png
│ │ │ ├── assaultrifle.png
│ │ │ ├── autoshotgun.png
│ │ │ ├── bullpuprifle.png
│ │ │ ├── carbinerifle.png
│ │ │ ├── combatmg_mk2.png
│ │ │ ├── combatpistol.png
│ │ │ ├── compactrifle.png
│ │ │ ├── doubleaction.png
│ │ │ ├── heavypistol.png
│ │ │ ├── heavyshotgun.png
│ │ │ ├── heavysniper.png
│ │ │ ├── machinepistol.png
│ │ │ ├── marksmanrifle.png
│ │ │ ├── pumpshotgun.png
│ │ │ ├── revolver_mk2.png
│ │ │ ├── smokegrenade.png
│ │ │ ├── sniperrifle.png
│ │ │ ├── snspistol_mk2.png
│ │ │ ├── stone_hatchet.png
│ │ │ ├── switchblade.png
│ │ │ ├── vintagepistol.png
│ │ │ ├── assaultshotgun.png
│ │ │ ├── bullpupshotgun.png
│ │ │ ├── compactlauncher.png
│ │ │ ├── grenadelauncher.png
│ │ │ ├── heavysniper_mk2.png
│ │ │ ├── hominglauncher.png
│ │ │ ├── marksmanpistol.png
│ │ │ ├── pumpshotgun_mk2.png
│ │ │ ├── sawnoffshotgun.png
│ │ │ ├── specialcarbine.png
│ │ │ ├── assaultrifle_mk2.png
│ │ │ ├── bullpuprifle_mk2.png
│ │ │ ├── carbinerifle_mk2.png
│ │ │ ├── marksmanrifle_mk2.png
│ │ │ ├── specialcarbine_mk2.png
│ │ │ └── grenadelauncher_smoke.png
│ │ ├── vehicle-gear.png
│ │ ├── vehicle-lights.png
│ │ ├── vehicle-seatbelt.png
│ │ ├── weapon-bullets.png
│ │ └── vehicle-lights-high.png
│ ├── sounds
│ │ ├── car-indicators.ogg
│ │ ├── seatbelt-buckle.ogg
│ │ └── seatbelt-unbuckle.ogg
│ ├── ui.html
│ ├── main.css
│ └── app.js
│ ├── config.lua
│ ├── README.md
│ ├── locales
│ ├── br.lua
│ ├── en.lua
│ └── es.lua
│ ├── fxmanifest.lua
│ └── client
│ └── client.lua
├── QBCore
└── qb_trew_hud
│ ├── html
│ ├── img
│ │ ├── weapons
│ │ │ ├── bat.png
│ │ │ ├── mg.png
│ │ │ ├── rpg.png
│ │ │ ├── smg.png
│ │ │ ├── ball.png
│ │ │ ├── bottle.png
│ │ │ ├── bzgas.png
│ │ │ ├── dagger.png
│ │ │ ├── flare.png
│ │ │ ├── hammer.png
│ │ │ ├── knife.png
│ │ │ ├── musket.png
│ │ │ ├── pistol.png
│ │ │ ├── wrench.png
│ │ │ ├── appistol.png
│ │ │ ├── combatmg.png
│ │ │ ├── crowbar.png
│ │ │ ├── firework.png
│ │ │ ├── flaregun.png
│ │ │ ├── golfclub.png
│ │ │ ├── grenade.png
│ │ │ ├── hatchet.png
│ │ │ ├── knuckle.png
│ │ │ ├── machete.png
│ │ │ ├── microsmg.png
│ │ │ ├── minigun.png
│ │ │ ├── minismg.png
│ │ │ ├── molotov.png
│ │ │ ├── pipebomb.png
│ │ │ ├── pistol50.png
│ │ │ ├── poolcue.png
│ │ │ ├── proxmine.png
│ │ │ ├── railgun.png
│ │ │ ├── revolver.png
│ │ │ ├── smg_mk2.png
│ │ │ ├── snowball.png
│ │ │ ├── stungun.png
│ │ │ ├── unarmed.png
│ │ │ ├── assaultsmg.png
│ │ │ ├── autoshotgun.png
│ │ │ ├── battleaxe.png
│ │ │ ├── combatpdw.png
│ │ │ ├── dbshotgun.png
│ │ │ ├── flashlight.png
│ │ │ ├── gusenberg.png
│ │ │ ├── heavypistol.png
│ │ │ ├── heavysniper.png
│ │ │ ├── nightstick.png
│ │ │ ├── petrolcan.png
│ │ │ ├── pistol_mk2.png
│ │ │ ├── pumpshotgun.png
│ │ │ ├── raycarbine.png
│ │ │ ├── rayminigun.png
│ │ │ ├── raypistol.png
│ │ │ ├── sniperrifle.png
│ │ │ ├── snspistol.png
│ │ │ ├── stickybomb.png
│ │ │ ├── switchblade.png
│ │ │ ├── advancedrifle.png
│ │ │ ├── assaultrifle.png
│ │ │ ├── bullpuprifle.png
│ │ │ ├── carbinerifle.png
│ │ │ ├── combatmg_mk2.png
│ │ │ ├── combatpistol.png
│ │ │ ├── compactrifle.png
│ │ │ ├── doubleaction.png
│ │ │ ├── heavyshotgun.png
│ │ │ ├── machinepistol.png
│ │ │ ├── marksmanrifle.png
│ │ │ ├── revolver_mk2.png
│ │ │ ├── smokegrenade.png
│ │ │ ├── snspistol_mk2.png
│ │ │ ├── stone_hatchet.png
│ │ │ ├── vintagepistol.png
│ │ │ ├── assaultrifle_mk2.png
│ │ │ ├── assaultshotgun.png
│ │ │ ├── bullpuprifle_mk2.png
│ │ │ ├── bullpupshotgun.png
│ │ │ ├── carbinerifle_mk2.png
│ │ │ ├── compactlauncher.png
│ │ │ ├── grenadelauncher.png
│ │ │ ├── heavysniper_mk2.png
│ │ │ ├── hominglauncher.png
│ │ │ ├── marksmanpistol.png
│ │ │ ├── pumpshotgun_mk2.png
│ │ │ ├── sawnoffshotgun.png
│ │ │ ├── specialcarbine.png
│ │ │ ├── marksmanrifle_mk2.png
│ │ │ ├── specialcarbine_mk2.png
│ │ │ └── grenadelauncher_smoke.png
│ │ ├── vehicle-gear.png
│ │ ├── vehicle-lights.png
│ │ ├── weapon-bullets.png
│ │ ├── vehicle-seatbelt.png
│ │ └── vehicle-lights-high.png
│ ├── sounds
│ │ ├── car-indicators.ogg
│ │ ├── seatbelt-buckle.ogg
│ │ └── seatbelt-unbuckle.ogg
│ ├── ui.html
│ ├── main.css
│ └── app.js
│ ├── translation.lua
│ ├── config.lua
│ ├── README.md
│ ├── locales
│ ├── br.lua
│ ├── es.lua
│ └── en.lua
│ ├── fxmanifest.lua
│ └── client
│ └── client.lua
└── README.md
/ESX/esx_trew_hud/html/img/weapons/bat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/bat.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/mg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/mg.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/rpg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/rpg.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/smg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/smg.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/vehicle-gear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/vehicle-gear.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/ball.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/ball.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/bzgas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/bzgas.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/flare.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/flare.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/knife.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/knife.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/bat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/bat.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/mg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/mg.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/rpg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/rpg.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/smg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/smg.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/vehicle-lights.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/vehicle-lights.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/vehicle-seatbelt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/vehicle-seatbelt.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapon-bullets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapon-bullets.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/appistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/appistol.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/bottle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/bottle.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/combatmg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/combatmg.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/crowbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/crowbar.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/dagger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/dagger.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/firework.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/firework.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/flaregun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/flaregun.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/golfclub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/golfclub.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/grenade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/grenade.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/hammer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/hammer.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/hatchet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/hatchet.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/knuckle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/knuckle.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/machete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/machete.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/microsmg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/microsmg.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/minigun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/minigun.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/minismg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/minismg.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/molotov.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/molotov.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/musket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/musket.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/pipebomb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/pipebomb.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/pistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/pistol.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/pistol50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/pistol50.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/poolcue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/poolcue.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/proxmine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/proxmine.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/railgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/railgun.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/revolver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/revolver.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/smg_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/smg_mk2.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/snowball.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/snowball.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/stungun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/stungun.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/unarmed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/unarmed.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/wrench.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/wrench.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/vehicle-gear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/vehicle-gear.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/vehicle-lights.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/vehicle-lights.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapon-bullets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapon-bullets.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/ball.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/ball.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/bottle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/bottle.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/bzgas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/bzgas.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/dagger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/dagger.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/flare.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/flare.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/hammer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/hammer.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/knife.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/knife.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/musket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/musket.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/pistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/pistol.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/wrench.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/wrench.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/assaultsmg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/assaultsmg.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/battleaxe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/battleaxe.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/combatpdw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/combatpdw.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/dbshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/dbshotgun.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/flashlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/flashlight.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/gusenberg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/gusenberg.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/nightstick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/nightstick.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/petrolcan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/petrolcan.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/pistol_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/pistol_mk2.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/raycarbine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/raycarbine.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/rayminigun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/rayminigun.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/raypistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/raypistol.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/snspistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/snspistol.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/stickybomb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/stickybomb.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/sounds/car-indicators.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/sounds/car-indicators.ogg
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/sounds/seatbelt-buckle.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/sounds/seatbelt-buckle.ogg
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/vehicle-seatbelt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/vehicle-seatbelt.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/appistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/appistol.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/combatmg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/combatmg.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/crowbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/crowbar.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/firework.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/firework.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/flaregun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/flaregun.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/golfclub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/golfclub.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/grenade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/grenade.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/hatchet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/hatchet.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/knuckle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/knuckle.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/machete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/machete.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/microsmg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/microsmg.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/minigun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/minigun.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/minismg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/minismg.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/molotov.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/molotov.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/pipebomb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/pipebomb.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/pistol50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/pistol50.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/poolcue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/poolcue.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/proxmine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/proxmine.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/railgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/railgun.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/revolver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/revolver.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/smg_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/smg_mk2.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/snowball.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/snowball.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/stungun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/stungun.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/unarmed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/unarmed.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/vehicle-lights-high.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/vehicle-lights-high.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/advancedrifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/advancedrifle.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/assaultrifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/assaultrifle.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/autoshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/autoshotgun.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/bullpuprifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/bullpuprifle.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/carbinerifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/carbinerifle.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/combatmg_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/combatmg_mk2.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/combatpistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/combatpistol.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/compactrifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/compactrifle.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/doubleaction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/doubleaction.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/heavypistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/heavypistol.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/heavyshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/heavyshotgun.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/heavysniper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/heavysniper.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/machinepistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/machinepistol.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/marksmanrifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/marksmanrifle.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/pumpshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/pumpshotgun.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/revolver_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/revolver_mk2.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/smokegrenade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/smokegrenade.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/sniperrifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/sniperrifle.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/snspistol_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/snspistol_mk2.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/stone_hatchet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/stone_hatchet.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/switchblade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/switchblade.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/vintagepistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/vintagepistol.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/sounds/seatbelt-unbuckle.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/sounds/seatbelt-unbuckle.ogg
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/vehicle-lights-high.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/vehicle-lights-high.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/assaultsmg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/assaultsmg.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/autoshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/autoshotgun.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/battleaxe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/battleaxe.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/combatpdw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/combatpdw.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/dbshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/dbshotgun.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/flashlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/flashlight.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/gusenberg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/gusenberg.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/heavypistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/heavypistol.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/heavysniper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/heavysniper.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/nightstick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/nightstick.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/petrolcan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/petrolcan.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/pistol_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/pistol_mk2.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/pumpshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/pumpshotgun.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/raycarbine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/raycarbine.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/rayminigun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/rayminigun.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/raypistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/raypistol.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/sniperrifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/sniperrifle.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/snspistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/snspistol.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/stickybomb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/stickybomb.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/switchblade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/switchblade.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/sounds/car-indicators.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/sounds/car-indicators.ogg
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/sounds/seatbelt-buckle.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/sounds/seatbelt-buckle.ogg
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/assaultshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/assaultshotgun.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/bullpupshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/bullpupshotgun.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/compactlauncher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/compactlauncher.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/grenadelauncher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/grenadelauncher.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/heavysniper_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/heavysniper_mk2.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/hominglauncher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/hominglauncher.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/marksmanpistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/marksmanpistol.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/pumpshotgun_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/pumpshotgun_mk2.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/sawnoffshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/sawnoffshotgun.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/specialcarbine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/specialcarbine.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/advancedrifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/advancedrifle.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/assaultrifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/assaultrifle.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/bullpuprifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/bullpuprifle.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/carbinerifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/carbinerifle.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/combatmg_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/combatmg_mk2.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/combatpistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/combatpistol.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/compactrifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/compactrifle.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/doubleaction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/doubleaction.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/heavyshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/heavyshotgun.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/machinepistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/machinepistol.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/marksmanrifle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/marksmanrifle.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/revolver_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/revolver_mk2.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/smokegrenade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/smokegrenade.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/snspistol_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/snspistol_mk2.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/stone_hatchet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/stone_hatchet.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/vintagepistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/vintagepistol.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/sounds/seatbelt-unbuckle.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/sounds/seatbelt-unbuckle.ogg
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/assaultrifle_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/assaultrifle_mk2.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/bullpuprifle_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/bullpuprifle_mk2.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/carbinerifle_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/carbinerifle_mk2.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/marksmanrifle_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/marksmanrifle_mk2.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/specialcarbine_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/specialcarbine_mk2.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/assaultrifle_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/assaultrifle_mk2.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/assaultshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/assaultshotgun.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/bullpuprifle_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/bullpuprifle_mk2.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/bullpupshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/bullpupshotgun.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/carbinerifle_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/carbinerifle_mk2.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/compactlauncher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/compactlauncher.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/grenadelauncher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/grenadelauncher.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/heavysniper_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/heavysniper_mk2.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/hominglauncher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/hominglauncher.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/marksmanpistol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/marksmanpistol.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/pumpshotgun_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/pumpshotgun_mk2.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/sawnoffshotgun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/sawnoffshotgun.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/specialcarbine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/specialcarbine.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/marksmanrifle_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/marksmanrifle_mk2.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/specialcarbine_mk2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/specialcarbine_mk2.png
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/img/weapons/grenadelauncher_smoke.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/ESX/esx_trew_hud/html/img/weapons/grenadelauncher_smoke.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/img/weapons/grenadelauncher_smoke.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Mycroft-Studios/trew_hud-remastered/HEAD/QBCore/qb_trew_hud/html/img/weapons/grenadelauncher_smoke.png
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/translation.lua:
--------------------------------------------------------------------------------
1 | -- credit: https://github.com/esx-framework/esx_core/blob/main/%5Bcore%5D/es_extended/locale.lua
2 | Locales = {}
3 |
4 | function Translate(str, ...) -- Translate string
5 | if Locales[Config.Locale] then
6 | if Locales[Config.Locale][str] then
7 | return string.format(Locales[Config.Locale][str], ...)
8 | elseif Config.Locale ~= 'en' and Locales['en'] and Locales['en'][str] then
9 | return string.format(Locales['en'][str], ...)
10 | else
11 | return 'Translation [' .. Config.Locale .. '][' .. str .. '] does not exist'
12 | end
13 | elseif Config.Locale ~= 'en' and Locales['en'] and Locales['en'][str] then
14 | return string.format(Locales['en'][str], ...)
15 | else
16 | return 'Locale [' .. Config.Locale .. '] does not exist'
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/config.lua:
--------------------------------------------------------------------------------
1 | Config = {}
2 |
3 | Config.Locale = 'en'
4 |
5 | Config.serverLogo = 'https://i.imgur.com/9a3Tj94.png'
6 |
7 | Config.font = {
8 | name = 'Signika Negative',
9 | url = 'https://fonts.googleapis.com/css2?family=Signika+Negative&display=swap'
10 | }
11 |
12 | Config.date = {
13 | format = 'default',
14 | AmPm = false
15 | }
16 |
17 | Config.vehicle = {
18 | speedUnit = 'MPH',
19 | maxSpeed = 180,
20 |
21 | keys = {
22 | seatbelt = 'K',
23 | cruiser = 'CAPS',
24 | signalLeft = 'LEFT',
25 | signalRight = 'RIGHT',
26 | signalBoth = 'DOWN',
27 | }
28 | }
29 |
30 | Config.ui = {
31 | showServerLogo = false,
32 |
33 | showJob = true,
34 |
35 | showWalletMoney = true,
36 | showBankMoney = true,
37 | showBlackMoney = false,
38 | showSocietyMoney = true,
39 |
40 | showDate = true,
41 | showLocation = true,
42 | showVoice = true,
43 |
44 | showHealth = true,
45 | showArmor = true,
46 | showStamina = true,
47 | showHunger = true,
48 | showThirst = true,
49 | showID = true,
50 |
51 | showMinimapOnFoot = false,
52 | showMinimapInVehicle = true,
53 | showMinimapHealth = false,
54 |
55 | showWeapons = true,
56 | }
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/config.lua:
--------------------------------------------------------------------------------
1 | Config = {}
2 |
3 | Config.Locale = 'en'
4 |
5 | Config.serverLogo = 'https://i.imgur.com/9a3Tj94.png'
6 |
7 | Config.font = {
8 | name = 'Signika Negative',
9 | url = 'https://fonts.googleapis.com/css2?family=Signika+Negative&display=swap'
10 | }
11 |
12 | Config.date = {
13 | format = 'default',
14 | AmPm = false
15 | }
16 |
17 | Config.vehicle = {
18 | speedUnit = 'MPH',
19 | maxSpeed = 180,
20 |
21 | keys = {
22 | seatbelt = 'K',
23 | cruiser = 'CAPS',
24 | signalLeft = 'LEFT',
25 | signalRight = 'RIGHT',
26 | signalBoth = 'DOWN',
27 | }
28 | }
29 |
30 | Config.ui = {
31 | showServerLogo = false,
32 |
33 | showJob = true,
34 |
35 | showWalletMoney = true,
36 | showBankMoney = true,
37 | showCrypto = false,
38 | showSocietyMoney = true,
39 |
40 | showDate = true,
41 | showLocation = true,
42 | showVoice = true,
43 |
44 | showHealth = true,
45 | showArmor = true,
46 | showStamina = true,
47 | showHunger = true,
48 | showThirst = true,
49 | showStress = true,
50 | showID = true,
51 |
52 | showMinimapOnFoot = false,
53 | showMinimapInVehicle = true,
54 | showMinimapHealth = false,
55 |
56 | showWeapons = true,
57 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
[ESX/QB] Trew Hud
2023 Remaster By Mycroft
2 |
3 | One of the most, if not **the most**, popular hud for FiveM brought back with a new life - running with 0.03-0.05ms resmon and 2023 Resource support!
4 |
5 | ## Major Changes
6 |
7 | ```diff
8 | + PMA Voice Support
9 | + ESX Legacy Support
10 | + Rewrote major sections
11 | + Completely Optimised
12 | + Better Font
13 | + Completely Client-Sided
14 | + Added Player Id to HUD
15 | + Added QBCore Support (Including Stress and Crypto!)
16 | - Removed Unused Code
17 | - Removed Unused Files
18 | - Removed vRP support
19 | ```
20 |
21 | # Preview
22 |
23 | [](https://streamable.com/rhrrn6)
24 |
25 | ## Installation
26 |
27 | 1. Extract/Open the .zip.
28 | 2. Place `trew_hud-remastered` in your resources directory.
29 | 3. Add `ensure trew_hud-remastered` to your server.cfg
30 |
31 | ### ESX
32 |
33 | #### Requirements
34 |
35 | - [ESX Legacy](https://github.com/esx-framework/esx_core)
36 | - [ESX Society](https://github.com/esx-framework/esx_society)
37 | - [ESX Addon Account](https://github.com/esx-framework/esx_addonaccount)
38 |
39 | #### Optional
40 |
41 | - [esx_basicneeds](https://github.com/esx-framework/esx_basicneeds)
42 | - [esx_status](https://github.com/esx-framework/esx_status)
43 |
44 | ### QBCore
45 |
46 | #### Requirements
47 |
48 | - [QBCore](https://github.com/qbcore-framework/qb-core)
49 | - [qb-management](https://github.com/qbcore-framework/qb-management)
50 |
51 | ## Commands
52 |
53 | **/toggleui**
54 | Enables/Disables HUD information elements, like _and job all types money_. Useful for streamers.
55 |
56 | _**Usage example:**_ /toggleui
57 |
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/README.md:
--------------------------------------------------------------------------------
1 | [ESX/QB] Trew Hud
2023 Remaster By Mycroft
2 |
3 | One of the most, if not **the most**, popular hud for FiveM brought back with a new life - running with 0.03-0.05ms resmon and 2023 Resource support!
4 |
5 | ## Major Changes
6 |
7 | ```diff
8 | + PMA Voice Support
9 | + ESX Legacy Support
10 | + Rewrote major sections
11 | + Completely Optimised
12 | + Better Font
13 | + Completely Client-Sided
14 | + Added Player Id to HUD
15 | + Added QBCore Support (Including Stress and Crypto!)
16 | - Removed Unused Code
17 | - Removed Unused Files
18 | - Removed vRP support
19 | ```
20 |
21 | # Preview
22 |
23 | [](https://streamable.com/rhrrn6)
24 |
25 | ## Installation
26 |
27 | 1. Extract/Open the .zip.
28 | 2. Place `trew_hud-remastered` in your resources directory.
29 | 3. Add `ensure trew_hud-remastered` to your server.cfg
30 |
31 | ### ESX
32 |
33 | #### Requirements
34 |
35 | - [ESX Legacy](https://github.com/esx-framework/esx_core)
36 | - [ESX Society](https://github.com/esx-framework/esx_society)
37 | - [ESX Addon Account](https://github.com/esx-framework/esx_addonaccount)
38 |
39 | #### Optional
40 |
41 | - [esx_basicneeds](https://github.com/esx-framework/esx_basicneeds)
42 | - [esx_status](https://github.com/esx-framework/esx_status)
43 |
44 | ### QBCore
45 |
46 | #### Requirements
47 |
48 | - [QBCore](https://github.com/qbcore-framework/qb-core)
49 | - [qb-management](https://github.com/qbcore-framework/qb-management)
50 |
51 | ## Commands
52 |
53 | **/toggleui**
54 | Enables/Disables HUD information elements, like _and job all types money_. Useful for streamers.
55 |
56 | _**Usage example:**_ /toggleui
57 |
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/README.md:
--------------------------------------------------------------------------------
1 | [ESX/QB] Trew Hud
2023 Remaster By Mycroft
2 |
3 | One of the most, if not **the most**, popular hud for FiveM brought back with a new life - running with 0.03-0.05ms resmon and 2023 Resource support!
4 |
5 | ## Major Changes
6 |
7 | ```diff
8 | + PMA Voice Support
9 | + ESX Legacy Support
10 | + Rewrote major sections
11 | + Completely Optimised
12 | + Better Font
13 | + Completely Client-Sided
14 | + Added Player Id to HUD
15 | + Added QBCore Support (Including Stress and Crypto!)
16 | - Removed Unused Code
17 | - Removed Unused Files
18 | - Removed vRP support
19 | ```
20 |
21 | # Preview
22 |
23 | [](https://streamable.com/rhrrn6)
24 |
25 | ## Installation
26 |
27 | 1. Extract/Open the .zip.
28 | 2. Place `trew_hud-remastered` in your resources directory.
29 | 3. Add `ensure trew_hud-remastered` to your server.cfg
30 |
31 | ### ESX
32 |
33 | #### Requirements
34 |
35 | - [ESX Legacy](https://github.com/esx-framework/esx_core)
36 | - [ESX Society](https://github.com/esx-framework/esx_society)
37 | - [ESX Addon Account](https://github.com/esx-framework/esx_addonaccount)
38 |
39 | #### Optional
40 |
41 | - [esx_basicneeds](https://github.com/esx-framework/esx_basicneeds)
42 | - [esx_status](https://github.com/esx-framework/esx_status)
43 |
44 | ### QBCore
45 |
46 | #### Requirements
47 |
48 | - [QBCore](https://github.com/qbcore-framework/qb-core)
49 | - [qb-management](https://github.com/qbcore-framework/qb-management)
50 |
51 | ## Commands
52 |
53 | **/toggleui**
54 | Enables/Disables HUD information elements, like _and job all types money_. Useful for streamers.
55 |
56 | _**Usage example:**_ /toggleui
57 |
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/locales/br.lua:
--------------------------------------------------------------------------------
1 | Locales['br'] = {
2 | ['you_are_on_location'] = 'Você está em %s',
3 |
4 | ['date_format'] = {
5 | default = 'Hoje é %s de %s de %s',
6 | simple = 'Hoje é %s de %s',
7 | simpleWithHours = 'São %s do dia %s de %s',
8 | withWeekday = 'Hoje é %s, %s de %s de %s',
9 | withHours = 'São %s do dia %s de %s de %s',
10 | withWeekdayAndHours = 'São %s de %s, %s de %s de %s'
11 | },
12 |
13 | ['weekDay_0'] = 'Domingo',
14 | ['weekDay_1'] = 'Segunda-feira',
15 | ['weekDay_2'] = 'Terça-feira',
16 | ['weekDay_3'] = 'Quarta-feira',
17 | ['weekDay_4'] = 'Quinta-feira',
18 | ['weekDay_5'] = 'Sexta-feira',
19 | ['weekDay_6'] = 'Sábado',
20 |
21 | ['day_1'] = '1',
22 | ['day_2'] = '2',
23 | ['day_3'] = '3',
24 | ['day_4'] = '4',
25 | ['day_5'] = '5',
26 | ['day_6'] = '6',
27 | ['day_7'] = '7',
28 | ['day_8'] = '8',
29 | ['day_9'] = '9',
30 |
31 | ['day_10'] = '10',
32 | ['day_11'] = '11',
33 | ['day_12'] = '12',
34 | ['day_13'] = '13',
35 | ['day_14'] = '14',
36 | ['day_15'] = '15',
37 | ['day_16'] = '16',
38 | ['day_17'] = '17',
39 | ['day_18'] = '18',
40 | ['day_19'] = '19',
41 |
42 | ['day_20'] = '20',
43 | ['day_21'] = '21',
44 | ['day_22'] = '22',
45 | ['day_23'] = '23',
46 | ['day_24'] = '24',
47 | ['day_25'] = '25',
48 | ['day_26'] = '26',
49 | ['day_27'] = '27',
50 | ['day_28'] = '28',
51 | ['day_29'] = '29',
52 |
53 | ['day_30'] = '30',
54 | ['day_31'] = '31',
55 |
56 | ['month_0'] = 'Janeiro',
57 | ['month_1'] = 'Fevereiro',
58 | ['month_2'] = 'Março',
59 | ['month_3'] = 'Abril',
60 | ['month_4'] = 'Maio',
61 | ['month_5'] = 'Junho',
62 | ['month_6'] = 'Julho',
63 | ['month_7'] = 'Agosto',
64 | ['month_8'] = 'Setembro',
65 | ['month_9'] = 'Outubro',
66 | ['month_10'] = 'Novembro',
67 | ['month_11'] = 'Dezembro',
68 |
69 | ['toggleui'] = 'Habilita/Desabilita parte da HUD',
70 |
71 | }
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/locales/br.lua:
--------------------------------------------------------------------------------
1 | Locales['br'] = {
2 | ['you_are_on_location'] = 'Você está em %s',
3 |
4 | ['date_format'] = {
5 | default = 'Hoje é %s de %s de %s',
6 | simple = 'Hoje é %s de %s',
7 | simpleWithHours = 'São %s do dia %s de %s',
8 | withWeekday = 'Hoje é %s, %s de %s de %s',
9 | withHours = 'São %s do dia %s de %s de %s',
10 | withWeekdayAndHours = 'São %s de %s, %s de %s de %s'
11 | },
12 |
13 | ['weekDay_0'] = 'Domingo',
14 | ['weekDay_1'] = 'Segunda-feira',
15 | ['weekDay_2'] = 'Terça-feira',
16 | ['weekDay_3'] = 'Quarta-feira',
17 | ['weekDay_4'] = 'Quinta-feira',
18 | ['weekDay_5'] = 'Sexta-feira',
19 | ['weekDay_6'] = 'Sábado',
20 |
21 | ['day_1'] = '1',
22 | ['day_2'] = '2',
23 | ['day_3'] = '3',
24 | ['day_4'] = '4',
25 | ['day_5'] = '5',
26 | ['day_6'] = '6',
27 | ['day_7'] = '7',
28 | ['day_8'] = '8',
29 | ['day_9'] = '9',
30 |
31 | ['day_10'] = '10',
32 | ['day_11'] = '11',
33 | ['day_12'] = '12',
34 | ['day_13'] = '13',
35 | ['day_14'] = '14',
36 | ['day_15'] = '15',
37 | ['day_16'] = '16',
38 | ['day_17'] = '17',
39 | ['day_18'] = '18',
40 | ['day_19'] = '19',
41 |
42 | ['day_20'] = '20',
43 | ['day_21'] = '21',
44 | ['day_22'] = '22',
45 | ['day_23'] = '23',
46 | ['day_24'] = '24',
47 | ['day_25'] = '25',
48 | ['day_26'] = '26',
49 | ['day_27'] = '27',
50 | ['day_28'] = '28',
51 | ['day_29'] = '29',
52 |
53 | ['day_30'] = '30',
54 | ['day_31'] = '31',
55 |
56 | ['month_0'] = 'Janeiro',
57 | ['month_1'] = 'Fevereiro',
58 | ['month_2'] = 'Março',
59 | ['month_3'] = 'Abril',
60 | ['month_4'] = 'Maio',
61 | ['month_5'] = 'Junho',
62 | ['month_6'] = 'Julho',
63 | ['month_7'] = 'Agosto',
64 | ['month_8'] = 'Setembro',
65 | ['month_9'] = 'Outubro',
66 | ['month_10'] = 'Novembro',
67 | ['month_11'] = 'Dezembro',
68 |
69 | ['toggleui'] = 'Habilita/Desabilita parte da HUD',
70 |
71 | }
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/locales/en.lua:
--------------------------------------------------------------------------------
1 | -- English
2 | Locales['en'] = {
3 | ['you_are_on_location'] = 'You are on %s',
4 |
5 | ['date_format'] = {
6 | default = 'Today is %s of %s, %s',
7 | simple = 'Today is %s, %s',
8 | simpleWithHours = 'It is %s, %s, %s',
9 | withWeekday = 'Today is %s, %s of %s, %s',
10 | withHours = 'It is %s, %s of %s, %s',
11 | withWeekdayAndHours = 'It is %s, %s, %s of %s, %s'
12 | },
13 |
14 | ['weekDay_0'] = 'Sunday',
15 | ['weekDay_1'] = 'Monday',
16 | ['weekDay_2'] = 'Tuesday',
17 | ['weekDay_3'] = 'Wednesday',
18 | ['weekDay_4'] = 'Thursday',
19 | ['weekDay_5'] = 'Friday',
20 | ['weekDay_6'] = 'Saturday',
21 |
22 | ['day_1'] = '1st',
23 | ['day_2'] = '2rd',
24 | ['day_3'] = '3rd',
25 | ['day_4'] = '4th',
26 | ['day_5'] = '5th',
27 | ['day_6'] = '6th',
28 | ['day_7'] = '7th',
29 | ['day_8'] = '8th',
30 | ['day_9'] = '9th',
31 |
32 | ['day_10'] = '10th',
33 | ['day_11'] = '11th',
34 | ['day_12'] = '12th',
35 | ['day_13'] = '13th',
36 | ['day_14'] = '14th',
37 | ['day_15'] = '15th',
38 | ['day_16'] = '16th',
39 | ['day_17'] = '17th',
40 | ['day_18'] = '18th',
41 | ['day_19'] = '19th',
42 |
43 | ['day_20'] = '20th',
44 | ['day_21'] = '21th',
45 | ['day_22'] = '22th',
46 | ['day_23'] = '23th',
47 | ['day_24'] = '24th',
48 | ['day_25'] = '25th',
49 | ['day_26'] = '26th',
50 | ['day_27'] = '27th',
51 | ['day_28'] = '28th',
52 | ['day_29'] = '29th',
53 |
54 | ['day_30'] = '30th',
55 | ['day_31'] = '31th',
56 |
57 | ['month_0'] = 'January',
58 | ['month_1'] = 'February',
59 | ['month_2'] = 'March',
60 | ['month_3'] = 'April',
61 | ['month_4'] = 'May',
62 | ['month_5'] = 'June',
63 | ['month_6'] = 'July',
64 | ['month_7'] = 'August',
65 | ['month_8'] = 'September',
66 | ['month_9'] = 'October',
67 | ['month_10'] = 'November',
68 | ['month_11'] = 'December',
69 |
70 | ['toggleui'] = 'Enables/Disables parts of the HUD',
71 |
72 | }
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/locales/es.lua:
--------------------------------------------------------------------------------
1 | -- Español
2 | Locales['es'] = {
3 | ['you_are_on_location'] = 'Estas en %s',
4 |
5 | ['date_format'] = {
6 | default = 'Hoy es %s de %s, %s',
7 | simple = 'Hoy es %s, %s',
8 | simpleWithHours = 'Es %s, %s, %s',
9 | withWeekday = 'Hoy es %s, %s de %s, %s',
10 | withHours = 'Son las %s, %s de %s, %s',
11 | withWeekdayAndHours = 'Es %s, %s, %s de %s, %s'
12 | },
13 |
14 | ['weekDay_0'] = 'Lunes',
15 | ['weekDay_1'] = 'Martes',
16 | ['weekDay_2'] = 'Miercoles',
17 | ['weekDay_3'] = 'Jueves',
18 | ['weekDay_4'] = 'Viernes',
19 | ['weekDay_5'] = 'Sabado',
20 | ['weekDay_6'] = 'Domingo',
21 |
22 | ['day_1'] = '1st',
23 | ['day_2'] = '2rd',
24 | ['day_3'] = '3rd',
25 | ['day_4'] = '4th',
26 | ['day_5'] = '5th',
27 | ['day_6'] = '6th',
28 | ['day_7'] = '7th',
29 | ['day_8'] = '8th',
30 | ['day_9'] = '9th',
31 |
32 | ['day_10'] = '10th',
33 | ['day_11'] = '11th',
34 | ['day_12'] = '12th',
35 | ['day_13'] = '13th',
36 | ['day_14'] = '14th',
37 | ['day_15'] = '15th',
38 | ['day_16'] = '16th',
39 | ['day_17'] = '17th',
40 | ['day_18'] = '18th',
41 | ['day_19'] = '19th',
42 |
43 | ['day_20'] = '20th',
44 | ['day_21'] = '21th',
45 | ['day_22'] = '22th',
46 | ['day_23'] = '23th',
47 | ['day_24'] = '24th',
48 | ['day_25'] = '25th',
49 | ['day_26'] = '26th',
50 | ['day_27'] = '27th',
51 | ['day_28'] = '28th',
52 | ['day_29'] = '29th',
53 |
54 | ['day_30'] = '30th',
55 | ['day_31'] = '31th',
56 |
57 | ['month_0'] = 'Enero',
58 | ['month_1'] = 'Febrero',
59 | ['month_2'] = 'Marzp',
60 | ['month_3'] = 'Abril',
61 | ['month_4'] = 'Mayo',
62 | ['month_5'] = 'Junio',
63 | ['month_6'] = 'Julio',
64 | ['month_7'] = 'Agosto',
65 | ['month_8'] = 'Septiembre',
66 | ['month_9'] = 'Octubre',
67 | ['month_10'] = 'Noviembre',
68 | ['month_11'] = 'Diciembre',
69 |
70 | ['toggleui'] = 'Habilita/Deshabilita parts of the HUD',
71 |
72 | }
73 |
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/locales/es.lua:
--------------------------------------------------------------------------------
1 | -- Español
2 | Locales['es'] = {
3 | ['you_are_on_location'] = 'Estas en %s',
4 |
5 | ['date_format'] = {
6 | default = 'Hoy es %s de %s, %s',
7 | simple = 'Hoy es %s, %s',
8 | simpleWithHours = 'Es %s, %s, %s',
9 | withWeekday = 'Hoy es %s, %s de %s, %s',
10 | withHours = 'Son las %s, %s de %s, %s',
11 | withWeekdayAndHours = 'Es %s, %s, %s de %s, %s'
12 | },
13 |
14 | ['weekDay_0'] = 'Lunes',
15 | ['weekDay_1'] = 'Martes',
16 | ['weekDay_2'] = 'Miercoles',
17 | ['weekDay_3'] = 'Jueves',
18 | ['weekDay_4'] = 'Viernes',
19 | ['weekDay_5'] = 'Sabado',
20 | ['weekDay_6'] = 'Domingo',
21 |
22 | ['day_1'] = '1st',
23 | ['day_2'] = '2rd',
24 | ['day_3'] = '3rd',
25 | ['day_4'] = '4th',
26 | ['day_5'] = '5th',
27 | ['day_6'] = '6th',
28 | ['day_7'] = '7th',
29 | ['day_8'] = '8th',
30 | ['day_9'] = '9th',
31 |
32 | ['day_10'] = '10th',
33 | ['day_11'] = '11th',
34 | ['day_12'] = '12th',
35 | ['day_13'] = '13th',
36 | ['day_14'] = '14th',
37 | ['day_15'] = '15th',
38 | ['day_16'] = '16th',
39 | ['day_17'] = '17th',
40 | ['day_18'] = '18th',
41 | ['day_19'] = '19th',
42 |
43 | ['day_20'] = '20th',
44 | ['day_21'] = '21th',
45 | ['day_22'] = '22th',
46 | ['day_23'] = '23th',
47 | ['day_24'] = '24th',
48 | ['day_25'] = '25th',
49 | ['day_26'] = '26th',
50 | ['day_27'] = '27th',
51 | ['day_28'] = '28th',
52 | ['day_29'] = '29th',
53 |
54 | ['day_30'] = '30th',
55 | ['day_31'] = '31th',
56 |
57 | ['month_0'] = 'Enero',
58 | ['month_1'] = 'Febrero',
59 | ['month_2'] = 'Marzp',
60 | ['month_3'] = 'Abril',
61 | ['month_4'] = 'Mayo',
62 | ['month_5'] = 'Junio',
63 | ['month_6'] = 'Julio',
64 | ['month_7'] = 'Agosto',
65 | ['month_8'] = 'Septiembre',
66 | ['month_9'] = 'Octubre',
67 | ['month_10'] = 'Noviembre',
68 | ['month_11'] = 'Diciembre',
69 |
70 | ['toggleui'] = 'Habilita/Deshabilita parts of the HUD',
71 |
72 | }
73 |
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/locales/en.lua:
--------------------------------------------------------------------------------
1 | -- English
2 | Locales['en'] = {
3 | ['you_are_on_location'] = 'You are on %s',
4 |
5 | ['date_format'] = {
6 | default = 'Today is %s of %s, %s',
7 | simple = 'Today is %s, %s',
8 | simpleWithHours = 'It is %s, %s, %s',
9 | withWeekday = 'Today is %s, %s of %s, %s',
10 | withHours = 'It is %s, %s of %s, %s',
11 | withWeekdayAndHours = 'It is %s, %s, %s of %s, %s'
12 | },
13 |
14 | ['weekDay_0'] = 'Sunday',
15 | ['weekDay_1'] = 'Monday',
16 | ['weekDay_2'] = 'Tuesday',
17 | ['weekDay_3'] = 'Wednesday',
18 | ['weekDay_4'] = 'Thursday',
19 | ['weekDay_5'] = 'Friday',
20 | ['weekDay_6'] = 'Saturday',
21 |
22 | ['day_1'] = '1st',
23 | ['day_2'] = '2rd',
24 | ['day_3'] = '3rd',
25 | ['day_4'] = '4th',
26 | ['day_5'] = '5th',
27 | ['day_6'] = '6th',
28 | ['day_7'] = '7th',
29 | ['day_8'] = '8th',
30 | ['day_9'] = '9th',
31 |
32 | ['day_10'] = '10th',
33 | ['day_11'] = '11th',
34 | ['day_12'] = '12th',
35 | ['day_13'] = '13th',
36 | ['day_14'] = '14th',
37 | ['day_15'] = '15th',
38 | ['day_16'] = '16th',
39 | ['day_17'] = '17th',
40 | ['day_18'] = '18th',
41 | ['day_19'] = '19th',
42 |
43 | ['day_20'] = '20th',
44 | ['day_21'] = '21th',
45 | ['day_22'] = '22th',
46 | ['day_23'] = '23th',
47 | ['day_24'] = '24th',
48 | ['day_25'] = '25th',
49 | ['day_26'] = '26th',
50 | ['day_27'] = '27th',
51 | ['day_28'] = '28th',
52 | ['day_29'] = '29th',
53 |
54 | ['day_30'] = '30th',
55 | ['day_31'] = '31th',
56 |
57 | ['month_0'] = 'January',
58 | ['month_1'] = 'February',
59 | ['month_2'] = 'March',
60 | ['month_3'] = 'April',
61 | ['month_4'] = 'May',
62 | ['month_5'] = 'June',
63 | ['month_6'] = 'July',
64 | ['month_7'] = 'August',
65 | ['month_8'] = 'September',
66 | ['month_9'] = 'October',
67 | ['month_10'] = 'November',
68 | ['month_11'] = 'December',
69 |
70 | ['toggleui'] = 'Enables/Disables parts of the HUD',
71 |
72 | }
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/fxmanifest.lua:
--------------------------------------------------------------------------------
1 | fx_version 'adamant'
2 |
3 | game 'gta5'
4 |
5 | description 'Trew HUD UI'
6 |
7 | version '2.0.1'
8 | lua54 'yes'
9 |
10 | ui_page 'html/ui.html'
11 |
12 |
13 | files {
14 | 'html/ui.html',
15 | 'html/main.css',
16 | 'html/app.js',
17 |
18 | 'html/img/vehicle-gear.png',
19 | 'html/img/vehicle-lights.png',
20 | 'html/img/vehicle-lights-high.png',
21 | 'html/img/vehicle-seatbelt.png',
22 |
23 | 'html/img/weapon-bullets.png',
24 |
25 | 'html/img/weapons/appistol.png',
26 | 'html/img/weapons/assaultrifle.png',
27 | 'html/img/weapons/assaultrifle_mk2.png',
28 | 'html/img/weapons/assaultshotgun.png',
29 | 'html/img/weapons/assaultsmg.png',
30 | 'html/img/weapons/autoshotgun.png',
31 | 'html/img/weapons/ball.png',
32 | 'html/img/weapons/bat.png',
33 | 'html/img/weapons/battleaxe.png',
34 | 'html/img/weapons/bottle.png',
35 | 'html/img/weapons/bullpuprifle.png',
36 | 'html/img/weapons/bullpuprifle_mk2.png',
37 | 'html/img/weapons/bullpupshotgun.png',
38 | 'html/img/weapons/bzgas.png',
39 | 'html/img/weapons/carbinerifle.png',
40 | 'html/img/weapons/carbinerifle_mk2.png',
41 | 'html/img/weapons/combatmg.png',
42 | 'html/img/weapons/combatmg_mk2.png',
43 | 'html/img/weapons/combatpdw.png',
44 | 'html/img/weapons/combatpistol.png',
45 | 'html/img/weapons/compactlauncher.png',
46 | 'html/img/weapons/compactrifle.png',
47 | 'html/img/weapons/crowbar.png',
48 | 'html/img/weapons/dagger.png',
49 | 'html/img/weapons/dbshotgun.png',
50 | 'html/img/weapons/doubleaction.png',
51 | 'html/img/weapons/firework.png',
52 | 'html/img/weapons/flare.png',
53 | 'html/img/weapons/flaregun.png',
54 | 'html/img/weapons/flashlight.png',
55 | 'html/img/weapons/golfclub.png',
56 | 'html/img/weapons/grenade.png',
57 | 'html/img/weapons/grenadelauncher.png',
58 | 'html/img/weapons/grenadelauncher_smoke.png',
59 | 'html/img/weapons/gusenberg.png',
60 | 'html/img/weapons/hammer.png',
61 | 'html/img/weapons/hatchet.png',
62 | 'html/img/weapons/heavypistol.png',
63 | 'html/img/weapons/heavyshotgun.png',
64 | 'html/img/weapons/heavysniper.png',
65 | 'html/img/weapons/heavysniper_mk2.png',
66 | 'html/img/weapons/hominglauncher.png',
67 | 'html/img/weapons/knife.png',
68 | 'html/img/weapons/knuckle.png',
69 | 'html/img/weapons/machete.png',
70 | 'html/img/weapons/machinepistol.png',
71 | 'html/img/weapons/marksmanpistol.png',
72 | 'html/img/weapons/marksmanrifle.png',
73 | 'html/img/weapons/marksmanrifle_mk2.png',
74 | 'html/img/weapons/mg.png',
75 | 'html/img/weapons/microsmg.png',
76 | 'html/img/weapons/minigun.png',
77 | 'html/img/weapons/minismg.png',
78 | 'html/img/weapons/molotov.png',
79 | 'html/img/weapons/musket.png',
80 | 'html/img/weapons/nightstick.png',
81 | 'html/img/weapons/petrolcan.png',
82 | 'html/img/weapons/pipebomb.png',
83 | 'html/img/weapons/pistol.png',
84 | 'html/img/weapons/pistol50.png',
85 | 'html/img/weapons/pistol_mk2.png',
86 | 'html/img/weapons/poolcue.png',
87 | 'html/img/weapons/proxmine.png',
88 | 'html/img/weapons/pumpshotgun.png',
89 | 'html/img/weapons/pumpshotgun_mk2.png',
90 | 'html/img/weapons/railgun.png',
91 | 'html/img/weapons/raycarbine.png',
92 | 'html/img/weapons/rayminigun.png',
93 | 'html/img/weapons/raypistol.png',
94 | 'html/img/weapons/revolver.png',
95 | 'html/img/weapons/revolver_mk2.png',
96 | 'html/img/weapons/rpg.png',
97 | 'html/img/weapons/sawnoffshotgun.png',
98 | 'html/img/weapons/smg.png',
99 | 'html/img/weapons/smg_mk2.png',
100 | 'html/img/weapons/smokegrenade.png',
101 | 'html/img/weapons/sniperrifle.png',
102 | 'html/img/weapons/snowball.png',
103 | 'html/img/weapons/snspistol.png',
104 | 'html/img/weapons/snspistol_mk2.png',
105 | 'html/img/weapons/specialcarbine.png',
106 | 'html/img/weapons/specialcarbine_mk2.png',
107 | 'html/img/weapons/stickybomb.png',
108 | 'html/img/weapons/stone_hatchet.png',
109 | 'html/img/weapons/stungun.png',
110 | 'html/img/weapons/switchblade.png',
111 | 'html/img/weapons/unarmed.png',
112 | 'html/img/weapons/vintagepistol.png',
113 | 'html/img/weapons/wrench.png',
114 |
115 |
116 |
117 | 'html/sounds/seatbelt-buckle.ogg',
118 | 'html/sounds/seatbelt-unbuckle.ogg',
119 |
120 | 'html/sounds/car-indicators.ogg',
121 | }
122 |
123 | shared_scripts {
124 | 'translation.lua',
125 | 'locales/*.lua',
126 | 'config.lua',
127 | }
128 |
129 | client_scripts {
130 | 'client/client.lua',
131 | }
132 |
133 | dependencies {
134 | 'qb-core',
135 | 'qb-management'
136 | }
137 |
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/fxmanifest.lua:
--------------------------------------------------------------------------------
1 | fx_version 'adamant'
2 |
3 | game 'gta5'
4 |
5 | description 'Trew HUD UI'
6 |
7 | version '2.0.0'
8 | lua54 'yes'
9 |
10 | ui_page 'html/ui.html'
11 |
12 |
13 | files {
14 | 'html/ui.html',
15 | 'html/main.css',
16 | 'html/app.js',
17 |
18 | 'html/img/vehicle-gear.png',
19 | 'html/img/vehicle-lights.png',
20 | 'html/img/vehicle-lights-high.png',
21 | 'html/img/vehicle-seatbelt.png',
22 |
23 | 'html/img/weapon-bullets.png',
24 |
25 | 'html/img/weapons/appistol.png',
26 | 'html/img/weapons/assaultrifle.png',
27 | 'html/img/weapons/assaultrifle_mk2.png',
28 | 'html/img/weapons/assaultshotgun.png',
29 | 'html/img/weapons/assaultsmg.png',
30 | 'html/img/weapons/autoshotgun.png',
31 | 'html/img/weapons/ball.png',
32 | 'html/img/weapons/bat.png',
33 | 'html/img/weapons/battleaxe.png',
34 | 'html/img/weapons/bottle.png',
35 | 'html/img/weapons/bullpuprifle.png',
36 | 'html/img/weapons/bullpuprifle_mk2.png',
37 | 'html/img/weapons/bullpupshotgun.png',
38 | 'html/img/weapons/bzgas.png',
39 | 'html/img/weapons/carbinerifle.png',
40 | 'html/img/weapons/carbinerifle_mk2.png',
41 | 'html/img/weapons/combatmg.png',
42 | 'html/img/weapons/combatmg_mk2.png',
43 | 'html/img/weapons/combatpdw.png',
44 | 'html/img/weapons/combatpistol.png',
45 | 'html/img/weapons/compactlauncher.png',
46 | 'html/img/weapons/compactrifle.png',
47 | 'html/img/weapons/crowbar.png',
48 | 'html/img/weapons/dagger.png',
49 | 'html/img/weapons/dbshotgun.png',
50 | 'html/img/weapons/doubleaction.png',
51 | 'html/img/weapons/firework.png',
52 | 'html/img/weapons/flare.png',
53 | 'html/img/weapons/flaregun.png',
54 | 'html/img/weapons/flashlight.png',
55 | 'html/img/weapons/golfclub.png',
56 | 'html/img/weapons/grenade.png',
57 | 'html/img/weapons/grenadelauncher.png',
58 | 'html/img/weapons/grenadelauncher_smoke.png',
59 | 'html/img/weapons/gusenberg.png',
60 | 'html/img/weapons/hammer.png',
61 | 'html/img/weapons/hatchet.png',
62 | 'html/img/weapons/heavypistol.png',
63 | 'html/img/weapons/heavyshotgun.png',
64 | 'html/img/weapons/heavysniper.png',
65 | 'html/img/weapons/heavysniper_mk2.png',
66 | 'html/img/weapons/hominglauncher.png',
67 | 'html/img/weapons/knife.png',
68 | 'html/img/weapons/knuckle.png',
69 | 'html/img/weapons/machete.png',
70 | 'html/img/weapons/machinepistol.png',
71 | 'html/img/weapons/marksmanpistol.png',
72 | 'html/img/weapons/marksmanrifle.png',
73 | 'html/img/weapons/marksmanrifle_mk2.png',
74 | 'html/img/weapons/mg.png',
75 | 'html/img/weapons/microsmg.png',
76 | 'html/img/weapons/minigun.png',
77 | 'html/img/weapons/minismg.png',
78 | 'html/img/weapons/molotov.png',
79 | 'html/img/weapons/musket.png',
80 | 'html/img/weapons/nightstick.png',
81 | 'html/img/weapons/petrolcan.png',
82 | 'html/img/weapons/pipebomb.png',
83 | 'html/img/weapons/pistol.png',
84 | 'html/img/weapons/pistol50.png',
85 | 'html/img/weapons/pistol_mk2.png',
86 | 'html/img/weapons/poolcue.png',
87 | 'html/img/weapons/proxmine.png',
88 | 'html/img/weapons/pumpshotgun.png',
89 | 'html/img/weapons/pumpshotgun_mk2.png',
90 | 'html/img/weapons/railgun.png',
91 | 'html/img/weapons/raycarbine.png',
92 | 'html/img/weapons/rayminigun.png',
93 | 'html/img/weapons/raypistol.png',
94 | 'html/img/weapons/revolver.png',
95 | 'html/img/weapons/revolver_mk2.png',
96 | 'html/img/weapons/rpg.png',
97 | 'html/img/weapons/sawnoffshotgun.png',
98 | 'html/img/weapons/smg.png',
99 | 'html/img/weapons/smg_mk2.png',
100 | 'html/img/weapons/smokegrenade.png',
101 | 'html/img/weapons/sniperrifle.png',
102 | 'html/img/weapons/snowball.png',
103 | 'html/img/weapons/snspistol.png',
104 | 'html/img/weapons/snspistol_mk2.png',
105 | 'html/img/weapons/specialcarbine.png',
106 | 'html/img/weapons/specialcarbine_mk2.png',
107 | 'html/img/weapons/stickybomb.png',
108 | 'html/img/weapons/stone_hatchet.png',
109 | 'html/img/weapons/stungun.png',
110 | 'html/img/weapons/switchblade.png',
111 | 'html/img/weapons/unarmed.png',
112 | 'html/img/weapons/vintagepistol.png',
113 | 'html/img/weapons/wrench.png',
114 |
115 |
116 |
117 | 'html/sounds/seatbelt-buckle.ogg',
118 | 'html/sounds/seatbelt-unbuckle.ogg',
119 |
120 | 'html/sounds/car-indicators.ogg',
121 | }
122 |
123 | shared_scripts {
124 | '@es_extended/imports.lua',
125 | '@es_extended/locale.lua',
126 | 'locales/*.lua',
127 | 'config.lua',
128 | }
129 |
130 | client_scripts {
131 | 'client/client.lua',
132 | }
133 |
134 | dependencies {
135 | 'es_extended',
136 | 'esx_society'
137 | }
138 |
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/ui.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 |
11 |
13 |
15 |
16 |
17 | TREW UI
18 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
29 |
30 |
Jobname
31 |
32 |
33 |
34 |
35 |
37 |
39 |
41 |
43 |
44 |
45 |
46 |
47 |
0
49 |
0
51 |
0
53 |
0
55 |
0
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
78 |
79 |
80 |
81 |
82 |
83 | 999
84 | KM/H
85 |
86 |
87 |
88 |
89 |
90 |
N
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | 
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 | 
112 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
134 |
135 |

136 |
137 |
138 |
139 |
999
140 |
999
141 |
142 |
143 |
144 |

145 |

146 |
147 |
148 |
149 |
150 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
Hoje é 31 de Fevereiro
163 | de 2020
164 |
Você está em Aeroporto
165 | de Los Santos
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
175 |
176 |
177 |
178 |
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/ui.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 |
11 |
13 |
15 |
16 |
17 | TREW UI
18 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
29 |
30 |
Jobname
31 |
32 |
33 |
34 |
35 |
37 |
39 |
41 |
43 |
45 |
46 |
47 |
48 |
49 |
0
51 |
0
53 |
0
55 |
0
57 |
0
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
80 |
81 |
82 |
83 |
84 |
85 | 999
86 | KM/H
87 |
88 |
89 |
90 |
91 |
92 |
N
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 | 
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 | 
114 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
136 |
137 |

138 |
139 |
140 |
141 |
999
142 |
999
143 |
144 |
145 |
146 |

147 |

148 |
149 |
150 |
151 |
152 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
Hoje é 31 de Fevereiro
165 | de 2020
166 |
Você está em Aeroporto
167 | de Los Santos
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
177 |
178 |
179 |
180 |
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/main.css:
--------------------------------------------------------------------------------
1 | *, *:before, *:after {
2 | -webkit-box-sizing: border-box;
3 | -moz-box-sizing: border-box;
4 | box-sizing: border-box;
5 |
6 | text-rendering: optimizeLegibility;
7 | -webkit-font-smoothing: antialiased;
8 | -moz-osx-font-smoothing: grayscale;
9 |
10 | margin: 0;
11 | padding: 0;
12 | }
13 |
14 | body,html { width: 100%; height: 100%;
15 |
16 | -webkit-touch-callout: none;
17 | -webkit-user-select: none;
18 | -khtml-user-select: none;
19 | -moz-user-select: none;
20 | -ms-user-select: none;
21 | user-select: none;
22 |
23 |
24 | }
25 |
26 | body { /*background: url('https://i.imgur.com/MoYBh1e.jpg') center center no-repeat; background-size: cover;*/ }
27 |
28 | #ui { position: relative; width: 100%; height: 100%; overflow: hidden; }
29 | div.separator { display: block; clear: both; width: 100%; }
30 |
31 |
32 |
33 |
34 | .icon { display: block; position: relative; padding: 10px 8px; margin: 10px 5px 0 5px; width: 30px; height: 30px; border-radius: 100px; overflow: hidden; background: rgba(0,0,0,0.35); }
35 |
36 | .icon i { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); color: #FFF; z-index: 11; font-size: 15px; }
37 | .icon img { width: 16px; margin: -3px 0 0 0; }
38 | .icon span { display: block; position: absolute; left: 50%; bottom: 0; transform: translate(-50%,0); width: 100%; height: 100%; }
39 |
40 | .icon.text { display: inline-block; overflow: visible; width: auto; padding: 0; }
41 | .icon.text i { display: inline-block; float: left; transform: translate(0%,0%); left: 0; top: 0; position: relative; padding: 10px 8px; width: 30px; height: 30px; border-radius: 100px; color: #FFF; }
42 | .icon.text i:before { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); }
43 | .icon.text span { position: relative; width: auto; height: auto; left: 0; transform: translate(0,0); display: inline-block; font-size: 12px; padding: 7px 15px 0 10px; font-weight: 700; color: #FFF; }
44 |
45 |
46 | .icon.dying:not(.customstatus) span { animation: trew-status-blink 500ms infinite; }
47 | .icon.pulse i { animation: trew-pulse 500ms 1; }
48 |
49 |
50 |
51 |
52 | .info { position: absolute; }
53 |
54 | .info.server { top: 45px; right: 26px; width: 90px; height: 90px; }
55 | .info.server #server img { max-width: 100%; opacity: 0.75; }
56 |
57 | .info.player { top: 140px; right: 25px; text-align: right;}
58 | .info.player #job span { font-size: 24px; color: #FFF; font-weight: 900; text-transform: uppercase; text-shadow: 0px 1px 1px rgba(0,0,0,0.75); }
59 |
60 |
61 |
62 |
63 |
64 | .info.player #money div[id] { float: right; }
65 |
66 | .info.player #money { clear: both; }
67 | .info.player #money #wallet i { background: linear-gradient(180deg, #18b70b 0%, #128c08 100%); }
68 | .info.player #money #blackMoney i { background: linear-gradient(180deg, #474747 0%, #252525 100%); }
69 | .info.player #money #bank i { background: linear-gradient(180deg, #c70a0a 0%, #960505 100%); }
70 | .info.player #money #society i { background: linear-gradient(180deg, #874c14 0%, #6a3c10 100%); }
71 | .info.player #money #plyId i { background: linear-gradient(180deg, #635ebd 0%, #3776ff 100%); }
72 | /*.info.player #money #wallet i:before { content: '\f153'; }*/
73 |
74 |
75 | .info.player #status { clear: both; }
76 | .info.player #status ul { margin: 10px 0 0 0; }
77 | .info.player #status ul li { float: right;}
78 | .info.player #status ul li#health span { background: linear-gradient(180deg, #ff0000 0%, #aa0000 100%); }
79 | .info.player #status ul li#armor span { background: linear-gradient(180deg, #0bcfe6 0%, #0aa3b5 100%); }
80 | .info.player #status ul li#stamina span { background: linear-gradient(180deg, #ffb700 0%, #e0a102 100%); }
81 | .info.player #status ul li#hunger span { background: linear-gradient(180deg, #ff8000 0%, #cd6700 100%); }
82 | .info.player #status ul li#thirst span { background: linear-gradient(180deg, #00c3ff 0%, #008fbb 100%); }
83 | .info.player #status ul li#health.dead { animation: trew-pulse 500ms infinite; }
84 | .info.player #status ul li#health.dead span { height: 0 !important; }
85 | .info.player #status ul li#health.dead i.fas:before { content: '\f714'; }
86 |
87 | .info.vehicle { bottom: 20px; left: 50%; transform: translate(-50%,0); z-index: 11; }
88 | .info.vehicle.active { opacity: 1; }
89 | .info.vehicle.inactive { opacity: 0; }
90 |
91 |
92 | .info.vehicle #speedometer { position: relative; width: 270px; height: 130px; }
93 | .info.vehicle #speedometer svg { position: absolute; top: 0; left: 50%; transform: translate(-50%,0) rotate(138deg); width: 130px; }
94 |
95 | .info.vehicle #speedometer svg circle { display: block; fill: transparent; stroke-width: 5px; stroke-linecap: round; stroke-dasharray: 283; stroke-dashoffset: 75; transform-origin: 50% 50%; }
96 | .info.vehicle #speedometer svg circle.mask { stroke: rgba(0,0,0,0.35); }
97 | .info.vehicle #speedometer svg circle.speed { stroke: url(#speed-gradient); stroke-dashoffset: 180; }
98 | .info.vehicle #speedometer svg:first-child { z-index: 11; }
99 |
100 |
101 | .info.vehicle #speedometer svg circle { transition: all 250ms linear; }
102 | .info.vehicle #speedometer svg circle.zero { stroke: #00c3ff; stroke-dashoffset: 235; }
103 | .info.vehicle #speedometer svg circle.twentyfive { stroke: #18b70b; stroke-dashoffset: 180; }
104 | .info.vehicle #speedometer svg circle.fifty { stroke: #ff8000; stroke-dashoffset: 125; }
105 | .info.vehicle #speedometer svg circle.seventyfive { stroke: #ff0000; stroke-dashoffset: 75; }
106 |
107 |
108 | .info.vehicle #speedometer #vehicle-speed { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); text-align: center; color: #FFF;}
109 | .info.vehicle #speedometer #vehicle-speed span { display: block; font-weight: 900; font-size: 30px; text-shadow: 0px 1px 1px rgba(0,0,0,0.75); }
110 |
111 | .info.vehicle #speedometer #vehicle-speed strong { display: inline-block; font-size: 10px; font-weight: 900; padding: 2px 5px; border-radius: 100px; text-shadow: 0px 1px 1px rgba(0,0,0,0.75); transition: all 150ms linear; }
112 | .info.vehicle #speedometer #vehicle-speed strong.on { background: #18b70b; }
113 |
114 | .info.vehicle #speedometer #vehicle-gear,
115 | .info.vehicle #speedometer #vehicle-others { position: absolute; bottom: 0; left: 50%; width: 69px; transform: translate(-50%,0); margin: auto; border: 2px solid transparent; }
116 |
117 | .info.vehicle #speedometer #vehicle-gear.pulsing { animation: trew-siren 1s infinite; }
118 |
119 | .info.vehicle #speedometer #vehicle-gear i { top: -2px; }
120 | .info.vehicle #speedometer #vehicle-gear span { padding: 5px 15px 0 10px; }
121 |
122 |
123 | .info.vehicle #speedometer #vehicle-status-left { position: absolute; bottom: 0; left: 0; }
124 | .info.vehicle #speedometer #vehicle-status-left ul li { float: left; }
125 |
126 | .info.vehicle #speedometer #vehicle-status-right { position: absolute; bottom: 0; right: 0; }
127 | .info.vehicle #speedometer #vehicle-status-right ul li { float: left; }
128 |
129 | .info.vehicle #speedometer li#seatbelt span { background: linear-gradient(180deg, #ff0000 0%, #aa0000 100%); }
130 | .info.vehicle #speedometer li#seatbelt.on span { background: linear-gradient(180deg, #18b70b 0%, #128c08 100%); }
131 |
132 | .info.vehicle #speedometer li#fuel span { background: linear-gradient(180deg, #ff8000 0%, #cd6700 100%); }
133 |
134 | .info.vehicle #speedometer li#lights.normal span,
135 | .info.vehicle #speedometer li#lights.high span { background: linear-gradient(180deg, #00c3ff 0%, #008fbb 100%); }
136 |
137 | .info.vehicle #speedometer li#signals.dying span { background: linear-gradient(180deg, #18b70b 0%, #128c08 100%); animation: trew-status-blink 750ms infinite; }
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 | .info.weapon { bottom: 85px; right: 25px; }
147 | .info.weapon.armed { display: block; opacity: 1; }
148 | .info.weapon.unarmed { display: none; opacity: 0; }
149 |
150 | .info.weapon #weapon_image { float: left; width: 200px; height: 40px; text-align: left; position: relative; }
151 | .info.weapon #weapon_image img { position: absolute; top: 50%; right: 25px; transform: translateY(-50%); height: 40px; }
152 |
153 | .info.weapon #weapon_bullets { color: #FFF; float: left; width: 35px; text-shadow: 0px 1px 1px rgba(0,0,0,0.75); line-height: 1; }
154 | .info.weapon #weapon_bullets .clip { font-weight: 900; font-size: 22px; }
155 | .info.weapon #weapon_bullets .ammo { font-weight: 700; font-size: 16px; opacity: 0.7;}
156 |
157 |
158 | .info.weapon #bullets { margin: 0; float: left; margin: 5px 0 0 20px; overflow: visible; transform: scale(1.1); }
159 | .info.weapon #bullets i { color: #FFF; float: right; height: 34px; width: 34px; border-radius: 100px; }
160 | .info.weapon #bullets i.clone { background: none; position: absolute; float: none; top: 15px; left: inherit; left: 10px; opacity: 0; }
161 | .info.weapon #bullets.shooting i.clone { animation: trew-bullets 250ms 1; }
162 | .info.weapon #bullets i img { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-35%); }
163 |
164 |
165 |
166 |
167 |
168 |
169 | .info.radio { bottom: 19px; right: 25px; z-index: 11; }
170 | .info.radio #voice { width: 35px; height: 35px; border-radius: 50%; overflow: hidden; background: linear-gradient(180deg, #18b70b 0%, #128c08 100%); text-align: center; padding: 7px 0 0 0; transition: all 0.1s linear; }
171 |
172 | .info.radio #voice.whisper { background: linear-gradient(180deg, #ffb700 0%, #e0a102 100%); }
173 | .info.radio #voice.normal { background: linear-gradient(180deg, #18b70b 0%, #128c08 100%); }
174 | .info.radio #voice.shouting { background: linear-gradient(180deg, #ff0000 0%, #aa0000 100%); }
175 | .info.radio #voice i.fas { font-size: 18px; color: #FFF; }
176 | .info.radio #voice.speak { animation: trew-soundwave 1s infinite; }
177 |
178 | .info.time-and-place { position: absolute; bottom: 18px; right: 65px; height: 38px; font-size: 11px; color: #FFF; background: rgba(0,0,0,0.35); border-radius: 100px; text-align: right; }
179 |
180 | .info.time-and-place .data { position: relative; top: 50%; transform: translate(0,-50%); }
181 | .info.time-and-place .data div { padding: 0 25px; }
182 |
183 |
184 |
185 | @keyframes trew-siren {
186 | 0% { border-color: rgba(255,0,0,0); box-shadow: 0 0 10px 10px rgba(255,0,0,0); }
187 | 50% { border-color: rgba(255,0,0,1); box-shadow: 0 0 10px 10px rgba(255,0,0,0.50); }
188 | 100% { border-color: rgba(255,0,0,0); box-shadow: 0 0 10px 10px rgba(255,0,0,0); }
189 | }
190 |
191 | @keyframes trew-soundwave {
192 | 0% { box-shadow: 0 0 0 0px rgba(255,255,255,0.75); }
193 | 100% { box-shadow: 0 0 0 25px rgba(255,255,255,0); }
194 | }
195 |
196 | @keyframes trew-status-blink {
197 | 0% { opacity: 0; }
198 | 50% { opacity: 1; }
199 | 100% { opacity: 0; }
200 | }
201 |
202 | @keyframes trew-pulse {
203 | 0% { transform: scale(1); }
204 | 25% { transform: scale(1.5); }
205 | 100% { transform: scale(1); }
206 | }
207 |
208 | @keyframes trew-speed {
209 | 0% { stroke-dashoffset: 280; }
210 | 50% { stroke-dashoffset: 75; }
211 | 100% { stroke-dashoffset: 280; }
212 | }
213 |
214 | @keyframes trew-bullets {
215 | 0% { opacity: 0; }
216 | 25% { opacity: 1; }
217 | 100% { transform: translate(30px,-60px) rotate(90deg); opacity: 0;}
218 | }
219 |
220 | @keyframes trew-rainbow{
221 | 100%,
222 | 0%{ background: rgba(255,0,0,0.70); }
223 | 8%{ background: rgba(255,127,0,0.70); }
224 | 16%{ background: rgba(230,205,23,0.70); }
225 | 25%{ background: rgba(127,255,0,0.70); }
226 | 33%{ background: rgba(0,255,0,0.70); }
227 | 41%{ background: rgba(0,255,127,0.70); }
228 | 50%{ background: rgba(0,255,255,0.70); }
229 | 58%{ background: rgba(0,127,255,0.70); }
230 | 66%{ background: rgba(0,0,255,0.70); }
231 | 75%{ background: rgba(127,0,255,0.70); }
232 | 83%{ background: rgba(255,0,255,0.70); }
233 | 91%{ background: rgba(255,0,127,0.70); }
234 | }
235 |
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/main.css:
--------------------------------------------------------------------------------
1 | *, *:before, *:after {
2 | -webkit-box-sizing: border-box;
3 | -moz-box-sizing: border-box;
4 | box-sizing: border-box;
5 |
6 | text-rendering: optimizeLegibility;
7 | -webkit-font-smoothing: antialiased;
8 | -moz-osx-font-smoothing: grayscale;
9 |
10 | margin: 0;
11 | padding: 0;
12 | }
13 |
14 | body,html { width: 100%; height: 100%;
15 |
16 | -webkit-touch-callout: none;
17 | -webkit-user-select: none;
18 | -khtml-user-select: none;
19 | -moz-user-select: none;
20 | -ms-user-select: none;
21 | user-select: none;
22 |
23 |
24 | }
25 |
26 | body { /*background: url('https://i.imgur.com/MoYBh1e.jpg') center center no-repeat; background-size: cover;*/ }
27 |
28 | #ui { position: relative; width: 100%; height: 100%; overflow: hidden; }
29 | div.separator { display: block; clear: both; width: 100%; }
30 |
31 |
32 |
33 |
34 | .icon { display: block; position: relative; padding: 10px 8px; margin: 10px 5px 0 5px; width: 30px; height: 30px; border-radius: 100px; overflow: hidden; background: rgba(0,0,0,0.35); }
35 |
36 | .icon i { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); color: #FFF; z-index: 11; font-size: 15px; }
37 | .icon img { width: 16px; margin: -3px 0 0 0; }
38 | .icon span { display: block; position: absolute; left: 50%; bottom: 0; transform: translate(-50%,0); width: 100%; height: 100%; }
39 |
40 | .icon.text { display: inline-block; overflow: visible; width: auto; padding: 0; }
41 | .icon.text i { display: inline-block; float: left; transform: translate(0%,0%); left: 0; top: 0; position: relative; padding: 10px 8px; width: 30px; height: 30px; border-radius: 100px; color: #FFF; }
42 | .icon.text i:before { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); }
43 | .icon.text span { position: relative; width: auto; height: auto; left: 0; transform: translate(0,0); display: inline-block; font-size: 12px; padding: 7px 15px 0 10px; font-weight: 700; color: #FFF; }
44 |
45 |
46 | .icon.dying:not(.customstatus) span { animation: trew-status-blink 500ms infinite; }
47 | .icon.pulse i { animation: trew-pulse 500ms 1; }
48 |
49 |
50 |
51 |
52 | .info { position: absolute; }
53 |
54 | .info.server { top: 45px; right: 26px; width: 90px; height: 90px; }
55 | .info.server #server img { max-width: 100%; opacity: 0.75; }
56 |
57 | .info.player { top: 140px; right: 25px; text-align: right;}
58 | .info.player #job span { font-size: 24px; color: #FFF; font-weight: 900; text-transform: uppercase; text-shadow: 0px 1px 1px rgba(0,0,0,0.75); }
59 |
60 |
61 |
62 |
63 |
64 | .info.player #money div[id] { float: right; }
65 |
66 | .info.player #money { clear: both; }
67 | .info.player #money #wallet i { background: linear-gradient(180deg, #18b70b 0%, #128c08 100%); }
68 | .info.player #money #blackMoney i { background: linear-gradient(180deg, #474747 0%, #252525 100%); }
69 | .info.player #money #bank i { background: linear-gradient(180deg, #c70a0a 0%, #960505 100%); }
70 | .info.player #money #society i { background: linear-gradient(180deg, #874c14 0%, #6a3c10 100%); }
71 | .info.player #money #plyId i { background: linear-gradient(180deg, #635ebd 0%, #3776ff 100%); }
72 | /*.info.player #money #wallet i:before { content: '\f153'; }*/
73 |
74 |
75 | .info.player #status { clear: both; }
76 | .info.player #status ul { margin: 10px 0 0 0; }
77 | .info.player #status ul li { float: right;}
78 | .info.player #status ul li#health span { background: linear-gradient(180deg, #ff0000 0%, #aa0000 100%); }
79 | .info.player #status ul li#armor span { background: linear-gradient(180deg, #0bcfe6 0%, #0aa3b5 100%); }
80 | .info.player #status ul li#stamina span { background: linear-gradient(180deg, #ffb700 0%, #e0a102 100%); }
81 | .info.player #status ul li#stress span { background: linear-gradient(180deg, #aa4daa 0%, rgb(150, 0, 167) 100%); }
82 | .info.player #status ul li#hunger span { background: linear-gradient(180deg, #ff8000 0%, #cd6700 100%); }
83 | .info.player #status ul li#thirst span { background: linear-gradient(180deg, #00c3ff 0%, #008fbb 100%); }
84 | .info.player #status ul li#health.dead { animation: trew-pulse 500ms infinite; }
85 | .info.player #status ul li#health.dead span { height: 0 !important; }
86 | .info.player #status ul li#health.dead i.fas:before { content: '\f714'; }
87 |
88 | .info.vehicle { bottom: 20px; left: 50%; transform: translate(-50%,0); z-index: 11; }
89 | .info.vehicle.active { opacity: 1; }
90 | .info.vehicle.inactive { opacity: 0; }
91 |
92 |
93 | .info.vehicle #speedometer { position: relative; width: 270px; height: 130px; }
94 | .info.vehicle #speedometer svg { position: absolute; top: 0; left: 50%; transform: translate(-50%,0) rotate(138deg); width: 130px; }
95 |
96 | .info.vehicle #speedometer svg circle { display: block; fill: transparent; stroke-width: 5px; stroke-linecap: round; stroke-dasharray: 283; stroke-dashoffset: 75; transform-origin: 50% 50%; }
97 | .info.vehicle #speedometer svg circle.mask { stroke: rgba(0,0,0,0.35); }
98 | .info.vehicle #speedometer svg circle.speed { stroke: url(#speed-gradient); stroke-dashoffset: 180; }
99 | .info.vehicle #speedometer svg:first-child { z-index: 11; }
100 |
101 |
102 | .info.vehicle #speedometer svg circle { transition: all 250ms linear; }
103 | .info.vehicle #speedometer svg circle.zero { stroke: #00c3ff; stroke-dashoffset: 235; }
104 | .info.vehicle #speedometer svg circle.twentyfive { stroke: #18b70b; stroke-dashoffset: 180; }
105 | .info.vehicle #speedometer svg circle.fifty { stroke: #ff8000; stroke-dashoffset: 125; }
106 | .info.vehicle #speedometer svg circle.seventyfive { stroke: #ff0000; stroke-dashoffset: 75; }
107 |
108 |
109 | .info.vehicle #speedometer #vehicle-speed { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); text-align: center; color: #FFF;}
110 | .info.vehicle #speedometer #vehicle-speed span { display: block; font-weight: 900; font-size: 30px; text-shadow: 0px 1px 1px rgba(0,0,0,0.75); }
111 |
112 | .info.vehicle #speedometer #vehicle-speed strong { display: inline-block; font-size: 10px; font-weight: 900; padding: 2px 5px; border-radius: 100px; text-shadow: 0px 1px 1px rgba(0,0,0,0.75); transition: all 150ms linear; }
113 | .info.vehicle #speedometer #vehicle-speed strong.on { background: #18b70b; }
114 |
115 | .info.vehicle #speedometer #vehicle-gear,
116 | .info.vehicle #speedometer #vehicle-others { position: absolute; bottom: 0; left: 50%; width: 69px; transform: translate(-50%,0); margin: auto; border: 2px solid transparent; }
117 |
118 | .info.vehicle #speedometer #vehicle-gear.pulsing { animation: trew-siren 1s infinite; }
119 |
120 | .info.vehicle #speedometer #vehicle-gear i { top: -2px; }
121 | .info.vehicle #speedometer #vehicle-gear span { padding: 5px 15px 0 10px; }
122 |
123 |
124 | .info.vehicle #speedometer #vehicle-status-left { position: absolute; bottom: 0; left: 0; }
125 | .info.vehicle #speedometer #vehicle-status-left ul li { float: left; }
126 |
127 | .info.vehicle #speedometer #vehicle-status-right { position: absolute; bottom: 0; right: 0; }
128 | .info.vehicle #speedometer #vehicle-status-right ul li { float: left; }
129 |
130 | .info.vehicle #speedometer li#seatbelt span { background: linear-gradient(180deg, #ff0000 0%, #aa0000 100%); }
131 | .info.vehicle #speedometer li#seatbelt.on span { background: linear-gradient(180deg, #18b70b 0%, #128c08 100%); }
132 |
133 | .info.vehicle #speedometer li#fuel span { background: linear-gradient(180deg, #ff8000 0%, #cd6700 100%); }
134 |
135 | .info.vehicle #speedometer li#lights.normal span,
136 | .info.vehicle #speedometer li#lights.high span { background: linear-gradient(180deg, #00c3ff 0%, #008fbb 100%); }
137 |
138 | .info.vehicle #speedometer li#signals.dying span { background: linear-gradient(180deg, #18b70b 0%, #128c08 100%); animation: trew-status-blink 750ms infinite; }
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 | .info.weapon { bottom: 85px; right: 25px; }
148 | .info.weapon.armed { display: block; opacity: 1; }
149 | .info.weapon.unarmed { display: none; opacity: 0; }
150 |
151 | .info.weapon #weapon_image { float: left; width: 200px; height: 40px; text-align: left; position: relative; }
152 | .info.weapon #weapon_image img { position: absolute; top: 50%; right: 25px; transform: translateY(-50%); height: 40px; }
153 |
154 | .info.weapon #weapon_bullets { color: #FFF; float: left; width: 35px; text-shadow: 0px 1px 1px rgba(0,0,0,0.75); line-height: 1; }
155 | .info.weapon #weapon_bullets .clip { font-weight: 900; font-size: 22px; }
156 | .info.weapon #weapon_bullets .ammo { font-weight: 700; font-size: 16px; opacity: 0.7;}
157 |
158 |
159 | .info.weapon #bullets { margin: 0; float: left; margin: 5px 0 0 20px; overflow: visible; transform: scale(1.1); }
160 | .info.weapon #bullets i { color: #FFF; float: right; height: 34px; width: 34px; border-radius: 100px; }
161 | .info.weapon #bullets i.clone { background: none; position: absolute; float: none; top: 15px; left: inherit; left: 10px; opacity: 0; }
162 | .info.weapon #bullets.shooting i.clone { animation: trew-bullets 250ms 1; }
163 | .info.weapon #bullets i img { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-35%); }
164 |
165 |
166 |
167 |
168 |
169 |
170 | .info.radio { bottom: 19px; right: 25px; z-index: 11; }
171 | .info.radio #voice { width: 35px; height: 35px; border-radius: 50%; overflow: hidden; background: linear-gradient(180deg, #18b70b 0%, #128c08 100%); text-align: center; padding: 7px 0 0 0; transition: all 0.1s linear; }
172 |
173 | .info.radio #voice.whisper { background: linear-gradient(180deg, #ffb700 0%, #e0a102 100%); }
174 | .info.radio #voice.normal { background: linear-gradient(180deg, #18b70b 0%, #128c08 100%); }
175 | .info.radio #voice.shout { background: linear-gradient(180deg, #ff0000 0%, #aa0000 100%); }
176 | .info.radio #voice i.fas { font-size: 18px; color: #FFF; }
177 | .info.radio #voice.speak { animation: trew-soundwave 1s infinite; }
178 |
179 | .info.time-and-place { position: absolute; bottom: 18px; right: 65px; height: 38px; font-size: 11px; color: #FFF; background: rgba(0,0,0,0.35); border-radius: 100px; text-align: right; }
180 |
181 | .info.time-and-place .data { position: relative; top: 50%; transform: translate(0,-50%); }
182 | .info.time-and-place .data div { padding: 0 25px; }
183 |
184 |
185 |
186 | @keyframes trew-siren {
187 | 0% { border-color: rgba(255,0,0,0); box-shadow: 0 0 10px 10px rgba(255,0,0,0); }
188 | 50% { border-color: rgba(255,0,0,1); box-shadow: 0 0 10px 10px rgba(255,0,0,0.50); }
189 | 100% { border-color: rgba(255,0,0,0); box-shadow: 0 0 10px 10px rgba(255,0,0,0); }
190 | }
191 |
192 | @keyframes trew-soundwave {
193 | 0% { box-shadow: 0 0 0 0px rgba(255,255,255,0.75); }
194 | 100% { box-shadow: 0 0 0 25px rgba(255,255,255,0); }
195 | }
196 |
197 | @keyframes trew-status-blink {
198 | 0% { opacity: 0; }
199 | 50% { opacity: 1; }
200 | 100% { opacity: 0; }
201 | }
202 |
203 | @keyframes trew-pulse {
204 | 0% { transform: scale(1); }
205 | 25% { transform: scale(1.5); }
206 | 100% { transform: scale(1); }
207 | }
208 |
209 | @keyframes trew-speed {
210 | 0% { stroke-dashoffset: 280; }
211 | 50% { stroke-dashoffset: 75; }
212 | 100% { stroke-dashoffset: 280; }
213 | }
214 |
215 | @keyframes trew-bullets {
216 | 0% { opacity: 0; }
217 | 25% { opacity: 1; }
218 | 100% { transform: translate(30px,-60px) rotate(90deg); opacity: 0;}
219 | }
220 |
221 | @keyframes trew-rainbow{
222 | 100%,
223 | 0%{ background: rgba(255,0,0,0.70); }
224 | 8%{ background: rgba(255,127,0,0.70); }
225 | 16%{ background: rgba(230,205,23,0.70); }
226 | 25%{ background: rgba(127,255,0,0.70); }
227 | 33%{ background: rgba(0,255,0,0.70); }
228 | 41%{ background: rgba(0,255,127,0.70); }
229 | 50%{ background: rgba(0,255,255,0.70); }
230 | 58%{ background: rgba(0,127,255,0.70); }
231 | 66%{ background: rgba(0,0,255,0.70); }
232 | 75%{ background: rgba(127,0,255,0.70); }
233 | 83%{ background: rgba(255,0,255,0.70); }
234 | 91%{ background: rgba(255,0,127,0.70); }
235 | }
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/html/app.js:
--------------------------------------------------------------------------------
1 | function rgba(hex,opacity){
2 | hex = hex.replace('#','');
3 | redColor = parseInt(hex.substring(0,2), 16);
4 | greenColor = parseInt(hex.substring(2,4), 16);
5 | blueColor = parseInt(hex.substring(4,6), 16);
6 |
7 | result = 'rgba('+redColor+','+greenColor+','+blueColor+','+opacity/100+')';
8 | return result;
9 | }
10 |
11 | var loadJS = function(url, implementationCode, location) {
12 | var scriptTag = document.createElement('script');
13 | scriptTag.src = url;
14 |
15 | scriptTag.onload = implementationCode;
16 | scriptTag.onreadystatechange = implementationCode;
17 |
18 | location.appendChild(scriptTag);
19 | };
20 |
21 |
22 |
23 | function ajaxio(method,url,type=null,data=null) {
24 | return new Promise((resolve, reject) => {
25 | const req = new XMLHttpRequest();
26 | req.open(method, url, true);
27 |
28 | if (method == 'POST') {
29 | if (type == 'json' && data != null) {
30 | req.setRequestHeader('Content-Type', 'application/json');
31 | var data = JSON.stringify(data);
32 | }
33 | else { req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); }
34 | }
35 |
36 | req.onload = () => req.status === 200 ? resolve(req.response) : reject(Error(req.statusText));
37 | req.onerror = (e) => reject(Error(`Network Error: ${e}`));
38 |
39 | if (method == 'POST') { req.send(data); }
40 | else { req.send(); }
41 | });
42 | }
43 |
44 |
45 | Object.prototype.addMultiListener = function(eventNames, listener) {
46 | var events = eventNames.split(' ');
47 |
48 | if (NodeList.prototype.isPrototypeOf(this) == true) {
49 | for (var x=0, xLen=this.length; x';
137 |
138 |
139 | if (document.getElementById(statusID)) { }
140 | else {
141 | var newStatus = document.createElement('li');
142 | newStatus.classList.add('icon', 'customstatus');
143 | newStatus.id = statusID;
144 |
145 | motherStatus.insertBefore(newStatus, motherStatus.firstChild);
146 |
147 | saferInnerHTML(document.getElementById(statusID), statusIcon);
148 | }
149 | },
150 |
151 |
152 | setStatus: function(data) {
153 |
154 | if (data.isdead == true) {
155 | if (document.querySelector('#health').classList.contains('dead') == false) {
156 | document.querySelector('#health').classList.add('dead');
157 | for (i = 0; i < data.status.length; i++) { document.querySelector('#'+data.status[i].name+' span').style.height = '0'; }
158 | }
159 | }
160 | else {
161 | for (i = 0; i < data.status.length; i++) {
162 | if ((data.status[i].name == 'hunger') || (data.status[i].name == 'thirst')) { var statusValue = Math.floor(100 - data.status[i].value); }
163 | else { var statusValue = Math.floor(data.status[i].value); }
164 | if (document.querySelector('#'+data.status[i].name+' span')) { document.querySelector('#'+data.status[i].name+' span').style.height = statusValue+'%'; }
165 | if (statusValue <= 35) {
166 | if (document.querySelector('#'+data.status[i].name)) {
167 | if (document.querySelector('#'+data.status[i].name).classList.contains('dying') == false) {
168 | document.querySelector('#'+data.status[i].name).classList.add('dying');
169 | }
170 | }
171 | }
172 | else {
173 | if (document.querySelector('#'+data.status[i].name)) { document.querySelector('#'+data.status[i].name).classList.remove('dying'); }
174 |
175 | }
176 | }
177 | if (document.querySelector('#health').classList.contains('dead')) { document.querySelector('#health').classList.remove('dead'); }
178 | }
179 | },
180 |
181 |
182 | updateWeapon: function(data) {
183 | var weaponContainer = document.querySelector('#weapon');
184 | var bulletsContainer = document.querySelector('#bullets');
185 |
186 | if (data.status.armed == true) {
187 |
188 | var oldWeapon = document.querySelector('#weapon_image img').src;
189 | var newWeapon = 'img/weapons/'+data.status.weapon+'.png';
190 | if (oldWeapon != newWeapon) { document.querySelector('#weapon_image img').src = newWeapon; }
191 |
192 | if (weaponContainer.classList.contains('armed') == false) {
193 | weaponContainer.classList.remove('unarmed', 'fadeOut');
194 | weaponContainer.classList.add('armed', 'fadeIn');
195 | }
196 |
197 | }
198 | else {
199 |
200 | if (weaponContainer.classList.contains('unarmed') == false) {
201 | weaponContainer.classList.remove('armed', 'fadeIn');
202 | weaponContainer.classList.add('unarmed', 'fadeOut');
203 | }
204 |
205 | }
206 | },
207 |
208 |
209 |
210 |
211 |
212 |
213 | updateVehicle: function(data) {
214 |
215 | var vehicleInfo = document.querySelector('.info.vehicle');
216 | var vehicleSeatbelt = document.querySelector('#seatbelt');
217 | var vehicleLights = document.querySelector('#lights');
218 | var vehicleSignals = document.querySelector('#signals');
219 | var vehicleFuel = document.querySelector('#fuel');
220 | var vehicleCruiser = document.querySelector('#vehicle-speed strong');
221 | var vehiclesCars = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,18,19,20];
222 |
223 | if (data.status == true) {
224 | if (vehicleInfo.classList.contains('inactive')) {
225 |
226 | vehicleSeatbelt.style.display = 'none';
227 | vehicleLights.style.display = 'none';
228 | vehicleSignals.style.display = 'none';
229 | vehicleFuel.style.display = 'none';
230 |
231 | if (vehiclesCars.indexOf(data.type) > -1) {
232 | document.querySelector('#vehicle-others').style.display = 'none';
233 | document.querySelector('#vehicle-gear').style.display = 'block';
234 |
235 | vehicleSeatbelt.style.display = 'block';
236 | vehicleLights.style.display = 'block';
237 | vehicleSignals.style.display = 'block';
238 | vehicleFuel.style.display = 'block';
239 |
240 | document.querySelector('#vehicle-gear').style.display = 'block';
241 | }
242 |
243 | else {
244 | document.querySelector('#vehicle-others').style.display = 'block';
245 | document.querySelector('#vehicle-gear').style.display = 'none';
246 | document.querySelector('#vehicle-others i').classList.remove('fa-biking', 'fa-helicopter', 'fa-ship');
247 |
248 | if (data.type == 13) { document.querySelector('#vehicle-others i').classList.add('fa-biking'); }
249 | else if (data.type == 14) { document.querySelector('#vehicle-others i').classList.add('fa-ship'); }
250 | else if (data.type == 15) { document.querySelector('#vehicle-others i').classList.add('fa-helicopter'); }
251 | else if (data.type == 16) { document.querySelector('#vehicle-others i').classList.add('fa-plane'); }
252 | else if (data.type == 21) { document.querySelector('#vehicle-others i').classList.add('fa-train'); }
253 | }
254 |
255 | vehicleInfo.classList.remove('inactive');
256 | vehicleInfo.classList.add('active', 'fadeIn');
257 | }
258 |
259 | if (vehicleInfo.classList.contains('updated') == false) {
260 |
261 | var vehicleSpeedUnit = data.config.speedUnit.slice(0,2)+'/'+data.config.speedUnit.slice(-1);
262 | var vehicleAverageSpeed = Math.ceil(data.config.maxSpeed / 6);
263 |
264 | vehicleInfo.classList.add('updated');
265 | saferInnerHTML(vehicleCruiser,vehicleSpeedUnit);
266 |
267 | }
268 |
269 |
270 |
271 |
272 | var previousGear = document.querySelector('#vehicle-gear span').innerHTML;
273 | var currentGear = data.gear;
274 | if (previousGear != currentGear) { document.querySelector('#vehicle-gear').classList.add('pulse') }
275 | saferInnerHTML(document.querySelector('#vehicle-gear span'), data.gear);
276 |
277 |
278 |
279 |
280 |
281 |
282 | var speedometerCircle = document.querySelector('#progress-speed svg circle.speed');
283 | var speedPercentage = Math.floor(Math.floor(data.speed*100)/data.config.maxSpeed);
284 |
285 | speedometerCircle.classList.remove('zero');
286 | speedometerCircle.classList.remove('twentyfive');
287 | speedometerCircle.classList.remove('fifty');
288 | speedometerCircle.classList.remove('seventyfive');
289 |
290 | if (speedPercentage >= 0 && speedPercentage <= 25) { speedometerCircle.classList.add('zero'); }
291 | else if (speedPercentage > 25 && speedPercentage <= 50) { speedometerCircle.classList.add('twentyfive'); }
292 | else if (speedPercentage > 50 && speedPercentage <= 75) { speedometerCircle.classList.add('fifty'); }
293 | else if (speedPercentage > 75) { speedometerCircle.classList.add('seventyfive'); }
294 |
295 | document.querySelector('#progress-speed svg circle.speed').style.strokeDashoffset = data.nail;
296 | saferInnerHTML(document.querySelector('#vehicle-speed span'), data.speed);
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 | if ( (data.seatbelt.status == true) && (vehicleSeatbelt.classList.contains('on') == false) ) {
306 | vehicleSeatbelt.classList.remove('off');
307 | vehicleSeatbelt.classList.add('on');
308 |
309 | eventCallback.sound('sounds/seatbelt-buckle.ogg', { volume: '0.50' });
310 | }
311 | else if ( (data.seatbelt.status == false) && (vehicleSeatbelt.classList.contains('off') == false) ) {
312 | vehicleSeatbelt.classList.remove('on');
313 | vehicleSeatbelt.classList.add('off');
314 |
315 | eventCallback.sound('sounds/seatbelt-unbuckle.ogg', { volume: '0.50' });
316 | }
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 | if (vehicleCruiser.classList.contains(data.cruiser) == false) {
328 | vehicleCruiser.classList.remove('on','off');
329 | vehicleCruiser.classList.add(data.cruiser);
330 | }
331 |
332 |
333 |
334 |
335 | if (data.siren == true) { document.querySelector('#vehicle-gear').classList.add('pulsing'); }
336 | else { document.querySelector('#vehicle-gear').classList.remove('pulsing'); }
337 |
338 |
339 |
340 |
341 |
342 |
343 | if (vehicleLights.classList.contains(data.lights) == false) {
344 | vehicleLights.classList.remove('normal','high','off');
345 | vehicleLights.classList.add(data.lights);
346 |
347 | if (data.lights == 'high') { vehicleLights.querySelector('i img').src = 'img/vehicle-lights-high.png'; }
348 | else { vehicleLights.querySelector('i img').src = 'img/vehicle-lights.png'; }
349 | }
350 |
351 |
352 |
353 |
354 |
355 |
356 |
357 |
358 |
359 |
360 | if (vehicleSignals.classList.contains(data.signals) == false) {
361 |
362 | vehicleSignals.querySelector('i').className = 'fa fa-arrows-alt-h';
363 | vehicleSignals.classList.remove('left','right','both','off');
364 |
365 | if ( (data.signals == 'left') || (data.signals == 'right') || (data.signals == 'both') ) {
366 |
367 | var classSignal = 'fa-long-arrow-alt-'+data.signals;
368 | if (data.signals == 'both') { classSignal = 'fa-arrows-alt-h'; }
369 |
370 | vehicleSignals.querySelector('i').classList.add('fas',classSignal);
371 | vehicleSignals.classList.add(data.signals, 'dying');
372 |
373 | eventCallback.sound('sounds/car-indicators.ogg', { loop: 'loop' });
374 | }
375 |
376 | else if (data.signals == 'off') {
377 | vehicleSignals.querySelector('i').classList.add('fas','fa-arrows-alt-h');
378 | vehicleSignals.classList.remove('dying');
379 | vehicleSignals.classList.add(data.signals);
380 |
381 | eventCallback.sound();
382 | }
383 |
384 |
385 | }
386 |
387 |
388 |
389 |
390 |
391 |
392 |
393 |
394 |
395 |
396 |
397 |
398 | vehicleFuel.querySelector('span').style.height = data.fuel+'%';
399 |
400 | if (data.fuel <= 35) {
401 | if (vehicleFuel.classList.contains('dying') == false) { vehicleFuel.classList.add('dying'); }
402 | }
403 | else { vehicleFuel.classList.remove('dying'); }
404 |
405 | }
406 | else {
407 | if (vehicleInfo.classList.contains('active')) {
408 | vehicleSeatbelt.classList.remove('on');
409 | vehicleCruiser.classList.remove('on');
410 |
411 | vehicleInfo.classList.remove('active');
412 | vehicleInfo.classList.add('inactive', 'fadeOut');
413 |
414 | eventCallback.sound();
415 | }
416 |
417 | }
418 |
419 | },
420 |
421 | toggleUi: function(data) {
422 | var uiID = document.querySelector('#ui');
423 | if (data.value == true) {
424 | uiID.style.display = 'block';
425 | }
426 | else {
427 | uiID.style.display = 'none';
428 | }
429 | },
430 |
431 | sound: function(file = null, args = null) {
432 | var sound = document.querySelector('#sounds');
433 | var soundFile = file;
434 | var args = args;
435 |
436 | for (i = 0; i < sound.attributes.length; i++) {
437 | if (sound.attributes[i].name != 'id') { sound.removeAttribute(sound.attributes[i].name); }
438 | }
439 |
440 | if (soundFile == null) { sound.setAttribute('src', ''); }
441 | else {
442 | if (args == null) { }
443 | else {
444 | for (var key in args) {
445 | if (key != 'addMultiListener') {
446 | if (key == 'volume') { sound.volume = args[key]; }
447 | else { sound.setAttribute(key, args[key]); }
448 | }
449 | }
450 | }
451 |
452 | sound.setAttribute('src', soundFile);
453 | sound.play();
454 | }
455 |
456 |
457 | },
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 | };
484 |
485 | document.querySelectorAll('.icon i').addMultiListener('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () { this.parentElement.classList.remove('pulse'); this.parentElement.classList.remove('shooting'); });
486 |
487 | document.querySelectorAll('.info.vehicle').addMultiListener('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
488 | this.classList.remove('fadeOut', 'fadeIn');
489 | });
490 |
491 |
492 |
493 | window.addEventListener('message', function(event) {
494 | eventCallback[event.data.action](event.data);
495 | });
496 |
497 | }
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/html/app.js:
--------------------------------------------------------------------------------
1 | function rgba(hex,opacity){
2 | hex = hex.replace('#','');
3 | redColor = parseInt(hex.substring(0,2), 16);
4 | greenColor = parseInt(hex.substring(2,4), 16);
5 | blueColor = parseInt(hex.substring(4,6), 16);
6 |
7 | result = 'rgba('+redColor+','+greenColor+','+blueColor+','+opacity/100+')';
8 | return result;
9 | }
10 |
11 | var loadJS = function(url, implementationCode, location) {
12 | var scriptTag = document.createElement('script');
13 | scriptTag.src = url;
14 |
15 | scriptTag.onload = implementationCode;
16 | scriptTag.onreadystatechange = implementationCode;
17 |
18 | location.appendChild(scriptTag);
19 | };
20 |
21 |
22 |
23 | function ajaxio(method,url,type=null,data=null) {
24 | return new Promise((resolve, reject) => {
25 | const req = new XMLHttpRequest();
26 | req.open(method, url, true);
27 |
28 | if (method == 'POST') {
29 | if (type == 'json' && data != null) {
30 | req.setRequestHeader('Content-Type', 'application/json');
31 | var data = JSON.stringify(data);
32 | }
33 | else { req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); }
34 | }
35 |
36 | req.onload = () => req.status === 200 ? resolve(req.response) : reject(Error(req.statusText));
37 | req.onerror = (e) => reject(Error(`Network Error: ${e}`));
38 |
39 | if (method == 'POST') { req.send(data); }
40 | else { req.send(); }
41 | });
42 | }
43 |
44 |
45 | Object.prototype.addMultiListener = function(eventNames, listener) {
46 | var events = eventNames.split(' ');
47 |
48 | if (NodeList.prototype.isPrototypeOf(this) == true) {
49 | for (var x=0, xLen=this.length; x';
138 |
139 |
140 | if (document.getElementById(statusID)) { }
141 | else {
142 | var newStatus = document.createElement('li');
143 | newStatus.classList.add('icon', 'customstatus');
144 | newStatus.id = statusID;
145 |
146 | motherStatus.insertBefore(newStatus, motherStatus.firstChild);
147 |
148 | saferInnerHTML(document.getElementById(statusID), statusIcon);
149 | }
150 | },
151 |
152 |
153 | setStatus: function(data) {
154 |
155 | if (data.isdead == true) {
156 | if (document.querySelector('#health').classList.contains('dead') == false) {
157 | document.querySelector('#health').classList.add('dead');
158 | for (i = 0; i < data.status.length; i++) { document.querySelector('#'+data.status[i].name+' span').style.height = '0'; }
159 | }
160 | }
161 | else {
162 | for (i = 0; i < data.status.length; i++) {
163 | if ((data.status[i].name == 'hunger') || (data.status[i].name == 'thirst')) { var statusValue = Math.floor(100 - data.status[i].value); }
164 | else { var statusValue = Math.floor(data.status[i].value); }
165 | if (document.querySelector('#'+data.status[i].name+' span')) { document.querySelector('#'+data.status[i].name+' span').style.height = statusValue+'%'; }
166 | if (statusValue <= 35) {
167 | if (document.querySelector('#'+data.status[i].name)) {
168 | if (document.querySelector('#'+data.status[i].name).classList.contains('dying') == false) {
169 | document.querySelector('#'+data.status[i].name).classList.add('dying');
170 | }
171 | }
172 | }
173 | else {
174 | if (document.querySelector('#'+data.status[i].name)) { document.querySelector('#'+data.status[i].name).classList.remove('dying'); }
175 |
176 | }
177 | }
178 | if (document.querySelector('#health').classList.contains('dead')) { document.querySelector('#health').classList.remove('dead'); }
179 | }
180 | },
181 |
182 |
183 | updateWeapon: function(data) {
184 | var weaponContainer = document.querySelector('#weapon');
185 | var bulletsContainer = document.querySelector('#bullets');
186 |
187 | if (data.status.armed == true) {
188 |
189 | var oldWeapon = document.querySelector('#weapon_image img').src;
190 | var newWeapon = 'img/weapons/'+data.status.weapon+'.png';
191 | if (oldWeapon != newWeapon) { document.querySelector('#weapon_image img').src = newWeapon; }
192 |
193 | if (weaponContainer.classList.contains('armed') == false) {
194 | weaponContainer.classList.remove('unarmed', 'fadeOut');
195 | weaponContainer.classList.add('armed', 'fadeIn');
196 | }
197 |
198 | }
199 | else {
200 |
201 | if (weaponContainer.classList.contains('unarmed') == false) {
202 | weaponContainer.classList.remove('armed', 'fadeIn');
203 | weaponContainer.classList.add('unarmed', 'fadeOut');
204 | }
205 |
206 | }
207 | },
208 |
209 |
210 |
211 |
212 |
213 |
214 | updateVehicle: function(data) {
215 |
216 | var vehicleInfo = document.querySelector('.info.vehicle');
217 | var vehicleSeatbelt = document.querySelector('#seatbelt');
218 | var vehicleLights = document.querySelector('#lights');
219 | var vehicleSignals = document.querySelector('#signals');
220 | var vehicleFuel = document.querySelector('#fuel');
221 | var vehicleCruiser = document.querySelector('#vehicle-speed strong');
222 | var vehiclesCars = [0,1,2,3,4,5,6,7,8,9,10,11,12,17,18,19,20];
223 |
224 | if (data.status == true) {
225 | if (vehicleInfo.classList.contains('inactive')) {
226 |
227 | vehicleSeatbelt.style.display = 'none';
228 | vehicleLights.style.display = 'none';
229 | vehicleSignals.style.display = 'none';
230 | vehicleFuel.style.display = 'none';
231 |
232 | if (vehiclesCars.indexOf(data.type) > -1) {
233 | document.querySelector('#vehicle-others').style.display = 'none';
234 | document.querySelector('#vehicle-gear').style.display = 'block';
235 |
236 | vehicleSeatbelt.style.display = 'block';
237 | vehicleLights.style.display = 'block';
238 | vehicleSignals.style.display = 'block';
239 | vehicleFuel.style.display = 'block';
240 |
241 | document.querySelector('#vehicle-gear').style.display = 'block';
242 | }
243 |
244 | else {
245 | document.querySelector('#vehicle-others').style.display = 'block';
246 | document.querySelector('#vehicle-gear').style.display = 'none';
247 | document.querySelector('#vehicle-others i').classList.remove('fa-biking', 'fa-helicopter', 'fa-ship');
248 |
249 | if (data.type == 13) { document.querySelector('#vehicle-others i').classList.add('fa-biking'); }
250 | else if (data.type == 14) { document.querySelector('#vehicle-others i').classList.add('fa-ship'); }
251 | else if (data.type == 15) { document.querySelector('#vehicle-others i').classList.add('fa-helicopter'); }
252 | else if (data.type == 16) { document.querySelector('#vehicle-others i').classList.add('fa-plane'); }
253 | else if (data.type == 21) { document.querySelector('#vehicle-others i').classList.add('fa-train'); }
254 | }
255 |
256 | vehicleInfo.classList.remove('inactive');
257 | vehicleInfo.classList.add('active', 'fadeIn');
258 | }
259 |
260 | if (vehicleInfo.classList.contains('updated') == false) {
261 |
262 | var vehicleSpeedUnit = data.config.speedUnit.slice(0,2)+'/'+data.config.speedUnit.slice(-1);
263 | var vehicleAverageSpeed = Math.ceil(data.config.maxSpeed / 6);
264 |
265 | vehicleInfo.classList.add('updated');
266 | saferInnerHTML(vehicleCruiser,vehicleSpeedUnit);
267 |
268 | }
269 |
270 |
271 |
272 |
273 | var previousGear = document.querySelector('#vehicle-gear span').innerHTML;
274 | var currentGear = data.gear;
275 | if (previousGear != currentGear) { document.querySelector('#vehicle-gear').classList.add('pulse') }
276 | saferInnerHTML(document.querySelector('#vehicle-gear span'), data.gear);
277 |
278 |
279 |
280 |
281 |
282 |
283 | var speedometerCircle = document.querySelector('#progress-speed svg circle.speed');
284 | var speedPercentage = Math.floor(Math.floor(data.speed*100)/data.config.maxSpeed);
285 |
286 | speedometerCircle.classList.remove('zero');
287 | speedometerCircle.classList.remove('twentyfive');
288 | speedometerCircle.classList.remove('fifty');
289 | speedometerCircle.classList.remove('seventyfive');
290 |
291 | if (speedPercentage >= 0 && speedPercentage <= 25) { speedometerCircle.classList.add('zero'); }
292 | else if (speedPercentage > 25 && speedPercentage <= 50) { speedometerCircle.classList.add('twentyfive'); }
293 | else if (speedPercentage > 50 && speedPercentage <= 75) { speedometerCircle.classList.add('fifty'); }
294 | else if (speedPercentage > 75) { speedometerCircle.classList.add('seventyfive'); }
295 |
296 | document.querySelector('#progress-speed svg circle.speed').style.strokeDashoffset = data.nail;
297 | saferInnerHTML(document.querySelector('#vehicle-speed span'), data.speed);
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 | if ( (data.seatbelt.status == true) && (vehicleSeatbelt.classList.contains('on') == false) ) {
307 | vehicleSeatbelt.classList.remove('off');
308 | vehicleSeatbelt.classList.add('on');
309 |
310 | eventCallback.sound('sounds/seatbelt-buckle.ogg', { volume: '0.50' });
311 | }
312 | else if ( (data.seatbelt.status == false) && (vehicleSeatbelt.classList.contains('off') == false) ) {
313 | vehicleSeatbelt.classList.remove('on');
314 | vehicleSeatbelt.classList.add('off');
315 |
316 | eventCallback.sound('sounds/seatbelt-unbuckle.ogg', { volume: '0.50' });
317 | }
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 | if (vehicleCruiser.classList.contains(data.cruiser) == false) {
329 | vehicleCruiser.classList.remove('on','off');
330 | vehicleCruiser.classList.add(data.cruiser);
331 | }
332 |
333 |
334 |
335 |
336 | if (data.siren == true) { document.querySelector('#vehicle-gear').classList.add('pulsing'); }
337 | else { document.querySelector('#vehicle-gear').classList.remove('pulsing'); }
338 |
339 |
340 |
341 |
342 |
343 |
344 | if (vehicleLights.classList.contains(data.lights) == false) {
345 | vehicleLights.classList.remove('normal','high','off');
346 | vehicleLights.classList.add(data.lights);
347 |
348 | if (data.lights == 'high') { vehicleLights.querySelector('i img').src = 'img/vehicle-lights-high.png'; }
349 | else { vehicleLights.querySelector('i img').src = 'img/vehicle-lights.png'; }
350 | }
351 |
352 |
353 |
354 |
355 |
356 |
357 |
358 |
359 |
360 |
361 | if (vehicleSignals.classList.contains(data.signals) == false) {
362 |
363 | vehicleSignals.querySelector('i').className = 'fa fa-arrows-alt-h';
364 | vehicleSignals.classList.remove('left','right','both','off');
365 |
366 | if ( (data.signals == 'left') || (data.signals == 'right') || (data.signals == 'both') ) {
367 |
368 | var classSignal = 'fa-long-arrow-alt-'+data.signals;
369 | if (data.signals == 'both') { classSignal = 'fa-arrows-alt-h'; }
370 |
371 | vehicleSignals.querySelector('i').classList.add('fas',classSignal);
372 | vehicleSignals.classList.add(data.signals, 'dying');
373 |
374 | eventCallback.sound('sounds/car-indicators.ogg', { loop: 'loop' });
375 | }
376 |
377 | else if (data.signals == 'off') {
378 | vehicleSignals.querySelector('i').classList.add('fas','fa-arrows-alt-h');
379 | vehicleSignals.classList.remove('dying');
380 | vehicleSignals.classList.add(data.signals);
381 |
382 | eventCallback.sound();
383 | }
384 |
385 |
386 | }
387 |
388 |
389 |
390 |
391 |
392 |
393 |
394 |
395 |
396 |
397 |
398 |
399 | vehicleFuel.querySelector('span').style.height = data.fuel+'%';
400 |
401 | if (data.fuel <= 35) {
402 | if (vehicleFuel.classList.contains('dying') == false) { vehicleFuel.classList.add('dying'); }
403 | }
404 | else { vehicleFuel.classList.remove('dying'); }
405 |
406 | }
407 | else {
408 | if (vehicleInfo.classList.contains('active')) {
409 | vehicleSeatbelt.classList.remove('on');
410 | vehicleCruiser.classList.remove('on');
411 |
412 | vehicleInfo.classList.remove('active');
413 | vehicleInfo.classList.add('inactive', 'fadeOut');
414 |
415 | eventCallback.sound();
416 | }
417 |
418 | }
419 |
420 | },
421 |
422 | toggleUi: function(data) {
423 | var uiID = document.querySelector('#ui');
424 | if (data.value == true) {
425 | uiID.style.display = 'block';
426 | }
427 | else {
428 | uiID.style.display = 'none';
429 | }
430 | },
431 |
432 | sound: function(file = null, args = null) {
433 | var sound = document.querySelector('#sounds');
434 | var soundFile = file;
435 | var args = args;
436 |
437 | for (i = 0; i < sound.attributes.length; i++) {
438 | if (sound.attributes[i].name != 'id') { sound.removeAttribute(sound.attributes[i].name); }
439 | }
440 |
441 | if (soundFile == null) { sound.setAttribute('src', ''); }
442 | else {
443 | if (args == null) { }
444 | else {
445 | for (var key in args) {
446 | if (key != 'addMultiListener') {
447 | if (key == 'volume') { sound.volume = args[key]; }
448 | else { sound.setAttribute(key, args[key]); }
449 | }
450 | }
451 | }
452 |
453 | sound.setAttribute('src', soundFile);
454 | sound.play();
455 | }
456 |
457 |
458 | },
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 | };
485 |
486 | document.querySelectorAll('.icon i').addMultiListener('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () { this.parentElement.classList.remove('pulse'); this.parentElement.classList.remove('shooting'); });
487 |
488 | document.querySelectorAll('.info.vehicle').addMultiListener('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
489 | this.classList.remove('fadeOut', 'fadeIn');
490 | });
491 |
492 |
493 |
494 | window.addEventListener('message', function(event) {
495 | eventCallback[event.data.action](event.data);
496 | });
497 |
498 | }
--------------------------------------------------------------------------------
/ESX/esx_trew_hud/client/client.lua:
--------------------------------------------------------------------------------
1 | local zones = json.decode('{"HAWICK":"Hawick","ELYSIAN":"Elysian Island","SANDY":"Sandy Shores","DESRT":"Grand Senora Desert","LEGSQU":"Legion Square","MTCHIL":"Mount Chiliad","PALMPOW":"Palmer-Taylor Power Station","CCREAK":"Cassidy Creek","PROL":"North Yankton","PBLUFF":"Pacific Bluffs","MIRR":"Mirror Park","RICHM":"Richman","ZQ_UAR":"Davis Quartz","EAST_V":"East Vinewood","LAGO":"Lago Zancudo","BRADT":"Braddock Tunnel","NCHU":"North Chumash","CYPRE":"Cypress Flats","GALFISH":"Galilee","ZP_ORT":"Port of South Los Santos","PALETO":"Paleto Bay","BURTON":"Burton","GRAPES":"Grapeseed","DELSOL":"La Puerta","ALAMO":"Alamo Sea","DELPE":"Del Perro","ARMYB":"Fort Zancudo","STAD":"Maze Bank Arena","MORN":"Morningwood","CANNY":"Raton Canyon","ISHeist":"Cayo Perico Island","TEXTI":"Textile City","ALTA":"Alta","DTVINE":"Downtown Vinewood","HARMO":"Harmony","MURRI":"Murrieta Heights","KOREAT":"Little Seoul","GALLI":"Galileo Park","DOWNT":"Downtown","ZANCUDO":"Zancudo River","WVINE":"West Vinewood","BAYTRE":"Baytree Canyon","WINDF":"Ron Alternates Wind Farm","VINE":"Vinewood","EBURO":"El Burro Heights","DAVIS":"Davis","STRAW":"Strawberry","TONGVAV":"Tongva Valley","PALHIGH":"Palomino Highlands","TONGVAH":"Tongva Hills","CALAFB":"Calafia Bridge","CHAMH":"Chamberlain Hills","PBOX":"Pillbox Hill","MTJOSE":"Mount Josiah","TERMINA":"Terminal","HUMLAB":"Humane Labs and Research","PALFOR":"Paleto Forest","PALCOV":"Paleto Cove","TATAMO":"Tataviam Mountains","LDAM":"Land Act Dam","MOVIE":"Richards Majestic","VCANA":"Vespucci Canals","HORS":"Vinewood Racetrack","SKID":"Mission Row","CHU":"Chumash","SANCHIA":"San Chianski Mountain Range","CHIL":"Vinewood Hills","ROCKF":"Rockford Hills","RTRAK":"Redwood Lights Track","RGLEN":"Richman Glen","CMSW":"Chiliad Mountain State Wilderness","PROCOB":"Procopio Beach","RANCHO":"Rancho","GREATC":"Great Chaparral","BRADP":"Braddock Pass","ELGORL":"El Gordo Lighthouse","VESP":"Vespucci","OCEANA":"Pacific Ocean","JAIL":"Bolingbroke Penitentiary","OBSERV":"Galileo Observatory","BEACH":"Vespucci Beach","BHAMCA":"Banham Canyon","GOLF":"GWC and Golfing Society","SLAB":"Stab City","LACT":"Land Act Reservoir","LMESA":"La Mesa","DELBE":"Del Perro Beach","BANNING":"Banning","MTGORDO":"Mount Gordo","LOSPUER":"La Puerta","NOOSE":"N.O.O.S.E","AIRP":"Los Santos International Airport"}')
2 |
3 | local AllWeapons = json.decode('{"melee":{"dagger":"0x92A27487","bat":"0x958A4A8F","bottle":"0xF9E6AA4B","crowbar":"0x84BD7BFD","unarmed":"0xA2719263","flashlight":"0x8BB05FD7","golfclub":"0x440E4788","hammer":"0x4E875F73","hatchet":"0xF9DCBF2D","knuckle":"0xD8DF3C3C","knife":"0x99B507EA","machete":"0xDD5DF8D9","switchblade":"0xDFE37640","nightstick":"0x678B81B1","wrench":"0x19044EE0","battleaxe":"0xCD274149","poolcue":"0x94117305","stone_hatchet":"0x3813FC08"},"handguns":{"pistol":"0x1B06D571","pistol_mk2":"0xBFE256D4","combatpistol":"0x5EF9FEC4","appistol":"0x22D8FE39","stungun":"0x3656C8C1","pistol50":"0x99AEEB3B","snspistol":"0xBFD21232","snspistol_mk2":"0x88374054","heavypistol":"0xD205520E","vintagepistol":"0x83839C4","flaregun":"0x47757124","marksmanpistol":"0xDC4DB296","revolver":"0xC1B3C3D1","revolver_mk2":"0xCB96392F","doubleaction":"0x97EA20B8","raypistol":"0xAF3696A1"},"smg":{"microsmg":"0x13532244","smg":"0x2BE6766B","smg_mk2":"0x78A97CD0","assaultsmg":"0xEFE7E2DF","combatpdw":"0xA3D4D34","machinepistol":"0xDB1AA450","minismg":"0xBD248B55","raycarbine":"0x476BF155"},"shotguns":{"pumpshotgun":"0x1D073A89","pumpshotgun_mk2":"0x555AF99A","sawnoffshotgun":"0x7846A318","assaultshotgun":"0xE284C527","bullpupshotgun":"0x9D61E50F","musket":"0xA89CB99E","heavyshotgun":"0x3AABBBAA","dbshotgun":"0xEF951FBB","autoshotgun":"0x12E82D3D"},"assault_rifles":{"assaultrifle":"0xBFEFFF6D","assaultrifle_mk2":"0x394F415C","carbinerifle":"0x83BF0278","carbinerifle_mk2":"0xFAD1F1C9","advancedrifle":"0xAF113F99","specialcarbine":"0xC0A3098D","specialcarbine_mk2":"0x969C3D67","bullpuprifle":"0x7F229F94","bullpuprifle_mk2":"0x84D6FAFD","compactrifle":"0x624FE830"},"machine_guns":{"mg":"0x9D07F764","combatmg":"0x7FD62962","combatmg_mk2":"0xDBBD7280","gusenberg":"0x61012683"},"sniper_rifles":{"sniperrifle":"0x5FC3C11","heavysniper":"0xC472FE2","heavysniper_mk2":"0xA914799","marksmanrifle":"0xC734385A","marksmanrifle_mk2":"0x6A6C02E0"},"heavy_weapons":{"rpg":"0xB1CA77B1","grenadelauncher":"0xA284510B","grenadelauncher_smoke":"0x4DD2DC56","minigun":"0x42BF8A85","firework":"0x7F7497E5","railgun":"0x6D544C99","hominglauncher":"0x63AB0442","compactlauncher":"0x781FE4A","rayminigun":"0xB62D1F67"},"throwables":{"grenade":"0x93E220BD","bzgas":"0xA0973D5E","smokegrenade":"0xFDBC8A50","flare":"0x497FACC3","molotov":"0x24B17070","stickybomb":"0x2C3731D9","proxmine":"0xAB564B93","snowball":"0x787F0BB","pipebomb":"0xBA45E8B8","ball":"0x23C9F95C"},"misc":{"petrolcan":"0x34A67B97","fireextinguisher":"0x60EC506","parachute":"0xFBAB5776"}}')
4 | local vehiclesCars = {0,1,2,3,4,5,6,7,8,9,10,11,12,17,18,19,20};
5 | local isTalking = false
6 | local Playerid = PlayerId()
7 | local ServerId = 0
8 | function Startup()
9 | ServerId = GetPlayerServerId(Playerid)
10 | SendNUIMessage({ action = 'ui', config = Config.ui })
11 | SendNUIMessage({ action = 'setFont', url = Config.font.url, name = Config.font.name })
12 | SendNUIMessage({ action = 'setLogo', value = Config.serverLogo })
13 | SendNUIMessage({ action = 'setVoiceDistance', value = LocalPlayer.state.proximity and LocalPlayer.state.proximity.mode or "Normal" })
14 | SendNUIMessage({ action = 'setMoney', id = 'plyId', value = tostring(ServerId) })
15 | end
16 |
17 | AddEventHandler('esx:onPlayerSpawn', function()
18 | Startup()
19 | end)
20 |
21 | -- Vehicle Info
22 | local vehicleCruiser
23 | local vehicleSignalIndicator = 'off'
24 | local seatbeltEjectSpeed = 45.0
25 | local seatbeltEjectAccel = 100.0
26 | local seatbeltIsOn = false
27 | local currSpeed = 0.0
28 | local prevVelocity = {x = 0.0, y = 0.0, z = 0.0}
29 |
30 | CreateThread(function()
31 | Startup()
32 | while true do
33 | Wait(200)
34 | local player = ESX.PlayerData.ped
35 | local vehicle = GetVehiclePedIsIn(player, false)
36 | local position = GetEntityCoords(player)
37 | local vehicleIsOn = GetIsVehicleEngineRunning(vehicle)
38 | local vehicleInfo
39 |
40 | if IsPauseMenuActive() then -- ESC Key
41 | if not isPauseMenu then
42 | isPauseMenu = not isPauseMenu
43 | SendNUIMessage({ action = 'toggleUi', value = false })
44 | end
45 | else
46 | if isPauseMenu then
47 | isPauseMenu = not isPauseMenu
48 | SendNUIMessage({ action = 'toggleUi', value = true })
49 | end
50 | end
51 | if IsPedInAnyVehicle(player, false) and vehicleIsOn then
52 | local vehicleClass = GetVehicleClass(vehicle)
53 |
54 | if not Config.ui.showMinimapOnFoot and Config.ui.showMinimapInVehicle then
55 | DisplayRadar(true)
56 | end
57 |
58 | -- Vehicle Speed
59 | local vehicleSpeedSource = GetEntitySpeed(vehicle)
60 | local vehicleSpeed
61 | if Config.vehicle.speedUnit == 'MPH' then
62 | vehicleSpeed = math.ceil(vehicleSpeedSource * 2.237)
63 | else
64 | vehicleSpeed = math.ceil(vehicleSpeedSource * 3.6)
65 | end
66 |
67 | -- Vehicle Gradient Speed
68 | local vehicleNailSpeed
69 |
70 | if vehicleSpeed > Config.vehicle.maxSpeed then
71 | vehicleNailSpeed = math.ceil( 280 - math.ceil( math.ceil(Config.vehicle.maxSpeed * 205) / Config.vehicle.maxSpeed) )
72 | else
73 | vehicleNailSpeed = math.ceil( 280 - math.ceil( math.ceil(vehicleSpeed * 205) / Config.vehicle.maxSpeed) )
74 | end
75 |
76 | -- Vehicle Fuel and Gear
77 | local vehicleFuel
78 | vehicleFuel = GetVehicleFuelLevel(vehicle)
79 |
80 | local vehicleGear = GetVehicleCurrentGear(vehicle)
81 |
82 | if (vehicleSpeed == 0 and vehicleGear == 0) or (vehicleSpeed == 0 and vehicleGear == 1) then
83 | vehicleGear = 'N'
84 | elseif vehicleSpeed > 0 and vehicleGear == 0 then
85 | vehicleGear = 'R'
86 | end
87 |
88 | -- Vehicle Lights
89 | local vehicleVal,vehicleLights,vehicleHighlights = GetVehicleLightsState(vehicle)
90 | local vehicleIsLightsOn
91 | if vehicleLights == 1 and vehicleHighlights == 0 then
92 | vehicleIsLightsOn = 'normal'
93 | elseif (vehicleLights == 1 and vehicleHighlights == 1) or (vehicleLights == 0 and vehicleHighlights == 1) then
94 | vehicleIsLightsOn = 'high'
95 | else
96 | vehicleIsLightsOn = 'off'
97 | end
98 |
99 | -- Vehicle Siren
100 | local vehicleSiren
101 |
102 | if IsVehicleSirenOn(vehicle) then
103 | vehicleSiren = true
104 | else
105 | vehicleSiren = false
106 | end
107 |
108 | -- Vehicle Seatbelt
109 | if has_value(vehiclesCars, vehicleClass) and vehicleClass ~= 8 then
110 |
111 | local prevSpeed = currSpeed
112 | currSpeed = vehicleSpeedSource
113 |
114 | SetPedConfigFlag(ESX.PlayerData.ped, 32, true)
115 |
116 | if not seatbeltIsOn then
117 | local vehIsMovingFwd = GetEntitySpeedVector(vehicle, true).y > 1.0
118 | local vehAcc = (prevSpeed - currSpeed) / GetFrameTime()
119 | if (vehIsMovingFwd and (prevSpeed > (seatbeltEjectSpeed/2.237)) and (vehAcc > (seatbeltEjectAccel*9.81))) then
120 |
121 | SetEntityCoords(player, position.x, position.y, position.z - 0.47, true, true, true)
122 | SetEntityVelocity(player, prevVelocity.x, prevVelocity.y, prevVelocity.z)
123 | SetPedToRagdoll(player, 1000, 1000, 0, 0, 0, 0)
124 | else
125 | -- Update previous velocity for ejecting player
126 | prevVelocity = GetEntityVelocity(vehicle)
127 | end
128 |
129 | else
130 |
131 | DisableControlAction(0, 75)
132 |
133 | end
134 | end
135 |
136 | vehicleInfo = {
137 | action = 'updateVehicle',
138 | status = true,
139 | speed = vehicleSpeed,
140 | nail = vehicleNailSpeed,
141 | gear = vehicleGear,
142 | fuel = vehicleFuel,
143 | lights = vehicleIsLightsOn,
144 | signals = vehicleSignalIndicator,
145 | cruiser = vehicleCruiser,
146 | type = vehicleClass,
147 | siren = vehicleSiren,
148 | seatbelt = {},
149 |
150 | config = {
151 | speedUnit = Config.vehicle.speedUnit,
152 | maxSpeed = Config.vehicle.maxSpeed
153 | }
154 | }
155 |
156 | vehicleInfo['seatbelt']['status'] = seatbeltIsOn
157 | else
158 | vehicleCruiser = false
159 | vehicleNailSpeed = 0
160 | vehicleSignalIndicator = 'off'
161 |
162 | seatbeltIsOn = false
163 |
164 | vehicleInfo = {
165 | action = 'updateVehicle',
166 |
167 | status = false,
168 | nail = vehicleNailSpeed,
169 | seatbelt = { status = seatbeltIsOn },
170 | cruiser = vehicleCruiser,
171 | signals = vehicleSignalIndicator,
172 | type = 0,
173 | }
174 |
175 | if not Config.ui.showMinimapOnFoot then
176 | DisplayRadar(false)
177 | end
178 |
179 | end
180 |
181 | SendNUIMessage(vehicleInfo)
182 |
183 | if Config.ui.showLocation then
184 | local player = ESX.PlayerData.ped
185 | local position = GetEntityCoords(player)
186 | local zoneNameFull = zones[GetNameOfZone(position.x, position.y, position.z)]
187 | local streetName = GetStreetNameFromHashKey(GetStreetNameAtCoord(position.x, position.y, position.z))
188 |
189 | local locationMessage = nil
190 |
191 | if zoneNameFull then
192 | locationMessage = streetName .. ', ' .. zoneNameFull
193 | else
194 | locationMessage = streetName
195 | end
196 |
197 | locationMessage = string.format(
198 | Locales[Config.Locale]['you_are_on_location'],
199 | locationMessage
200 | )
201 |
202 | SendNUIMessage({ action = 'setText', id = 'location', value = locationMessage })
203 | end
204 |
205 | if Config.ui.showVoice then
206 | if NetworkIsPlayerTalking(Playerid) and not isTalking then
207 | isTalking = not isTalking
208 | SendNUIMessage({ action = 'isTalking', value = isTalking })
209 | elseif not NetworkIsPlayerTalking(Playerid) and isTalking then
210 | isTalking = not isTalking
211 | SendNUIMessage({ action = 'isTalking', value = isTalking })
212 | end
213 | end
214 | end
215 | end)
216 |
217 | CreateThread(function()
218 |
219 | while true do
220 | Wait(2000)
221 |
222 | local playerStatus
223 | local showPlayerStatus = 0
224 | playerStatus = { action = 'setStatus', status = {} }
225 |
226 | if Config.ui.showHealth then
227 | showPlayerStatus = (showPlayerStatus+1)
228 |
229 | playerStatus.isdead = ESX.PlayerData.dead
230 |
231 | playerStatus['status'][showPlayerStatus] = {
232 | name = 'health',
233 | value = GetEntityHealth(ESX.PlayerData.ped) - 100
234 | }
235 |
236 | end
237 |
238 | if Config.ui.showDate then
239 | SendNUIMessage({ action = 'setText', id = 'date', value = trewDate() })
240 | end
241 |
242 | if Config.ui.showArmor then
243 | showPlayerStatus = (showPlayerStatus+1)
244 |
245 | playerStatus['status'][showPlayerStatus] = {
246 | name = 'armor',
247 | value = GetPedArmour(ESX.PlayerData.ped),
248 | }
249 | end
250 |
251 | if Config.ui.showStamina then
252 | showPlayerStatus = (showPlayerStatus+1)
253 |
254 | playerStatus['status'][showPlayerStatus] = {
255 | name = 'stamina',
256 | value = 100 - GetPlayerSprintStaminaRemaining(Playerid),
257 | }
258 | end
259 |
260 | if showPlayerStatus > 0 then
261 | SendNUIMessage(playerStatus)
262 | end
263 |
264 | if ESX.PlayerData.job then
265 | local job
266 | local blackMoney
267 | local bank
268 | local money
269 |
270 | if ESX.PlayerData.job.label == ESX.PlayerData.job.grade_label then
271 | job = ESX.PlayerData.job.grade_label
272 | else
273 | job = ESX.PlayerData.job.label .. ': ' .. ESX.PlayerData.job.grade_label
274 | end
275 |
276 | for i=1, #ESX.PlayerData.accounts, 1 do
277 | if ESX.PlayerData.accounts[i].name == 'black_money' then
278 | blackMoney = ESX.PlayerData.accounts[i].money
279 | elseif ESX.PlayerData.accounts[i].name == 'bank' then
280 | bank = ESX.PlayerData.accounts[i].money
281 | elseif ESX.PlayerData.accounts[i].name == 'money' then
282 | money = ESX.PlayerData.accounts[i].money
283 | end
284 | end
285 |
286 | SendNUIMessage({ action = 'setText', id = 'job', value = job })
287 | SendNUIMessage({ action = 'setMoney', id = 'wallet', value = money })
288 | SendNUIMessage({ action = 'setMoney', id = 'bank', value = bank })
289 | SendNUIMessage({ action = 'setMoney', id = 'blackMoney', value = blackMoney })
290 |
291 | if ESX.PlayerData.job.grade_name and ESX.PlayerData.job.grade_name == 'boss' then
292 | if (Config.ui.showSocietyMoney) then
293 | SendNUIMessage({ action = 'element', task = 'enable', value = 'society' })
294 | end
295 | ESX.TriggerServerCallback('esx_society:getSocietyMoney', function(money)
296 | SendNUIMessage({ action = 'setMoney', id = 'society', value = money })
297 | end, ESX.PlayerData.job.name)
298 | else
299 | SendNUIMessage({ action = 'element', task = 'disable', value = 'society' })
300 | end
301 | end
302 |
303 | local playerStatus
304 | local showPlayerStatus = 0
305 | playerStatus = { action = 'setStatus', status = {} }
306 |
307 | if Config.ui.showHunger then
308 | showPlayerStatus = (showPlayerStatus+1)
309 |
310 | TriggerEvent('esx_status:getStatus', 'hunger', function(status)
311 | playerStatus['status'][showPlayerStatus] = {
312 | name = 'hunger',
313 | value = math.floor(100-status.getPercent())
314 | }
315 | end)
316 |
317 | end
318 |
319 | if Config.ui.showThirst then
320 | showPlayerStatus = (showPlayerStatus+1)
321 |
322 | TriggerEvent('esx_status:getStatus', 'thirst', function(status)
323 | playerStatus['status'][showPlayerStatus] = {
324 | name = 'thirst',
325 | value = math.floor(100-status.getPercent())
326 | }
327 | end)
328 | end
329 |
330 | if showPlayerStatus > 0 then
331 | SendNUIMessage(playerStatus)
332 | end
333 |
334 | if Config.ui.showVoice then
335 | AddEventHandler('pma-voice:setTalkingMode', function()
336 | SendNUIMessage({ action = 'setVoiceDistance', value = LocalPlayer.state.proximity and LocalPlayer.state.proximity.mode or "Normal" })
337 | end)
338 | end
339 | end
340 | end)
341 |
342 | -- Weapons
343 | if Config.ui.showWeapons then
344 | CreateThread(function()
345 | while true do
346 | local Sleep = 800
347 |
348 | local player = ESX.PlayerData.ped
349 | local status = {}
350 |
351 | if IsPedArmed(player, 7) then
352 | Sleep = 100
353 | local weapon = GetSelectedPedWeapon(player)
354 | local ammoTotal = GetAmmoInPedWeapon(player,weapon)
355 | local bool,ammoClip = GetAmmoInClip(player,weapon)
356 | local ammoRemaining = math.floor(ammoTotal - ammoClip)
357 |
358 | status['armed'] = true
359 |
360 | for key,value in pairs(AllWeapons) do
361 |
362 | for keyTwo,valueTwo in pairs(AllWeapons[key]) do
363 | if weapon == joaat('weapon_'..keyTwo) then
364 | status['weapon'] = keyTwo
365 |
366 |
367 | if key == 'melee' then
368 | SendNUIMessage({ action = 'element', task = 'disable', value = 'weapon_bullets' })
369 | SendNUIMessage({ action = 'element', task = 'disable', value = 'bullets' })
370 | else
371 | if keyTwo == 'stungun' then
372 | SendNUIMessage({ action = 'element', task = 'disable', value = 'weapon_bullets' })
373 | SendNUIMessage({ action = 'element', task = 'disable', value = 'bullets' })
374 | else
375 | SendNUIMessage({ action = 'element', task = 'enable', value = 'weapon_bullets' })
376 | SendNUIMessage({ action = 'element', task = 'enable', value = 'bullets' })
377 | end
378 | end
379 |
380 | end
381 | end
382 |
383 | end
384 |
385 | SendNUIMessage({ action = 'setText', id = 'weapon_clip', value = ammoClip })
386 | SendNUIMessage({ action = 'setText', id = 'weapon_ammo', value = ammoRemaining })
387 |
388 | else
389 | if status['armed'] then
390 | status['armed'] = false
391 | SendNUIMessage({ action = 'updateWeapon', status = status })
392 | end
393 | end
394 |
395 | SendNUIMessage({ action = 'updateWeapon', status = status })
396 | Wait(Sleep)
397 | end
398 | end)
399 | end
400 |
401 | ESX.RegisterInput("cruise", "[HUD] Cruise Control", "keyboard", Config.vehicle.keys.cruiser, function()
402 | local player = ESX.PlayerData.ped
403 | local vehicle = GetVehiclePedIsIn(player, false)
404 | local vehicleSpeedSource = GetEntitySpeed(vehicle)
405 | if GetPedInVehicleSeat(vehicle, -1) ~= player then
406 | return
407 | end
408 | if vehicleCruiser == 'on' then
409 | vehicleCruiser = 'off'
410 | SetEntityMaxSpeed(vehicle, GetVehicleHandlingFloat(vehicle,"CHandlingData","fInitialDriveMaxFlatVel"))
411 |
412 | else
413 | vehicleCruiser = 'on'
414 | SetEntityMaxSpeed(vehicle, vehicleSpeedSource)
415 | end
416 | end)
417 |
418 | ESX.RegisterInput("seatbelt", "[HUD] Seatbelt", "keyboard", Config.vehicle.keys.seatbelt, function()
419 | local player = ESX.PlayerData.ped
420 | local vehicle = GetVehiclePedIsIn(player, false)
421 | local vehicleClass = GetVehicleClass(vehicle)
422 | if not (IsPedInAnyVehicle(player, false) and GetIsVehicleEngineRunning(vehicle)) then
423 | return
424 | end
425 | if has_value(vehiclesCars, vehicleClass) ~= true and vehicleClass == 8 then
426 | return
427 | end
428 | seatbeltIsOn = not seatbeltIsOn
429 | end)
430 |
431 | ESX.RegisterInput("leftindicator", "[HUD] Left Indicator", "keyboard", Config.vehicle.keys.signalLeft, function()
432 | local player = ESX.PlayerData.ped
433 | local vehicle = GetVehiclePedIsIn(player, false)
434 | local vehicleClass = GetVehicleClass(vehicle)
435 | if has_value(vehiclesCars, vehicleClass) ~= true then
436 | return
437 | end
438 | if vehicleSignalIndicator == 'off' then
439 | vehicleSignalIndicator = 'left'
440 | else
441 | vehicleSignalIndicator = 'off'
442 | end
443 |
444 | TriggerEvent('trew_hud_ui:setCarSignalLights', vehicleSignalIndicator)
445 | end)
446 |
447 | ESX.RegisterInput("rightindicator", "[HUD] Right Indicator", "keyboard", Config.vehicle.keys.signalRight, function()
448 | local player = ESX.PlayerData.ped
449 | local vehicle = GetVehiclePedIsIn(player, false)
450 | local vehicleClass = GetVehicleClass(vehicle)
451 | if has_value(vehiclesCars, vehicleClass) ~= true then
452 | return
453 | end
454 | if vehicleSignalIndicator == 'off' then
455 | vehicleSignalIndicator = 'right'
456 | else
457 | vehicleSignalIndicator = 'off'
458 | end
459 |
460 | TriggerEvent('trew_hud_ui:setCarSignalLights', vehicleSignalIndicator)
461 | end)
462 |
463 | ESX.RegisterInput("bothindicator", "[HUD] Both Indicators", "keyboard", Config.vehicle.keys.signalBoth, function()
464 | local player = ESX.PlayerData.ped
465 | local vehicle = GetVehiclePedIsIn(player, false)
466 | local vehicleClass = GetVehicleClass(vehicle)
467 | if has_value(vehiclesCars, vehicleClass) ~= true then
468 | return
469 | end
470 | if vehicleSignalIndicator == 'off' then
471 | vehicleSignalIndicator = 'both'
472 | else
473 | vehicleSignalIndicator = 'off'
474 | end
475 |
476 | TriggerEvent('trew_hud_ui:setCarSignalLights', vehicleSignalIndicator)
477 | end)
478 |
479 | AddEventHandler('trew_hud_ui:setCarSignalLights', function(status)
480 | local driver = GetVehiclePedIsIn(ESX.PlayerData.ped, false)
481 | local hasTrailer,vehicleTrailer = GetVehicleTrailerVehicle(driver)
482 | local leftLight
483 | local rightLight
484 |
485 | if status == 'left' then
486 | leftLight = false
487 | rightLight = true
488 | if hasTrailer then driver = vehicleTrailer end
489 | elseif status == 'right' then
490 | leftLight = true
491 | rightLight = false
492 | if hasTrailer then driver = vehicleTrailer end
493 |
494 | elseif status == 'both' then
495 | leftLight = true
496 | rightLight = true
497 | if hasTrailer then driver = vehicleTrailer end
498 |
499 | else
500 | leftLight = false
501 | rightLight = false
502 | if hasTrailer then driver = vehicleTrailer end
503 |
504 | end
505 |
506 | SetVehicleIndicatorLights(driver, 0, leftLight)
507 | SetVehicleIndicatorLights(driver, 1, rightLight)
508 | end)
509 |
510 | function trewDate()
511 | local timeString = nil
512 | local weekDay = Translate('weekDay_' .. GetClockDayOfWeek())
513 | local month = Translate('month_' .. GetClockMonth())
514 | local day = Translate('day_' .. GetClockDayOfMonth())
515 | local year = GetClockYear()
516 | local hour = GetClockHours()
517 | local minutes = GetClockMinutes()
518 | local time = nil
519 | local AmPm = ''
520 |
521 |
522 | if Config.date.AmPm then
523 | if hour >= 13 and hour <= 24 then
524 | hour = hour - 12
525 | AmPm = 'PM'
526 | else
527 | if hour == 0 or hour == 24 then
528 | hour = 12
529 | end
530 | AmPm = 'AM'
531 | end
532 |
533 | end
534 |
535 | if hour <= 9 then
536 | hour = '0' .. hour
537 | end
538 | if minutes <= 9 then
539 | minutes = '0' .. minutes
540 | end
541 |
542 | time = hour .. ':' .. minutes .. ' ' .. AmPm
543 |
544 | local date_format = Locales[Config.Locale]['date_format'][Config.date.format]
545 |
546 | if Config.date.format == 'default' then
547 | timeString = string.format(
548 | date_format,
549 | day, month, year
550 | )
551 | elseif Config.date.format == 'simple' then
552 | timeString = string.format(
553 | date_format,
554 | day, month
555 | )
556 |
557 | elseif Config.date.format == 'simpleWithHours' then
558 | timeString = string.format(
559 | date_format,
560 | time, day, month
561 | )
562 | elseif Config.date.format == 'withWeekday' then
563 | timeString = string.format(
564 | date_format,
565 | weekDay, day, month, year
566 | )
567 | elseif Config.date.format == 'withHours' then
568 | timeString = string.format(
569 | date_format,
570 | time, day, month, year
571 | )
572 | elseif Config.date.format == 'withWeekdayAndHours' then
573 | timeString = string.format(
574 | date_format,
575 | time, weekDay, day, month, year
576 | )
577 | end
578 |
579 | return timeString
580 | end
581 |
582 | function has_value(tab, val)
583 | for index, value in ipairs(tab) do
584 | if value == val then
585 | return true
586 | end
587 | end
588 |
589 | return false
590 | end
591 |
592 | local toggleui = false
593 | RegisterCommand('toggleui', function()
594 | if not toggleui then
595 | SendNUIMessage({ action = 'element', task = 'disable', value = 'job' })
596 | SendNUIMessage({ action = 'element', task = 'disable', value = 'society' })
597 | SendNUIMessage({ action = 'element', task = 'disable', value = 'bank' })
598 | SendNUIMessage({ action = 'element', task = 'disable', value = 'blackMoney' })
599 | SendNUIMessage({ action = 'element', task = 'disable', value = 'wallet' })
600 | else
601 | if (Config.ui.showJob) then
602 | SendNUIMessage({ action = 'element', task = 'enable', value = 'job' })
603 | end
604 | if (Config.ui.showSocietyMoney) then
605 | SendNUIMessage({ action = 'element', task = 'enable', value = 'society' })
606 | end
607 | if (Config.ui.showBankMoney) then
608 | SendNUIMessage({ action = 'element', task = 'enable', value = 'bank' })
609 | end
610 | if (Config.ui.showBlackMoney) then
611 | SendNUIMessage({ action = 'element', task = 'enable', value = 'blackMoney' })
612 | end
613 | if (Config.ui.showWalletMoney) then
614 | SendNUIMessage({ action = 'element', task = 'enable', value = 'wallet' })
615 | end
616 | end
617 |
618 | toggleui = not toggleui
619 | end)
620 |
621 | exports('createStatus', function(args)
622 | local statusCreation = { action = 'createStatus', status = args['status'], color = args['color'], icon = args['icon'] }
623 | SendNUIMessage(statusCreation)
624 | end)
625 |
626 | exports('setStatus', function(args)
627 | local playerStatus = { action = 'setStatus', status = {
628 | { name = args['name'], value = args['value'] }
629 | }}
630 | SendNUIMessage(playerStatus)
631 | end)
632 |
633 | if not Config.ui.showMinimapHealth then
634 | Citizen.CreateThread(function()
635 | local minimap = RequestScaleformMovie("minimap")
636 | SetBigmapActive(true, false)
637 | Wait(0)
638 | SetBigmapActive(false, false)
639 | while true do
640 | local Sleep = 500
641 | if not IsRadarHidden() then
642 | Sleep = 0
643 | BeginScaleformMovieMethod(minimap, "SETUP_HEALTH_ARMOUR")
644 | ScaleformMovieMethodAddParamInt(3)
645 | EndScaleformMovieMethod()
646 | end
647 | Wait(Sleep)
648 | end
649 |
650 | end)
651 | end
652 |
--------------------------------------------------------------------------------
/QBCore/qb_trew_hud/client/client.lua:
--------------------------------------------------------------------------------
1 | local zones = json.decode('{"HAWICK":"Hawick","ELYSIAN":"Elysian Island","SANDY":"Sandy Shores","DESRT":"Grand Senora Desert","LEGSQU":"Legion Square","MTCHIL":"Mount Chiliad","PALMPOW":"Palmer-Taylor Power Station","CCREAK":"Cassidy Creek","PROL":"North Yankton","PBLUFF":"Pacific Bluffs","MIRR":"Mirror Park","RICHM":"Richman","ZQ_UAR":"Davis Quartz","EAST_V":"East Vinewood","LAGO":"Lago Zancudo","BRADT":"Braddock Tunnel","NCHU":"North Chumash","CYPRE":"Cypress Flats","GALFISH":"Galilee","ZP_ORT":"Port of South Los Santos","PALETO":"Paleto Bay","BURTON":"Burton","GRAPES":"Grapeseed","DELSOL":"La Puerta","ALAMO":"Alamo Sea","DELPE":"Del Perro","ARMYB":"Fort Zancudo","STAD":"Maze Bank Arena","MORN":"Morningwood","CANNY":"Raton Canyon","ISHeist":"Cayo Perico Island","TEXTI":"Textile City","ALTA":"Alta","DTVINE":"Downtown Vinewood","HARMO":"Harmony","MURRI":"Murrieta Heights","KOREAT":"Little Seoul","GALLI":"Galileo Park","DOWNT":"Downtown","ZANCUDO":"Zancudo River","WVINE":"West Vinewood","BAYTRE":"Baytree Canyon","WINDF":"Ron Alternates Wind Farm","VINE":"Vinewood","EBURO":"El Burro Heights","DAVIS":"Davis","STRAW":"Strawberry","TONGVAV":"Tongva Valley","PALHIGH":"Palomino Highlands","TONGVAH":"Tongva Hills","CALAFB":"Calafia Bridge","CHAMH":"Chamberlain Hills","PBOX":"Pillbox Hill","MTJOSE":"Mount Josiah","TERMINA":"Terminal","HUMLAB":"Humane Labs and Research","PALFOR":"Paleto Forest","PALCOV":"Paleto Cove","TATAMO":"Tataviam Mountains","LDAM":"Land Act Dam","MOVIE":"Richards Majestic","VCANA":"Vespucci Canals","HORS":"Vinewood Racetrack","SKID":"Mission Row","CHU":"Chumash","SANCHIA":"San Chianski Mountain Range","CHIL":"Vinewood Hills","ROCKF":"Rockford Hills","RTRAK":"Redwood Lights Track","RGLEN":"Richman Glen","CMSW":"Chiliad Mountain State Wilderness","PROCOB":"Procopio Beach","RANCHO":"Rancho","GREATC":"Great Chaparral","BRADP":"Braddock Pass","ELGORL":"El Gordo Lighthouse","VESP":"Vespucci","OCEANA":"Pacific Ocean","JAIL":"Bolingbroke Penitentiary","OBSERV":"Galileo Observatory","BEACH":"Vespucci Beach","BHAMCA":"Banham Canyon","GOLF":"GWC and Golfing Society","SLAB":"Stab City","LACT":"Land Act Reservoir","LMESA":"La Mesa","DELBE":"Del Perro Beach","BANNING":"Banning","MTGORDO":"Mount Gordo","LOSPUER":"La Puerta","NOOSE":"N.O.O.S.E","AIRP":"Los Santos International Airport"}')
2 | local QBCore = exports['qb-core']:GetCoreObject()
3 | local AllWeapons = json.decode('{"melee":{"dagger":"0x92A27487","bat":"0x958A4A8F","bottle":"0xF9E6AA4B","crowbar":"0x84BD7BFD","unarmed":"0xA2719263","flashlight":"0x8BB05FD7","golfclub":"0x440E4788","hammer":"0x4E875F73","hatchet":"0xF9DCBF2D","knuckle":"0xD8DF3C3C","knife":"0x99B507EA","machete":"0xDD5DF8D9","switchblade":"0xDFE37640","nightstick":"0x678B81B1","wrench":"0x19044EE0","battleaxe":"0xCD274149","poolcue":"0x94117305","stone_hatchet":"0x3813FC08"},"handguns":{"pistol":"0x1B06D571","pistol_mk2":"0xBFE256D4","combatpistol":"0x5EF9FEC4","appistol":"0x22D8FE39","stungun":"0x3656C8C1","pistol50":"0x99AEEB3B","snspistol":"0xBFD21232","snspistol_mk2":"0x88374054","heavypistol":"0xD205520E","vintagepistol":"0x83839C4","flaregun":"0x47757124","marksmanpistol":"0xDC4DB296","revolver":"0xC1B3C3D1","revolver_mk2":"0xCB96392F","doubleaction":"0x97EA20B8","raypistol":"0xAF3696A1"},"smg":{"microsmg":"0x13532244","smg":"0x2BE6766B","smg_mk2":"0x78A97CD0","assaultsmg":"0xEFE7E2DF","combatpdw":"0xA3D4D34","machinepistol":"0xDB1AA450","minismg":"0xBD248B55","raycarbine":"0x476BF155"},"shotguns":{"pumpshotgun":"0x1D073A89","pumpshotgun_mk2":"0x555AF99A","sawnoffshotgun":"0x7846A318","assaultshotgun":"0xE284C527","bullpupshotgun":"0x9D61E50F","musket":"0xA89CB99E","heavyshotgun":"0x3AABBBAA","dbshotgun":"0xEF951FBB","autoshotgun":"0x12E82D3D"},"assault_rifles":{"assaultrifle":"0xBFEFFF6D","assaultrifle_mk2":"0x394F415C","carbinerifle":"0x83BF0278","carbinerifle_mk2":"0xFAD1F1C9","advancedrifle":"0xAF113F99","specialcarbine":"0xC0A3098D","specialcarbine_mk2":"0x969C3D67","bullpuprifle":"0x7F229F94","bullpuprifle_mk2":"0x84D6FAFD","compactrifle":"0x624FE830"},"machine_guns":{"mg":"0x9D07F764","combatmg":"0x7FD62962","combatmg_mk2":"0xDBBD7280","gusenberg":"0x61012683"},"sniper_rifles":{"sniperrifle":"0x5FC3C11","heavysniper":"0xC472FE2","heavysniper_mk2":"0xA914799","marksmanrifle":"0xC734385A","marksmanrifle_mk2":"0x6A6C02E0"},"heavy_weapons":{"rpg":"0xB1CA77B1","grenadelauncher":"0xA284510B","grenadelauncher_smoke":"0x4DD2DC56","minigun":"0x42BF8A85","firework":"0x7F7497E5","railgun":"0x6D544C99","hominglauncher":"0x63AB0442","compactlauncher":"0x781FE4A","rayminigun":"0xB62D1F67"},"throwables":{"grenade":"0x93E220BD","bzgas":"0xA0973D5E","smokegrenade":"0xFDBC8A50","flare":"0x497FACC3","molotov":"0x24B17070","stickybomb":"0x2C3731D9","proxmine":"0xAB564B93","snowball":"0x787F0BB","pipebomb":"0xBA45E8B8","ball":"0x23C9F95C"},"misc":{"petrolcan":"0x34A67B97","fireextinguisher":"0x60EC506","parachute":"0xFBAB5776"}}')
4 | local vehiclesCars = {0,1,2,3,4,5,6,7,8,9,10,11,12,17,18,19,20};
5 | local isTalking = false
6 | local Playerid = PlayerId()
7 | local ServerId = 0
8 | function Startup()
9 | ServerId = GetPlayerServerId(Playerid)
10 | SendNUIMessage({ action = 'ui', config = Config.ui })
11 | SendNUIMessage({ action = 'setFont', url = Config.font.url, name = Config.font.name })
12 | SendNUIMessage({ action = 'setLogo', value = Config.serverLogo })
13 | SendNUIMessage({ action = 'setVoiceDistance', value = LocalPlayer.state.proximity and LocalPlayer.state.proximity.mode or "Normal" })
14 | SendNUIMessage({ action = 'setMoney', id = 'plyId', value = tostring(ServerId) })
15 | end
16 |
17 | function trewDate()
18 | local timeString = nil
19 | local weekDay = Translate('weekDay_' .. GetClockDayOfWeek())
20 | local month = Translate('month_' .. GetClockMonth())
21 | local day = Translate('day_' .. GetClockDayOfMonth())
22 | local year = GetClockYear()
23 | local hour = GetClockHours()
24 | local minutes = GetClockMinutes()
25 | local time = nil
26 | local AmPm = ''
27 |
28 |
29 | if Config.date.AmPm then
30 | if hour >= 13 and hour <= 24 then
31 | hour = hour - 12
32 | AmPm = 'PM'
33 | else
34 | if hour == 0 or hour == 24 then
35 | hour = 12
36 | end
37 | AmPm = 'AM'
38 | end
39 |
40 | end
41 |
42 | if hour <= 9 then
43 | hour = '0' .. hour
44 | end
45 | if minutes <= 9 then
46 | minutes = '0' .. minutes
47 | end
48 |
49 | time = hour .. ':' .. minutes .. ' ' .. AmPm
50 |
51 | local date_format = Locales[Config.Locale]['date_format'][Config.date.format]
52 |
53 | if Config.date.format == 'default' then
54 | timeString = string.format(
55 | date_format,
56 | day, month, year
57 | )
58 | elseif Config.date.format == 'simple' then
59 | timeString = string.format(
60 | date_format,
61 | day, month
62 | )
63 |
64 | elseif Config.date.format == 'simpleWithHours' then
65 | timeString = string.format(
66 | date_format,
67 | time, day, month
68 | )
69 | elseif Config.date.format == 'withWeekday' then
70 | timeString = string.format(
71 | date_format,
72 | weekDay, day, month, year
73 | )
74 | elseif Config.date.format == 'withHours' then
75 | timeString = string.format(
76 | date_format,
77 | time, day, month, year
78 | )
79 | elseif Config.date.format == 'withWeekdayAndHours' then
80 | timeString = string.format(
81 | date_format,
82 | time, weekDay, day, month, year
83 | )
84 | end
85 |
86 | return timeString
87 | end
88 |
89 | function has_value(tab, val)
90 | for index, value in ipairs(tab) do
91 | if value == val then
92 | return true
93 | end
94 | end
95 |
96 | return false
97 | end
98 |
99 |
100 | RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function()
101 | Startup()
102 | end)
103 |
104 | -- Vehicle Info
105 | local vehicleCruiser
106 | local vehicleSignalIndicator = 'off'
107 | local seatbeltEjectSpeed = 45.0
108 | local seatbeltEjectAccel = 100.0
109 | local seatbeltIsOn = false
110 | local currSpeed = 0.0
111 | local prevVelocity = {x = 0.0, y = 0.0, z = 0.0}
112 |
113 | -- From ESX Legacy/ESX Infinity
114 | function RegisterInput(command_name, label, input_group, key, on_press)
115 | RegisterCommand(command_name, on_press)
116 | RegisterKeyMapping(command_name, label, input_group, key)
117 | TriggerEvent('chat:removeSuggestion', '/'.. command_name)
118 | end
119 |
120 | CreateThread(function()
121 | Startup()
122 | while not LocalPlayer.state.isLoggedIn do
123 | Wait(0)
124 | end
125 | while true do
126 | Wait(200)
127 | local player = PlayerPedId()
128 | local vehicle = GetVehiclePedIsIn(player, false)
129 | local position = GetEntityCoords(player)
130 | local vehicleIsOn = GetIsVehicleEngineRunning(vehicle)
131 | local vehicleInfo
132 |
133 | if IsPauseMenuActive() then -- ESC Key
134 | if not isPauseMenu then
135 | isPauseMenu = not isPauseMenu
136 | SendNUIMessage({ action = 'toggleUi', value = false })
137 | end
138 | else
139 | if isPauseMenu then
140 | isPauseMenu = not isPauseMenu
141 | SendNUIMessage({ action = 'toggleUi', value = true })
142 | end
143 | end
144 | if IsPedInAnyVehicle(player, false) and vehicleIsOn then
145 | local vehicleClass = GetVehicleClass(vehicle)
146 |
147 | if not Config.ui.showMinimapOnFoot and Config.ui.showMinimapInVehicle then
148 | DisplayRadar(true)
149 | end
150 |
151 | -- Vehicle Speed
152 | local vehicleSpeedSource = GetEntitySpeed(vehicle)
153 | local vehicleSpeed
154 | if Config.vehicle.speedUnit == 'MPH' then
155 | vehicleSpeed = math.ceil(vehicleSpeedSource * 2.237)
156 | else
157 | vehicleSpeed = math.ceil(vehicleSpeedSource * 3.6)
158 | end
159 |
160 | -- Vehicle Gradient Speed
161 | local vehicleNailSpeed
162 |
163 | if vehicleSpeed > Config.vehicle.maxSpeed then
164 | vehicleNailSpeed = math.ceil( 280 - math.ceil( math.ceil(Config.vehicle.maxSpeed * 205) / Config.vehicle.maxSpeed) )
165 | else
166 | vehicleNailSpeed = math.ceil( 280 - math.ceil( math.ceil(vehicleSpeed * 205) / Config.vehicle.maxSpeed) )
167 | end
168 |
169 | -- Vehicle Fuel and Gear
170 | local vehicleFuel
171 | vehicleFuel = GetVehicleFuelLevel(vehicle)
172 |
173 | local vehicleGear = GetVehicleCurrentGear(vehicle)
174 |
175 | if (vehicleSpeed == 0 and vehicleGear == 0) or (vehicleSpeed == 0 and vehicleGear == 1) then
176 | vehicleGear = 'N'
177 | elseif vehicleSpeed > 0 and vehicleGear == 0 then
178 | vehicleGear = 'R'
179 | end
180 |
181 | -- Vehicle Lights
182 | local vehicleVal,vehicleLights,vehicleHighlights = GetVehicleLightsState(vehicle)
183 | local vehicleIsLightsOn
184 | if vehicleLights == 1 and vehicleHighlights == 0 then
185 | vehicleIsLightsOn = 'normal'
186 | elseif (vehicleLights == 1 and vehicleHighlights == 1) or (vehicleLights == 0 and vehicleHighlights == 1) then
187 | vehicleIsLightsOn = 'high'
188 | else
189 | vehicleIsLightsOn = 'off'
190 | end
191 |
192 | -- Vehicle Siren
193 | local vehicleSiren
194 |
195 | if IsVehicleSirenOn(vehicle) then
196 | vehicleSiren = true
197 | else
198 | vehicleSiren = false
199 | end
200 |
201 | -- Vehicle Seatbelt
202 | if has_value(vehiclesCars, vehicleClass) and vehicleClass ~= 8 then
203 |
204 | local prevSpeed = currSpeed
205 | currSpeed = vehicleSpeedSource
206 |
207 | SetPedConfigFlag(PlayerPedId(), 32, true)
208 |
209 | if not seatbeltIsOn then
210 | local vehIsMovingFwd = GetEntitySpeedVector(vehicle, true).y > 1.0
211 | local vehAcc = (prevSpeed - currSpeed) / GetFrameTime()
212 | if (vehIsMovingFwd and (prevSpeed > (seatbeltEjectSpeed/2.237)) and (vehAcc > (seatbeltEjectAccel*9.81))) then
213 |
214 | SetEntityCoords(player, position.x, position.y, position.z - 0.47, true, true, true)
215 | SetEntityVelocity(player, prevVelocity.x, prevVelocity.y, prevVelocity.z)
216 | SetPedToRagdoll(player, 1000, 1000, 0, 0, 0, 0)
217 | else
218 | -- Update previous velocity for ejecting player
219 | prevVelocity = GetEntityVelocity(vehicle)
220 | end
221 |
222 | else
223 |
224 | DisableControlAction(0, 75)
225 |
226 | end
227 | end
228 |
229 | vehicleInfo = {
230 | action = 'updateVehicle',
231 | status = true,
232 | speed = vehicleSpeed,
233 | nail = vehicleNailSpeed,
234 | gear = vehicleGear,
235 | fuel = vehicleFuel,
236 | lights = vehicleIsLightsOn,
237 | signals = vehicleSignalIndicator,
238 | cruiser = vehicleCruiser,
239 | type = vehicleClass,
240 | siren = vehicleSiren,
241 | seatbelt = {},
242 |
243 | config = {
244 | speedUnit = Config.vehicle.speedUnit,
245 | maxSpeed = Config.vehicle.maxSpeed
246 | }
247 | }
248 |
249 | vehicleInfo['seatbelt']['status'] = seatbeltIsOn
250 | else
251 | vehicleCruiser = false
252 | vehicleNailSpeed = 0
253 | vehicleSignalIndicator = 'off'
254 |
255 | seatbeltIsOn = false
256 |
257 | vehicleInfo = {
258 | action = 'updateVehicle',
259 |
260 | status = false,
261 | nail = vehicleNailSpeed,
262 | seatbelt = { status = seatbeltIsOn },
263 | cruiser = vehicleCruiser,
264 | signals = vehicleSignalIndicator,
265 | type = 0,
266 | }
267 |
268 | if not Config.ui.showMinimapOnFoot then
269 | DisplayRadar(false)
270 | end
271 |
272 | end
273 |
274 | SendNUIMessage(vehicleInfo)
275 |
276 | if Config.ui.showLocation then
277 | local player = PlayerPedId()
278 | local position = GetEntityCoords(player)
279 | local zoneNameFull = zones[GetNameOfZone(position.x, position.y, position.z)]
280 | local streetName = GetStreetNameFromHashKey(GetStreetNameAtCoord(position.x, position.y, position.z))
281 |
282 | local locationMessage = nil
283 |
284 | if zoneNameFull then
285 | locationMessage = streetName .. ', ' .. zoneNameFull
286 | else
287 | locationMessage = streetName
288 | end
289 |
290 | locationMessage = string.format(
291 | Locales[Config.Locale]['you_are_on_location'],
292 | locationMessage
293 | )
294 |
295 | SendNUIMessage({ action = 'setText', id = 'location', value = locationMessage })
296 | end
297 |
298 | if Config.ui.showVoice then
299 | if NetworkIsPlayerTalking(Playerid) and not isTalking then
300 | isTalking = not isTalking
301 | SendNUIMessage({ action = 'isTalking', value = isTalking })
302 | elseif not NetworkIsPlayerTalking(Playerid) and isTalking then
303 | isTalking = not isTalking
304 | SendNUIMessage({ action = 'isTalking', value = isTalking })
305 | end
306 | end
307 | end
308 | end)
309 |
310 | CreateThread(function()
311 | while not LocalPlayer.state.isLoggedIn do
312 | Wait(0)
313 | end
314 | while true do
315 | Wait(2000)
316 | local PlayerData = QBCore.Functions.GetPlayerData()
317 | local playerStatus
318 | local showPlayerStatus = 0
319 | playerStatus = { action = 'setStatus', status = {} }
320 |
321 | if Config.ui.showHealth then
322 | showPlayerStatus = (showPlayerStatus+1)
323 |
324 | playerStatus.isdead = IsPedDeadOrDying(PlayerPedId(), true)
325 |
326 | playerStatus['status'][showPlayerStatus] = {
327 | name = 'health',
328 | value = GetEntityHealth(PlayerPedId()) - 100
329 | }
330 |
331 | end
332 |
333 | if Config.ui.showDate then
334 | SendNUIMessage({ action = 'setText', id = 'date', value = trewDate() })
335 | end
336 |
337 | if Config.ui.showArmor then
338 | showPlayerStatus = (showPlayerStatus+1)
339 |
340 | playerStatus['status'][showPlayerStatus] = {
341 | name = 'armor',
342 | value = GetPedArmour(PlayerPedId()),
343 | }
344 | end
345 |
346 | if Config.ui.showStamina then
347 | showPlayerStatus = (showPlayerStatus+1)
348 |
349 | playerStatus['status'][showPlayerStatus] = {
350 | name = 'stamina',
351 | value = 100 - GetPlayerSprintStaminaRemaining(Playerid),
352 | }
353 | end
354 |
355 | if showPlayerStatus > 0 then
356 | SendNUIMessage(playerStatus)
357 | end
358 |
359 | if PlayerData and PlayerData.job then
360 | local job
361 | local Crypto = PlayerData.money.crypto
362 | local bank = PlayerData.money.bank
363 | local money = PlayerData.money.cash
364 |
365 | if PlayerData.job.label == PlayerData.job.grade.name then
366 | job = PlayerData.job.grade.name
367 | else
368 | job = PlayerData.job.label .. ': ' .. PlayerData.job.grade.name
369 | end
370 |
371 | SendNUIMessage({ action = 'setText', id = 'job', value = job })
372 | SendNUIMessage({ action = 'setMoney', id = 'wallet', value = money })
373 | SendNUIMessage({ action = 'setMoney', id = 'bank', value = bank })
374 | SendNUIMessage({ action = 'setMoney', id = 'blackMoney', value = Crypto })
375 |
376 | if PlayerData.job.isboss then
377 | if (Config.ui.showSocietyMoney) then
378 | SendNUIMessage({ action = 'element', task = 'enable', value = 'society' })
379 | end
380 | QBCore.Functions.TriggerCallback('qb-bossmenu:server:GetAccount', function(cb)
381 | SendNUIMessage({ action = 'setMoney', id = 'society', value = tostring(cb) })
382 | end, PlayerData.job.name)
383 | else
384 | SendNUIMessage({ action = 'element', task = 'disable', value = 'society' })
385 | end
386 | end
387 |
388 | local playerStatus
389 | local showPlayerStatus = 0
390 | playerStatus = { action = 'setStatus', status = {} }
391 |
392 | if Config.ui.showHunger then
393 | showPlayerStatus = (showPlayerStatus+1)
394 | playerStatus['status'][showPlayerStatus] = {
395 | name = 'hunger',
396 | value = math.floor(PlayerData.metadata["hunger"])
397 | }
398 | end
399 |
400 | if Config.ui.showThirst then
401 | showPlayerStatus = (showPlayerStatus+1)
402 | playerStatus['status'][showPlayerStatus] = {
403 | name = 'thirst',
404 | value = math.floor(PlayerData.metadata["thirst"])
405 | }
406 | end
407 |
408 | if Config.ui.showStress then
409 | showPlayerStatus = (showPlayerStatus+1)
410 | playerStatus['status'][showPlayerStatus] = {
411 | name = 'stress',
412 | value = math.floor(PlayerData.metadata["stress"] > 1 and (PlayerData.metadata["stress"] / PlayerData.metadata["stress"]) * 100 or 1)
413 | }
414 | end
415 |
416 | if showPlayerStatus > 0 then
417 | SendNUIMessage(playerStatus)
418 | end
419 |
420 | if Config.ui.showVoice then
421 | AddEventHandler('pma-voice:setTalkingMode', function()
422 | SendNUIMessage({ action = 'setVoiceDistance', value = LocalPlayer.state.proximity and LocalPlayer.state.proximity.mode or "Normal" })
423 | end)
424 | end
425 | end
426 | end)
427 |
428 | -- Weapons
429 | if Config.ui.showWeapons then
430 | CreateThread(function()
431 | while not LocalPlayer.state.isLoggedIn do
432 | Wait(0)
433 | end
434 | while true do
435 | local Sleep = 800
436 |
437 | local player = PlayerPedId()
438 | local status = {}
439 |
440 | if IsPedArmed(player, 7) then
441 | Sleep = 100
442 | local weapon = GetSelectedPedWeapon(player)
443 | local ammoTotal = GetAmmoInPedWeapon(player,weapon)
444 | local bool,ammoClip = GetAmmoInClip(player,weapon)
445 | local ammoRemaining = math.floor(ammoTotal - ammoClip)
446 |
447 | status['armed'] = true
448 |
449 | for key,value in pairs(AllWeapons) do
450 |
451 | for keyTwo,valueTwo in pairs(AllWeapons[key]) do
452 | if weapon == joaat('weapon_'..keyTwo) then
453 | status['weapon'] = keyTwo
454 |
455 |
456 | if key == 'melee' then
457 | SendNUIMessage({ action = 'element', task = 'disable', value = 'weapon_bullets' })
458 | SendNUIMessage({ action = 'element', task = 'disable', value = 'bullets' })
459 | else
460 | if keyTwo == 'stungun' then
461 | SendNUIMessage({ action = 'element', task = 'disable', value = 'weapon_bullets' })
462 | SendNUIMessage({ action = 'element', task = 'disable', value = 'bullets' })
463 | else
464 | SendNUIMessage({ action = 'element', task = 'enable', value = 'weapon_bullets' })
465 | SendNUIMessage({ action = 'element', task = 'enable', value = 'bullets' })
466 | end
467 | end
468 |
469 | end
470 | end
471 |
472 | end
473 |
474 | SendNUIMessage({ action = 'setText', id = 'weapon_clip', value = ammoClip })
475 | SendNUIMessage({ action = 'setText', id = 'weapon_ammo', value = ammoRemaining })
476 |
477 | else
478 | if status['armed'] then
479 | status['armed'] = false
480 | SendNUIMessage({ action = 'updateWeapon', status = status })
481 | end
482 | end
483 |
484 | SendNUIMessage({ action = 'updateWeapon', status = status })
485 | Wait(Sleep)
486 | end
487 | end)
488 | end
489 |
490 | RegisterInput("cruise", "Cruise Control", "keyboard", Config.vehicle.keys.cruiser, function()
491 | local player = PlayerPedId()
492 | local vehicle = GetVehiclePedIsIn(player, false)
493 | local vehicleSpeedSource = GetEntitySpeed(vehicle)
494 | if GetPedInVehicleSeat(vehicle, -1) ~= player then
495 | return
496 | end
497 | if vehicleCruiser == 'on' then
498 | vehicleCruiser = 'off'
499 | SetEntityMaxSpeed(vehicle, GetVehicleHandlingFloat(vehicle,"CHandlingData","fInitialDriveMaxFlatVel"))
500 |
501 | else
502 | vehicleCruiser = 'on'
503 | SetEntityMaxSpeed(vehicle, vehicleSpeedSource)
504 | end
505 | end)
506 |
507 | RegisterInput("seatbelt", "Seatbelt", "keyboard", Config.vehicle.keys.seatbelt, function()
508 | local player = PlayerPedId()
509 | local vehicle = GetVehiclePedIsIn(player, false)
510 | local vehicleClass = GetVehicleClass(vehicle)
511 | if not (IsPedInAnyVehicle(player, false) and GetIsVehicleEngineRunning(vehicle)) then
512 | return
513 | end
514 | if has_value(vehiclesCars, vehicleClass) ~= true and vehicleClass == 8 then
515 | return
516 | end
517 | seatbeltIsOn = not seatbeltIsOn
518 | end)
519 |
520 | RegisterInput("leftindicator", "Left Indicator", "keyboard", Config.vehicle.keys.signalLeft, function()
521 | local player = PlayerPedId()
522 | local vehicle = GetVehiclePedIsIn(player, false)
523 | local vehicleClass = GetVehicleClass(vehicle)
524 | if has_value(vehiclesCars, vehicleClass) ~= true then
525 | return
526 | end
527 | if vehicleSignalIndicator == 'off' then
528 | vehicleSignalIndicator = 'left'
529 | else
530 | vehicleSignalIndicator = 'off'
531 | end
532 |
533 | TriggerEvent('trew_hud_ui:setCarSignalLights', vehicleSignalIndicator)
534 | end)
535 |
536 | RegisterInput("rightindicator", "Right Indicator", "keyboard", Config.vehicle.keys.signalRight, function()
537 | local player = PlayerPedId()
538 | local vehicle = GetVehiclePedIsIn(player, false)
539 | local vehicleClass = GetVehicleClass(vehicle)
540 | if has_value(vehiclesCars, vehicleClass) ~= true then
541 | return
542 | end
543 | if vehicleSignalIndicator == 'off' then
544 | vehicleSignalIndicator = 'right'
545 | else
546 | vehicleSignalIndicator = 'off'
547 | end
548 |
549 | TriggerEvent('trew_hud_ui:setCarSignalLights', vehicleSignalIndicator)
550 | end)
551 |
552 | RegisterInput("bothindicator", "Both Indicators", "keyboard", Config.vehicle.keys.signalBoth, function()
553 | local player = PlayerPedId()
554 | local vehicle = GetVehiclePedIsIn(player, false)
555 | local vehicleClass = GetVehicleClass(vehicle)
556 | if has_value(vehiclesCars, vehicleClass) ~= true then
557 | return
558 | end
559 | if vehicleSignalIndicator == 'off' then
560 | vehicleSignalIndicator = 'both'
561 | else
562 | vehicleSignalIndicator = 'off'
563 | end
564 |
565 | TriggerEvent('trew_hud_ui:setCarSignalLights', vehicleSignalIndicator)
566 | end)
567 |
568 | AddEventHandler('trew_hud_ui:setCarSignalLights', function(status)
569 | local driver = GetVehiclePedIsIn(PlayerPedId(), false)
570 | local hasTrailer,vehicleTrailer = GetVehicleTrailerVehicle(driver)
571 | local leftLight
572 | local rightLight
573 |
574 | if status == 'left' then
575 | leftLight = false
576 | rightLight = true
577 | if hasTrailer then driver = vehicleTrailer end
578 | elseif status == 'right' then
579 | leftLight = true
580 | rightLight = false
581 | if hasTrailer then driver = vehicleTrailer end
582 |
583 | elseif status == 'both' then
584 | leftLight = true
585 | rightLight = true
586 | if hasTrailer then driver = vehicleTrailer end
587 | else
588 | leftLight = false
589 | rightLight = false
590 | if hasTrailer then driver = vehicleTrailer end
591 | end
592 |
593 | SetVehicleIndicatorLights(driver, 0, leftLight)
594 | SetVehicleIndicatorLights(driver, 1, rightLight)
595 | end)
596 |
597 | local toggleui = false
598 | RegisterCommand('toggleui', function()
599 | if not toggleui then
600 | SendNUIMessage({ action = 'element', task = 'disable', value = 'job' })
601 | SendNUIMessage({ action = 'element', task = 'disable', value = 'society' })
602 | SendNUIMessage({ action = 'element', task = 'disable', value = 'bank' })
603 | SendNUIMessage({ action = 'element', task = 'disable', value = 'blackMoney' })
604 | SendNUIMessage({ action = 'element', task = 'disable', value = 'wallet' })
605 | else
606 | if (Config.ui.showJob) then
607 | SendNUIMessage({ action = 'element', task = 'enable', value = 'job' })
608 | end
609 | if (Config.ui.showSocietyMoney) then
610 | SendNUIMessage({ action = 'element', task = 'enable', value = 'society' })
611 | end
612 | if (Config.ui.showBankMoney) then
613 | SendNUIMessage({ action = 'element', task = 'enable', value = 'bank' })
614 | end
615 | if (Config.ui.showCrypto) then
616 | SendNUIMessage({ action = 'element', task = 'enable', value = 'blackMoney' })
617 | end
618 | if (Config.ui.showWalletMoney) then
619 | SendNUIMessage({ action = 'element', task = 'enable', value = 'wallet' })
620 | end
621 | end
622 |
623 | toggleui = not toggleui
624 | end)
625 |
626 | exports('createStatus', function(args)
627 | local statusCreation = { action = 'createStatus', status = args['status'], color = args['color'], icon = args['icon'] }
628 | SendNUIMessage(statusCreation)
629 | end)
630 |
631 | exports('setStatus', function(args)
632 | local playerStatus = { action = 'setStatus', status = {
633 | { name = args['name'], value = args['value'] }
634 | }}
635 | SendNUIMessage(playerStatus)
636 | end)
637 |
638 | if Config.ui.showMinimapHealth then
639 | Citizen.CreateThread(function()
640 | local minimap = RequestScaleformMovie("minimap")
641 | SetBigmapActive(true, false)
642 | Wait(0)
643 | SetBigmapActive(false, false)
644 | while true do
645 | local Sleep = 500
646 | if not IsRadarHidden() then
647 | Sleep = 0
648 | BeginScaleformMovieMethod(minimap, "SETUP_HEALTH_ARMOUR")
649 | ScaleformMovieMethodAddParamInt(3)
650 | EndScaleformMovieMethod()
651 | end
652 | Wait(Sleep)
653 | end
654 |
655 | end)
656 | end
--------------------------------------------------------------------------------