Class change related skill changes.

Contributed by Liamxroy.
This commit is contained in:
MobiusDevelopment
2019-11-05 22:31:36 +00:00
parent 3427bfc71a
commit da932ecae0
24 changed files with 138 additions and 129 deletions

View File

@@ -57,7 +57,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -88,7 +88,7 @@ public class ClassChange extends AbstractEffect
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
player.sendPacket(new ExAcquireAPSkillList(player)); player.sendPacket(new ExAcquireAPSkillList(player));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -3865,14 +3865,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3895,14 +3895,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3925,14 +3925,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3955,14 +3955,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3989,20 +3989,21 @@
<abnormalType>CLASS_CHANGE</abnormalType> <abnormalType>CLASS_CHANGE</abnormalType>
<operateType>A2</operateType> <operateType>A2</operateType>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>1</isMagic> <isMagic>2</isMagic>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty> <basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>0</magicCriticalRate>
<specialLevel>-2</specialLevel> <specialLevel>-2</specialLevel>
<hitCancelTime>0</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<magicLvl>-2</magicLvl> <magicLvl>-2</magicLvl>
<irreplacableBuff>true</irreplacableBuff> <irreplacableBuff>true</irreplacableBuff>
<isDebuff>true</isDebuff> <isDebuff>true</isDebuff>
<canBeDispelled>false</canBeDispelled>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<effects> <effects>
<effect name="BlockSkill"> <effect name="BlockSkill">
<magicTypes>1;2;3;4;5</magicTypes> <magicTypes>0;1;2;3;4;5;7;22;</magicTypes>
</effect> </effect>
<effect name="PAtk"> <effect name="PAtk">
<amount>-70</amount> <amount>-70</amount>

View File

@@ -57,7 +57,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -88,7 +88,7 @@ public class ClassChange extends AbstractEffect
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
player.sendPacket(new ExAcquireAPSkillList(player)); player.sendPacket(new ExAcquireAPSkillList(player));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -3909,14 +3909,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3939,14 +3939,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3969,14 +3969,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3999,14 +3999,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -4033,20 +4033,21 @@
<abnormalType>CLASS_CHANGE</abnormalType> <abnormalType>CLASS_CHANGE</abnormalType>
<operateType>A2</operateType> <operateType>A2</operateType>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>1</isMagic> <isMagic>2</isMagic>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty> <basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>0</magicCriticalRate>
<specialLevel>-2</specialLevel> <specialLevel>-2</specialLevel>
<hitCancelTime>0</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<magicLvl>-2</magicLvl> <magicLvl>-2</magicLvl>
<irreplacableBuff>true</irreplacableBuff> <irreplacableBuff>true</irreplacableBuff>
<isDebuff>true</isDebuff> <isDebuff>true</isDebuff>
<canBeDispelled>false</canBeDispelled>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<effects> <effects>
<effect name="BlockSkill"> <effect name="BlockSkill">
<magicTypes>1;2;3;4;5</magicTypes> <magicTypes>0;1;2;3;4;5;7;22;</magicTypes>
</effect> </effect>
<effect name="PAtk"> <effect name="PAtk">
<amount>-70</amount> <amount>-70</amount>

View File

@@ -57,7 +57,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -88,7 +88,7 @@ public class ClassChange extends AbstractEffect
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
player.sendPacket(new ExAcquireAPSkillList(player)); player.sendPacket(new ExAcquireAPSkillList(player));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -3909,14 +3909,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3939,14 +3939,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3969,14 +3969,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3999,14 +3999,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -4033,20 +4033,21 @@
<abnormalType>CLASS_CHANGE</abnormalType> <abnormalType>CLASS_CHANGE</abnormalType>
<operateType>A2</operateType> <operateType>A2</operateType>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>1</isMagic> <isMagic>2</isMagic>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty> <basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>0</magicCriticalRate>
<specialLevel>-2</specialLevel> <specialLevel>-2</specialLevel>
<hitCancelTime>0</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<magicLvl>-2</magicLvl> <magicLvl>-2</magicLvl>
<irreplacableBuff>true</irreplacableBuff> <irreplacableBuff>true</irreplacableBuff>
<isDebuff>true</isDebuff> <isDebuff>true</isDebuff>
<canBeDispelled>false</canBeDispelled>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<effects> <effects>
<effect name="BlockSkill"> <effect name="BlockSkill">
<magicTypes>1;2;3;4;5</magicTypes> <magicTypes>0;1;2;3;4;5;7;22;</magicTypes>
</effect> </effect>
<effect name="PAtk"> <effect name="PAtk">
<amount>-70</amount> <amount>-70</amount>

View File

@@ -57,7 +57,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -88,7 +88,7 @@ public class ClassChange extends AbstractEffect
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
player.sendPacket(new ExAcquireAPSkillList(player)); player.sendPacket(new ExAcquireAPSkillList(player));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -3909,14 +3909,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3939,14 +3939,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3969,14 +3969,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3999,14 +3999,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -4033,20 +4033,21 @@
<abnormalType>CLASS_CHANGE</abnormalType> <abnormalType>CLASS_CHANGE</abnormalType>
<operateType>A2</operateType> <operateType>A2</operateType>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>1</isMagic> <isMagic>2</isMagic>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty> <basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>0</magicCriticalRate>
<specialLevel>-2</specialLevel> <specialLevel>-2</specialLevel>
<hitCancelTime>0</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<magicLvl>-2</magicLvl> <magicLvl>-2</magicLvl>
<irreplacableBuff>true</irreplacableBuff> <irreplacableBuff>true</irreplacableBuff>
<isDebuff>true</isDebuff> <isDebuff>true</isDebuff>
<canBeDispelled>false</canBeDispelled>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<effects> <effects>
<effect name="BlockSkill"> <effect name="BlockSkill">
<magicTypes>1;2;3;4;5</magicTypes> <magicTypes>0;1;2;3;4;5;7;22;</magicTypes>
</effect> </effect>
<effect name="PAtk"> <effect name="PAtk">
<amount>-70</amount> <amount>-70</amount>

View File

@@ -57,7 +57,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -88,7 +88,7 @@ public class ClassChange extends AbstractEffect
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
player.sendPacket(new ExAcquireAPSkillList(player)); player.sendPacket(new ExAcquireAPSkillList(player));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -3909,14 +3909,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3939,14 +3939,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3969,14 +3969,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3999,14 +3999,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -4033,20 +4033,21 @@
<abnormalType>CLASS_CHANGE</abnormalType> <abnormalType>CLASS_CHANGE</abnormalType>
<operateType>A2</operateType> <operateType>A2</operateType>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>1</isMagic> <isMagic>2</isMagic>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty> <basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>0</magicCriticalRate>
<specialLevel>-2</specialLevel> <specialLevel>-2</specialLevel>
<hitCancelTime>0</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<magicLvl>-2</magicLvl> <magicLvl>-2</magicLvl>
<irreplacableBuff>true</irreplacableBuff> <irreplacableBuff>true</irreplacableBuff>
<isDebuff>true</isDebuff> <isDebuff>true</isDebuff>
<canBeDispelled>false</canBeDispelled>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<effects> <effects>
<effect name="BlockSkill"> <effect name="BlockSkill">
<magicTypes>1;2;3;4;5</magicTypes> <magicTypes>0;1;2;3;4;5;7;22;</magicTypes>
</effect> </effect>
<effect name="PAtk"> <effect name="PAtk">
<amount>-70</amount> <amount>-70</amount>

View File

@@ -57,7 +57,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -88,7 +88,7 @@ public class ClassChange extends AbstractEffect
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
player.sendPacket(new ExAcquireAPSkillList(player)); player.sendPacket(new ExAcquireAPSkillList(player));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -3909,14 +3909,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3939,14 +3939,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3969,14 +3969,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3999,14 +3999,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -4033,20 +4033,21 @@
<abnormalType>CLASS_CHANGE</abnormalType> <abnormalType>CLASS_CHANGE</abnormalType>
<operateType>A2</operateType> <operateType>A2</operateType>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>1</isMagic> <isMagic>2</isMagic>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty> <basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>0</magicCriticalRate>
<specialLevel>-2</specialLevel> <specialLevel>-2</specialLevel>
<hitCancelTime>0</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<magicLvl>-2</magicLvl> <magicLvl>-2</magicLvl>
<irreplacableBuff>true</irreplacableBuff> <irreplacableBuff>true</irreplacableBuff>
<isDebuff>true</isDebuff> <isDebuff>true</isDebuff>
<canBeDispelled>false</canBeDispelled>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<effects> <effects>
<effect name="BlockSkill"> <effect name="BlockSkill">
<magicTypes>1;2;3;4;5</magicTypes> <magicTypes>0;1;2;3;4;5;7;22;</magicTypes>
</effect> </effect>
<effect name="PAtk"> <effect name="PAtk">
<amount>-70</amount> <amount>-70</amount>

View File

@@ -57,7 +57,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -88,7 +88,7 @@ public class ClassChange extends AbstractEffect
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
player.sendPacket(new ExAcquireAPSkillList(player)); player.sendPacket(new ExAcquireAPSkillList(player));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -3909,14 +3909,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3939,14 +3939,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3969,14 +3969,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3999,14 +3999,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -4033,20 +4033,21 @@
<abnormalType>CLASS_CHANGE</abnormalType> <abnormalType>CLASS_CHANGE</abnormalType>
<operateType>A2</operateType> <operateType>A2</operateType>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>1</isMagic> <isMagic>2</isMagic>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty> <basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>0</magicCriticalRate>
<specialLevel>-2</specialLevel> <specialLevel>-2</specialLevel>
<hitCancelTime>0</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<magicLvl>-2</magicLvl> <magicLvl>-2</magicLvl>
<irreplacableBuff>true</irreplacableBuff> <irreplacableBuff>true</irreplacableBuff>
<isDebuff>true</isDebuff> <isDebuff>true</isDebuff>
<canBeDispelled>false</canBeDispelled>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<effects> <effects>
<effect name="BlockSkill"> <effect name="BlockSkill">
<magicTypes>1;2;3;4;5</magicTypes> <magicTypes>0;1;2;3;4;5;7;22;</magicTypes>
</effect> </effect>
<effect name="PAtk"> <effect name="PAtk">
<amount>-70</amount> <amount>-70</amount>

View File

@@ -57,7 +57,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -89,7 +89,7 @@ public class ClassChange extends AbstractEffect
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
player.sendPacket(new ExAcquireAPSkillList(player)); player.sendPacket(new ExAcquireAPSkillList(player));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -3909,14 +3909,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3939,14 +3939,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3969,14 +3969,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3999,14 +3999,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -4033,20 +4033,21 @@
<abnormalType>CLASS_CHANGE</abnormalType> <abnormalType>CLASS_CHANGE</abnormalType>
<operateType>A2</operateType> <operateType>A2</operateType>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>1</isMagic> <isMagic>2</isMagic>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty> <basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>0</magicCriticalRate>
<specialLevel>-2</specialLevel> <specialLevel>-2</specialLevel>
<hitCancelTime>0</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<magicLvl>-2</magicLvl> <magicLvl>-2</magicLvl>
<irreplacableBuff>true</irreplacableBuff> <irreplacableBuff>true</irreplacableBuff>
<isDebuff>true</isDebuff> <isDebuff>true</isDebuff>
<canBeDispelled>false</canBeDispelled>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<effects> <effects>
<effect name="BlockSkill"> <effect name="BlockSkill">
<magicTypes>1;2;3;4;5</magicTypes> <magicTypes>0;1;2;3;4;5;7;22;</magicTypes>
</effect> </effect>
<effect name="PAtk"> <effect name="PAtk">
<amount>-70</amount> <amount>-70</amount>

View File

@@ -56,7 +56,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -86,7 +86,7 @@ public class ClassChange extends AbstractEffect
player.broadcastUserInfo(); player.broadcastUserInfo();
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -56,7 +56,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -86,7 +86,7 @@ public class ClassChange extends AbstractEffect
player.broadcastUserInfo(); player.broadcastUserInfo();
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -56,7 +56,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -86,7 +86,7 @@ public class ClassChange extends AbstractEffect
player.broadcastUserInfo(); player.broadcastUserInfo();
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -56,7 +56,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -86,7 +86,7 @@ public class ClassChange extends AbstractEffect
player.broadcastUserInfo(); player.broadcastUserInfo();
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -56,7 +56,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -86,7 +86,7 @@ public class ClassChange extends AbstractEffect
player.broadcastUserInfo(); player.broadcastUserInfo();
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -56,7 +56,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -86,7 +86,7 @@ public class ClassChange extends AbstractEffect
player.broadcastUserInfo(); player.broadcastUserInfo();
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -56,7 +56,7 @@ public class ClassChange extends AbstractEffect
if (effected.isPlayer()) if (effected.isPlayer())
{ {
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
// TODO: FIX ME - Executing 1 second later otherwise interupted exception during storeCharBase() // TODO: FIX ME - Executing 100 ms later otherwise interupted exception during storeCharBase()
ThreadPool.schedule(() -> ThreadPool.schedule(() ->
{ {
final int activeClass = player.getClassId().getId(); final int activeClass = player.getClassId().getId();
@@ -86,7 +86,7 @@ public class ClassChange extends AbstractEffect
player.broadcastUserInfo(); player.broadcastUserInfo();
player.sendPacket(new AcquireSkillList(player)); player.sendPacket(new AcquireSkillList(player));
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
}, 1000); }, 100);
} }
} }
} }

View File

@@ -3909,14 +3909,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3939,14 +3939,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3969,14 +3969,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -3999,14 +3999,14 @@
<!-- Change the class. --> <!-- Change the class. -->
<icon>icon.skill0810</icon> <icon>icon.skill0810</icon>
<operateType>A1</operateType> <operateType>A1</operateType>
<hitTime>5000</hitTime> <hitTime>2500</hitTime>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>2</isMagic> <isMagic>2</isMagic>
<staticReuse>true</staticReuse> <staticReuse>true</staticReuse>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel> <specialLevel>-1</specialLevel>
<hitCancelTime>5</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<reuseDelayGroup>1566</reuseDelayGroup> <reuseDelayGroup>1566</reuseDelayGroup>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
@@ -4033,20 +4033,21 @@
<abnormalType>CLASS_CHANGE</abnormalType> <abnormalType>CLASS_CHANGE</abnormalType>
<operateType>A2</operateType> <operateType>A2</operateType>
<reuseDelay>3000</reuseDelay> <reuseDelay>3000</reuseDelay>
<isMagic>1</isMagic> <isMagic>2</isMagic>
<effectPoint>1</effectPoint> <effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty> <basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate> <magicCriticalRate>0</magicCriticalRate>
<specialLevel>-2</specialLevel> <specialLevel>-2</specialLevel>
<hitCancelTime>0</hitCancelTime> <hitCancelTime>0</hitCancelTime>
<magicLvl>-2</magicLvl> <magicLvl>-2</magicLvl>
<irreplacableBuff>true</irreplacableBuff> <irreplacableBuff>true</irreplacableBuff>
<isDebuff>true</isDebuff> <isDebuff>true</isDebuff>
<canBeDispelled>false</canBeDispelled>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<effects> <effects>
<effect name="BlockSkill"> <effect name="BlockSkill">
<magicTypes>1;2;3;4;5</magicTypes> <magicTypes>0;1;2;3;4;5;7;22;</magicTypes>
</effect> </effect>
<effect name="PAtk"> <effect name="PAtk">
<amount>-70</amount> <amount>-70</amount>