Masteria NPCs & Quests
Added more NPCs for the Phantom Woods and Crimsonwood areas. Enabled more quests on that area.
This commit is contained in:
@@ -233,13 +233,17 @@ public class AbstractPlayerInteraction {
|
||||
c.getPlayer().updateQuest(status);
|
||||
}
|
||||
|
||||
public MapleQuestStatus.Status getQuestStatus(int id) {
|
||||
return c.getPlayer().getQuest(MapleQuest.getInstance(id)).getStatus();
|
||||
public int getQuestStatus(int id) {
|
||||
return c.getPlayer().getQuest(MapleQuest.getInstance(id)).getStatus().getId();
|
||||
}
|
||||
|
||||
|
||||
private MapleQuestStatus.Status getQuestStat(int id) {
|
||||
return c.getPlayer().getQuest(MapleQuest.getInstance(id)).getStatus();
|
||||
}
|
||||
|
||||
public boolean isQuestCompleted(int quest) {
|
||||
try {
|
||||
return getQuestStatus(quest) == MapleQuestStatus.Status.COMPLETED;
|
||||
return getQuestStat(quest) == MapleQuestStatus.Status.COMPLETED;
|
||||
} catch (NullPointerException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
@@ -252,7 +256,7 @@ public class AbstractPlayerInteraction {
|
||||
|
||||
public boolean isQuestStarted(int quest) {
|
||||
try {
|
||||
return getQuestStatus(quest) == MapleQuestStatus.Status.STARTED;
|
||||
return getQuestStat(quest) == MapleQuestStatus.Status.STARTED;
|
||||
} catch (NullPointerException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
|
||||
@@ -38,6 +38,7 @@ import provider.MapleDataProviderFactory;
|
||||
import scripting.AbstractPlayerInteraction;
|
||||
import server.MapleItemInformationProvider;
|
||||
import server.MapleStatEffect;
|
||||
import server.MapleShopFactory;
|
||||
import server.events.gm.MapleEvent;
|
||||
import server.gachapon.MapleGachapon;
|
||||
import server.gachapon.MapleGachapon.MapleGachaponItem;
|
||||
@@ -315,6 +316,10 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
|
||||
public void resetStats() {
|
||||
getPlayer().resetStats();
|
||||
}
|
||||
|
||||
public void openShopNPC(int id) {
|
||||
MapleShopFactory.getInstance().getShop(id).sendShop(c);
|
||||
}
|
||||
|
||||
public void maxMastery() {
|
||||
for (MapleData skill_ : MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/" + "String.wz")).getData("Skill.img").getChildren()) {
|
||||
|
||||
@@ -50,11 +50,11 @@ public class NPCScriptManager extends AbstractScriptManager {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void start(MapleClient c, int npc, MapleCharacter chr) {
|
||||
start(c, npc, null, chr);
|
||||
public boolean start(MapleClient c, int npc, MapleCharacter chr) {
|
||||
return start(c, npc, null, chr);
|
||||
}
|
||||
|
||||
public void start(MapleClient c, int npc, String fileName, MapleCharacter chr) {
|
||||
public boolean start(MapleClient c, int npc, String fileName, MapleCharacter chr) {
|
||||
try {
|
||||
NPCConversationManager cm = new NPCConversationManager(c, npc, fileName);
|
||||
if (cms.containsKey(c)) {
|
||||
@@ -69,12 +69,9 @@ public class NPCScriptManager extends AbstractScriptManager {
|
||||
if (iv == null) {
|
||||
iv = getInvocable("npc/" + npc + ".js", c);
|
||||
}
|
||||
if (iv == null) {
|
||||
FilePrinter.printError(FilePrinter.NPC_UNCODED, "NPC " + MapleLifeFactory.getNPC(npc).getName() + "(" + npc + ") is not coded.\r\n");
|
||||
}
|
||||
if (iv == null || NPCScriptManager.getInstance() == null) {
|
||||
dispose(c);
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
engine.put("cm", cm);
|
||||
scripts.put(c, iv);
|
||||
@@ -91,12 +88,18 @@ public class NPCScriptManager extends AbstractScriptManager {
|
||||
} else {
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
}
|
||||
|
||||
return true;
|
||||
} catch (final UndeclaredThrowableException | ScriptException ute) {
|
||||
FilePrinter.printError(FilePrinter.NPC + npc + ".txt", ute);
|
||||
dispose(c);
|
||||
|
||||
return false;
|
||||
} catch (final Exception e) {
|
||||
FilePrinter.printError(FilePrinter.NPC + npc + ".txt", e);
|
||||
dispose(c);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user