diff --git a/Project Reboot 3.0/Class.h b/Project Reboot 3.0/Class.h index 2b7b4cb..2c47d72 100644 --- a/Project Reboot 3.0/Class.h +++ b/Project Reboot 3.0/Class.h @@ -41,7 +41,7 @@ class UStruct : public UField public: int GetPropertiesSize(); - UStruct* GetSuperStruct() { return *(UStruct**)(__int64(this) + Offsets::SuperStruct); } // idk if this is in UStruct + UStruct* GetSuperStruct() const { return *(UStruct**)(__int64(this) + Offsets::SuperStruct); } // idk if this is in UStruct TArray GetScript() { return *(TArray*)(__int64(this) + Offsets::Script); } }; diff --git a/Project Reboot 3.0/FortAthenaMutator_CobaltHighTower.h b/Project Reboot 3.0/FortAthenaMutator_CobaltHighTower.h new file mode 100644 index 0000000..6f70f09 --- /dev/null +++ b/Project Reboot 3.0/FortAthenaMutator_CobaltHighTower.h @@ -0,0 +1 @@ +#pragma once diff --git a/Project Reboot 3.0/FortAthenaVehicleSpawner.cpp b/Project Reboot 3.0/FortAthenaVehicleSpawner.cpp index 104d04f..070cbd0 100644 --- a/Project Reboot 3.0/FortAthenaVehicleSpawner.cpp +++ b/Project Reboot 3.0/FortAthenaVehicleSpawner.cpp @@ -6,6 +6,6 @@ void AFortAthenaVehicleSpawner::SpawnVehicleHook(AFortAthenaVehicleSpawner* Vehi { // literally doesnt get called!!!! - // LOG_INFO(LogDev, "omgonmg call!!!!\n\n"); + LOG_INFO(LogDev, "omgonmg call!!!!\n\n"); // SpawnVehicleFromSpawner(VehicleSpawner); } \ No newline at end of file diff --git a/Project Reboot 3.0/FortPlayerController.cpp b/Project Reboot 3.0/FortPlayerController.cpp index 4aef3b4..655fcf8 100644 --- a/Project Reboot 3.0/FortPlayerController.cpp +++ b/Project Reboot 3.0/FortPlayerController.cpp @@ -1490,6 +1490,7 @@ void AFortPlayerController::ClientOnPawnDiedHook(AFortPlayerController* PlayerCo continue; PickupCreateData CreateData; + CreateData.PawnOwner = DeadPawn; CreateData.bToss = true; CreateData.ItemEntry = ItemEntry; CreateData.SourceType = EFortPickupSourceTypeFlag::GetPlayerValue(); diff --git a/Project Reboot 3.0/KismetSystemLibrary.h b/Project Reboot 3.0/KismetSystemLibrary.h index cb955de..dbf537c 100644 --- a/Project Reboot 3.0/KismetSystemLibrary.h +++ b/Project Reboot 3.0/KismetSystemLibrary.h @@ -78,12 +78,12 @@ class UKismetSystemLibrary : public UObject public: static inline void (*PrintStringOriginal)(UObject* Context, FFrame* Stack, void* Ret); - static FString GetPathName(UObject* Object) + static FString GetPathName(const UObject* Object) { - static auto GetPathNameFunction = FindObject("/Script/Engine.KismetSystemLibrary.GetPathName"); - static auto KismetSystemLibrary = FindObject("/Script/Engine.Default__KismetSystemLibrary"); + static auto GetPathNameFunction = FindObject(L"/Script/Engine.KismetSystemLibrary.GetPathName"); + static auto KismetSystemLibrary = FindObject(L"/Script/Engine.Default__KismetSystemLibrary"); - struct { UObject* Object; FString ReturnValue; } GetPathName_Params{ Object }; + struct { const UObject* Object; FString ReturnValue; } GetPathName_Params{ Object }; KismetSystemLibrary->ProcessEvent(GetPathNameFunction, &GetPathName_Params); diff --git a/Project Reboot 3.0/NetConnection.cpp b/Project Reboot 3.0/NetConnection.cpp index 5e75be6..71df133 100644 --- a/Project Reboot 3.0/NetConnection.cpp +++ b/Project Reboot 3.0/NetConnection.cpp @@ -2,7 +2,7 @@ bool UNetConnection::ClientHasInitializedLevelFor(const AActor* TestActor) const { - static auto ClientHasInitializedLevelForAddr = Memcury::Scanner::FindPattern("48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC 20 48 8B 5A 20 48 8B F1 4C 8B C3", false).Get(); + static auto ClientHasInitializedLevelForAddr = Memcury::Scanner::FindPattern("48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC 20 48 8B 5A 20 48 8B F1 4C 8B C3", false).Get(); // 2.4.2 if (!ClientHasInitializedLevelForAddr) { diff --git a/Project Reboot 3.0/NetDriver.cpp b/Project Reboot 3.0/NetDriver.cpp index d539e2a..9d50c4f 100644 --- a/Project Reboot 3.0/NetDriver.cpp +++ b/Project Reboot 3.0/NetDriver.cpp @@ -456,6 +456,7 @@ bool UNetDriver::IsLevelInitializedForActor(const AActor* InActor, const UNetCon const bool bCorrectWorld = (bFirstWorldCheck && InConnection->ClientHasInitializedLevelFor(InActor)); const bool bIsConnectionPC = (InActor == InConnection->GetPlayerController()); + // LOG_INFO(LogDev, "Finished call {}", bCorrectWorld || bIsConnectionPC); return bCorrectWorld || bIsConnectionPC; } @@ -759,10 +760,8 @@ int32 UNetDriver::ServerReplicateActors() if (!Channel) { - // if (!IsLevelInitializedForActor(Actor, Connection)) if (!bLevelInitializedForActor) { - // If the level this actor belongs to isn't loaded on client, don't bother sending continue; } diff --git a/Project Reboot 3.0/Object.cpp b/Project Reboot 3.0/Object.cpp index 81e149b..f16b8aa 100644 --- a/Project Reboot 3.0/Object.cpp +++ b/Project Reboot 3.0/Object.cpp @@ -119,12 +119,12 @@ void UObject::SetBitfieldValue(int Offset, uint8_t FieldMask, bool NewValue) SetBitfield(this->GetPtr(Offset), FieldMask, NewValue); } -std::string UObject::GetPathName() +std::string UObject::GetPathName() const { return UKismetSystemLibrary::GetPathName(this).ToString(); } -std::string UObject::GetFullName() +std::string UObject::GetFullName() const { return ClassPrivate ? ClassPrivate->GetName() + " " + UKismetSystemLibrary::GetPathName(this).ToString() : "NoClassPrivate"; } @@ -143,7 +143,7 @@ UPackage* UObject::GetOutermost() const } } -bool UObject::IsA(UStruct* otherClass) +bool UObject::IsA(UStruct* otherClass) const { UStruct* super = ClassPrivate; diff --git a/Project Reboot 3.0/Object.h b/Project Reboot 3.0/Object.h index d03ee4d..9817413 100644 --- a/Project Reboot 3.0/Object.h +++ b/Project Reboot 3.0/Object.h @@ -52,14 +52,14 @@ public: ProcessEventOriginal(this, Function, Parms); } - std::string GetName() { return NamePrivate.ToString(); } - std::string GetPathName(); - std::string GetFullName(); + std::string GetName() const { return NamePrivate.ToString(); } + std::string GetPathName() const; + std::string GetFullName() const; UObject* GetOuter() const { return OuterPrivate; } FName GetFName() const { return NamePrivate; } class UPackage* GetOutermost() const; - bool IsA(class UStruct* Other); + bool IsA(class UStruct* Other) const; class UFunction* FindFunction(const std::string& ShortFunctionName); void* GetProperty(const std::string& ChildName, bool bWarnIfNotFound = true); diff --git a/Project Reboot 3.0/Project Reboot 3.0.vcxproj b/Project Reboot 3.0/Project Reboot 3.0.vcxproj index d13ab8f..18ab0c9 100644 --- a/Project Reboot 3.0/Project Reboot 3.0.vcxproj +++ b/Project Reboot 3.0/Project Reboot 3.0.vcxproj @@ -343,6 +343,7 @@ + diff --git a/Project Reboot 3.0/Project Reboot 3.0.vcxproj.filters b/Project Reboot 3.0/Project Reboot 3.0.vcxproj.filters index f97598b..2d77495 100644 --- a/Project Reboot 3.0/Project Reboot 3.0.vcxproj.filters +++ b/Project Reboot 3.0/Project Reboot 3.0.vcxproj.filters @@ -987,6 +987,9 @@ Reboot\Public + + FortniteGame\Plugins\GameFeatures\LTM\HighTower_Cobalt\Source\HighTowerCobaltRuntime\Public + @@ -1259,6 +1262,30 @@ {4aadfbef-7320-4457-9f5c-e5fd53b97367} + + {2294e6a0-1351-45bb-aeac-f5af8f1b8924} + + + {62d5f8f1-92be-415d-91e1-8006c6d65603} + + + {2252ad6f-262b-4b66-af0d-6bbb9fd0dc27} + + + {da63f9f5-40a5-4699-8260-a9f7d3dbc5c6} + + + {dc531123-dd74-4244-b84b-9360639fcbe8} + + + {becae49a-a48d-4154-bb87-35600e904307} + + + {63f563fa-0091-423c-b75b-cbbcad274193} + + + {e071f31a-5c29-4631-a5fc-1bee4ceed4ae} +