fix(esx_multicharacter/client): act on the local player in HideHud

ESX.PlayerId does not exist - the shared object only defines ESX.playerId,
and these were the only two places in the repo using the capitalised name.
The nil is passed to the natives as player index 0, so neither call touched
the local player. SetPlayerControl at line 266 already used the correct
spelling, which is why controls were re-enabled after spawning but never
disabled during character selection.

Measured on artifact 25770, local player index 128:
  SetPlayerControl(ESX.PlayerId, false, 0) -> IsPlayerControlOn stays 1
  SetPlayerControl(ESX.playerId, false, 0) -> IsPlayerControlOn becomes false

HideHud also ignored its argument: hidePlayers was hardcoded to true and the
volume override was set to 0.0 for both hiding and unhiding. Correcting only
the name would have made the mute apply for the first time and never lift it,
so the reset value and the argument have to be handled together.
This commit is contained in:
Selt
2026-07-27 03:53:26 +02:00
parent ca597cf6f4
commit 48154495f8
@@ -59,9 +59,9 @@ local function HideComponents(hide)
end
function Multicharacter:HideHud(hide)
self.hidePlayers = true
self.hidePlayers = hide
MumbleSetVolumeOverride(ESX.PlayerId, 0.0)
MumbleSetVolumeOverride(ESX.playerId, hide and 0.0 or -1.0)
HideComponents(hide)
end
@@ -77,7 +77,7 @@ function Multicharacter:SetupCharacters()
SetEntityCoords(self.playerPed, self.spawnCoords.x, self.spawnCoords.y, self.spawnCoords.z, true, false, false, false)
SetEntityHeading(self.playerPed, self.spawnCoords.w)
SetPlayerControl(ESX.PlayerId, false, 0)
SetPlayerControl(ESX.playerId, false, 0)
self:SetupCamera()
self:HideHud(true)