c3df705a7ae9010c5e8d23de2289c7c735699c5b
* UZMMOJobDataAsset (Source/ZMMOJobs/Public/) ganha 3 campos novos
espelhando o JobDef do server:
- Tier (EZMMOJobTier)
- ParentClassId (int32)
- AllowedWeapons (TArray<EZMMOWeaponType>)
* Novo header ZMMOJobTypes.h com 2 UENUM(BlueprintType):
- EZMMOJobTier (6 valores: Beginner..Mastery)
- EZMMOWeaponType (19 valores: Fist..Gun)
Todos com UMETA(DisplayName="pt-BR") pro Editor mostrar nomes
amigaveis em dropdowns. Ordem casa byte-a-byte com EJobTier/
EWeaponType do server (necessario pq snapshot carrega tier u8 + mask).
* 7 DA_Job_*.uasset criados via MCP Python, organizados por tier:
Content/ZMMO/Data/Jobs/Beginner/
DA_Job_Novice (ClassId=0, AllowedWeapons=[Fist,Dagger])
Content/ZMMO/Data/Jobs/Vocation/
DA_Job_Warrior (ClassId=1, 8 armas: Sword+Spear+Axe variations)
DA_Job_Arcanist (ClassId=2, 5 armas: Staff+Book)
DA_Job_Ranger (ClassId=3, 5 armas: Bow+Musical+Whip)
DA_Job_Artisan (ClassId=4, 5 armas: Sword1H+Mace1H+Axe1H)
DA_Job_Rogue (ClassId=5, 5 armas: Sword1H+Bow+Katar)
DA_Job_Devout (ClassId=6, 5 armas: Mace+Staff1H+Knuckle)
ParentClassId=0 (Novice) em todas Vocacoes. Tier=Vocation.
JobIcon/Sound/Anim ficam None — preencher conforme arte for produzida.
ZMMOJobsSubsystem busca por classe (GetAssetsByClass), entao a
reorganizacao em subpastas NAO requer mudanca em .cpp/.h.
* ZMMOAttributeTypes.h: comentario de opcode 1200 -> 1500 (espelha
refactor Open-Closed do server ranges; valores wire format mudaram).
Boot esperado: [ZMMOJobsSubsystem] Initialize: 7 job(s) carregados.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ZMMO — Cliente Unreal Zeus MMO
Cliente Unreal Engine 5.7 do projecto Zeus. Implementa o pipeline "cliente solto + servidor valida input/velocidade" definido em ADR 0038 (landscape autoritativo no cliente; servidor reservado para colisao de objectos).
Arquitectura
Source/ZMMO/Game/Entity/—IZMMOEntityInterface,AZMMOEntity,AZMMOPlayerCharacter(local, CMC livre),AZMMOPlayerProxy(remoto, snapshot-only).Source/ZMMO/Game/Controller/—AZMMOPlayerControllercom Enhanced Input + virtual joystick opcional.Source/ZMMO/Game/Modes/—AZMMOGameModeeUZMMOGameInstance(auto-connect ao servidor Zeus emInit).Source/ZMMO/Game/Network/—UZMMOWorldSubsystem(registryEntityId -> AActor*, dispatch dos delegates doUZeusNetworkSubsystem).
Dependencias
- Unreal Engine 5.7
- Plugin
ZeusNetwork(do projecto servidor, emServer/Plugins/Unreal/) - Plugin
ZeusMapTools(editor-only, opcional)
Smoke test
- Servidor Zeus a correr em
127.0.0.1:27777. - Abrir
ZMMO.uproject, aguardar build do moduloZMMO. - PIE: confirmar
[Zeus] Connected to server 127.0.0.1:27777no Output Log e o spawn do pawn local comEntityIdautoritativo.
Configuracao
bAutoConnectOnStart(defaulttrue) emUZMMOGameInstance. Desligar quando existir UI de login.Config/DefaultEngine.iniapontaGlobalDefaultGameMode=/Script/ZMMO.ZMMOGameMode.
Description
Languages
C++
93.1%
C
5.2%
C#
1%
Python
0.5%
PowerShell
0.2%