Skill mastery related changes.
Contributed by NviX.
This commit is contained in:
parent
62c1efce6a
commit
bee9a4c890
@ -47,3 +47,5 @@ PveBlowSkillDefenceMultipliers =
|
||||
PvpBlowSkillDefenceMultipliers =
|
||||
|
||||
PlayerHealingSkillMultipliers =
|
||||
|
||||
SkillMasteryChanceMultipliers =
|
||||
|
@ -1328,7 +1328,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
@ -1340,7 +1340,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
|
@ -49,7 +49,7 @@
|
||||
<value level="10">110</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -186,7 +186,7 @@
|
||||
<value level="10">110</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -45,7 +45,7 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -410,13 +410,8 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
<weaponType>
|
||||
<item>BOW</item>
|
||||
<item>CROSSBOW</item>
|
||||
<item>TWOHANDCROSSBOW</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
<amount>10</amount>
|
||||
|
@ -53,7 +53,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -356,7 +356,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -47,7 +47,7 @@
|
||||
</magicLvl>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="TriggerSkillByAttack">
|
||||
|
@ -149,7 +149,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -1971,7 +1971,7 @@
|
||||
<value level="3">85</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="StatUp">
|
||||
|
@ -1136,6 +1136,7 @@ public class Config
|
||||
public static Map<ClassId, Float> PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PLAYER_HEALING_SKILL_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> SKILL_MASTERY_CHANCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static boolean MULTILANG_ENABLE;
|
||||
public static List<String> MULTILANG_ALLOWED = new ArrayList<>();
|
||||
public static String MULTILANG_DEFAULT;
|
||||
@ -2939,6 +2940,20 @@ public class Config
|
||||
}
|
||||
}
|
||||
}
|
||||
final String[] skillMasteryChanceMultipliers = ClassBalance.getString("SkillMasteryChanceMultipliers", "").trim().split(";");
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.clear();
|
||||
if (skillMasteryChanceMultipliers.length > 0)
|
||||
{
|
||||
for (String info : skillMasteryChanceMultipliers)
|
||||
{
|
||||
final String[] classInfo = info.trim().split("[*]");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
final String id = classInfo[0].trim();
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load CommunityBoard config file (if exists)
|
||||
final PropertiesParser CommunityBoard = new PropertiesParser(CUSTOM_COMMUNITY_BOARD_CONFIG_FILE);
|
||||
|
@ -960,7 +960,7 @@ public class Formulas
|
||||
|
||||
final double chance = BaseStats.values()[val].calcBonus(actor) * actor.getStat().getValue(Stats.SKILL_CRITICAL_PROBABILITY, 1);
|
||||
|
||||
return ((Rnd.nextDouble() * 100.) < chance);
|
||||
return ((Rnd.nextDouble() * 100.) < (chance * Config.SKILL_MASTERY_CHANCE_MULTIPLIERS.getOrDefault(actor.getActingPlayer().getClassId(), 1f)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -47,3 +47,5 @@ PveBlowSkillDefenceMultipliers =
|
||||
PvpBlowSkillDefenceMultipliers =
|
||||
|
||||
PlayerHealingSkillMultipliers =
|
||||
|
||||
SkillMasteryChanceMultipliers =
|
||||
|
@ -1328,7 +1328,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
@ -1340,7 +1340,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
|
@ -49,7 +49,7 @@
|
||||
<value level="10">110</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -186,7 +186,7 @@
|
||||
<value level="10">110</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -45,7 +45,7 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -421,13 +421,8 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
<weaponType>
|
||||
<item>BOW</item>
|
||||
<item>CROSSBOW</item>
|
||||
<item>TWOHANDCROSSBOW</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
<amount>10</amount>
|
||||
|
@ -53,7 +53,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -363,7 +363,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -47,7 +47,7 @@
|
||||
</magicLvl>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="TriggerSkillByAttack">
|
||||
|
@ -149,7 +149,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -2343,7 +2343,7 @@
|
||||
<value level="3">85</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="StatUp">
|
||||
|
@ -1143,6 +1143,7 @@ public class Config
|
||||
public static Map<ClassId, Float> PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PLAYER_HEALING_SKILL_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> SKILL_MASTERY_CHANCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static boolean MULTILANG_ENABLE;
|
||||
public static List<String> MULTILANG_ALLOWED = new ArrayList<>();
|
||||
public static String MULTILANG_DEFAULT;
|
||||
@ -2956,6 +2957,20 @@ public class Config
|
||||
}
|
||||
}
|
||||
}
|
||||
final String[] skillMasteryChanceMultipliers = ClassBalance.getString("SkillMasteryChanceMultipliers", "").trim().split(";");
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.clear();
|
||||
if (skillMasteryChanceMultipliers.length > 0)
|
||||
{
|
||||
for (String info : skillMasteryChanceMultipliers)
|
||||
{
|
||||
final String[] classInfo = info.trim().split("[*]");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
final String id = classInfo[0].trim();
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load CommunityBoard config file (if exists)
|
||||
final PropertiesParser CommunityBoard = new PropertiesParser(CUSTOM_COMMUNITY_BOARD_CONFIG_FILE);
|
||||
|
@ -960,7 +960,7 @@ public class Formulas
|
||||
|
||||
final double chance = BaseStats.values()[val].calcBonus(actor) * actor.getStat().getValue(Stats.SKILL_CRITICAL_PROBABILITY, 1);
|
||||
|
||||
return ((Rnd.nextDouble() * 100.) < chance);
|
||||
return ((Rnd.nextDouble() * 100.) < (chance * Config.SKILL_MASTERY_CHANCE_MULTIPLIERS.getOrDefault(actor.getActingPlayer().getClassId(), 1f)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -47,3 +47,5 @@ PveBlowSkillDefenceMultipliers =
|
||||
PvpBlowSkillDefenceMultipliers =
|
||||
|
||||
PlayerHealingSkillMultipliers =
|
||||
|
||||
SkillMasteryChanceMultipliers =
|
||||
|
@ -1328,7 +1328,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
@ -1340,7 +1340,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
|
@ -49,7 +49,7 @@
|
||||
<value level="10">110</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -186,7 +186,7 @@
|
||||
<value level="10">110</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -45,7 +45,7 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -421,13 +421,8 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
<weaponType>
|
||||
<item>BOW</item>
|
||||
<item>CROSSBOW</item>
|
||||
<item>TWOHANDCROSSBOW</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
<amount>10</amount>
|
||||
|
@ -53,7 +53,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -387,7 +387,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -47,7 +47,7 @@
|
||||
</magicLvl>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="TriggerSkillByAttack">
|
||||
|
@ -149,7 +149,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -2342,7 +2342,7 @@
|
||||
<value level="3">85</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="StatUp">
|
||||
|
@ -1156,6 +1156,7 @@ public class Config
|
||||
public static Map<ClassId, Float> PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PLAYER_HEALING_SKILL_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> SKILL_MASTERY_CHANCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static boolean MULTILANG_ENABLE;
|
||||
public static List<String> MULTILANG_ALLOWED = new ArrayList<>();
|
||||
public static String MULTILANG_DEFAULT;
|
||||
@ -2980,6 +2981,20 @@ public class Config
|
||||
}
|
||||
}
|
||||
}
|
||||
final String[] skillMasteryChanceMultipliers = ClassBalance.getString("SkillMasteryChanceMultipliers", "").trim().split(";");
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.clear();
|
||||
if (skillMasteryChanceMultipliers.length > 0)
|
||||
{
|
||||
for (String info : skillMasteryChanceMultipliers)
|
||||
{
|
||||
final String[] classInfo = info.trim().split("[*]");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
final String id = classInfo[0].trim();
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load CommunityBoard config file (if exists)
|
||||
final PropertiesParser CommunityBoard = new PropertiesParser(CUSTOM_COMMUNITY_BOARD_CONFIG_FILE);
|
||||
|
@ -960,7 +960,7 @@ public class Formulas
|
||||
|
||||
final double chance = BaseStats.values()[val].calcBonus(actor) * actor.getStat().getValue(Stats.SKILL_CRITICAL_PROBABILITY, 1);
|
||||
|
||||
return ((Rnd.nextDouble() * 100.) < chance);
|
||||
return ((Rnd.nextDouble() * 100.) < (chance * Config.SKILL_MASTERY_CHANCE_MULTIPLIERS.getOrDefault(actor.getActingPlayer().getClassId(), 1f)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -47,3 +47,5 @@ PveBlowSkillDefenceMultipliers =
|
||||
PvpBlowSkillDefenceMultipliers =
|
||||
|
||||
PlayerHealingSkillMultipliers =
|
||||
|
||||
SkillMasteryChanceMultipliers =
|
||||
|
@ -1328,7 +1328,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
@ -1340,7 +1340,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
|
@ -49,7 +49,7 @@
|
||||
<value level="10">110</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -186,7 +186,7 @@
|
||||
<value level="10">110</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -45,7 +45,7 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -447,13 +447,8 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
<weaponType>
|
||||
<item>BOW</item>
|
||||
<item>CROSSBOW</item>
|
||||
<item>TWOHANDCROSSBOW</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
<amount>10</amount>
|
||||
|
@ -53,7 +53,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -378,7 +378,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -47,7 +47,7 @@
|
||||
</magicLvl>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="TriggerSkillByAttack">
|
||||
|
@ -149,7 +149,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -2300,7 +2300,7 @@
|
||||
<value level="3">85</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="StatUp">
|
||||
|
@ -1143,6 +1143,7 @@ public class Config
|
||||
public static Map<ClassId, Float> PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PLAYER_HEALING_SKILL_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> SKILL_MASTERY_CHANCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static boolean MULTILANG_ENABLE;
|
||||
public static List<String> MULTILANG_ALLOWED = new ArrayList<>();
|
||||
public static String MULTILANG_DEFAULT;
|
||||
@ -2954,6 +2955,20 @@ public class Config
|
||||
}
|
||||
}
|
||||
}
|
||||
final String[] skillMasteryChanceMultipliers = ClassBalance.getString("SkillMasteryChanceMultipliers", "").trim().split(";");
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.clear();
|
||||
if (skillMasteryChanceMultipliers.length > 0)
|
||||
{
|
||||
for (String info : skillMasteryChanceMultipliers)
|
||||
{
|
||||
final String[] classInfo = info.trim().split("[*]");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
final String id = classInfo[0].trim();
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load CommunityBoard config file (if exists)
|
||||
final PropertiesParser CommunityBoard = new PropertiesParser(CUSTOM_COMMUNITY_BOARD_CONFIG_FILE);
|
||||
|
@ -960,7 +960,7 @@ public class Formulas
|
||||
|
||||
final double chance = BaseStats.values()[val].calcBonus(actor) * actor.getStat().getValue(Stats.SKILL_CRITICAL_PROBABILITY, 1);
|
||||
|
||||
return ((Rnd.nextDouble() * 100.) < chance);
|
||||
return ((Rnd.nextDouble() * 100.) < (chance * Config.SKILL_MASTERY_CHANCE_MULTIPLIERS.getOrDefault(actor.getActingPlayer().getClassId(), 1f)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -47,3 +47,5 @@ PveBlowSkillDefenceMultipliers =
|
||||
PvpBlowSkillDefenceMultipliers =
|
||||
|
||||
PlayerHealingSkillMultipliers =
|
||||
|
||||
SkillMasteryChanceMultipliers =
|
||||
|
@ -1328,7 +1328,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
@ -1340,7 +1340,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
|
@ -92,7 +92,7 @@
|
||||
<item>BLUNT</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="Accuracy">
|
||||
|
@ -192,7 +192,7 @@
|
||||
<value level="10">110</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -45,7 +45,7 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -476,13 +476,8 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
<weaponType>
|
||||
<item>BOW</item>
|
||||
<item>CROSSBOW</item>
|
||||
<item>TWOHANDCROSSBOW</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
<amount>10</amount>
|
||||
|
@ -53,7 +53,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -378,7 +378,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -47,7 +47,7 @@
|
||||
</magicLvl>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="TriggerSkillByAttack">
|
||||
|
@ -149,7 +149,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -2300,7 +2300,7 @@
|
||||
<value level="3">85</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="StatUp">
|
||||
|
@ -1139,6 +1139,7 @@ public class Config
|
||||
public static Map<ClassId, Float> PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PLAYER_HEALING_SKILL_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> SKILL_MASTERY_CHANCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static boolean MULTILANG_ENABLE;
|
||||
public static List<String> MULTILANG_ALLOWED = new ArrayList<>();
|
||||
public static String MULTILANG_DEFAULT;
|
||||
@ -3030,6 +3031,20 @@ public class Config
|
||||
}
|
||||
}
|
||||
}
|
||||
final String[] skillMasteryChanceMultipliers = ClassBalance.getString("SkillMasteryChanceMultipliers", "").trim().split(";");
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.clear();
|
||||
if (skillMasteryChanceMultipliers.length > 0)
|
||||
{
|
||||
for (String info : skillMasteryChanceMultipliers)
|
||||
{
|
||||
final String[] classInfo = info.trim().split("[*]");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
final String id = classInfo[0].trim();
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load CommunityBoard config file (if exists)
|
||||
final PropertiesParser CommunityBoard = new PropertiesParser(CUSTOM_COMMUNITY_BOARD_CONFIG_FILE);
|
||||
|
@ -960,7 +960,7 @@ public class Formulas
|
||||
|
||||
final double chance = BaseStats.values()[val].calcBonus(actor) * actor.getStat().getValue(Stats.SKILL_CRITICAL_PROBABILITY, 1);
|
||||
|
||||
return ((Rnd.nextDouble() * 100.) < chance);
|
||||
return ((Rnd.nextDouble() * 100.) < (chance * Config.SKILL_MASTERY_CHANCE_MULTIPLIERS.getOrDefault(actor.getActingPlayer().getClassId(), 1f)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -47,3 +47,5 @@ PveBlowSkillDefenceMultipliers =
|
||||
PvpBlowSkillDefenceMultipliers =
|
||||
|
||||
PlayerHealingSkillMultipliers =
|
||||
|
||||
SkillMasteryChanceMultipliers =
|
||||
|
@ -1328,7 +1328,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
@ -1340,7 +1340,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
|
@ -92,7 +92,7 @@
|
||||
<item>BLUNT</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="Accuracy">
|
||||
|
@ -192,7 +192,7 @@
|
||||
<value level="10">110</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -45,7 +45,7 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -476,13 +476,8 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
<weaponType>
|
||||
<item>BOW</item>
|
||||
<item>CROSSBOW</item>
|
||||
<item>TWOHANDCROSSBOW</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
<amount>10</amount>
|
||||
|
@ -53,7 +53,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -378,7 +378,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -47,7 +47,7 @@
|
||||
</magicLvl>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="TriggerSkillByAttack">
|
||||
|
@ -149,7 +149,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -2300,7 +2300,7 @@
|
||||
<value level="3">85</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="StatUp">
|
||||
|
@ -1139,6 +1139,7 @@ public class Config
|
||||
public static Map<ClassId, Float> PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PLAYER_HEALING_SKILL_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> SKILL_MASTERY_CHANCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static boolean MULTILANG_ENABLE;
|
||||
public static List<String> MULTILANG_ALLOWED = new ArrayList<>();
|
||||
public static String MULTILANG_DEFAULT;
|
||||
@ -3030,6 +3031,20 @@ public class Config
|
||||
}
|
||||
}
|
||||
}
|
||||
final String[] skillMasteryChanceMultipliers = ClassBalance.getString("SkillMasteryChanceMultipliers", "").trim().split(";");
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.clear();
|
||||
if (skillMasteryChanceMultipliers.length > 0)
|
||||
{
|
||||
for (String info : skillMasteryChanceMultipliers)
|
||||
{
|
||||
final String[] classInfo = info.trim().split("[*]");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
final String id = classInfo[0].trim();
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load CommunityBoard config file (if exists)
|
||||
final PropertiesParser CommunityBoard = new PropertiesParser(CUSTOM_COMMUNITY_BOARD_CONFIG_FILE);
|
||||
|
@ -960,7 +960,7 @@ public class Formulas
|
||||
|
||||
final double chance = BaseStats.values()[val].calcBonus(actor) * actor.getStat().getValue(Stats.SKILL_CRITICAL_PROBABILITY, 1);
|
||||
|
||||
return ((Rnd.nextDouble() * 100.) < chance);
|
||||
return ((Rnd.nextDouble() * 100.) < (chance * Config.SKILL_MASTERY_CHANCE_MULTIPLIERS.getOrDefault(actor.getActingPlayer().getClassId(), 1f)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -47,3 +47,5 @@ PveBlowSkillDefenceMultipliers =
|
||||
PvpBlowSkillDefenceMultipliers =
|
||||
|
||||
PlayerHealingSkillMultipliers =
|
||||
|
||||
SkillMasteryChanceMultipliers =
|
||||
|
@ -1336,7 +1336,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
@ -1348,7 +1348,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
|
@ -92,7 +92,7 @@
|
||||
<item>BLUNT</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="Accuracy">
|
||||
|
@ -192,7 +192,7 @@
|
||||
<value level="10">110</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -45,7 +45,7 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -500,13 +500,8 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
<weaponType>
|
||||
<item>BOW</item>
|
||||
<item>CROSSBOW</item>
|
||||
<item>TWOHANDCROSSBOW</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
<amount>10</amount>
|
||||
|
@ -53,7 +53,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -382,7 +382,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -47,7 +47,7 @@
|
||||
</magicLvl>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="TriggerSkillByAttack">
|
||||
|
@ -149,7 +149,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -2370,7 +2370,7 @@
|
||||
<value level="3">85</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="StatUp">
|
||||
|
@ -1161,6 +1161,7 @@ public class Config
|
||||
public static Map<ClassId, Float> PVE_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PVP_BLOW_SKILL_DEFENCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> PLAYER_HEALING_SKILL_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static Map<ClassId, Float> SKILL_MASTERY_CHANCE_MULTIPLIERS = new ConcurrentHashMap<>();
|
||||
public static boolean MULTILANG_ENABLE;
|
||||
public static List<String> MULTILANG_ALLOWED = new ArrayList<>();
|
||||
public static String MULTILANG_DEFAULT;
|
||||
@ -3073,6 +3074,20 @@ public class Config
|
||||
}
|
||||
}
|
||||
}
|
||||
final String[] skillMasteryChanceMultipliers = ClassBalance.getString("SkillMasteryChanceMultipliers", "").trim().split(";");
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.clear();
|
||||
if (skillMasteryChanceMultipliers.length > 0)
|
||||
{
|
||||
for (String info : skillMasteryChanceMultipliers)
|
||||
{
|
||||
final String[] classInfo = info.trim().split("[*]");
|
||||
if (classInfo.length == 2)
|
||||
{
|
||||
final String id = classInfo[0].trim();
|
||||
SKILL_MASTERY_CHANCE_MULTIPLIERS.put(Util.isDigit(id) ? ClassId.getClassId(Integer.parseInt(id)) : Enum.valueOf(ClassId.class, id), Float.parseFloat(classInfo[1].trim()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load CommunityBoard config file (if exists)
|
||||
final PropertiesParser CommunityBoard = new PropertiesParser(CUSTOM_COMMUNITY_BOARD_CONFIG_FILE);
|
||||
|
@ -960,7 +960,7 @@ public class Formulas
|
||||
|
||||
final double chance = BaseStats.values()[val].calcBonus(actor) * actor.getStat().getValue(Stats.SKILL_CRITICAL_PROBABILITY, 1);
|
||||
|
||||
return ((Rnd.nextDouble() * 100.) < chance);
|
||||
return ((Rnd.nextDouble() * 100.) < (chance * Config.SKILL_MASTERY_CHANCE_MULTIPLIERS.getOrDefault(actor.getActingPlayer().getClassId(), 1f)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -47,3 +47,5 @@ PveBlowSkillDefenceMultipliers =
|
||||
PvpBlowSkillDefenceMultipliers =
|
||||
|
||||
PlayerHealingSkillMultipliers =
|
||||
|
||||
SkillMasteryChanceMultipliers =
|
||||
|
@ -1336,7 +1336,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
@ -1348,7 +1348,7 @@
|
||||
<operateType>P</operateType>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
</effects>
|
||||
|
@ -92,7 +92,7 @@
|
||||
<item>BLUNT</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="Accuracy">
|
||||
|
@ -194,7 +194,7 @@
|
||||
<value level="10">110</value>
|
||||
</magicLvl>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -45,7 +45,7 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -500,13 +500,8 @@
|
||||
</magicLvl>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
<weaponType>
|
||||
<item>BOW</item>
|
||||
<item>CROSSBOW</item>
|
||||
<item>TWOHANDCROSSBOW</item>
|
||||
</weaponType>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
<amount>10</amount>
|
||||
|
@ -53,7 +53,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
|
@ -382,7 +382,7 @@
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<operateType>P</operateType>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>INT</stat>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
|
@ -47,7 +47,7 @@
|
||||
</magicLvl>
|
||||
<magicCriticalRate>5</magicCriticalRate>
|
||||
<effects>
|
||||
<effect name="StatBonusSkillCritical">
|
||||
<effect name="SkillCritical">
|
||||
<stat>STR</stat>
|
||||
</effect>
|
||||
<effect name="TriggerSkillByAttack">
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user