diff --git a/Prefabs/Characters/Core/DefaultPlayerController.et b/Prefabs/Characters/Core/DefaultPlayerController.et index 657d471..e11556a 100644 --- a/Prefabs/Characters/Core/DefaultPlayerController.et +++ b/Prefabs/Characters/Core/DefaultPlayerController.et @@ -8,7 +8,6 @@ SCR_PlayerController { } } SCR_VoiceRangeController "{68D6FBA83607BC45}" { - m_iCurrentRange 10 } } } \ No newline at end of file diff --git a/resourceDatabase.rdb b/resourceDatabase.rdb index 46fa16d..c957ca2 100644 Binary files a/resourceDatabase.rdb and b/resourceDatabase.rdb differ diff --git a/scripts/Game/VON/SCR_VoiceRangeController.c b/scripts/Game/VON/SCR_VoiceRangeController.c index 98fbec8..bb98ce2 100644 --- a/scripts/Game/VON/SCR_VoiceRangeController.c +++ b/scripts/Game/VON/SCR_VoiceRangeController.c @@ -91,15 +91,20 @@ class SCR_VoiceRangeController: ScriptComponent { SCR_VONController vonContr = SCR_VONController.Cast(GetOwner().FindComponent(SCR_VONController)); if (!vonContr) return; + // Finde heraus, welche Komponente wir basierend auf den Metern brauchen typename compType = SCR_VoNNormal; if (m_iCurrentRange <= 15) compType = SCR_VoNWhispering; else if (m_iCurrentRange >= 50) compType = SCR_VoNLoud; SCR_VoNComponent newVonComp = SCR_VoNComponent.Cast(player.FindComponent(compType)); if (newVonComp) { + // Nur wechseln, wenn sich die Stufe WIRKLICH ändert (verhindert unnötige Updates) + if (vonContr.GetVONComponent() == newVonComp) return; + + // Komponente sanft wechseln OHNE den Toggle (behält Push-to-Talk und Mute-Status bei!) vonContr.SetVONComponent(newVonComp); - vonContr.SetVONProximityToggle(false); - vonContr.SetVONProximityToggle(true); + + Print("GTG Voice: VON-Stufe gewechselt zu: " + compType.ToString(), LogLevel.WARNING); } }