Addition of configurable drops for bosses.
Contributed by MrNiceGuy.
This commit is contained in:
parent
bf5690956d
commit
c82add27e5
@ -206,6 +206,22 @@ PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 85
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lucky Clover
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -729,6 +731,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2302,6 +2308,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 85);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -206,6 +206,22 @@ PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 85
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lucky Clover
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -740,6 +742,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2326,6 +2332,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 85);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -209,6 +209,22 @@ PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 85
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lucky Clover
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -741,6 +743,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2340,6 +2346,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 85);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -209,6 +209,22 @@ PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 85
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lucky Clover
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -728,6 +730,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2320,6 +2326,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 85);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -209,6 +209,22 @@ PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 85
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lucky Clover
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -727,6 +729,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2329,6 +2335,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 85);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -209,6 +209,22 @@ PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 85
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lucky Clover
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -727,6 +729,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2336,6 +2342,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 85);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -209,6 +209,22 @@ PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 85
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lucky Clover
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -728,6 +730,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2375,6 +2381,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 85);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -209,6 +209,22 @@ PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 85
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lucky Clover
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -734,6 +736,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2391,6 +2397,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 85);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -209,6 +209,22 @@ PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 85
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lucky Clover
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -726,6 +728,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2367,6 +2373,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 85);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseInteger(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -209,6 +209,22 @@ PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 85
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lucky Clover
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -726,6 +728,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2403,6 +2409,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 85);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseInteger(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -209,6 +209,22 @@ PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 85
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Einhasad's Golden Coin, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 48472,1,2,100;
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lucky Clover
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -726,6 +728,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2403,6 +2409,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 85);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseInteger(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -203,3 +203,19 @@ KarmaRateDropEquipWeapon = 10
|
||||
PetXpRate = 1
|
||||
PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
@ -60,8 +60,10 @@ import org.l2jmobius.commons.util.IXmlReader;
|
||||
import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -793,6 +795,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2307,6 +2313,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -95,6 +95,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -103,8 +105,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -674,6 +676,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -203,3 +203,19 @@ KarmaRateDropEquipWeapon = 10
|
||||
PetXpRate = 1
|
||||
PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
@ -60,8 +60,10 @@ import org.l2jmobius.commons.util.IXmlReader;
|
||||
import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -819,6 +821,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2403,6 +2409,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -95,6 +95,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -103,8 +105,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -674,6 +676,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -204,3 +204,19 @@ KarmaRateDropEquipWeapon = 10
|
||||
PetXpRate = 1
|
||||
PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
@ -60,8 +60,10 @@ import org.l2jmobius.commons.util.IXmlReader;
|
||||
import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -824,6 +826,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2408,6 +2414,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -95,6 +95,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -103,8 +105,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -674,6 +676,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -204,3 +204,19 @@ KarmaRateDropEquipWeapon = 10
|
||||
PetXpRate = 1
|
||||
PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -737,6 +739,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2241,6 +2247,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -204,3 +204,19 @@ KarmaRateDropEquipWeapon = 10
|
||||
PetXpRate = 1
|
||||
PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -747,6 +749,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2270,6 +2276,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -204,3 +204,19 @@ KarmaRateDropEquipWeapon = 10
|
||||
PetXpRate = 1
|
||||
PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -746,6 +748,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2269,6 +2275,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -204,3 +204,19 @@ KarmaRateDropEquipWeapon = 10
|
||||
PetXpRate = 1
|
||||
PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -746,6 +748,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2273,6 +2279,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -204,3 +204,19 @@ KarmaRateDropEquipWeapon = 10
|
||||
PetXpRate = 1
|
||||
PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -746,6 +748,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2273,6 +2279,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -96,6 +96,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -104,8 +106,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -656,6 +658,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -204,3 +204,19 @@ KarmaRateDropEquipWeapon = 10
|
||||
PetXpRate = 1
|
||||
PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -746,6 +748,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2273,6 +2279,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -97,6 +97,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -105,8 +107,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -659,6 +661,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -204,3 +204,19 @@ KarmaRateDropEquipWeapon = 10
|
||||
PetXpRate = 1
|
||||
PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -746,6 +748,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2282,6 +2288,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -97,6 +97,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -105,8 +107,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -659,6 +661,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -204,3 +204,19 @@ KarmaRateDropEquipWeapon = 10
|
||||
PetXpRate = 1
|
||||
PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -751,6 +753,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2327,6 +2333,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -97,6 +97,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -105,8 +107,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -659,6 +661,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -204,3 +204,19 @@ KarmaRateDropEquipWeapon = 10
|
||||
PetXpRate = 1
|
||||
PetFoodRate = 1
|
||||
SinEaterXpRate = 1
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: Gold Einhasad, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 4356,1,2,100;
|
||||
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.item.type.CrystalType;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
@ -753,6 +755,10 @@ public class Config
|
||||
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static float RATE_KARMA_LOST;
|
||||
public static float RATE_KARMA_EXP_LOST;
|
||||
public static float RATE_SIEGE_GUARDS_PRICE;
|
||||
@ -2284,6 +2290,18 @@ public class Config
|
||||
DROP_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("DropItemMaxLevelDifference", 10);
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
|
||||
// Load PvP config file (if exists)
|
||||
final PropertiesParser pvpConfig = new PropertiesParser(PVP_CONFIG_FILE);
|
||||
|
@ -98,6 +98,8 @@ public class NpcData implements IXmlReader
|
||||
NamedNodeMap attrs = listNode.getAttributes();
|
||||
final StatSet set = new StatSet(new HashMap<>());
|
||||
final int npcId = parseInteger(attrs, "id");
|
||||
final int level = parseInteger(attrs, "level", 85);
|
||||
final String type = parseString(attrs, "type", "Folk");
|
||||
Map<String, Object> parameters = null;
|
||||
Map<Integer, Skill> skills = null;
|
||||
Set<Integer> clans = null;
|
||||
@ -106,8 +108,8 @@ public class NpcData implements IXmlReader
|
||||
List<DropGroupHolder> dropGroups = null;
|
||||
set.set("id", npcId);
|
||||
set.set("displayId", parseInteger(attrs, "displayId"));
|
||||
set.set("level", parseByte(attrs, "level"));
|
||||
set.set("type", parseString(attrs, "type", "Folk"));
|
||||
set.set("level", level);
|
||||
set.set("type", type);
|
||||
set.set("name", parseString(attrs, "name"));
|
||||
set.set("usingServerSideName", parseBoolean(attrs, "usingServerSideName"));
|
||||
set.set("title", parseString(attrs, "title"));
|
||||
@ -674,6 +676,16 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Set new drop lists.
|
||||
if (dropLists != null)
|
||||
{
|
||||
|
@ -215,6 +215,21 @@ SinEaterXpRate = 1
|
||||
BlessingChance = 15.0
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: L-Coin Pouch, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 71856,1,2,100;
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# LCoin Drop
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -61,8 +61,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
import org.l2jmobius.gameserver.util.FloodProtectorConfig;
|
||||
@ -757,9 +759,13 @@ public class Config
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double BLESSING_CHANCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static boolean LCOIN_DROP_ENABLED;
|
||||
public static double LCOIN_DROP_CHANCE;
|
||||
public static int LCOIN_MIN_MOB_LV;
|
||||
public static int LCOIN_MIN_MOB_LEVEL;
|
||||
public static int LCOIN_MIN_QUANTITY;
|
||||
public static int LCOIN_MAX_QUANTITY;
|
||||
public static float RATE_KARMA_LOST;
|
||||
@ -2375,9 +2381,21 @@ public class Config
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BLESSING_CHANCE = ratesConfig.getDouble("BlessingChance", 15.0);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
LCOIN_DROP_ENABLED = ratesConfig.getBoolean("LCoinDropEnable", false);
|
||||
LCOIN_DROP_CHANCE = ratesConfig.getDouble("LCoinDropChance", 15.0);
|
||||
LCOIN_MIN_MOB_LV = ratesConfig.getInt("LCoinMinimumMonsterLevel", 40);
|
||||
LCOIN_MIN_MOB_LEVEL = ratesConfig.getInt("LCoinMinimumMonsterLevel", 40);
|
||||
LCOIN_MIN_QUANTITY = ratesConfig.getInt("LCoinMinDropQuantity", 1);
|
||||
LCOIN_MAX_QUANTITY = ratesConfig.getInt("LCoinMaxDropQuantity", 5);
|
||||
|
||||
|
@ -674,18 +674,18 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add LCoin drop for bosses.
|
||||
if (type.contains("boss"))
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.add(new DropHolder(DropType.DROP, Inventory.LCOIN_ID, 1, 1, 100));
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Add configurable LCoin drop for monsters.
|
||||
if ((Config.LCOIN_DROP_ENABLED) && (type.contains("Monster") && !type.contains("boss")) && (level >= Config.LCOIN_MIN_MOB_LV))
|
||||
if ((Config.LCOIN_DROP_ENABLED) && (type.contains("Monster") && !type.contains("boss")) && (level >= Config.LCOIN_MIN_MOB_LEVEL))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
|
@ -215,6 +215,21 @@ SinEaterXpRate = 1
|
||||
BlessingChance = 15.0
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: L-Coin Pouch, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 71856,1,2,100;
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# LCoin Drop
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -62,8 +62,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ResurrectByPaymentHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
@ -759,9 +761,13 @@ public class Config
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double BLESSING_CHANCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static boolean LCOIN_DROP_ENABLED;
|
||||
public static double LCOIN_DROP_CHANCE;
|
||||
public static int LCOIN_MIN_MOB_LV;
|
||||
public static int LCOIN_MIN_MOB_LEVEL;
|
||||
public static int LCOIN_MIN_QUANTITY;
|
||||
public static int LCOIN_MAX_QUANTITY;
|
||||
public static float RATE_KARMA_LOST;
|
||||
@ -2476,9 +2482,21 @@ public class Config
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BLESSING_CHANCE = ratesConfig.getDouble("BlessingChance", 15.0);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
LCOIN_DROP_ENABLED = ratesConfig.getBoolean("LCoinDropEnable", false);
|
||||
LCOIN_DROP_CHANCE = ratesConfig.getDouble("LCoinDropChance", 15.0);
|
||||
LCOIN_MIN_MOB_LV = ratesConfig.getInt("LCoinMinimumMonsterLevel", 40);
|
||||
LCOIN_MIN_MOB_LEVEL = ratesConfig.getInt("LCoinMinimumMonsterLevel", 40);
|
||||
LCOIN_MIN_QUANTITY = ratesConfig.getInt("LCoinMinDropQuantity", 1);
|
||||
LCOIN_MAX_QUANTITY = ratesConfig.getInt("LCoinMaxDropQuantity", 5);
|
||||
|
||||
|
@ -674,18 +674,18 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add LCoin drop for bosses.
|
||||
if (type.contains("boss"))
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.add(new DropHolder(DropType.DROP, Inventory.LCOIN_ID, 1, 1, 100));
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Add configurable LCoin drop for monsters.
|
||||
if ((Config.LCOIN_DROP_ENABLED) && (type.contains("Monster") && !type.contains("boss")) && (level >= Config.LCOIN_MIN_MOB_LV))
|
||||
if ((Config.LCOIN_DROP_ENABLED) && (type.contains("Monster") && !type.contains("boss")) && (level >= Config.LCOIN_MIN_MOB_LEVEL))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
|
@ -215,6 +215,21 @@ SinEaterXpRate = 1
|
||||
BlessingChance = 15.0
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Additional drops from raid bosses (except GrandBoss)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
BossDropEnable = False
|
||||
BossDropMinLevel = 40
|
||||
BossDropMaxLevel = 999
|
||||
|
||||
# The following configures the items you want to add to the drop
|
||||
# Usage: itemId1,minAmount1;maxAmount1,chance1;itemId2...
|
||||
# Default: L-Coin Pouch, min: 1x, max: 2x, 100% chance of drop
|
||||
# PLEASE NOTE: Chance of drop also increases from VIP level/runes/etc.
|
||||
BossDropList = 71856,1,2,100;
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# LCoin Drop
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -62,8 +62,10 @@ import org.l2jmobius.commons.util.PropertiesParser;
|
||||
import org.l2jmobius.commons.util.StringUtil;
|
||||
import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.enums.ClassId;
|
||||
import org.l2jmobius.gameserver.enums.DropType;
|
||||
import org.l2jmobius.gameserver.enums.IllegalActionPunishmentType;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.holders.DropHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.holders.ResurrectByPaymentHolder;
|
||||
import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
|
||||
@ -760,9 +762,13 @@ public class Config
|
||||
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
|
||||
public static int EVENT_ITEM_MAX_LEVEL_DIFFERENCE;
|
||||
public static double BLESSING_CHANCE;
|
||||
public static boolean BOSS_DROP_ENABLED;
|
||||
public static int BOSS_DROP_MIN_LEVEL;
|
||||
public static int BOSS_DROP_MAX_LEVEL;
|
||||
public static List<DropHolder> BOSS_DROP_LIST = new ArrayList<>();
|
||||
public static boolean LCOIN_DROP_ENABLED;
|
||||
public static double LCOIN_DROP_CHANCE;
|
||||
public static int LCOIN_MIN_MOB_LV;
|
||||
public static int LCOIN_MIN_MOB_LEVEL;
|
||||
public static int LCOIN_MIN_QUANTITY;
|
||||
public static int LCOIN_MAX_QUANTITY;
|
||||
public static float RATE_KARMA_LOST;
|
||||
@ -2483,9 +2489,21 @@ public class Config
|
||||
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = ratesConfig.getDouble("DropItemMinLevelGapChance", 10);
|
||||
EVENT_ITEM_MAX_LEVEL_DIFFERENCE = ratesConfig.getInt("EventItemMaxLevelDifference", 9);
|
||||
BLESSING_CHANCE = ratesConfig.getDouble("BlessingChance", 15.0);
|
||||
BOSS_DROP_ENABLED = ratesConfig.getBoolean("BossDropEnable", false);
|
||||
BOSS_DROP_MIN_LEVEL = ratesConfig.getInt("BossDropMinLevel", 40);
|
||||
BOSS_DROP_MAX_LEVEL = ratesConfig.getInt("BossDropMaxLevel", 999);
|
||||
BOSS_DROP_LIST.clear();
|
||||
for (String s : ratesConfig.getString("BossDropList", "").trim().split(";"))
|
||||
{
|
||||
if (s.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BOSS_DROP_LIST.add(new DropHolder(DropType.DROP, Integer.parseInt(s.split(",")[0]), Integer.parseInt(s.split(",")[1]), Integer.parseInt(s.split(",")[2]), (Double.parseDouble(s.split(",")[3]))));
|
||||
}
|
||||
LCOIN_DROP_ENABLED = ratesConfig.getBoolean("LCoinDropEnable", false);
|
||||
LCOIN_DROP_CHANCE = ratesConfig.getDouble("LCoinDropChance", 15.0);
|
||||
LCOIN_MIN_MOB_LV = ratesConfig.getInt("LCoinMinimumMonsterLevel", 40);
|
||||
LCOIN_MIN_MOB_LEVEL = ratesConfig.getInt("LCoinMinimumMonsterLevel", 40);
|
||||
LCOIN_MIN_QUANTITY = ratesConfig.getInt("LCoinMinDropQuantity", 1);
|
||||
LCOIN_MAX_QUANTITY = ratesConfig.getInt("LCoinMaxDropQuantity", 5);
|
||||
|
||||
|
@ -674,18 +674,18 @@ public class NpcData implements IXmlReader
|
||||
// Clean old drop lists.
|
||||
template.removeDrops();
|
||||
|
||||
// Add LCoin drop for bosses.
|
||||
if (type.contains("boss"))
|
||||
// Add configurable item drop for bosses.
|
||||
if ((Config.BOSS_DROP_ENABLED) && (type.contains("RaidBoss") && (level >= Config.BOSS_DROP_MIN_LEVEL) && (level <= Config.BOSS_DROP_MAX_LEVEL)))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
dropLists = new ArrayList<>();
|
||||
}
|
||||
dropLists.add(new DropHolder(DropType.DROP, Inventory.LCOIN_ID, 1, 1, 100));
|
||||
dropLists.addAll(Config.BOSS_DROP_LIST);
|
||||
}
|
||||
|
||||
// Add configurable LCoin drop for monsters.
|
||||
if ((Config.LCOIN_DROP_ENABLED) && (type.contains("Monster") && !type.contains("boss")) && (level >= Config.LCOIN_MIN_MOB_LV))
|
||||
if ((Config.LCOIN_DROP_ENABLED) && (type.contains("Monster") && !type.contains("boss")) && (level >= Config.LCOIN_MIN_MOB_LEVEL))
|
||||
{
|
||||
if (dropLists == null)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user