Dont mess with the dead

This commit is contained in:
Gray
2024-03-24 21:51:54 -04:00
parent 68ae6d81cb
commit 34b797c083
11 changed files with 45 additions and 16 deletions

View File

@@ -41,7 +41,7 @@ class UStruct : public UField
public: public:
int GetPropertiesSize(); 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<uint8_t> GetScript() { return *(TArray<uint8_t>*)(__int64(this) + Offsets::Script); } TArray<uint8_t> GetScript() { return *(TArray<uint8_t>*)(__int64(this) + Offsets::Script); }
}; };

View File

@@ -0,0 +1 @@
#pragma once

View File

@@ -6,6 +6,6 @@ void AFortAthenaVehicleSpawner::SpawnVehicleHook(AFortAthenaVehicleSpawner* Vehi
{ {
// literally doesnt get called!!!! // literally doesnt get called!!!!
// LOG_INFO(LogDev, "omgonmg call!!!!\n\n"); LOG_INFO(LogDev, "omgonmg call!!!!\n\n");
// SpawnVehicleFromSpawner(VehicleSpawner); // SpawnVehicleFromSpawner(VehicleSpawner);
} }

View File

@@ -1490,6 +1490,7 @@ void AFortPlayerController::ClientOnPawnDiedHook(AFortPlayerController* PlayerCo
continue; continue;
PickupCreateData CreateData; PickupCreateData CreateData;
CreateData.PawnOwner = DeadPawn;
CreateData.bToss = true; CreateData.bToss = true;
CreateData.ItemEntry = ItemEntry; CreateData.ItemEntry = ItemEntry;
CreateData.SourceType = EFortPickupSourceTypeFlag::GetPlayerValue(); CreateData.SourceType = EFortPickupSourceTypeFlag::GetPlayerValue();

View File

@@ -78,12 +78,12 @@ class UKismetSystemLibrary : public UObject
public: public:
static inline void (*PrintStringOriginal)(UObject* Context, FFrame* Stack, void* Ret); 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<UFunction>("/Script/Engine.KismetSystemLibrary.GetPathName"); static auto GetPathNameFunction = FindObject<UFunction>(L"/Script/Engine.KismetSystemLibrary.GetPathName");
static auto KismetSystemLibrary = FindObject("/Script/Engine.Default__KismetSystemLibrary"); 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); KismetSystemLibrary->ProcessEvent(GetPathNameFunction, &GetPathName_Params);

View File

@@ -2,7 +2,7 @@
bool UNetConnection::ClientHasInitializedLevelFor(const AActor* TestActor) const 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) if (!ClientHasInitializedLevelForAddr)
{ {

View File

@@ -456,6 +456,7 @@ bool UNetDriver::IsLevelInitializedForActor(const AActor* InActor, const UNetCon
const bool bCorrectWorld = (bFirstWorldCheck && InConnection->ClientHasInitializedLevelFor(InActor)); const bool bCorrectWorld = (bFirstWorldCheck && InConnection->ClientHasInitializedLevelFor(InActor));
const bool bIsConnectionPC = (InActor == InConnection->GetPlayerController()); const bool bIsConnectionPC = (InActor == InConnection->GetPlayerController());
// LOG_INFO(LogDev, "Finished call {}", bCorrectWorld || bIsConnectionPC);
return bCorrectWorld || bIsConnectionPC; return bCorrectWorld || bIsConnectionPC;
} }
@@ -759,10 +760,8 @@ int32 UNetDriver::ServerReplicateActors()
if (!Channel) if (!Channel)
{ {
// if (!IsLevelInitializedForActor(Actor, Connection))
if (!bLevelInitializedForActor) if (!bLevelInitializedForActor)
{ {
// If the level this actor belongs to isn't loaded on client, don't bother sending
continue; continue;
} }

View File

@@ -119,12 +119,12 @@ void UObject::SetBitfieldValue(int Offset, uint8_t FieldMask, bool NewValue)
SetBitfield(this->GetPtr<PlaceholderBitfield>(Offset), FieldMask, NewValue); SetBitfield(this->GetPtr<PlaceholderBitfield>(Offset), FieldMask, NewValue);
} }
std::string UObject::GetPathName() std::string UObject::GetPathName() const
{ {
return UKismetSystemLibrary::GetPathName(this).ToString(); return UKismetSystemLibrary::GetPathName(this).ToString();
} }
std::string UObject::GetFullName() std::string UObject::GetFullName() const
{ {
return ClassPrivate ? ClassPrivate->GetName() + " " + UKismetSystemLibrary::GetPathName(this).ToString() : "NoClassPrivate"; 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; UStruct* super = ClassPrivate;

View File

@@ -52,14 +52,14 @@ public:
ProcessEventOriginal(this, Function, Parms); ProcessEventOriginal(this, Function, Parms);
} }
std::string GetName() { return NamePrivate.ToString(); } std::string GetName() const { return NamePrivate.ToString(); }
std::string GetPathName(); std::string GetPathName() const;
std::string GetFullName(); std::string GetFullName() const;
UObject* GetOuter() const { return OuterPrivate; } UObject* GetOuter() const { return OuterPrivate; }
FName GetFName() const { return NamePrivate; } FName GetFName() const { return NamePrivate; }
class UPackage* GetOutermost() const; class UPackage* GetOutermost() const;
bool IsA(class UStruct* Other); bool IsA(class UStruct* Other) const;
class UFunction* FindFunction(const std::string& ShortFunctionName); class UFunction* FindFunction(const std::string& ShortFunctionName);
void* GetProperty(const std::string& ChildName, bool bWarnIfNotFound = true); void* GetProperty(const std::string& ChildName, bool bWarnIfNotFound = true);

View File

@@ -343,6 +343,7 @@
<ClInclude Include="FortAthenaMutator.h" /> <ClInclude Include="FortAthenaMutator.h" />
<ClInclude Include="FortAthenaMutator_Barrier.h" /> <ClInclude Include="FortAthenaMutator_Barrier.h" />
<ClInclude Include="FortAthenaMutator_Bots.h" /> <ClInclude Include="FortAthenaMutator_Bots.h" />
<ClInclude Include="FortAthenaMutator_CobaltHighTower.h" />
<ClInclude Include="FortAthenaMutator_Disco.h" /> <ClInclude Include="FortAthenaMutator_Disco.h" />
<ClInclude Include="FortAthenaMutator_GG.h" /> <ClInclude Include="FortAthenaMutator_GG.h" />
<ClInclude Include="FortAthenaMutator_GiveItemsAtGamePhaseStep.h" /> <ClInclude Include="FortAthenaMutator_GiveItemsAtGamePhaseStep.h" />

View File

@@ -987,6 +987,9 @@
<ClInclude Include="botnames.h"> <ClInclude Include="botnames.h">
<Filter>Reboot\Public</Filter> <Filter>Reboot\Public</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="FortAthenaMutator_CobaltHighTower.h">
<Filter>FortniteGame\Plugins\GameFeatures\LTM\HighTower_Cobalt\Source\HighTowerCobaltRuntime\Public</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Filter Include="Engine"> <Filter Include="Engine">
@@ -1259,6 +1262,30 @@
<Filter Include="FortniteGame\Source\FortniteGame\Private\AI"> <Filter Include="FortniteGame\Source\FortniteGame\Private\AI">
<UniqueIdentifier>{4aadfbef-7320-4457-9f5c-e5fd53b97367}</UniqueIdentifier> <UniqueIdentifier>{4aadfbef-7320-4457-9f5c-e5fd53b97367}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="FortniteGame\Plugins">
<UniqueIdentifier>{2294e6a0-1351-45bb-aeac-f5af8f1b8924}</UniqueIdentifier>
</Filter>
<Filter Include="FortniteGame\Plugins\GameFeatures">
<UniqueIdentifier>{62d5f8f1-92be-415d-91e1-8006c6d65603}</UniqueIdentifier>
</Filter>
<Filter Include="FortniteGame\Plugins\GameFeatures\LTM">
<UniqueIdentifier>{2252ad6f-262b-4b66-af0d-6bbb9fd0dc27}</UniqueIdentifier>
</Filter>
<Filter Include="FortniteGame\Plugins\GameFeatures\LTM\HighTower_Cobalt">
<UniqueIdentifier>{da63f9f5-40a5-4699-8260-a9f7d3dbc5c6}</UniqueIdentifier>
</Filter>
<Filter Include="FortniteGame\Plugins\GameFeatures\LTM\HighTower_Cobalt\Source">
<UniqueIdentifier>{dc531123-dd74-4244-b84b-9360639fcbe8}</UniqueIdentifier>
</Filter>
<Filter Include="FortniteGame\Plugins\GameFeatures\LTM\HighTower_Cobalt\Source\HighTowerCobaltRuntime">
<UniqueIdentifier>{becae49a-a48d-4154-bb87-35600e904307}</UniqueIdentifier>
</Filter>
<Filter Include="FortniteGame\Plugins\GameFeatures\LTM\HighTower_Cobalt\Source\HighTowerCobaltRuntime\Private">
<UniqueIdentifier>{63f563fa-0091-423c-b75b-cbbcad274193}</UniqueIdentifier>
</Filter>
<Filter Include="FortniteGame\Plugins\GameFeatures\LTM\HighTower_Cobalt\Source\HighTowerCobaltRuntime\Public">
<UniqueIdentifier>{e071f31a-5c29-4631-a5fc-1bee4ceed4ae}</UniqueIdentifier>
</Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="UnrealEngine.cpp"> <None Include="UnrealEngine.cpp">