Config to ignore NPC stat formulas.

This commit is contained in:
MobiusDev
2015-09-12 11:26:27 +00:00
parent 41e442577b
commit 9d30563145
3 changed files with 53 additions and 38 deletions

View File

@@ -111,6 +111,7 @@ public final class Config
public static final String CHAT_FILTER_FILE = "./config/chatfilter.txt";
public static final String CH_SIEGE_FILE = "./config/ConquerableHallSiege.ini";
public static final String GEODATA_FILE = "./config/GeoData.ini";
// --------------------------------------------------
// L2J Variable Definitions
// --------------------------------------------------
@@ -897,6 +898,7 @@ public final class Config
public static int DROP_ITEM_MIN_LEVEL_DIFFERENCE;
public static int DROP_ITEM_MAX_LEVEL_DIFFERENCE;
public static double DROP_ITEM_MIN_LEVEL_GAP_CHANCE;
public static boolean IGNORE_NPC_STAT_FORMULAS;
// --------------------------------------------------
// PvP Settings
@@ -2089,6 +2091,8 @@ public final class Config
DROP_ITEM_MAX_LEVEL_DIFFERENCE = NPC.getInt("DropItemMaxLevelDifference", 10);
DROP_ITEM_MIN_LEVEL_GAP_CHANCE = NPC.getDouble("DropItemMinLevelGapChance", 10);
IGNORE_NPC_STAT_FORMULAS = NPC.getBoolean("IgnoreNpcStatFormulas", true);
// Load Rates L2Properties file (if exists)
final PropertiesParser RatesSettings = new PropertiesParser(RATES_CONFIG_FILE);

View File

@@ -116,29 +116,41 @@ public final class Formulas
{
Calculator[] std = new Calculator[Stats.NUM_STATS];
std[Stats.MAX_HP.ordinal()] = new Calculator();
std[Stats.MAX_HP.ordinal()].addFunc(FuncMaxHpMul.getInstance());
std[Stats.MAX_MP.ordinal()] = new Calculator();
std[Stats.MAX_MP.ordinal()].addFunc(FuncMaxMpMul.getInstance());
std[Stats.POWER_ATTACK.ordinal()] = new Calculator();
std[Stats.POWER_ATTACK.ordinal()].addFunc(FuncPAtkMod.getInstance());
std[Stats.MAGIC_ATTACK.ordinal()] = new Calculator();
std[Stats.MAGIC_ATTACK.ordinal()].addFunc(FuncMAtkMod.getInstance());
std[Stats.POWER_DEFENCE.ordinal()] = new Calculator();
std[Stats.POWER_DEFENCE.ordinal()].addFunc(FuncPDefMod.getInstance());
std[Stats.MAGIC_DEFENCE.ordinal()] = new Calculator();
std[Stats.MAGIC_DEFENCE.ordinal()].addFunc(FuncMDefMod.getInstance());
std[Stats.CRITICAL_RATE.ordinal()] = new Calculator();
std[Stats.CRITICAL_RATE.ordinal()].addFunc(FuncAtkCritical.getInstance());
std[Stats.MCRITICAL_RATE.ordinal()] = new Calculator();
std[Stats.MCRITICAL_RATE.ordinal()].addFunc(FuncMAtkCritical.getInstance());
if (!Config.IGNORE_NPC_STAT_FORMULAS)
{
std[Stats.MAX_HP.ordinal()] = new Calculator();
std[Stats.MAX_HP.ordinal()].addFunc(FuncMaxHpMul.getInstance());
std[Stats.MAX_MP.ordinal()] = new Calculator();
std[Stats.MAX_MP.ordinal()].addFunc(FuncMaxMpMul.getInstance());
std[Stats.POWER_ATTACK.ordinal()] = new Calculator();
std[Stats.POWER_ATTACK.ordinal()].addFunc(FuncPAtkMod.getInstance());
std[Stats.MAGIC_ATTACK.ordinal()] = new Calculator();
std[Stats.MAGIC_ATTACK.ordinal()].addFunc(FuncMAtkMod.getInstance());
std[Stats.POWER_DEFENCE.ordinal()] = new Calculator();
std[Stats.POWER_DEFENCE.ordinal()].addFunc(FuncPDefMod.getInstance());
std[Stats.MAGIC_DEFENCE.ordinal()] = new Calculator();
std[Stats.MAGIC_DEFENCE.ordinal()].addFunc(FuncMDefMod.getInstance());
std[Stats.CRITICAL_RATE.ordinal()] = new Calculator();
std[Stats.CRITICAL_RATE.ordinal()].addFunc(FuncAtkCritical.getInstance());
std[Stats.MCRITICAL_RATE.ordinal()] = new Calculator();
std[Stats.MCRITICAL_RATE.ordinal()].addFunc(FuncMAtkCritical.getInstance());
std[Stats.POWER_ATTACK_SPEED.ordinal()] = new Calculator();
std[Stats.POWER_ATTACK_SPEED.ordinal()].addFunc(FuncPAtkSpeed.getInstance());
std[Stats.MAGIC_ATTACK_SPEED.ordinal()] = new Calculator();
std[Stats.MAGIC_ATTACK_SPEED.ordinal()].addFunc(FuncMAtkSpeed.getInstance());
std[Stats.MOVE_SPEED.ordinal()] = new Calculator();
std[Stats.MOVE_SPEED.ordinal()].addFunc(FuncMoveSpeed.getInstance());
}
std[Stats.ACCURACY_COMBAT.ordinal()] = new Calculator();
std[Stats.ACCURACY_COMBAT.ordinal()].addFunc(FuncAtkAccuracy.getInstance());
@@ -146,15 +158,6 @@ public final class Formulas
std[Stats.EVASION_RATE.ordinal()] = new Calculator();
std[Stats.EVASION_RATE.ordinal()].addFunc(FuncAtkEvasion.getInstance());
std[Stats.POWER_ATTACK_SPEED.ordinal()] = new Calculator();
std[Stats.POWER_ATTACK_SPEED.ordinal()].addFunc(FuncPAtkSpeed.getInstance());
std[Stats.MAGIC_ATTACK_SPEED.ordinal()] = new Calculator();
std[Stats.MAGIC_ATTACK_SPEED.ordinal()].addFunc(FuncMAtkSpeed.getInstance());
std[Stats.MOVE_SPEED.ordinal()] = new Calculator();
std[Stats.MOVE_SPEED.ordinal()].addFunc(FuncMoveSpeed.getInstance());
std[Stats.ACCURACY_MAGIC.ordinal()] = new Calculator();
std[Stats.ACCURACY_MAGIC.ordinal()].addFunc(FuncMatkAccuracy.getInstance());