diff --git a/src/services/quest/QuestService.java b/src/services/quest/QuestService.java index 900b24f2..48a2c867 100644 --- a/src/services/quest/QuestService.java +++ b/src/services/quest/QuestService.java @@ -147,11 +147,7 @@ public class QuestService implements INetworkDispatch { // quest.task.ground.go_to_location case "go_to_location": - Point3D location = new Point3D(task.getLocationX(), task.getLocationY(), task.getLocationZ()); - WaypointObject wpGoTo = createWaypoint(task.getWaypointName(), location, task.getPlanet()); - player.getWaypoints().put(wpGoTo.getObjectID(), wpGoTo); - - quest.setWaypointId(wpGoTo.getObjectID()); + // Waypoint created below now break; // quest.task.ground.comm_player @@ -172,10 +168,7 @@ public class QuestService implements INetworkDispatch { ObjControllerMessage itemCount = new ObjControllerMessage(11, new QuestTaskCounterMessage(quester.getObjectID(), quest, "@quest/groundquests:retrieve_item_counter")); quester.getClient().getSession().write(itemCount.serialize()); - WaypointObject wpRetrieve = createWaypoint(task.getWaypointName(), new Point3D(task.getLocationX(), task.getLocationY(), task.getLocationZ()), task.getPlanet()); - player.getWaypoints().put(wpRetrieve.getObjectID(), wpRetrieve); - - quest.setWaypointId(wpRetrieve.getObjectID()); + // Waypoint created below now break; // quest.task.ground.timer @@ -240,6 +233,13 @@ public class QuestService implements INetworkDispatch { break; } + if (task.createsWaypoint()) { + Point3D location = new Point3D(task.getLocationX(), task.getLocationY(), task.getLocationZ()); + WaypointObject wpGoTo = createWaypoint(task.getWaypointName(), location, task.getPlanet()); + player.getWaypoints().put(wpGoTo.getObjectID(), wpGoTo); + quest.setWaypointId(wpGoTo.getObjectID()); + } + if (!task.isVisible()) { completeActiveTask(quester, quest); return; @@ -628,6 +628,12 @@ public class QuestService implements INetworkDispatch { if (visitor.getObjectByColumnNameAndIndex("SIGNALS_ON_FAIL", r) != null) task.setSignalsOnFail((String) visitor.getObjectByColumnNameAndIndex("SIGNALS_ON_FAIL", r)); if (visitor.getObjectByColumnNameAndIndex("COMM_MESSAGE_TEXT", r) != null) task.setCommMessageText((String) visitor.getObjectByColumnNameAndIndex("COMM_MESSAGE_TEXT", r)); if (visitor.getObjectByColumnNameAndIndex("NPC_APPEARANCE_SERVER_TEMPLATE", r) != null) task.setNpcAppearanceTemplate(convertToSharedFile((String) visitor.getObjectByColumnNameAndIndex("NPC_APPEARANCE_SERVER_TEMPLATE", r))); + if (visitor.getObjectByColumnNameAndIndex("CREATURE_TYPE", r) != null) task.setCreatureType(convertToSharedFile((String) visitor.getObjectByColumnNameAndIndex("CREATURE_TYPE", r))); + if (visitor.getObjectByColumnNameAndIndex("COUNT", r) != null) task.setCount((int) visitor.getObjectByColumnNameAndIndex("COUNT", r)); + if (visitor.getObjectByColumnNameAndIndex("MIN_DISTANCE", r) != null) task.setMinDistance((int) visitor.getObjectByColumnNameAndIndex("MIN_DISTANCE", r)); + if (visitor.getObjectByColumnNameAndIndex("MAX_DISTANCE", r) != null) task.setMaxDistance((int) visitor.getObjectByColumnNameAndIndex("MAX_DISTANCE", r)); + if (visitor.getObjectByColumnNameAndIndex("RELATIVE_OFFSET_X", r) != null) task.setRelativeOffsetX(convertToSharedFile((String) visitor.getObjectByColumnNameAndIndex("RELATIVE_OFFSET_X", r))); + if (visitor.getObjectByColumnNameAndIndex("RELATIVE_OFFSET_Y", r) != null) task.setRelativeOffsetY(convertToSharedFile((String) visitor.getObjectByColumnNameAndIndex("RELATIVE_OFFSET_Y", r))); if (visitor.getObjectByColumnNameAndIndex("SERVER_TEMPLATE", r) != null) task.setServerTemplate(convertToSharedFile((String) visitor.getObjectByColumnNameAndIndex("SERVER_TEMPLATE", r))); if (visitor.getObjectByColumnNameAndIndex("NUM_REQUIRED", r) != null) task.setNumRequired((int) visitor.getObjectByColumnNameAndIndex("NUM_REQUIRED", r)); if (visitor.getObjectByColumnNameAndIndex("ITEM_NAME", r) != null) task.setItemName((String) visitor.getObjectByColumnNameAndIndex("ITEM_NAME", r)); diff --git a/src/services/quest/QuestTask.java b/src/services/quest/QuestTask.java index 4be8d00b..39b1f947 100644 --- a/src/services/quest/QuestTask.java +++ b/src/services/quest/QuestTask.java @@ -47,6 +47,12 @@ public class QuestTask { private String waitMarkerCellName; private String commMessageText; private String npcAppearanceTemplate; // NPC Appearance Server Template + private String creatureType; + private int count; + private int minDistance; + private int maxDistance; + private String relativeOffsetX; + private String relativeOffsetY; private String tasksOnComplete; private String serverTemplate; private String itemName; @@ -280,6 +286,54 @@ public class QuestTask { this.npcAppearanceTemplate = npcAppearanceTemplate; } + public String getCreatureType() { + return creatureType; + } + + public void setCreatureType(String creatureType) { + this.creatureType = creatureType; + } + + public int getCount() { + return count; + } + + public void setCount(int count) { + this.count = count; + } + + public int getMinDistance() { + return minDistance; + } + + public void setMinDistance(int minDistance) { + this.minDistance = minDistance; + } + + public int getMaxDistance() { + return maxDistance; + } + + public void setMaxDistance(int maxDistance) { + this.maxDistance = maxDistance; + } + + public String getRelativeOffsetX() { + return relativeOffsetX; + } + + public void setRelativeOffsetX(String relativeOffsetX) { + this.relativeOffsetX = relativeOffsetX; + } + + public String getRelativeOffsetY() { + return relativeOffsetY; + } + + public void setRelativeOffsetY(String relativeOffsetY) { + this.relativeOffsetY = relativeOffsetY; + } + public boolean isVisible() { return visible; }