Various item and skill improvements.

Contributed by gamelike85.
This commit is contained in:
MobiusDev
2017-12-03 09:19:10 +00:00
parent 3c6fd6e6d9
commit c1d931342c
21 changed files with 1767 additions and 124 deletions

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.enums.SkillConditionAffectType;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -31,21 +32,32 @@ public class OpCheckAbnormalSkillCondition implements ISkillCondition
private final AbnormalType _type;
private final int _level;
private final boolean _hasAbnormal;
private final SkillConditionAffectType _affectType;
public OpCheckAbnormalSkillCondition(StatsSet params)
{
_type = params.getEnum("type", AbnormalType.class);
_level = params.getInt("level");
_hasAbnormal = params.getBoolean("hasAbnormal");
_affectType = params.getEnum("affectType", SkillConditionAffectType.class, SkillConditionAffectType.TARGET);
}
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
if (target.isCharacter())
switch (_affectType)
{
final boolean hasAbnormal = ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level));
return _hasAbnormal ? hasAbnormal : !hasAbnormal;
case CASTER:
{
return caster.getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level)) == _hasAbnormal;
}
case TARGET:
{
if (target.isCharacter())
{
return ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level)) == _hasAbnormal;
}
}
}
return false;
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.enums.SkillConditionAffectType;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -31,21 +32,32 @@ public class OpCheckAbnormalSkillCondition implements ISkillCondition
private final AbnormalType _type;
private final int _level;
private final boolean _hasAbnormal;
private final SkillConditionAffectType _affectType;
public OpCheckAbnormalSkillCondition(StatsSet params)
{
_type = params.getEnum("type", AbnormalType.class);
_level = params.getInt("level");
_hasAbnormal = params.getBoolean("hasAbnormal");
_affectType = params.getEnum("affectType", SkillConditionAffectType.class, SkillConditionAffectType.TARGET);
}
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
if (target.isCharacter())
switch (_affectType)
{
final boolean hasAbnormal = ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level));
return _hasAbnormal ? hasAbnormal : !hasAbnormal;
case CASTER:
{
return caster.getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level)) == _hasAbnormal;
}
case TARGET:
{
if (target.isCharacter())
{
return ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level)) == _hasAbnormal;
}
}
}
return false;
}

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.enums.SkillConditionAffectType;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -31,21 +32,32 @@ public class OpCheckAbnormalSkillCondition implements ISkillCondition
private final AbnormalType _type;
private final int _level;
private final boolean _hasAbnormal;
private final SkillConditionAffectType _affectType;
public OpCheckAbnormalSkillCondition(StatsSet params)
{
_type = params.getEnum("type", AbnormalType.class);
_level = params.getInt("level");
_hasAbnormal = params.getBoolean("hasAbnormal");
_affectType = params.getEnum("affectType", SkillConditionAffectType.class, SkillConditionAffectType.TARGET);
}
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
if (target.isCharacter())
switch (_affectType)
{
final boolean hasAbnormal = ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level));
return _hasAbnormal ? hasAbnormal : !hasAbnormal;
case CASTER:
{
return caster.getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level)) == _hasAbnormal;
}
case TARGET:
{
if (target.isCharacter())
{
return ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level)) == _hasAbnormal;
}
}
}
return false;
}

View File

@@ -580,7 +580,7 @@
<skills>
<skill id="18715" level="1" /> <!-- Greater Ruby -->
<skill id="18716" level="1" /> <!-- Greater Ruby -->
<skill id="18717" level="1" /> <!-- Greater Ruby -->
<skill id="18717" level="6" /> <!-- Ruby -->
</skills>
</item>
<item id="47689" name="Greater Sapphire" type="Armor">
@@ -594,7 +594,7 @@
<skills>
<skill id="18718" level="1" /> <!-- Greater Sapphire -->
<skill id="18718" level="2" /> <!-- Greater Sapphire -->
<skill id="18719" level="1" /> <!-- Greater Sapphire -->
<skill id="18719" level="6" /> <!-- Sapphire -->
</skills>
</item>
<item id="47690" name="Greater Obsidian" type="Armor">

View File

@@ -1100,24 +1100,9 @@
<value level="11">-722</value>
</effectPoint>
<reuseDelay>7000</reuseDelay>
<affectLimit>5-12</affectLimit>
<fanRange>
<value level="1">0;0;900;50</value>
<value level="2">0;0;700;50</value>
<value level="3">0;0;700;50</value>
<value level="4">0;0;700;50</value>
<value level="5">0;0;700;50</value>
<value level="6">0;0;700;50</value>
<value level="7">0;0;700;50</value>
<value level="8">0;0;700;50</value>
<value level="9">0;0;700;50</value>
<value level="10">0;0;700;50</value>
<value level="11">0;0;700;50</value>
</fanRange>
<rideState>NONE</rideState>
<targetType>ENEMY</targetType>
<affectScope>SQUARE</affectScope>
<affectObject>NOT_FRIEND</affectObject>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="EquipWeapon">
<weaponType>

View File

@@ -3918,4 +3918,15 @@
<bodyPart>hairall</bodyPart>
</appearance_stone>
<!-- Chevalier Outfit -->
<appearance_stone id="48025" targetType="ARMOR" type="FIXED" visualId="48018"> <!-- Chevalier Outfit Appearance Stone -->
<bodyPart>chest</bodyPart>
<bodyPart>fullarmor</bodyPart>
</appearance_stone>
<!-- Valkyrie Outfit -->
<appearance_stone id="48028" targetType="ARMOR" type="FIXED" visualId="48021"> <!-- Valkyrie Outfit Appearance Stone -->
<bodyPart>chest</bodyPart>
<bodyPart>fullarmor</bodyPart>
</appearance_stone>
</list>

View File

@@ -29,6 +29,34 @@
<item id="46336" /> <!-- Shadow Dualsword -->
</enchant>
<!-- Scroll: Enchant Cloak -->
<enchant id="28593" maxEnchant="10">
<item id="28585" />
<item id="28586" />
<item id="28587" />
<item id="28588" />
<item id="28589" />
<item id="28590" />
<item id="28591" />
<item id="28592" />
</enchant>
<!-- Scroll: Enchant Cloak - Legendary -->
<enchant id="28593" minEnchant="10" maxEnchant="20">
<item id="28589" />
<item id="28590" />
<item id="28591" />
<item id="28592" />
</enchant>
<!-- Scroll: Ancient Cloak - Legendary -->
<enchant id="28593" minEnchant="7" maxEnchant="20" bonusRate="10">
<item id="28589" />
<item id="28590" />
<item id="28591" />
<item id="28592" />
</enchant>
<!-- Scrolls: Enchant Weapon -->
<enchant id="729" targetGrade="A" />
<enchant id="947" targetGrade="B" />

View File

@@ -150,4 +150,10 @@
<!-- Seductive Swimsuit -->
<item id="23235" price="0" /> <!-- Beach Swimsuit Appearance Stone -->
<!-- Chevalier Outfit -->
<item id="48025" price="0" /> <!-- Chevalier Outfit Appearance Stone -->
<!-- Valkyrie Outfit -->
<item id="48028" price="0" /> <!-- Valkyrie Outfit Appearance Stone -->
</list>

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.enums.SkillConditionAffectType;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -31,21 +32,32 @@ public class OpCheckAbnormalSkillCondition implements ISkillCondition
private final AbnormalType _type;
private final int _level;
private final boolean _hasAbnormal;
private final SkillConditionAffectType _affectType;
public OpCheckAbnormalSkillCondition(StatsSet params)
{
_type = params.getEnum("type", AbnormalType.class);
_level = params.getInt("level");
_hasAbnormal = params.getBoolean("hasAbnormal");
_affectType = params.getEnum("affectType", SkillConditionAffectType.class, SkillConditionAffectType.TARGET);
}
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
if (target.isCharacter())
switch (_affectType)
{
final boolean hasAbnormal = ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level));
return _hasAbnormal ? hasAbnormal : !hasAbnormal;
case CASTER:
{
return caster.getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level)) == _hasAbnormal;
}
case TARGET:
{
if (target.isCharacter())
{
return ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level)) == _hasAbnormal;
}
}
}
return false;
}

View File

@@ -879,6 +879,20 @@
<set name="is_dropable" val="false" />
<set name="is_depositable" val="false" />
<set name="is_sellable" val="false" />
<skills>
<skill id="27871" level="1" /> <!-- Elmoreden Cloak Basic Effect -->
<skill id="27872" level="1" type="ON_ENCHANT" type_value="1" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="2" type="ON_ENCHANT" type_value="2" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="3" type="ON_ENCHANT" type_value="3" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="4" type="ON_ENCHANT" type_value="4" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="5" type="ON_ENCHANT" type_value="5" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="6" type="ON_ENCHANT" type_value="6" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="7" type="ON_ENCHANT" type_value="7" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="8" type="ON_ENCHANT" type_value="8" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="9" type="ON_ENCHANT" type_value="9" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="10" type="ON_ENCHANT" type_value="10" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27880" level="1" type="ON_ENCHANT" type_value="10" /> <!-- Blessing of Elmoreden --> <!-- GUESS -->
</skills>
<stats>
<stat type="mDef">40</stat>
<stat type="pDef">50</stat>
@@ -896,6 +910,20 @@
<set name="is_dropable" val="false" />
<set name="is_depositable" val="false" />
<set name="is_sellable" val="false" />
<skills>
<skill id="27873" level="1" /> <!-- Aden Cloak Basic Effect -->
<skill id="27874" level="1" type="ON_ENCHANT" type_value="1" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="2" type="ON_ENCHANT" type_value="2" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="3" type="ON_ENCHANT" type_value="3" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="4" type="ON_ENCHANT" type_value="4" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="5" type="ON_ENCHANT" type_value="5" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="6" type="ON_ENCHANT" type_value="6" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="7" type="ON_ENCHANT" type_value="7" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="8" type="ON_ENCHANT" type_value="8" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="9" type="ON_ENCHANT" type_value="9" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="10" type="ON_ENCHANT" type_value="10" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27881" level="1" type="ON_ENCHANT" type_value="10" /> <!-- Blessing of Aden --> <!-- GUESS -->
</skills>
<stats>
<stat type="mDef">40</stat>
<stat type="pDef">50</stat>
@@ -913,6 +941,20 @@
<set name="is_dropable" val="false" />
<set name="is_depositable" val="false" />
<set name="is_sellable" val="false" />
<skills>
<skill id="27875" level="1" /> <!-- Elmore Cloak Basic Effect -->
<skill id="27876" level="1" type="ON_ENCHANT" type_value="1" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="2" type="ON_ENCHANT" type_value="2" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="3" type="ON_ENCHANT" type_value="3" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="4" type="ON_ENCHANT" type_value="4" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="5" type="ON_ENCHANT" type_value="5" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="6" type="ON_ENCHANT" type_value="6" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="7" type="ON_ENCHANT" type_value="7" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="8" type="ON_ENCHANT" type_value="8" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="9" type="ON_ENCHANT" type_value="9" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="10" type="ON_ENCHANT" type_value="10" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27882" level="1" type="ON_ENCHANT" type_value="10" /> <!-- Blessing of Elmore --> <!-- GUESS -->
</skills>
<stats>
<stat type="mDef">40</stat>
<stat type="pDef">50</stat>
@@ -930,6 +972,20 @@
<set name="is_dropable" val="false" />
<set name="is_depositable" val="false" />
<set name="is_sellable" val="false" />
<skills>
<skill id="27877" level="1" /> <!-- Ferios Cloak Basic Effect -->
<skill id="27878" level="1" type="ON_ENCHANT" type_value="1" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="2" type="ON_ENCHANT" type_value="2" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="3" type="ON_ENCHANT" type_value="3" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="4" type="ON_ENCHANT" type_value="4" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="5" type="ON_ENCHANT" type_value="5" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="6" type="ON_ENCHANT" type_value="6" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="7" type="ON_ENCHANT" type_value="7" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="8" type="ON_ENCHANT" type_value="8" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="9" type="ON_ENCHANT" type_value="9" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="10" type="ON_ENCHANT" type_value="10" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27885" level="1" type="ON_ENCHANT" type_value="10" /> <!-- Blessing of Ferios --> <!-- GUESS -->
</skills>
<stats>
<stat type="mDef">40</stat>
<stat type="pDef">50</stat>
@@ -945,6 +1001,29 @@
<set name="weight" val="220" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<skills>
<skill id="27871" level="1" /> <!-- Elmoreden Cloak Basic Effect -->
<skill id="27872" level="1" type="ON_ENCHANT" type_value="1" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="2" type="ON_ENCHANT" type_value="2" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="3" type="ON_ENCHANT" type_value="3" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="4" type="ON_ENCHANT" type_value="4" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="5" type="ON_ENCHANT" type_value="5" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="6" type="ON_ENCHANT" type_value="6" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="7" type="ON_ENCHANT" type_value="7" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="8" type="ON_ENCHANT" type_value="8" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="9" type="ON_ENCHANT" type_value="9" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="10" type="ON_ENCHANT" type_value="10" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="11" type="ON_ENCHANT" type_value="11" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="12" type="ON_ENCHANT" type_value="12" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="13" type="ON_ENCHANT" type_value="13" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="14" type="ON_ENCHANT" type_value="14" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="15" type="ON_ENCHANT" type_value="15" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="16" type="ON_ENCHANT" type_value="16" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="17" type="ON_ENCHANT" type_value="17" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="18" type="ON_ENCHANT" type_value="18" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="19" type="ON_ENCHANT" type_value="19" /> <!-- Elmoreden Cloak Enchant Effect -->
<skill id="27872" level="20" type="ON_ENCHANT" type_value="20" /> <!-- Elmoreden Cloak Enchant Effect -->
</skills>
<stats>
<stat type="mDef">80</stat>
<stat type="pDef">50</stat>
@@ -960,6 +1039,29 @@
<set name="weight" val="220" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<skills>
<skill id="27873" level="1" /> <!-- Aden Cloak Basic Effect -->
<skill id="27874" level="1" type="ON_ENCHANT" type_value="1" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="2" type="ON_ENCHANT" type_value="2" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="3" type="ON_ENCHANT" type_value="3" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="4" type="ON_ENCHANT" type_value="4" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="5" type="ON_ENCHANT" type_value="5" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="6" type="ON_ENCHANT" type_value="6" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="7" type="ON_ENCHANT" type_value="7" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="8" type="ON_ENCHANT" type_value="8" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="9" type="ON_ENCHANT" type_value="9" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="10" type="ON_ENCHANT" type_value="10" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="11" type="ON_ENCHANT" type_value="11" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="12" type="ON_ENCHANT" type_value="12" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="13" type="ON_ENCHANT" type_value="13" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="14" type="ON_ENCHANT" type_value="14" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="15" type="ON_ENCHANT" type_value="15" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="16" type="ON_ENCHANT" type_value="16" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="17" type="ON_ENCHANT" type_value="17" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="18" type="ON_ENCHANT" type_value="18" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="19" type="ON_ENCHANT" type_value="19" /> <!-- Aden Cloak Enchant Effect -->
<skill id="27874" level="20" type="ON_ENCHANT" type_value="20" /> <!-- Aden Cloak Enchant Effect -->
</skills>
<stats>
<stat type="mDef">80</stat>
<stat type="pDef">50</stat>
@@ -975,6 +1077,29 @@
<set name="weight" val="220" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<skills>
<skill id="27875" level="1" /> <!-- Elmore Cloak Basic Effect -->
<skill id="27876" level="1" type="ON_ENCHANT" type_value="1" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="2" type="ON_ENCHANT" type_value="2" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="3" type="ON_ENCHANT" type_value="3" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="4" type="ON_ENCHANT" type_value="4" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="5" type="ON_ENCHANT" type_value="5" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="6" type="ON_ENCHANT" type_value="6" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="7" type="ON_ENCHANT" type_value="7" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="8" type="ON_ENCHANT" type_value="8" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="9" type="ON_ENCHANT" type_value="9" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="10" type="ON_ENCHANT" type_value="10" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="11" type="ON_ENCHANT" type_value="11" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="12" type="ON_ENCHANT" type_value="12" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="13" type="ON_ENCHANT" type_value="13" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="14" type="ON_ENCHANT" type_value="14" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="15" type="ON_ENCHANT" type_value="15" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="16" type="ON_ENCHANT" type_value="16" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="17" type="ON_ENCHANT" type_value="17" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="18" type="ON_ENCHANT" type_value="18" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="19" type="ON_ENCHANT" type_value="19" /> <!-- Elmore Cloak Enchant Effect -->
<skill id="27876" level="20" type="ON_ENCHANT" type_value="20" /> <!-- Elmore Cloak Enchant Effect -->
</skills>
<stats>
<stat type="mDef">80</stat>
<stat type="pDef">50</stat>
@@ -990,6 +1115,29 @@
<set name="weight" val="220" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<skills>
<skill id="27877" level="1" /> <!-- Ferios Cloak Basic Effect -->
<skill id="27878" level="1" type="ON_ENCHANT" type_value="1" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="2" type="ON_ENCHANT" type_value="2" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="3" type="ON_ENCHANT" type_value="3" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="4" type="ON_ENCHANT" type_value="4" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="5" type="ON_ENCHANT" type_value="5" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="6" type="ON_ENCHANT" type_value="6" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="7" type="ON_ENCHANT" type_value="7" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="8" type="ON_ENCHANT" type_value="8" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="9" type="ON_ENCHANT" type_value="9" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="10" type="ON_ENCHANT" type_value="10" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="11" type="ON_ENCHANT" type_value="11" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="12" type="ON_ENCHANT" type_value="12" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="13" type="ON_ENCHANT" type_value="13" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="14" type="ON_ENCHANT" type_value="14" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="15" type="ON_ENCHANT" type_value="15" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="16" type="ON_ENCHANT" type_value="16" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="17" type="ON_ENCHANT" type_value="17" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="18" type="ON_ENCHANT" type_value="18" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="19" type="ON_ENCHANT" type_value="19" /> <!-- Ferios Cloak Enchant Effect -->
<skill id="27878" level="20" type="ON_ENCHANT" type_value="20" /> <!-- Ferios Cloak Enchant Effect -->
</skills>
<stats>
<stat type="mDef">80</stat>
<stat type="pDef">50</stat>
@@ -1001,6 +1149,13 @@
<set name="material" val="LEATHER" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" />
<set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" />
<skills>
<skill id="28021" level="1" /> <!-- Scroll: Enchant Cloak -->
</skills>
</item>
<item id="28594" name="Scroll: Enchant Cloak - Legendary" type="EtcItem">
<!-- Enchant scroll for the Ancient Kingdom's Cloak. Can be used when the enchant level is at least +10, up to +20. Enchant level goes up by 1 when it succeeds, and if it fails, the item remains and the level goes down by 1. -->
@@ -1008,6 +1163,13 @@
<set name="material" val="LEATHER" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" />
<set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" />
<skills>
<skill id="28022" level="1" /> <!-- Scroll: Enchant Cloak - Legendary -->
</skills>
</item>
<item id="28595" name="Scroll: Ancient Cloak - Legendary" type="EtcItem">
<!-- Enchant scroll for the Ancient Kingdom's Cloak. Can be used when the enchant level is at least +7, up to +20. Success rate is 10% better than normal Cloak Scrolls. Enchant level goes up by 1 when it succeeds, and if it fails, the item remains and the level goes down by 1. -->
@@ -1015,6 +1177,13 @@
<set name="material" val="LEATHER" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="BLESS_ENCHT_AM" />
<set name="immediate_effect" val="true" />
<set name="handler" val="EnchantScrolls" />
<skills>
<skill id="28068" level="1" /> <!-- Scroll: Ancient Cloak - Legendary -->
</skills>
</item>
<item id="28596" name="Legendary Scroll" type="EtcItem">
<!-- Exchange a Elmoreden/Aden/Elmore/Ferios Cloak for a legendary cloak through the Dimensional Merchant. -->

View File

@@ -981,7 +981,7 @@
<skills>
<skill id="18715" level="1" /> <!-- Greater Ruby -->
<skill id="18716" level="1" /> <!-- Greater Ruby -->
<skill id="18717" level="1" /> <!-- Greater Ruby -->
<skill id="18717" level="6" /> <!-- Ruby -->
</skills>
</item>
<item id="47689" name="Greater Sapphire" type="Armor">
@@ -995,7 +995,7 @@
<skills>
<skill id="18718" level="1" /> <!-- Greater Sapphire -->
<skill id="18718" level="2" /> <!-- Greater Sapphire -->
<skill id="18719" level="1" /> <!-- Greater Sapphire -->
<skill id="18719" level="6" /> <!-- Sapphire -->
</skills>
</item>
<item id="47690" name="Greater Obsidian" type="Armor">

View File

@@ -39,6 +39,9 @@
<set name="material" val="LEATHER" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<set name="etcitem_type" val="SHAPE_SHIFTING_AM_FIXED" />
<set name="handler" val="Appearance" />
<set name="immediate_effect" val="true" />
</item>
<item id="48028" name="Valkyrie Outfit Appearance Stone" type="EtcItem">
<!-- Changes the appearance of a top armor or a one-piece into that of Valkyrie. It changes everything, making the appearance of all armor into that of Valkyrie. -->
@@ -47,6 +50,9 @@
<set name="material" val="LEATHER" />
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
<set name="etcitem_type" val="SHAPE_SHIFTING_AM_FIXED" />
<set name="handler" val="Appearance" />
<set name="immediate_effect" val="true" />
</item>
<item id="48031" name="Entrance Pass: Shilen's Altar" type="EtcItem">
<!-- Extra Pass for Shilen's Altar. Double-click to reset cooldown to Shilen's Altar. Cannot use if locked out from Instanced Zone. Can only be used once a day outside of the instance zone. -->

View File

@@ -3734,7 +3734,7 @@
</effects>
</skill>
<skill id="10562" toLevel="1" name="Critical Tactics">
<!-- For 5 min., Critical Damage + 304 and vital spot attack success rate + 10%. Front Critical Damage - 30%, Side Critical Rate + 20% and Critical Damage + 20%. Rear Critical Rate + 40% and Critical Damage + 40%. Requires a dagger or dual dagger. -->
<!-- Increases Critical Damage by 304, Vital Spot Attack Rate by 10%, Critical Rate/Damage from the front and the side by 30%, Critical Rate/Damage from behind by 40% for 5 minutes. Requires dagger/dual dagger. -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>300</abnormalTime>
<abnormalType>FOCUS_DAGGER</abnormalType>
@@ -3762,7 +3762,7 @@
<position>FRONT</position>
</effect>
<effect name="CriticalDamagePosition">
<amount>20</amount>
<amount>30</amount>
<mode>PER</mode>
<position>SIDE</position>
</effect>
@@ -3772,7 +3772,7 @@
<position>BACK</position>
</effect>
<effect name="CriticalRatePositionBonus">
<amount>20</amount>
<amount>30</amount>
<mode>PER</mode>
<position>SIDE</position>
</effect>

View File

@@ -109,7 +109,7 @@
</effects>
</skill>
<skill id="10609" toLevel="1" name="Critical Chances">
<!-- For 5 min., Critical Damage + 304 and vital spot attack success rate + 15%. Front Critical Damage - 30%, Side Critical Rate + 30% and Critical Damage + 30%. Rear Critical Rate + 50% and Critical Damage + 50%. Requires a dagger or dual dagger. -->
<!-- Increases Critical Damage by 304, Vital Spot Attack Rate by 15%, Critical Rate/Damage from the side and from behind by 65% and 50%, respectively, for 5 minutes. Decreases Critical Damage from the front by 30%. Requires dagger/dual dagger. -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>300</abnormalTime>
<abnormalType>FOCUS_DAGGER</abnormalType>
@@ -137,7 +137,7 @@
<position>FRONT</position>
</effect>
<effect name="CriticalDamagePosition">
<amount>30</amount>
<amount>65</amount>
<mode>PER</mode>
<position>SIDE</position>
</effect>
@@ -147,7 +147,7 @@
<position>BACK</position>
</effect>
<effect name="CriticalRatePositionBonus">
<amount>30</amount>
<amount>65</amount>
<mode>PER</mode>
<position>SIDE</position>
</effect>
@@ -287,7 +287,7 @@
</effects>
</skill>
<skill id="10656" toLevel="1" name="Shadow Hunter">
<!-- For 5 min., Critical Damage + 608 and vital spot attack success rate + 5%. Front Critical Damage - 30%, Side Critical Rate + 30% and Critical Damage + 30%. Rear Critical Rate + 50% and Critical Damage + 50%. Requires a dagger or dual dagger. -->
<!-- Increases Critical Damage by 608, Vital Spot Attack Rate by 5%, Critical Rate/Damage from the side by 30%, Critical Rate from behind by 50% and Critical Damage from behind by 65% for 5 minutes. Decreases Critical Damage from the front by 30%. Requires dagger/dual dagger. -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>300</abnormalTime>
<abnormalType>FOCUS_DAGGER</abnormalType>
@@ -320,7 +320,7 @@
<position>SIDE</position>
</effect>
<effect name="CriticalDamagePosition">
<amount>50</amount>
<amount>65</amount>
<mode>PER</mode>
<position>BACK</position>
</effect>

View File

@@ -1121,24 +1121,9 @@
<value level="11">-722</value>
</effectPoint>
<reuseDelay>7000</reuseDelay>
<affectLimit>5-12</affectLimit>
<fanRange>
<value level="1">0;0;900;50</value>
<value level="2">0;0;700;50</value>
<value level="3">0;0;700;50</value>
<value level="4">0;0;700;50</value>
<value level="5">0;0;700;50</value>
<value level="6">0;0;700;50</value>
<value level="7">0;0;700;50</value>
<value level="8">0;0;700;50</value>
<value level="9">0;0;700;50</value>
<value level="10">0;0;700;50</value>
<value level="11">0;0;700;50</value>
</fanRange>
<rideState>NONE</rideState>
<targetType>ENEMY</targetType>
<affectScope>SQUARE</affectScope>
<affectObject>NOT_FRIEND</affectObject>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="EquipWeapon">
<weaponType>

View File

@@ -2278,9 +2278,11 @@
<value level="3">84</value>
<value level="4">88</value>
</mpConsume>
<affectLimit>6-12</affectLimit>
<affectRange>200</affectRange>
<castRange>1100</castRange>
<effectRange>1100</effectRange>
<hitTime>10000</hitTime>
<hitTime>15000</hitTime>
<reuseDelay>20000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>
@@ -2296,6 +2298,9 @@
</magicCriticalRate>
<mpPerChanneling>15</mpPerChanneling>
<isDebuff>true</isDebuff>
<targetType>ENEMY</targetType>
<affectScope>RANGE</affectScope>
<affectObject>NOT_FRIEND</affectObject>
<channelingEffects>
<effect name="HpDrain">
<power>
@@ -2308,8 +2313,6 @@
<percentage>100</percentage>
</effect>
</channelingEffects>
<targetType>ENEMY</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="11032" toLevel="7" name="Death Howl">
<!-- Updated to IO -->
@@ -4948,7 +4951,7 @@
<skill id="11067" toLevel="4" name="Quadruple Elemental Blast">
<!-- Updated to GRAND CRUSADE -->
<!-- Glory Days confirmed -->
<!-- Deals M. Attack of $s1 power on the target and the enemies near it. Inflicts constant damage for $s2 to inflict Knock Down. Over-hit is possible. Available to use in the Mana Burst Level 4. -->
<!-- Inflicts magical damage on target and nearby enemies with 635 Power. Burning and causing knock down enemies for 5 seconds. Over-hit. Only available at Mana Burst Lv 4. -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>5</abnormalTime>
<abnormalType>KNOCKDOWN</abnormalType>
@@ -5000,10 +5003,10 @@
<effects>
<effect name="MagicalAttack">
<power>
<value level="1">620</value>
<value level="2">641</value>
<value level="3">655</value>
<value level="4">669</value>
<value level="1">635</value>
<value level="2">651</value>
<value level="3">667</value>
<value level="4">683</value>
<value fromLevel="1" toLevel="4" fromSubLevel="1001" toSubLevel="1005">{base + base / 100 * (1 + 0.4 * (subIndex - 1))}</value>
<value fromLevel="1" toLevel="4" fromSubLevel="1006" toSubLevel="1006">{base + base / 100 * (2 + 0.8 * (subIndex - 5))}</value>
<value fromLevel="1" toLevel="4" fromSubLevel="1007" toSubLevel="1007">{base + base / 100 * (3 + 0.3 * (subIndex - 6))}</value>

View File

@@ -284,16 +284,19 @@
</effects>
</skill>
<skill id="18715" toLevel="1" name="Greater Ruby">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<!-- Soulshot damage + 20%. -->
<icon>icon.bm_jewel_ssdmg_high_lv1_lavianrose</icon>
<operateType>A1</operateType>
<targetType>SELF</targetType>
</skill>
<skill id="18716" toLevel="1" name="Greater Ruby">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<!-- Beast Soulshot damage + 20%. -->
<icon>icon.bm_jewel_ssdmg_high_lv1_lavianrose</icon>
<operateType>A1</operateType>
<targetType>SELF</targetType>
</skill>
<skill id="18717" toLevel="6" name="Ruby">
<!-- P. Atk. + 9%. -->
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
@@ -308,11 +311,13 @@
</effects>
</skill>
<skill id="18718" toLevel="2" name="Greater Sapphire">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<!-- Blessed Spiritshot Damage + 20%. -->
<icon>icon.bm_jewel_spsdmg_high_lv1_lavianrose</icon>
<operateType>A1</operateType>
<targetType>SELF</targetType>
</skill>
<skill id="18719" toLevel="6" name="Sapphire">
<!-- M. Atk. + 13%. -->
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>

View File

@@ -151,7 +151,7 @@
<condition name="CanSummon" />
</conditions>
<effects>
<effect name="SummonNpc">
<effect name="Summon">
<npcId>
<value level="1">15207</value>
<value level="2">15208</value>

File diff suppressed because it is too large Load Diff

View File

@@ -106,14 +106,26 @@
<operateType>A1</operateType>
</skill>
<skill id="28021" toLevel="1" name="Scroll: Enchant Cloak">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLvl>1</magicLvl>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="28022" toLevel="1" name="Scroll: Enchant Cloak - Legendary">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLvl>1</magicLvl>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="28023" toLevel="1" name="Scroll: Ancient Cloak">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
@@ -136,9 +148,15 @@
<operateType>A1</operateType>
</skill>
<skill id="28068" toLevel="1" name="Scroll: Enchant Cloak - Legendary">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLvl>1</magicLvl>
<isMagic>2</isMagic>
<targetType>ITEM</targetType>
<affectScope>SINGLE</affectScope>
</skill>
<skill id="28069" toLevel="1" name="Ancient Cloak (Legendary) Scroll Pack">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.enums.SkillConditionAffectType;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -31,21 +32,32 @@ public class OpCheckAbnormalSkillCondition implements ISkillCondition
private final AbnormalType _type;
private final int _level;
private final boolean _hasAbnormal;
private final SkillConditionAffectType _affectType;
public OpCheckAbnormalSkillCondition(StatsSet params)
{
_type = params.getEnum("type", AbnormalType.class);
_level = params.getInt("level");
_hasAbnormal = params.getBoolean("hasAbnormal");
_affectType = params.getEnum("affectType", SkillConditionAffectType.class, SkillConditionAffectType.TARGET);
}
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
if (target.isCharacter())
switch (_affectType)
{
final boolean hasAbnormal = ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level));
return _hasAbnormal ? hasAbnormal : !hasAbnormal;
case CASTER:
{
return caster.getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level)) == _hasAbnormal;
}
case TARGET:
{
if (target.isCharacter())
{
return ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level)) == _hasAbnormal;
}
}
}
return false;
}