├── 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 | [![Preview](https://i.imgur.com/kerhT5C.png)](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 | [![Preview](https://i.imgur.com/kerhT5C.png)](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 | [![Preview](https://i.imgur.com/kerhT5C.png)](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 | 31 | 32 |
33 |
    34 | 35 | 37 | 39 | 41 | 43 |
44 |
45 | 46 |
47 | 49 | 51 | 53 | 55 | 57 |
58 | 59 | 60 |
61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 |
69 | 70 |
71 | 72 | 73 |
74 | 75 | 76 | 77 | 78 |
79 | 80 | 81 | 82 |
83 | 999 84 | KM/H 85 |
86 | 87 | 88 | 89 |
90 | N 91 |
92 | 93 | 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 | 149 | 150 |
151 | 152 |
153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 |
161 |
162 | 164 | 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 | 31 | 32 |
33 |
    34 | 35 | 37 | 39 | 41 | 43 | 45 |
46 |
47 | 48 |
49 | 51 | 53 | 55 | 57 | 59 |
60 | 61 | 62 |
63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 |
71 | 72 |
73 | 74 | 75 |
76 | 77 | 78 | 79 | 80 |
81 | 82 | 83 | 84 |
85 | 999 86 | KM/H 87 |
88 | 89 | 90 | 91 |
92 | N 93 |
94 | 95 | 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 | 151 | 152 |
153 | 154 |
155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 |
163 |
164 | 166 | 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 --------------------------------------------------------------------------------