Skillbook announcer + isInJobTree fix
Abdula is now the Skillbook announcer NPC. Fixed some inconguencies with the isInJobTree function, now properly returning if a skill id does make presence on a player's current job path or not.
This commit is contained in:
@@ -59,8 +59,8 @@ public enum MapleJob {
|
||||
LEGEND(2000), EVAN(2001),
|
||||
ARAN1(2100),ARAN2(2110), ARAN3(2111), ARAN4(2112),
|
||||
|
||||
EVAN1(2200), EVAN2(2210), EVAN3(2211), EVAN4(2212), EVAN5(2213), EVAN6(2214),
|
||||
EVAN7(2215), EVAN8(2216), EVAN9(2217), EVAN10(2218);
|
||||
EVAN1(2200), EVAN2(2210), EVAN3(2211), EVAN4(2212), EVAN5(2213), EVAN6(2214),
|
||||
EVAN7(2215), EVAN8(2216), EVAN9(2217), EVAN10(2218);
|
||||
|
||||
final int jobid;
|
||||
final static int maxId = 22; // maxId = (EVAN / 100);
|
||||
|
||||
@@ -99,6 +99,10 @@ import client.inventory.MaplePet;
|
||||
import constants.GameConstants;
|
||||
import constants.ItemConstants;
|
||||
import constants.ServerConstants;
|
||||
import constants.skills.Assassin;
|
||||
import constants.skills.Cleric;
|
||||
import constants.skills.Priest;
|
||||
import constants.skills.Spearman;
|
||||
import java.util.ArrayList;
|
||||
import server.maps.FieldLimit;
|
||||
|
||||
@@ -768,17 +772,17 @@ public class Commands {
|
||||
victim.updateSingleStat(MapleStat.AVAILABLEAP, victim.getRemainingAp());
|
||||
}
|
||||
} else if (sub[0].equals("empowerme")) {
|
||||
final int[] array = {9001000, 9001001, 9101002, 9101003, 9101008, 2001002, 1101007, 1005, 2301003, 5121009, 1111002, 4111001, 4111002, 4211003, 4211005, 1321000, 2321004, 3121002};
|
||||
final int[] array = {2311003, 2301004, 1301007, 4101004, 2001002, 1101007, 1005, 2301003, 5121009, 1111002, 4111001, 4111002, 4211003, 4211005, 1321000, 2321004, 3121002};
|
||||
for (int i : array) {
|
||||
SkillFactory.getSkill(i).getEffect(SkillFactory.getSkill(i).getMaxLevel()).applyTo(player);
|
||||
}
|
||||
|
||||
} else if (sub[0].equals("buffme")) {
|
||||
//GM Skills : Haste(Super) - Holy Symbol - Bless - Hyper Body - Echo of Hero
|
||||
SkillFactory.getSkill(9101001).getEffect(SkillFactory.getSkill(9101001).getMaxLevel()).applyTo(player);
|
||||
SkillFactory.getSkill(9101002).getEffect(SkillFactory.getSkill(9101002).getMaxLevel()).applyTo(player);
|
||||
SkillFactory.getSkill(9101003).getEffect(SkillFactory.getSkill(9101003).getMaxLevel()).applyTo(player);
|
||||
SkillFactory.getSkill(9101008).getEffect(SkillFactory.getSkill(9101008).getMaxLevel()).applyTo(player);
|
||||
SkillFactory.getSkill(4101004).getEffect(SkillFactory.getSkill(4101004).getMaxLevel()).applyTo(player);
|
||||
SkillFactory.getSkill(2311003).getEffect(SkillFactory.getSkill(2311003).getMaxLevel()).applyTo(player);
|
||||
SkillFactory.getSkill(1301007).getEffect(SkillFactory.getSkill(1301007).getMaxLevel()).applyTo(player);
|
||||
SkillFactory.getSkill(2301004).getEffect(SkillFactory.getSkill(2301004).getMaxLevel()).applyTo(player);
|
||||
SkillFactory.getSkill(1005).getEffect(SkillFactory.getSkill(1005).getMaxLevel()).applyTo(player);
|
||||
player.setHp(player.getMaxHp());
|
||||
player.updateSingleStat(MapleStat.HP, player.getMaxHp());
|
||||
@@ -787,10 +791,10 @@ public class Commands {
|
||||
} else if (sub[0].equals("buffmap")) {
|
||||
for (MapleCharacter chr : player.getMap().getCharacters()){
|
||||
//GM Skills : Haste(Super) - Holy Symbol - Bless - Hyper Body - Echo of Hero
|
||||
SkillFactory.getSkill(9101001).getEffect(SkillFactory.getSkill(9101001).getMaxLevel()).applyTo(chr);
|
||||
SkillFactory.getSkill(9101002).getEffect(SkillFactory.getSkill(9101002).getMaxLevel()).applyTo(chr);
|
||||
SkillFactory.getSkill(9101003).getEffect(SkillFactory.getSkill(9101003).getMaxLevel()).applyTo(chr);
|
||||
SkillFactory.getSkill(9101008).getEffect(SkillFactory.getSkill(9101008).getMaxLevel()).applyTo(chr);
|
||||
SkillFactory.getSkill(4101004).getEffect(SkillFactory.getSkill(4101004).getMaxLevel()).applyTo(chr);
|
||||
SkillFactory.getSkill(2311003).getEffect(SkillFactory.getSkill(2311003).getMaxLevel()).applyTo(chr);
|
||||
SkillFactory.getSkill(1301007).getEffect(SkillFactory.getSkill(1301007).getMaxLevel()).applyTo(chr);
|
||||
SkillFactory.getSkill(2301004).getEffect(SkillFactory.getSkill(2301004).getMaxLevel()).applyTo(chr);
|
||||
SkillFactory.getSkill(1005).getEffect(SkillFactory.getSkill(1005).getMaxLevel()).applyTo(chr);
|
||||
chr.setHp(chr.getMaxHp());
|
||||
chr.updateSingleStat(MapleStat.HP, chr.getMaxHp());
|
||||
@@ -808,7 +812,7 @@ public class Commands {
|
||||
if(skill != null) skill.getEffect(skill.getMaxLevel()).applyTo(player);
|
||||
} else if (sub[0].equals("proitem")) {
|
||||
if (sub.length < 3) {
|
||||
player.dropMessage("Syntax: !proitem <itemid> <statvalue>");
|
||||
player.yellowMessage("Syntax: !proitem <itemid> <statvalue>");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -831,63 +835,39 @@ public class Commands {
|
||||
|
||||
} else if (sub[0].equals("seteqstat")) {
|
||||
if (sub.length < 2) {
|
||||
player.dropMessage("Syntax: !seteqstat <statvalue>");
|
||||
player.yellowMessage("Syntax: !seteqstat <statvalue>");
|
||||
return true;
|
||||
}
|
||||
|
||||
int val = Integer.parseInt(sub[1]);
|
||||
|
||||
int newStat = Integer.parseInt(sub[1]);
|
||||
MapleInventory equip = player.getInventory(MapleInventoryType.EQUIP);
|
||||
for (byte i = 0; i < 101; i++) {
|
||||
try {
|
||||
Equip eu = (Equip) equip.getItem(i);
|
||||
int item = equip.getItem(i).getItemId();
|
||||
short hand = eu.getHands();
|
||||
byte level = eu.getLevel();
|
||||
Equip nItem = new Equip(item, i);
|
||||
nItem.setStr(eu.getStr()); // STR
|
||||
nItem.setDex(eu.getDex()); // DEX
|
||||
nItem.setInt(eu.getInt()); // INT
|
||||
nItem.setLuk(eu.getLuk()); //LUK
|
||||
nItem.setWatk(eu.getWatk()); //WA
|
||||
|
||||
//All Previous stats excluding the top 5
|
||||
nItem.setWdef(eu.getWdef());
|
||||
nItem.setAcc(eu.getHands());
|
||||
nItem.setAvoid(eu.getAvoid());
|
||||
nItem.setExpiration(eu.getExpiration());
|
||||
nItem.setJump(eu.getJump());
|
||||
nItem.setLevel(eu.getLevel());
|
||||
nItem.setMatk(eu.getMatk());
|
||||
nItem.setMdef(eu.getMdef());
|
||||
nItem.setMp(eu.getMp());
|
||||
nItem.setOwner(eu.getOwner());
|
||||
nItem.setSpeed(eu.getSpeed());
|
||||
nItem.setUpgradeSlots((byte) eu.getUpgradeSlots());
|
||||
nItem.setHands(eu.getHands());
|
||||
nItem.setLevel(eu.getLevel());
|
||||
short incval= (short)val;
|
||||
nItem.setWdef(incval);
|
||||
nItem.setAcc(incval);
|
||||
nItem.setAvoid(incval);
|
||||
nItem.setJump(incval);
|
||||
nItem.setMatk(incval);
|
||||
nItem.setMdef(incval);
|
||||
nItem.setMp(incval);
|
||||
nItem.setSpeed(incval);
|
||||
nItem.setUpgradeSlots((byte) eu.getUpgradeSlots());
|
||||
nItem.setHands(incval);
|
||||
nItem.setWatk(incval);
|
||||
nItem.setDex(incval);
|
||||
nItem.setInt(incval);
|
||||
nItem.setStr(incval);
|
||||
nItem.setLuk(incval);
|
||||
Item tempItem = c.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem((byte) i);
|
||||
MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.EQUIP, (byte)i, tempItem.getQuantity(), false, true);
|
||||
player.getInventory(MapleInventoryType.EQUIP).addFromDB(nItem);
|
||||
} catch(Exception e){}
|
||||
|
||||
for (byte i = 1; i <= equip.getSlotLimit(); i++) {
|
||||
try {
|
||||
Equip eu = (Equip) equip.getItem(i);
|
||||
if(eu == null) continue;
|
||||
|
||||
short incval= (short)newStat;
|
||||
eu.setWdef(incval);
|
||||
eu.setAcc(incval);
|
||||
eu.setAvoid(incval);
|
||||
eu.setJump(incval);
|
||||
eu.setMatk(incval);
|
||||
eu.setMdef(incval);
|
||||
eu.setMp(incval);
|
||||
eu.setSpeed(incval);
|
||||
eu.setHands(incval);
|
||||
eu.setWatk(incval);
|
||||
eu.setDex(incval);
|
||||
eu.setInt(incval);
|
||||
eu.setStr(incval);
|
||||
eu.setLuk(incval);
|
||||
player.forceUpdateItem(eu);
|
||||
} catch(Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
c.getSession().write(MaplePacketCreator.getCharInfo(player));
|
||||
//c.getSession().write(MaplePacketCreator.getCharInfo(player));
|
||||
//player.getMap().removePlayer(player);
|
||||
//player.getMap().addPlayer(player);
|
||||
} else if (sub[0].equals("spawn")) {
|
||||
@@ -1369,6 +1349,7 @@ public class Commands {
|
||||
} else if (sub[0].equals("maxstat")) {
|
||||
final String[] s = {"setall", String.valueOf(Short.MAX_VALUE)};
|
||||
executeGMCommand(c, s, heading);
|
||||
player.gainExp(-player.getExp(), false, false);
|
||||
player.setLevel(255);
|
||||
player.setFame(13337);
|
||||
player.setMaxHp(30000);
|
||||
@@ -1377,6 +1358,9 @@ public class Commands {
|
||||
player.updateSingleStat(MapleStat.FAME, 13337);
|
||||
player.updateSingleStat(MapleStat.MAXHP, 30000);
|
||||
player.updateSingleStat(MapleStat.MAXMP, 30000);
|
||||
player.revertPlayerRates();
|
||||
player.setPlayerRates();
|
||||
player.yellowMessage("Stats maxed out.");
|
||||
} else if (sub[0].equals("maxskills")) {
|
||||
for (MapleData skill_ : MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/" + "String.wz")).getData("Skill.img").getChildren()) {
|
||||
try {
|
||||
@@ -1388,10 +1372,10 @@ public class Commands {
|
||||
nfe.printStackTrace();
|
||||
break;
|
||||
} catch (NullPointerException npe) {
|
||||
npe.printStackTrace();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
player.yellowMessage("Skills maxed out.");
|
||||
} else if (sub[0].equals("mesos")) {
|
||||
if (sub.length >= 2) {
|
||||
player.gainMeso(Integer.parseInt(sub[1]), true);
|
||||
|
||||
@@ -70,12 +70,37 @@ public class GameConstants {
|
||||
return job == 2000 || (job >= 2100 && job <= 2112);
|
||||
}
|
||||
|
||||
private static boolean isInBranchJobTree(int skillJobId, int jobId, int branchType) {
|
||||
int branch = (int)(Math.pow(10, branchType));
|
||||
|
||||
int skillBranch = (int)(skillJobId / branch) * branch;
|
||||
int jobBranch = (int)(jobId / branch) * branch;
|
||||
|
||||
return skillBranch == jobBranch;
|
||||
}
|
||||
|
||||
private static boolean hasDivergedBranchJobTree(int skillJobId, int jobId, int branchType) {
|
||||
int branch = (int)(Math.pow(10, branchType));
|
||||
|
||||
int skillBranch = (int)(skillJobId / branch);
|
||||
int jobBranch = (int)(jobId / branch);
|
||||
|
||||
return skillBranch != jobBranch && skillBranch % 10 != 0;
|
||||
}
|
||||
|
||||
public static boolean isInJobTree(int skillId, int jobId) {
|
||||
int skill = skillId / 10000;
|
||||
if ((jobId - skill) + skill == jobId) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
int skillJob = skillId / 10000;
|
||||
|
||||
if(!isInBranchJobTree(skillJob, jobId, 0)) {
|
||||
for(int i = 1; i <= 3; i++) {
|
||||
if(hasDivergedBranchJobTree(skillJob, jobId, i)) return false;
|
||||
if(isInBranchJobTree(skillJob, jobId, i)) return true;
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isPqSkill(final int skill) {
|
||||
|
||||
@@ -32,5 +32,5 @@ public class Hermit {
|
||||
public static final int SHADOW_WEB = 4111003;
|
||||
public static final int SHADOW_MESO = 4111004;
|
||||
public static final int AVENGER = 4111005;
|
||||
public static final int FLASH_JUML = 4111006;
|
||||
public static final int FLASH_JUMP = 4111006;
|
||||
}
|
||||
|
||||
@@ -42,58 +42,58 @@ public final class ItemSortHandler extends AbstractMaplePacketHandler {
|
||||
MapleInventoryType inventoryType = MapleInventoryType.getByType(slea.readByte());
|
||||
|
||||
if(!ServerConstants.USE_ITEM_SORT) {
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
return;
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
return;
|
||||
}
|
||||
|
||||
MapleInventory inventory = c.getPlayer().getInventory(inventoryType);
|
||||
|
||||
//------------------- RonanLana's SLOT MERGER -----------------
|
||||
|
||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
||||
Item srcItem, dstItem;
|
||||
|
||||
for(short dst = 0; dst <= inventory.getSlotLimit(); dst++) {
|
||||
dstItem = inventory.getItem(dst);
|
||||
if(dstItem == null) continue;
|
||||
|
||||
for(short src = (short)(dst + 1); src <= inventory.getSlotLimit(); src++) {
|
||||
srcItem = inventory.getItem(src);
|
||||
if(srcItem == null) continue;
|
||||
|
||||
if(dstItem.getItemId() != srcItem.getItemId()) continue;
|
||||
if(dstItem.getQuantity() == ii.getSlotMax(c, inventory.getItem(dst).getItemId())) break;
|
||||
|
||||
MapleInventoryManipulator.move(c, inventoryType, src, dst);
|
||||
}
|
||||
}
|
||||
|
||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
||||
Item srcItem, dstItem;
|
||||
|
||||
for(short dst = 1; dst <= inventory.getSlotLimit(); dst++) {
|
||||
dstItem = inventory.getItem(dst);
|
||||
if(dstItem == null) continue;
|
||||
|
||||
for(short src = (short)(dst + 1); src <= inventory.getSlotLimit(); src++) {
|
||||
srcItem = inventory.getItem(src);
|
||||
if(srcItem == null) continue;
|
||||
|
||||
if(dstItem.getItemId() != srcItem.getItemId()) continue;
|
||||
if(dstItem.getQuantity() == ii.getSlotMax(c, inventory.getItem(dst).getItemId())) break;
|
||||
|
||||
MapleInventoryManipulator.move(c, inventoryType, src, dst);
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
|
||||
inventory = c.getPlayer().getInventory(inventoryType);
|
||||
boolean sorted = false;
|
||||
|
||||
while (!sorted) {
|
||||
short freeSlot = inventory.getNextFreeSlot();
|
||||
|
||||
if (freeSlot != -1) {
|
||||
short itemSlot = -1;
|
||||
for (short i = (short) (freeSlot + 1); i <= inventory.getSlotLimit(); i = (short) (i + 1)) {
|
||||
if (inventory.getItem(i) != null) {
|
||||
itemSlot = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (itemSlot > 0) {
|
||||
MapleInventoryManipulator.move(c, inventoryType, itemSlot, freeSlot);
|
||||
} else {
|
||||
sorted = true;
|
||||
}
|
||||
} else {
|
||||
sorted = true;
|
||||
}
|
||||
}
|
||||
c.announce(MaplePacketCreator.finishedSort(inventoryType.getType()));
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
inventory = c.getPlayer().getInventory(inventoryType);
|
||||
boolean sorted = false;
|
||||
|
||||
while (!sorted) {
|
||||
short freeSlot = inventory.getNextFreeSlot();
|
||||
|
||||
if (freeSlot != -1) {
|
||||
short itemSlot = -1;
|
||||
for (short i = (short) (freeSlot + 1); i <= inventory.getSlotLimit(); i = (short) (i + 1)) {
|
||||
if (inventory.getItem(i) != null) {
|
||||
itemSlot = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (itemSlot > 0) {
|
||||
MapleInventoryManipulator.move(c, inventoryType, itemSlot, freeSlot);
|
||||
} else {
|
||||
sorted = true;
|
||||
}
|
||||
} else {
|
||||
sorted = true;
|
||||
}
|
||||
}
|
||||
c.announce(MaplePacketCreator.finishedSort(inventoryType.getType()));
|
||||
c.announce(MaplePacketCreator.enableActions());
|
||||
}
|
||||
}
|
||||
@@ -59,7 +59,7 @@ public final class SkillBookHandler extends AbstractMaplePacketHandler {
|
||||
if (skilldata == null) {
|
||||
return;
|
||||
}
|
||||
Skill skill2 = SkillFactory.getSkill(skilldata.get("skillid"));
|
||||
Skill skill2 = SkillFactory.getSkill(skilldata.get("skillid"));
|
||||
if (skilldata.get("skillid") == 0) {
|
||||
canuse = false;
|
||||
} else if ((player.getSkillLevel(skill2) >= skilldata.get("reqSkillLevel") || skilldata.get("reqSkillLevel") == 0) && player.getMasterLevel(skill2) < skilldata.get("masterLevel")) {
|
||||
|
||||
@@ -63,6 +63,8 @@ import client.inventory.MapleInventoryType;
|
||||
import client.inventory.MaplePet;
|
||||
import constants.ExpTable;
|
||||
import constants.ServerConstants;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -457,4 +459,17 @@ public class NPCConversationManager extends AbstractPlayerInteraction {
|
||||
dispose();
|
||||
return true;
|
||||
}
|
||||
|
||||
public Object[] getAvailableMasteryBooks() {
|
||||
return MapleItemInformationProvider.getInstance().usableMasteryBooks(this.getPlayer()).toArray();
|
||||
}
|
||||
|
||||
public Object[] getAvailableSkillBooks() {
|
||||
return MapleItemInformationProvider.getInstance().usableSkillBooks(this.getPlayer()).toArray();
|
||||
}
|
||||
|
||||
public Object[] getNamesWhoDropsItem(Integer itemId) {
|
||||
return MapleItemInformationProvider.getInstance().getWhoDrops(itemId).toArray();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -33,6 +33,8 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.HashSet;
|
||||
|
||||
import net.server.Server;
|
||||
import provider.MapleData;
|
||||
@@ -49,6 +51,7 @@ import tools.Randomizer;
|
||||
import client.MapleCharacter;
|
||||
import client.MapleClient;
|
||||
import client.MapleJob;
|
||||
import client.Skill;
|
||||
import client.SkillFactory;
|
||||
import client.autoban.AutobanFactory;
|
||||
import client.inventory.Equip;
|
||||
@@ -62,6 +65,7 @@ import constants.ItemConstants;
|
||||
import constants.skills.Assassin;
|
||||
import constants.skills.Gunslinger;
|
||||
import constants.skills.NightWalker;
|
||||
import server.life.MapleMonsterInformationProvider;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -1509,6 +1513,58 @@ public class MapleItemInformationProvider {
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public Set<String> getWhoDrops(Integer itemId) {
|
||||
Set<String> list = new HashSet<>();
|
||||
|
||||
try {
|
||||
PreparedStatement ps = DatabaseConnection.getConnection().prepareStatement("SELECT * FROM drop_data WHERE itemid = ? LIMIT 50");
|
||||
ps.setInt(1, itemId);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
while(rs.next()) {
|
||||
String resultName = MapleMonsterInformationProvider.getMobNameFromId(rs.getInt("dropperid"));
|
||||
if (resultName != null) {
|
||||
list.add(resultName);
|
||||
}
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
private boolean canUseSkillBook(MapleCharacter player, Integer skillBookId) {
|
||||
Map<String, Integer> skilldata = MapleItemInformationProvider.getInstance().getSkillStats(skillBookId, player.getJob().getId());
|
||||
if(skilldata == null || skilldata.get("skillid") == 0) return false;
|
||||
|
||||
Skill skill2 = SkillFactory.getSkill(skilldata.get("skillid"));
|
||||
return (skilldata.get("skillid") != 0 && ((player.getSkillLevel(skill2) >= skilldata.get("reqSkillLevel") || skilldata.get("reqSkillLevel") == 0) && player.getMasterLevel(skill2) < skilldata.get("masterLevel")));
|
||||
}
|
||||
|
||||
public List<Integer> usableMasteryBooks(MapleCharacter player) {
|
||||
List<Integer> masterybook = new LinkedList<>();
|
||||
for(Integer i = 2290000; i <= 2290125; i++) {
|
||||
if(canUseSkillBook(player, i)) {
|
||||
masterybook.add(i);
|
||||
}
|
||||
}
|
||||
|
||||
return masterybook;
|
||||
}
|
||||
|
||||
public List<Integer> usableSkillBooks(MapleCharacter player) {
|
||||
List<Integer> skillbook = new LinkedList<>();
|
||||
for(Integer i = 2280000; i <= 2280012; i++) {
|
||||
if(canUseSkillBook(player, i)) {
|
||||
skillbook.add(i);
|
||||
}
|
||||
}
|
||||
|
||||
return skillbook;
|
||||
}
|
||||
|
||||
public class scriptedItem {
|
||||
|
||||
|
||||
@@ -109,12 +109,12 @@ public class MapleMonsterInformationProvider {
|
||||
|
||||
while (rs.next()) {
|
||||
ret.add(
|
||||
new MonsterDropEntry(
|
||||
rs.getInt("itemid"),
|
||||
rs.getInt("chance"),
|
||||
rs.getInt("minimum_quantity"),
|
||||
rs.getInt("maximum_quantity"),
|
||||
rs.getShort("questid")));
|
||||
new MonsterDropEntry(
|
||||
rs.getInt("itemid"),
|
||||
rs.getInt("chance"),
|
||||
rs.getInt("minimum_quantity"),
|
||||
rs.getInt("maximum_quantity"),
|
||||
rs.getShort("questid")));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
@@ -155,7 +155,25 @@ public class MapleMonsterInformationProvider {
|
||||
return retMobs;
|
||||
}
|
||||
|
||||
public static String getMobNameFromID(int id)
|
||||
public static String getMobNameFromId(int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
return MapleLifeFactory.getMonster(id).getName();
|
||||
}
|
||||
catch (NullPointerException npe)
|
||||
{
|
||||
return null; //nonexistant mob
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
System.err.println("Nonexistant mob id " + id);
|
||||
return null; //nonexistant mob
|
||||
}
|
||||
}
|
||||
|
||||
public static String getMobNameFromID(int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user