Translations:Implementation and Events/142/pt

From DragonMineZ Wiki
Revision as of 01:43, 14 October 2026 by Shokkoh (talk | contribs) (Translation sync from dragonminez-wiki repository)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
  • As classes de objetivos estendem QuestObjective e chamam o construtor QuestObjective(String customType, int required); as classes de recompensas estendem QuestReward, chamam QuestReward(String customType) e implementam giveReward(ServerPlayer) e getDescription(). Os objetivos também precisam implementar checkProgress(Object... params).
  • No JSON das missões, use sua chave como "type" (por exemplo {"type": "MEDITATE", "seconds": 60}). As chaves de tipo não diferenciam maiúsculas de minúsculas (são guardadas em maiúsculas). Trate-as como nomes de registro: não as renomeie depois que as missões passarem a usá-las.
  • O escritor de sincronização precisa gravar todos os campos que sua fábrica lê, porque o cliente lê de novo o JSON sincronizado com a sua fábrica.
  • Tipos desconhecidos são reportados no relatório de carregamento de JSON (veja Encontrar erros de JSON) e o objetivo ou a recompensa é ignorado.
  • O progresso é controlado pelo servidor e orientado a eventos: escute seus próprios eventos de jogo no servidor e salve o progresso com PlayerQuestData.setObjectiveProgress(questKey, objectiveIndex, progress), e depois sincronize com ProgressionSyncS2C. Use DMZEvent.QuestObjectiveProgressEvent e QuestCompletedEvent para reagir às missões incluídas.