dist/game/config/L2JMods.properties
@@ -30,11 +30,20 @@ ChampionHp = 8
# Hp Regen Multiplier for Champion mobs.
ChampionHpRegen = 1.0
-# Standard rewards multiplier for Champion mobs.
-ChampionRewards = 8
+# Exp/Sp rewards multiplier for Champion mobs.
+ChampionRewardsExpSp = 8.0
-# Adena & Seal Stone rewards multiplier for Champion mobs.
-ChampionAdenasRewards = 1.0
+# Standard rewards chance multiplier for Champion mobs.
+ChampionRewardsChance = 8.0
+
+# Standard rewards amount multiplier for Champion mobs.
+ChampionRewardsAmount = 1.0
+
+# Adena & Seal Stone rewards chance multiplier for Champion mobs.
+ChampionAdenasRewardsChance = 1.0
+
+# Adena & Seal Stone rewards amount multiplier for Champion mobs.
+ChampionAdenasRewardsAmount = 1.0
src/main/java/com/l2jserver/Config.java
@@ -674,8 +674,11 @@
public static int L2JMOD_CHAMP_MIN_LVL;
public static int L2JMOD_CHAMP_MAX_LVL;
public static int L2JMOD_CHAMPION_HP;
- public static int L2JMOD_CHAMPION_REWARDS;
- public static float L2JMOD_CHAMPION_ADENAS_REWARDS;
+ public static float L2JMOD_CHAMPION_REWARDS_EXP_SP;
+ public static float L2JMOD_CHAMPION_REWARDS_CHANCE;
+ public static float L2JMOD_CHAMPION_REWARDS_AMOUNT;
+ public static float L2JMOD_CHAMPION_ADENAS_REWARDS_CHANCE;
+ public static float L2JMOD_CHAMPION_ADENAS_REWARDS_AMOUNT;
public static float L2JMOD_CHAMPION_HP_REGEN;
public static float L2JMOD_CHAMPION_ATK;
public static float L2JMOD_CHAMPION_SPD_ATK;
@@ -2165,8 +2168,11 @@ else if (MIN_BLOCK_CHECKER_TEAM_MEMBERS > 6)
L2JMOD_CHAMP_MAX_LVL = L2JModSettings.getInt("ChampionMaxLevel", 60);
L2JMOD_CHAMPION_HP = L2JModSettings.getInt("ChampionHp", 7);
L2JMOD_CHAMPION_HP_REGEN = L2JModSettings.getFloat("ChampionHpRegen", 1);
- L2JMOD_CHAMPION_REWARDS = L2JModSettings.getInt("ChampionRewards", 8);
- L2JMOD_CHAMPION_ADENAS_REWARDS = L2JModSettings.getFloat("ChampionAdenasRewards", 1);
+ L2JMOD_CHAMPION_REWARDS_EXP_SP = L2JModSettings.getFloat("ChampionRewardsExpSp", 8);
+ L2JMOD_CHAMPION_REWARDS_CHANCE = L2JModSettings.getFloat("ChampionRewardsChance", 8);
+ L2JMOD_CHAMPION_REWARDS_AMOUNT = L2JModSettings.getFloat("ChampionRewardsAmount", 1);
+ L2JMOD_CHAMPION_ADENAS_REWARDS_CHANCE = L2JModSettings.getFloat("ChampionAdenasRewardsChance", 1);
+ L2JMOD_CHAMPION_ADENAS_REWARDS_AMOUNT = L2JModSettings.getFloat("ChampionAdenasRewardsAmount", 1);
L2JMOD_CHAMPION_ATK = L2JModSettings.getFloat("ChampionAtk", 1);
L2JMOD_CHAMPION_SPD_ATK = L2JModSettings.getFloat("ChampionSpdAtk", 1);
L2JMOD_CHAMPION_REWARD_LOWER_LVL_ITEM_CHANCE = L2JModSettings.getInt("ChampionRewardLowerLvlItemChance", 0);
@@ -3451,11 +3457,20 @@ public static boolean setParameterValue(String pName, String pValue)
case "championhpregen":
L2JMOD_CHAMPION_HP_REGEN = Float.parseFloat(pValue);
break;
- case "championrewards":
- L2JMOD_CHAMPION_REWARDS = Integer.parseInt(pValue);
+ case "championrewardsexpsp":
+ L2JMOD_CHAMPION_REWARDS_EXP_SP = Float.parseFloat(pValue);
break;
- case "championadenasrewards":
- L2JMOD_CHAMPION_ADENAS_REWARDS = Float.parseFloat(pValue);
+ case "championrewardschance":
+ L2JMOD_CHAMPION_REWARDS_CHANCE = Float.parseFloat(pValue);
+ break;
+ case "championrewardsamount":
+ L2JMOD_CHAMPION_REWARDS_AMOUNT = Float.parseFloat(pValue);
+ break;
+ case "championadenasrewardschance":
+ L2JMOD_CHAMPION_ADENAS_REWARDS_CHANCE = Float.parseFloat(pValue);
+ break;
+ case "championadenasrewardsamount":
+ L2JMOD_CHAMPION_ADENAS_REWARDS_AMOUNT = Float.parseFloat(pValue);
break;
case "championatk":
L2JMOD_CHAMPION_ATK = Float.parseFloat(pValue);
src/main/java/com/l2jserver/gameserver/model/actor/L2Attackable.java
@@ -472,8 +472,8 @@ protected void calculateRewards(L2Character lastAttacker)
if (Config.L2JMOD_CHAMPION_ENABLE && isChampion())
{
- exp *= Config.L2JMOD_CHAMPION_REWARDS;
- sp *= Config.L2JMOD_CHAMPION_REWARDS;
+ exp *= Config.L2JMOD_CHAMPION_REWARDS_EXP_SP;
+ sp *= Config.L2JMOD_CHAMPION_REWARDS_EXP_SP;
}
exp *= penalty;
@@ -581,8 +581,8 @@ protected void calculateRewards(L2Character lastAttacker)
if (Config.L2JMOD_CHAMPION_ENABLE && isChampion())
{
- exp *= Config.L2JMOD_CHAMPION_REWARDS;
- sp *= Config.L2JMOD_CHAMPION_REWARDS;
+ exp *= Config.L2JMOD_CHAMPION_REWARDS_EXP_SP;
+ sp *= Config.L2JMOD_CHAMPION_REWARDS_EXP_SP;
}
exp *= partyMul;
@@ -989,7 +989,7 @@ public void doItemDrop(L2NpcTemplate npcTemplate, L2Character mainDamageDealer)
}
// Broadcast message if RaidBoss was defeated
- if (isRaid() && !isRaidMinion() && drop.getCount() > 0)
+ if (isRaid() && !isRaidMinion() && (drop.getCount() > 0))
{
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_DIED_DROPPED_S3_S2);
sm.addCharName(this);
src/main/java/com/l2jserver/gameserver/model/drops/strategy/IAmountMultiplierStrategy.java
@@ -22,6 +22,7 @@
import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.drops.GeneralDropItem;
+import com.l2jserver.gameserver.model.itemcontainer.Inventory;
/**
* @author Battlecruiser
@@ -37,7 +38,10 @@ public static IAmountMultiplierStrategy DEFAULT_STRATEGY(final double defaultMul
return (item, victim) ->
{
double multiplier = 1;
-
+ if (victim.isChampion())
+ {
+ multiplier *= item.getItemId() != Inventory.ADENA_ID ? Config.L2JMOD_CHAMPION_REWARDS_AMOUNT : Config.L2JMOD_CHAMPION_ADENAS_REWARDS_AMOUNT;
+ }
Float dropAmountMultiplier = Config.RATE_DROP_AMOUNT_MULTIPLIER.get(item.getItemId());
if (dropAmountMultiplier != null)
{
src/main/java/com/l2jserver/gameserver/model/drops/strategy/IChanceMultiplierStrategy.java
@@ -38,11 +38,11 @@
double championmult;
if ((item.getItemId() == Inventory.ADENA_ID) || (item.getItemId() == Inventory.ANCIENT_ADENA_ID))
{
- championmult = Config.L2JMOD_CHAMPION_ADENAS_REWARDS;
+ championmult = Config.L2JMOD_CHAMPION_ADENAS_REWARDS_CHANCE;
}
else
{
- championmult = Config.L2JMOD_CHAMPION_REWARDS;
+ championmult = Config.L2JMOD_CHAMPION_REWARDS_CHANCE;
}
return (Config.L2JMOD_CHAMPION_ENABLE && (victim != null) && victim.isChampion()) ? (Config.RATE_QUEST_DROP * championmult) : Config.RATE_QUEST_DROP;
@@ -55,7 +55,7 @@ public static IChanceMultiplierStrategy DEFAULT_STRATEGY(final double defaultMul
float multiplier = 1;
if (victim.isChampion())
{
- multiplier *= item.getItemId() != Inventory.ADENA_ID ? Config.L2JMOD_CHAMPION_REWARDS : Config.L2JMOD_CHAMPION_ADENAS_REWARDS;
+ multiplier *= item.getItemId() != Inventory.ADENA_ID ? Config.L2JMOD_CHAMPION_REWARDS_CHANCE : Config.L2JMOD_CHAMPION_ADENAS_REWARDS_CHANCE;
}
Float dropChanceMultiplier = Config.RATE_DROP_CHANCE_MULTIPLIER.get(item.getItemId());
if (dropChanceMultiplier != null)
src/main/java/com/l2jserver/gameserver/model/events/AbstractScript.java
@@ -2289,16 +2289,17 @@ public static boolean giveItemRandomly(L2PcInstance player, L2Npc npc, int itemI
dropChance *= Config.RATE_QUEST_DROP; // TODO separate configs for rate and amount
if ((npc != null) && Config.L2JMOD_CHAMPION_ENABLE && npc.isChampion())
{
- dropChance *= Config.L2JMOD_CHAMPION_REWARDS;
if ((itemId == Inventory.ADENA_ID) || (itemId == Inventory.ANCIENT_ADENA_ID))
{
- minAmount *= Config.L2JMOD_CHAMPION_ADENAS_REWARDS;
- maxAmount *= Config.L2JMOD_CHAMPION_ADENAS_REWARDS;
+ dropChance *= Config.L2JMOD_CHAMPION_ADENAS_REWARDS_CHANCE;
+ minAmount *= Config.L2JMOD_CHAMPION_ADENAS_REWARDS_AMOUNT;
+ maxAmount *= Config.L2JMOD_CHAMPION_ADENAS_REWARDS_AMOUNT;
}
else
{
- minAmount *= Config.L2JMOD_CHAMPION_REWARDS;
- maxAmount *= Config.L2JMOD_CHAMPION_REWARDS;
+ dropChance *= Config.L2JMOD_CHAMPION_REWARDS_CHANCE;
+ minAmount *= Config.L2JMOD_CHAMPION_REWARDS_AMOUNT;
+ maxAmount *= Config.L2JMOD_CHAMPION_REWARDS_AMOUNT;
}
}
By Avanael92