I am using the Gameplay Ability System. I have a game play effect which changes an attribute but it will not change the attribute I want. I can make a modifier of the effect to change a particular attribute just fine. However, I have found that most attributes will not change, only one of them changes correctly.
Maybe related:
I have been struggling with Unreal using C++, one time I made a base character and attribute sets using Action RPG example as a guide and then made a Blueprint base child from them and after changing the base C++ the AbilitySystemComponent was null and so I couldn’t do anything until I made a new Blueprint base child and reimplemented the whole child from the old one, which was tedious. The AbilitySystemComponent wasn’t null in the new Blueprint child and I could work again with new one and just deleted the old one. It was frustrating.
A few weeks ago I was working on taking GetInventoryItems from the InventoryInterface taken from the ActionRPG sample and I was passing in “None” as the PrimaryAssetType which means it would be not valid when IsValid() is called, but that wasn’t happening so it wasn’t getting all Inventory items when set to “None” but then I just put code to debug and determine the problem before the if statement:
FPrimaryAssetId AssetId = Pair.Key->GetPrimaryAssetId();
bool ItemTypeValid = ItemType.IsValid();
FString ItemTypeName = ItemType.GetName().ToString();
And then put the ItemTypeValid in the if statement and then it worked. That doesn’t make sense, it should just work the way it was before.
Is there an Unreal Engine C++ coding secret which I am missing out on?