diff --git a/AsaApi/Core/Public/API/ARK/Actor.h b/AsaApi/Core/Public/API/ARK/Actor.h index f00cab8b..6f8472c2 100644 --- a/AsaApi/Core/Public/API/ARK/Actor.h +++ b/AsaApi/Core/Public/API/ARK/Actor.h @@ -6899,6 +6899,7 @@ struct APrimalDinoCharacter : APrimalCharacter UE::Math::TVector& SpawnedLocationField() { return *GetNativePointerField*>(this, "APrimalDinoCharacter.SpawnedLocation"); } long double& LastWantsToEnableNavRelevancyField() { return *GetNativePointerField(this, "APrimalDinoCharacter.LastWantsToEnableNavRelevancy"); } float& DinoArmorDurabilityScalingMultiplierField() { return *GetNativePointerField(this, "APrimalDinoCharacter.DinoArmorDurabilityScalingMultiplier"); } + unsigned __int8& TamedAITargetingRangeField() { return *GetNativePointerField(this, "APrimalDinoCharacter.TamedAITargetingRange"); } // Bitfields diff --git a/AsaApi/Core/Public/API/ARK/GameMode.h b/AsaApi/Core/Public/API/ARK/GameMode.h index 3fa9a4d2..4389d100 100644 --- a/AsaApi/Core/Public/API/ARK/GameMode.h +++ b/AsaApi/Core/Public/API/ARK/GameMode.h @@ -1148,6 +1148,7 @@ struct UPrimalGameData : UObject static void AppendGlobalBoneModifiers(USkeletalMeshComponent* ForMesh, bool IsFemale, TArray >* BoneModifiers) { NativeCall >*>(nullptr, "UPrimalGameData.AppendGlobalBoneModifiers(USkeletalMeshComponent*,bool,TArray>*)", ForMesh, IsFemale, BoneModifiers); } static char GetIsItemBlacklisted() { return NativeCall(nullptr, "UPrimalGameData.GetIsItemBlacklisted()"); } const UPrimalGlobalUIData* GetUIDataFast() { return NativeCall(this, "UPrimalGameData.GetUIDataFast()"); } + static TSubclassOf* GetRedirectedClass(TSubclassOf* result, FString* key, UObject* WorldContextObject) { return NativeCall*, TSubclassOf*, FString*, UObject*>(nullptr, "UPrimalGameData.GetRedirectedClass(FString&,UObject*)", result, key, WorldContextObject); } }; struct UPrimalGlobals : UObject diff --git a/AsaApi/Core/Public/API/ARK/Inventory.h b/AsaApi/Core/Public/API/ARK/Inventory.h index a5159699..b34813c4 100644 --- a/AsaApi/Core/Public/API/ARK/Inventory.h +++ b/AsaApi/Core/Public/API/ARK/Inventory.h @@ -726,8 +726,7 @@ struct UPrimalInventoryComponent : UActorComponent TArray >& AllDyeColorItemsField() { return *GetNativePointerField >*>(this, "UPrimalInventoryComponent.AllDyeColorItems"); } TArray >& ItemCraftQueueEntriesField() { return *GetNativePointerField >*>(this, "UPrimalInventoryComponent.ItemCraftQueueEntries"); } int& OverrideInventoryDefaultTabField() { return *GetNativePointerField(this, "UPrimalInventoryComponent.OverrideInventoryDefaultTab"); } - //TArray, TSizedDefaultAllocator<32> >& EquippableItemTypesField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.EquippableItemTypes"); } - __int8& _padding_183Field() { return *GetNativePointerField<__int8*>(this, "UPrimalInventoryComponent._padding_183"); } + TArray, TSizedDefaultAllocator<32> >& EquippableItemTypesField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.EquippableItemTypes"); } float& CraftingItemSpeedField() { return *GetNativePointerField(this, "UPrimalInventoryComponent.CraftingItemSpeed"); } TArray >& ItemSpoilingTimeMultipliersField() { return *GetNativePointerField >*>(this, "UPrimalInventoryComponent.ItemSpoilingTimeMultipliers"); } UGenericDataListEntry* ExtraItemDisplayField() { return *GetNativePointerField(this, "UPrimalInventoryComponent.ExtraItemDisplay"); } @@ -742,18 +741,18 @@ struct UPrimalInventoryComponent : UActorComponent //TArray, TSizedDefaultAllocator<32> >& RemoteAddItemOnlyAllowItemClassesField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.RemoteAddItemOnlyAllowItemClasses"); } //TArray, TSizedDefaultAllocator<32> >& RemoteAddItemPreventItemClassesField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.RemoteAddItemPreventItemClasses"); } TArray >& EventItemsField() { return *GetNativePointerField >*>(this, "UPrimalInventoryComponent.EventItems"); } - //TArray, TSizedDefaultAllocator<32> >& DefaultInventoryItemsField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultInventoryItems"); } - //TArray, TSizedDefaultAllocator<32> >& DefaultInventoryItems2Field() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultInventoryItems2"); } - //TArray, TSizedDefaultAllocator<32> >& DefaultInventoryItems3Field() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultInventoryItems3"); } - //TArray, TSizedDefaultAllocator<32> >& DefaultInventoryItems4Field() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultInventoryItems4"); } + TArray, TSizedDefaultAllocator<32> >& DefaultInventoryItemsField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultInventoryItems"); } + TArray, TSizedDefaultAllocator<32> >& DefaultInventoryItems2Field() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultInventoryItems2"); } + TArray, TSizedDefaultAllocator<32> >& DefaultInventoryItems3Field() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultInventoryItems3"); } + TArray, TSizedDefaultAllocator<32> >& DefaultInventoryItems4Field() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultInventoryItems4"); } //TArray, TSizedDefaultAllocator<32> >& DefaultInventoryItemsClasses_DEPRECATEDField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultInventoryItemsClasses_DEPRECATED"); } //TArray, TSizedDefaultAllocator<32> >& DefaultInventoryItemsClassesNewField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultInventoryItemsClassesNew"); } - TArray >& DefaultInventoryItemsRandomCustomStringsField() { return *GetNativePointerField >*>(this, "UPrimalInventoryComponent.DefaultInventoryItemsRandomCustomStrings"); } - TArray >& DefaultInventoryItemsRandomCustomStringsWeightsField() { return *GetNativePointerField >*>(this, "UPrimalInventoryComponent.DefaultInventoryItemsRandomCustomStringsWeights"); } - //TArray, TSizedDefaultAllocator<32> >& CheatInventoryItemsField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.CheatInventoryItems"); } - //TArray, TSizedDefaultAllocator<32> >& DefaultEquippedItemsField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultEquippedItems"); } - //TArray, TSizedDefaultAllocator<32> >& DefaultEquippedItemSkinsField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultEquippedItemSkins"); } - //TArray, TSizedDefaultAllocator<32> >& DefaultSlotItemsField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultSlotItems"); } + //TArray >& DefaultInventoryItemsRandomCustomStringsField() { return *GetNativePointerField >*>(this, "UPrimalInventoryComponent.DefaultInventoryItemsRandomCustomStrings"); } + //TArray >& DefaultInventoryItemsRandomCustomStringsWeightsField() { return *GetNativePointerField >*>(this, "UPrimalInventoryComponent.DefaultInventoryItemsRandomCustomStringsWeights"); } + TArray, TSizedDefaultAllocator<32> >& CheatInventoryItemsField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.CheatInventoryItems"); } + TArray, TSizedDefaultAllocator<32> >& DefaultEquippedItemsField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultEquippedItems"); } + TArray, TSizedDefaultAllocator<32> >& DefaultEquippedItemSkinsField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultEquippedItemSkins"); } + TArray, TSizedDefaultAllocator<32> >& DefaultSlotItemsField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.DefaultSlotItems"); } TArray >& ItemSpawnActorClassOverridesField() { return *GetNativePointerField >*>(this, "UPrimalInventoryComponent.ItemSpawnActorClassOverrides"); } //TArray, TSizedDefaultAllocator<32> >& OnlyAllowCraftingItemClassesField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "UPrimalInventoryComponent.OnlyAllowCraftingItemClasses"); } TArray >& DefaultEngramsField() { return *GetNativePointerField >*>(this, "UPrimalInventoryComponent.DefaultEngrams"); } diff --git a/AsaApi/Core/Public/API/ARK/ModParamStructs.h b/AsaApi/Core/Public/API/ARK/ModParamStructs.h index 4e3624be..51cc051c 100644 --- a/AsaApi/Core/Public/API/ARK/ModParamStructs.h +++ b/AsaApi/Core/Public/API/ARK/ModParamStructs.h @@ -129,6 +129,22 @@ struct AsaApiUtilsNotification , bAddToChat(bAddToChat) { } + + AsaApiUtilsNotification( + const FString& Notificationid, + const FString& Text, + const TArray& RecipientEOS, + const FLinearColor& BackgroundColor, + const FLinearColor& TextColor, + const double& DisplayScale, + const double& DisplayTime, + const Position& TextJustification, + const Position& NotificationScreenPosition, + const bool& bAddToChat + ) : AsaApiUtilsNotification(Text, RecipientEOS, BackgroundColor, TextColor, DisplayScale, DisplayTime, TextJustification, NotificationScreenPosition, bAddToChat) + { + NotificationId = Notificationid; + } }; struct AddNotification_Params @@ -146,7 +162,7 @@ struct APrimalBuff_ApiUtils : APrimalBuff TArray& NotificationsField() { FProperty* NotificationsProperty = FindProperty("Notifications"); - return *NotificationsProperty->Get*>(this); + return NotificationsProperty->Get>(this); } // Functions diff --git a/AsaApi/Core/Public/API/ARK/Other.h b/AsaApi/Core/Public/API/ARK/Other.h index 3ffcb0c5..af0766e2 100644 --- a/AsaApi/Core/Public/API/ARK/Other.h +++ b/AsaApi/Core/Public/API/ARK/Other.h @@ -194,7 +194,10 @@ struct UVictoryCore : UVictoryCoreHighest //static TArray >* GiveItemToCharacter(TArray >* result, APrimalCharacter* Character, TSubclassOf ItemType, int NumItems, float Quality, bool bAutoEquip) { return NativeCall >*, TArray >*, APrimalCharacter*, TSubclassOf, int, float, bool>(nullptr, "UVictoryCore.GiveItemToCharacter(TArray>*,APrimalCharacter*,TSubclassOf,int,float,bool)", result, Character, ItemType, NumItems, Quality, bAutoEquip); } static void GetObjectsReferencedBy(UObject* ForObject, TArray >* OutReferencedObjects, bool bIgnoreTransient) { NativeCall >*, bool>(nullptr, "UVictoryCore.GetObjectsReferencedBy(UObject*,TArray>*,bool)", ForObject, OutReferencedObjects, bIgnoreTransient); } static bool GetOverlappedHarvestActors(UObject* WorldContextObject, const UE::Math::TVector* AtLoc, float AtRadius, TArray >* OutHarvestActors, TArray >* OutHarvestComponents, TArray, TSizedDefaultAllocator<32> >* OutHarvestLocations, TArray >* OutHitBodyIndices) { return NativeCall*, float, TArray >*, TArray >*, TArray, TSizedDefaultAllocator<32> >*, TArray >*>(nullptr, "UVictoryCore.GetOverlappedHarvestActors(UObject*,UE::Math::TVector*,float,TArray>*,TArray>*,TArray,TSizedDefaultAllocator<32>>*,TArray>*)", WorldContextObject, AtLoc, AtRadius, OutHarvestActors, OutHarvestComponents, OutHarvestLocations, OutHitBodyIndices); } - static void ServerSearchFoliage() { NativeCall(nullptr, "UVictoryCore.ServerSearchFoliage()"); } + static void ServerSearchFoliage + (UObject* WorldContextObject, UE::Math::TVector* Origin, float Radius, TArray >* OutFoliage, bool bVisibleAndActiveOnly, bool bIncludeUsableFoliage, bool bIncludeMeshFoliage, bool bSortByDistance, bool bReverseSort) + { NativeCall*, float, TArray>*, bool, bool, bool, bool, bool>(nullptr, "UVictoryCore.ServerSearchFoliage(UObject*,UE::Math::TVector,float,TArray>&,bool,bool,bool,bool,bool)", + WorldContextObject, Origin, Radius, OutFoliage, bVisibleAndActiveOnly, bIncludeUsableFoliage, bIncludeMeshFoliage, bSortByDistance, bReverseSort); } static FName* GetHitBoneNameFromDamageEvent(FName* result, APrimalCharacter* Character, AController* HitInstigator, const FDamageEvent* DamageEvent, bool bIsPointDamage, const FHitResult* PointHitResult, FName MatchCollisionPresetName) { return NativeCall(nullptr, "UVictoryCore.GetHitBoneNameFromDamageEvent(FName*,APrimalCharacter*,AController*,FDamageEvent*,bool,FHitResult*,FName)", result, Character, HitInstigator, DamageEvent, bIsPointDamage, PointHitResult, MatchCollisionPresetName); } static float GetAngleBetweenVectors(const UE::Math::TVector* VectorA, const UE::Math::TVector* VectorB, const UE::Math::TVector* AroundAxis) { return NativeCall*, const UE::Math::TVector*, const UE::Math::TVector*>(nullptr, "UVictoryCore.GetAngleBetweenVectors(UE::Math::TVector*,UE::Math::TVector*,UE::Math::TVector*)", VectorA, VectorB, AroundAxis); } static float GetAngleBetweenVectorsPure() { return NativeCall(nullptr, "UVictoryCore.GetAngleBetweenVectorsPure()"); } diff --git a/AsaApi/Core/Public/API/ARK/PrimalStructure.h b/AsaApi/Core/Public/API/ARK/PrimalStructure.h index de9f048c..1674c548 100644 --- a/AsaApi/Core/Public/API/ARK/PrimalStructure.h +++ b/AsaApi/Core/Public/API/ARK/PrimalStructure.h @@ -2073,6 +2073,7 @@ struct APrimalStructureTurret : APrimalStructureItemContainer float& AimSpreadField() { return *GetNativePointerField(this, "APrimalStructureTurret.AimSpread"); } unsigned __int8& RangeSettingField() { return *GetNativePointerField(this, "APrimalStructureTurret.RangeSetting"); } unsigned __int8& WarningSettingField() { return *GetNativePointerField(this, "APrimalStructureTurret.WarningSetting"); } + unsigned __int8& AISettingField() { return *GetNativePointerField(this, "APrimalStructureTurret.AISetting"); } int& MinTargetLevelField() { return *GetNativePointerField(this, "APrimalStructureTurret.MinTargetLevel"); } int& MaxTargetLevelField() { return *GetNativePointerField(this, "APrimalStructureTurret.MaxTargetLevel"); } TArray, TSizedDefaultAllocator<32> >& DinoTargetListField() { return *GetNativePointerField, TSizedDefaultAllocator<32> >*>(this, "APrimalStructureTurret.DinoTargetList"); } diff --git a/AsaApi/Core/Public/API/Base.h b/AsaApi/Core/Public/API/Base.h index 4cba54f1..9e51a9fc 100644 --- a/AsaApi/Core/Public/API/Base.h +++ b/AsaApi/Core/Public/API/Base.h @@ -815,6 +815,7 @@ struct UWeaponAttackData; struct UWidget; struct UWorld; struct UWorldPartition; +struct FOverlappedFoliageElement; // Address helpers ARK_API DWORD64 GetAddress(const void* base, const std::string& name); diff --git a/AsaApi/Core/Public/AsaApiModUtils.hpp b/AsaApi/Core/Public/AsaApiModUtils.hpp index 704b2868..aa7a659d 100644 --- a/AsaApi/Core/Public/AsaApiModUtils.hpp +++ b/AsaApi/Core/Public/AsaApiModUtils.hpp @@ -49,7 +49,7 @@ namespace AsaApiModUtils params.Color = Color; params.Duration = Duration; - if (Singleton != nullptr) + if (GetSingleton() != nullptr) { Singleton->ProcessEvent(Singleton->FindFunctionChecked(FName("DrawDebugLine")), ¶ms); } @@ -72,7 +72,7 @@ namespace AsaApiModUtils { DrawDebugSphere_Params sentParams = params; - if (Singleton != nullptr) + if (GetSingleton() != nullptr) { Singleton->ProcessEvent(Singleton->FindFunctionChecked(FName("DrawSphere")), &sentParams); return GetWeakReference(sentParams.SphereActor); @@ -99,7 +99,7 @@ namespace AsaApiModUtils AddNotification_Params notification; notification.Notification = notificationParams; - if (Singleton != nullptr) + if (GetSingleton() != nullptr) { Singleton->ProcessEvent(Singleton->FindFunctionChecked(FName("AddNotification")), ¬ification); return notification.NotificationId;