feat(char-spawn): Fase 4 client + UI WBPs paralelo #2
Reference in New Issue
Block a user
Delete Branch "feat/frontend-mainmenu-skeleton"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Fase 4 (foco):
Working tree paralelo:
Test plan
UILoginScreen_Base agora envia uint8(PASSWORD) + string(user) + string(pass) no C_CHAR_AUTH_REQUEST (em vez de string(token dev:N)). Servidor valida via AccountService.login (Argon2id + lockout) — contas são criadas com 'npm run account' no ZeusCharServer. CharServerOpcodes.h espelha do servidor: - ZMMOCharAuthMethod::{TOKEN=0, PASSWORD=1} - ZMMOCharRejectReason::{InvalidToken, AccountBanned, AlreadyOnline, InvalidCredentials=4, AccountLocked=5, AccountSuspended=6, CredentialsAuthDisabled=7} S_CHAR_AUTH_REJECT mapeia por switch: - 4 → InvalidCredentialsText (Usuário ou senha inválidos.) - 5 → AccountLockedText (Conta bloqueada por excesso de tentativas.) - 6 → AccountSuspendedText (Conta suspensa.) - 7 → CredentialsDisabledText (Auth indisponível no servidor.) - outros → RejectedText + código MakeDevToken removido (StubTokenValidator continua aceitando dev:N no servidor para testes diretos via outro cliente). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>Cliente UE (foco da frente): - FZMMOMapDef + FZMMOMapSpawn (Source/ZMMO/Data/World/MapDef.h) — row do DT_Maps com MapId/DisplayName/ClientLevel/Spawns[] taggeados - DT_Maps.uasset (Content/ZMMO/Data/World/) — 1 row "TestWorld" mapId=1 apontando pra L_TestWorld + spawn "default" em (0,0,200) - L_TestWorld movido: /Game/ThirdPerson/TestWorld -> /Game/ZMMO/Maps/World/L_TestWorld (75 ext actors WP duplicados, original deletado) - ZMMOCharSummary.MapName (FString) -> MapId (int32) - UIUserLobbyScreen_Base parseia uint16 mapId no S_CHAR_SELECT_OK + chama Flow->TravelToMapById(mapId) + Flow->SetPendingSpawnPose(pos, yaw) - UIFrontEndFlowSubsystem: MapsTableAsset (config), FindMapDef, ResolveLevelPathByMapId, TravelToMapById, SetPendingSpawnPose/Consume - AZMMOPlayerCharacter::BeginPlay: consome PendingSpawnPose do Flow e SetActorLocationAndRotation no pawn local (substitui PlayerStart default) - DefaultGame.ini: MapsTableAsset=/Game/ZMMO/Data/World/DT_Maps.DT_Maps - .gitignore: + .vscode/ Outras mudancas no working tree (paralelas a esta frente): - Content/AutoCreated/MMOWidget/Widgets/WBP_* (boot/login/charselect/etc.) - Content/AutoCreated/MMOWidget/Fonts/Font_* + font_*_Face - Refatoracao de fontes ZMMO/UI/Fonts (FF_* deletadas, F_* + Face) - Content/__ExternalActors__/ZMMO/Debug/Maps/L_Test_UI/* (75 actors) - Content/Editor/ZeusUMGForge/FontMap.uasset - Content/ZMMO/UI/Shared/UI_CheckBox_Master.uasset - Content/ExternalContent/{Fab,Marketplace,Megascans}/.gitkeep - Content/ThirdPerson/Menu.umap