Rename and clean up MapleMonsterInformationProvider
This commit is contained in:
@@ -27,8 +27,8 @@ import client.Character;
|
|||||||
import client.Client;
|
import client.Client;
|
||||||
import client.command.Command;
|
import client.command.Command;
|
||||||
import server.MapleItemInformationProvider;
|
import server.MapleItemInformationProvider;
|
||||||
import server.life.MapleMonsterInformationProvider;
|
|
||||||
import server.life.MonsterDropEntry;
|
import server.life.MonsterDropEntry;
|
||||||
|
import server.life.MonsterInformationProvider;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@@ -48,20 +48,20 @@ public class WhatDropsFromCommand extends Command {
|
|||||||
String monsterName = player.getLastCommandMessage();
|
String monsterName = player.getLastCommandMessage();
|
||||||
String output = "";
|
String output = "";
|
||||||
int limit = 3;
|
int limit = 3;
|
||||||
Iterator<Pair<Integer, String>> listIterator = MapleMonsterInformationProvider.getMobsIDsFromName(monsterName).iterator();
|
Iterator<Pair<Integer, String>> listIterator = MonsterInformationProvider.getMobsIDsFromName(monsterName).iterator();
|
||||||
for (int i = 0; i < limit; i++) {
|
for (int i = 0; i < limit; i++) {
|
||||||
if(listIterator.hasNext()) {
|
if(listIterator.hasNext()) {
|
||||||
Pair<Integer, String> data = listIterator.next();
|
Pair<Integer, String> data = listIterator.next();
|
||||||
int mobId = data.getLeft();
|
int mobId = data.getLeft();
|
||||||
String mobName = data.getRight();
|
String mobName = data.getRight();
|
||||||
output += mobName + " drops the following items:\r\n\r\n";
|
output += mobName + " drops the following items:\r\n\r\n";
|
||||||
for (MonsterDropEntry drop : MapleMonsterInformationProvider.getInstance().retrieveDrop(mobId)){
|
for (MonsterDropEntry drop : MonsterInformationProvider.getInstance().retrieveDrop(mobId)){
|
||||||
try {
|
try {
|
||||||
String name = MapleItemInformationProvider.getInstance().getName(drop.itemId);
|
String name = MapleItemInformationProvider.getInstance().getName(drop.itemId);
|
||||||
if (name == null || name.equals("null") || drop.chance == 0){
|
if (name == null || name.equals("null") || drop.chance == 0){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
float chance = Math.max(1000000 / drop.chance / (!MapleMonsterInformationProvider.getInstance().isBoss(mobId) ? player.getDropRate() : player.getBossDropRate()), 1);
|
float chance = Math.max(1000000 / drop.chance / (!MonsterInformationProvider.getInstance().isBoss(mobId) ? player.getDropRate() : player.getBossDropRate()), 1);
|
||||||
output += "- " + name + " (1/" + (int) chance + ")\r\n";
|
output += "- " + name + " (1/" + (int) chance + ")\r\n";
|
||||||
} catch (Exception ex){
|
} catch (Exception ex){
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import client.Character;
|
|||||||
import client.Client;
|
import client.Client;
|
||||||
import client.command.Command;
|
import client.command.Command;
|
||||||
import server.MapleItemInformationProvider;
|
import server.MapleItemInformationProvider;
|
||||||
import server.life.MapleMonsterInformationProvider;
|
import server.life.MonsterInformationProvider;
|
||||||
import tools.DatabaseConnection;
|
import tools.DatabaseConnection;
|
||||||
import tools.Pair;
|
import tools.Pair;
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ public class WhoDropsCommand extends Command {
|
|||||||
|
|
||||||
try (ResultSet rs = ps.executeQuery()) {
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
String resultName = MapleMonsterInformationProvider.getInstance().getMobNameFromId(rs.getInt("dropperid"));
|
String resultName = MonsterInformationProvider.getInstance().getMobNameFromId(rs.getInt("dropperid"));
|
||||||
if (resultName != null) {
|
if (resultName != null) {
|
||||||
output += resultName + ", ";
|
output += resultName + ", ";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ package client.command.commands.gm3;
|
|||||||
import client.Character;
|
import client.Character;
|
||||||
import client.Client;
|
import client.Client;
|
||||||
import client.command.Command;
|
import client.command.Command;
|
||||||
import server.life.MapleMonsterInformationProvider;
|
import server.life.MonsterInformationProvider;
|
||||||
|
|
||||||
public class ReloadDropsCommand extends Command {
|
public class ReloadDropsCommand extends Command {
|
||||||
{
|
{
|
||||||
@@ -36,7 +36,7 @@ public class ReloadDropsCommand extends Command {
|
|||||||
@Override
|
@Override
|
||||||
public void execute(Client c, String[] params) {
|
public void execute(Client c, String[] params) {
|
||||||
Character player = c.getPlayer();
|
Character player = c.getPlayer();
|
||||||
MapleMonsterInformationProvider.getInstance().clearDrops();
|
MonsterInformationProvider.getInstance().clearDrops();
|
||||||
player.dropMessage(5, "Reloaded Drops");
|
player.dropMessage(5, "Reloaded Drops");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -278,7 +278,7 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
|
|||||||
if (steal.getEffect(player.getSkillLevel(steal)).makeChanceResult()) {
|
if (steal.getEffect(player.getSkillLevel(steal)).makeChanceResult()) {
|
||||||
monster.addStolen(0);
|
monster.addStolen(0);
|
||||||
|
|
||||||
MapleMonsterInformationProvider mi = MapleMonsterInformationProvider.getInstance();
|
MonsterInformationProvider mi = MonsterInformationProvider.getInstance();
|
||||||
List<Integer> dropPool = mi.retrieveDropPool(monster.getId());
|
List<Integer> dropPool = mi.retrieveDropPool(monster.getId());
|
||||||
if(!dropPool.isEmpty()) {
|
if(!dropPool.isEmpty()) {
|
||||||
int rndPool = (int) Math.floor(Math.random() * dropPool.get(dropPool.size() - 1));
|
int rndPool = (int) Math.floor(Math.random() * dropPool.get(dropPool.size() - 1));
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ import client.Client;
|
|||||||
import constants.game.GameConstants;
|
import constants.game.GameConstants;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.life.MapleMonsterInformationProvider;
|
|
||||||
import server.life.Monster;
|
import server.life.Monster;
|
||||||
|
import server.life.MonsterInformationProvider;
|
||||||
import server.maps.MapleMap;
|
import server.maps.MapleMap;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
@@ -48,7 +48,7 @@ public class FieldDamageMobHandler extends AbstractPacketHandler {
|
|||||||
Monster mob = map.getMonsterByOid(mobOid);
|
Monster mob = map.getMonsterByOid(mobOid);
|
||||||
if (mob != null) {
|
if (mob != null) {
|
||||||
if (dmg < 0 || dmg > GameConstants.MAX_FIELD_MOB_DAMAGE) {
|
if (dmg < 0 || dmg > GameConstants.MAX_FIELD_MOB_DAMAGE) {
|
||||||
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " tried to use an obstacle on mapid " + map.getId() + " to attack " + MapleMonsterInformationProvider.getInstance().getMobNameFromId(mob.getId()) + " with damage " + dmg);
|
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " tried to use an obstacle on mapid " + map.getId() + " to attack " + MonsterInformationProvider.getInstance().getMobNameFromId(mob.getId()) + " with damage " + dmg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ import client.status.MonsterStatus;
|
|||||||
import client.status.MonsterStatusEffect;
|
import client.status.MonsterStatusEffect;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.life.MapleMonsterInformationProvider;
|
|
||||||
import server.life.Monster;
|
import server.life.Monster;
|
||||||
|
import server.life.MonsterInformationProvider;
|
||||||
import server.maps.MapleMap;
|
import server.maps.MapleMap;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
@@ -61,7 +61,7 @@ public final class MobDamageMobHandler extends AbstractPacketHandler {
|
|||||||
if (dmg > maxDmg) {
|
if (dmg > maxDmg) {
|
||||||
AutobanFactory.DAMAGE_HACK.alert(c.getPlayer(), "Possible packet editing hypnotize damage exploit."); // thanks Rien dev team
|
AutobanFactory.DAMAGE_HACK.alert(c.getPlayer(), "Possible packet editing hypnotize damage exploit."); // thanks Rien dev team
|
||||||
|
|
||||||
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " had hypnotized " + MapleMonsterInformationProvider.getInstance().getMobNameFromId(attacker.getId()) + " to attack " + MapleMonsterInformationProvider.getInstance().getMobNameFromId(damaged.getId()) + " with damage " + dmg + " (max: " + maxDmg + ")");
|
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " had hypnotized " + MonsterInformationProvider.getInstance().getMobNameFromId(attacker.getId()) + " to attack " + MonsterInformationProvider.getInstance().getMobNameFromId(damaged.getId()) + " with damage " + dmg + " (max: " + maxDmg + ")");
|
||||||
dmg = maxDmg;
|
dmg = maxDmg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,10 +25,10 @@ import client.Character;
|
|||||||
import client.Client;
|
import client.Client;
|
||||||
import config.YamlConfig;
|
import config.YamlConfig;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.life.MapleMonsterInformationProvider;
|
|
||||||
import server.life.MobSkill;
|
import server.life.MobSkill;
|
||||||
import server.life.MobSkillFactory;
|
import server.life.MobSkillFactory;
|
||||||
import server.life.Monster;
|
import server.life.Monster;
|
||||||
|
import server.life.MonsterInformationProvider;
|
||||||
import server.maps.MapleMap;
|
import server.maps.MapleMap;
|
||||||
import server.maps.MapleMapObject;
|
import server.maps.MapleMapObject;
|
||||||
import server.maps.MapleMapObjectType;
|
import server.maps.MapleMapObjectType;
|
||||||
@@ -99,7 +99,7 @@ public final class MoveLifeHandler extends AbstractMovementPacketHandler {
|
|||||||
toUse = MobSkillFactory.getMobSkill(useSkillId, useSkillLevel);
|
toUse = MobSkillFactory.getMobSkill(useSkillId, useSkillLevel);
|
||||||
|
|
||||||
if (monster.canUseSkill(toUse, true)) {
|
if (monster.canUseSkill(toUse, true)) {
|
||||||
int animationTime = MapleMonsterInformationProvider.getInstance().getMobSkillAnimationTime(toUse);
|
int animationTime = MonsterInformationProvider.getInstance().getMobSkillAnimationTime(toUse);
|
||||||
if(animationTime > 0 && toUse.getSkillId() != 129) {
|
if(animationTime > 0 && toUse.getSkillId() != 129) {
|
||||||
toUse.applyDelayedEffect(player, monster, true, animationTime);
|
toUse.applyDelayedEffect(player, monster, true, animationTime);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -34,8 +34,8 @@ import constants.skills.Outlaw;
|
|||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.MapleItemInformationProvider;
|
import server.MapleItemInformationProvider;
|
||||||
import server.MapleStatEffect;
|
import server.MapleStatEffect;
|
||||||
import server.life.MapleMonsterInformationProvider;
|
|
||||||
import server.life.Monster;
|
import server.life.Monster;
|
||||||
|
import server.life.MonsterInformationProvider;
|
||||||
import server.maps.MapleSummon;
|
import server.maps.MapleSummon;
|
||||||
import tools.FilePrinter;
|
import tools.FilePrinter;
|
||||||
import tools.PacketCreator;
|
import tools.PacketCreator;
|
||||||
@@ -109,7 +109,7 @@ public final class SummonDamageHandler extends AbstractDealDamageHandler {
|
|||||||
if (damage > maxDmg) {
|
if (damage > maxDmg) {
|
||||||
AutobanFactory.DAMAGE_HACK.alert(c.getPlayer(), "Possible packet editing summon damage exploit.");
|
AutobanFactory.DAMAGE_HACK.alert(c.getPlayer(), "Possible packet editing summon damage exploit.");
|
||||||
|
|
||||||
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " used a summon of skillid " + summon.getSkill() + " to attack " + MapleMonsterInformationProvider.getInstance().getMobNameFromId(target.getId()) + " with damage " + damage + " (max: " + maxDmg + ")");
|
FilePrinter.printError(FilePrinter.EXPLOITS + c.getPlayer().getName() + ".txt", c.getPlayer().getName() + " used a summon of skillid " + summon.getSkill() + " to attack " + MonsterInformationProvider.getInstance().getMobNameFromId(target.getId()) + " with damage " + damage + " (max: " + maxDmg + ")");
|
||||||
damage = maxDmg;
|
damage = maxDmg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ import provider.*;
|
|||||||
import provider.wz.WZFiles;
|
import provider.wz.WZFiles;
|
||||||
import server.MakerItemFactory.MakerItemCreateEntry;
|
import server.MakerItemFactory.MakerItemCreateEntry;
|
||||||
import server.life.LifeFactory;
|
import server.life.LifeFactory;
|
||||||
import server.life.MapleMonsterInformationProvider;
|
import server.life.MonsterInformationProvider;
|
||||||
import tools.*;
|
import tools.*;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
@@ -2059,7 +2059,7 @@ public class MapleItemInformationProvider {
|
|||||||
|
|
||||||
try (ResultSet rs = ps.executeQuery()) {
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
String resultName = MapleMonsterInformationProvider.getInstance().getMobNameFromId(rs.getInt("dropperid"));
|
String resultName = MonsterInformationProvider.getInstance().getMobNameFromId(rs.getInt("dropperid"));
|
||||||
if (!resultName.isEmpty()) {
|
if (!resultName.isEmpty()) {
|
||||||
list.add(resultName);
|
list.add(resultName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public class LifeFactory {
|
|||||||
|
|
||||||
private static void setMonsterAttackInfo(int mid, List<MobAttackInfoHolder> attackInfos) {
|
private static void setMonsterAttackInfo(int mid, List<MobAttackInfoHolder> attackInfos) {
|
||||||
if (!attackInfos.isEmpty()) {
|
if (!attackInfos.isEmpty()) {
|
||||||
MapleMonsterInformationProvider mi = MapleMonsterInformationProvider.getInstance();
|
MonsterInformationProvider mi = MonsterInformationProvider.getInstance();
|
||||||
|
|
||||||
for (MobAttackInfoHolder attackInfo : attackInfos) {
|
for (MobAttackInfoHolder attackInfo : attackInfos) {
|
||||||
mi.setMobAttackInfo(mid, attackInfo.attackPos, attackInfo.mpCon, attackInfo.coolTime);
|
mi.setMobAttackInfo(mid, attackInfo.attackPos, attackInfo.mpCon, attackInfo.coolTime);
|
||||||
@@ -181,7 +181,7 @@ public class LifeFactory {
|
|||||||
}
|
}
|
||||||
decodeElementalString(stats, DataTool.getString("elemAttr", monsterInfoData, ""));
|
decodeElementalString(stats, DataTool.getString("elemAttr", monsterInfoData, ""));
|
||||||
|
|
||||||
MapleMonsterInformationProvider mi = MapleMonsterInformationProvider.getInstance();
|
MonsterInformationProvider mi = MonsterInformationProvider.getInstance();
|
||||||
Data monsterSkillInfoData = monsterInfoData.getChildByPath("skill");
|
Data monsterSkillInfoData = monsterInfoData.getChildByPath("skill");
|
||||||
if (monsterSkillInfoData != null) {
|
if (monsterSkillInfoData != null) {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|||||||
@@ -314,9 +314,9 @@ public class Monster extends AbstractLoadedLife {
|
|||||||
long animationTime;
|
long animationTime;
|
||||||
|
|
||||||
if (skill == null) {
|
if (skill == null) {
|
||||||
animationTime = MapleMonsterInformationProvider.getInstance().getMobAttackAnimationTime(this.getId(), attackPos);
|
animationTime = MonsterInformationProvider.getInstance().getMobAttackAnimationTime(this.getId(), attackPos);
|
||||||
} else {
|
} else {
|
||||||
animationTime = MapleMonsterInformationProvider.getInstance().getMobSkillAnimationTime(skill);
|
animationTime = MonsterInformationProvider.getInstance().getMobSkillAnimationTime(skill);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (animationTime > 0) {
|
if (animationTime > 0) {
|
||||||
@@ -738,7 +738,7 @@ public class Monster extends AbstractLoadedLife {
|
|||||||
|
|
||||||
public List<MonsterDropEntry> retrieveRelevantDrops() {
|
public List<MonsterDropEntry> retrieveRelevantDrops() {
|
||||||
if (this.getStats().isFriendly()) { // thanks Conrad for noticing friendly mobs not spawning loots after a recent update
|
if (this.getStats().isFriendly()) { // thanks Conrad for noticing friendly mobs not spawning loots after a recent update
|
||||||
return MapleMonsterInformationProvider.getInstance().retrieveEffectiveDrop(this.getId());
|
return MonsterInformationProvider.getInstance().retrieveEffectiveDrop(this.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<Integer, Character> pchars = map.getMapAllPlayers();
|
Map<Integer, Character> pchars = map.getMapAllPlayers();
|
||||||
@@ -1542,7 +1542,7 @@ public class Monster extends AbstractLoadedLife {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Pair<Integer, Integer> attackInfo = MapleMonsterInformationProvider.getInstance().getMobAttackInfo(this.getId(), attackPos);
|
Pair<Integer, Integer> attackInfo = MonsterInformationProvider.getInstance().getMobAttackInfo(this.getId(), attackPos);
|
||||||
if (attackInfo == null) {
|
if (attackInfo == null) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,12 +38,12 @@ import java.sql.ResultSet;
|
|||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class MapleMonsterInformationProvider {
|
public class MonsterInformationProvider {
|
||||||
// Author : LightPepsi
|
// Author : LightPepsi
|
||||||
|
|
||||||
private static final MapleMonsterInformationProvider instance = new MapleMonsterInformationProvider();
|
private static final MonsterInformationProvider instance = new MonsterInformationProvider();
|
||||||
|
|
||||||
public static MapleMonsterInformationProvider getInstance() {
|
public static MonsterInformationProvider getInstance() {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ public class MapleMonsterInformationProvider {
|
|||||||
private final Map<Integer, Boolean> mobBossCache = new HashMap<>();
|
private final Map<Integer, Boolean> mobBossCache = new HashMap<>();
|
||||||
private final Map<Integer, String> mobNameCache = new HashMap<>();
|
private final Map<Integer, String> mobNameCache = new HashMap<>();
|
||||||
|
|
||||||
protected MapleMonsterInformationProvider() {
|
protected MonsterInformationProvider() {
|
||||||
retrieveGlobal();
|
retrieveGlobal();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,7 +269,7 @@ public class MapleMonsterInformationProvider {
|
|||||||
if (mobName == null) {
|
if (mobName == null) {
|
||||||
DataProvider dataProvider = DataProviderFactory.getDataProvider(WZFiles.STRING);
|
DataProvider dataProvider = DataProviderFactory.getDataProvider(WZFiles.STRING);
|
||||||
Data mobData = dataProvider.getData("Mob.img");
|
Data mobData = dataProvider.getData("Mob.img");
|
||||||
|
|
||||||
mobName = DataTool.getString(mobData.getChildByPath(id + "/name"), "");
|
mobName = DataTool.getString(mobData.getChildByPath(id + "/name"), "");
|
||||||
mobNameCache.put(id, mobName);
|
mobNameCache.put(id, mobName);
|
||||||
}
|
}
|
||||||
@@ -20,8 +20,8 @@
|
|||||||
package server.loot;
|
package server.loot;
|
||||||
|
|
||||||
import client.Character;
|
import client.Character;
|
||||||
import server.life.MapleMonsterInformationProvider;
|
|
||||||
import server.life.MonsterDropEntry;
|
import server.life.MonsterDropEntry;
|
||||||
|
import server.life.MonsterInformationProvider;
|
||||||
import server.quest.MapleQuest;
|
import server.quest.MapleQuest;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
@@ -74,7 +74,7 @@ public class MapleLootManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static List<MonsterDropEntry> retrieveRelevantDrops(int monsterId, List<Character> players) {
|
public static List<MonsterDropEntry> retrieveRelevantDrops(int monsterId, List<Character> players) {
|
||||||
List<MonsterDropEntry> loots = MapleMonsterInformationProvider.getInstance().retrieveEffectiveDrop(monsterId);
|
List<MonsterDropEntry> loots = MonsterInformationProvider.getInstance().retrieveEffectiveDrop(monsterId);
|
||||||
if(loots.isEmpty()) return loots;
|
if(loots.isEmpty()) return loots;
|
||||||
|
|
||||||
List<MapleLootInventory> playersInv = new LinkedList<>();
|
List<MapleLootInventory> playersInv = new LinkedList<>();
|
||||||
|
|||||||
@@ -721,7 +721,7 @@ public class MapleMap {
|
|||||||
chRate = 1;
|
chRate = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
final MapleMonsterInformationProvider mi = MapleMonsterInformationProvider.getInstance();
|
final MonsterInformationProvider mi = MonsterInformationProvider.getInstance();
|
||||||
final List<MonsterGlobalDropEntry> globalEntry = mi.getRelevantGlobalDrops(this.getId());
|
final List<MonsterGlobalDropEntry> globalEntry = mi.getRelevantGlobalDrops(this.getId());
|
||||||
|
|
||||||
final List<MonsterDropEntry> dropEntry = new ArrayList<>();
|
final List<MonsterDropEntry> dropEntry = new ArrayList<>();
|
||||||
@@ -2793,7 +2793,7 @@ public class MapleMap {
|
|||||||
}
|
}
|
||||||
if (monster.isBoss()) {
|
if (monster.isBoss()) {
|
||||||
if (unclaimOwnership() != null) {
|
if (unclaimOwnership() != null) {
|
||||||
String mobName = MapleMonsterInformationProvider.getInstance().getMobNameFromId(monster.getId());
|
String mobName = MonsterInformationProvider.getInstance().getMobNameFromId(monster.getId());
|
||||||
if (mobName != null) {
|
if (mobName != null) {
|
||||||
mobName = mobName.trim();
|
mobName = mobName.trim();
|
||||||
this.dropMessage(5, "This lawn has been taken siege by " + mobName + "'s forces and will be kept hold until their defeat.");
|
this.dropMessage(5, "This lawn has been taken siege by " + mobName + "'s forces and will be kept hold until their defeat.");
|
||||||
|
|||||||
Reference in New Issue
Block a user