Translations:Implementation and Events/142/pt
From DragonMineZ Wiki
- As classes de objetivos estendem
QuestObjectivee chamam o construtorQuestObjective(String customType, int required); as classes de recompensas estendemQuestReward, chamamQuestReward(String customType)e implementamgiveReward(ServerPlayer)egetDescription(). Os objetivos também precisam implementarcheckProgress(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 comProgressionSyncS2C. UseDMZEvent.QuestObjectiveProgressEventeQuestCompletedEventpara reagir às missões incluídas.