Added premium drop rates by item id.
This commit is contained in:
17
trunk/dist/game/config/Custom.properties
vendored
17
trunk/dist/game/config/Custom.properties
vendored
@@ -676,13 +676,18 @@ PremiumRateXp = 2
|
|||||||
PremiumRateSp = 2
|
PremiumRateSp = 2
|
||||||
|
|
||||||
# Drop chance for premium players.
|
# Drop chance for premium players.
|
||||||
PremiumRateDropChance = 2
|
PremiumRateDropChance = 1
|
||||||
|
|
||||||
# Drop ammount for premium players.
|
# Drop amount for premium players.
|
||||||
PremiumRateDropAmmount = 1
|
PremiumRateDropAmount = 2
|
||||||
|
|
||||||
# Spoil chance for premium players.
|
# Spoil chance for premium players.
|
||||||
PremiumRateSpoilChance = 2
|
PremiumRateSpoilChance = 1
|
||||||
|
|
||||||
# Spoil ammount for premium players.
|
# Spoil amount for premium players.
|
||||||
PremiumRateSpoilAmmount = 1
|
PremiumRateSpoilAmount = 2
|
||||||
|
|
||||||
|
# List of items affected by custom drop rate by id, used now for Adena rate too.
|
||||||
|
# Usage: itemId1,multiplier1;itemId2,multiplier2;...
|
||||||
|
PremiumRateDropChanceByItemId = 57,2
|
||||||
|
PremiumRateDropAmountByItemId = 57,2
|
||||||
|
@@ -49,16 +49,16 @@ public class Premium implements IVoicedCommandHandler
|
|||||||
html.append("<tr><td>Rate XP: <font color=\"LEVEL\"> x" + Config.RATE_XP + "<br1></font></td></tr>");
|
html.append("<tr><td>Rate XP: <font color=\"LEVEL\"> x" + Config.RATE_XP + "<br1></font></td></tr>");
|
||||||
html.append("<tr><td>Rate SP: <font color=\"LEVEL\"> x" + Config.RATE_SP + "<br1></font></td></tr>");
|
html.append("<tr><td>Rate SP: <font color=\"LEVEL\"> x" + Config.RATE_SP + "<br1></font></td></tr>");
|
||||||
html.append("<tr><td>Drop Chance: <font color=\"LEVEL\"> x" + Config.RATE_DEATH_DROP_CHANCE_MULTIPLIER + "<br1></font></td></tr><br>");
|
html.append("<tr><td>Drop Chance: <font color=\"LEVEL\"> x" + Config.RATE_DEATH_DROP_CHANCE_MULTIPLIER + "<br1></font></td></tr><br>");
|
||||||
html.append("<tr><td>Drop Ammount: <font color=\"LEVEL\"> x" + Config.RATE_DEATH_DROP_AMOUNT_MULTIPLIER + "<br1></font></td></tr><br>");
|
html.append("<tr><td>Drop Amount: <font color=\"LEVEL\"> x" + Config.RATE_DEATH_DROP_AMOUNT_MULTIPLIER + "<br1></font></td></tr><br>");
|
||||||
html.append("<tr><td>Spoil Chance: <font color=\"LEVEL\"> x" + Config.RATE_CORPSE_DROP_CHANCE_MULTIPLIER + "<br1></font></td></tr><br>");
|
html.append("<tr><td>Spoil Chance: <font color=\"LEVEL\"> x" + Config.RATE_CORPSE_DROP_CHANCE_MULTIPLIER + "<br1></font></td></tr><br>");
|
||||||
html.append("<tr><td>Spoil Ammount: <font color=\"LEVEL\"> x" + Config.RATE_CORPSE_DROP_AMOUNT_MULTIPLIER + "<br><br></font></td></tr><br>");
|
html.append("<tr><td>Spoil Amount: <font color=\"LEVEL\"> x" + Config.RATE_CORPSE_DROP_AMOUNT_MULTIPLIER + "<br><br></font></td></tr><br>");
|
||||||
html.append("<tr><td><center>Premium Info & Rules<br></td></tr>");
|
html.append("<tr><td><center>Premium Info & Rules<br></td></tr>");
|
||||||
html.append("<tr><td>Rate XP: <font color=\"LEVEL\"> x" + (Config.RATE_XP * Config.PREMIUM_RATE_XP) + "<br1></font></td></tr>");
|
html.append("<tr><td>Rate XP: <font color=\"LEVEL\"> x" + (Config.RATE_XP * Config.PREMIUM_RATE_XP) + "<br1></font></td></tr>");
|
||||||
html.append("<tr><td>Rate SP: <font color=\"LEVEL\"> x" + (Config.RATE_SP * Config.PREMIUM_RATE_SP) + "<br1></font></td></tr>");
|
html.append("<tr><td>Rate SP: <font color=\"LEVEL\"> x" + (Config.RATE_SP * Config.PREMIUM_RATE_SP) + "<br1></font></td></tr>");
|
||||||
html.append("<tr><td>Drop Chance: <font color=\"LEVEL\"> x" + (Config.RATE_DEATH_DROP_CHANCE_MULTIPLIER * Config.RATE_DEATH_DROP_CHANCE_MULTIPLIER * Config.PREMIUM_RATE_DROP_CHANCE) + "<br1></font></td></tr>");
|
html.append("<tr><td>Drop Chance: <font color=\"LEVEL\"> x" + (Config.RATE_DEATH_DROP_CHANCE_MULTIPLIER * Config.RATE_DEATH_DROP_CHANCE_MULTIPLIER * Config.PREMIUM_RATE_DROP_CHANCE) + "<br1></font></td></tr>");
|
||||||
html.append("<tr><td>Drop Ammount: <font color=\"LEVEL\"> x" + (Config.RATE_DEATH_DROP_AMOUNT_MULTIPLIER * Config.PREMIUM_RATE_DROP_AMMOUNT) + "<br1></font></td></tr>");
|
html.append("<tr><td>Drop Amount: <font color=\"LEVEL\"> x" + (Config.RATE_DEATH_DROP_AMOUNT_MULTIPLIER * Config.PREMIUM_RATE_DROP_AMOUNT) + "<br1></font></td></tr>");
|
||||||
html.append("<tr><td>Spoil Chance: <font color=\"LEVEL\"> x" + (Config.RATE_CORPSE_DROP_CHANCE_MULTIPLIER * Config.PREMIUM_RATE_SPOIL_CHANCE) + "<br1></font></td></tr>");
|
html.append("<tr><td>Spoil Chance: <font color=\"LEVEL\"> x" + (Config.RATE_CORPSE_DROP_CHANCE_MULTIPLIER * Config.PREMIUM_RATE_SPOIL_CHANCE) + "<br1></font></td></tr>");
|
||||||
html.append("<tr><td>Spoil Ammount: <font color=\"LEVEL\"> x" + (Config.RATE_CORPSE_DROP_AMOUNT_MULTIPLIER * Config.PREMIUM_RATE_SPOIL_AMMOUNT) + "<br1></font></td></tr>");
|
html.append("<tr><td>Spoil Amount: <font color=\"LEVEL\"> x" + (Config.RATE_CORPSE_DROP_AMOUNT_MULTIPLIER * Config.PREMIUM_RATE_SPOIL_AMOUNT) + "<br1></font></td></tr>");
|
||||||
html.append("<tr><td> <font color=\"70FFCA\">1. Premium benefits CAN NOT BE TRANSFERED.<br1></font></td></tr>");
|
html.append("<tr><td> <font color=\"70FFCA\">1. Premium benefits CAN NOT BE TRANSFERED.<br1></font></td></tr>");
|
||||||
html.append("<tr><td> <font color=\"70FFCA\">2. Premium does not effect party members.<br1></font></td></tr>");
|
html.append("<tr><td> <font color=\"70FFCA\">2. Premium does not effect party members.<br1></font></td></tr>");
|
||||||
html.append("<tr><td> <font color=\"70FFCA\">3. Premium benefits effect ALL characters in same account.</font></td></tr>");
|
html.append("<tr><td> <font color=\"70FFCA\">3. Premium benefits effect ALL characters in same account.</font></td></tr>");
|
||||||
@@ -76,9 +76,9 @@ public class Premium implements IVoicedCommandHandler
|
|||||||
html.append("<tr><td>Rate XP: <font color=\"LEVEL\">x" + (Config.RATE_XP * Config.PREMIUM_RATE_XP) + " <br1></font></td></tr>");
|
html.append("<tr><td>Rate XP: <font color=\"LEVEL\">x" + (Config.RATE_XP * Config.PREMIUM_RATE_XP) + " <br1></font></td></tr>");
|
||||||
html.append("<tr><td>Rate SP: <font color=\"LEVEL\">x" + (Config.RATE_SP * Config.PREMIUM_RATE_SP) + " <br1></font></td></tr>");
|
html.append("<tr><td>Rate SP: <font color=\"LEVEL\">x" + (Config.RATE_SP * Config.PREMIUM_RATE_SP) + " <br1></font></td></tr>");
|
||||||
html.append("<tr><td>Drop Chance: <font color=\"LEVEL\">x" + (Config.RATE_DEATH_DROP_CHANCE_MULTIPLIER * Config.PREMIUM_RATE_DROP_CHANCE) + " <br1></font></td></tr>");
|
html.append("<tr><td>Drop Chance: <font color=\"LEVEL\">x" + (Config.RATE_DEATH_DROP_CHANCE_MULTIPLIER * Config.PREMIUM_RATE_DROP_CHANCE) + " <br1></font></td></tr>");
|
||||||
html.append("<tr><td>Drop Ammount: <font color=\"LEVEL\">x" + (Config.RATE_DEATH_DROP_AMOUNT_MULTIPLIER * Config.PREMIUM_RATE_DROP_AMMOUNT) + " <br1></font></td></tr>");
|
html.append("<tr><td>Drop Amount: <font color=\"LEVEL\">x" + (Config.RATE_DEATH_DROP_AMOUNT_MULTIPLIER * Config.PREMIUM_RATE_DROP_AMOUNT) + " <br1></font></td></tr>");
|
||||||
html.append("<tr><td>Spoil Chance: <font color=\"LEVEL\">x" + (Config.RATE_CORPSE_DROP_CHANCE_MULTIPLIER * Config.PREMIUM_RATE_SPOIL_CHANCE) + " <br1></font></td></tr>");
|
html.append("<tr><td>Spoil Chance: <font color=\"LEVEL\">x" + (Config.RATE_CORPSE_DROP_CHANCE_MULTIPLIER * Config.PREMIUM_RATE_SPOIL_CHANCE) + " <br1></font></td></tr>");
|
||||||
html.append("<tr><td>Spoil Ammount: <font color=\"LEVEL\">x" + (Config.RATE_CORPSE_DROP_AMOUNT_MULTIPLIER * Config.PREMIUM_RATE_SPOIL_AMMOUNT) + " <br1></font></td></tr>");
|
html.append("<tr><td>Spoil Amount: <font color=\"LEVEL\">x" + (Config.RATE_CORPSE_DROP_AMOUNT_MULTIPLIER * Config.PREMIUM_RATE_SPOIL_AMOUNT) + " <br1></font></td></tr>");
|
||||||
html.append("<tr><td>Expires: <font color=\"00A5FF\">" + String.valueOf(format.format(endDate)) + "</font></td></tr>");
|
html.append("<tr><td>Expires: <font color=\"00A5FF\">" + String.valueOf(format.format(endDate)) + "</font></td></tr>");
|
||||||
html.append("<tr><td>Current Date: <font color=\"70FFCA\">" + String.valueOf(format.format(System.currentTimeMillis())) + "<br><br></font></td></tr>");
|
html.append("<tr><td>Current Date: <font color=\"70FFCA\">" + String.valueOf(format.format(System.currentTimeMillis())) + "<br><br></font></td></tr>");
|
||||||
html.append("<tr><td><center>Premium Info & Rules<br></center></td></tr>");
|
html.append("<tr><td><center>Premium Info & Rules<br></center></td></tr>");
|
||||||
|
@@ -836,9 +836,11 @@ public final class Config
|
|||||||
public static float PREMIUM_RATE_SP;
|
public static float PREMIUM_RATE_SP;
|
||||||
public static Map<Integer, Float> PREMIUM_RATE_DROP_ITEMS_ID;
|
public static Map<Integer, Float> PREMIUM_RATE_DROP_ITEMS_ID;
|
||||||
public static float PREMIUM_RATE_DROP_CHANCE;
|
public static float PREMIUM_RATE_DROP_CHANCE;
|
||||||
public static float PREMIUM_RATE_DROP_AMMOUNT;
|
public static float PREMIUM_RATE_DROP_AMOUNT;
|
||||||
public static float PREMIUM_RATE_SPOIL_CHANCE;
|
public static float PREMIUM_RATE_SPOIL_CHANCE;
|
||||||
public static float PREMIUM_RATE_SPOIL_AMMOUNT;
|
public static float PREMIUM_RATE_SPOIL_AMOUNT;
|
||||||
|
public static Map<Integer, Float> PREMIUM_RATE_DROP_CHANCE_BY_ID;
|
||||||
|
public static Map<Integer, Float> PREMIUM_RATE_DROP_AMOUNT_BY_ID;
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
// NPC Settings
|
// NPC Settings
|
||||||
@@ -2653,9 +2655,63 @@ public final class Config
|
|||||||
PREMIUM_RATE_XP = CustomSettings.getFloat("PremiumRateXp", 2);
|
PREMIUM_RATE_XP = CustomSettings.getFloat("PremiumRateXp", 2);
|
||||||
PREMIUM_RATE_SP = CustomSettings.getFloat("PremiumRateSp", 2);
|
PREMIUM_RATE_SP = CustomSettings.getFloat("PremiumRateSp", 2);
|
||||||
PREMIUM_RATE_DROP_CHANCE = CustomSettings.getFloat("PremiumRateDropChance", 2);
|
PREMIUM_RATE_DROP_CHANCE = CustomSettings.getFloat("PremiumRateDropChance", 2);
|
||||||
PREMIUM_RATE_DROP_AMMOUNT = CustomSettings.getFloat("PremiumRateDropAmmount", 1);
|
PREMIUM_RATE_DROP_AMOUNT = CustomSettings.getFloat("PremiumRateDropAmount", 1);
|
||||||
PREMIUM_RATE_SPOIL_CHANCE = CustomSettings.getFloat("PremiumRateSpoilChance", 2);
|
PREMIUM_RATE_SPOIL_CHANCE = CustomSettings.getFloat("PremiumRateSpoilChance", 2);
|
||||||
PREMIUM_RATE_SPOIL_AMMOUNT = CustomSettings.getFloat("PremiumRateSpoilAmmount", 1);
|
PREMIUM_RATE_SPOIL_AMOUNT = CustomSettings.getFloat("PremiumRateSpoilAmount", 1);
|
||||||
|
String[] premiumDropChanceMultiplier = CustomSettings.getString("PremiumRateDropChanceByItemId", "").split(";");
|
||||||
|
PREMIUM_RATE_DROP_CHANCE_BY_ID = new HashMap<>(premiumDropChanceMultiplier.length);
|
||||||
|
if (!premiumDropChanceMultiplier[0].isEmpty())
|
||||||
|
{
|
||||||
|
for (String item : premiumDropChanceMultiplier)
|
||||||
|
{
|
||||||
|
String[] itemSplit = item.split(",");
|
||||||
|
if (itemSplit.length != 2)
|
||||||
|
{
|
||||||
|
_log.warning(StringUtil.concat("Config.load(): invalid config property -> PremiumRateDropChanceByItemId \"", item, "\""));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
PREMIUM_RATE_DROP_CHANCE_BY_ID.put(Integer.valueOf(itemSplit[0]), Float.valueOf(itemSplit[1]));
|
||||||
|
}
|
||||||
|
catch (NumberFormatException nfe)
|
||||||
|
{
|
||||||
|
if (!item.isEmpty())
|
||||||
|
{
|
||||||
|
_log.warning(StringUtil.concat("Config.load(): invalid config property -> PremiumRateDropChanceByItemId \"", item, "\""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String[] premiumDropAmountMultiplier = CustomSettings.getString("PremiumRateDropAmountByItemId", "").split(";");
|
||||||
|
PREMIUM_RATE_DROP_AMOUNT_BY_ID = new HashMap<>(premiumDropAmountMultiplier.length);
|
||||||
|
if (!premiumDropAmountMultiplier[0].isEmpty())
|
||||||
|
{
|
||||||
|
for (String item : premiumDropAmountMultiplier)
|
||||||
|
{
|
||||||
|
String[] itemSplit = item.split(",");
|
||||||
|
if (itemSplit.length != 2)
|
||||||
|
{
|
||||||
|
_log.warning(StringUtil.concat("Config.load(): invalid config property -> PremiumRateDropAmountByItemId \"", item, "\""));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
PREMIUM_RATE_DROP_AMOUNT_BY_ID.put(Integer.valueOf(itemSplit[0]), Float.valueOf(itemSplit[1]));
|
||||||
|
}
|
||||||
|
catch (NumberFormatException nfe)
|
||||||
|
{
|
||||||
|
if (!item.isEmpty())
|
||||||
|
{
|
||||||
|
_log.warning(StringUtil.concat("Config.load(): invalid config property -> PremiumRateDropAmountByItemId \"", item, "\""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Load PvP L2Properties file (if exists)
|
// Load PvP L2Properties file (if exists)
|
||||||
final PropertiesParser PVPSettings = new PropertiesParser(PVP_CONFIG_FILE);
|
final PropertiesParser PVPSettings = new PropertiesParser(PVP_CONFIG_FILE);
|
||||||
|
@@ -43,7 +43,7 @@ public class CorpseDropItem extends GeneralDropItem
|
|||||||
@Override
|
@Override
|
||||||
protected double getGlobalAmountMultiplier(boolean isPremium)
|
protected double getGlobalAmountMultiplier(boolean isPremium)
|
||||||
{
|
{
|
||||||
return isPremium ? Config.PREMIUM_RATE_SPOIL_AMMOUNT * Config.RATE_CORPSE_DROP_AMOUNT_MULTIPLIER : Config.RATE_CORPSE_DROP_AMOUNT_MULTIPLIER;
|
return isPremium ? Config.PREMIUM_RATE_SPOIL_AMOUNT * Config.RATE_CORPSE_DROP_AMOUNT_MULTIPLIER : Config.RATE_CORPSE_DROP_AMOUNT_MULTIPLIER;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -43,7 +43,7 @@ public class DeathDropItem extends GeneralDropItem
|
|||||||
@Override
|
@Override
|
||||||
protected double getGlobalAmountMultiplier(boolean isPremium)
|
protected double getGlobalAmountMultiplier(boolean isPremium)
|
||||||
{
|
{
|
||||||
return isPremium ? Config.PREMIUM_RATE_DROP_AMMOUNT * Config.RATE_DEATH_DROP_AMOUNT_MULTIPLIER : Config.RATE_DEATH_DROP_AMOUNT_MULTIPLIER;
|
return isPremium ? Config.PREMIUM_RATE_DROP_AMOUNT * Config.RATE_DEATH_DROP_AMOUNT_MULTIPLIER : Config.RATE_DEATH_DROP_AMOUNT_MULTIPLIER;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -69,7 +69,29 @@ public class GeneralDropItem implements IDropItem
|
|||||||
double multiplier = 1;
|
double multiplier = 1;
|
||||||
|
|
||||||
// individual drop amount
|
// individual drop amount
|
||||||
Float individualDropAmountMultiplier = Config.RATE_DROP_AMOUNT_MULTIPLIER.get(getItemId());
|
Float individualDropAmountMultiplier = null;
|
||||||
|
if (killer.getActingPlayer().hasPremiumStatus())
|
||||||
|
{
|
||||||
|
final Float normalMultiplier = Config.RATE_DROP_AMOUNT_MULTIPLIER.get(getItemId());
|
||||||
|
final Float premiumMultiplier = Config.PREMIUM_RATE_DROP_AMOUNT_BY_ID.get(getItemId());
|
||||||
|
if ((normalMultiplier != null) && (premiumMultiplier != null))
|
||||||
|
{
|
||||||
|
individualDropAmountMultiplier = normalMultiplier * premiumMultiplier;
|
||||||
|
}
|
||||||
|
else if (normalMultiplier != null)
|
||||||
|
{
|
||||||
|
individualDropAmountMultiplier = normalMultiplier;
|
||||||
|
}
|
||||||
|
else if (premiumMultiplier != null)
|
||||||
|
{
|
||||||
|
individualDropAmountMultiplier = premiumMultiplier;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
individualDropAmountMultiplier = Config.RATE_DROP_AMOUNT_MULTIPLIER.get(getItemId());
|
||||||
|
}
|
||||||
|
|
||||||
if (individualDropAmountMultiplier != null)
|
if (individualDropAmountMultiplier != null)
|
||||||
{
|
{
|
||||||
// individual amount list multiplier
|
// individual amount list multiplier
|
||||||
@@ -169,7 +191,29 @@ public class GeneralDropItem implements IDropItem
|
|||||||
double multiplier = 1;
|
double multiplier = 1;
|
||||||
|
|
||||||
// individual drop chance
|
// individual drop chance
|
||||||
Float individualDropChanceMultiplier = Config.RATE_DROP_CHANCE_MULTIPLIER.get(getItemId());
|
Float individualDropChanceMultiplier = null;
|
||||||
|
if (killer.getActingPlayer().hasPremiumStatus())
|
||||||
|
{
|
||||||
|
final Float normalMultiplier = Config.RATE_DROP_CHANCE_MULTIPLIER.get(getItemId());
|
||||||
|
final Float premiumMultiplier = Config.PREMIUM_RATE_DROP_CHANCE_BY_ID.get(getItemId());
|
||||||
|
if ((normalMultiplier != null) && (premiumMultiplier != null))
|
||||||
|
{
|
||||||
|
individualDropChanceMultiplier = normalMultiplier * premiumMultiplier;
|
||||||
|
}
|
||||||
|
else if (normalMultiplier != null)
|
||||||
|
{
|
||||||
|
individualDropChanceMultiplier = normalMultiplier;
|
||||||
|
}
|
||||||
|
else if (premiumMultiplier != null)
|
||||||
|
{
|
||||||
|
individualDropChanceMultiplier = premiumMultiplier;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
individualDropChanceMultiplier = Config.RATE_DROP_CHANCE_MULTIPLIER.get(getItemId());
|
||||||
|
}
|
||||||
|
|
||||||
if (individualDropChanceMultiplier != null)
|
if (individualDropChanceMultiplier != null)
|
||||||
{
|
{
|
||||||
multiplier *= individualDropChanceMultiplier;
|
multiplier *= individualDropChanceMultiplier;
|
||||||
|
@@ -240,6 +240,10 @@ public abstract class ItemContainer
|
|||||||
|
|
||||||
// Updates database
|
// Updates database
|
||||||
float adenaRate = Config.RATE_DROP_AMOUNT_MULTIPLIER.containsKey(Inventory.ADENA_ID) ? Config.RATE_DROP_AMOUNT_MULTIPLIER.get(Inventory.ADENA_ID) : 1;
|
float adenaRate = Config.RATE_DROP_AMOUNT_MULTIPLIER.containsKey(Inventory.ADENA_ID) ? Config.RATE_DROP_AMOUNT_MULTIPLIER.get(Inventory.ADENA_ID) : 1;
|
||||||
|
if (actor.hasPremiumStatus() && Config.PREMIUM_RATE_DROP_AMOUNT_BY_ID.containsKey(Inventory.ADENA_ID))
|
||||||
|
{
|
||||||
|
adenaRate *= Config.PREMIUM_RATE_DROP_AMOUNT_BY_ID.get(Inventory.ADENA_ID);
|
||||||
|
}
|
||||||
if ((item.getId() == Inventory.ADENA_ID) && (count < (10000 * adenaRate)))
|
if ((item.getId() == Inventory.ADENA_ID) && (count < (10000 * adenaRate)))
|
||||||
{
|
{
|
||||||
// Small adena changes won't be saved to database all the time
|
// Small adena changes won't be saved to database all the time
|
||||||
@@ -292,6 +296,10 @@ public abstract class ItemContainer
|
|||||||
// Updates database
|
// Updates database
|
||||||
// If Adena drop rate is not present it will be x1.
|
// If Adena drop rate is not present it will be x1.
|
||||||
float adenaRate = Config.RATE_DROP_AMOUNT_MULTIPLIER.containsKey(Inventory.ADENA_ID) ? Config.RATE_DROP_AMOUNT_MULTIPLIER.get(Inventory.ADENA_ID) : 1;
|
float adenaRate = Config.RATE_DROP_AMOUNT_MULTIPLIER.containsKey(Inventory.ADENA_ID) ? Config.RATE_DROP_AMOUNT_MULTIPLIER.get(Inventory.ADENA_ID) : 1;
|
||||||
|
if (actor.hasPremiumStatus() && Config.PREMIUM_RATE_DROP_AMOUNT_BY_ID.containsKey(Inventory.ADENA_ID))
|
||||||
|
{
|
||||||
|
adenaRate *= Config.PREMIUM_RATE_DROP_AMOUNT_BY_ID.get(Inventory.ADENA_ID);
|
||||||
|
}
|
||||||
if ((itemId == Inventory.ADENA_ID) && (count < (10000 * adenaRate)))
|
if ((itemId == Inventory.ADENA_ID) && (count < (10000 * adenaRate)))
|
||||||
{
|
{
|
||||||
// Small adena changes won't be saved to database all the time
|
// Small adena changes won't be saved to database all the time
|
||||||
|
Reference in New Issue
Block a user