mirror of
https://github.com/Auties00/Reboot-Launcher.git
synced 2026-01-13 11:12:23 +01:00
<feat: New project structure>
<feat: New release>
This commit is contained in:
103
dependencies/reboot/Project Reboot 3.0/AbilitySystemComponent.h
vendored
Normal file
103
dependencies/reboot/Project Reboot 3.0/AbilitySystemComponent.h
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
#pragma once
|
||||
|
||||
#include "Object.h"
|
||||
#include "GameplayAbilitySpec.h"
|
||||
#include "AttributeSet.h"
|
||||
|
||||
struct PadHex10 { char Pad[0x10]; };
|
||||
struct PadHex18 { char Pad[0x18]; };
|
||||
struct PadHexA8 { char Pad[0xA8]; };
|
||||
struct PadHexB0 { char Pad[0xB0]; };
|
||||
|
||||
// using FPredictionKey = PadHex18;
|
||||
// using FGameplayEventData = PadHexA8;
|
||||
|
||||
// using FPredictionKey = PadHex10;
|
||||
using FGameplayEventData = PadHexB0;
|
||||
|
||||
// using FGameplayEventData = __int64;
|
||||
|
||||
struct FPredictionKey // todo move
|
||||
{
|
||||
// __int64 real;
|
||||
|
||||
static UStruct* GetStruct()
|
||||
{
|
||||
static auto Struct = FindObject<UStruct>("/Script/GameplayAbilities.PredictionKey");
|
||||
return Struct;
|
||||
}
|
||||
|
||||
static int GetStructSize() { return GetStruct()->GetPropertiesSize(); }
|
||||
};
|
||||
|
||||
struct FGameplayEffectContextHandle
|
||||
{
|
||||
unsigned char UnknownData00[0x18]; // 0x0000(0x0018) MISSED OFFSET
|
||||
};
|
||||
|
||||
struct FActiveGameplayEffectHandle
|
||||
{
|
||||
int Handle; // 0x0000(0x0004) (ZeroConstructor, IsPlainOldData)
|
||||
bool bPassedFiltersAndWasExecuted; // 0x0004(0x0001) (ZeroConstructor, IsPlainOldData)
|
||||
unsigned char UnknownData00[0x3]; // 0x0005(0x0003) MISSED OFFSET
|
||||
};
|
||||
|
||||
struct FGameplayAbilitySpecContainer : public FFastArraySerializer
|
||||
{
|
||||
TArray<FGameplayAbilitySpec>& GetItems()
|
||||
{
|
||||
static auto ItemsOffset = FindOffsetStruct("/Script/GameplayAbilities.GameplayAbilitySpecContainer", "Items");
|
||||
return *(TArray<FGameplayAbilitySpec>*)(__int64(this) + ItemsOffset);
|
||||
}
|
||||
};
|
||||
|
||||
class UAbilitySystemComponent : public UObject
|
||||
{
|
||||
public:
|
||||
static inline FGameplayAbilitySpecHandle* (*GiveAbilityOriginal)(UAbilitySystemComponent*, FGameplayAbilitySpecHandle*, __int64 inSpec);
|
||||
static inline bool (*InternalTryActivateAbilityOriginal)(UAbilitySystemComponent*, FGameplayAbilitySpecHandle Handle, PadHex10 InPredictionKey, UObject** OutInstancedAbility, void* OnGameplayAbilityEndedDelegate, const FGameplayEventData* TriggerEventData);
|
||||
static inline bool (*InternalTryActivateAbilityOriginal2)(UAbilitySystemComponent*, FGameplayAbilitySpecHandle Handle, PadHex18 InPredictionKey, UObject** OutInstancedAbility, void* OnGameplayAbilityEndedDelegate, const FGameplayEventData* TriggerEventData);
|
||||
|
||||
void ClientActivateAbilityFailed(FGameplayAbilitySpecHandle AbilityToActivate, int16_t PredictionKey)
|
||||
{
|
||||
struct { FGameplayAbilitySpecHandle AbilityToActivate; int16_t PredictionKey; } UAbilitySystemComponent_ClientActivateAbilityFailed_Params{ AbilityToActivate, PredictionKey };
|
||||
static auto fn = FindObject<UFunction>(L"/Script/GameplayAbilities.AbilitySystemComponent.ClientActivateAbilityFailed");
|
||||
|
||||
this->ProcessEvent(fn, &UAbilitySystemComponent_ClientActivateAbilityFailed_Params);
|
||||
}
|
||||
|
||||
TArray<UAttributeSet*>& GetSpawnedAttributes()
|
||||
{
|
||||
static auto SpawnedAttributesOffset = GetOffset("SpawnedAttributes");
|
||||
return Get<TArray<UAttributeSet*>>(SpawnedAttributesOffset);
|
||||
}
|
||||
|
||||
FGameplayAbilitySpecContainer* GetActivatableAbilities()
|
||||
{
|
||||
static auto ActivatableAbilitiesOffset = this->GetOffset("ActivatableAbilities");
|
||||
return GetPtr<FGameplayAbilitySpecContainer>(ActivatableAbilitiesOffset);
|
||||
}
|
||||
|
||||
UAttributeSet* AddDefaultSubobjectSet(UAttributeSet* Subobject)
|
||||
{
|
||||
GetSpawnedAttributes().Add(Subobject);
|
||||
return Subobject;
|
||||
}
|
||||
|
||||
void ServerEndAbility(FGameplayAbilitySpecHandle AbilityToEnd, FGameplayAbilityActivationInfo* ActivationInfo, FPredictionKey* PredictionKey);
|
||||
void ClientEndAbility(FGameplayAbilitySpecHandle AbilityToEnd, FGameplayAbilityActivationInfo* ActivationInfo);
|
||||
void ClientCancelAbility(FGameplayAbilitySpecHandle AbilityToCancel, FGameplayAbilityActivationInfo* ActivationInfo);
|
||||
bool HasAbility(UObject* DefaultAbility);
|
||||
FActiveGameplayEffectHandle ApplyGameplayEffectToSelf(UClass* GameplayEffectClass, float Level, const FGameplayEffectContextHandle& EffectContext = FGameplayEffectContextHandle());
|
||||
// FGameplayEffectContextHandle MakeEffectContext();
|
||||
void RemoveActiveGameplayEffectBySourceEffect(UClass* GEClass, int StacksToRemove, UAbilitySystemComponent* Instigator);
|
||||
void ConsumeAllReplicatedData(FGameplayAbilitySpecHandle AbilityHandle, FPredictionKey* AbilityOriginalPredictionKey);
|
||||
FGameplayAbilitySpecHandle GiveAbilityEasy(UClass* AbilityClass, UObject* SourceObject = nullptr, bool bDoNotRegive = true);
|
||||
FGameplayAbilitySpec* FindAbilitySpecFromHandle(FGameplayAbilitySpecHandle Handle);
|
||||
void RemoveActiveGameplayEffectBySourceEffect(UClass* GameplayEffect, UAbilitySystemComponent* InstigatorAbilitySystemComponent, int StacksToRemove);
|
||||
void ClearAbility(const FGameplayAbilitySpecHandle& Handle);
|
||||
|
||||
static void InternalServerTryActivateAbilityHook(UAbilitySystemComponent* AbilitySystemComponent, FGameplayAbilitySpecHandle Handle, bool InputPressed, const FPredictionKey* PredictionKey, const FGameplayEventData* TriggerEventData);
|
||||
};
|
||||
|
||||
void LoopSpecs(UAbilitySystemComponent* AbilitySystemComponent, std::function<void(FGameplayAbilitySpec*)> func);
|
||||
Reference in New Issue
Block a user