diff --git a/Source/ZMMO/Game/Entity/ZeusCharacter.cpp b/Source/ZMMO/Game/Entity/ZeusCharacter.cpp index 11943f2..2538956 100644 --- a/Source/ZMMO/Game/Entity/ZeusCharacter.cpp +++ b/Source/ZMMO/Game/Entity/ZeusCharacter.cpp @@ -432,6 +432,17 @@ void AZeusCharacter::HandleZeusCharInfo(const int64 InEntityId, const FString& C TEXT("AZeusCharacter: S_CHAR_INFO recebido EntityId=%lld name=%s guild=%s"), InEntityId, *CharName, *GuildName); + // 2026-06-03 fix: server envia S_CHAR_INFO de TODOS os players (proprio + + // catch-up de proxies pre-existentes). Sem este filtro, o nome do ultimo + // proxy recebido sobrescrevia o do pawn local (ex: player Mateuus loga e + // ve "Olatudook" em si mesmo porque o catch-up do Olatudook chegou depois + // do S_CHAR_INFO proprio). Proxies remotos sao roteados pelo registry no + // UZeusWorldSubsystem (futuro nameplate por EntityId). + if (ZeusEntityId != 0 && InEntityId != ZeusEntityId) + { + return; + } + APlayerState* PS = GetPlayerState(); if (!PS) {