Calculate magic success by target level and skill magic level configuration.
This commit is contained in:
@@ -157,6 +157,10 @@ VampiricAttackWorkWithSkills = True
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = True
|
MpVampiricAttackWorkWithMelee = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -189,6 +189,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1705,6 +1706,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -157,6 +157,10 @@ VampiricAttackWorkWithSkills = True
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = True
|
MpVampiricAttackWorkWithMelee = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -196,6 +196,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1725,6 +1726,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -157,6 +157,10 @@ VampiricAttackWorkWithSkills = True
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = True
|
MpVampiricAttackWorkWithMelee = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -196,6 +196,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1738,6 +1739,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -157,6 +157,10 @@ VampiricAttackWorkWithSkills = True
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = True
|
MpVampiricAttackWorkWithMelee = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -196,6 +196,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1725,6 +1726,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -157,6 +157,10 @@ VampiricAttackWorkWithSkills = True
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = True
|
MpVampiricAttackWorkWithMelee = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -203,6 +203,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1734,6 +1735,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -157,6 +157,10 @@ VampiricAttackWorkWithSkills = True
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = True
|
MpVampiricAttackWorkWithMelee = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -203,6 +203,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1741,6 +1742,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -161,6 +161,10 @@ VampiricAttackWorkWithSkills = True
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = True
|
MpVampiricAttackWorkWithMelee = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -204,6 +204,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1776,6 +1777,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -161,6 +161,10 @@ VampiricAttackWorkWithSkills = True
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = True
|
MpVampiricAttackWorkWithMelee = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -204,6 +204,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1784,6 +1785,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -161,6 +161,10 @@ VampiricAttackWorkWithSkills = True
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = True
|
MpVampiricAttackWorkWithMelee = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = False
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1757,6 +1758,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -161,6 +161,10 @@ VampiricAttackWorkWithSkills = True
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = True
|
MpVampiricAttackWorkWithMelee = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = False
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1759,6 +1760,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -161,6 +161,10 @@ VampiricAttackWorkWithSkills = True
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = True
|
MpVampiricAttackWorkWithMelee = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = False
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1759,6 +1760,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -161,6 +161,10 @@ VampiricAttackWorkWithSkills = True
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = True
|
MpVampiricAttackWorkWithMelee = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = False
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1759,6 +1760,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
@@ -812,7 +812,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -169,6 +169,10 @@ FakeDeathUntarget = False
|
|||||||
# Stand when fake death is active and taking damage.
|
# Stand when fake death is active and taking damage.
|
||||||
FakeDeathDamageStand = True
|
FakeDeathDamageStand = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -181,6 +181,7 @@ public class Config
|
|||||||
public static long EFFECT_TICK_RATIO;
|
public static long EFFECT_TICK_RATIO;
|
||||||
public static boolean FAKE_DEATH_UNTARGET;
|
public static boolean FAKE_DEATH_UNTARGET;
|
||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean ALLOW_CLASS_MASTERS;
|
public static boolean ALLOW_CLASS_MASTERS;
|
||||||
public static ClassMasterSettings CLASS_MASTER_SETTINGS;
|
public static ClassMasterSettings CLASS_MASTER_SETTINGS;
|
||||||
public static boolean ALLOW_ENTIRE_TREE;
|
public static boolean ALLOW_ENTIRE_TREE;
|
||||||
@@ -1690,6 +1691,7 @@ public class Config
|
|||||||
EFFECT_TICK_RATIO = characterConfig.getLong("EffectTickRatio", 666);
|
EFFECT_TICK_RATIO = characterConfig.getLong("EffectTickRatio", 666);
|
||||||
FAKE_DEATH_UNTARGET = characterConfig.getBoolean("FakeDeathUntarget", false);
|
FAKE_DEATH_UNTARGET = characterConfig.getBoolean("FakeDeathUntarget", false);
|
||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", true);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", true);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
ALLOW_CLASS_MASTERS = characterConfig.getBoolean("AllowClassMasters", false);
|
ALLOW_CLASS_MASTERS = characterConfig.getBoolean("AllowClassMasters", false);
|
||||||
ALLOW_ENTIRE_TREE = characterConfig.getBoolean("AllowEntireTree", false);
|
ALLOW_ENTIRE_TREE = characterConfig.getBoolean("AllowEntireTree", false);
|
||||||
ALTERNATE_CLASS_MASTER = characterConfig.getBoolean("AlternateClassMaster", false);
|
ALTERNATE_CLASS_MASTER = characterConfig.getBoolean("AlternateClassMaster", false);
|
||||||
|
|||||||
@@ -1398,9 +1398,7 @@ public class Formulas
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: Fix this LevelMod Formula.
|
final double lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
final int levelDifference = (target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
|
||||||
final double lvlModifier = Math.pow(1.3, levelDifference);
|
|
||||||
float targetModifier = 1;
|
float targetModifier = 1;
|
||||||
if (target.isAttackable() && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && (attacker.getActingPlayer() != null) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if (target.isAttackable() && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && (attacker.getActingPlayer() != null) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -169,6 +169,10 @@ FakeDeathUntarget = False
|
|||||||
# Stand when fake death is active and taking damage.
|
# Stand when fake death is active and taking damage.
|
||||||
FakeDeathDamageStand = True
|
FakeDeathDamageStand = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -185,6 +185,7 @@ public class Config
|
|||||||
public static long EFFECT_TICK_RATIO;
|
public static long EFFECT_TICK_RATIO;
|
||||||
public static boolean FAKE_DEATH_UNTARGET;
|
public static boolean FAKE_DEATH_UNTARGET;
|
||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean ALLOW_CLASS_MASTERS;
|
public static boolean ALLOW_CLASS_MASTERS;
|
||||||
public static ClassMasterSettings CLASS_MASTER_SETTINGS;
|
public static ClassMasterSettings CLASS_MASTER_SETTINGS;
|
||||||
public static boolean ALLOW_ENTIRE_TREE;
|
public static boolean ALLOW_ENTIRE_TREE;
|
||||||
@@ -1747,6 +1748,7 @@ public class Config
|
|||||||
EFFECT_TICK_RATIO = characterConfig.getLong("EffectTickRatio", 666);
|
EFFECT_TICK_RATIO = characterConfig.getLong("EffectTickRatio", 666);
|
||||||
FAKE_DEATH_UNTARGET = characterConfig.getBoolean("FakeDeathUntarget", false);
|
FAKE_DEATH_UNTARGET = characterConfig.getBoolean("FakeDeathUntarget", false);
|
||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", true);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", true);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
ALLOW_CLASS_MASTERS = characterConfig.getBoolean("AllowClassMasters", false);
|
ALLOW_CLASS_MASTERS = characterConfig.getBoolean("AllowClassMasters", false);
|
||||||
ALLOW_ENTIRE_TREE = characterConfig.getBoolean("AllowEntireTree", false);
|
ALLOW_ENTIRE_TREE = characterConfig.getBoolean("AllowEntireTree", false);
|
||||||
ALTERNATE_CLASS_MASTER = characterConfig.getBoolean("AlternateClassMaster", false);
|
ALTERNATE_CLASS_MASTER = characterConfig.getBoolean("AlternateClassMaster", false);
|
||||||
|
|||||||
@@ -1431,9 +1431,7 @@ public class Formulas
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: Fix this LevelMod Formula.
|
final double lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
final int levelDifference = (target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
|
||||||
final double lvlModifier = Math.pow(1.3, levelDifference);
|
|
||||||
float targetModifier = 1;
|
float targetModifier = 1;
|
||||||
if (target.isAttackable() && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && (attacker.getActingPlayer() != null) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if (target.isAttackable() && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && (attacker.getActingPlayer() != null) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -170,6 +170,10 @@ FakeDeathUntarget = False
|
|||||||
# Stand when fake death is active and taking damage.
|
# Stand when fake death is active and taking damage.
|
||||||
FakeDeathDamageStand = True
|
FakeDeathDamageStand = True
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -186,6 +186,7 @@ public class Config
|
|||||||
public static long EFFECT_TICK_RATIO;
|
public static long EFFECT_TICK_RATIO;
|
||||||
public static boolean FAKE_DEATH_UNTARGET;
|
public static boolean FAKE_DEATH_UNTARGET;
|
||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean ALLOW_CLASS_MASTERS;
|
public static boolean ALLOW_CLASS_MASTERS;
|
||||||
public static ClassMasterSettings CLASS_MASTER_SETTINGS;
|
public static ClassMasterSettings CLASS_MASTER_SETTINGS;
|
||||||
public static boolean ALLOW_ENTIRE_TREE;
|
public static boolean ALLOW_ENTIRE_TREE;
|
||||||
@@ -1748,6 +1749,7 @@ public class Config
|
|||||||
EFFECT_TICK_RATIO = characterConfig.getLong("EffectTickRatio", 666);
|
EFFECT_TICK_RATIO = characterConfig.getLong("EffectTickRatio", 666);
|
||||||
FAKE_DEATH_UNTARGET = characterConfig.getBoolean("FakeDeathUntarget", false);
|
FAKE_DEATH_UNTARGET = characterConfig.getBoolean("FakeDeathUntarget", false);
|
||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", true);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", true);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
ALLOW_CLASS_MASTERS = characterConfig.getBoolean("AllowClassMasters", false);
|
ALLOW_CLASS_MASTERS = characterConfig.getBoolean("AllowClassMasters", false);
|
||||||
ALLOW_ENTIRE_TREE = characterConfig.getBoolean("AllowEntireTree", false);
|
ALLOW_ENTIRE_TREE = characterConfig.getBoolean("AllowEntireTree", false);
|
||||||
ALTERNATE_CLASS_MASTER = characterConfig.getBoolean("AlternateClassMaster", false);
|
ALTERNATE_CLASS_MASTER = characterConfig.getBoolean("AlternateClassMaster", false);
|
||||||
|
|||||||
@@ -1431,9 +1431,7 @@ public class Formulas
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: Fix this LevelMod Formula.
|
final double lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
final int levelDifference = (target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
|
||||||
final double lvlModifier = Math.pow(1.3, levelDifference);
|
|
||||||
float targetModifier = 1;
|
float targetModifier = 1;
|
||||||
if (target.isAttackable() && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && (attacker.getActingPlayer() != null) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if (target.isAttackable() && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && (attacker.getActingPlayer() != null) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -150,6 +150,10 @@ VampiricAttackWorkWithSkills = False
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = False
|
MpVampiricAttackWorkWithMelee = False
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1693,6 +1694,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -150,6 +150,10 @@ VampiricAttackWorkWithSkills = False
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = False
|
MpVampiricAttackWorkWithMelee = False
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1697,6 +1698,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -150,6 +150,10 @@ VampiricAttackWorkWithSkills = False
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = False
|
MpVampiricAttackWorkWithMelee = False
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1697,6 +1698,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -150,6 +150,10 @@ VampiricAttackWorkWithSkills = False
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = False
|
MpVampiricAttackWorkWithMelee = False
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1697,6 +1698,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -807,7 +807,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -150,6 +150,10 @@ VampiricAttackWorkWithSkills = False
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = False
|
MpVampiricAttackWorkWithMelee = False
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1702,6 +1703,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -807,7 +807,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -150,6 +150,10 @@ VampiricAttackWorkWithSkills = False
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = False
|
MpVampiricAttackWorkWithMelee = False
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1708,6 +1709,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -807,7 +807,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -150,6 +150,10 @@ VampiricAttackWorkWithSkills = False
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = False
|
MpVampiricAttackWorkWithMelee = False
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = True
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -196,6 +196,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1700,6 +1701,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -806,7 +806,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -150,6 +150,10 @@ VampiricAttackWorkWithSkills = False
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = False
|
MpVampiricAttackWorkWithMelee = False
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = False
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -199,6 +199,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1729,6 +1730,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -807,7 +807,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -150,6 +150,10 @@ VampiricAttackWorkWithSkills = False
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = False
|
MpVampiricAttackWorkWithMelee = False
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = False
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -199,6 +199,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1733,6 +1734,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -807,7 +807,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -150,6 +150,10 @@ VampiricAttackWorkWithSkills = False
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = False
|
MpVampiricAttackWorkWithMelee = False
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = False
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -200,6 +200,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1740,6 +1741,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -807,7 +807,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -150,6 +150,10 @@ VampiricAttackWorkWithSkills = False
|
|||||||
# MP vampiric attacks work with melee.
|
# MP vampiric attacks work with melee.
|
||||||
MpVampiricAttackWorkWithMelee = False
|
MpVampiricAttackWorkWithMelee = False
|
||||||
|
|
||||||
|
# Calculate magic success by target level and skill magic level (when available).
|
||||||
|
# Otherwise target level and (alternatively) attacker level is used.
|
||||||
|
CalculateMagicSuccessBySkillMagicLevel = False
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Class, Sub-class and skill learning options
|
# Class, Sub-class and skill learning options
|
||||||
|
|||||||
@@ -200,6 +200,7 @@ public class Config
|
|||||||
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
public static boolean FAKE_DEATH_DAMAGE_STAND;
|
||||||
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
public static boolean VAMPIRIC_ATTACK_WORKS_WITH_SKILLS;
|
||||||
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
|
||||||
|
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
|
||||||
public static boolean LIFE_CRYSTAL_NEEDED;
|
public static boolean LIFE_CRYSTAL_NEEDED;
|
||||||
public static boolean DIVINE_SP_BOOK_NEEDED;
|
public static boolean DIVINE_SP_BOOK_NEEDED;
|
||||||
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
|
||||||
@@ -1740,6 +1741,7 @@ public class Config
|
|||||||
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
FAKE_DEATH_DAMAGE_STAND = characterConfig.getBoolean("FakeDeathDamageStand", false);
|
||||||
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
VAMPIRIC_ATTACK_WORKS_WITH_SKILLS = characterConfig.getBoolean("VampiricAttackWorkWithSkills", true);
|
||||||
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
|
||||||
|
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
|
||||||
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
|
||||||
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
|
||||||
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
|
||||||
|
|||||||
+1
-1
@@ -813,7 +813,7 @@ public class Formulas
|
|||||||
int mAccModifier = 1;
|
int mAccModifier = 1;
|
||||||
if (attacker.isAttackable() || target.isAttackable())
|
if (attacker.isAttackable() || target.isAttackable())
|
||||||
{
|
{
|
||||||
lvlModifier = Math.pow(1.3, target.getLevel() - (skill.getMagicLevel() > 0 ? skill.getMagicLevel() : attacker.getLevel()));
|
lvlModifier = Math.pow(1.3, target.getLevel() - (Config.CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL && (skill.getMagicLevel() > 0) ? skill.getMagicLevel() : attacker.getLevel()));
|
||||||
|
|
||||||
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
if ((attacker.getActingPlayer() != null) && !target.isRaid() && !target.isRaidMinion() && (target.getLevel() >= Config.MIN_NPC_LEVEL_MAGIC_PENALTY) && ((target.getLevel() - attacker.getActingPlayer().getLevel()) >= 3))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user