- ZMMOWorldEntry -> ZMMORealmEntry (RealmId + GatewayEndpoint single string)
- CharServerOpcodes: S_WORLD_* -> S_REALM_*
- UIServerSelectScreen: parse S_REALM_LIST com gatewayEndpoint
- UIUserLobbyScreen: parse S_CHAR_SELECT_OK, split gatewayEndpoint via FString::Split(":", FromEnd) — IPv6 tolerante
- UICharacterCreatePage: SubmitCreate envia realmId
- ZMMOCharSummary: WorldId -> RealmId
- UIFrontEndFlowSubsystem: GetSelectedRealmId; fix de race em PendingLoadingSteps_ (TSet snapshot via MoveTemp antes de iterar; evita access violation em TConstSetBitIterator durante async lambda)
Conferido E2E: 2 standalone instances entram simultaneamente em Provinces diferentes via Gateway.
49 lines
1.4 KiB
C
49 lines
1.4 KiB
C
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "ZMMORealmEntry.generated.h"
|
|
|
|
/**
|
|
* Entrada de Realm (cluster Gateway+Provinces) recebida do CharServer via
|
|
* S_REALM_LIST. Espelha `RealmRecord` em
|
|
* `Server/ZeusCharServer/src/types/realm.types.ts`.
|
|
*
|
|
* `GatewayEndpoint` e' o endereco "host:port" do Gateway do Realm (UMA
|
|
* single string vinda do server — substitui o par host+port da versao
|
|
* anterior). Cliente faz split por `:` quando precisa abrir UDP.
|
|
*
|
|
* State usa o wire raw (0=Offline, 1=Online, 2=Maintenance — ver
|
|
* ZMMOWireRealmState em CharServerOpcodes.h).
|
|
*/
|
|
USTRUCT(BlueprintType)
|
|
struct FZMMORealmEntry
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
UPROPERTY(BlueprintReadOnly, Category = "Zeus|Realm")
|
|
FString RealmId;
|
|
|
|
UPROPERTY(BlueprintReadOnly, Category = "Zeus|Realm")
|
|
FString Name;
|
|
|
|
UPROPERTY(BlueprintReadOnly, Category = "Zeus|Realm")
|
|
FString Region;
|
|
|
|
/** Endpoint do Gateway no formato "host:port" (ex: "127.0.0.1:7777"). */
|
|
UPROPERTY(BlueprintReadOnly, Category = "Zeus|Realm")
|
|
FString GatewayEndpoint;
|
|
|
|
UPROPERTY(BlueprintReadOnly, Category = "Zeus|Realm")
|
|
int32 Capacity = 0;
|
|
|
|
UPROPERTY(BlueprintReadOnly, Category = "Zeus|Realm")
|
|
int32 Pop = 0;
|
|
|
|
UPROPERTY(BlueprintReadOnly, Category = "Zeus|Realm")
|
|
int32 QueueLen = 0;
|
|
|
|
/** 0=Offline, 1=Online, 2=Maintenance (vide ZMMOWireRealmState). */
|
|
UPROPERTY(BlueprintReadOnly, Category = "Zeus|Realm")
|
|
uint8 State = 0;
|
|
};
|