diff --git a/client/player/status.lua b/client/player/status.lua index 2f4bc7b..1a36e4d 100644 --- a/client/player/status.lua +++ b/client/player/status.lua @@ -3,7 +3,7 @@ if not Config.Disable.Status then local playerId = PlayerId() AddEventHandler("esx_status:onTick", function(data) - local hunger, thirst + local hunger, thirst, stress for i = 1, #data do if data[i].name == "thirst" then thirst = math.floor(data[i].percent) @@ -11,6 +11,9 @@ if not Config.Disable.Status then if data[i].name == "hunger" then hunger = math.floor(data[i].percent) end + if data[i].name == "stress" then + stress = math.floor(data[i].percent) + end end local ped = PlayerPedId() @@ -19,13 +22,16 @@ if not Config.Disable.Status then values.armorBar = GetPedArmour(ped) values.drinkBar = thirst values.foodBar = hunger + if not Config.Disable.Stress then + values.stressBar = stress + end end) function HUD:StatusThread() values = {} CreateThread(function() while ESX.PlayerLoaded do - local oxygen, stamina + local oxygen, stamina, drunk oxygen = math.floor(GetPlayerUnderwaterTimeRemaining(playerId) * 10) stamina = math.floor(100 - GetPlayerSprintStaminaRemaining(playerId)) if stamina == 0 then @@ -34,8 +40,16 @@ if not Config.Disable.Status then if stamina == 100 then stamina = 0 end + + -- Add drunk status calculation here + drunk = math.floor(ESX.Game.GetPlayerDrunkLevel(playerId) or 0) -- Assuming there is a method to get the player's drunk level + values.oxygenBar = IsPedSwimmingUnderWater(PlayerPedId()) and oxygen or 0 values.staminaBar = stamina + if not Config.Disable.Drunk then + values.drunkBar = drunk -- Add drunk level to the values table + end + SendNUIMessage({ type = "STATUS_HUD", value = values }) Wait(200) end diff --git a/esx_hud b/esx_hud new file mode 100644 index 0000000..2060f90 --- /dev/null +++ b/esx_hud @@ -0,0 +1 @@ +added the function of the stress icon and the drunk icon diff --git a/shared/config.lua b/shared/config.lua index 0a8d9a2..f0e4d53 100644 --- a/shared/config.lua +++ b/shared/config.lua @@ -11,6 +11,8 @@ Config = { armorBar = "blue", drinkBar = "lightblue", foodBar = "yellow", + stressBar = "purple", + drunkBar = "pink", }, Speedo = { ["segment-color"] = "#eee", @@ -48,13 +50,15 @@ Config = { Voice = false, Money = false, Info = false, - IndicatorSound = false, --vehicle index sound - IndicatorSeatbeltSound = false, --seatbelt sound + IndicatorSound = false, -- vehicle index sound + IndicatorSeatbeltSound = false, -- seatbelt sound VehicleHandlers = false, -- Engine toggle, Indicator lights MinimapOnFoot = false, Needle = true, StatusPercent = true, CenterStatuses = true, + Stress = false, -- Add this line + Drunk = false -- Add this line }, Default = { ServerLogo = "https://esx.s3.fr-par.scw.cloud/blanc-800x800.png", diff --git a/web/DefaultDatas.js b/web/DefaultDatas.js index 47ecfec..3575e77 100644 --- a/web/DefaultDatas.js +++ b/web/DefaultDatas.js @@ -29,6 +29,8 @@ const progressColors = { foodBar: "yellow", oxygenBar: "green", staminaBar: "purple", + stressBar: "orange", + drunkBar: "pink" }; const vehDefaultData = { @@ -64,6 +66,8 @@ const progressLevels = { foodBar: 80, oxygenBar: 100, staminaBar: 100, + stressBar: 50, // Tambahkan nilai sesuai kebutuhan + drunkBar: 0, // Nilai untuk kondisi pemain tidak mabuk }; const defaultIndicators = { @@ -128,6 +132,18 @@ const progressDefaultCircles = [ color: "green", icon: StaminaIcon, }, + { + name: "stressBar", + progressLevel: 100, + color: "orange", + icon: StressIcon, // Pastikan Anda memiliki ikon untuk stress + }, + { + name: "drunkBar", + progressLevel: 100, + color: "purple", + icon: DrunkIcon, // Pastikan Anda memiliki ikon untuk drunk + }, ]; const speedoDefaultColors = [ @@ -256,6 +272,14 @@ const allColors = { name: "staminaBar", color: "purple", }, + { + name: "stressBar", + color: "orange", + }, + { + name: "drunkBar", + color: "pink", + }, ], Speedo: [ { diff --git a/web/src/assets/Contexts/HudStorage.jsx b/web/src/assets/Contexts/HudStorage.jsx index bc6f8e6..ebb4e73 100644 --- a/web/src/assets/Contexts/HudStorage.jsx +++ b/web/src/assets/Contexts/HudStorage.jsx @@ -42,6 +42,18 @@ const initialState = { progressLevel: 100, color: "green", icon: StaminaIcon + }, + { + name: "stressBar", + progressLevel: 100, + color: "orange", + icon: StressIcon // Pastikan Anda memiliki ikon untuk stress + }, + { + name: "drunkBar", + progressLevel: 100, + color: "purple", + icon: DrunkIcon // Pastikan Anda memiliki ikon untuk drunk } ], speedo:{ diff --git a/web/src/assets/Contexts/SettingsStorage.jsx b/web/src/assets/Contexts/SettingsStorage.jsx index e292450..08cf40b 100644 --- a/web/src/assets/Contexts/SettingsStorage.jsx +++ b/web/src/assets/Contexts/SettingsStorage.jsx @@ -31,6 +31,14 @@ const initialState = { { name: "staminaBar", color: "green" + }, + { + name: "stressBar", + color: "orange" + }, + { + name: "drunkBar", + color: "purple" } ], infoColors: [ diff --git a/web/src/assets/translate.json b/web/src/assets/translate.json index 10e0652..01b0d77 100644 --- a/web/src/assets/translate.json +++ b/web/src/assets/translate.json @@ -16,6 +16,8 @@ "foodbar": "Food bar", "oxygenbar": "Oxygen bar", "staminabar": "Stamina bar", + "stressbar": "Stress bar", + "drunkbar": "Drunk bar", "circlewidth": "Status circle width" }, "Speedo": { @@ -83,7 +85,9 @@ "foodbar": "Essen", "oxygenbar": "Luft", "staminabar": "Ausdauer", - "circlewidth": "Status Kreisbreite" + "stressbar": "Stressbalken", + "drunkbar": "Betrunkenheitsbalken", + "circlewidth": "Statuskreisbreite" }, "Speedo": { "segment-color": "Segmentfarbe", @@ -150,7 +154,9 @@ "foodbar": "Étel státusz", "oxygenbar": "Oxigén státusz", "staminabar": "Stamina státusz", - "circlewidth": "Státusz kör vastagsága" + "stressbar": "Stressz státusz", + "drunkbar": "Részeg státusz", + "circlewidth": "Állapot körszélesség" }, "Speedo": { "segment-color": "Sebességmérő színe", @@ -217,7 +223,9 @@ "foodbar": "Traka hrane", "oxygenbar": "Traka vazduha", "staminabar": "Traka izdrzljivosti", - "circlewidth": "Sirina statusnog kruga" + "stressbar": "Traka stresa", + "drunkbar": "Bar za pijance", + "circlewidth": "Širina kruga statusa" }, "Speedo": { "segment-color": "boja segmenta", @@ -284,7 +292,9 @@ "foodbar": "Honger bar", "oxygenbar": "Zuurstof bar", "staminabar": "Stamina bar", - "circlewidth": "Breedte status cirkel" + "stressbar": "Stressbar", + "drunkbar": "Dronkenbar", + "circlewidth": "Status cirkelbreedte" }, "Speedo": { "segment-color": "kleursegment", @@ -350,7 +360,9 @@ "foodbar": "Barra Fame", "oxygenbar": "Barra ossigeno", "staminabar": "Barra Stamina", - "circlewidth": "Larghezza cerchio status" + "stressbar": "Barra dello stress", + "drunkbar": "Bar degli ubriachi", + "circlewidth": "Larghezza del cerchio di stato" }, "Speedo": { "segment-color": "Colore segmento", @@ -400,7 +412,7 @@ "passengerspeedo":"Contakm per passeggero ON/OFF" } }, - "fr": { + "fr": { "General": { "status": "Status", "speedo": "Compteur de vitesse", @@ -417,7 +429,9 @@ "foodbar": "Barre de faim", "oxygenbar": "Barre d'oxygène", "staminabar": "Barre d'endurance", - "circlewidth": "Largeur du cercle" + "stressbar": "Barre anti-stress", + "drunkbar": "Bar ivre", + "circlewidth": "Largeur du cercle d'état" }, "Speedo": { "segment-color": "Couleur segment",