Reuse active, non offensive, item skill cooldown on equip.

Thanks to Liamxroy.
This commit is contained in:
MobiusDevelopment
2022-12-02 23:42:12 +00:00
parent 8c180a4e96
commit 9aef448d32
78 changed files with 1378 additions and 182 deletions
+10
View File
@@ -165,6 +165,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 80
BlowRateChanceLimit = 80
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -193,6 +193,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1732,6 +1734,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -562,6 +562,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -600,7 +607,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -608,6 +617,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -664,6 +681,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -765,9 +789,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -776,8 +800,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -165,6 +165,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 80
BlowRateChanceLimit = 80
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -200,6 +200,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1753,6 +1755,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -568,6 +568,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -606,7 +613,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -614,6 +623,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -670,6 +687,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -771,9 +795,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -782,8 +806,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
+10
View File
@@ -165,6 +165,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 80
BlowRateChanceLimit = 80
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -200,6 +200,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1766,6 +1768,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -568,6 +568,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -606,7 +613,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -614,6 +623,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -670,6 +687,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -771,9 +795,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -782,8 +806,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -165,6 +165,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 80
BlowRateChanceLimit = 80
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -200,6 +200,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1753,6 +1755,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -568,6 +568,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -606,7 +613,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -614,6 +623,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -670,6 +687,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -771,9 +795,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -782,8 +806,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -165,6 +165,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 80
BlowRateChanceLimit = 80
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -207,6 +207,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1762,6 +1764,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -578,6 +578,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -616,7 +623,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -624,6 +633,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -680,6 +697,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -784,9 +808,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -795,8 +819,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -165,6 +165,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 80
BlowRateChanceLimit = 80
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -207,6 +207,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1769,6 +1771,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -601,6 +601,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -639,7 +646,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -647,6 +656,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -703,6 +720,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -807,9 +831,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -818,8 +842,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
+10
View File
@@ -169,6 +169,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 80
BlowRateChanceLimit = 80
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -208,6 +208,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1804,6 +1806,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -601,6 +601,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -639,7 +646,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -647,6 +656,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -703,6 +720,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -807,9 +831,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -818,8 +842,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -169,6 +169,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 80
BlowRateChanceLimit = 80
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -208,6 +208,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1812,6 +1814,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -595,6 +595,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -633,7 +640,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -641,6 +650,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -697,6 +714,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -801,9 +825,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -812,8 +836,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -169,6 +169,16 @@ CalculateMagicSuccessBySkillMagicLevel = False
# Default: 80
BlowRateChanceLimit = 80
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -201,6 +201,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1785,6 +1787,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -577,6 +577,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -615,7 +622,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -623,6 +632,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -679,6 +696,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -783,9 +807,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -794,8 +818,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -169,6 +169,16 @@ CalculateMagicSuccessBySkillMagicLevel = False
# Default: 80
BlowRateChanceLimit = 80
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -201,6 +201,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1787,6 +1789,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -577,6 +577,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -615,7 +622,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -623,6 +632,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -679,6 +696,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -783,9 +807,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -794,8 +818,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -169,6 +169,16 @@ CalculateMagicSuccessBySkillMagicLevel = False
# Default: 80
BlowRateChanceLimit = 80
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -201,6 +201,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1788,6 +1790,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -578,6 +578,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -616,7 +623,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -624,6 +633,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -680,6 +697,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -784,9 +808,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -795,8 +819,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -169,6 +169,16 @@ CalculateMagicSuccessBySkillMagicLevel = False
# Default: 80
BlowRateChanceLimit = 80
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -203,6 +203,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1809,6 +1811,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -578,6 +578,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -616,7 +623,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -624,6 +633,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -680,6 +697,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -784,9 +808,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -795,8 +819,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
+10
View File
@@ -158,6 +158,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -192,6 +192,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1687,6 +1689,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -564,6 +564,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -602,7 +609,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -610,6 +619,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -666,6 +683,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -767,9 +791,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -778,8 +802,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -158,6 +158,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -201,6 +201,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1715,6 +1717,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -564,6 +564,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -602,7 +609,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -610,6 +619,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -666,6 +683,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -767,9 +791,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -778,8 +802,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -158,6 +158,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -201,6 +201,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1718,6 +1720,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -570,6 +570,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -608,7 +615,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -616,6 +625,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -672,6 +689,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -773,9 +797,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -784,8 +808,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -158,6 +158,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -201,6 +201,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1722,6 +1724,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -570,6 +570,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -608,7 +615,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -616,6 +625,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -672,6 +689,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -773,9 +797,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -784,8 +808,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -158,6 +158,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -201,6 +201,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1722,6 +1724,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -580,6 +580,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -618,7 +625,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -626,6 +635,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -682,6 +699,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -786,9 +810,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -797,8 +821,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -158,6 +158,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -201,6 +201,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1722,6 +1724,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -603,6 +603,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -641,7 +648,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -649,6 +658,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -705,6 +722,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -809,9 +833,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -820,8 +844,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -158,6 +158,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -201,6 +201,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1734,6 +1736,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -603,6 +603,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -641,7 +648,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -649,6 +658,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -705,6 +722,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -809,9 +833,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -820,8 +844,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -158,6 +158,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -201,6 +201,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1727,6 +1729,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -603,6 +603,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -641,7 +648,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -649,6 +658,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -705,6 +722,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -809,9 +833,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -820,8 +844,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -158,6 +158,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -201,6 +201,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1734,6 +1736,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -597,6 +597,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -635,7 +642,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -643,6 +652,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -699,6 +716,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -803,9 +827,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -814,8 +838,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -158,6 +158,16 @@ CalculateMagicSuccessBySkillMagicLevel = True
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -200,6 +200,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1725,6 +1727,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", true);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 80);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -562,6 +562,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -600,7 +607,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !player.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!player.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -608,6 +617,14 @@ public abstract class Inventory extends ItemContainer
player.addTimeStamp(skill, equipDelay);
player.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -664,6 +681,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -765,9 +789,9 @@ public abstract class Inventory extends ItemContainer
}
player.addSkill(itemSkill, false);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!player.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !player.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -776,8 +800,16 @@ public abstract class Inventory extends ItemContainer
player.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && player.hasEnteredWorld())
{
player.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -158,6 +158,16 @@ CalculateMagicSuccessBySkillMagicLevel = False
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -203,6 +203,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1757,6 +1759,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 100);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -621,6 +621,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -704,7 +711,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !playable.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!playable.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -712,6 +721,14 @@ public abstract class Inventory extends ItemContainer
playable.addTimeStamp(skill, equipDelay);
playable.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -771,6 +788,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -918,9 +942,9 @@ public abstract class Inventory extends ItemContainer
}
playable.addSkill(itemSkill);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!playable.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !playable.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -929,8 +953,16 @@ public abstract class Inventory extends ItemContainer
playable.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -226,6 +226,16 @@ CalculateMagicSuccessBySkillMagicLevel = False
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -205,6 +205,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1856,6 +1858,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 100);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -630,6 +630,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -713,7 +720,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !playable.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!playable.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -721,6 +730,14 @@ public abstract class Inventory extends ItemContainer
playable.addTimeStamp(skill, equipDelay);
playable.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -780,6 +797,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -927,9 +951,9 @@ public abstract class Inventory extends ItemContainer
}
playable.addSkill(itemSkill);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!playable.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !playable.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -938,8 +962,16 @@ public abstract class Inventory extends ItemContainer
playable.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -226,6 +226,16 @@ CalculateMagicSuccessBySkillMagicLevel = False
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -207,6 +207,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1878,6 +1880,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 100);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -630,6 +630,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -713,7 +720,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !playable.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!playable.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -721,6 +730,14 @@ public abstract class Inventory extends ItemContainer
playable.addTimeStamp(skill, equipDelay);
playable.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -780,6 +797,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -927,9 +951,9 @@ public abstract class Inventory extends ItemContainer
}
playable.addSkill(itemSkill);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!playable.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !playable.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -938,8 +962,16 @@ public abstract class Inventory extends ItemContainer
playable.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}
@@ -226,6 +226,16 @@ CalculateMagicSuccessBySkillMagicLevel = False
# Default: 100
BlowRateChanceLimit = 100
# Disables active, non offensive, item skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 300000 (5 minutes).
ItemEquipActiveSkillReuse = 300000
# Disables active, non offensive, armor set skills for a fixed time upon equip.
# Use 0 to disable.
# Default: 60000 (1 minute).
ArmorSetEquipActiveSkillReuse = 60000
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options
@@ -207,6 +207,8 @@ public class Config
public static boolean MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE;
public static boolean CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL;
public static int BLOW_RATE_CHANCE_LIMIT;
public static int ITEM_EQUIP_ACTIVE_SKILL_REUSE;
public static int ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@@ -1878,6 +1880,8 @@ public class Config
MP_VAMPIRIC_ATTACK_WORKS_WITH_MELEE = characterConfig.getBoolean("MpVampiricAttackWorkWithMelee", false);
CALCULATE_MAGIC_SUCCESS_BY_SKILL_MAGIC_LEVEL = characterConfig.getBoolean("CalculateMagicSuccessBySkillMagicLevel", false);
BLOW_RATE_CHANCE_LIMIT = characterConfig.getInt("BlowRateChanceLimit", 100);
ITEM_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ItemEquipActiveSkillReuse", 300000);
ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE = characterConfig.getInt("ArmorSetEquipActiveSkillReuse", 60000);
LIFE_CRYSTAL_NEEDED = characterConfig.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = characterConfig.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = characterConfig.getBoolean("AltSubClassWithoutQuests", false);
@@ -630,6 +630,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -713,7 +720,9 @@ public abstract class Inventory extends ItemContainer
addedSkills.put(skill.getId(), skill);
}
if (skill.isActive() && !playable.hasSkillReuse(skill.getReuseHashCode()))
if (skill.isActive())
{
if (!playable.hasSkillReuse(skill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -721,6 +730,14 @@ public abstract class Inventory extends ItemContainer
playable.addTimeStamp(skill, equipDelay);
playable.disableSkill(skill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimestamp = true;
}
}
@@ -780,6 +797,13 @@ public abstract class Inventory extends ItemContainer
{
addedSkills.put(skill.getId(), skill);
}
// Active, non offensive, skills start with reuse on equip.
if (skill.isActive() && !skill.isBad() && (Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(skill, Config.ITEM_EQUIP_ACTIVE_SKILL_REUSE);
updateTimestamp = true;
}
}
}
@@ -927,9 +951,9 @@ public abstract class Inventory extends ItemContainer
}
playable.addSkill(itemSkill);
if (itemSkill.isActive() && (item != null))
if (itemSkill.isActive())
{
if (!playable.hasSkillReuse(itemSkill.getReuseHashCode()))
if ((item != null) && !playable.hasSkillReuse(itemSkill.getReuseHashCode()))
{
final int equipDelay = item.getEquipReuseDelay();
if (equipDelay > 0)
@@ -938,8 +962,16 @@ public abstract class Inventory extends ItemContainer
playable.disableSkill(itemSkill, equipDelay);
}
}
// Active, non offensive, skills start with reuse on equip.
if (!itemSkill.isBad() && (Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE > 0) && playable.getActingPlayer().hasEnteredWorld())
{
playable.addTimeStamp(itemSkill, Config.ARMOR_SET_EQUIP_ACTIVE_SKILL_REUSE);
}
updateTimeStamp = true;
}
update = true;
}
}