Rename and clean up MapleQuestStatus
This commit is contained in:
@@ -176,7 +176,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
private List<Integer> lastmonthfameids;
|
private List<Integer> lastmonthfameids;
|
||||||
private final List<WeakReference<MapleMap>> lastVisitedMaps = new LinkedList<>();
|
private final List<WeakReference<MapleMap>> lastVisitedMaps = new LinkedList<>();
|
||||||
private WeakReference<MapleMap> ownedMap = new WeakReference<>(null);
|
private WeakReference<MapleMap> ownedMap = new WeakReference<>(null);
|
||||||
private final Map<Short, MapleQuestStatus> quests;
|
private final Map<Short, QuestStatus> quests;
|
||||||
private final Set<MapleMonster> controlled = new LinkedHashSet<>();
|
private final Set<MapleMonster> controlled = new LinkedHashSet<>();
|
||||||
private final Map<Integer, String> entered = new LinkedHashMap<>();
|
private final Map<Integer, String> entered = new LinkedHashMap<>();
|
||||||
private final Set<MapleMapObject> visibleMapObjects = Collections.newSetFromMap(new ConcurrentHashMap<>());
|
private final Set<MapleMapObject> visibleMapObjects = Collections.newSetFromMap(new ConcurrentHashMap<>());
|
||||||
@@ -4622,16 +4622,16 @@ public class Character extends AbstractCharacterObject {
|
|||||||
return client.getAbstractPlayerInteraction();
|
return client.getAbstractPlayerInteraction();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<MapleQuestStatus> getQuests() {
|
private List<QuestStatus> getQuests() {
|
||||||
synchronized (quests) {
|
synchronized (quests) {
|
||||||
return new ArrayList<>(quests.values());
|
return new ArrayList<>(quests.values());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public final List<MapleQuestStatus> getCompletedQuests() {
|
public final List<QuestStatus> getCompletedQuests() {
|
||||||
List<MapleQuestStatus> ret = new LinkedList<>();
|
List<QuestStatus> ret = new LinkedList<>();
|
||||||
for (MapleQuestStatus qs : getQuests()) {
|
for (QuestStatus qs : getQuests()) {
|
||||||
if (qs.getStatus().equals(MapleQuestStatus.Status.COMPLETED)) {
|
if (qs.getStatus().equals(QuestStatus.Status.COMPLETED)) {
|
||||||
ret.add(qs);
|
ret.add(qs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5676,7 +5676,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
|
|
||||||
public final byte getQuestStatus(final int quest) {
|
public final byte getQuestStatus(final int quest) {
|
||||||
synchronized (quests) {
|
synchronized (quests) {
|
||||||
MapleQuestStatus mqs = quests.get((short) quest);
|
QuestStatus mqs = quests.get((short) quest);
|
||||||
if (mqs != null) {
|
if (mqs != null) {
|
||||||
return (byte) mqs.getStatus().getId();
|
return (byte) mqs.getStatus().getId();
|
||||||
} else {
|
} else {
|
||||||
@@ -5685,16 +5685,16 @@ public class Character extends AbstractCharacterObject {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public MapleQuestStatus getQuest(final int quest) {
|
public QuestStatus getQuest(final int quest) {
|
||||||
return getQuest(MapleQuest.getInstance(quest));
|
return getQuest(MapleQuest.getInstance(quest));
|
||||||
}
|
}
|
||||||
|
|
||||||
public MapleQuestStatus getQuest(MapleQuest quest) {
|
public QuestStatus getQuest(MapleQuest quest) {
|
||||||
synchronized (quests) {
|
synchronized (quests) {
|
||||||
short questid = quest.getId();
|
short questid = quest.getId();
|
||||||
MapleQuestStatus qs = quests.get(questid);
|
QuestStatus qs = quests.get(questid);
|
||||||
if (qs == null) {
|
if (qs == null) {
|
||||||
qs = new MapleQuestStatus(quest, MapleQuestStatus.Status.NOT_STARTED);
|
qs = new QuestStatus(quest, QuestStatus.Status.NOT_STARTED);
|
||||||
quests.put(questid, qs);
|
quests.put(questid, qs);
|
||||||
}
|
}
|
||||||
return qs;
|
return qs;
|
||||||
@@ -5706,17 +5706,17 @@ public class Character extends AbstractCharacterObject {
|
|||||||
public final void setQuestAdd(final MapleQuest quest, final byte status, final String customData) {
|
public final void setQuestAdd(final MapleQuest quest, final byte status, final String customData) {
|
||||||
synchronized (quests) {
|
synchronized (quests) {
|
||||||
if (!quests.containsKey(quest.getId())) {
|
if (!quests.containsKey(quest.getId())) {
|
||||||
final MapleQuestStatus stat = new MapleQuestStatus(quest, MapleQuestStatus.Status.getById(status));
|
final QuestStatus stat = new QuestStatus(quest, QuestStatus.Status.getById(status));
|
||||||
stat.setCustomData(customData);
|
stat.setCustomData(customData);
|
||||||
quests.put(quest.getId(), stat);
|
quests.put(quest.getId(), stat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public final MapleQuestStatus getQuestNAdd(final MapleQuest quest) {
|
public final QuestStatus getQuestNAdd(final MapleQuest quest) {
|
||||||
synchronized (quests) {
|
synchronized (quests) {
|
||||||
if (!quests.containsKey(quest.getId())) {
|
if (!quests.containsKey(quest.getId())) {
|
||||||
final MapleQuestStatus status = new MapleQuestStatus(quest, MapleQuestStatus.Status.NOT_STARTED);
|
final QuestStatus status = new QuestStatus(quest, QuestStatus.Status.NOT_STARTED);
|
||||||
quests.put(quest.getId(), status);
|
quests.put(quest.getId(), status);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@@ -5724,13 +5724,13 @@ public class Character extends AbstractCharacterObject {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public final MapleQuestStatus getQuestNoAdd(final MapleQuest quest) {
|
public final QuestStatus getQuestNoAdd(final MapleQuest quest) {
|
||||||
synchronized (quests) {
|
synchronized (quests) {
|
||||||
return quests.get(quest.getId());
|
return quests.get(quest.getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public final MapleQuestStatus getQuestRemove(final MapleQuest quest) {
|
public final QuestStatus getQuestRemove(final MapleQuest quest) {
|
||||||
synchronized (quests) {
|
synchronized (quests) {
|
||||||
return quests.remove(quest.getId());
|
return quests.remove(quest.getId());
|
||||||
}
|
}
|
||||||
@@ -5838,10 +5838,10 @@ public class Character extends AbstractCharacterObject {
|
|||||||
return slots;
|
return slots;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final List<MapleQuestStatus> getStartedQuests() {
|
public final List<QuestStatus> getStartedQuests() {
|
||||||
List<MapleQuestStatus> ret = new LinkedList<>();
|
List<QuestStatus> ret = new LinkedList<>();
|
||||||
for (MapleQuestStatus qs : getQuests()) {
|
for (QuestStatus qs : getQuests()) {
|
||||||
if (qs.getStatus().equals(MapleQuestStatus.Status.STARTED)) {
|
if (qs.getStatus().equals(QuestStatus.Status.STARTED)) {
|
||||||
ret.add(qs);
|
ret.add(qs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7233,7 +7233,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (channelserver) {
|
if (channelserver) {
|
||||||
final Map<Integer, MapleQuestStatus> loadedQuestStatus = new LinkedHashMap<>();
|
final Map<Integer, QuestStatus> loadedQuestStatus = new LinkedHashMap<>();
|
||||||
|
|
||||||
// Quest status
|
// Quest status
|
||||||
try (PreparedStatement ps = con.prepareStatement("SELECT * FROM queststatus WHERE characterid = ?")) {
|
try (PreparedStatement ps = con.prepareStatement("SELECT * FROM queststatus WHERE characterid = ?")) {
|
||||||
@@ -7242,7 +7242,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
try (ResultSet rs = ps.executeQuery()) {
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
MapleQuest q = MapleQuest.getInstance(rs.getShort("quest"));
|
MapleQuest q = MapleQuest.getInstance(rs.getShort("quest"));
|
||||||
MapleQuestStatus status = new MapleQuestStatus(q, MapleQuestStatus.Status.getById(rs.getInt("status")));
|
QuestStatus status = new QuestStatus(q, QuestStatus.Status.getById(rs.getInt("status")));
|
||||||
long cTime = rs.getLong("time");
|
long cTime = rs.getLong("time");
|
||||||
if (cTime > -1) {
|
if (cTime > -1) {
|
||||||
status.setCompletionTime(cTime * 1000);
|
status.setCompletionTime(cTime * 1000);
|
||||||
@@ -7267,7 +7267,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
ps.setInt(1, charid);
|
ps.setInt(1, charid);
|
||||||
try (ResultSet rsProgress = ps.executeQuery()) {
|
try (ResultSet rsProgress = ps.executeQuery()) {
|
||||||
while (rsProgress.next()) {
|
while (rsProgress.next()) {
|
||||||
MapleQuestStatus status = loadedQuestStatus.get(rsProgress.getInt("queststatusid"));
|
QuestStatus status = loadedQuestStatus.get(rsProgress.getInt("queststatusid"));
|
||||||
if (status != null) {
|
if (status != null) {
|
||||||
status.setProgress(rsProgress.getInt("progressid"), rsProgress.getString("progress"));
|
status.setProgress(rsProgress.getInt("progressid"), rsProgress.getString("progress"));
|
||||||
}
|
}
|
||||||
@@ -7280,7 +7280,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
ps.setInt(1, charid);
|
ps.setInt(1, charid);
|
||||||
try (ResultSet rsMedalMaps = ps.executeQuery()) {
|
try (ResultSet rsMedalMaps = ps.executeQuery()) {
|
||||||
while (rsMedalMaps.next()) {
|
while (rsMedalMaps.next()) {
|
||||||
MapleQuestStatus status = loadedQuestStatus.get(rsMedalMaps.getInt("queststatusid"));
|
QuestStatus status = loadedQuestStatus.get(rsMedalMaps.getInt("queststatusid"));
|
||||||
if (status != null) {
|
if (status != null) {
|
||||||
status.addMedalMap(rsMedalMaps.getInt("mapid"));
|
status.addMedalMap(rsMedalMaps.getInt("mapid"));
|
||||||
}
|
}
|
||||||
@@ -7453,7 +7453,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void reloadQuestExpirations() {
|
public void reloadQuestExpirations() {
|
||||||
for (MapleQuestStatus mqs : getStartedQuests()) {
|
for (QuestStatus mqs : getStartedQuests()) {
|
||||||
if (mqs.getExpirationTime() > 0) {
|
if (mqs.getExpirationTime() > 0) {
|
||||||
questTimeLimit2(mqs.getQuest(), mqs.getExpirationTime());
|
questTimeLimit2(mqs.getQuest(), mqs.getExpirationTime());
|
||||||
}
|
}
|
||||||
@@ -7521,9 +7521,9 @@ public class Character extends AbstractCharacterObject {
|
|||||||
int lastQuestProcessed = 0;
|
int lastQuestProcessed = 0;
|
||||||
try {
|
try {
|
||||||
synchronized (quests) {
|
synchronized (quests) {
|
||||||
for (MapleQuestStatus qs : getQuests()) {
|
for (QuestStatus qs : getQuests()) {
|
||||||
lastQuestProcessed = qs.getQuest().getId();
|
lastQuestProcessed = qs.getQuest().getId();
|
||||||
if (qs.getStatus() == MapleQuestStatus.Status.COMPLETED || qs.getQuest().canComplete(this, null)) {
|
if (qs.getStatus() == QuestStatus.Status.COMPLETED || qs.getQuest().canComplete(this, null)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -8675,7 +8675,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
PreparedStatement psMedal = con.prepareStatement("INSERT INTO medalmaps VALUES (DEFAULT, ?, ?, ?)")) {
|
PreparedStatement psMedal = con.prepareStatement("INSERT INTO medalmaps VALUES (DEFAULT, ?, ?, ?)")) {
|
||||||
psStatus.setInt(1, id);
|
psStatus.setInt(1, id);
|
||||||
|
|
||||||
for (MapleQuestStatus qs : getQuests()) {
|
for (QuestStatus qs : getQuests()) {
|
||||||
psStatus.setInt(2, qs.getQuest().getId());
|
psStatus.setInt(2, qs.getQuest().getId());
|
||||||
psStatus.setInt(3, qs.getStatus().getId());
|
psStatus.setInt(3, qs.getStatus().getId());
|
||||||
psStatus.setInt(4, (int) (qs.getCompletionTime() / 1000));
|
psStatus.setInt(4, (int) (qs.getCompletionTime() / 1000));
|
||||||
@@ -9822,11 +9822,11 @@ public class Character extends AbstractCharacterObject {
|
|||||||
|
|
||||||
public void setQuestProgress(int id, int infoNumber, String progress) {
|
public void setQuestProgress(int id, int infoNumber, String progress) {
|
||||||
MapleQuest q = MapleQuest.getInstance(id);
|
MapleQuest q = MapleQuest.getInstance(id);
|
||||||
MapleQuestStatus qs = getQuest(q);
|
QuestStatus qs = getQuest(q);
|
||||||
|
|
||||||
if (qs.getInfoNumber() == infoNumber && infoNumber > 0) {
|
if (qs.getInfoNumber() == infoNumber && infoNumber > 0) {
|
||||||
MapleQuest iq = MapleQuest.getInstance(infoNumber);
|
MapleQuest iq = MapleQuest.getInstance(infoNumber);
|
||||||
MapleQuestStatus iqs = getQuest(iq);
|
QuestStatus iqs = getQuest(iq);
|
||||||
iqs.setProgress(0, progress);
|
iqs.setProgress(0, progress);
|
||||||
} else {
|
} else {
|
||||||
qs.setProgress(infoNumber, progress); // quest progress is thoroughly a string match, infoNumber is actually another questid
|
qs.setProgress(infoNumber, progress); // quest progress is thoroughly a string match, infoNumber is actually another questid
|
||||||
@@ -9865,7 +9865,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
|
|
||||||
switch (questUpdate.getLeft()) {
|
switch (questUpdate.getLeft()) {
|
||||||
case UPDATE:
|
case UPDATE:
|
||||||
sendPacket(PacketCreator.updateQuest(chr, (MapleQuestStatus) objs[0], (Boolean) objs[1]));
|
sendPacket(PacketCreator.updateQuest(chr, (QuestStatus) objs[0], (Boolean) objs[1]));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FORFEIT:
|
case FORFEIT:
|
||||||
@@ -9877,7 +9877,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case INFO:
|
case INFO:
|
||||||
MapleQuestStatus qs = (MapleQuestStatus) objs[0];
|
QuestStatus qs = (QuestStatus) objs[0];
|
||||||
sendPacket(PacketCreator.updateQuestInfo(qs.getQuest().getId(), qs.getNpc()));
|
sendPacket(PacketCreator.updateQuestInfo(qs.getQuest().getId(), qs.getNpc()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -9908,17 +9908,17 @@ public class Character extends AbstractCharacterObject {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateQuestStatus(MapleQuestStatus qs) {
|
public void updateQuestStatus(QuestStatus qs) {
|
||||||
synchronized (quests) {
|
synchronized (quests) {
|
||||||
quests.put(qs.getQuestID(), qs);
|
quests.put(qs.getQuestID(), qs);
|
||||||
}
|
}
|
||||||
if (qs.getStatus().equals(MapleQuestStatus.Status.STARTED)) {
|
if (qs.getStatus().equals(QuestStatus.Status.STARTED)) {
|
||||||
announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
|
announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
|
||||||
if (qs.getInfoNumber() > 0) {
|
if (qs.getInfoNumber() > 0) {
|
||||||
announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, true);
|
announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, true);
|
||||||
}
|
}
|
||||||
announceUpdateQuest(DelayedQuestUpdate.INFO, qs);
|
announceUpdateQuest(DelayedQuestUpdate.INFO, qs);
|
||||||
} else if (qs.getStatus().equals(MapleQuestStatus.Status.COMPLETED)) {
|
} else if (qs.getStatus().equals(QuestStatus.Status.COMPLETED)) {
|
||||||
MapleQuest mquest = qs.getQuest();
|
MapleQuest mquest = qs.getQuest();
|
||||||
short questid = mquest.getId();
|
short questid = mquest.getId();
|
||||||
if (!mquest.isSameDayRepeatable() && !MapleQuest.isExploitableQuest(questid)) {
|
if (!mquest.isSameDayRepeatable() && !MapleQuest.isExploitableQuest(questid)) {
|
||||||
@@ -9928,7 +9928,7 @@ public class Character extends AbstractCharacterObject {
|
|||||||
|
|
||||||
announceUpdateQuest(DelayedQuestUpdate.COMPLETE, questid, qs.getCompletionTime());
|
announceUpdateQuest(DelayedQuestUpdate.COMPLETE, questid, qs.getCompletionTime());
|
||||||
//announceUpdateQuest(DelayedQuestUpdate.INFO, qs); // happens after giving rewards, for non-next quests only
|
//announceUpdateQuest(DelayedQuestUpdate.INFO, qs); // happens after giving rewards, for non-next quests only
|
||||||
} else if (qs.getStatus().equals(MapleQuestStatus.Status.NOT_STARTED)) {
|
} else if (qs.getStatus().equals(QuestStatus.Status.NOT_STARTED)) {
|
||||||
announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
|
announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
|
||||||
if (qs.getInfoNumber() > 0) {
|
if (qs.getInfoNumber() > 0) {
|
||||||
announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, true);
|
announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, true);
|
||||||
|
|||||||
@@ -27,10 +27,9 @@ import tools.StringUtil;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Matze
|
* @author Matze
|
||||||
*/
|
*/
|
||||||
public class MapleQuestStatus {
|
public class QuestStatus {
|
||||||
public enum Status {
|
public enum Status {
|
||||||
UNDEFINED(-1),
|
UNDEFINED(-1),
|
||||||
NOT_STARTED(0),
|
NOT_STARTED(0),
|
||||||
@@ -38,7 +37,7 @@ public class MapleQuestStatus {
|
|||||||
COMPLETED(2);
|
COMPLETED(2);
|
||||||
final int status;
|
final int status;
|
||||||
|
|
||||||
private Status(int id) {
|
Status(int id) {
|
||||||
status = id;
|
status = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,7 +54,8 @@ public class MapleQuestStatus {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private short questID;
|
|
||||||
|
private final short questID;
|
||||||
private Status status;
|
private Status status;
|
||||||
//private boolean updated; //maybe this can be of use for someone?
|
//private boolean updated; //maybe this can be of use for someone?
|
||||||
private final Map<Integer, String> progress = new LinkedHashMap<>();
|
private final Map<Integer, String> progress = new LinkedHashMap<>();
|
||||||
@@ -65,17 +65,18 @@ public class MapleQuestStatus {
|
|||||||
private int forfeited = 0, completed = 0;
|
private int forfeited = 0, completed = 0;
|
||||||
private String customData;
|
private String customData;
|
||||||
|
|
||||||
public MapleQuestStatus(MapleQuest quest, Status status) {
|
public QuestStatus(MapleQuest quest, Status status) {
|
||||||
this.questID = quest.getId();
|
this.questID = quest.getId();
|
||||||
this.setStatus(status);
|
this.setStatus(status);
|
||||||
this.completionTime = System.currentTimeMillis();
|
this.completionTime = System.currentTimeMillis();
|
||||||
this.expirationTime = 0;
|
this.expirationTime = 0;
|
||||||
//this.updated = true;
|
//this.updated = true;
|
||||||
if (status == Status.STARTED)
|
if (status == Status.STARTED) {
|
||||||
registerMobs();
|
registerMobs();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public MapleQuestStatus(MapleQuest quest, Status status, int npc) {
|
public QuestStatus(MapleQuest quest, Status status, int npc) {
|
||||||
this.questID = quest.getId();
|
this.questID = quest.getId();
|
||||||
this.setStatus(status);
|
this.setStatus(status);
|
||||||
this.setNpc(npc);
|
this.setNpc(npc);
|
||||||
@@ -133,7 +134,9 @@ public class MapleQuestStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean addMedalMap(int mapid) {
|
public boolean addMedalMap(int mapid) {
|
||||||
if (medalProgress.contains(mapid)) return false;
|
if (medalProgress.contains(mapid)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
medalProgress.add(mapid);
|
medalProgress.add(mapid);
|
||||||
//this.setUpdated();
|
//this.setUpdated();
|
||||||
return true;
|
return true;
|
||||||
@@ -187,7 +190,7 @@ public class MapleQuestStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void resetAllProgress() {
|
public void resetAllProgress() {
|
||||||
for(Map.Entry<Integer, String> entry : progress.entrySet()) {
|
for (Map.Entry<Integer, String> entry : progress.entrySet()) {
|
||||||
setProgress(entry.getKey(), "000");
|
setProgress(entry.getKey(), "000");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@ package net.server.channel.handlers;
|
|||||||
|
|
||||||
import client.Character;
|
import client.Character;
|
||||||
import client.Client;
|
import client.Client;
|
||||||
import client.MapleQuestStatus;
|
import client.QuestStatus;
|
||||||
import client.inventory.Inventory;
|
import client.inventory.Inventory;
|
||||||
import client.inventory.InventoryType;
|
import client.inventory.InventoryType;
|
||||||
import client.inventory.manipulator.InventoryManipulator;
|
import client.inventory.manipulator.InventoryManipulator;
|
||||||
@@ -41,7 +41,7 @@ public class RaiseIncExpHandler extends AbstractPacketHandler {
|
|||||||
|
|
||||||
Character chr = c.getPlayer();
|
Character chr = c.getPlayer();
|
||||||
MapleQuest quest = MapleQuest.getInstanceFromInfoNumber(infoNumber);
|
MapleQuest quest = MapleQuest.getInstanceFromInfoNumber(infoNumber);
|
||||||
if (!chr.getQuest(quest).getStatus().equals(MapleQuestStatus.Status.STARTED)) {
|
if (!chr.getQuest(quest).getStatus().equals(QuestStatus.Status.STARTED)) {
|
||||||
c.sendPacket(PacketCreator.enableActions());
|
c.sendPacket(PacketCreator.enableActions());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package net.server.channel.handlers;
|
|||||||
import client.Character;
|
import client.Character;
|
||||||
import client.Character.DelayedQuestUpdate;
|
import client.Character.DelayedQuestUpdate;
|
||||||
import client.Client;
|
import client.Client;
|
||||||
import client.MapleQuestStatus;
|
import client.QuestStatus;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import scripting.quest.QuestScriptManager;
|
import scripting.quest.QuestScriptManager;
|
||||||
@@ -23,14 +23,14 @@ public class RaiseUIStateHandler extends AbstractPacketHandler {
|
|||||||
try {
|
try {
|
||||||
Character chr = c.getPlayer();
|
Character chr = c.getPlayer();
|
||||||
MapleQuest quest = MapleQuest.getInstanceFromInfoNumber(infoNumber);
|
MapleQuest quest = MapleQuest.getInstanceFromInfoNumber(infoNumber);
|
||||||
MapleQuestStatus mqs = chr.getQuest(quest);
|
QuestStatus mqs = chr.getQuest(quest);
|
||||||
|
|
||||||
QuestScriptManager.getInstance().raiseOpen(c, (short) infoNumber, mqs.getNpc());
|
QuestScriptManager.getInstance().raiseOpen(c, (short) infoNumber, mqs.getNpc());
|
||||||
|
|
||||||
if (mqs.getStatus() == MapleQuestStatus.Status.NOT_STARTED) {
|
if (mqs.getStatus() == QuestStatus.Status.NOT_STARTED) {
|
||||||
quest.forceStart(chr, 22000);
|
quest.forceStart(chr, 22000);
|
||||||
c.getAbstractPlayerInteraction().setQuestProgress(quest.getId(), infoNumber, 0);
|
c.getAbstractPlayerInteraction().setQuestProgress(quest.getId(), infoNumber, 0);
|
||||||
} else if (mqs.getStatus() == MapleQuestStatus.Status.STARTED) {
|
} else if (mqs.getStatus() == QuestStatus.Status.STARTED) {
|
||||||
chr.announceUpdateQuest(DelayedQuestUpdate.UPDATE, mqs, mqs.getInfoNumber() > 0);
|
chr.announceUpdateQuest(DelayedQuestUpdate.UPDATE, mqs, mqs.getInfoNumber() > 0);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -319,11 +319,11 @@ public class AbstractPlayerInteraction {
|
|||||||
|
|
||||||
//---- \/ \/ \/ \/ \/ \/ \/ NOT TESTED \/ \/ \/ \/ \/ \/ \/ \/ \/ ----
|
//---- \/ \/ \/ \/ \/ \/ \/ NOT TESTED \/ \/ \/ \/ \/ \/ \/ \/ \/ ----
|
||||||
|
|
||||||
public final MapleQuestStatus getQuestRecord(final int id) {
|
public final QuestStatus getQuestRecord(final int id) {
|
||||||
return c.getPlayer().getQuestNAdd(MapleQuest.getInstance(id));
|
return c.getPlayer().getQuestNAdd(MapleQuest.getInstance(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
public final MapleQuestStatus getQuestNoRecord(final int id) {
|
public final QuestStatus getQuestNoRecord(final int id) {
|
||||||
return c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(id));
|
return c.getPlayer().getQuestNoAdd(MapleQuest.getInstance(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -347,13 +347,13 @@ public class AbstractPlayerInteraction {
|
|||||||
return c.getPlayer().getQuest(MapleQuest.getInstance(id)).getStatus().getId();
|
return c.getPlayer().getQuest(MapleQuest.getInstance(id)).getStatus().getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
private MapleQuestStatus.Status getQuestStat(int id) {
|
private QuestStatus.Status getQuestStat(int id) {
|
||||||
return c.getPlayer().getQuest(MapleQuest.getInstance(id)).getStatus();
|
return c.getPlayer().getQuest(MapleQuest.getInstance(id)).getStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isQuestCompleted(int id) {
|
public boolean isQuestCompleted(int id) {
|
||||||
try {
|
try {
|
||||||
return getQuestStat(id) == MapleQuestStatus.Status.COMPLETED;
|
return getQuestStat(id) == QuestStatus.Status.COMPLETED;
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return false;
|
return false;
|
||||||
@@ -366,7 +366,7 @@ public class AbstractPlayerInteraction {
|
|||||||
|
|
||||||
public boolean isQuestStarted(int id) {
|
public boolean isQuestStarted(int id) {
|
||||||
try {
|
try {
|
||||||
return getQuestStat(id) == MapleQuestStatus.Status.STARTED;
|
return getQuestStat(id) == QuestStatus.Status.STARTED;
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return false;
|
return false;
|
||||||
@@ -394,7 +394,7 @@ public class AbstractPlayerInteraction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getQuestProgress(int id, int infoNumber) {
|
public String getQuestProgress(int id, int infoNumber) {
|
||||||
MapleQuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id));
|
QuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id));
|
||||||
|
|
||||||
if (qs.getInfoNumber() == infoNumber && infoNumber > 0) {
|
if (qs.getInfoNumber() == infoNumber && infoNumber > 0) {
|
||||||
qs = getPlayer().getQuest(MapleQuest.getInstance(infoNumber));
|
qs = getPlayer().getQuest(MapleQuest.getInstance(infoNumber));
|
||||||
@@ -425,7 +425,7 @@ public class AbstractPlayerInteraction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void resetAllQuestProgress(int id) {
|
public void resetAllQuestProgress(int id) {
|
||||||
MapleQuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id));
|
QuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id));
|
||||||
if (qs != null) {
|
if (qs != null) {
|
||||||
qs.resetAllProgress();
|
qs.resetAllProgress();
|
||||||
getPlayer().announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
|
getPlayer().announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
|
||||||
@@ -433,7 +433,7 @@ public class AbstractPlayerInteraction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void resetQuestProgress(int id, int infoNumber) {
|
public void resetQuestProgress(int id, int infoNumber) {
|
||||||
MapleQuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id));
|
QuestStatus qs = getPlayer().getQuest(MapleQuest.getInstance(id));
|
||||||
if (qs != null) {
|
if (qs != null) {
|
||||||
qs.resetProgress(infoNumber);
|
qs.resetProgress(infoNumber);
|
||||||
getPlayer().announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
|
getPlayer().announceUpdateQuest(DelayedQuestUpdate.UPDATE, qs, false);
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ package scripting.map;
|
|||||||
|
|
||||||
import client.Character.DelayedQuestUpdate;
|
import client.Character.DelayedQuestUpdate;
|
||||||
import client.Client;
|
import client.Client;
|
||||||
import client.MapleQuestStatus;
|
import client.QuestStatus;
|
||||||
import scripting.AbstractPlayerInteraction;
|
import scripting.AbstractPlayerInteraction;
|
||||||
import server.quest.MapleQuest;
|
import server.quest.MapleQuest;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
@@ -122,7 +122,7 @@ public class MapScriptMethods extends AbstractPlayerInteraction {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MapleQuestStatus qs = getPlayer().getQuest(quest);
|
QuestStatus qs = getPlayer().getQuest(quest);
|
||||||
if (!qs.addMedalMap(getPlayer().getMapId())) {
|
if (!qs.addMedalMap(getPlayer().getMapId())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -151,7 +151,7 @@ public class MapScriptMethods extends AbstractPlayerInteraction {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MapleQuestStatus qs = getPlayer().getQuest(quest);
|
QuestStatus qs = getPlayer().getQuest(quest);
|
||||||
if (!qs.addMedalMap(getPlayer().getMapId())) {
|
if (!qs.addMedalMap(getPlayer().getMapId())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
package scripting.quest;
|
package scripting.quest;
|
||||||
|
|
||||||
import client.Client;
|
import client.Client;
|
||||||
import client.MapleQuestStatus;
|
import client.QuestStatus;
|
||||||
import constants.game.GameConstants;
|
import constants.game.GameConstants;
|
||||||
import scripting.AbstractScriptManager;
|
import scripting.AbstractScriptManager;
|
||||||
import server.quest.MapleQuest;
|
import server.quest.MapleQuest;
|
||||||
@@ -110,7 +110,7 @@ public class QuestScriptManager extends AbstractScriptManager {
|
|||||||
|
|
||||||
public void end(Client c, short questid, int npc) {
|
public void end(Client c, short questid, int npc) {
|
||||||
MapleQuest quest = MapleQuest.getInstance(questid);
|
MapleQuest quest = MapleQuest.getInstance(questid);
|
||||||
if (!c.getPlayer().getQuest(quest).getStatus().equals(MapleQuestStatus.Status.STARTED) || !c.getPlayer().getMap().containsNPC(npc)) {
|
if (!c.getPlayer().getQuest(quest).getStatus().equals(QuestStatus.Status.STARTED) || !c.getPlayer().getMap().containsNPC(npc)) {
|
||||||
dispose(c);
|
dispose(c);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1383,7 +1383,7 @@ public class MapleMap {
|
|||||||
AutobanFactory.GENERAL.alert(chr, " for killing a " + monster.getName() + " which is over 30 levels higher.");
|
AutobanFactory.GENERAL.alert(chr, " for killing a " + monster.getName() + " which is over 30 levels higher.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if (chr.getQuest(MapleQuest.getInstance(29400)).getStatus().equals(MapleQuestStatus.Status.STARTED)) {
|
/*if (chr.getQuest(MapleQuest.getInstance(29400)).getStatus().equals(QuestStatus.Status.STARTED)) {
|
||||||
if (chr.getLevel() >= 120 && monster.getStats().getLevel() >= 120) {
|
if (chr.getLevel() >= 120 && monster.getStats().getLevel() >= 120) {
|
||||||
//FIX MEDAL SHET
|
//FIX MEDAL SHET
|
||||||
} else if (monster.getStats().getLevel() >= chr.getLevel()) {
|
} else if (monster.getStats().getLevel() >= chr.getLevel()) {
|
||||||
|
|||||||
@@ -22,8 +22,8 @@
|
|||||||
package server.quest;
|
package server.quest;
|
||||||
|
|
||||||
import client.Character;
|
import client.Character;
|
||||||
import client.MapleQuestStatus;
|
import client.QuestStatus;
|
||||||
import client.MapleQuestStatus.Status;
|
import client.QuestStatus.Status;
|
||||||
import config.YamlConfig;
|
import config.YamlConfig;
|
||||||
import provider.MapleData;
|
import provider.MapleData;
|
||||||
import provider.MapleDataProvider;
|
import provider.MapleDataProvider;
|
||||||
@@ -203,12 +203,12 @@ public class MapleQuest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean canStartQuestByStatus(Character chr) {
|
public boolean canStartQuestByStatus(Character chr) {
|
||||||
MapleQuestStatus mqs = chr.getQuest(this);
|
QuestStatus mqs = chr.getQuest(this);
|
||||||
return !(!mqs.getStatus().equals(Status.NOT_STARTED) && !(mqs.getStatus().equals(Status.COMPLETED) && repeatable));
|
return !(!mqs.getStatus().equals(Status.NOT_STARTED) && !(mqs.getStatus().equals(Status.COMPLETED) && repeatable));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canQuestByInfoProgress(Character chr) {
|
public boolean canQuestByInfoProgress(Character chr) {
|
||||||
MapleQuestStatus mqs = chr.getQuest(this);
|
QuestStatus mqs = chr.getQuest(this);
|
||||||
List<String> ix = mqs.getInfoEx();
|
List<String> ix = mqs.getInfoEx();
|
||||||
if (!ix.isEmpty()) {
|
if (!ix.isEmpty()) {
|
||||||
short questid = mqs.getQuestID();
|
short questid = mqs.getQuestID();
|
||||||
@@ -250,7 +250,7 @@ public class MapleQuest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean canComplete(Character chr, Integer npcid) {
|
public boolean canComplete(Character chr, Integer npcid) {
|
||||||
MapleQuestStatus mqs = chr.getQuest(this);
|
QuestStatus mqs = chr.getQuest(this);
|
||||||
if (!mqs.getStatus().equals(Status.STARTED)) {
|
if (!mqs.getStatus().equals(Status.STARTED)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -306,7 +306,7 @@ public class MapleQuest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void reset(Character chr) {
|
public void reset(Character chr) {
|
||||||
MapleQuestStatus newStatus = new MapleQuestStatus(this, MapleQuestStatus.Status.NOT_STARTED);
|
QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.NOT_STARTED);
|
||||||
chr.updateQuestStatus(newStatus);
|
chr.updateQuestStatus(newStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,16 +317,16 @@ public class MapleQuest {
|
|||||||
if (timeLimit > 0) {
|
if (timeLimit > 0) {
|
||||||
chr.sendPacket(PacketCreator.removeQuestTimeLimit(id));
|
chr.sendPacket(PacketCreator.removeQuestTimeLimit(id));
|
||||||
}
|
}
|
||||||
MapleQuestStatus newStatus = new MapleQuestStatus(this, MapleQuestStatus.Status.NOT_STARTED);
|
QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.NOT_STARTED);
|
||||||
newStatus.setForfeited(chr.getQuest(this).getForfeited() + 1);
|
newStatus.setForfeited(chr.getQuest(this).getForfeited() + 1);
|
||||||
chr.updateQuestStatus(newStatus);
|
chr.updateQuestStatus(newStatus);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean forceStart(Character chr, int npc) {
|
public boolean forceStart(Character chr, int npc) {
|
||||||
MapleQuestStatus newStatus = new MapleQuestStatus(this, MapleQuestStatus.Status.STARTED, npc);
|
QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.STARTED, npc);
|
||||||
|
|
||||||
MapleQuestStatus oldStatus = chr.getQuest(this.getId());
|
QuestStatus oldStatus = chr.getQuest(this.getId());
|
||||||
for (Entry<Integer, String> e : oldStatus.getProgress().entrySet()) {
|
for (Entry<Integer, String> e : oldStatus.getProgress().entrySet()) {
|
||||||
newStatus.setProgress(e.getKey(), e.getValue());
|
newStatus.setProgress(e.getKey(), e.getValue());
|
||||||
}
|
}
|
||||||
@@ -364,7 +364,7 @@ public class MapleQuest {
|
|||||||
chr.sendPacket(PacketCreator.removeQuestTimeLimit(id));
|
chr.sendPacket(PacketCreator.removeQuestTimeLimit(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
MapleQuestStatus newStatus = new MapleQuestStatus(this, MapleQuestStatus.Status.COMPLETED, npc);
|
QuestStatus newStatus = new QuestStatus(this, QuestStatus.Status.COMPLETED, npc);
|
||||||
newStatus.setForfeited(chr.getQuest(this).getForfeited());
|
newStatus.setForfeited(chr.getQuest(this).getForfeited());
|
||||||
newStatus.setCompleted(chr.getQuest(this).getCompleted());
|
newStatus.setCompleted(chr.getQuest(this).getCompleted());
|
||||||
newStatus.setCompletionTime(System.currentTimeMillis());
|
newStatus.setCompletionTime(System.currentTimeMillis());
|
||||||
@@ -581,7 +581,7 @@ public class MapleQuest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean restoreLostItem(Character chr, int itemid) {
|
public boolean restoreLostItem(Character chr, int itemid) {
|
||||||
if (chr.getQuest(this).getStatus().equals(MapleQuestStatus.Status.STARTED)) {
|
if (chr.getQuest(this).getStatus().equals(QuestStatus.Status.STARTED)) {
|
||||||
ItemAction itemAct = (ItemAction) startActs.get(MapleQuestActionType.ITEM);
|
ItemAction itemAct = (ItemAction) startActs.get(MapleQuestActionType.ITEM);
|
||||||
if (itemAct != null) {
|
if (itemAct != null) {
|
||||||
return itemAct.restoreLostItem(chr, itemid);
|
return itemAct.restoreLostItem(chr, itemid);
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
package server.quest.actions;
|
package server.quest.actions;
|
||||||
|
|
||||||
import client.Character;
|
import client.Character;
|
||||||
import client.MapleQuestStatus;
|
import client.QuestStatus;
|
||||||
import provider.MapleData;
|
import provider.MapleData;
|
||||||
import provider.MapleDataTool;
|
import provider.MapleDataTool;
|
||||||
import server.quest.MapleQuest;
|
import server.quest.MapleQuest;
|
||||||
@@ -49,7 +49,7 @@ public class NextQuestAction extends MapleQuestAction {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(Character chr, Integer extSelection) {
|
public void run(Character chr, Integer extSelection) {
|
||||||
MapleQuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
QuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
||||||
chr.sendPacket(PacketCreator.updateQuestFinish((short) questID, status.getNpc(), (short) nextQuest));
|
chr.sendPacket(PacketCreator.updateQuestFinish((short) questID, status.getNpc(), (short) nextQuest));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
package server.quest.actions;
|
package server.quest.actions;
|
||||||
|
|
||||||
import client.Character;
|
import client.Character;
|
||||||
import client.MapleQuestStatus;
|
import client.QuestStatus;
|
||||||
import constants.inventory.ItemConstants;
|
import constants.inventory.ItemConstants;
|
||||||
import provider.MapleData;
|
import provider.MapleData;
|
||||||
import provider.MapleDataTool;
|
import provider.MapleDataTool;
|
||||||
@@ -50,8 +50,8 @@ public class PetSkillAction extends MapleQuestAction {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean check(Character chr, Integer extSelection) {
|
public boolean check(Character chr, Integer extSelection) {
|
||||||
MapleQuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
QuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
||||||
if(!(status.getStatus() == MapleQuestStatus.Status.NOT_STARTED && status.getForfeited() > 0))
|
if(!(status.getStatus() == QuestStatus.Status.NOT_STARTED && status.getForfeited() > 0))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return chr.getPet(0) != null;
|
return chr.getPet(0) != null;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
package server.quest.actions;
|
package server.quest.actions;
|
||||||
|
|
||||||
import client.Character;
|
import client.Character;
|
||||||
import client.MapleQuestStatus;
|
import client.QuestStatus;
|
||||||
import provider.MapleData;
|
import provider.MapleData;
|
||||||
import provider.MapleDataTool;
|
import provider.MapleDataTool;
|
||||||
import server.quest.MapleQuest;
|
import server.quest.MapleQuest;
|
||||||
@@ -59,7 +59,7 @@ public class QuestAction extends MapleQuestAction {
|
|||||||
public void run(Character chr, Integer extSelection) {
|
public void run(Character chr, Integer extSelection) {
|
||||||
for(Integer questID : quests.keySet()) {
|
for(Integer questID : quests.keySet()) {
|
||||||
int stat = quests.get(questID);
|
int stat = quests.get(questID);
|
||||||
chr.updateQuestStatus(new MapleQuestStatus(MapleQuest.getInstance(questID), MapleQuestStatus.Status.getById(stat)));
|
chr.updateQuestStatus(new QuestStatus(MapleQuest.getInstance(questID), QuestStatus.Status.getById(stat)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
package server.quest.requirements;
|
package server.quest.requirements;
|
||||||
|
|
||||||
import client.Character;
|
import client.Character;
|
||||||
import client.MapleQuestStatus;
|
import client.QuestStatus;
|
||||||
import provider.MapleData;
|
import provider.MapleData;
|
||||||
import provider.MapleDataTool;
|
import provider.MapleDataTool;
|
||||||
import server.quest.MapleQuest;
|
import server.quest.MapleQuest;
|
||||||
@@ -84,7 +84,7 @@ public class IntervalRequirement extends MapleQuestRequirement {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean check(Character chr, Integer npcid) {
|
public boolean check(Character chr, Integer npcid) {
|
||||||
boolean check = !chr.getQuest(MapleQuest.getInstance(questID)).getStatus().equals(MapleQuestStatus.Status.COMPLETED);
|
boolean check = !chr.getQuest(MapleQuest.getInstance(questID)).getStatus().equals(QuestStatus.Status.COMPLETED);
|
||||||
boolean check2 = chr.getQuest(MapleQuest.getInstance(questID)).getCompletionTime() <= System.currentTimeMillis() - interval;
|
boolean check2 = chr.getQuest(MapleQuest.getInstance(questID)).getCompletionTime() <= System.currentTimeMillis() - interval;
|
||||||
|
|
||||||
if (check || check2) {
|
if (check || check2) {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
package server.quest.requirements;
|
package server.quest.requirements;
|
||||||
|
|
||||||
import client.Character;
|
import client.Character;
|
||||||
import client.MapleQuestStatus;
|
import client.QuestStatus;
|
||||||
import provider.MapleData;
|
import provider.MapleData;
|
||||||
import provider.MapleDataTool;
|
import provider.MapleDataTool;
|
||||||
import server.quest.MapleQuest;
|
import server.quest.MapleQuest;
|
||||||
@@ -62,7 +62,7 @@ public class MobRequirement extends MapleQuestRequirement {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean check(Character chr, Integer npcid) {
|
public boolean check(Character chr, Integer npcid) {
|
||||||
MapleQuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
QuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
||||||
for(Integer mobID : mobs.keySet()) {
|
for(Integer mobID : mobs.keySet()) {
|
||||||
int countReq = mobs.get(mobID);
|
int countReq = mobs.get(mobID);
|
||||||
int progress;
|
int progress;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
package server.quest.requirements;
|
package server.quest.requirements;
|
||||||
|
|
||||||
import client.Character;
|
import client.Character;
|
||||||
import client.MapleQuestStatus;
|
import client.QuestStatus;
|
||||||
import provider.MapleData;
|
import provider.MapleData;
|
||||||
import provider.MapleDataTool;
|
import provider.MapleDataTool;
|
||||||
import server.quest.MapleQuest;
|
import server.quest.MapleQuest;
|
||||||
@@ -58,12 +58,12 @@ public class QuestRequirement extends MapleQuestRequirement {
|
|||||||
public boolean check(Character chr, Integer npcid) {
|
public boolean check(Character chr, Integer npcid) {
|
||||||
for(Integer questID : quests.keySet()) {
|
for(Integer questID : quests.keySet()) {
|
||||||
int stateReq = quests.get(questID);
|
int stateReq = quests.get(questID);
|
||||||
MapleQuestStatus qs = chr.getQuest(MapleQuest.getInstance(questID));
|
QuestStatus qs = chr.getQuest(MapleQuest.getInstance(questID));
|
||||||
|
|
||||||
if(qs == null && MapleQuestStatus.Status.getById(stateReq).equals(MapleQuestStatus.Status.NOT_STARTED))
|
if(qs == null && QuestStatus.Status.getById(stateReq).equals(QuestStatus.Status.NOT_STARTED))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if(qs == null || !qs.getStatus().equals(MapleQuestStatus.Status.getById(stateReq))) {
|
if(qs == null || !qs.getStatus().equals(QuestStatus.Status.getById(stateReq))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -310,29 +310,29 @@ public class PacketCreator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void addQuestInfo(OutPacket p, Character chr) {
|
private static void addQuestInfo(OutPacket p, Character chr) {
|
||||||
List<MapleQuestStatus> started = chr.getStartedQuests();
|
List<QuestStatus> started = chr.getStartedQuests();
|
||||||
int startedSize = 0;
|
int startedSize = 0;
|
||||||
for (MapleQuestStatus qs : started) {
|
for (QuestStatus qs : started) {
|
||||||
if (qs.getInfoNumber() > 0) {
|
if (qs.getInfoNumber() > 0) {
|
||||||
startedSize++;
|
startedSize++;
|
||||||
}
|
}
|
||||||
startedSize++;
|
startedSize++;
|
||||||
}
|
}
|
||||||
p.writeShort(startedSize);
|
p.writeShort(startedSize);
|
||||||
for (MapleQuestStatus qs : started) {
|
for (QuestStatus qs : started) {
|
||||||
p.writeShort(qs.getQuest().getId());
|
p.writeShort(qs.getQuest().getId());
|
||||||
p.writeString(qs.getProgressData());
|
p.writeString(qs.getProgressData());
|
||||||
|
|
||||||
short infoNumber = qs.getInfoNumber();
|
short infoNumber = qs.getInfoNumber();
|
||||||
if (infoNumber > 0) {
|
if (infoNumber > 0) {
|
||||||
MapleQuestStatus iqs = chr.getQuest(infoNumber);
|
QuestStatus iqs = chr.getQuest(infoNumber);
|
||||||
p.writeShort(infoNumber);
|
p.writeShort(infoNumber);
|
||||||
p.writeString(iqs.getProgressData());
|
p.writeString(iqs.getProgressData());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<MapleQuestStatus> completed = chr.getCompletedQuests();
|
List<QuestStatus> completed = chr.getCompletedQuests();
|
||||||
p.writeShort(completed.size());
|
p.writeShort(completed.size());
|
||||||
for (MapleQuestStatus qs : completed) {
|
for (QuestStatus qs : completed) {
|
||||||
p.writeShort(qs.getQuest().getId());
|
p.writeShort(qs.getQuest().getId());
|
||||||
p.writeLong(getTime(qs.getCompletionTime()));
|
p.writeLong(getTime(qs.getCompletionTime()));
|
||||||
}
|
}
|
||||||
@@ -2738,8 +2738,8 @@ public class PacketCreator {
|
|||||||
p.writeInt(0);
|
p.writeInt(0);
|
||||||
}
|
}
|
||||||
ArrayList<Short> medalQuests = new ArrayList<>();
|
ArrayList<Short> medalQuests = new ArrayList<>();
|
||||||
List<MapleQuestStatus> completed = chr.getCompletedQuests();
|
List<QuestStatus> completed = chr.getCompletedQuests();
|
||||||
for (MapleQuestStatus qs : completed) {
|
for (QuestStatus qs : completed) {
|
||||||
if (qs.getQuest().getId() >= 29000) { // && q.getQuest().getId() <= 29923
|
if (qs.getQuest().getId() >= 29000) { // && q.getQuest().getId() <= 29923
|
||||||
medalQuests.add(qs.getQuest().getId());
|
medalQuests.add(qs.getQuest().getId());
|
||||||
}
|
}
|
||||||
@@ -2878,11 +2878,11 @@ public class PacketCreator {
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Packet updateQuest(Character chr, MapleQuestStatus qs, boolean infoUpdate) {
|
public static Packet updateQuest(Character chr, QuestStatus qs, boolean infoUpdate) {
|
||||||
final OutPacket p = OutPacket.create(SendOpcode.SHOW_STATUS_INFO);
|
final OutPacket p = OutPacket.create(SendOpcode.SHOW_STATUS_INFO);
|
||||||
p.writeByte(1);
|
p.writeByte(1);
|
||||||
if (infoUpdate) {
|
if (infoUpdate) {
|
||||||
MapleQuestStatus iqs = chr.getQuest(qs.getInfoNumber());
|
QuestStatus iqs = chr.getQuest(qs.getInfoNumber());
|
||||||
p.writeShort(iqs.getQuestID());
|
p.writeShort(iqs.getQuestID());
|
||||||
p.writeByte(1);
|
p.writeByte(1);
|
||||||
p.writeString(iqs.getProgressData());
|
p.writeString(iqs.getProgressData());
|
||||||
|
|||||||
Reference in New Issue
Block a user