diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini index 8a9018c..fa27578 100644 --- a/Config/DefaultGame.ini +++ b/Config/DefaultGame.ini @@ -71,6 +71,13 @@ ScreenSetAsset=/Game/ZMMO/UI/InGame/DA_InGameScreenSet.DA_InGameScreenSet ; (UWorldSubsystem) subscribe nos delegates do UZeusNetworkSubsystem. +ComponentClasses=/Script/ZeusGAS.ZeusGASComponent +; === GAS Cue paths (Batch 2.5 — S_ABILITY_CUE multicast cosmetico) === +; UGameplayCueManager scaneia esses paths no boot pra mapear FGameplayTag +; -> AGameplayCueNotify_Actor BP. UZeusGASComponent::DispatchAbilityCue chama +; ASC->ExecuteGameplayCueLocal(CueTag, params) -> manager resolve pelo path. +[/Script/GameplayAbilities.AbilitySystemGlobals] ++GameplayCueNotifyPaths="/Game/ZMMO/GAS/Cues" + [/Script/Engine.AssetManagerSettings] -PrimaryAssetTypesToScan=(PrimaryAssetType="Map",AssetBaseClass=/Script/Engine.World,bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game/Maps")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown)) -PrimaryAssetTypesToScan=(PrimaryAssetType="PrimaryAssetLabel",AssetBaseClass=/Script/Engine.PrimaryAssetLabel,bHasBlueprintClasses=False,bIsEditorOnly=True,Directories=((Path="/Game")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown)) diff --git a/Content/AutoCreated/MMOWidget/Fonts/Font_Cinzel.uasset b/Content/AutoCreated/MMOWidget/Fonts/Font_Cinzel.uasset deleted file mode 100644 index 13030b5..0000000 Binary files a/Content/AutoCreated/MMOWidget/Fonts/Font_Cinzel.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Fonts/Font_Rajdhani.uasset b/Content/AutoCreated/MMOWidget/Fonts/Font_Rajdhani.uasset deleted file mode 100644 index 0b0f203..0000000 Binary files a/Content/AutoCreated/MMOWidget/Fonts/Font_Rajdhani.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Fonts/font_cinzel_700_Face.uasset b/Content/AutoCreated/MMOWidget/Fonts/font_cinzel_700_Face.uasset deleted file mode 100644 index 7e51d53..0000000 Binary files a/Content/AutoCreated/MMOWidget/Fonts/font_cinzel_700_Face.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Fonts/font_cinzel_800_Face.uasset b/Content/AutoCreated/MMOWidget/Fonts/font_cinzel_800_Face.uasset deleted file mode 100644 index 9aaed6b..0000000 Binary files a/Content/AutoCreated/MMOWidget/Fonts/font_cinzel_800_Face.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Fonts/font_rajdhani_400_Face.uasset b/Content/AutoCreated/MMOWidget/Fonts/font_rajdhani_400_Face.uasset deleted file mode 100644 index 0a98af1..0000000 Binary files a/Content/AutoCreated/MMOWidget/Fonts/font_rajdhani_400_Face.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Fonts/font_rajdhani_500_Face.uasset b/Content/AutoCreated/MMOWidget/Fonts/font_rajdhani_500_Face.uasset deleted file mode 100644 index 5481e25..0000000 Binary files a/Content/AutoCreated/MMOWidget/Fonts/font_rajdhani_500_Face.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Fonts/font_rajdhani_600_Face.uasset b/Content/AutoCreated/MMOWidget/Fonts/font_rajdhani_600_Face.uasset deleted file mode 100644 index f65fffe..0000000 Binary files a/Content/AutoCreated/MMOWidget/Fonts/font_rajdhani_600_Face.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Fonts/font_rajdhani_700_Face.uasset b/Content/AutoCreated/MMOWidget/Fonts/font_rajdhani_700_Face.uasset deleted file mode 100644 index 2cafdbe..0000000 Binary files a/Content/AutoCreated/MMOWidget/Fonts/font_rajdhani_700_Face.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Textures/bake_bg_7.uasset b/Content/AutoCreated/MMOWidget/Textures/bake_bg_7.uasset deleted file mode 100644 index 3322847..0000000 Binary files a/Content/AutoCreated/MMOWidget/Textures/bake_bg_7.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Widgets/WBP_BootScreen.uasset b/Content/AutoCreated/MMOWidget/Widgets/WBP_BootScreen.uasset deleted file mode 100644 index cf79a7c..0000000 Binary files a/Content/AutoCreated/MMOWidget/Widgets/WBP_BootScreen.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Widgets/WBP_CharacterCreateScreen.uasset b/Content/AutoCreated/MMOWidget/Widgets/WBP_CharacterCreateScreen.uasset deleted file mode 100644 index 9867dd3..0000000 Binary files a/Content/AutoCreated/MMOWidget/Widgets/WBP_CharacterCreateScreen.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Widgets/WBP_CharacterSelectScreen.uasset b/Content/AutoCreated/MMOWidget/Widgets/WBP_CharacterSelectScreen.uasset deleted file mode 100644 index a85bfd8..0000000 Binary files a/Content/AutoCreated/MMOWidget/Widgets/WBP_CharacterSelectScreen.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Widgets/WBP_LoginScreen.uasset b/Content/AutoCreated/MMOWidget/Widgets/WBP_LoginScreen.uasset deleted file mode 100644 index b41881d..0000000 Binary files a/Content/AutoCreated/MMOWidget/Widgets/WBP_LoginScreen.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Widgets/WBP_ServerSelectScreen.uasset b/Content/AutoCreated/MMOWidget/Widgets/WBP_ServerSelectScreen.uasset deleted file mode 100644 index 568ee3a..0000000 Binary files a/Content/AutoCreated/MMOWidget/Widgets/WBP_ServerSelectScreen.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Widgets/WBP_SettingsScreen.uasset b/Content/AutoCreated/MMOWidget/Widgets/WBP_SettingsScreen.uasset deleted file mode 100644 index 79f383e..0000000 Binary files a/Content/AutoCreated/MMOWidget/Widgets/WBP_SettingsScreen.uasset and /dev/null differ diff --git a/Content/AutoCreated/MMOWidget/Widgets/WBP_UIWorkshopScreen.uasset b/Content/AutoCreated/MMOWidget/Widgets/WBP_UIWorkshopScreen.uasset deleted file mode 100644 index 9811001..0000000 Binary files a/Content/AutoCreated/MMOWidget/Widgets/WBP_UIWorkshopScreen.uasset and /dev/null differ diff --git a/Content/Editor/ZeusUMGForge/FontMap.uasset b/Content/Editor/ZeusUMGForge/FontMap.uasset deleted file mode 100644 index 9cdac71..0000000 Binary files a/Content/Editor/ZeusUMGForge/FontMap.uasset and /dev/null differ diff --git a/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset b/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset index b4a8478..dbe1785 100644 Binary files a/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset and b/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset differ diff --git a/Content/ZMMO/Core/Player/BP_PlayerState.uasset b/Content/ZMMO/Core/Player/BP_PlayerState.uasset new file mode 100644 index 0000000..ff23bcd Binary files /dev/null and b/Content/ZMMO/Core/Player/BP_PlayerState.uasset differ diff --git a/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Arcanist.uasset b/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Arcanist.uasset index da5f825..181dd0a 100644 Binary files a/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Arcanist.uasset and b/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Arcanist.uasset differ diff --git a/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Artisan.uasset b/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Artisan.uasset index 392392b..894e832 100644 Binary files a/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Artisan.uasset and b/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Artisan.uasset differ diff --git a/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Devout.uasset b/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Devout.uasset index 390fa21..becd748 100644 Binary files a/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Devout.uasset and b/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Devout.uasset differ diff --git a/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Ranger.uasset b/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Ranger.uasset index 5542cc2..396cac3 100644 Binary files a/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Ranger.uasset and b/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Ranger.uasset differ diff --git a/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Warrior.uasset b/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Warrior.uasset index e0b3f17..bd4f8cd 100644 Binary files a/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Warrior.uasset and b/Content/ZMMO/Data/Jobs/Vocation/DA_Job_Warrior.uasset differ diff --git a/Content/ZMMO/Data/UI/DT_UI_Styles.uasset b/Content/ZMMO/Data/UI/DT_UI_Styles.uasset index dde015d..871a51b 100644 Binary files a/Content/ZMMO/Data/UI/DT_UI_Styles.uasset and b/Content/ZMMO/Data/UI/DT_UI_Styles.uasset differ diff --git a/Content/ZMMO/GAS/Cues/GC_Dash.uasset b/Content/ZMMO/GAS/Cues/GC_Dash.uasset new file mode 100644 index 0000000..c72c7db Binary files /dev/null and b/Content/ZMMO/GAS/Cues/GC_Dash.uasset differ diff --git a/Content/ZMMO/Sounds/Abilities/SA_Dash.uasset b/Content/ZMMO/Sounds/Abilities/SA_Dash.uasset new file mode 100644 index 0000000..ec15fed Binary files /dev/null and b/Content/ZMMO/Sounds/Abilities/SA_Dash.uasset differ diff --git a/Content/ZMMO/Sounds/Abilities/SC_Dash.uasset b/Content/ZMMO/Sounds/Abilities/SC_Dash.uasset new file mode 100644 index 0000000..42bc566 Binary files /dev/null and b/Content/ZMMO/Sounds/Abilities/SC_Dash.uasset differ diff --git a/Content/ZMMO/Sounds/Abilities/SW_Dash_Source.uasset b/Content/ZMMO/Sounds/Abilities/SW_Dash_Source.uasset new file mode 100644 index 0000000..454fcdf Binary files /dev/null and b/Content/ZMMO/Sounds/Abilities/SW_Dash_Source.uasset differ diff --git a/Content/ZMMO/Sounds/Abilities/SW_Dash_Source.wav b/Content/ZMMO/Sounds/Abilities/SW_Dash_Source.wav new file mode 100644 index 0000000..3dc5852 Binary files /dev/null and b/Content/ZMMO/Sounds/Abilities/SW_Dash_Source.wav differ diff --git a/Content/ZMMO/UI/FrontEnd/ServerSelect/WBP_ServerCard.uasset b/Content/ZMMO/UI/FrontEnd/ServerSelect/WBP_ServerCard.uasset index be9ff2a..62af679 100644 Binary files a/Content/ZMMO/UI/FrontEnd/ServerSelect/WBP_ServerCard.uasset and b/Content/ZMMO/UI/FrontEnd/ServerSelect/WBP_ServerCard.uasset differ diff --git a/Content/ZMMO/UI/FrontEnd/WBP_Boot.uasset b/Content/ZMMO/UI/FrontEnd/WBP_Boot.uasset index 8fa197c..4270cdd 100644 Binary files a/Content/ZMMO/UI/FrontEnd/WBP_Boot.uasset and b/Content/ZMMO/UI/FrontEnd/WBP_Boot.uasset differ diff --git a/Content/ZMMO/UI/FrontEnd/WBP_Login.uasset b/Content/ZMMO/UI/FrontEnd/WBP_Login.uasset index 3d9681a..8a7ad7e 100644 Binary files a/Content/ZMMO/UI/FrontEnd/WBP_Login.uasset and b/Content/ZMMO/UI/FrontEnd/WBP_Login.uasset differ diff --git a/Content/ZMMO/UI/FrontEnd/WBP_ServerSelect.uasset b/Content/ZMMO/UI/FrontEnd/WBP_ServerSelect.uasset index 3103b01..608c0b6 100644 Binary files a/Content/ZMMO/UI/FrontEnd/WBP_ServerSelect.uasset and b/Content/ZMMO/UI/FrontEnd/WBP_ServerSelect.uasset differ diff --git a/Content/ZMMO/UI/Screens/PlayerStatus/UI_PlayerStatus_StatRow.uasset b/Content/ZMMO/UI/Screens/PlayerStatus/UI_PlayerStatus_StatRow.uasset index 34fbf4b..e21f6ca 100644 Binary files a/Content/ZMMO/UI/Screens/PlayerStatus/UI_PlayerStatus_StatRow.uasset and b/Content/ZMMO/UI/Screens/PlayerStatus/UI_PlayerStatus_StatRow.uasset differ diff --git a/Content/ZMMO/UI/Screens/PlayerStatus/UI_PlayerStatus_Window.uasset b/Content/ZMMO/UI/Screens/PlayerStatus/UI_PlayerStatus_Window.uasset index 1a66a2e..0601f64 100644 Binary files a/Content/ZMMO/UI/Screens/PlayerStatus/UI_PlayerStatus_Window.uasset and b/Content/ZMMO/UI/Screens/PlayerStatus/UI_PlayerStatus_Window.uasset differ diff --git a/Content/ZMMO/VFX/Abilities/Dash/NS_Dash_Burst.uasset b/Content/ZMMO/VFX/Abilities/Dash/NS_Dash_Burst.uasset new file mode 100644 index 0000000..1e281cb Binary files /dev/null and b/Content/ZMMO/VFX/Abilities/Dash/NS_Dash_Burst.uasset differ diff --git a/Content/ZMMO/VFX/Abilities/Dash/T_DashShard_Source.png b/Content/ZMMO/VFX/Abilities/Dash/T_DashShard_Source.png new file mode 100644 index 0000000..d6a3164 Binary files /dev/null and b/Content/ZMMO/VFX/Abilities/Dash/T_DashShard_Source.png differ diff --git a/Content/ZeusTemp/M_ProbeVol_dbf9e0.uasset b/Content/ZeusTemp/M_ProbeVol_dbf9e0.uasset deleted file mode 100644 index f8b6a0a..0000000 Binary files a/Content/ZeusTemp/M_ProbeVol_dbf9e0.uasset and /dev/null differ diff --git a/Content/ZeusTemp/M_Probe_57c18e41.uasset b/Content/ZeusTemp/M_Probe_57c18e41.uasset deleted file mode 100644 index 46bd16b..0000000 Binary files a/Content/ZeusTemp/M_Probe_57c18e41.uasset and /dev/null differ diff --git a/Content/ZeusTemp/M_Probe_c8231c7b.uasset b/Content/ZeusTemp/M_Probe_c8231c7b.uasset deleted file mode 100644 index 835a10c..0000000 Binary files a/Content/ZeusTemp/M_Probe_c8231c7b.uasset and /dev/null differ diff --git a/Content/ZeusTemp/M_Probe_d666a86b.uasset b/Content/ZeusTemp/M_Probe_d666a86b.uasset deleted file mode 100644 index 303a644..0000000 Binary files a/Content/ZeusTemp/M_Probe_d666a86b.uasset and /dev/null differ diff --git a/Content/ZeusTemp/M_TempProbe_41c02943.uasset b/Content/ZeusTemp/M_TempProbe_41c02943.uasset deleted file mode 100644 index 0421a77..0000000 Binary files a/Content/ZeusTemp/M_TempProbe_41c02943.uasset and /dev/null differ diff --git a/Source/ZMMO/Game/Network/ZeusWorldSubsystem.cpp b/Source/ZMMO/Game/Network/ZeusWorldSubsystem.cpp index caa78cb..e1897ca 100644 --- a/Source/ZMMO/Game/Network/ZeusWorldSubsystem.cpp +++ b/Source/ZMMO/Game/Network/ZeusWorldSubsystem.cpp @@ -2,10 +2,13 @@ #include "Engine/GameInstance.h" #include "Engine/World.h" +#include "GameFramework/GameStateBase.h" #include "ZMMO.h" #include "ZeusEntity.h" #include "ZeusEntityInterface.h" +#include "ZeusGASComponent.h" #include "ZeusPlayerProxy.h" +#include "ZeusPlayerState.h" #include "ZeusNetworkSubsystem.h" void UZeusWorldSubsystem::Initialize(FSubsystemCollectionBase& Collection) @@ -160,6 +163,54 @@ void UZeusWorldSubsystem::HandlePlayerSpawned(const int64 EntityId, const bool b AsEntity->SetEntityRelevant(true); } + // === PlayerState pra proxies (Batch 2.5+) === + // + // Sem PlayerState, o proxy fica fora do GameState->PlayerArray. Daqui pra + // cima, qualquer sistema que itera PlayerArray (UZeusGASNetworkHandler:: + // FindGASComponentForEntity, HUD, chat, friend list) NAO consegue achar o + // proxy -> fallback ao local player -> efeito apareceria no char errado + // (bug do cue do Dash). Criar PS replicado-fake permite que o pipeline GAS + // trate proxies igual a local players. + // + // PlayerState tem o UZeusGASComponent via DefaultGame.ini Component Registry, + // entao GASComp e' auto-instanciado. So' precisamos seed o EntityId. + if (APawn* ProxyPawn = Cast(SpawnedActor)) + { + FActorSpawnParameters PSParams; + PSParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn; + PSParams.Owner = ProxyPawn; + AZeusPlayerState* ProxyPS = World->SpawnActor( + AZeusPlayerState::StaticClass(), FVector::ZeroVector, FRotator::ZeroRotator, PSParams); + if (ProxyPS) + { + ProxyPawn->SetPlayerState(ProxyPS); // tambem chama ProxyPS->SetPawn(ProxyPawn) + + // Add ao PlayerArray do GameState (replicacao UE faria isso automatico, + // mas no nosso pipeline custom o PS local-fake precisa ser inserido). + if (AGameStateBase* GS = World->GetGameState()) + { + GS->AddPlayerState(ProxyPS); + } + + // Seed EntityId no GASComp do PS (criado via Component Registry). + // FindGASComponentForEntity vai resolver via PS->FindComponentByClass. + if (UZeusGASComponent* GASComp = ProxyPS->FindComponentByClass()) + { + GASComp->SeedEntityId(EntityId); + } + + UE_LOG(LogZMMO, Log, + TEXT("ZeusWorldSubsystem: PlayerState criado p/ proxy EntityId=%lld PS=%s"), + EntityId, *ProxyPS->GetName()); + } + else + { + UE_LOG(LogZMMO, Warning, + TEXT("ZeusWorldSubsystem: SpawnActor falhou pra proxy EntityId=%lld"), + EntityId); + } + } + RemoteEntities.Add(EntityId, TWeakObjectPtr(SpawnedActor)); UE_LOG(LogZMMO, Log, TEXT("ZeusWorldSubsystem: spawned remote EntityId=%d at (%s) yaw=%.1f t=%lld"), EntityId, *PosCm.ToString(), YawDeg, ServerTimeMs); @@ -185,6 +236,22 @@ void UZeusWorldSubsystem::HandlePlayerDespawned(const int64 EntityId) { AsEntity->SetEntityRelevant(false); } + // Destrui PS proxy linkado (Batch 2.5+). Sem isso o GameState->PlayerArray + // fica com PS orfa apos o proxy ser destruido. + if (APawn* Pawn = Cast(Actor)) + { + if (APlayerState* PS = Pawn->GetPlayerState()) + { + if (UWorld* World = GetWorld()) + { + if (AGameStateBase* GS = World->GetGameState()) + { + GS->RemovePlayerState(PS); + } + } + PS->Destroy(); + } + } Actor->Destroy(); } RemoteEntities.Remove(EntityId);