CogSample: Fix warning and abilities not receiving input release

This commit is contained in:
Arnaud Jamin
2025-01-08 16:21:05 -05:00
parent 6fe4806b02
commit 469aab67d3
+9 -3
View File
@@ -403,6 +403,12 @@ void ACogSampleCharacter::OnAbilityInputStarted(const FInputActionValue& Value,
Spec->InputPressed = true; Spec->InputPressed = true;
UGameplayAbility* Ability = Spec->GetPrimaryInstance();
if (Ability == nullptr)
{
return;
}
//----------------------------------------------------- //-----------------------------------------------------
// Replicate button press if ability is already active // Replicate button press if ability is already active
//----------------------------------------------------- //-----------------------------------------------------
@@ -414,7 +420,7 @@ void ACogSampleCharacter::OnAbilityInputStarted(const FInputActionValue& Value,
AbilitySystem->ServerSetInputPressed(Spec->Handle); AbilitySystem->ServerSetInputPressed(Spec->Handle);
} }
AbilitySystem->AbilitySpecInputPressed(*Spec); AbilitySystem->AbilitySpecInputPressed(*Spec);
AbilitySystem->InvokeReplicatedEvent(EAbilityGenericReplicatedEvent::InputPressed, Spec->Handle, Spec->ActivationInfo.GetActivationPredictionKey()); AbilitySystem->InvokeReplicatedEvent(EAbilityGenericReplicatedEvent::InputPressed, Spec->Handle, Ability->GetCurrentActivationInfo().GetActivationPredictionKey());
} }
else else
{ {
@@ -441,7 +447,7 @@ void ACogSampleCharacter::OnAbilityInputCompleted(const FInputActionValue& Value
Spec->InputPressed = false; Spec->InputPressed = false;
UGameplayAbility* Ability= Spec->GetPrimaryInstance(); UGameplayAbility* Ability = Spec->GetPrimaryInstance();
if (Ability == nullptr) if (Ability == nullptr)
{ {
return; return;
@@ -458,7 +464,7 @@ void ACogSampleCharacter::OnAbilityInputCompleted(const FInputActionValue& Value
} }
AbilitySystem->AbilitySpecInputReleased(*Spec); AbilitySystem->AbilitySpecInputReleased(*Spec);
AbilitySystem->InvokeReplicatedEvent(EAbilityGenericReplicatedEvent::InputReleased, Spec->Handle, Spec->ActivationInfo.GetActivationPredictionKey()); AbilitySystem->InvokeReplicatedEvent(EAbilityGenericReplicatedEvent::InputReleased, Spec->Handle, Ability->GetCurrentActivationInfo().GetActivationPredictionKey());
} }
//-------------------------------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------------------------------