Fixed Pet Name Tag + quest 3927

Fixed some issues related to Pet Name Tag item and quest 3927.
This commit is contained in:
ronancpl
2017-05-17 19:27:44 -03:00
parent 3fc338467b
commit d736d00964
14 changed files with 142 additions and 56 deletions

View File

@@ -203,8 +203,8 @@ public class MaplePet extends Item {
saveToDb();
Item petz = owner.getInventory(MapleInventoryType.CASH).getItem(getPosition());
if (petz == null) return;
owner.forceUpdateItem(petz);
if (petz != null)
owner.forceUpdateItem(petz);
}
public void setLevel(byte level) {

View File

@@ -69,8 +69,6 @@ public final class QuestActionHandler extends AbstractMaplePacketHandler {
if(quest.canComplete(player, npc)) {
QuestScriptManager.getInstance().end(c, questid, npc);
player.getClient().getSession().write(MaplePacketCreator.showSpecialEffect(9)); //show effect when completion
player.getMap().broadcastMessage(player, MaplePacketCreator.showForeignEffect(player.getId(), 9));//show effect around players I guess
}
}
}

View File

@@ -376,11 +376,14 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler {
c.announce(MaplePacketCreator.enableActions());
return;
}
Item item = player.getInventory(MapleInventoryType.CASH).getItem(pet.getPosition());
String newName = slea.readMapleAsciiString();
pet.setName(newName);
pet.saveToDb();
player.forceUpdateItem(item);
Item item = player.getInventory(MapleInventoryType.CASH).getItem(pet.getPosition());
if (item != null)
player.forceUpdateItem(item);
player.getMap().broadcastMessage(player, MaplePacketCreator.changePetName(player, newName, 1), true);
c.announce(MaplePacketCreator.enableActions());
remove(c, itemId);

View File

@@ -269,6 +269,16 @@ public class AbstractPlayerInteraction {
}
}
public void setQuestProgress(int qid, int progress) {
MapleQuestStatus status = c.getPlayer().getQuest(MapleQuest.getInstance(qid));
status.setProgress(status.getAnyProgressKey(), String.valueOf(progress));
}
public void setQuestProgress(int qid, int pid, int progress) {
MapleQuestStatus status = c.getPlayer().getQuest(MapleQuest.getInstance(qid));
status.setProgress(pid, String.valueOf(progress));
}
public int getQuestProgress(int qid) {
MapleQuestStatus status = c.getPlayer().getQuest(MapleQuest.getInstance(qid));
String progress = status.getProgress(status.getAnyProgressKey());

View File

@@ -256,9 +256,6 @@ public class MapleQuest {
for (MapleQuestAction a : completeActs.values()) {
a.run(c, selection);
}
c.getClient().getSession().write(MaplePacketCreator.showSpecialEffect(9)); // Quest completion
c.getMap().broadcastMessage(c, MaplePacketCreator.showForeignEffect(c.getId(), 9), false); //use 9 instead of 12 for both
}
}
@@ -297,6 +294,9 @@ public class MapleQuest {
newStatus.setForfeited(c.getQuest(this).getForfeited());
newStatus.setCompletionTime(System.currentTimeMillis());
c.updateQuest(newStatus);
c.getClient().getSession().write(MaplePacketCreator.showSpecialEffect(9)); // Quest completion
c.getMap().broadcastMessage(c, MaplePacketCreator.showForeignEffect(c.getId(), 9), false); //use 9 instead of 12 for both
return true;
}