Added configurable limits for PAtk and MAtk.
This commit is contained in:
@@ -223,6 +223,14 @@ MaxSpBonus = 0
|
|||||||
# Default: 300
|
# Default: 300
|
||||||
MaxRunSpeed = 300
|
MaxRunSpeed = 300
|
||||||
|
|
||||||
|
# Maximum character Physical Attack.
|
||||||
|
# Default: 999999
|
||||||
|
MaxPAtk = 999999
|
||||||
|
|
||||||
|
# Maximum character Magic Attack.
|
||||||
|
# Default: 999999
|
||||||
|
MaxMAtk = 999999
|
||||||
|
|
||||||
# Maximum character Physical Critical Rate. (10 = 1%)
|
# Maximum character Physical Critical Rate. (10 = 1%)
|
||||||
# Default: 500
|
# Default: 500
|
||||||
MaxPCritRate = 500
|
MaxPCritRate = 500
|
||||||
|
|||||||
@@ -350,7 +350,7 @@
|
|||||||
<value level="1">0</value>
|
<value level="1">0</value>
|
||||||
<value level="2">0</value>
|
<value level="2">0</value>
|
||||||
<value level="3">999900</value>
|
<value level="3">999900</value>
|
||||||
<value level="4">999900</value> <!-- Retail value: 0 -->
|
<value level="4">999999</value> <!-- Retail value: 0 -->
|
||||||
</amount>
|
</amount>
|
||||||
<mode>PER</mode>
|
<mode>PER</mode>
|
||||||
</effect>
|
</effect>
|
||||||
@@ -428,6 +428,15 @@
|
|||||||
<mode>PER</mode>
|
<mode>PER</mode>
|
||||||
<magicType>1</magicType>
|
<magicType>1</magicType>
|
||||||
</effect>
|
</effect>
|
||||||
|
<effect name="MAtk"> <!-- custom -->
|
||||||
|
<amount>
|
||||||
|
<value level="1">0</value>
|
||||||
|
<value level="2">0</value>
|
||||||
|
<value level="3">999900</value>
|
||||||
|
<value level="4">999999</value>
|
||||||
|
</amount>
|
||||||
|
<mode>PER</mode>
|
||||||
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="7030" toLevel="1" name="Summon King Bugbear">
|
<skill id="7030" toLevel="1" name="Summon King Bugbear">
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ public final class Config
|
|||||||
public static double MAX_BONUS_EXP;
|
public static double MAX_BONUS_EXP;
|
||||||
public static double MAX_BONUS_SP;
|
public static double MAX_BONUS_SP;
|
||||||
public static int MAX_RUN_SPEED;
|
public static int MAX_RUN_SPEED;
|
||||||
|
public static int MAX_PATK;
|
||||||
|
public static int MAX_MATK;
|
||||||
public static int MAX_PCRIT_RATE;
|
public static int MAX_PCRIT_RATE;
|
||||||
public static int MAX_MCRIT_RATE;
|
public static int MAX_MCRIT_RATE;
|
||||||
public static int MAX_PATK_SPEED;
|
public static int MAX_PATK_SPEED;
|
||||||
@@ -1444,6 +1446,8 @@ public final class Config
|
|||||||
MAX_BONUS_EXP = Character.getDouble("MaxExpBonus", 0);
|
MAX_BONUS_EXP = Character.getDouble("MaxExpBonus", 0);
|
||||||
MAX_BONUS_SP = Character.getDouble("MaxSpBonus", 0);
|
MAX_BONUS_SP = Character.getDouble("MaxSpBonus", 0);
|
||||||
MAX_RUN_SPEED = Character.getInt("MaxRunSpeed", 300);
|
MAX_RUN_SPEED = Character.getInt("MaxRunSpeed", 300);
|
||||||
|
MAX_PATK = Character.getInt("MaxPAtk", 999999);
|
||||||
|
MAX_MATK = Character.getInt("MaxMAtk", 999999);
|
||||||
MAX_PCRIT_RATE = Character.getInt("MaxPCritRate", 500);
|
MAX_PCRIT_RATE = Character.getInt("MaxPCritRate", 500);
|
||||||
MAX_MCRIT_RATE = Character.getInt("MaxMCritRate", 200);
|
MAX_MCRIT_RATE = Character.getInt("MaxMCritRate", 200);
|
||||||
MAX_PATK_SPEED = Character.getInt("MaxPAtkSpeed", 1500);
|
MAX_PATK_SPEED = Character.getInt("MaxPAtkSpeed", 1500);
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class MAttackFinalizer implements IStatsFunction
|
|||||||
final double chaMod = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
final double chaMod = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
||||||
final double intBonus = BaseStats.INT.calcBonus(creature);
|
final double intBonus = BaseStats.INT.calcBonus(creature);
|
||||||
baseValue *= Math.pow(intBonus, 2) * Math.pow(creature.getLevelMod(), 2) * chaMod;
|
baseValue *= Math.pow(intBonus, 2) * Math.pow(creature.getLevelMod(), 2) * chaMod;
|
||||||
return Stats.defaultValue(creature, stat, baseValue);
|
return Math.min(Stats.defaultValue(creature, stat, baseValue), Config.MAX_MATK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class PAttackFinalizer implements IStatsFunction
|
|||||||
final double chaBonus = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
final double chaBonus = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
||||||
final double strBonus = creature.getSTR() > 0 ? BaseStats.STR.calcBonus(creature) : 1.;
|
final double strBonus = creature.getSTR() > 0 ? BaseStats.STR.calcBonus(creature) : 1.;
|
||||||
baseValue *= strBonus * creature.getLevelMod() * chaBonus;
|
baseValue *= strBonus * creature.getLevelMod() * chaBonus;
|
||||||
return Stats.defaultValue(creature, stat, baseValue);
|
return Math.min(Stats.defaultValue(creature, stat, baseValue), Config.MAX_PATK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -223,6 +223,14 @@ MaxSpBonus = 0
|
|||||||
# Default: 300
|
# Default: 300
|
||||||
MaxRunSpeed = 300
|
MaxRunSpeed = 300
|
||||||
|
|
||||||
|
# Maximum character Physical Attack.
|
||||||
|
# Default: 999999
|
||||||
|
MaxPAtk = 999999
|
||||||
|
|
||||||
|
# Maximum character Magic Attack.
|
||||||
|
# Default: 999999
|
||||||
|
MaxMAtk = 999999
|
||||||
|
|
||||||
# Maximum character Physical Critical Rate. (10 = 1%)
|
# Maximum character Physical Critical Rate. (10 = 1%)
|
||||||
# Default: 500
|
# Default: 500
|
||||||
MaxPCritRate = 500
|
MaxPCritRate = 500
|
||||||
|
|||||||
@@ -350,7 +350,7 @@
|
|||||||
<value level="1">0</value>
|
<value level="1">0</value>
|
||||||
<value level="2">0</value>
|
<value level="2">0</value>
|
||||||
<value level="3">999900</value>
|
<value level="3">999900</value>
|
||||||
<value level="4">999900</value> <!-- Retail value: 0 -->
|
<value level="4">999999</value> <!-- Retail value: 0 -->
|
||||||
</amount>
|
</amount>
|
||||||
<mode>PER</mode>
|
<mode>PER</mode>
|
||||||
</effect>
|
</effect>
|
||||||
@@ -428,6 +428,15 @@
|
|||||||
<mode>PER</mode>
|
<mode>PER</mode>
|
||||||
<magicType>1</magicType>
|
<magicType>1</magicType>
|
||||||
</effect>
|
</effect>
|
||||||
|
<effect name="MAtk"> <!-- custom -->
|
||||||
|
<amount>
|
||||||
|
<value level="1">0</value>
|
||||||
|
<value level="2">0</value>
|
||||||
|
<value level="3">999900</value>
|
||||||
|
<value level="4">999999</value>
|
||||||
|
</amount>
|
||||||
|
<mode>PER</mode>
|
||||||
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="7030" toLevel="1" name="Summon King Bugbear">
|
<skill id="7030" toLevel="1" name="Summon King Bugbear">
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ public final class Config
|
|||||||
public static double MAX_BONUS_EXP;
|
public static double MAX_BONUS_EXP;
|
||||||
public static double MAX_BONUS_SP;
|
public static double MAX_BONUS_SP;
|
||||||
public static int MAX_RUN_SPEED;
|
public static int MAX_RUN_SPEED;
|
||||||
|
public static int MAX_PATK;
|
||||||
|
public static int MAX_MATK;
|
||||||
public static int MAX_PCRIT_RATE;
|
public static int MAX_PCRIT_RATE;
|
||||||
public static int MAX_MCRIT_RATE;
|
public static int MAX_MCRIT_RATE;
|
||||||
public static int MAX_PATK_SPEED;
|
public static int MAX_PATK_SPEED;
|
||||||
@@ -1446,6 +1448,8 @@ public final class Config
|
|||||||
MAX_BONUS_EXP = Character.getDouble("MaxExpBonus", 0);
|
MAX_BONUS_EXP = Character.getDouble("MaxExpBonus", 0);
|
||||||
MAX_BONUS_SP = Character.getDouble("MaxSpBonus", 0);
|
MAX_BONUS_SP = Character.getDouble("MaxSpBonus", 0);
|
||||||
MAX_RUN_SPEED = Character.getInt("MaxRunSpeed", 300);
|
MAX_RUN_SPEED = Character.getInt("MaxRunSpeed", 300);
|
||||||
|
MAX_PATK = Character.getInt("MaxPAtk", 999999);
|
||||||
|
MAX_MATK = Character.getInt("MaxMAtk", 999999);
|
||||||
MAX_PCRIT_RATE = Character.getInt("MaxPCritRate", 500);
|
MAX_PCRIT_RATE = Character.getInt("MaxPCritRate", 500);
|
||||||
MAX_MCRIT_RATE = Character.getInt("MaxMCritRate", 200);
|
MAX_MCRIT_RATE = Character.getInt("MaxMCritRate", 200);
|
||||||
MAX_PATK_SPEED = Character.getInt("MaxPAtkSpeed", 1500);
|
MAX_PATK_SPEED = Character.getInt("MaxPAtkSpeed", 1500);
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class MAttackFinalizer implements IStatsFunction
|
|||||||
final double chaMod = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
final double chaMod = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
||||||
final double intBonus = BaseStats.INT.calcBonus(creature);
|
final double intBonus = BaseStats.INT.calcBonus(creature);
|
||||||
baseValue *= Math.pow(intBonus, 2) * Math.pow(creature.getLevelMod(), 2) * chaMod;
|
baseValue *= Math.pow(intBonus, 2) * Math.pow(creature.getLevelMod(), 2) * chaMod;
|
||||||
return Stats.defaultValue(creature, stat, baseValue);
|
return Math.min(Stats.defaultValue(creature, stat, baseValue), Config.MAX_MATK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class PAttackFinalizer implements IStatsFunction
|
|||||||
final double chaBonus = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
final double chaBonus = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
||||||
final double strBonus = creature.getSTR() > 0 ? BaseStats.STR.calcBonus(creature) : 1.;
|
final double strBonus = creature.getSTR() > 0 ? BaseStats.STR.calcBonus(creature) : 1.;
|
||||||
baseValue *= strBonus * creature.getLevelMod() * chaBonus;
|
baseValue *= strBonus * creature.getLevelMod() * chaBonus;
|
||||||
return Stats.defaultValue(creature, stat, baseValue);
|
return Math.min(Stats.defaultValue(creature, stat, baseValue), Config.MAX_PATK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -223,6 +223,14 @@ MaxSpBonus = 0
|
|||||||
# Default: 300
|
# Default: 300
|
||||||
MaxRunSpeed = 300
|
MaxRunSpeed = 300
|
||||||
|
|
||||||
|
# Maximum character Physical Attack.
|
||||||
|
# Default: 999999
|
||||||
|
MaxPAtk = 999999
|
||||||
|
|
||||||
|
# Maximum character Magic Attack.
|
||||||
|
# Default: 999999
|
||||||
|
MaxMAtk = 999999
|
||||||
|
|
||||||
# Maximum character Physical Critical Rate. (10 = 1%)
|
# Maximum character Physical Critical Rate. (10 = 1%)
|
||||||
# Default: 500
|
# Default: 500
|
||||||
MaxPCritRate = 500
|
MaxPCritRate = 500
|
||||||
|
|||||||
@@ -350,7 +350,7 @@
|
|||||||
<value level="1">0</value>
|
<value level="1">0</value>
|
||||||
<value level="2">0</value>
|
<value level="2">0</value>
|
||||||
<value level="3">999900</value>
|
<value level="3">999900</value>
|
||||||
<value level="4">999900</value> <!-- Retail value: 0 -->
|
<value level="4">999999</value> <!-- Retail value: 0 -->
|
||||||
</amount>
|
</amount>
|
||||||
<mode>PER</mode>
|
<mode>PER</mode>
|
||||||
</effect>
|
</effect>
|
||||||
@@ -428,6 +428,15 @@
|
|||||||
<mode>PER</mode>
|
<mode>PER</mode>
|
||||||
<magicType>1</magicType>
|
<magicType>1</magicType>
|
||||||
</effect>
|
</effect>
|
||||||
|
<effect name="MAtk"> <!-- custom -->
|
||||||
|
<amount>
|
||||||
|
<value level="1">0</value>
|
||||||
|
<value level="2">0</value>
|
||||||
|
<value level="3">999900</value>
|
||||||
|
<value level="4">999999</value>
|
||||||
|
</amount>
|
||||||
|
<mode>PER</mode>
|
||||||
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="7030" toLevel="1" name="Summon King Bugbear">
|
<skill id="7030" toLevel="1" name="Summon King Bugbear">
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ public final class Config
|
|||||||
public static double MAX_BONUS_EXP;
|
public static double MAX_BONUS_EXP;
|
||||||
public static double MAX_BONUS_SP;
|
public static double MAX_BONUS_SP;
|
||||||
public static int MAX_RUN_SPEED;
|
public static int MAX_RUN_SPEED;
|
||||||
|
public static int MAX_PATK;
|
||||||
|
public static int MAX_MATK;
|
||||||
public static int MAX_PCRIT_RATE;
|
public static int MAX_PCRIT_RATE;
|
||||||
public static int MAX_MCRIT_RATE;
|
public static int MAX_MCRIT_RATE;
|
||||||
public static int MAX_PATK_SPEED;
|
public static int MAX_PATK_SPEED;
|
||||||
@@ -1446,6 +1448,8 @@ public final class Config
|
|||||||
MAX_BONUS_EXP = Character.getDouble("MaxExpBonus", 0);
|
MAX_BONUS_EXP = Character.getDouble("MaxExpBonus", 0);
|
||||||
MAX_BONUS_SP = Character.getDouble("MaxSpBonus", 0);
|
MAX_BONUS_SP = Character.getDouble("MaxSpBonus", 0);
|
||||||
MAX_RUN_SPEED = Character.getInt("MaxRunSpeed", 300);
|
MAX_RUN_SPEED = Character.getInt("MaxRunSpeed", 300);
|
||||||
|
MAX_PATK = Character.getInt("MaxPAtk", 999999);
|
||||||
|
MAX_MATK = Character.getInt("MaxMAtk", 999999);
|
||||||
MAX_PCRIT_RATE = Character.getInt("MaxPCritRate", 500);
|
MAX_PCRIT_RATE = Character.getInt("MaxPCritRate", 500);
|
||||||
MAX_MCRIT_RATE = Character.getInt("MaxMCritRate", 200);
|
MAX_MCRIT_RATE = Character.getInt("MaxMCritRate", 200);
|
||||||
MAX_PATK_SPEED = Character.getInt("MaxPAtkSpeed", 1500);
|
MAX_PATK_SPEED = Character.getInt("MaxPAtkSpeed", 1500);
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class MAttackFinalizer implements IStatsFunction
|
|||||||
final double chaMod = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
final double chaMod = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
||||||
final double intBonus = BaseStats.INT.calcBonus(creature);
|
final double intBonus = BaseStats.INT.calcBonus(creature);
|
||||||
baseValue *= Math.pow(intBonus, 2) * Math.pow(creature.getLevelMod(), 2) * chaMod;
|
baseValue *= Math.pow(intBonus, 2) * Math.pow(creature.getLevelMod(), 2) * chaMod;
|
||||||
return Stats.defaultValue(creature, stat, baseValue);
|
return Math.min(Stats.defaultValue(creature, stat, baseValue), Config.MAX_MATK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class PAttackFinalizer implements IStatsFunction
|
|||||||
final double chaBonus = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
final double chaBonus = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
||||||
final double strBonus = creature.getSTR() > 0 ? BaseStats.STR.calcBonus(creature) : 1.;
|
final double strBonus = creature.getSTR() > 0 ? BaseStats.STR.calcBonus(creature) : 1.;
|
||||||
baseValue *= strBonus * creature.getLevelMod() * chaBonus;
|
baseValue *= strBonus * creature.getLevelMod() * chaBonus;
|
||||||
return Stats.defaultValue(creature, stat, baseValue);
|
return Math.min(Stats.defaultValue(creature, stat, baseValue), Config.MAX_PATK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -314,6 +314,14 @@ MaxSpBonus = 3.5
|
|||||||
# Default: 250
|
# Default: 250
|
||||||
MaxRunSpeed = 250
|
MaxRunSpeed = 250
|
||||||
|
|
||||||
|
# Maximum character Physical Attack.
|
||||||
|
# Default: 999999
|
||||||
|
MaxPAtk = 999999
|
||||||
|
|
||||||
|
# Maximum character Magic Attack.
|
||||||
|
# Default: 999999
|
||||||
|
MaxMAtk = 999999
|
||||||
|
|
||||||
# Maximum character Physical Critical Rate. (10 = 1%)
|
# Maximum character Physical Critical Rate. (10 = 1%)
|
||||||
# Default: 500
|
# Default: 500
|
||||||
MaxPCritRate = 500
|
MaxPCritRate = 500
|
||||||
|
|||||||
@@ -262,7 +262,8 @@
|
|||||||
<!-- GM Skill -->
|
<!-- GM Skill -->
|
||||||
<table name="#amount"> 1 1 1 1 </table>
|
<table name="#amount"> 1 1 1 1 </table>
|
||||||
<table name="#mAtkSpd"> 2 3 4 5 </table>
|
<table name="#mAtkSpd"> 2 3 4 5 </table>
|
||||||
<table name="#pAtk"> 2500 5000 7500 10000 </table>
|
<table name="#pAtk"> 250 500 750 1500 </table>
|
||||||
|
<table name="#mAtk"> 250 500 750 1500 </table>
|
||||||
<table name="#pAtkSpd"> 2 3 4 5 </table>
|
<table name="#pAtkSpd"> 2 3 4 5 </table>
|
||||||
<table name="#reuse"> 0.01 0.01 0.01 0.01 </table>
|
<table name="#reuse"> 0.01 0.01 0.01 0.01 </table>
|
||||||
<table name="#runSpd"> 2 3 4 5 </table>
|
<table name="#runSpd"> 2 3 4 5 </table>
|
||||||
@@ -278,6 +279,7 @@
|
|||||||
<mul stat="runSpd" val="#runSpd" />
|
<mul stat="runSpd" val="#runSpd" />
|
||||||
<mul stat="mAtkSpd" val="#mAtkSpd" />
|
<mul stat="mAtkSpd" val="#mAtkSpd" />
|
||||||
<mul stat="pAtk" val="#pAtk" />
|
<mul stat="pAtk" val="#pAtk" />
|
||||||
|
<mul stat="mAtk" val="#mAtk" /> <!-- custom -->
|
||||||
<mul stat="pReuse" val="#reuse" />
|
<mul stat="pReuse" val="#reuse" />
|
||||||
<mul stat="mReuse" val="#reuse" />
|
<mul stat="mReuse" val="#reuse" />
|
||||||
<mul stat="regHp" val="#amount" />
|
<mul stat="regHp" val="#amount" />
|
||||||
|
|||||||
@@ -155,6 +155,8 @@ public final class Config
|
|||||||
public static double MAX_BONUS_EXP;
|
public static double MAX_BONUS_EXP;
|
||||||
public static double MAX_BONUS_SP;
|
public static double MAX_BONUS_SP;
|
||||||
public static int MAX_RUN_SPEED;
|
public static int MAX_RUN_SPEED;
|
||||||
|
public static int MAX_PATK;
|
||||||
|
public static int MAX_MATK;
|
||||||
public static int MAX_PCRIT_RATE;
|
public static int MAX_PCRIT_RATE;
|
||||||
public static int MAX_MCRIT_RATE;
|
public static int MAX_MCRIT_RATE;
|
||||||
public static int MAX_PATK_SPEED;
|
public static int MAX_PATK_SPEED;
|
||||||
@@ -1547,6 +1549,8 @@ public final class Config
|
|||||||
MAX_BONUS_EXP = character.getDouble("MaxExpBonus", 3.5);
|
MAX_BONUS_EXP = character.getDouble("MaxExpBonus", 3.5);
|
||||||
MAX_BONUS_SP = character.getDouble("MaxSpBonus", 3.5);
|
MAX_BONUS_SP = character.getDouble("MaxSpBonus", 3.5);
|
||||||
MAX_RUN_SPEED = character.getInt("MaxRunSpeed", 250);
|
MAX_RUN_SPEED = character.getInt("MaxRunSpeed", 250);
|
||||||
|
MAX_PATK = character.getInt("MaxPAtk", 999999);
|
||||||
|
MAX_MATK = character.getInt("MaxMAtk", 999999);
|
||||||
MAX_PCRIT_RATE = character.getInt("MaxPCritRate", 500);
|
MAX_PCRIT_RATE = character.getInt("MaxPCritRate", 500);
|
||||||
MAX_MCRIT_RATE = character.getInt("MaxMCritRate", 200);
|
MAX_MCRIT_RATE = character.getInt("MaxMCritRate", 200);
|
||||||
MAX_PATK_SPEED = character.getInt("MaxPAtkSpeed", 1500);
|
MAX_PATK_SPEED = character.getInt("MaxPAtkSpeed", 1500);
|
||||||
|
|||||||
@@ -287,7 +287,7 @@ public class CharStat
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Calculate modifiers Magic Attack
|
// Calculate modifiers Magic Attack
|
||||||
return calcStat(Stats.MAGIC_ATTACK, _activeChar.getTemplate().getBaseMAtk() * bonusAtk, target, skill);
|
return Math.min(calcStat(Stats.MAGIC_ATTACK, _activeChar.getTemplate().getBaseMAtk() * bonusAtk, target, skill), Config.MAX_MATK);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -512,7 +512,7 @@ public class CharStat
|
|||||||
{
|
{
|
||||||
bonusAtk *= Config.RAID_PATTACK_MULTIPLIER;
|
bonusAtk *= Config.RAID_PATTACK_MULTIPLIER;
|
||||||
}
|
}
|
||||||
return calcStat(Stats.POWER_ATTACK, _activeChar.getTemplate().getBasePAtk() * bonusAtk, target, null);
|
return Math.min(calcStat(Stats.POWER_ATTACK, _activeChar.getTemplate().getBasePAtk() * bonusAtk, target, null), Config.MAX_PATK);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -227,6 +227,14 @@ MaxSpBonus = 0
|
|||||||
# Default: 300
|
# Default: 300
|
||||||
MaxRunSpeed = 300
|
MaxRunSpeed = 300
|
||||||
|
|
||||||
|
# Maximum character Physical Attack.
|
||||||
|
# Default: 999999
|
||||||
|
MaxPAtk = 999999
|
||||||
|
|
||||||
|
# Maximum character Magic Attack.
|
||||||
|
# Default: 999999
|
||||||
|
MaxMAtk = 999999
|
||||||
|
|
||||||
# Maximum character Physical Critical Rate. (10 = 1%)
|
# Maximum character Physical Critical Rate. (10 = 1%)
|
||||||
# Default: 500
|
# Default: 500
|
||||||
MaxPCritRate = 500
|
MaxPCritRate = 500
|
||||||
|
|||||||
@@ -350,7 +350,7 @@
|
|||||||
<value level="1">0</value>
|
<value level="1">0</value>
|
||||||
<value level="2">0</value>
|
<value level="2">0</value>
|
||||||
<value level="3">999900</value>
|
<value level="3">999900</value>
|
||||||
<value level="4">999900</value> <!-- Retail value: 0 -->
|
<value level="4">999999</value> <!-- Retail value: 0 -->
|
||||||
</amount>
|
</amount>
|
||||||
<mode>PER</mode>
|
<mode>PER</mode>
|
||||||
</effect>
|
</effect>
|
||||||
@@ -428,6 +428,15 @@
|
|||||||
<mode>PER</mode>
|
<mode>PER</mode>
|
||||||
<magicType>1</magicType>
|
<magicType>1</magicType>
|
||||||
</effect>
|
</effect>
|
||||||
|
<effect name="MAtk"> <!-- custom -->
|
||||||
|
<amount>
|
||||||
|
<value level="1">0</value>
|
||||||
|
<value level="2">0</value>
|
||||||
|
<value level="3">999900</value>
|
||||||
|
<value level="4">999999</value>
|
||||||
|
</amount>
|
||||||
|
<mode>PER</mode>
|
||||||
|
</effect>
|
||||||
</effects>
|
</effects>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="7030" toLevel="1" name="Summon King Bugbear">
|
<skill id="7030" toLevel="1" name="Summon King Bugbear">
|
||||||
|
|||||||
@@ -182,6 +182,8 @@ public final class Config
|
|||||||
public static double MAX_BONUS_EXP;
|
public static double MAX_BONUS_EXP;
|
||||||
public static double MAX_BONUS_SP;
|
public static double MAX_BONUS_SP;
|
||||||
public static int MAX_RUN_SPEED;
|
public static int MAX_RUN_SPEED;
|
||||||
|
public static int MAX_PATK;
|
||||||
|
public static int MAX_MATK;
|
||||||
public static int MAX_PCRIT_RATE;
|
public static int MAX_PCRIT_RATE;
|
||||||
public static int MAX_MCRIT_RATE;
|
public static int MAX_MCRIT_RATE;
|
||||||
public static int MAX_PATK_SPEED;
|
public static int MAX_PATK_SPEED;
|
||||||
@@ -1448,6 +1450,8 @@ public final class Config
|
|||||||
MAX_BONUS_EXP = Character.getDouble("MaxExpBonus", 0);
|
MAX_BONUS_EXP = Character.getDouble("MaxExpBonus", 0);
|
||||||
MAX_BONUS_SP = Character.getDouble("MaxSpBonus", 0);
|
MAX_BONUS_SP = Character.getDouble("MaxSpBonus", 0);
|
||||||
MAX_RUN_SPEED = Character.getInt("MaxRunSpeed", 300);
|
MAX_RUN_SPEED = Character.getInt("MaxRunSpeed", 300);
|
||||||
|
MAX_PATK = Character.getInt("MaxPAtk", 999999);
|
||||||
|
MAX_MATK = Character.getInt("MaxMAtk", 999999);
|
||||||
MAX_PCRIT_RATE = Character.getInt("MaxPCritRate", 500);
|
MAX_PCRIT_RATE = Character.getInt("MaxPCritRate", 500);
|
||||||
MAX_MCRIT_RATE = Character.getInt("MaxMCritRate", 200);
|
MAX_MCRIT_RATE = Character.getInt("MaxMCritRate", 200);
|
||||||
MAX_PATK_SPEED = Character.getInt("MaxPAtkSpeed", 1500);
|
MAX_PATK_SPEED = Character.getInt("MaxPAtkSpeed", 1500);
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class MAttackFinalizer implements IStatsFunction
|
|||||||
final double chaMod = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
final double chaMod = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
||||||
final double intBonus = BaseStats.INT.calcBonus(creature);
|
final double intBonus = BaseStats.INT.calcBonus(creature);
|
||||||
baseValue *= Math.pow(intBonus, 2) * Math.pow(creature.getLevelMod(), 2) * chaMod;
|
baseValue *= Math.pow(intBonus, 2) * Math.pow(creature.getLevelMod(), 2) * chaMod;
|
||||||
return Stats.defaultValue(creature, stat, baseValue);
|
return Math.min(Stats.defaultValue(creature, stat, baseValue), Config.MAX_MATK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class PAttackFinalizer implements IStatsFunction
|
|||||||
final double chaBonus = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
final double chaBonus = creature.isPlayer() ? BaseStats.CHA.calcBonus(creature) : 1.;
|
||||||
final double strBonus = creature.getSTR() > 0 ? BaseStats.STR.calcBonus(creature) : 1.;
|
final double strBonus = creature.getSTR() > 0 ? BaseStats.STR.calcBonus(creature) : 1.;
|
||||||
baseValue *= strBonus * creature.getLevelMod() * chaBonus;
|
baseValue *= strBonus * creature.getLevelMod() * chaBonus;
|
||||||
return Stats.defaultValue(creature, stat, baseValue);
|
return Math.min(Stats.defaultValue(creature, stat, baseValue), Config.MAX_PATK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user