Addition of configurable NPC stat multipliers.
This commit is contained in:
parent
11d68b5374
commit
2b86228d8e
46
L2J_Mobius_1.0_Ertheia/dist/game/config/Custom/NpcStatMultipliers.ini
vendored
Normal file
46
L2J_Mobius_1.0_Ertheia/dist/game/config/Custom/NpcStatMultipliers.ini
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
# NPC Stat Multipliers
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# Enable/Disable NPC stat multipliers.
|
||||
EnableNpcStatMultipliers = False
|
||||
|
||||
# Monsters
|
||||
MonsterHP = 1.0
|
||||
MonsterMP = 1.0
|
||||
MonsterPAtk = 1.0
|
||||
MonsterMAtk = 1.0
|
||||
MonsterPDef = 1.0
|
||||
MonsterMDef = 1.0
|
||||
MonsterAggroRange = 1.0
|
||||
MonsterClanHelpRange = 1.0
|
||||
|
||||
# Raidbosses
|
||||
RaidbossHP = 1.0
|
||||
RaidbossMP = 1.0
|
||||
RaidbossPAtk = 1.0
|
||||
RaidbossMAtk = 1.0
|
||||
RaidbossPDef = 1.0
|
||||
RaidbossMDef = 1.0
|
||||
RaidbossAggroRange = 1.0
|
||||
RaidbossClanHelpRange = 1.0
|
||||
|
||||
# Guards
|
||||
GuardHP = 1.0
|
||||
GuardMP = 1.0
|
||||
GuardPAtk = 1.0
|
||||
GuardMAtk = 1.0
|
||||
GuardPDef = 1.0
|
||||
GuardMDef = 1.0
|
||||
GuardAggroRange = 1.0
|
||||
GuardClanHelpRange = 1.0
|
||||
|
||||
# Defenders
|
||||
DefenderHP = 1.0
|
||||
DefenderMP = 1.0
|
||||
DefenderPAtk = 1.0
|
||||
DefenderMAtk = 1.0
|
||||
DefenderPDef = 1.0
|
||||
DefenderMDef = 1.0
|
||||
DefenderAggroRange = 1.0
|
||||
DefenderClanHelpRange = 1.0
|
@ -117,6 +117,7 @@ public final class Config
|
||||
public static final String CUSTOM_FACTION_SYSTEM_CONFIG_FILE = "./config/Custom/FactionSystem.ini";
|
||||
public static final String CUSTOM_FIND_PVP_CONFIG_FILE = "./config/Custom/FindPvP.ini";
|
||||
public static final String CUSTOM_MULTILANGUAL_SUPPORT_CONFIG_FILE = "./config/Custom/MultilingualSupport.ini";
|
||||
public static final String CUSTOM_NPC_STAT_MULTIPIERS_CONFIG_FILE = "./config/Custom/NpcStatMultipliers.ini";
|
||||
public static final String CUSTOM_OFFLINE_TRADE_CONFIG_FILE = "./config/Custom/OfflineTrade.ini";
|
||||
public static final String CUSTOM_PASSWORD_CHANGE_CONFIG_FILE = "./config/Custom/PasswordChange.ini";
|
||||
public static final String CUSTOM_PC_CAFE_CONFIG_FILE = "./config/Custom/PcCafe.ini";
|
||||
@ -997,6 +998,39 @@ public final class Config
|
||||
public static boolean BANKING_SYSTEM_ENABLED;
|
||||
public static int BANKING_SYSTEM_GOLDBARS;
|
||||
public static int BANKING_SYSTEM_ADENA;
|
||||
public static boolean ENABLE_NPC_STAT_MULTIPIERS;
|
||||
public static double MONSTER_HP_MULTIPLIER;
|
||||
public static double MONSTER_MP_MULTIPLIER;
|
||||
public static double MONSTER_PATK_MULTIPLIER;
|
||||
public static double MONSTER_MATK_MULTIPLIER;
|
||||
public static double MONSTER_PDEF_MULTIPLIER;
|
||||
public static double MONSTER_MDEF_MULTIPLIER;
|
||||
public static double MONSTER_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double MONSTER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double RAIDBOSS_HP_MULTIPLIER;
|
||||
public static double RAIDBOSS_MP_MULTIPLIER;
|
||||
public static double RAIDBOSS_PATK_MULTIPLIER;
|
||||
public static double RAIDBOSS_MATK_MULTIPLIER;
|
||||
public static double RAIDBOSS_PDEF_MULTIPLIER;
|
||||
public static double RAIDBOSS_MDEF_MULTIPLIER;
|
||||
public static double RAIDBOSS_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double GUARD_HP_MULTIPLIER;
|
||||
public static double GUARD_MP_MULTIPLIER;
|
||||
public static double GUARD_PATK_MULTIPLIER;
|
||||
public static double GUARD_MATK_MULTIPLIER;
|
||||
public static double GUARD_PDEF_MULTIPLIER;
|
||||
public static double GUARD_MDEF_MULTIPLIER;
|
||||
public static double GUARD_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double GUARD_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double DEFENDER_HP_MULTIPLIER;
|
||||
public static double DEFENDER_MP_MULTIPLIER;
|
||||
public static double DEFENDER_PATK_MULTIPLIER;
|
||||
public static double DEFENDER_MATK_MULTIPLIER;
|
||||
public static double DEFENDER_PDEF_MULTIPLIER;
|
||||
public static double DEFENDER_MDEF_MULTIPLIER;
|
||||
public static double DEFENDER_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double DEFENDER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static boolean OFFLINE_TRADE_ENABLE;
|
||||
public static boolean OFFLINE_CRAFT_ENABLE;
|
||||
public static boolean OFFLINE_MODE_IN_PEACE_ZONE;
|
||||
@ -2337,6 +2371,43 @@ public final class Config
|
||||
BANKING_SYSTEM_GOLDBARS = Banking.getInt("BankingGoldbarCount", 1);
|
||||
BANKING_SYSTEM_ADENA = Banking.getInt("BankingAdenaCount", 500000000);
|
||||
|
||||
// Load BoostNpcStats config file (if exists)
|
||||
final PropertiesParser BoostNpcStats = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPIERS_CONFIG_FILE);
|
||||
|
||||
ENABLE_NPC_STAT_MULTIPIERS = BoostNpcStats.getBoolean("EnableNpcStatMultipliers", false);
|
||||
MONSTER_HP_MULTIPLIER = BoostNpcStats.getDouble("MonsterHP", 1.0);
|
||||
MONSTER_MP_MULTIPLIER = BoostNpcStats.getDouble("MonsterMP", 1.0);
|
||||
MONSTER_PATK_MULTIPLIER = BoostNpcStats.getDouble("MonsterPAtk", 1.0);
|
||||
MONSTER_MATK_MULTIPLIER = BoostNpcStats.getDouble("MonsterMAtk", 1.0);
|
||||
MONSTER_PDEF_MULTIPLIER = BoostNpcStats.getDouble("MonsterPDef", 1.0);
|
||||
MONSTER_MDEF_MULTIPLIER = BoostNpcStats.getDouble("MonsterMDef", 1.0);
|
||||
MONSTER_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("MonsterAggroRange", 1.0);
|
||||
MONSTER_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("MonsterClanHelpRange", 1.0);
|
||||
RAIDBOSS_HP_MULTIPLIER = BoostNpcStats.getDouble("RaidbossHP", 1.0);
|
||||
RAIDBOSS_MP_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMP", 1.0);
|
||||
RAIDBOSS_PATK_MULTIPLIER = BoostNpcStats.getDouble("RaidbossPAtk", 1.0);
|
||||
RAIDBOSS_MATK_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMAtk", 1.0);
|
||||
RAIDBOSS_PDEF_MULTIPLIER = BoostNpcStats.getDouble("RaidbossPDef", 1.0);
|
||||
RAIDBOSS_MDEF_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMDef", 1.0);
|
||||
RAIDBOSS_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("RaidbossAggroRange", 1.0);
|
||||
RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("RaidbossClanHelpRange", 1.0);
|
||||
GUARD_HP_MULTIPLIER = BoostNpcStats.getDouble("GuardHP", 1.0);
|
||||
GUARD_MP_MULTIPLIER = BoostNpcStats.getDouble("GuardMP", 1.0);
|
||||
GUARD_PATK_MULTIPLIER = BoostNpcStats.getDouble("GuardPAtk", 1.0);
|
||||
GUARD_MATK_MULTIPLIER = BoostNpcStats.getDouble("GuardMAtk", 1.0);
|
||||
GUARD_PDEF_MULTIPLIER = BoostNpcStats.getDouble("GuardPDef", 1.0);
|
||||
GUARD_MDEF_MULTIPLIER = BoostNpcStats.getDouble("GuardMDef", 1.0);
|
||||
GUARD_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("GuardAggroRange", 1.0);
|
||||
GUARD_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("GuardClanHelpRange", 1.0);
|
||||
DEFENDER_HP_MULTIPLIER = BoostNpcStats.getDouble("DefenderHP", 1.0);
|
||||
DEFENDER_MP_MULTIPLIER = BoostNpcStats.getDouble("DefenderMP", 1.0);
|
||||
DEFENDER_PATK_MULTIPLIER = BoostNpcStats.getDouble("DefenderPAtk", 1.0);
|
||||
DEFENDER_MATK_MULTIPLIER = BoostNpcStats.getDouble("DefenderMAtk", 1.0);
|
||||
DEFENDER_PDEF_MULTIPLIER = BoostNpcStats.getDouble("DefenderPDef", 1.0);
|
||||
DEFENDER_MDEF_MULTIPLIER = BoostNpcStats.getDouble("DefenderMDef", 1.0);
|
||||
DEFENDER_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("DefenderAggroRange", 1.0);
|
||||
DEFENDER_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("DefenderClanHelpRange", 1.0);
|
||||
|
||||
// Load ChampionMonster config file (if exists)
|
||||
final PropertiesParser ChampionMonster = new PropertiesParser(CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE);
|
||||
|
||||
|
@ -189,6 +189,62 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
|
||||
_mpRewardAffectType = set.getEnum("mpRewardAffectType", MpRewardAffectType.class, MpRewardAffectType.SOLO);
|
||||
|
||||
_extendDrop = set.getList("extend_drop", Integer.class);
|
||||
|
||||
if (Config.ENABLE_NPC_STAT_MULTIPIERS) // Custom NPC Stat Multipliers
|
||||
{
|
||||
switch (_type)
|
||||
{
|
||||
case "L2Monster":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.MONSTER_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.MONSTER_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.MONSTER_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.MONSTER_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.MONSTER_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.MONSTER_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.MONSTER_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.MONSTER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2RaidBoss":
|
||||
case "L2GrandBoss":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.RAIDBOSS_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.RAIDBOSS_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.RAIDBOSS_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.RAIDBOSS_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.RAIDBOSS_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.RAIDBOSS_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.RAIDBOSS_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2Guard":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.GUARD_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.GUARD_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.GUARD_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.GUARD_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.GUARD_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.GUARD_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.GUARD_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.GUARD_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2Defender":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.DEFENDER_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.DEFENDER_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.DEFENDER_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.DEFENDER_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.DEFENDER_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.DEFENDER_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.DEFENDER_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.DEFENDER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
46
L2J_Mobius_2.5_Underground/dist/game/config/Custom/NpcStatMultipliers.ini
vendored
Normal file
46
L2J_Mobius_2.5_Underground/dist/game/config/Custom/NpcStatMultipliers.ini
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
# NPC Stat Multipliers
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# Enable/Disable NPC stat multipliers.
|
||||
EnableNpcStatMultipliers = False
|
||||
|
||||
# Monsters
|
||||
MonsterHP = 1.0
|
||||
MonsterMP = 1.0
|
||||
MonsterPAtk = 1.0
|
||||
MonsterMAtk = 1.0
|
||||
MonsterPDef = 1.0
|
||||
MonsterMDef = 1.0
|
||||
MonsterAggroRange = 1.0
|
||||
MonsterClanHelpRange = 1.0
|
||||
|
||||
# Raidbosses
|
||||
RaidbossHP = 1.0
|
||||
RaidbossMP = 1.0
|
||||
RaidbossPAtk = 1.0
|
||||
RaidbossMAtk = 1.0
|
||||
RaidbossPDef = 1.0
|
||||
RaidbossMDef = 1.0
|
||||
RaidbossAggroRange = 1.0
|
||||
RaidbossClanHelpRange = 1.0
|
||||
|
||||
# Guards
|
||||
GuardHP = 1.0
|
||||
GuardMP = 1.0
|
||||
GuardPAtk = 1.0
|
||||
GuardMAtk = 1.0
|
||||
GuardPDef = 1.0
|
||||
GuardMDef = 1.0
|
||||
GuardAggroRange = 1.0
|
||||
GuardClanHelpRange = 1.0
|
||||
|
||||
# Defenders
|
||||
DefenderHP = 1.0
|
||||
DefenderMP = 1.0
|
||||
DefenderPAtk = 1.0
|
||||
DefenderMAtk = 1.0
|
||||
DefenderPDef = 1.0
|
||||
DefenderMDef = 1.0
|
||||
DefenderAggroRange = 1.0
|
||||
DefenderClanHelpRange = 1.0
|
@ -117,6 +117,7 @@ public final class Config
|
||||
public static final String CUSTOM_FACTION_SYSTEM_CONFIG_FILE = "./config/Custom/FactionSystem.ini";
|
||||
public static final String CUSTOM_FIND_PVP_CONFIG_FILE = "./config/Custom/FindPvP.ini";
|
||||
public static final String CUSTOM_MULTILANGUAL_SUPPORT_CONFIG_FILE = "./config/Custom/MultilingualSupport.ini";
|
||||
public static final String CUSTOM_NPC_STAT_MULTIPIERS_CONFIG_FILE = "./config/Custom/NpcStatMultipliers.ini";
|
||||
public static final String CUSTOM_OFFLINE_TRADE_CONFIG_FILE = "./config/Custom/OfflineTrade.ini";
|
||||
public static final String CUSTOM_PASSWORD_CHANGE_CONFIG_FILE = "./config/Custom/PasswordChange.ini";
|
||||
public static final String CUSTOM_PC_CAFE_CONFIG_FILE = "./config/Custom/PcCafe.ini";
|
||||
@ -998,6 +999,39 @@ public final class Config
|
||||
public static boolean BANKING_SYSTEM_ENABLED;
|
||||
public static int BANKING_SYSTEM_GOLDBARS;
|
||||
public static int BANKING_SYSTEM_ADENA;
|
||||
public static boolean ENABLE_NPC_STAT_MULTIPIERS;
|
||||
public static double MONSTER_HP_MULTIPLIER;
|
||||
public static double MONSTER_MP_MULTIPLIER;
|
||||
public static double MONSTER_PATK_MULTIPLIER;
|
||||
public static double MONSTER_MATK_MULTIPLIER;
|
||||
public static double MONSTER_PDEF_MULTIPLIER;
|
||||
public static double MONSTER_MDEF_MULTIPLIER;
|
||||
public static double MONSTER_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double MONSTER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double RAIDBOSS_HP_MULTIPLIER;
|
||||
public static double RAIDBOSS_MP_MULTIPLIER;
|
||||
public static double RAIDBOSS_PATK_MULTIPLIER;
|
||||
public static double RAIDBOSS_MATK_MULTIPLIER;
|
||||
public static double RAIDBOSS_PDEF_MULTIPLIER;
|
||||
public static double RAIDBOSS_MDEF_MULTIPLIER;
|
||||
public static double RAIDBOSS_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double GUARD_HP_MULTIPLIER;
|
||||
public static double GUARD_MP_MULTIPLIER;
|
||||
public static double GUARD_PATK_MULTIPLIER;
|
||||
public static double GUARD_MATK_MULTIPLIER;
|
||||
public static double GUARD_PDEF_MULTIPLIER;
|
||||
public static double GUARD_MDEF_MULTIPLIER;
|
||||
public static double GUARD_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double GUARD_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double DEFENDER_HP_MULTIPLIER;
|
||||
public static double DEFENDER_MP_MULTIPLIER;
|
||||
public static double DEFENDER_PATK_MULTIPLIER;
|
||||
public static double DEFENDER_MATK_MULTIPLIER;
|
||||
public static double DEFENDER_PDEF_MULTIPLIER;
|
||||
public static double DEFENDER_MDEF_MULTIPLIER;
|
||||
public static double DEFENDER_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double DEFENDER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static boolean OFFLINE_TRADE_ENABLE;
|
||||
public static boolean OFFLINE_CRAFT_ENABLE;
|
||||
public static boolean OFFLINE_MODE_IN_PEACE_ZONE;
|
||||
@ -2339,6 +2373,43 @@ public final class Config
|
||||
BANKING_SYSTEM_GOLDBARS = Banking.getInt("BankingGoldbarCount", 1);
|
||||
BANKING_SYSTEM_ADENA = Banking.getInt("BankingAdenaCount", 500000000);
|
||||
|
||||
// Load BoostNpcStats config file (if exists)
|
||||
final PropertiesParser BoostNpcStats = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPIERS_CONFIG_FILE);
|
||||
|
||||
ENABLE_NPC_STAT_MULTIPIERS = BoostNpcStats.getBoolean("EnableNpcStatMultipliers", false);
|
||||
MONSTER_HP_MULTIPLIER = BoostNpcStats.getDouble("MonsterHP", 1.0);
|
||||
MONSTER_MP_MULTIPLIER = BoostNpcStats.getDouble("MonsterMP", 1.0);
|
||||
MONSTER_PATK_MULTIPLIER = BoostNpcStats.getDouble("MonsterPAtk", 1.0);
|
||||
MONSTER_MATK_MULTIPLIER = BoostNpcStats.getDouble("MonsterMAtk", 1.0);
|
||||
MONSTER_PDEF_MULTIPLIER = BoostNpcStats.getDouble("MonsterPDef", 1.0);
|
||||
MONSTER_MDEF_MULTIPLIER = BoostNpcStats.getDouble("MonsterMDef", 1.0);
|
||||
MONSTER_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("MonsterAggroRange", 1.0);
|
||||
MONSTER_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("MonsterClanHelpRange", 1.0);
|
||||
RAIDBOSS_HP_MULTIPLIER = BoostNpcStats.getDouble("RaidbossHP", 1.0);
|
||||
RAIDBOSS_MP_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMP", 1.0);
|
||||
RAIDBOSS_PATK_MULTIPLIER = BoostNpcStats.getDouble("RaidbossPAtk", 1.0);
|
||||
RAIDBOSS_MATK_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMAtk", 1.0);
|
||||
RAIDBOSS_PDEF_MULTIPLIER = BoostNpcStats.getDouble("RaidbossPDef", 1.0);
|
||||
RAIDBOSS_MDEF_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMDef", 1.0);
|
||||
RAIDBOSS_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("RaidbossAggroRange", 1.0);
|
||||
RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("RaidbossClanHelpRange", 1.0);
|
||||
GUARD_HP_MULTIPLIER = BoostNpcStats.getDouble("GuardHP", 1.0);
|
||||
GUARD_MP_MULTIPLIER = BoostNpcStats.getDouble("GuardMP", 1.0);
|
||||
GUARD_PATK_MULTIPLIER = BoostNpcStats.getDouble("GuardPAtk", 1.0);
|
||||
GUARD_MATK_MULTIPLIER = BoostNpcStats.getDouble("GuardMAtk", 1.0);
|
||||
GUARD_PDEF_MULTIPLIER = BoostNpcStats.getDouble("GuardPDef", 1.0);
|
||||
GUARD_MDEF_MULTIPLIER = BoostNpcStats.getDouble("GuardMDef", 1.0);
|
||||
GUARD_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("GuardAggroRange", 1.0);
|
||||
GUARD_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("GuardClanHelpRange", 1.0);
|
||||
DEFENDER_HP_MULTIPLIER = BoostNpcStats.getDouble("DefenderHP", 1.0);
|
||||
DEFENDER_MP_MULTIPLIER = BoostNpcStats.getDouble("DefenderMP", 1.0);
|
||||
DEFENDER_PATK_MULTIPLIER = BoostNpcStats.getDouble("DefenderPAtk", 1.0);
|
||||
DEFENDER_MATK_MULTIPLIER = BoostNpcStats.getDouble("DefenderMAtk", 1.0);
|
||||
DEFENDER_PDEF_MULTIPLIER = BoostNpcStats.getDouble("DefenderPDef", 1.0);
|
||||
DEFENDER_MDEF_MULTIPLIER = BoostNpcStats.getDouble("DefenderMDef", 1.0);
|
||||
DEFENDER_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("DefenderAggroRange", 1.0);
|
||||
DEFENDER_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("DefenderClanHelpRange", 1.0);
|
||||
|
||||
// Load ChampionMonster config file (if exists)
|
||||
final PropertiesParser ChampionMonster = new PropertiesParser(CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE);
|
||||
|
||||
|
@ -189,6 +189,62 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
|
||||
_mpRewardAffectType = set.getEnum("mpRewardAffectType", MpRewardAffectType.class, MpRewardAffectType.SOLO);
|
||||
|
||||
_extendDrop = set.getList("extend_drop", Integer.class);
|
||||
|
||||
if (Config.ENABLE_NPC_STAT_MULTIPIERS) // Custom NPC Stat Multipliers
|
||||
{
|
||||
switch (_type)
|
||||
{
|
||||
case "L2Monster":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.MONSTER_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.MONSTER_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.MONSTER_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.MONSTER_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.MONSTER_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.MONSTER_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.MONSTER_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.MONSTER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2RaidBoss":
|
||||
case "L2GrandBoss":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.RAIDBOSS_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.RAIDBOSS_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.RAIDBOSS_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.RAIDBOSS_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.RAIDBOSS_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.RAIDBOSS_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.RAIDBOSS_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2Guard":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.GUARD_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.GUARD_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.GUARD_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.GUARD_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.GUARD_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.GUARD_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.GUARD_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.GUARD_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2Defender":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.DEFENDER_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.DEFENDER_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.DEFENDER_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.DEFENDER_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.DEFENDER_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.DEFENDER_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.DEFENDER_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.DEFENDER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
46
L2J_Mobius_3.0_Helios/dist/game/config/Custom/NpcStatMultipliers.ini
vendored
Normal file
46
L2J_Mobius_3.0_Helios/dist/game/config/Custom/NpcStatMultipliers.ini
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
# NPC Stat Multipliers
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# Enable/Disable NPC stat multipliers.
|
||||
EnableNpcStatMultipliers = False
|
||||
|
||||
# Monsters
|
||||
MonsterHP = 1.0
|
||||
MonsterMP = 1.0
|
||||
MonsterPAtk = 1.0
|
||||
MonsterMAtk = 1.0
|
||||
MonsterPDef = 1.0
|
||||
MonsterMDef = 1.0
|
||||
MonsterAggroRange = 1.0
|
||||
MonsterClanHelpRange = 1.0
|
||||
|
||||
# Raidbosses
|
||||
RaidbossHP = 1.0
|
||||
RaidbossMP = 1.0
|
||||
RaidbossPAtk = 1.0
|
||||
RaidbossMAtk = 1.0
|
||||
RaidbossPDef = 1.0
|
||||
RaidbossMDef = 1.0
|
||||
RaidbossAggroRange = 1.0
|
||||
RaidbossClanHelpRange = 1.0
|
||||
|
||||
# Guards
|
||||
GuardHP = 1.0
|
||||
GuardMP = 1.0
|
||||
GuardPAtk = 1.0
|
||||
GuardMAtk = 1.0
|
||||
GuardPDef = 1.0
|
||||
GuardMDef = 1.0
|
||||
GuardAggroRange = 1.0
|
||||
GuardClanHelpRange = 1.0
|
||||
|
||||
# Defenders
|
||||
DefenderHP = 1.0
|
||||
DefenderMP = 1.0
|
||||
DefenderPAtk = 1.0
|
||||
DefenderMAtk = 1.0
|
||||
DefenderPDef = 1.0
|
||||
DefenderMDef = 1.0
|
||||
DefenderAggroRange = 1.0
|
||||
DefenderClanHelpRange = 1.0
|
@ -117,6 +117,7 @@ public final class Config
|
||||
public static final String CUSTOM_FACTION_SYSTEM_CONFIG_FILE = "./config/Custom/FactionSystem.ini";
|
||||
public static final String CUSTOM_FIND_PVP_CONFIG_FILE = "./config/Custom/FindPvP.ini";
|
||||
public static final String CUSTOM_MULTILANGUAL_SUPPORT_CONFIG_FILE = "./config/Custom/MultilingualSupport.ini";
|
||||
public static final String CUSTOM_NPC_STAT_MULTIPIERS_CONFIG_FILE = "./config/Custom/NpcStatMultipliers.ini";
|
||||
public static final String CUSTOM_OFFLINE_TRADE_CONFIG_FILE = "./config/Custom/OfflineTrade.ini";
|
||||
public static final String CUSTOM_PASSWORD_CHANGE_CONFIG_FILE = "./config/Custom/PasswordChange.ini";
|
||||
public static final String CUSTOM_PC_CAFE_CONFIG_FILE = "./config/Custom/PcCafe.ini";
|
||||
@ -1006,6 +1007,39 @@ public final class Config
|
||||
public static boolean BANKING_SYSTEM_ENABLED;
|
||||
public static int BANKING_SYSTEM_GOLDBARS;
|
||||
public static int BANKING_SYSTEM_ADENA;
|
||||
public static boolean ENABLE_NPC_STAT_MULTIPIERS;
|
||||
public static double MONSTER_HP_MULTIPLIER;
|
||||
public static double MONSTER_MP_MULTIPLIER;
|
||||
public static double MONSTER_PATK_MULTIPLIER;
|
||||
public static double MONSTER_MATK_MULTIPLIER;
|
||||
public static double MONSTER_PDEF_MULTIPLIER;
|
||||
public static double MONSTER_MDEF_MULTIPLIER;
|
||||
public static double MONSTER_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double MONSTER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double RAIDBOSS_HP_MULTIPLIER;
|
||||
public static double RAIDBOSS_MP_MULTIPLIER;
|
||||
public static double RAIDBOSS_PATK_MULTIPLIER;
|
||||
public static double RAIDBOSS_MATK_MULTIPLIER;
|
||||
public static double RAIDBOSS_PDEF_MULTIPLIER;
|
||||
public static double RAIDBOSS_MDEF_MULTIPLIER;
|
||||
public static double RAIDBOSS_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double GUARD_HP_MULTIPLIER;
|
||||
public static double GUARD_MP_MULTIPLIER;
|
||||
public static double GUARD_PATK_MULTIPLIER;
|
||||
public static double GUARD_MATK_MULTIPLIER;
|
||||
public static double GUARD_PDEF_MULTIPLIER;
|
||||
public static double GUARD_MDEF_MULTIPLIER;
|
||||
public static double GUARD_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double GUARD_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double DEFENDER_HP_MULTIPLIER;
|
||||
public static double DEFENDER_MP_MULTIPLIER;
|
||||
public static double DEFENDER_PATK_MULTIPLIER;
|
||||
public static double DEFENDER_MATK_MULTIPLIER;
|
||||
public static double DEFENDER_PDEF_MULTIPLIER;
|
||||
public static double DEFENDER_MDEF_MULTIPLIER;
|
||||
public static double DEFENDER_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double DEFENDER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static boolean OFFLINE_TRADE_ENABLE;
|
||||
public static boolean OFFLINE_CRAFT_ENABLE;
|
||||
public static boolean OFFLINE_MODE_IN_PEACE_ZONE;
|
||||
@ -2356,6 +2390,43 @@ public final class Config
|
||||
BANKING_SYSTEM_GOLDBARS = Banking.getInt("BankingGoldbarCount", 1);
|
||||
BANKING_SYSTEM_ADENA = Banking.getInt("BankingAdenaCount", 500000000);
|
||||
|
||||
// Load BoostNpcStats config file (if exists)
|
||||
final PropertiesParser BoostNpcStats = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPIERS_CONFIG_FILE);
|
||||
|
||||
ENABLE_NPC_STAT_MULTIPIERS = BoostNpcStats.getBoolean("EnableNpcStatMultipliers", false);
|
||||
MONSTER_HP_MULTIPLIER = BoostNpcStats.getDouble("MonsterHP", 1.0);
|
||||
MONSTER_MP_MULTIPLIER = BoostNpcStats.getDouble("MonsterMP", 1.0);
|
||||
MONSTER_PATK_MULTIPLIER = BoostNpcStats.getDouble("MonsterPAtk", 1.0);
|
||||
MONSTER_MATK_MULTIPLIER = BoostNpcStats.getDouble("MonsterMAtk", 1.0);
|
||||
MONSTER_PDEF_MULTIPLIER = BoostNpcStats.getDouble("MonsterPDef", 1.0);
|
||||
MONSTER_MDEF_MULTIPLIER = BoostNpcStats.getDouble("MonsterMDef", 1.0);
|
||||
MONSTER_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("MonsterAggroRange", 1.0);
|
||||
MONSTER_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("MonsterClanHelpRange", 1.0);
|
||||
RAIDBOSS_HP_MULTIPLIER = BoostNpcStats.getDouble("RaidbossHP", 1.0);
|
||||
RAIDBOSS_MP_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMP", 1.0);
|
||||
RAIDBOSS_PATK_MULTIPLIER = BoostNpcStats.getDouble("RaidbossPAtk", 1.0);
|
||||
RAIDBOSS_MATK_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMAtk", 1.0);
|
||||
RAIDBOSS_PDEF_MULTIPLIER = BoostNpcStats.getDouble("RaidbossPDef", 1.0);
|
||||
RAIDBOSS_MDEF_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMDef", 1.0);
|
||||
RAIDBOSS_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("RaidbossAggroRange", 1.0);
|
||||
RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("RaidbossClanHelpRange", 1.0);
|
||||
GUARD_HP_MULTIPLIER = BoostNpcStats.getDouble("GuardHP", 1.0);
|
||||
GUARD_MP_MULTIPLIER = BoostNpcStats.getDouble("GuardMP", 1.0);
|
||||
GUARD_PATK_MULTIPLIER = BoostNpcStats.getDouble("GuardPAtk", 1.0);
|
||||
GUARD_MATK_MULTIPLIER = BoostNpcStats.getDouble("GuardMAtk", 1.0);
|
||||
GUARD_PDEF_MULTIPLIER = BoostNpcStats.getDouble("GuardPDef", 1.0);
|
||||
GUARD_MDEF_MULTIPLIER = BoostNpcStats.getDouble("GuardMDef", 1.0);
|
||||
GUARD_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("GuardAggroRange", 1.0);
|
||||
GUARD_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("GuardClanHelpRange", 1.0);
|
||||
DEFENDER_HP_MULTIPLIER = BoostNpcStats.getDouble("DefenderHP", 1.0);
|
||||
DEFENDER_MP_MULTIPLIER = BoostNpcStats.getDouble("DefenderMP", 1.0);
|
||||
DEFENDER_PATK_MULTIPLIER = BoostNpcStats.getDouble("DefenderPAtk", 1.0);
|
||||
DEFENDER_MATK_MULTIPLIER = BoostNpcStats.getDouble("DefenderMAtk", 1.0);
|
||||
DEFENDER_PDEF_MULTIPLIER = BoostNpcStats.getDouble("DefenderPDef", 1.0);
|
||||
DEFENDER_MDEF_MULTIPLIER = BoostNpcStats.getDouble("DefenderMDef", 1.0);
|
||||
DEFENDER_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("DefenderAggroRange", 1.0);
|
||||
DEFENDER_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("DefenderClanHelpRange", 1.0);
|
||||
|
||||
// Load ChampionMonster config file (if exists)
|
||||
final PropertiesParser ChampionMonster = new PropertiesParser(CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE);
|
||||
|
||||
|
@ -189,6 +189,62 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
|
||||
_mpRewardAffectType = set.getEnum("mpRewardAffectType", MpRewardAffectType.class, MpRewardAffectType.SOLO);
|
||||
|
||||
_extendDrop = set.getList("extend_drop", Integer.class);
|
||||
|
||||
if (Config.ENABLE_NPC_STAT_MULTIPIERS) // Custom NPC Stat Multipliers
|
||||
{
|
||||
switch (_type)
|
||||
{
|
||||
case "L2Monster":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.MONSTER_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.MONSTER_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.MONSTER_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.MONSTER_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.MONSTER_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.MONSTER_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.MONSTER_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.MONSTER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2RaidBoss":
|
||||
case "L2GrandBoss":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.RAIDBOSS_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.RAIDBOSS_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.RAIDBOSS_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.RAIDBOSS_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.RAIDBOSS_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.RAIDBOSS_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.RAIDBOSS_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2Guard":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.GUARD_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.GUARD_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.GUARD_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.GUARD_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.GUARD_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.GUARD_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.GUARD_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.GUARD_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2Defender":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.DEFENDER_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.DEFENDER_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.DEFENDER_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.DEFENDER_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.DEFENDER_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.DEFENDER_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.DEFENDER_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.DEFENDER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
46
L2J_Mobius_4.0_GrandCrusade/dist/game/config/Custom/NpcStatMultipliers.ini
vendored
Normal file
46
L2J_Mobius_4.0_GrandCrusade/dist/game/config/Custom/NpcStatMultipliers.ini
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
# NPC Stat Multipliers
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# Enable/Disable NPC stat multipliers.
|
||||
EnableNpcStatMultipliers = False
|
||||
|
||||
# Monsters
|
||||
MonsterHP = 1.0
|
||||
MonsterMP = 1.0
|
||||
MonsterPAtk = 1.0
|
||||
MonsterMAtk = 1.0
|
||||
MonsterPDef = 1.0
|
||||
MonsterMDef = 1.0
|
||||
MonsterAggroRange = 1.0
|
||||
MonsterClanHelpRange = 1.0
|
||||
|
||||
# Raidbosses
|
||||
RaidbossHP = 1.0
|
||||
RaidbossMP = 1.0
|
||||
RaidbossPAtk = 1.0
|
||||
RaidbossMAtk = 1.0
|
||||
RaidbossPDef = 1.0
|
||||
RaidbossMDef = 1.0
|
||||
RaidbossAggroRange = 1.0
|
||||
RaidbossClanHelpRange = 1.0
|
||||
|
||||
# Guards
|
||||
GuardHP = 1.0
|
||||
GuardMP = 1.0
|
||||
GuardPAtk = 1.0
|
||||
GuardMAtk = 1.0
|
||||
GuardPDef = 1.0
|
||||
GuardMDef = 1.0
|
||||
GuardAggroRange = 1.0
|
||||
GuardClanHelpRange = 1.0
|
||||
|
||||
# Defenders
|
||||
DefenderHP = 1.0
|
||||
DefenderMP = 1.0
|
||||
DefenderPAtk = 1.0
|
||||
DefenderMAtk = 1.0
|
||||
DefenderPDef = 1.0
|
||||
DefenderMDef = 1.0
|
||||
DefenderAggroRange = 1.0
|
||||
DefenderClanHelpRange = 1.0
|
@ -117,6 +117,7 @@ public final class Config
|
||||
public static final String CUSTOM_FACTION_SYSTEM_CONFIG_FILE = "./config/Custom/FactionSystem.ini";
|
||||
public static final String CUSTOM_FIND_PVP_CONFIG_FILE = "./config/Custom/FindPvP.ini";
|
||||
public static final String CUSTOM_MULTILANGUAL_SUPPORT_CONFIG_FILE = "./config/Custom/MultilingualSupport.ini";
|
||||
public static final String CUSTOM_NPC_STAT_MULTIPIERS_CONFIG_FILE = "./config/Custom/NpcStatMultipliers.ini";
|
||||
public static final String CUSTOM_OFFLINE_TRADE_CONFIG_FILE = "./config/Custom/OfflineTrade.ini";
|
||||
public static final String CUSTOM_PASSWORD_CHANGE_CONFIG_FILE = "./config/Custom/PasswordChange.ini";
|
||||
public static final String CUSTOM_PC_CAFE_CONFIG_FILE = "./config/Custom/PcCafe.ini";
|
||||
@ -1005,6 +1006,39 @@ public final class Config
|
||||
public static boolean BANKING_SYSTEM_ENABLED;
|
||||
public static int BANKING_SYSTEM_GOLDBARS;
|
||||
public static int BANKING_SYSTEM_ADENA;
|
||||
public static boolean ENABLE_NPC_STAT_MULTIPIERS;
|
||||
public static double MONSTER_HP_MULTIPLIER;
|
||||
public static double MONSTER_MP_MULTIPLIER;
|
||||
public static double MONSTER_PATK_MULTIPLIER;
|
||||
public static double MONSTER_MATK_MULTIPLIER;
|
||||
public static double MONSTER_PDEF_MULTIPLIER;
|
||||
public static double MONSTER_MDEF_MULTIPLIER;
|
||||
public static double MONSTER_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double MONSTER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double RAIDBOSS_HP_MULTIPLIER;
|
||||
public static double RAIDBOSS_MP_MULTIPLIER;
|
||||
public static double RAIDBOSS_PATK_MULTIPLIER;
|
||||
public static double RAIDBOSS_MATK_MULTIPLIER;
|
||||
public static double RAIDBOSS_PDEF_MULTIPLIER;
|
||||
public static double RAIDBOSS_MDEF_MULTIPLIER;
|
||||
public static double RAIDBOSS_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double GUARD_HP_MULTIPLIER;
|
||||
public static double GUARD_MP_MULTIPLIER;
|
||||
public static double GUARD_PATK_MULTIPLIER;
|
||||
public static double GUARD_MATK_MULTIPLIER;
|
||||
public static double GUARD_PDEF_MULTIPLIER;
|
||||
public static double GUARD_MDEF_MULTIPLIER;
|
||||
public static double GUARD_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double GUARD_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double DEFENDER_HP_MULTIPLIER;
|
||||
public static double DEFENDER_MP_MULTIPLIER;
|
||||
public static double DEFENDER_PATK_MULTIPLIER;
|
||||
public static double DEFENDER_MATK_MULTIPLIER;
|
||||
public static double DEFENDER_PDEF_MULTIPLIER;
|
||||
public static double DEFENDER_MDEF_MULTIPLIER;
|
||||
public static double DEFENDER_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double DEFENDER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static boolean OFFLINE_TRADE_ENABLE;
|
||||
public static boolean OFFLINE_CRAFT_ENABLE;
|
||||
public static boolean OFFLINE_MODE_IN_PEACE_ZONE;
|
||||
@ -2354,6 +2388,43 @@ public final class Config
|
||||
BANKING_SYSTEM_GOLDBARS = Banking.getInt("BankingGoldbarCount", 1);
|
||||
BANKING_SYSTEM_ADENA = Banking.getInt("BankingAdenaCount", 500000000);
|
||||
|
||||
// Load BoostNpcStats config file (if exists)
|
||||
final PropertiesParser BoostNpcStats = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPIERS_CONFIG_FILE);
|
||||
|
||||
ENABLE_NPC_STAT_MULTIPIERS = BoostNpcStats.getBoolean("EnableNpcStatMultipliers", false);
|
||||
MONSTER_HP_MULTIPLIER = BoostNpcStats.getDouble("MonsterHP", 1.0);
|
||||
MONSTER_MP_MULTIPLIER = BoostNpcStats.getDouble("MonsterMP", 1.0);
|
||||
MONSTER_PATK_MULTIPLIER = BoostNpcStats.getDouble("MonsterPAtk", 1.0);
|
||||
MONSTER_MATK_MULTIPLIER = BoostNpcStats.getDouble("MonsterMAtk", 1.0);
|
||||
MONSTER_PDEF_MULTIPLIER = BoostNpcStats.getDouble("MonsterPDef", 1.0);
|
||||
MONSTER_MDEF_MULTIPLIER = BoostNpcStats.getDouble("MonsterMDef", 1.0);
|
||||
MONSTER_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("MonsterAggroRange", 1.0);
|
||||
MONSTER_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("MonsterClanHelpRange", 1.0);
|
||||
RAIDBOSS_HP_MULTIPLIER = BoostNpcStats.getDouble("RaidbossHP", 1.0);
|
||||
RAIDBOSS_MP_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMP", 1.0);
|
||||
RAIDBOSS_PATK_MULTIPLIER = BoostNpcStats.getDouble("RaidbossPAtk", 1.0);
|
||||
RAIDBOSS_MATK_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMAtk", 1.0);
|
||||
RAIDBOSS_PDEF_MULTIPLIER = BoostNpcStats.getDouble("RaidbossPDef", 1.0);
|
||||
RAIDBOSS_MDEF_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMDef", 1.0);
|
||||
RAIDBOSS_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("RaidbossAggroRange", 1.0);
|
||||
RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("RaidbossClanHelpRange", 1.0);
|
||||
GUARD_HP_MULTIPLIER = BoostNpcStats.getDouble("GuardHP", 1.0);
|
||||
GUARD_MP_MULTIPLIER = BoostNpcStats.getDouble("GuardMP", 1.0);
|
||||
GUARD_PATK_MULTIPLIER = BoostNpcStats.getDouble("GuardPAtk", 1.0);
|
||||
GUARD_MATK_MULTIPLIER = BoostNpcStats.getDouble("GuardMAtk", 1.0);
|
||||
GUARD_PDEF_MULTIPLIER = BoostNpcStats.getDouble("GuardPDef", 1.0);
|
||||
GUARD_MDEF_MULTIPLIER = BoostNpcStats.getDouble("GuardMDef", 1.0);
|
||||
GUARD_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("GuardAggroRange", 1.0);
|
||||
GUARD_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("GuardClanHelpRange", 1.0);
|
||||
DEFENDER_HP_MULTIPLIER = BoostNpcStats.getDouble("DefenderHP", 1.0);
|
||||
DEFENDER_MP_MULTIPLIER = BoostNpcStats.getDouble("DefenderMP", 1.0);
|
||||
DEFENDER_PATK_MULTIPLIER = BoostNpcStats.getDouble("DefenderPAtk", 1.0);
|
||||
DEFENDER_MATK_MULTIPLIER = BoostNpcStats.getDouble("DefenderMAtk", 1.0);
|
||||
DEFENDER_PDEF_MULTIPLIER = BoostNpcStats.getDouble("DefenderPDef", 1.0);
|
||||
DEFENDER_MDEF_MULTIPLIER = BoostNpcStats.getDouble("DefenderMDef", 1.0);
|
||||
DEFENDER_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("DefenderAggroRange", 1.0);
|
||||
DEFENDER_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("DefenderClanHelpRange", 1.0);
|
||||
|
||||
// Load ChampionMonster config file (if exists)
|
||||
final PropertiesParser ChampionMonster = new PropertiesParser(CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE);
|
||||
|
||||
|
@ -189,6 +189,62 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
|
||||
_mpRewardAffectType = set.getEnum("mpRewardAffectType", MpRewardAffectType.class, MpRewardAffectType.SOLO);
|
||||
|
||||
_extendDrop = set.getList("extend_drop", Integer.class);
|
||||
|
||||
if (Config.ENABLE_NPC_STAT_MULTIPIERS) // Custom NPC Stat Multipliers
|
||||
{
|
||||
switch (_type)
|
||||
{
|
||||
case "L2Monster":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.MONSTER_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.MONSTER_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.MONSTER_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.MONSTER_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.MONSTER_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.MONSTER_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.MONSTER_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.MONSTER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2RaidBoss":
|
||||
case "L2GrandBoss":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.RAIDBOSS_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.RAIDBOSS_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.RAIDBOSS_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.RAIDBOSS_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.RAIDBOSS_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.RAIDBOSS_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.RAIDBOSS_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2Guard":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.GUARD_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.GUARD_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.GUARD_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.GUARD_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.GUARD_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.GUARD_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.GUARD_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.GUARD_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2Defender":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.DEFENDER_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.DEFENDER_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.DEFENDER_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.DEFENDER_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.DEFENDER_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.DEFENDER_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.DEFENDER_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.DEFENDER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
46
L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/NpcStatMultipliers.ini
vendored
Normal file
46
L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/NpcStatMultipliers.ini
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
# NPC Stat Multipliers
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# Enable/Disable NPC stat multipliers.
|
||||
EnableNpcStatMultipliers = False
|
||||
|
||||
# Monsters
|
||||
MonsterHP = 1.0
|
||||
MonsterMP = 1.0
|
||||
MonsterPAtk = 1.0
|
||||
MonsterMAtk = 1.0
|
||||
MonsterPDef = 1.0
|
||||
MonsterMDef = 1.0
|
||||
MonsterAggroRange = 1.0
|
||||
MonsterClanHelpRange = 1.0
|
||||
|
||||
# Raidbosses
|
||||
RaidbossHP = 1.0
|
||||
RaidbossMP = 1.0
|
||||
RaidbossPAtk = 1.0
|
||||
RaidbossMAtk = 1.0
|
||||
RaidbossPDef = 1.0
|
||||
RaidbossMDef = 1.0
|
||||
RaidbossAggroRange = 1.0
|
||||
RaidbossClanHelpRange = 1.0
|
||||
|
||||
# Guards
|
||||
GuardHP = 1.0
|
||||
GuardMP = 1.0
|
||||
GuardPAtk = 1.0
|
||||
GuardMAtk = 1.0
|
||||
GuardPDef = 1.0
|
||||
GuardMDef = 1.0
|
||||
GuardAggroRange = 1.0
|
||||
GuardClanHelpRange = 1.0
|
||||
|
||||
# Defenders
|
||||
DefenderHP = 1.0
|
||||
DefenderMP = 1.0
|
||||
DefenderPAtk = 1.0
|
||||
DefenderMAtk = 1.0
|
||||
DefenderPDef = 1.0
|
||||
DefenderMDef = 1.0
|
||||
DefenderAggroRange = 1.0
|
||||
DefenderClanHelpRange = 1.0
|
@ -117,6 +117,7 @@ public final class Config
|
||||
public static final String CUSTOM_FACTION_SYSTEM_CONFIG_FILE = "./config/Custom/FactionSystem.ini";
|
||||
public static final String CUSTOM_FIND_PVP_CONFIG_FILE = "./config/Custom/FindPvP.ini";
|
||||
public static final String CUSTOM_MULTILANGUAL_SUPPORT_CONFIG_FILE = "./config/Custom/MultilingualSupport.ini";
|
||||
public static final String CUSTOM_NPC_STAT_MULTIPIERS_CONFIG_FILE = "./config/Custom/NpcStatMultipliers.ini";
|
||||
public static final String CUSTOM_OFFLINE_TRADE_CONFIG_FILE = "./config/Custom/OfflineTrade.ini";
|
||||
public static final String CUSTOM_PASSWORD_CHANGE_CONFIG_FILE = "./config/Custom/PasswordChange.ini";
|
||||
public static final String CUSTOM_PC_CAFE_CONFIG_FILE = "./config/Custom/PcCafe.ini";
|
||||
@ -939,6 +940,39 @@ public final class Config
|
||||
public static boolean BANKING_SYSTEM_ENABLED;
|
||||
public static int BANKING_SYSTEM_GOLDBARS;
|
||||
public static int BANKING_SYSTEM_ADENA;
|
||||
public static boolean ENABLE_NPC_STAT_MULTIPIERS;
|
||||
public static double MONSTER_HP_MULTIPLIER;
|
||||
public static double MONSTER_MP_MULTIPLIER;
|
||||
public static double MONSTER_PATK_MULTIPLIER;
|
||||
public static double MONSTER_MATK_MULTIPLIER;
|
||||
public static double MONSTER_PDEF_MULTIPLIER;
|
||||
public static double MONSTER_MDEF_MULTIPLIER;
|
||||
public static double MONSTER_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double MONSTER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double RAIDBOSS_HP_MULTIPLIER;
|
||||
public static double RAIDBOSS_MP_MULTIPLIER;
|
||||
public static double RAIDBOSS_PATK_MULTIPLIER;
|
||||
public static double RAIDBOSS_MATK_MULTIPLIER;
|
||||
public static double RAIDBOSS_PDEF_MULTIPLIER;
|
||||
public static double RAIDBOSS_MDEF_MULTIPLIER;
|
||||
public static double RAIDBOSS_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double GUARD_HP_MULTIPLIER;
|
||||
public static double GUARD_MP_MULTIPLIER;
|
||||
public static double GUARD_PATK_MULTIPLIER;
|
||||
public static double GUARD_MATK_MULTIPLIER;
|
||||
public static double GUARD_PDEF_MULTIPLIER;
|
||||
public static double GUARD_MDEF_MULTIPLIER;
|
||||
public static double GUARD_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double GUARD_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static double DEFENDER_HP_MULTIPLIER;
|
||||
public static double DEFENDER_MP_MULTIPLIER;
|
||||
public static double DEFENDER_PATK_MULTIPLIER;
|
||||
public static double DEFENDER_MATK_MULTIPLIER;
|
||||
public static double DEFENDER_PDEF_MULTIPLIER;
|
||||
public static double DEFENDER_MDEF_MULTIPLIER;
|
||||
public static double DEFENDER_AGRRO_RANGE_MULTIPLIER;
|
||||
public static double DEFENDER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
public static boolean OFFLINE_TRADE_ENABLE;
|
||||
public static boolean OFFLINE_CRAFT_ENABLE;
|
||||
public static boolean OFFLINE_MODE_IN_PEACE_ZONE;
|
||||
@ -2232,6 +2266,43 @@ public final class Config
|
||||
BANKING_SYSTEM_GOLDBARS = Banking.getInt("BankingGoldbarCount", 1);
|
||||
BANKING_SYSTEM_ADENA = Banking.getInt("BankingAdenaCount", 500000000);
|
||||
|
||||
// Load BoostNpcStats config file (if exists)
|
||||
final PropertiesParser BoostNpcStats = new PropertiesParser(CUSTOM_NPC_STAT_MULTIPIERS_CONFIG_FILE);
|
||||
|
||||
ENABLE_NPC_STAT_MULTIPIERS = BoostNpcStats.getBoolean("EnableNpcStatMultipliers", false);
|
||||
MONSTER_HP_MULTIPLIER = BoostNpcStats.getDouble("MonsterHP", 1.0);
|
||||
MONSTER_MP_MULTIPLIER = BoostNpcStats.getDouble("MonsterMP", 1.0);
|
||||
MONSTER_PATK_MULTIPLIER = BoostNpcStats.getDouble("MonsterPAtk", 1.0);
|
||||
MONSTER_MATK_MULTIPLIER = BoostNpcStats.getDouble("MonsterMAtk", 1.0);
|
||||
MONSTER_PDEF_MULTIPLIER = BoostNpcStats.getDouble("MonsterPDef", 1.0);
|
||||
MONSTER_MDEF_MULTIPLIER = BoostNpcStats.getDouble("MonsterMDef", 1.0);
|
||||
MONSTER_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("MonsterAggroRange", 1.0);
|
||||
MONSTER_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("MonsterClanHelpRange", 1.0);
|
||||
RAIDBOSS_HP_MULTIPLIER = BoostNpcStats.getDouble("RaidbossHP", 1.0);
|
||||
RAIDBOSS_MP_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMP", 1.0);
|
||||
RAIDBOSS_PATK_MULTIPLIER = BoostNpcStats.getDouble("RaidbossPAtk", 1.0);
|
||||
RAIDBOSS_MATK_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMAtk", 1.0);
|
||||
RAIDBOSS_PDEF_MULTIPLIER = BoostNpcStats.getDouble("RaidbossPDef", 1.0);
|
||||
RAIDBOSS_MDEF_MULTIPLIER = BoostNpcStats.getDouble("RaidbossMDef", 1.0);
|
||||
RAIDBOSS_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("RaidbossAggroRange", 1.0);
|
||||
RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("RaidbossClanHelpRange", 1.0);
|
||||
GUARD_HP_MULTIPLIER = BoostNpcStats.getDouble("GuardHP", 1.0);
|
||||
GUARD_MP_MULTIPLIER = BoostNpcStats.getDouble("GuardMP", 1.0);
|
||||
GUARD_PATK_MULTIPLIER = BoostNpcStats.getDouble("GuardPAtk", 1.0);
|
||||
GUARD_MATK_MULTIPLIER = BoostNpcStats.getDouble("GuardMAtk", 1.0);
|
||||
GUARD_PDEF_MULTIPLIER = BoostNpcStats.getDouble("GuardPDef", 1.0);
|
||||
GUARD_MDEF_MULTIPLIER = BoostNpcStats.getDouble("GuardMDef", 1.0);
|
||||
GUARD_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("GuardAggroRange", 1.0);
|
||||
GUARD_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("GuardClanHelpRange", 1.0);
|
||||
DEFENDER_HP_MULTIPLIER = BoostNpcStats.getDouble("DefenderHP", 1.0);
|
||||
DEFENDER_MP_MULTIPLIER = BoostNpcStats.getDouble("DefenderMP", 1.0);
|
||||
DEFENDER_PATK_MULTIPLIER = BoostNpcStats.getDouble("DefenderPAtk", 1.0);
|
||||
DEFENDER_MATK_MULTIPLIER = BoostNpcStats.getDouble("DefenderMAtk", 1.0);
|
||||
DEFENDER_PDEF_MULTIPLIER = BoostNpcStats.getDouble("DefenderPDef", 1.0);
|
||||
DEFENDER_MDEF_MULTIPLIER = BoostNpcStats.getDouble("DefenderMDef", 1.0);
|
||||
DEFENDER_AGRRO_RANGE_MULTIPLIER = BoostNpcStats.getDouble("DefenderAggroRange", 1.0);
|
||||
DEFENDER_CLAN_HELP_RANGE_MULTIPLIER = BoostNpcStats.getDouble("DefenderClanHelpRange", 1.0);
|
||||
|
||||
// Load ChampionMonster config file (if exists)
|
||||
final PropertiesParser ChampionMonster = new PropertiesParser(CUSTOM_CHAMPION_MONSTERS_CONFIG_FILE);
|
||||
|
||||
|
@ -189,6 +189,62 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
|
||||
_mpRewardAffectType = set.getEnum("mpRewardAffectType", MpRewardAffectType.class, MpRewardAffectType.SOLO);
|
||||
|
||||
_extendDrop = set.getList("extend_drop", Integer.class);
|
||||
|
||||
if (Config.ENABLE_NPC_STAT_MULTIPIERS) // Custom NPC Stat Multipliers
|
||||
{
|
||||
switch (_type)
|
||||
{
|
||||
case "L2Monster":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.MONSTER_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.MONSTER_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.MONSTER_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.MONSTER_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.MONSTER_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.MONSTER_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.MONSTER_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.MONSTER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2RaidBoss":
|
||||
case "L2GrandBoss":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.RAIDBOSS_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.RAIDBOSS_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.RAIDBOSS_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.RAIDBOSS_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.RAIDBOSS_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.RAIDBOSS_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.RAIDBOSS_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.RAIDBOSS_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2Guard":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.GUARD_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.GUARD_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.GUARD_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.GUARD_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.GUARD_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.GUARD_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.GUARD_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.GUARD_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
case "L2Defender":
|
||||
{
|
||||
super._baseValues.put(Stats.MAX_HP, super.getBaseHpMax() * Config.DEFENDER_HP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAX_MP, super.getBaseMpMax() * Config.DEFENDER_MP_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_ATTACK, super.getBasePAtk() * Config.DEFENDER_PATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGIC_ATTACK, super.getBaseMAtk() * Config.DEFENDER_MATK_MULTIPLIER);
|
||||
super._baseValues.put(Stats.PHYSICAL_DEFENCE, super.getBasePDef() * Config.DEFENDER_PDEF_MULTIPLIER);
|
||||
super._baseValues.put(Stats.MAGICAL_DEFENCE, super.getBaseMDef() * Config.DEFENDER_MDEF_MULTIPLIER);
|
||||
_aggroRange *= Config.DEFENDER_AGRRO_RANGE_MULTIPLIER;
|
||||
_clanHelpRange *= Config.DEFENDER_CLAN_HELP_RANGE_MULTIPLIER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user