diff --git a/feature.cpp b/feature.cpp index 571e3d7..2e11d07 100644 --- a/feature.cpp +++ b/feature.cpp @@ -311,6 +311,24 @@ void RespawnLocalPlayer(bool bIsSafe) bIsSafe ? pPalPlayerController->TeleportToSafePoint_ToServer() : pPalPlayerState->RequestRespawn(); } +void SetPlayerHealth(__int32 newHealth) +{ + APalPlayerCharacter* pPalPlayerCharacter = Config.GetPalPlayerCharacter(); + if (!pPalPlayerCharacter) + return; + + UPalCharacterParameterComponent* pParams = pPalPlayerCharacter->CharacterParameterComponent; + if (!pParams) + return; + + FFixedPoint64 maxHP = pParams->GetMaxHP(); + if (newHealth > maxHP.Value) + newHealth = maxHP.Value; + + FFixedPoint newHealthPoint = FFixedPoint(newHealth); + pPalPlayerCharacter->ReviveCharacter_ToServer(newHealthPoint); +} + // void ReviveLocalPlayer() { @@ -318,10 +336,16 @@ void ReviveLocalPlayer() if (!pPalPlayerCharacter) return; - FFixedPoint newHealthPoint = FFixedPoint(99999999); - if (Config.GetPalPlayerCharacter()->CharacterParameterComponent->IsDying()) - Config.GetPalPlayerCharacter()->CharacterParameterComponent->ReviveFromDying(); - pPalPlayerCharacter->ReviveCharacter_ToServer(newHealthPoint); + UPalCharacterParameterComponent* pParams = pPalPlayerCharacter->CharacterParameterComponent; + if (!pParams) + return; + + if (pParams->IsDying()) + pParams->ReviveFromDying(); + + FFixedPoint64 maxHP = pParams->GetMaxHP(); + FFixedPoint newHealth = FFixedPoint(maxHP.Value); + pPalPlayerCharacter->ReviveCharacter_ToServer(newHealth); } // diff --git a/feature.h b/feature.h index fdf8fa3..f48d474 100644 --- a/feature.h +++ b/feature.h @@ -29,6 +29,8 @@ void SetDemiGodMode(bool bIsSet); void RespawnLocalPlayer(bool bIsSafe); +void SetPlayerHealth(__int32 newHealth); + void ReviveLocalPlayer(); void ResetStamina(); diff --git a/src/Menu.cpp b/src/Menu.cpp index 5e4a0cb..84e746a 100644 --- a/src/Menu.cpp +++ b/src/Menu.cpp @@ -783,10 +783,11 @@ namespace DX11_Base if (Config.IsDeathAura) DeathAura(Config.mDeathAuraAmount, Config.mDeathAuraDistance, true); + // // SetDemiGodMode(Config.IsMuteki); if (Config.IsGodMode) - ReviveLocalPlayer(); + SetPlayerHealth(INT_MAX); } } \ No newline at end of file