Transformation skill for ranks.

Contributed by manax182.
This commit is contained in:
MobiusDevelopment 2020-11-13 14:48:32 +00:00
parent 53bb8ca31a
commit 1c6372c9bd
9 changed files with 222 additions and 23 deletions

View File

@ -341,6 +341,8 @@ public enum AbnormalVisualEffect
H_DEATH_EFFECT_AVE(352),
AVE_WHITE_KNIGHT(353),
U_ER_WI_WINDHIDE_AVE(354),
RANKER_DECO_HUMAN(385),
RANKER_DECO_KAMAEL(386),
JDK_BODY_FIRE_1(387),
DK_BONEPRISON_AVE(388),
DK_IGNITION_HUMAN_AVE(390),

View File

@ -47,6 +47,12 @@ public class RankingSkillBonuses extends AbstractNpcAI
private static final Skill SERVER_RANKING_BENEFIT_2 = SkillData.getInstance().getSkill(60013, 1);
private static final Skill SERVER_RANKING_BENEFIT_3 = SkillData.getInstance().getSkill(60014, 1);
private static final Skill RACE_RANKING_BENEFIT = SkillData.getInstance().getSkill(60015, 1);
private static final Skill HUMAN_LEVEL_TRANSFORM_CLASS = SkillData.getInstance().getSkill(54204, 1);
private static final Skill ELF_LEVEL_TRANSFORM_CLASS = SkillData.getInstance().getSkill(54210, 1);
private static final Skill DARK_ELF_LEVEL_TRANSFORM_CLASS = SkillData.getInstance().getSkill(54211, 1);
private static final Skill ORC_LEVEL_TRANSFORM_CLASS = SkillData.getInstance().getSkill(54209, 1);
private static final Skill DWARF_LEVEL_TRANSFORM_CLASS = SkillData.getInstance().getSkill(54512, 1);
private static final Skill KAMAEL_LEVEL_TRANSFORM_CLASS = SkillData.getInstance().getSkill(54205, 1);
@RegisterEvent(EventType.ON_PLAYER_LOGIN)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
@ -68,6 +74,12 @@ public class RankingSkillBonuses extends AbstractNpcAI
player.getEffectList().stopSkillEffects(true, ORC_LEVEL_RANKING_1ST_CLASS);
player.getEffectList().stopSkillEffects(true, DWARF_LEVEL_RANKING_1ST_CLASS);
player.getEffectList().stopSkillEffects(true, KAMAEL_LEVEL_RANKING_1ST_CLASS);
player.getEffectList().stopSkillEffects(true, HUMAN_LEVEL_TRANSFORM_CLASS);
player.getEffectList().stopSkillEffects(true, ELF_LEVEL_TRANSFORM_CLASS);
player.getEffectList().stopSkillEffects(true, DARK_ELF_LEVEL_TRANSFORM_CLASS);
player.getEffectList().stopSkillEffects(true, ORC_LEVEL_TRANSFORM_CLASS);
player.getEffectList().stopSkillEffects(true, DWARF_LEVEL_TRANSFORM_CLASS);
player.getEffectList().stopSkillEffects(true, KAMAEL_LEVEL_TRANSFORM_CLASS);
player.removeSkill(SERVER_RANKING_BENEFIT_1);
player.removeSkill(SERVER_RANKING_BENEFIT_2);
player.removeSkill(SERVER_RANKING_BENEFIT_3);
@ -136,6 +148,46 @@ public class RankingSkillBonuses extends AbstractNpcAI
}
player.addSkill(RACE_RANKING_BENEFIT, false);
}
// Add race rank transform skills.
final int raceTransform = RankManager.getInstance().getPlayerRaceRank(player);
if ((raceTransform > 0) && (raceTransform <= 3))
{
switch (player.getRace())
{
case HUMAN:
{
player.addSkill(HUMAN_LEVEL_TRANSFORM_CLASS, false);
break;
}
case ELF:
{
player.addSkill(ELF_LEVEL_TRANSFORM_CLASS, false);
break;
}
case DARK_ELF:
{
player.addSkill(DARK_ELF_LEVEL_TRANSFORM_CLASS, false);
break;
}
case ORC:
{
player.addSkill(ORC_LEVEL_TRANSFORM_CLASS, false);
break;
}
case DWARF:
{
player.addSkill(DWARF_LEVEL_TRANSFORM_CLASS, false);
break;
}
case KAMAEL:
{
player.addSkill(KAMAEL_LEVEL_TRANSFORM_CLASS, false);
break;
}
}
}
}
public static void main(String[] args)

View File

@ -5699,11 +5699,11 @@
<effects>
<effect name="ReflectMagic">
<amount>30</amount>
<mode>PER</mode>
<mode>DIFF</mode>
</effect>
<effect name="ReflectSkill">
<amount>30</amount>
<mode>PER</mode>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
@ -5855,7 +5855,7 @@
<effects>
<effect name="DamageShield">
<amount>20</amount>
<mode>PER</mode>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
@ -6062,6 +6062,7 @@
<effects>
<effect name="ReflectMagic">
<chance>20</chance>
<mode>DIFF</mode>
</effect>
</effects>
</skill>

View File

@ -980,6 +980,7 @@
<value level="3">40</value>
<value level="4">50</value>
</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>

View File

@ -1469,6 +1469,7 @@
<effects>
<effect name="ReflectMagic">
<amount>20</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>

View File

@ -3746,6 +3746,8 @@
<value level="4">50</value>
<value level="5">54</value>
</mpConsume>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="PhysicalAttack">
<power>
@ -3764,7 +3766,7 @@
<condition name="EquipWeapon">
<weaponType>
<item>SWORD</item>
<item>DUALSWORD</item>
<item>DUAL</item>
<item>BLUNT</item>
</weaponType>
</condition>

View File

@ -21,14 +21,65 @@
<operateType>A1</operateType>
</skill>
<skill id="54204" toLevel="1" name="Worthy Warrior Transformation">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>3600</abnormalTime>
<abnormalVisualEffect>RANKER_DECO_HUMAN</abnormalVisualEffect>
<abnormalType>CHANGEBODY</abnormalType>
<blockedInOlympiad>true</blockedInOlympiad>
<operateType>A2</operateType>
<effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel>
<hitCancelTime>0</hitCancelTime>
<irreplacableBuff>true</irreplacableBuff>
<isMagic>2</isMagic>
<hitTime>1000</hitTime>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="CanTransform">
<transformId>385</transformId>
</condition>
</conditions>
<effects>
<effect name="MaxHp">
<amount>300</amount>
<mode>DIFF</mode>
</effect>
<effect name="Transformation">
<transformationId>385</transformationId>
</effect>
</effects>
</skill>
<skill id="54205" toLevel="1" name="Worthy Warrior Transformation">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<abnormalVisualEffect>RANKER_DECO_KAMAEL</abnormalVisualEffect>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>1200</abnormalTime>
<abnormalType>CHANGEBODY</abnormalType>
<blockedInOlympiad>true</blockedInOlympiad>
<operateType>A2</operateType>
<effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel>
<hitCancelTime>0</hitCancelTime>
<irreplacableBuff>true</irreplacableBuff>
<isMagic>2</isMagic>
<hitTime>1000</hitTime>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="MaxHp">
<amount>300</amount>
<mode>DIFF</mode>
</effect>
<effect name="Transformation">
<transformationId>386</transformationId>
</effect>
</effects>
</skill>
<skill id="54206" toLevel="1" name="Ultimate Death Knight Transformation">
<abnormalLevel>1</abnormalLevel>
@ -97,11 +148,6 @@
<hitTime>1000</hitTime>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="CanTransform">
<transformId>208</transformId>
</condition>
</conditions>
<effects>
<effect name="Transformation">
<transformationId>208</transformationId>
@ -114,24 +160,116 @@
<operateType>A1</operateType>
</skill>
<skill id="54209" toLevel="1" name="Worthy Warrior Transformation">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>1200</abnormalTime>
<abnormalVisualEffect>RANKER_DECO_ORC</abnormalVisualEffect>
<abnormalType>CHANGEBODY</abnormalType>
<blockedInOlympiad>true</blockedInOlympiad>
<operateType>A2</operateType>
<effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel>
<hitCancelTime>0</hitCancelTime>
<irreplacableBuff>true</irreplacableBuff>
<isMagic>2</isMagic>
<hitTime>1000</hitTime>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="MaxHp">
<amount>300</amount>
<mode>DIFF</mode>
</effect>
<effect name="Transformation">
<transformationId>424</transformationId>
</effect>
</effects>
</skill>
<skill id="54210" toLevel="1" name="Worthy Warrior Transformation">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>1200</abnormalTime>
<abnormalVisualEffect>RANKER_DECO_ELF</abnormalVisualEffect>
<abnormalType>CHANGEBODY</abnormalType>
<blockedInOlympiad>true</blockedInOlympiad>
<operateType>A2</operateType>
<effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel>
<hitCancelTime>0</hitCancelTime>
<irreplacableBuff>true</irreplacableBuff>
<isMagic>2</isMagic>
<hitTime>1000</hitTime>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="MaxHp">
<amount>300</amount>
<mode>DIFF</mode>
</effect>
<effect name="Transformation">
<transformationId>428</transformationId>
</effect>
</effects>
</skill>
<skill id="54211" toLevel="1" name="Worthy Warrior Transformation">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>1200</abnormalTime>
<abnormalVisualEffect>RANKER_DECO_DARKELF</abnormalVisualEffect>
<abnormalType>CHANGEBODY</abnormalType>
<blockedInOlympiad>true</blockedInOlympiad>
<operateType>A2</operateType>
<effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel>
<hitCancelTime>0</hitCancelTime>
<irreplacableBuff>true</irreplacableBuff>
<isMagic>2</isMagic>
<hitTime>1000</hitTime>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="MaxHp">
<amount>300</amount>
<mode>DIFF</mode>
</effect>
<effect name="Transformation">
<transformationId>429</transformationId>
</effect>
</effects>
</skill>
<skill id="54212" toLevel="1" name="Worthy Warrior Transformation">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<abnormalLevel>1</abnormalLevel>
<abnormalTime>1200</abnormalTime>
<abnormalVisualEffect>RANKER_DECO_DWARF</abnormalVisualEffect>
<abnormalType>CHANGEBODY</abnormalType>
<blockedInOlympiad>true</blockedInOlympiad>
<operateType>A2</operateType>
<effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty>
<magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel>
<hitCancelTime>0</hitCancelTime>
<irreplacableBuff>true</irreplacableBuff>
<isMagic>2</isMagic>
<hitTime>1000</hitTime>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="MaxHp">
<amount>300</amount>
<mode>DIFF</mode>
</effect>
<effect name="Transformation">
<transformationId>430</transformationId>
</effect>
</effects>
</skill>
<skill id="54213" toLevel="1" name="Mount Air Bike">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->

View File

@ -400,7 +400,7 @@
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="isWithin" type="xs:boolean" />
<xs:element minOccurs="0" name="transformId" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="transformId" type="xs:int" />
<xs:element minOccurs="0" name="npcIds">
<xs:complexType>
<xs:sequence>
@ -1325,7 +1325,7 @@
<xs:element name="PHYSICAL_ATTACK_SPEED" type="xs:unsignedByte" />
<xs:element name="MAGIC_ATTACK_SPEED" type="xs:unsignedByte" />
<xs:element name="pDefMod" type="xs:decimal" />
<xs:element name="transformationId" type="xs:unsignedByte" />
<xs:element name="transformationId" type="xs:int" />
<xs:element name="distance" type="xs:unsignedByte" />
<xs:element name="speed" type="xs:unsignedShort" />
<xs:element name="knockDown" type="xs:boolean" />

View File

@ -341,6 +341,8 @@ public enum AbnormalVisualEffect
H_DEATH_EFFECT_AVE(352),
AVE_WHITE_KNIGHT(353),
U_ER_WI_WINDHIDE_AVE(354),
RANKER_DECO_HUMAN(385),
RANKER_DECO_KAMAEL(386),
JDK_BODY_FIRE_1(387),
DK_BONEPRISON_AVE(388),
DK_IGNITION_HUMAN_AVE(390),