diff --git a/Project Reboot 3.0/BuildingContainer.cpp b/Project Reboot 3.0/BuildingContainer.cpp index 2b1c47a..a5d7b0c 100644 --- a/Project Reboot 3.0/BuildingContainer.cpp +++ b/Project Reboot 3.0/BuildingContainer.cpp @@ -13,7 +13,7 @@ bool ABuildingContainer::SpawnLoot(AFortPawn* Pawn) auto GameMode = Cast(GetWorld()->GetGameMode()); - FVector LocationToSpawnLoot = this->GetActorLocation() + this->GetActorForwardVector() * this->GetLootSpawnLocation_Athena().X + this->GetActorRightVector() * this->GetLootSpawnLocation_Athena().Y + this->GetActorUpVector() * this->GetLootSpawnLocation_Athena().Z; + FVector LocationToSpawnLoot = this->GetActorLocation() + this->GetActorRightVector() * 70.0f + FVector{ 0,0,50 } ; auto RedirectedLootTier = GameMode->RedirectLootTier(GetSearchLootTierGroup()); @@ -46,4 +46,4 @@ bool ABuildingContainer::SpawnLoot(AFortPawn* Pawn) } return true; -} \ No newline at end of file +} diff --git a/Project Reboot 3.0/FortGameModeAthena.cpp b/Project Reboot 3.0/FortGameModeAthena.cpp index 36b64c7..f21fe18 100644 --- a/Project Reboot 3.0/FortGameModeAthena.cpp +++ b/Project Reboot 3.0/FortGameModeAthena.cpp @@ -369,7 +369,7 @@ bool AFortGameModeAthena::Athena_ReadyToStartMatchHook(AFortGameModeAthena* Game ShowFoundation(FindObject("/Game/Athena/Maps/Athena_POI_Foundations.Athena_POI_Foundations.PersistentLevel.ShopsNew")); // Tilted Tower Shops, is this 7.40 specific? } - else if (Fortnite_Season == 8) + else if (Fortnite_Season == 8 || Fortnite_Version == 9.10) { auto Volcano = FindObject(("/Game/Athena/Maps/Athena_POI_Foundations.Athena_POI_Foundations.PersistentLevel.LF_Athena_POI_50x53_Volcano")); ShowFoundation(Volcano); diff --git a/Project Reboot 3.0/GameModeBase.cpp b/Project Reboot 3.0/GameModeBase.cpp index 8c2c8a4..a0e7c9e 100644 --- a/Project Reboot 3.0/GameModeBase.cpp +++ b/Project Reboot 3.0/GameModeBase.cpp @@ -8,6 +8,7 @@ #include "DataTableFunctionLibrary.h" #include "FortAthenaMutator_GG.h" #include "FortAthenaMutator_InventoryOverride.h" +#include "calendar.h" void AGameModeBase::RestartPlayerAtTransform(AController* NewPlayer, FTransform SpawnTransform) { @@ -262,5 +263,14 @@ APawn* AGameModeBase::SpawnDefaultPawnForHook(AGameModeBase* GameMode, AControll // LOG_INFO(LogDev, "Finish SpawnDefaultPawnFor!"); + static bool bFirst = Fortnite_Version == 11.31 || Fortnite_Version == 15.10; + + if (bFirst) + { + bFirst = false; + // Calendar::EnableFog(); + Calendar::SetSnow(100); + // Calendar::EnableFog(); + } return NewPawn; -} \ No newline at end of file +} diff --git a/Project Reboot 3.0/calendar.h b/Project Reboot 3.0/calendar.h index c5d9065..980f2ee 100644 --- a/Project Reboot 3.0/calendar.h +++ b/Project Reboot 3.0/calendar.h @@ -8,7 +8,7 @@ namespace Calendar { static inline bool HasSnowModification() { - return Fortnite_Version == 7.30 || Fortnite_Version == 11.31 || Fortnite_Version == 19.10; + return Fortnite_Version == 7.30 || Fortnite_Version == 11.31 || Fortnite_Version == 15.10 || Fortnite_Version == 19.10; } static inline UObject* GetSnowSetup() @@ -40,9 +40,42 @@ namespace Calendar return -1; } + static inline void EnableFog() + { + auto SnowSetup = GetSnowSetup(); + + if (SnowSetup) + { + static auto Onready1 = FindObject(L"/Game/Athena/Apollo/Environments/Blueprints/CalendarEvents/BP_ApolloSnowSetup.BP_ApolloSnowSetup_C.OnReady_E426AA7F4F2319EA06FBA2B9905F0B24"); + static auto Onready2 = FindObject(L"/Game/Athena/Apollo/Environments/Blueprints/CalendarEvents/BP_ApolloSnowSetup.BP_ApolloSnowSetup_C.OnReady_0A511B314AE165C51798519FB84738B8"); + static auto refrehsdmap = FindObject(L"/Game/Athena/Apollo/Environments/Blueprints/CalendarEvents/BP_ApolloSnowSetup.BP_ApolloSnowSetup_C:RefreshMapLocations"); + + auto GameState = (AFortGameStateAthena*)GetWorld()->GetGameState(); + + GET_PLAYLIST(GameState) + + struct { UObject* GameState; UObject* Playlist; FGameplayTagContainer PlaylistContextTags; } OnReadyParams{ GameState, CurrentPlaylist, FGameplayTagContainer()}; + + SnowSetup->ProcessEvent(Onready1, &OnReadyParams); + SnowSetup->ProcessEvent(Onready2, &OnReadyParams); + SnowSetup->ProcessEvent(refrehsdmap); // needed? + } + } + + static inline void SetSnowfall(float NewValue) // idk bruh i think setsnow also does this math things who knows + { + static auto SetSnowfallFn = FindObject(L"/Game/Athena/Apollo/Environments/Blueprints/CalendarEvents/BP_ApolloSnowSetup.BP_ApolloSnowSetup_C.SetSnowFall"); + auto SnowSetup = GetSnowSetup(); + + if (SetSnowfallFn && SnowSetup) + { + SnowSetup->ProcessEvent(SetSnowfallFn, &NewValue); + } + } + static inline void SetSnow(float NewValue) { - static auto SetSnowFn = FindObject(L"/Game/Athena/Apollo/Environments/Blueprints/CalendarEvents/BP_ApolloSnowSetup.BP_ApolloSnowSetup_C.OnReady_0A511B314AE165C51798519FB84738B8") ? FindObject(L"/Game/Athena/Apollo/Environments/Blueprints/CalendarEvents/BP_ApolloSnowSetup.BP_ApolloSnowSetup_C.OnReady_0A511B314AE165C51798519FB84738B8") : + static auto SetSnowFn = FindObject(L"/Game/Athena/Apollo/Environments/Blueprints/CalendarEvents/BP_ApolloSnowSetup.BP_ApolloSnowSetup_C.SetSnow") ? FindObject(L"/Game/Athena/Apollo/Environments/Blueprints/CalendarEvents/BP_ApolloSnowSetup.BP_ApolloSnowSetup_C.SetSnow") : FindObject(L"/Game/Athena/Environments/Landscape/Blueprints/BP_SnowSetup.BP_SnowSetup_C.SetSnow"); auto SnowSetup = GetSnowSetup(); @@ -53,6 +86,8 @@ namespace Calendar auto GameState = (AFortGameStateAthena*)GetWorld()->GetGameState(); GET_PLAYLIST(GameState) + + /* struct { UObject* GameState; UObject* Playlist; FGameplayTagContainer PlaylistContextTags; } OnReadyParams{ GameState, CurrentPlaylist, FGameplayTagContainer()}; UFunction* OnReadyFunc = FindObject(L"/Game/Athena/Apollo/Environments/Blueprints/CalendarEvents/BP_ApolloSnowSetup.BP_ApolloSnowSetup_C.OnReady_0A511B314AE165C51798519FB84738B8"); @@ -64,8 +99,14 @@ namespace Calendar SnowSetup->ProcessEvent(OnReadyFunc, &OnReadyParams); } + */ + LOG_INFO(LogDev, "Called OnReady!"); + SnowSetup->ProcessEvent(SetSnowFn, &NewValue); + + LOG_INFO(LogDev, "Called SetSnow!"); + return; if (NewValue != -1) @@ -85,6 +126,12 @@ namespace Calendar static auto ada = FindObject(L"/Game/Athena/Apollo/Environments/Blueprints/CalendarEvents/BP_ApolloSnowSetup.BP_ApolloSnowSetup_C.SetFullSnowEd"); SnowSetup->ProcessEvent(ada); + + + } + else + { + LOG_INFO(LogDev, "Failed TO FIND!"); } } -} \ No newline at end of file +} diff --git a/Project Reboot 3.0/commands.cpp b/Project Reboot 3.0/commands.cpp index 89f6fed..5297506 100644 --- a/Project Reboot 3.0/commands.cpp +++ b/Project Reboot 3.0/commands.cpp @@ -919,6 +919,75 @@ void ServerCheatHook(AFortPlayerControllerAthena* PlayerController, FString Msg) Pawn->TeleportTo(FVector(X, Y, Z), Pawn->GetActorRotation()); SendMessageToConsole(PlayerController, L"Teleported!"); } + else if (Command == "fly") + { + auto Pawn = Cast(ReceivingController->GetPawn()); + + if (!Pawn) + { + SendMessageToConsole(PlayerController, L"No pawn found!"); + return; + } + + static auto CharMovementOffset = Pawn->GetOffset("CharacterMovement"); + if (CharMovementOffset != -1) + { + auto CharMovement = Pawn->Get(CharMovementOffset); + + static auto MovementOffset = CharMovement->GetOffset("MovementMode", false); + if (MovementOffset != -1) + { + uint8_t MovementMode = CharMovement->Get(MovementOffset); + static auto SetMovementModeFn = FindObject(L"/Script/Engine.CharacterMovementComponent.SetMovementMode"); + uint8_t NewMode = 1; + if (MovementMode != 5) + { + NewMode = 5; + } + if (SetMovementModeFn) + { + CharMovement->ProcessEvent(SetMovementModeFn, &NewMode); + } + } + else + { + SendMessageToConsole(PlayerController, L"Movement mode not found!"); + return; + } + } + else + { + SendMessageToConsole(PlayerController, L"Character movement not found!"); + return; + } + } + else if (Command == "setspeed") + { + float Speed = 1.0f; + + if (Arguments.size() > 1 && Arguments[1] != " ") + { + try { Speed = std::stof(Arguments[1]); } + catch (...) {} + } + + auto Pawn = Cast(ReceivingController->GetPawn()); + + if (!Pawn) + { + SendMessageToConsole(PlayerController, L"No pawn to set speed!"); + return; + } + + static auto SetMovementSpeedFn = FindObject(L"/Script/FortniteGame.FortPawn.SetMovementSpeed"); + SetMovementSpeedFn = SetMovementSpeedFn ? SetMovementSpeedFn : FindObject(L"/Script/FortniteGame.FortPawn.SetMovementSpeedMultiplier"); // extremely clean code that totally works + if (!SetMovementSpeedFn) + { + SendMessageToConsole(PlayerController, L"Function not found!"); + return; + } + Pawn->ProcessEvent(SetMovementSpeedFn, &Speed); + } else { bSendHelpMessage = true; }; } else { bSendHelpMessage = true; }; @@ -949,4 +1018,4 @@ If you want to execute a command on a certain player, surround their name (case SendMessageToConsole(PlayerController, HelpMessage); } -} \ No newline at end of file +} diff --git a/Project Reboot 3.0/events.h b/Project Reboot 3.0/events.h index 0068514..5ae2cff 100644 --- a/Project Reboot 3.0/events.h +++ b/Project Reboot 3.0/events.h @@ -185,6 +185,34 @@ static inline std::vector Events = false ), Event + ( + "The Showdown", + "/Game/Athena/Prototype/Blueprints/Cattus/BP_CattusDoggus_Scripting.BP_CattusDoggus_Scripting_C", + "/Game/Athena/Prototype/Blueprints/Cattus/BP_CattusDoggus_Scripting.BP_CattusDoggus_Scripting_C.LoadCattusLevel", + 1, + { + { + true, + "/Game/Athena/Prototype/Blueprints/Cattus/BP_CattusDoggus_Scripting.BP_CattusDoggus_Scripting_C.OnReady_C11CA7624A74FBAEC54753A3C2BD4506" + } + }, + { + { + { + true, + "/Game/Athena/Prototype/Blueprints/Cattus/BP_CattusDoggus_Scripting.BP_CattusDoggus_Scripting_C.startevent" + }, + + 0 + } + }, + + "/Game/Athena/Prototype/Blueprints/Cattus/BP_CattusDoggus_Scripting.BP_CattusDoggus_Scripting_C", + "/Game/Athena/Playlists/Music/Playlist_Music_High.Playlist_Music_High", + 9.41, // also 9.41 + false + ), + Event ( "The Unvaulting", "/Game/Athena/Prototype/Blueprints/White/BP_SnowScripting.BP_SnowScripting_C", @@ -456,6 +484,7 @@ static inline UFortPlaylistAthena* GetEventPlaylist() { if (CurrentEvent.Version == Fortnite_Version) return FindObject(CurrentEvent.PlaylistName, nullptr, ANY_PACKAGE); + } return nullptr; @@ -824,4 +853,4 @@ static inline bool DoesEventRequireLoading() } return false; -} \ No newline at end of file +} diff --git a/README.md b/README.md index 28a7eeb..f15e01d 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,15 @@ # Project Reboot 3.0 -I have quit the community and the project is discontinued 😢. +# what i add alr? +- snow map 11.31 +- snow map 7.30 +- snow map 15.10 +- comand to fly +- comand to go more fast speed up +- fix s9 event +- fix 9.10 volcano not work -S3-S15 (S16-S19 is slightly supported) -## TODO +I just wana add some cool shits to this reboot -- Rewrite picking up code. -- Rewrite dllmain -- Move hooking to each class (for example, AFortGameModeAthena::InitHooks). +discord https://discord.gg/VeptRzDkDu