Merge branch 'master' into credits_update

This commit is contained in:
ronancpl
2019-06-15 15:56:15 -03:00
146 changed files with 7810 additions and 2802 deletions

View File

@@ -41,10 +41,9 @@ import server.gachapon.MapleGachapon;
import server.gachapon.MapleGachapon.MapleGachaponItem;
import server.life.MaplePlayerNPC;
import server.maps.MapleMap;
import server.maps.MapleMapFactory;
import server.maps.MapleMapManager;
import server.partyquest.Pyramid;
import server.partyquest.Pyramid.PyramidMode;
import server.quest.MapleQuest;
import tools.LogHelper;
import tools.MaplePacketCreator;
import client.MapleCharacter;
@@ -63,9 +62,11 @@ import constants.LanguageConstants;
import net.server.PlayerStorage;
import net.server.channel.Channel;
import net.server.coordinator.matchchecker.MatchCheckerListenerFactory.MatchCheckerType;
import server.MapleMarriage;
import server.MapleSkillbookInformationProvider;
import server.MapleSkillbookInformationProvider.SkillBookEntry;
import server.TimerManager;
import server.life.MapleLifeFactory;
import server.maps.MapleMapObject;
import server.maps.MapleMapObjectType;
import server.expeditions.MapleExpedition;
@@ -77,10 +78,11 @@ import tools.packets.Wedding;
import java.awt.Point;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import server.MapleMarriage;
/**
*
@@ -95,6 +97,18 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
private boolean itemScript;
private List<MaplePartyCharacter> otherParty;
private static Map<Integer, String> npcDefaultTalks = new HashMap<>();
private static String getDefaultTalk(int npcid) {
String talk = npcDefaultTalks.get(npcid);
if (talk == null) {
talk = MapleLifeFactory.getNPCDefaultTalk(npcid);
npcDefaultTalks.put(npcid, talk);
}
return talk;
}
public NPCConversationManager(MapleClient c, int npc, String scriptName) {
this(c, npc, -1, scriptName, false);
}
@@ -154,6 +168,10 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
public void sendOk(String text) {
getClient().announce(MaplePacketCreator.getNPCTalk(npc, (byte) 0, text, "00 00", (byte) 0));
}
public void sendDefault() {
sendOk(getDefaultTalk(npc));
}
public void sendYesNo(String text) {
getClient().announce(MaplePacketCreator.getNPCTalk(npc, (byte) 1, text, "", (byte) 0));
@@ -196,7 +214,12 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
}
public void sendStyle(String text, int styles[]) {
getClient().announce(MaplePacketCreator.getNPCTalkStyle(npc, text, styles));
if (styles.length > 0) {
getClient().announce(MaplePacketCreator.getNPCTalkStyle(npc, text, styles));
} else { // thanks Conrad for noticing empty styles crashing players
sendOk("Sorry, there are no options of cosmetics available for you here at the moment.");
dispose();
}
}
public void sendGetNumber(String text, int def, int min, int max) {
@@ -236,76 +259,34 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
return getPlayer().getJob();
}
public void startQuest(short id) {
try {
MapleQuest.getInstance(id).forceStart(getPlayer(), npc);
} catch (NullPointerException ex) {
ex.printStackTrace();
}
}
public void completeQuest(short id) {
try {
MapleQuest.getInstance(id).forceComplete(getPlayer(), npc);
} catch (NullPointerException ex) {
ex.printStackTrace();
}
}
@Override
public boolean forceStartQuest(int id) {
return MapleQuest.getInstance(id).forceStart(getPlayer(), npc);
return forceStartQuest(id, npc);
}
@Override
public boolean forceCompleteQuest(int id) {
return MapleQuest.getInstance(id).forceComplete(getPlayer(), npc);
return forceCompleteQuest(id, npc);
}
public void startQuest(int id) {
try {
MapleQuest.getInstance(id).forceStart(getPlayer(), npc);
} catch (NullPointerException ex) {
ex.printStackTrace();
}
}
public void completeQuest(int id) {
try {
MapleQuest.getInstance(id).forceComplete(getPlayer(), npc);
} catch (NullPointerException ex) {
ex.printStackTrace();
}
}
public void startQuest(short id, int npcId) {
try {
MapleQuest.getInstance(id).forceStart(getPlayer(), npcId);
} catch (NullPointerException ex) {
ex.printStackTrace();
}
@Override
public boolean startQuest(short id) {
return startQuest((int) id);
}
public void startQuest(int id, int npcId) {
try {
MapleQuest.getInstance(id).forceStart(getPlayer(), npcId);
} catch (NullPointerException ex) {
ex.printStackTrace();
}
@Override
public boolean completeQuest(short id) {
return completeQuest((int) id);
}
public void completeQuest(short id, int npcId) {
try {
MapleQuest.getInstance(id).forceComplete(getPlayer(), npcId);
} catch (NullPointerException ex) {
ex.printStackTrace();
}
@Override
public boolean startQuest(int id) {
return startQuest(id, npc);
}
public void completeQuest(int id, int npcId) {
try {
MapleQuest.getInstance(id).forceComplete(getPlayer(), npcId);
} catch (NullPointerException ex) {
ex.printStackTrace();
}
@Override
public boolean completeQuest(int id) {
return completeQuest(id, npc);
}
public int getMeso() {
@@ -538,7 +519,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
PyramidMode mod = PyramidMode.valueOf(mode);
MapleParty partyz = getPlayer().getParty();
MapleMapFactory mf = c.getChannelServer().getMapFactory();
MapleMapManager mapManager = c.getChannelServer().getMapFactory();
MapleMap map = null;
int mapid = 926010100;
@@ -548,7 +529,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
mapid += (mod.getMode() * 1000);
for (byte b = 0; b < 5; b++) {//They cannot warp to the next map before the timer ends (:
map = mf.getMap(mapid + b);
map = mapManager.getMap(mapid + b);
if (map.getCharacters().size() > 0) {
continue;
} else {