-Small fix for Rage Aura debuff

-Update TriggerForce effect to avoid visual bug when Sigel' class use any aura on party, and some bug fixes on this effect.
-Implemented soulshot\spiritshot\blessed spiritshot damage bonus from enchanted weapon
-Implemented soulshot\spiritshot\blessed spiritshot damage bonus from Jewels Ruby\Sapphire
-Implemented Ruby\Sapphire\Topaz\Opal\Obsidian\Diamond\Emerald\Aquamarine\Pearl Jewels and its stats\skills.
-Changed compound jewels rate (in official servers - chances are lower (and from 3-5 lvls - greatly lower)
-Added visual effect to SS\SPS\BSPS if you equip Ruby\Sapphire 3\4\5 lvls (blue\yellow\red glow effects)
-New parameter weaponElementPower - increase weapon attribute power (if fire added in weapon - this parameter increase fire.. also about others)
-Small update skills.xsd to remove some eclipse warnings.

Contributed by NviX.
This commit is contained in:
MobiusDev
2015-07-11 16:22:19 +00:00
parent 5df3726293
commit 2beeb5bfbc
16 changed files with 429 additions and 169 deletions

View File

@@ -92,15 +92,18 @@ public final class TriggerForce extends AbstractEffect
for (L2PcInstance member : effector.getParty().getMembers())
{
_affectedMembers.add(member);
if (member.calculateDistance(effector, true, false) < 900)
if ((member.calculateDistance(effector, true, false) < 900) && (_skill.getSkillId() != RAGE_AURA))
{
member.makeTriggerCast(_skill.getSkill(), effector);
_skill.getSkill().applyEffects(effector, member);
}
}
}
else
{
effector.makeTriggerCast(_skill.getSkill(), effector);
if (_skill.getSkillId() != RAGE_AURA)
{
_skill.getSkill().applyEffects(effector, effector);
}
_affectedMembers.add(effector);
}
}
@@ -149,6 +152,7 @@ public final class TriggerForce extends AbstractEffect
if (_affectedObjects.contains(_affectedObjToRemove.get(i)))
{
_affectedObjects.remove(i);
i--;
}
}
}
@@ -163,15 +167,15 @@ public final class TriggerForce extends AbstractEffect
{
_affectedMembers.add(member);
}
if (!member.getEffectList().isAffectedBySkill(_skill.getSkillId()) && (member.calculateDistance(effector, true, false) < 900))
if (!member.getEffectList().isAffectedBySkill(_skill.getSkillId()) && (member.calculateDistance(effector, true, false) < 900) && (_skill.getSkillId() != RAGE_AURA))
{
if ((member != effector))
{
member.makeTriggerCast(_skill.getSkill(), effector);
_skill.getSkill().applyEffects(effector, member);
}
else if ((_skill.getSkillId() != CHALLENGE_AURA) && (_skill.getSkillId() != IRON_AURA) && (_skill.getSkillId() != RESISTANCE_AURA) && (_skill.getSkillId() != RECOVERY_AURA) && (_skill.getSkillId() != SPIRIT_AURA))
{
member.makeTriggerCast(_skill.getSkill(), effector);
_skill.getSkill().applyEffects(effector, effector);
}
}
else if (member.getEffectList().isAffectedBySkill(_skill.getSkillId()) && (member.calculateDistance(effector, true, false) > 900))
@@ -253,6 +257,7 @@ public final class TriggerForce extends AbstractEffect
if (!member.getEffectList().isAffectedBySkill(PARTY_SOLIDARITY) || (skill.getSkill().getLevel() != Math.min((activeForces - 3), 3)))
{
member.makeTriggerCast(SkillData.getInstance().getSkill(PARTY_SOLIDARITY, Math.min((activeForces - 3), 3)), member);
}
}
}

View File

@@ -44,6 +44,7 @@ public final class TriggerSkillBySkill extends AbstractEffect
private final int _chance;
private final SkillHolder _skill;
private final L2TargetType _targetType;
private final int AQUAMARINE = 17822;
/**
* @param attachCond
@@ -64,12 +65,12 @@ public final class TriggerSkillBySkill extends AbstractEffect
public void onSkillUseEvent(OnCreatureSkillUse event)
{
if ((_chance == 0) || ((_skill.getSkillId() == 0) || (_skill.getSkillLvl() == 0) || (_castSkillId == 0)))
if ((_chance == 0) || ((_skill.getSkillId() == 0) || (_skill.getSkillLvl() == 0) || ((_castSkillId == 0) && (_skill.getSkillId() != AQUAMARINE))))
{
return;
}
if (_castSkillId != event.getSkill().getId())
if ((_castSkillId != event.getSkill().getId()) && (_skill.getSkillId() != AQUAMARINE))
{
return;
}

View File

@@ -123,7 +123,23 @@ public class BeastSoulShot implements IItemHandler
if (!pet.isChargedShot(ShotType.SOULSHOTS))
{
pet.setChargedShot(ShotType.SOULSHOTS, true);
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
// Visual effect change if player has equipped Ruby lvl 3 or higher
if ((activeOwner.getInventory().getItemByItemId(38859) != null) && (activeOwner.getInventory().getItemByItemId(38859).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, 17817, 1, 0, 0), 600);
}
else if ((activeOwner.getInventory().getItemByItemId(38858) != null) && (activeOwner.getInventory().getItemByItemId(38858).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, 17816, 1, 0, 0), 600);
}
else if ((activeOwner.getInventory().getItemByItemId(38857) != null) && (activeOwner.getInventory().getItemByItemId(38857).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, 17815, 1, 0, 0), 600);
}
else
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
}
}
}
@@ -132,9 +148,25 @@ public class BeastSoulShot implements IItemHandler
if (!s.isChargedShot(ShotType.SOULSHOTS))
{
s.setChargedShot(ShotType.SOULSHOTS, true);
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
// Visual effect change if player has equipped Ruby lvl 3 or higher
if ((activeOwner.getInventory().getItemByItemId(38859) != null) && (activeOwner.getInventory().getItemByItemId(38859).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, 17817, 1, 0, 0), 600);
}
else if ((activeOwner.getInventory().getItemByItemId(38858) != null) && (activeOwner.getInventory().getItemByItemId(38858).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, 17816, 1, 0, 0), 600);
}
else if ((activeOwner.getInventory().getItemByItemId(38857) != null) && (activeOwner.getInventory().getItemByItemId(38857).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, 17815, 1, 0, 0), 600);
}
else
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
}
}
});
return true;
}
}
}

View File

@@ -125,7 +125,23 @@ public class BeastSpiritShot implements IItemHandler
if (!pet.isChargedShot(shotType))
{
pet.setChargedShot(shotType, true);
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
// Visual effect change if player has equipped Sapphire lvl 3 or higher
if ((activeOwner.getInventory().getItemByItemId(38931) != null) && (activeOwner.getInventory().getItemByItemId(38931).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, 17821, 2, 0, 0), 600);
}
else if ((activeOwner.getInventory().getItemByItemId(38930) != null) && (activeOwner.getInventory().getItemByItemId(38930).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, 17820, 2, 0, 0), 600);
}
else if ((activeOwner.getInventory().getItemByItemId(38929) != null) && (activeOwner.getInventory().getItemByItemId(38929).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, 17819, 2, 0, 0), 600);
}
else
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
}
}
}
@@ -134,9 +150,25 @@ public class BeastSpiritShot implements IItemHandler
if (!s.isChargedShot(shotType))
{
s.setChargedShot(shotType, true);
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
// Visual effect change if player has equipped Sapphire lvl 3 or higher
if ((activeOwner.getInventory().getItemByItemId(38931) != null) && (activeOwner.getInventory().getItemByItemId(38931).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, 17821, 2, 0, 0), 600);
}
else if ((activeOwner.getInventory().getItemByItemId(38930) != null) && (activeOwner.getInventory().getItemByItemId(38930).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, 17820, 2, 0, 0), 600);
}
else if ((activeOwner.getInventory().getItemByItemId(38929) != null) && (activeOwner.getInventory().getItemByItemId(38929).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, 17819, 2, 0, 0), 600);
}
else
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
}
}
});
return true;
}
}
}

View File

@@ -98,8 +98,23 @@ public class BlessedSpiritShot implements IItemHandler
// Send message to client
activeChar.sendPacket(SystemMessageId.YOUR_SPIRITSHOT_HAS_BEEN_ENABLED);
activeChar.setChargedShot(ShotType.BLESSED_SPIRITSHOTS, true);
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
// Visual effect change if player has equipped Sapphire lvl 3 or higher
if ((activeChar.getInventory().getItemByItemId(38931) != null) && (activeChar.getInventory().getItemByItemId(38931).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, 17821, 2, 0, 0), 600);
}
else if ((activeChar.getInventory().getItemByItemId(38930) != null) && (activeChar.getInventory().getItemByItemId(38930).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, 17820, 2, 0, 0), 600);
}
else if ((activeChar.getInventory().getItemByItemId(38929) != null) && (activeChar.getInventory().getItemByItemId(38929).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, 17819, 2, 0, 0), 600);
}
else
{
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
}
return true;
}
}
}

View File

@@ -112,7 +112,23 @@ public class SoulShots implements IItemHandler
// Send message to client
activeChar.sendPacket(SystemMessageId.YOUR_SOULSHOTS_ARE_ENABLED);
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
// Visual effect change if player has equipped Ruby lvl 3 or higher
if ((activeChar.getInventory().getItemByItemId(38859) != null) && (activeChar.getInventory().getItemByItemId(38859).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, 17817, 1, 0, 0), 600);
}
else if ((activeChar.getInventory().getItemByItemId(38858) != null) && (activeChar.getInventory().getItemByItemId(38858).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, 17816, 1, 0, 0), 600);
}
else if ((activeChar.getInventory().getItemByItemId(38857) != null) && (activeChar.getInventory().getItemByItemId(38857).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, 17815, 1, 0, 0), 600);
}
else
{
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
}
return true;
}
}
}

View File

@@ -99,7 +99,23 @@ public class SpiritShot implements IItemHandler
// Send message to client
activeChar.sendPacket(SystemMessageId.YOUR_SPIRITSHOT_HAS_BEEN_ENABLED);
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
// Visual effect change if player has equipped Sapphire lvl 3 or higher
if ((activeChar.getInventory().getItemByItemId(38931) != null) && (activeChar.getInventory().getItemByItemId(38931).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, 17821, 1, 0, 0), 600);
}
else if ((activeChar.getInventory().getItemByItemId(38930) != null) && (activeChar.getInventory().getItemByItemId(38930).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, 17820, 1, 0, 0), 600);
}
else if ((activeChar.getInventory().getItemByItemId(38929) != null) && (activeChar.getInventory().getItemByItemId(38929).isEquipped()))
{
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, 17819, 1, 0, 0), 600);
}
else
{
Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
}
return true;
}
}
}