Translations:Implementation and Events/142/es
From DragonMineZ Wiki
- Las clases de objetivos extienden
QuestObjectivey llaman al constructorQuestObjective(String customType, int required); las clases de recompensas extiendenQuestReward, llaman aQuestReward(String customType)e implementangiveReward(ServerPlayer)ygetDescription(). Los objetivos también deben implementarcheckProgress(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 conProgressionSyncS2C. UsaDMZEvent.QuestObjectiveProgressEventyQuestCompletedEventpara reaccionar a las misiones incluidas.