Clean-up Patch

Bug correction on some quests.
This commit is contained in:
ronancpl
2017-04-04 17:14:20 -03:00
parent b2da79ff13
commit 7863994a13
53 changed files with 1291 additions and 119 deletions

View File

@@ -273,6 +273,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
private boolean useCS = false; //chaos scroll upon crafting item.
private long useDuey;
private long petLootCd;
private int newWarpMap = -1;
private MapleCharacter() {
setStance(0);
@@ -1082,8 +1083,9 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
return target;
}
public void warp(int map) {
changeMap(getWarpMap(map), getWarpMap(map).getPortal(0));
// for use ONLY inside OnUserEnter map scripts that requires players changing map even before entering it.
public void warpAhead(int map) {
newWarpMap = map;
}
public void changeMap(int map) {
@@ -1182,6 +1184,13 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject {
}, 10000);
}
}
//alas, new map has been specified when a warping was being processed...
if(newWarpMap != -1) {
int temp = newWarpMap;
newWarpMap = -1;
changeMap(temp);
}
}
public void changePage(int page) {

View File

@@ -101,7 +101,7 @@ public class MapleMount {
this.tiredness++;
owner.getMap().broadcastMessage(MaplePacketCreator.updateMount(owner.getId(), this, false));
if (tiredness > 99) {
this.tiredness = 95;
this.tiredness = 99;
owner.dispelSkill(owner.getJobType() * 10000000 + 1004);
}
} else {

View File

@@ -147,10 +147,25 @@ public class MapleQuestStatus {
return progress.size() > 0;
}
public Integer getAnyProgressKey() {
if (!progress.isEmpty()) return progress.entrySet().iterator().next().getKey();
return 0;
}
public String getProgress(int id) {
if (progress.get(id) == null) return "";
return progress.get(id);
}
public void resetProgress(int id) {
setProgress(id, "000");
}
public void resetAllProgress() {
for(Map.Entry<Integer, String> entry : progress.entrySet()) {
setProgress(entry.getKey(), "000");
}
}
public Map<Integer, String> getProgress() {
return Collections.unmodifiableMap(progress);

View File

@@ -532,7 +532,8 @@ public class Commands {
FilePrinter.printError("bug.txt", MapleCharacter.makeMapleReadable(player.getName()) + ": " + message + "\r\n");
player.dropMessage(5, "Your bug '" + message + "' was submitted successfully to our developers. Thank you!");
break;
case "points":
/*
case "points":
player.dropMessage(5, "You have " + c.getVotePoints() + " vote point(s).");
if (c.hasVotedAlready()) {
Date currentDate = new Date();
@@ -545,6 +546,7 @@ public class Commands {
player.yellowMessage("You are free to vote! Make sure to vote to gain a vote point!");
}
break;
*/
case "joinevent":
case "event":
case "join":

View File

@@ -198,13 +198,23 @@ public class AbstractPlayerInteraction {
}
public void updateQuest(int questid, int data) {
updateQuest(questid, String.valueOf(data));
MapleQuestStatus status = c.getPlayer().getQuest(MapleQuest.getInstance(questid));
updateQuest(questid, status.getAnyProgressKey(), data);
}
public void updateQuest(int questid, String data) {
public void updateQuest(int questid, String data) {
MapleQuestStatus status = c.getPlayer().getQuest(MapleQuest.getInstance(questid));
updateQuest(questid, status.getAnyProgressKey(), data);
}
public void updateQuest(int questid, int pid, int data) {
updateQuest(questid, pid, String.valueOf(data));
}
public void updateQuest(int questid, int pid, String data) {
MapleQuestStatus status = c.getPlayer().getQuest(MapleQuest.getInstance(questid));
status.setStatus(MapleQuestStatus.Status.STARTED);
status.setProgress(0, data);//override old if exists
status.setProgress(pid, data);//override old if exists
c.getPlayer().updateQuest(status);
}
@@ -233,12 +243,30 @@ public class AbstractPlayerInteraction {
return false;
}
}
public int getQuestProgress(int qid) {
if(getPlayer().getQuest(MapleQuest.getInstance(qid)).getProgress().isEmpty()) return 0;
return Integer.parseInt(getPlayer().getQuest(MapleQuest.getInstance(qid)).getProgress().get(0));
public int getQuestProgress(int qid) {
MapleQuestStatus status = c.getPlayer().getQuest(MapleQuest.getInstance(qid));
String progress = status.getProgress(status.getAnyProgressKey());
if(progress.isEmpty()) return 0;
return Integer.parseInt(progress);
}
public int getQuestProgress(int qid, int pid) {
if(getPlayer().getQuest(MapleQuest.getInstance(qid)).getProgress(pid).isEmpty()) return 0;
return Integer.parseInt(getPlayer().getQuest(MapleQuest.getInstance(qid)).getProgress(pid));
}
public void resetAllQuestProgress(int qid) {
getPlayer().getQuest(MapleQuest.getInstance(qid)).resetAllProgress();
getClient().announce(MaplePacketCreator.updateQuest(getPlayer().getQuest(MapleQuest.getInstance(qid)), false));
}
public void resetQuestProgress(int qid, int pid) {
getPlayer().getQuest(MapleQuest.getInstance(qid)).resetProgress(pid);
getClient().announce(MaplePacketCreator.updateQuest(getPlayer().getQuest(MapleQuest.getInstance(qid)), false));
}
public Item evolvePet(byte slot, int afterId) {
MaplePet evolved = null;
MaplePet target = null;

View File

@@ -415,6 +415,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
}
}
}
TimerManager.getInstance().schedule(new Runnable() {
@Override
public void run() {
@@ -429,6 +430,10 @@ public class MapleMonster extends AbstractLoadedMapleLife {
}
}, getAnimationTime("die1"));
}
else {
System.out.println("[CRITICAL LOSS] toSpawn is null for " + this.getName());
}
if (eventInstance != null) {
if (!this.getStats().isFriendly()) {
eventInstance.monsterKilled(this);