Translations:Implementation and Events/142/es

From DragonMineZ Wiki
  • Las clases de objetivos extienden QuestObjective y llaman al constructor QuestObjective(String customType, int required); las clases de recompensas extienden QuestReward, llaman a QuestReward(String customType) e implementan giveReward(ServerPlayer) y getDescription(). Los objetivos también deben implementar checkProgress(Object... params).
  • En el JSON de las misiones, usa tu clave como "type" (por ejemplo {"type": "MEDITATE", "seconds": 60}). Las claves de tipo no distinguen mayúsculas de minúsculas (se guardan en mayúsculas). Trátalas como nombres de registro: no las renombres una vez que las misiones las usen.
  • El escritor de sincronización debe escribir todos los campos que lee tu fábrica, porque el cliente vuelve a analizar el JSON sincronizado con tu fábrica.
  • Los tipos desconocidos se informan en el reporte de carga de JSON (consulta Encontrar errores de JSON) y el objetivo o la recompensa se omite.
  • El progreso lo controla el servidor y se basa en eventos: escucha tus propios eventos de juego en el servidor y guarda el progreso con PlayerQuestData.setObjectiveProgress(questKey, objectiveIndex, progress), y luego sincroniza con ProgressionSyncS2C. Usa DMZEvent.QuestObjectiveProgressEvent y QuestCompletedEvent para reaccionar a las misiones incluidas.