Hi, i am making a health system but my node for some reason has a target input which wants me to reference to my BP library.
My code:
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Kismet/BlueprintFunctionLibrary.h"
#include "HealthSystemPluginBPLibrary.generated.h"
/*
* Function library class.
* Each function in it is expected to be static and represents blueprint node that can be called in any blueprint.
*
* When declaring function you can define metadata for the node. Key function specifiers will be BlueprintPure and BlueprintCallable.
* BlueprintPure - means the function does not affect the owning object in any way and thus creates a node without Exec pins.
* BlueprintCallable - makes a function which can be executed in Blueprints - Thus it has Exec pins.
* DisplayName - full name of the node, shown when you mouse over the node and in the blueprint drop down menu.
* Its lets you name the node using characters not allowed in C++ function names.
* CompactNodeTitle - the word(s) that appear on the node.
* Keywords - the list of keywords that helps you to find node when you search for it using Blueprint drop-down menu.
* Good example is "Print String" node which you can find also by using keyword "log".
* Category - the category your node will be under in the Blueprint drop-down menu.
*
* For more info on custom blueprint nodes visit documentation:
* https://wiki.unrealengine.com/Custom_Blueprint_Node_Creation
*/
UCLASS()
class UHealthSystemPluginBPLibrary : public UBlueprintFunctionLibrary
{
GENERATED_UCLASS_BODY()
UFUNCTION(BlueprintCallable, meta = (DisplayName = "Change Health", Keywords = "HealthSystem"), Category = "HealthSystemPlugin")
void HealthSystemPluginHealthMod(const float HealthModifier, const float Health, float &FinalHealth, bool &IsDead);
};
//HealthSystemPluginDeadCheck
// Copyright Epic Games, Inc. All Rights Reserved.
#include "HealthSystemPluginBPLibrary.h"
#include "HealthSystemPlugin.h"
UHealthSystemPluginBPLibrary::UHealthSystemPluginBPLibrary(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
}
void UHealthSystemPluginBPLibrary::HealthSystemPluginHealthMod(const float HealthModifier, const float Health, float &FinalHealth, bool &IsDead)
{
bool Dead = false;
//FinalHealth = Health - HealthModifier;
GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Yellow, TEXT("Helth"));
FinalHealth = Health + HealthModifier;
if (FinalHealth <= 0.0) {
Dead = true;
FinalHealth = 0;
}
if (FinalHealth >= Health) {
FinalHealth = Health
}
IsDead = Dead;
//return true;
}