feat(client): Fase 3 — handoff UDP no Lobby + entry no mundo de gameplay

Lobby:
- HandleCharSelectOk invoca UZeusNetworkSubsystem->ConnectToZeusServerWithTicket
  (host, port, token) recebido do CharServer no S_CHAR_SELECT_OK.

Server travel:
- HandleServerTravelRequested força ZMMOGameMode via URL option
  (`?game=/Script/ZMMO.ZMMOGameMode`) no OpenLevel, independente do
  GameModeOverride do .umap. Evita herdar ZMMOFrontEndGameMode em mapas
  copiados/baseados em L_FrontEnd.

PlayerController:
- ZMMOPlayerController::BeginPlay força FInputModeGameOnly + cursor off +
  FlushPressedKeys ao tomar posse. Necessário pq UIManagerSubsystem é
  LocalPlayerSubsystem (sobrevive ao travel) e o controller anterior
  (AZMMOFrontEndPlayerController) tinha setado FInputModeUIOnly — sem este
  reset, WASD/Look não chegavam ao pawn no novo mundo.

Assets:
- TestWorld: PlayerStart adicionado, World Settings com GameModeOverride=
  ZMMOGameMode + Default Pawn=ZMMOPlayerCharacter + Controller=
  ZMMOPlayerController.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-22 20:58:48 -03:00
parent 166650671f
commit 99aee52317
8 changed files with 36 additions and 3 deletions