From 1d4142937ae3e01dfda9e6d2a9eaf47aa60e2adf Mon Sep 17 00:00:00 2001
From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com>
Date: Fri, 10 May 2019 14:14:40 +0000
Subject: [PATCH] Raidboss changes. Contributed by champzix1.
---
.../scripts/ai/bosses/Trasken/Trasken.java | 4 +-
.../scripts/ai/bosses/Valakas/Valakas.java | 285 +++++++++---------
.../dist/game/data/stats/npcs/29200-29299.xml | 28 +-
.../game/data/stats/skills/04400-04499.xml | 5 +
.../game/data/stats/skills/05000-05099.xml | 22 +-
.../game/data/stats/skills/14200-14299.xml | 21 +-
.../game/data/stats/skills/15200-15299.xml | 100 ++++--
.../game/data/stats/skills/15400-15499.xml | 11 +
.../game/data/stats/skills/15500-15599.xml | 32 ++
.../game/data/stats/skills/16100-16199.xml | 19 +-
.../scripts/ai/bosses/Trasken/Trasken.java | 4 +-
.../scripts/ai/bosses/Valakas/Valakas.java | 285 +++++++++---------
.../dist/game/data/stats/npcs/29200-29299.xml | 28 +-
.../game/data/stats/skills/04400-04499.xml | 5 +
.../game/data/stats/skills/05000-05099.xml | 22 +-
.../game/data/stats/skills/14200-14299.xml | 21 +-
.../game/data/stats/skills/15200-15299.xml | 100 ++++--
.../game/data/stats/skills/15400-15499.xml | 11 +
.../game/data/stats/skills/15500-15599.xml | 32 ++
.../game/data/stats/skills/16100-16199.xml | 19 +-
.../scripts/ai/bosses/Trasken/Trasken.java | 4 +-
.../scripts/ai/bosses/Valakas/Valakas.java | 285 +++++++++---------
.../dist/game/data/stats/npcs/03400-03499.xml | 16 +-
.../dist/game/data/stats/npcs/29200-29299.xml | 28 +-
.../game/data/stats/skills/04400-04499.xml | 5 +
.../game/data/stats/skills/05000-05099.xml | 22 +-
.../game/data/stats/skills/14200-14299.xml | 21 +-
.../game/data/stats/skills/15200-15299.xml | 100 ++++--
.../game/data/stats/skills/15400-15499.xml | 11 +
.../game/data/stats/skills/15500-15599.xml | 32 ++
.../game/data/stats/skills/16100-16199.xml | 19 +-
.../game/data/stats/skills/16600-16699.xml | 118 +++-----
.../game/data/stats/skills/16700-16799.xml | 6 +-
.../scripts/ai/bosses/Trasken/Trasken.java | 4 +-
.../scripts/ai/bosses/Valakas/Valakas.java | 285 +++++++++---------
.../dist/game/data/stats/npcs/03400-03499.xml | 16 +-
.../dist/game/data/stats/npcs/29200-29299.xml | 28 +-
.../game/data/stats/skills/04400-04499.xml | 5 +
.../game/data/stats/skills/05000-05099.xml | 22 +-
.../game/data/stats/skills/14200-14299.xml | 21 +-
.../game/data/stats/skills/15200-15299.xml | 100 ++++--
.../game/data/stats/skills/15400-15499.xml | 11 +
.../game/data/stats/skills/15500-15599.xml | 32 ++
.../game/data/stats/skills/16100-16199.xml | 19 +-
.../game/data/stats/skills/16600-16699.xml | 118 +++-----
.../game/data/stats/skills/16700-16799.xml | 6 +-
.../scripts/ai/bosses/Trasken/Trasken.java | 4 +-
.../scripts/ai/bosses/Valakas/Valakas.java | 285 +++++++++---------
.../dist/game/data/stats/npcs/03400-03499.xml | 16 +-
.../dist/game/data/stats/npcs/29200-29299.xml | 28 +-
.../game/data/stats/skills/04400-04499.xml | 5 +
.../game/data/stats/skills/05000-05099.xml | 22 +-
.../game/data/stats/skills/14200-14299.xml | 21 +-
.../game/data/stats/skills/15200-15299.xml | 100 ++++--
.../game/data/stats/skills/15400-15499.xml | 11 +
.../game/data/stats/skills/15500-15599.xml | 32 ++
.../game/data/stats/skills/15600-15699.xml | 55 +++-
.../game/data/stats/skills/16100-16199.xml | 19 +-
.../game/data/stats/skills/16600-16699.xml | 118 +++-----
.../game/data/stats/skills/16700-16799.xml | 6 +-
.../scripts/ai/bosses/Trasken/Trasken.java | 4 +-
.../scripts/ai/bosses/Valakas/Valakas.java | 285 +++++++++---------
.../dist/game/data/stats/npcs/03400-03499.xml | 16 +-
.../dist/game/data/stats/npcs/29200-29299.xml | 28 +-
.../game/data/stats/skills/04400-04499.xml | 5 +
.../game/data/stats/skills/05000-05099.xml | 22 +-
.../game/data/stats/skills/14200-14299.xml | 21 +-
.../game/data/stats/skills/14300-14399.xml | 95 +++---
.../game/data/stats/skills/15200-15299.xml | 100 ++++--
.../game/data/stats/skills/15400-15499.xml | 11 +
.../game/data/stats/skills/15500-15599.xml | 32 ++
.../game/data/stats/skills/15600-15699.xml | 55 +++-
.../game/data/stats/skills/16100-16199.xml | 19 +-
.../game/data/stats/skills/16600-16699.xml | 118 +++-----
.../game/data/stats/skills/16700-16799.xml | 6 +-
.../game/data/stats/skills/23600-23699.xml | 55 +++-
.../game/data/stats/skills/32400-32499.xml | 68 ++++-
.../scripts/ai/bosses/Trasken/Trasken.java | 4 +-
.../scripts/ai/bosses/Valakas/Valakas.java | 285 +++++++++---------
.../dist/game/data/stats/npcs/03400-03499.xml | 16 +-
.../dist/game/data/stats/npcs/25800-25899.xml | 128 ++++----
.../dist/game/data/stats/npcs/25900-25999.xml | 184 +++++------
.../dist/game/data/stats/npcs/26000-26099.xml | 172 +++++------
.../dist/game/data/stats/npcs/26100-26199.xml | 209 ++++++++++---
.../dist/game/data/stats/npcs/29000-29099.xml | 10 +
.../dist/game/data/stats/npcs/29100-29199.xml | 24 +-
.../dist/game/data/stats/npcs/29200-29299.xml | 28 +-
.../dist/game/data/stats/npcs/29300-29399.xml | 148 +++++++--
.../game/data/stats/skills/04100-04199.xml | 158 ++++------
.../game/data/stats/skills/04400-04499.xml | 5 +
.../game/data/stats/skills/04600-04699.xml | 262 +++++++---------
.../game/data/stats/skills/05000-05099.xml | 22 +-
.../game/data/stats/skills/14200-14299.xml | 21 +-
.../game/data/stats/skills/14300-14399.xml | 95 +++---
.../game/data/stats/skills/15200-15299.xml | 100 ++++--
.../game/data/stats/skills/15400-15499.xml | 11 +
.../game/data/stats/skills/15500-15599.xml | 32 ++
.../game/data/stats/skills/15600-15699.xml | 55 +++-
.../game/data/stats/skills/16100-16199.xml | 19 +-
.../game/data/stats/skills/16600-16699.xml | 118 +++-----
.../game/data/stats/skills/16700-16799.xml | 6 +-
.../game/data/stats/skills/23600-23699.xml | 55 +++-
.../game/data/stats/skills/32400-32499.xml | 68 ++++-
.../game/data/stats/skills/32700-32799.xml | 125 +++++++-
104 files changed, 3640 insertions(+), 2770 deletions(-)
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
index 9051735a7b..f47966d56b 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
@@ -847,7 +847,7 @@ public class Trasken extends AbstractNpcAI
{
tie_trasken = addSpawn(TAIL_TRASKEN, CENTER_LOCATION, false, 0, true);
hp_tail = tie_trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 30000, tie_trasken, null);
+ startQuestTimer("spawn_rnd", 3000000, tie_trasken, null);
break;
}
case 3:
@@ -858,7 +858,7 @@ public class Trasken extends AbstractNpcAI
trasken.doCast(SKILL_TRASKEN_UP.getSkill());
hp_trasken = trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 70000, trasken, null);
+ startQuestTimer("spawn_rnd", 9000000, trasken, null);
for (Location loc : Spawn_Larva_1)
{
addSpawn(LAVRA_1, loc, false, 0, true);
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
index b98df41795..22d2f7812b 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
@@ -16,32 +16,23 @@
*/
package ai.bosses.Valakas;
-import java.util.ArrayList;
-import java.util.List;
-
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.enums.MountType;
-import org.l2jmobius.gameserver.geoengine.GeoEngine;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatsSet;
-import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Npc;
-import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
-import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.skills.BuffInfo;
import org.l2jmobius.gameserver.model.skills.Skill;
-import org.l2jmobius.gameserver.model.skills.SkillCaster;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera;
-import org.l2jmobius.gameserver.util.Util;
import ai.AbstractNpcAI;
@@ -54,36 +45,36 @@ public final class Valakas extends AbstractNpcAI
// NPC
private static final int VALAKAS = 29028;
// Skills
- private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
+ // private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
private static final int VALAKAS_REGENERATION = 4691;
- private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- };
-
- private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
-
- private static final SkillHolder[] VALAKAS_AOE_SKILLS =
- {
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4684, 1), // Valakas Dragon Breath
- new SkillHolder(4685, 1), // Valakas Tail Stomp
- new SkillHolder(4686, 1), // Valakas Tail Stomp
- new SkillHolder(4688, 1), // Valakas Stun
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
+ // private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_AOE_SKILLS =
+ // {
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4684, 1), // Valakas Dragon Breath
+ // new SkillHolder(4685, 1), // Valakas Tail Stomp
+ // new SkillHolder(4686, 1), // Valakas Tail Stomp
+ // new SkillHolder(4688, 1), // Valakas Stun
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
// Locations
private static final Location TELEPORT_CUBE_LOCATIONS[] =
@@ -114,7 +105,7 @@ public final class Valakas extends AbstractNpcAI
private static final byte DEAD = 3; // Valakas has been killed. Entry is locked.
// Misc
private long _timeTracker = 0; // Time tracker for last attack on Valakas.
- private Playable _actualVictim; // Actual target of Valakas.
+ // private Playable _actualVictim; // Actual target of Valakas.
private static ZoneType ZONE;
private Valakas()
@@ -355,10 +346,10 @@ public final class Valakas extends AbstractNpcAI
startQuestTimer("remove_players", 900000, null, null);
}
- else if (event.equalsIgnoreCase("skill_task"))
- {
- callSkillAI(npc);
- }
+ // else if (event.equalsIgnoreCase("skill_task"))
+ // {
+ // callSkillAI(npc);
+ // }
}
else if (event.equalsIgnoreCase("valakas_unlock"))
{
@@ -373,12 +364,12 @@ public final class Valakas extends AbstractNpcAI
return super.onAdvEvent(event, npc, player);
}
- @Override
- public String onSpawn(Npc npc)
- {
- npc.disableCoreAI(true);
- return super.onSpawn(npc);
- }
+ // @Override
+ // public String onSpawn(Npc npc)
+ // {
+ // npc.disableCoreAI(true);
+ // return super.onSpawn(npc);
+ // }
@Override
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
@@ -449,105 +440,105 @@ public final class Valakas extends AbstractNpcAI
return super.onKill(npc, killer, isSummon);
}
- @Override
- public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
- {
- return null;
- }
-
- private void callSkillAI(Npc npc)
- {
- if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
- {
- return;
- }
-
- // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
- if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
- {
- _actualVictim = getRandomTarget(npc);
- }
-
- // If result is still null, Valakas will roam. Don't go deeper in skill AI.
- if (_actualVictim == null)
- {
- if (getRandom(10) == 0)
- {
- final int posX = npc.getX() + getRandom(-1400, 1400);
- final int posY = npc.getY() + getRandom(-1400, 1400);
- if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
- }
- }
- return;
- }
-
- final Skill skill = getRandomSkill(npc).getSkill();
-
- // Cast the skill or follow the target.
- if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
- npc.setTarget(_actualVictim);
- npc.doCast(skill);
- }
- else
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
- }
- }
-
- /**
- * Pick a random skill.
- * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
- * Lower than 50% HPs, he will begin to use Meteor skill.
- * @param npc valakas
- * @return a skill holder
- */
- private SkillHolder getRandomSkill(Npc npc)
- {
- final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
-
- // Valakas Lava Skin has priority.
- if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
- {
- return VALAKAS_LAVA_SKIN;
- }
-
- // Valakas will use mass spells if he feels surrounded.
- if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
- {
- return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
- }
-
- if (hpRatio > 50)
- {
- return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
- }
-
- return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
- }
-
- /**
- * Pickup a random Playable from the zone, deads targets aren't included.
- * @param npc
- * @return a random Playable.
- */
- private Playable getRandomTarget(Npc npc)
- {
- final List result = new ArrayList<>();
-
- World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
- {
- if (!obj.isPet() && !obj.isDead())
- {
- result.add(obj);
- }
- });
-
- return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
- }
+ // @Override
+ // public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
+ // {
+ // return null;
+ // }
+ //
+ // private void callSkillAI(Npc npc)
+ // {
+ // if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
+ // {
+ // return;
+ // }
+ //
+ // // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
+ // if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
+ // {
+ // _actualVictim = getRandomTarget(npc);
+ // }
+ //
+ // // If result is still null, Valakas will roam. Don't go deeper in skill AI.
+ // if (_actualVictim == null)
+ // {
+ // if (getRandom(10) == 0)
+ // {
+ // final int posX = npc.getX() + getRandom(-1400, 1400);
+ // final int posY = npc.getY() + getRandom(-1400, 1400);
+ // if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
+ // }
+ // }
+ // return;
+ // }
+ //
+ // final Skill skill = getRandomSkill(npc).getSkill();
+ //
+ // // Cast the skill or follow the target.
+ // if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
+ // npc.setTarget(_actualVictim);
+ // npc.doCast(skill);
+ // }
+ // else
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
+ // }
+ // }
+ //
+ // /**
+ // * Pick a random skill.
+ // * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
+ // * Lower than 50% HPs, he will begin to use Meteor skill.
+ // * @param npc valakas
+ // * @return a skill holder
+ // */
+ // private SkillHolder getRandomSkill(Npc npc)
+ // {
+ // final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
+ //
+ // // Valakas Lava Skin has priority.
+ // if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
+ // {
+ // return VALAKAS_LAVA_SKIN;
+ // }
+ //
+ // // Valakas will use mass spells if he feels surrounded.
+ // if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
+ // {
+ // return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
+ // }
+ //
+ // if (hpRatio > 50)
+ // {
+ // return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
+ // }
+ //
+ // return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
+ // }
+ //
+ // /**
+ // * Pickup a random Playable from the zone, deads targets aren't included.
+ // * @param npc
+ // * @return a random Playable.
+ // */
+ // private Playable getRandomTarget(Npc npc)
+ // {
+ // final List result = new ArrayList<>();
+ //
+ // World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
+ // {
+ // if (!obj.isPet() && !obj.isDead())
+ // {
+ // result.add(obj);
+ // }
+ // });
+ //
+ // return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
+ // }
public static void main(String[] args)
{
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/npcs/29200-29299.xml b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/npcs/29200-29299.xml
index 38d7907428..e3a13a659c 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/npcs/29200-29299.xml
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/npcs/29200-29299.xml
@@ -408,8 +408,8 @@
-
-
+
+
@@ -489,8 +489,8 @@
-
-
+
+
@@ -532,8 +532,8 @@
-
-
+
+
@@ -660,8 +660,8 @@
-
-
+
+
@@ -930,8 +930,8 @@
-
-
+
+
@@ -1778,8 +1778,8 @@
-
-
+
+
@@ -1886,8 +1886,8 @@
-
-
+
+
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/04400-04499.xml b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/04400-04499.xml
index dcf13f8b4c..b74a27aaf3 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/04400-04499.xml
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/04400-04499.xml
@@ -3922,6 +3922,11 @@
1
P
-5
+
+
+ 100
+
+
900
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/05000-05099.xml b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/05000-05099.xml
index 1032e106ae..8f9f45b4a8 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/05000-05099.xml
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/05000-05099.xml
@@ -3003,25 +3003,21 @@
- 150
- 600
- -1
- 1100
+ 2500
+ -100
+ 2500
EARTH
- 180
+ 450
8000
- 2
- 99
- A1
- 6000
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
+ 110
+ A2
+ 300
ENEMY
RANGE
NOT_FRIEND
-
- 1084
+
+ 34255
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/14200-14299.xml b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/14200-14299.xml
index 51da134009..94a9b4e31d 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/14200-14299.xml
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/14200-14299.xml
@@ -1232,29 +1232,20 @@
icon.skill0054
A2
- 1
- 1000
+ 600
1500
- 1
- -1
+ -100
FLY_AWAY
- NONE
- -5
- 0
- 1400
- 1
- 99
+ 600
99
1
- 1
- 200
+ 3
true
ENEMY
- RANGE
- NOT_FRIEND
+ SINGLE
- 2000
+ 157
200
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/15200-15299.xml b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/15200-15299.xml
index dc70a7a20e..3b0a7b808d 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/15200-15299.xml
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/15200-15299.xml
@@ -1330,56 +1330,104 @@
icon.skill0100
A2
- 400
+ 1
+ 10
+ STUN
+ STUN
+ 600
2500
1000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ SHOCK
SELF
- SINGLE
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+
icon.skill10549
A2
- 400
+ 1
+ 30
2500
3000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ 0;0;2500;900
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+ -30
+ PER
+
+
+ -30
+ PER
+
+
- A1
- 2500
- -574
- -5
- 0
- 99
- 1500
+ 1
+ 10
+ STUN
+ STUN
+ 1000
+ -100
+ WIND
+ 300
+ 0;180;1500;600
+ 3000
+ 110
+ A2
+ SHOCK
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+
- A1
- 1800
+ A2
+ 300
+ 2500
2500
- -707
- -5
- 0
+ -100
+ 2500
+ WIND
+ 300
99
- 1
- SELF
- SINGLE
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/15400-15499.xml b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/15400-15499.xml
index 0d2b679c7d..82b6b9b0cf 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/15400-15499.xml
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/15400-15499.xml
@@ -444,10 +444,21 @@
A2
+ 1
+ 5
+ 600
5000
5000
-574
true
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
A1
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/15500-15599.xml b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/15500-15599.xml
index dc24d1e9a7..8ff7268b18 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/15500-15599.xml
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/15500-15599.xml
@@ -879,21 +879,53 @@
icon.skill4108
+ 1
+ 30
+ TURN_FLEE
+ TURN_FLEE
+ 600
A2
3000
500
1
-867
true
+ DERANGEMENT
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+
+
icon.skill0006
+ 1
+ 5
+ STUN
+ 600
A2
2000
3000
-867
true
+ PULL
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+ 600
+
+
+ 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912
+
+
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/16100-16199.xml b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/16100-16199.xml
index a04b6fb1e0..a7b7a7511d 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/16100-16199.xml
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/stats/skills/16100-16199.xml
@@ -28,11 +28,22 @@
icon.skill1167
A1
- 900
- 2000
+ 1
+ 300
+ 40-80
+ 300
+ 2500
500
- -264
- 1
+ -100
+ 300
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
index 9051735a7b..f47966d56b 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
@@ -847,7 +847,7 @@ public class Trasken extends AbstractNpcAI
{
tie_trasken = addSpawn(TAIL_TRASKEN, CENTER_LOCATION, false, 0, true);
hp_tail = tie_trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 30000, tie_trasken, null);
+ startQuestTimer("spawn_rnd", 3000000, tie_trasken, null);
break;
}
case 3:
@@ -858,7 +858,7 @@ public class Trasken extends AbstractNpcAI
trasken.doCast(SKILL_TRASKEN_UP.getSkill());
hp_trasken = trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 70000, trasken, null);
+ startQuestTimer("spawn_rnd", 9000000, trasken, null);
for (Location loc : Spawn_Larva_1)
{
addSpawn(LAVRA_1, loc, false, 0, true);
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
index b98df41795..22d2f7812b 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
@@ -16,32 +16,23 @@
*/
package ai.bosses.Valakas;
-import java.util.ArrayList;
-import java.util.List;
-
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.enums.MountType;
-import org.l2jmobius.gameserver.geoengine.GeoEngine;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatsSet;
-import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Npc;
-import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
-import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.skills.BuffInfo;
import org.l2jmobius.gameserver.model.skills.Skill;
-import org.l2jmobius.gameserver.model.skills.SkillCaster;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera;
-import org.l2jmobius.gameserver.util.Util;
import ai.AbstractNpcAI;
@@ -54,36 +45,36 @@ public final class Valakas extends AbstractNpcAI
// NPC
private static final int VALAKAS = 29028;
// Skills
- private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
+ // private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
private static final int VALAKAS_REGENERATION = 4691;
- private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- };
-
- private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
-
- private static final SkillHolder[] VALAKAS_AOE_SKILLS =
- {
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4684, 1), // Valakas Dragon Breath
- new SkillHolder(4685, 1), // Valakas Tail Stomp
- new SkillHolder(4686, 1), // Valakas Tail Stomp
- new SkillHolder(4688, 1), // Valakas Stun
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
+ // private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_AOE_SKILLS =
+ // {
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4684, 1), // Valakas Dragon Breath
+ // new SkillHolder(4685, 1), // Valakas Tail Stomp
+ // new SkillHolder(4686, 1), // Valakas Tail Stomp
+ // new SkillHolder(4688, 1), // Valakas Stun
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
// Locations
private static final Location TELEPORT_CUBE_LOCATIONS[] =
@@ -114,7 +105,7 @@ public final class Valakas extends AbstractNpcAI
private static final byte DEAD = 3; // Valakas has been killed. Entry is locked.
// Misc
private long _timeTracker = 0; // Time tracker for last attack on Valakas.
- private Playable _actualVictim; // Actual target of Valakas.
+ // private Playable _actualVictim; // Actual target of Valakas.
private static ZoneType ZONE;
private Valakas()
@@ -355,10 +346,10 @@ public final class Valakas extends AbstractNpcAI
startQuestTimer("remove_players", 900000, null, null);
}
- else if (event.equalsIgnoreCase("skill_task"))
- {
- callSkillAI(npc);
- }
+ // else if (event.equalsIgnoreCase("skill_task"))
+ // {
+ // callSkillAI(npc);
+ // }
}
else if (event.equalsIgnoreCase("valakas_unlock"))
{
@@ -373,12 +364,12 @@ public final class Valakas extends AbstractNpcAI
return super.onAdvEvent(event, npc, player);
}
- @Override
- public String onSpawn(Npc npc)
- {
- npc.disableCoreAI(true);
- return super.onSpawn(npc);
- }
+ // @Override
+ // public String onSpawn(Npc npc)
+ // {
+ // npc.disableCoreAI(true);
+ // return super.onSpawn(npc);
+ // }
@Override
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
@@ -449,105 +440,105 @@ public final class Valakas extends AbstractNpcAI
return super.onKill(npc, killer, isSummon);
}
- @Override
- public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
- {
- return null;
- }
-
- private void callSkillAI(Npc npc)
- {
- if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
- {
- return;
- }
-
- // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
- if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
- {
- _actualVictim = getRandomTarget(npc);
- }
-
- // If result is still null, Valakas will roam. Don't go deeper in skill AI.
- if (_actualVictim == null)
- {
- if (getRandom(10) == 0)
- {
- final int posX = npc.getX() + getRandom(-1400, 1400);
- final int posY = npc.getY() + getRandom(-1400, 1400);
- if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
- }
- }
- return;
- }
-
- final Skill skill = getRandomSkill(npc).getSkill();
-
- // Cast the skill or follow the target.
- if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
- npc.setTarget(_actualVictim);
- npc.doCast(skill);
- }
- else
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
- }
- }
-
- /**
- * Pick a random skill.
- * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
- * Lower than 50% HPs, he will begin to use Meteor skill.
- * @param npc valakas
- * @return a skill holder
- */
- private SkillHolder getRandomSkill(Npc npc)
- {
- final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
-
- // Valakas Lava Skin has priority.
- if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
- {
- return VALAKAS_LAVA_SKIN;
- }
-
- // Valakas will use mass spells if he feels surrounded.
- if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
- {
- return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
- }
-
- if (hpRatio > 50)
- {
- return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
- }
-
- return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
- }
-
- /**
- * Pickup a random Playable from the zone, deads targets aren't included.
- * @param npc
- * @return a random Playable.
- */
- private Playable getRandomTarget(Npc npc)
- {
- final List result = new ArrayList<>();
-
- World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
- {
- if (!obj.isPet() && !obj.isDead())
- {
- result.add(obj);
- }
- });
-
- return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
- }
+ // @Override
+ // public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
+ // {
+ // return null;
+ // }
+ //
+ // private void callSkillAI(Npc npc)
+ // {
+ // if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
+ // {
+ // return;
+ // }
+ //
+ // // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
+ // if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
+ // {
+ // _actualVictim = getRandomTarget(npc);
+ // }
+ //
+ // // If result is still null, Valakas will roam. Don't go deeper in skill AI.
+ // if (_actualVictim == null)
+ // {
+ // if (getRandom(10) == 0)
+ // {
+ // final int posX = npc.getX() + getRandom(-1400, 1400);
+ // final int posY = npc.getY() + getRandom(-1400, 1400);
+ // if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
+ // }
+ // }
+ // return;
+ // }
+ //
+ // final Skill skill = getRandomSkill(npc).getSkill();
+ //
+ // // Cast the skill or follow the target.
+ // if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
+ // npc.setTarget(_actualVictim);
+ // npc.doCast(skill);
+ // }
+ // else
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
+ // }
+ // }
+ //
+ // /**
+ // * Pick a random skill.
+ // * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
+ // * Lower than 50% HPs, he will begin to use Meteor skill.
+ // * @param npc valakas
+ // * @return a skill holder
+ // */
+ // private SkillHolder getRandomSkill(Npc npc)
+ // {
+ // final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
+ //
+ // // Valakas Lava Skin has priority.
+ // if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
+ // {
+ // return VALAKAS_LAVA_SKIN;
+ // }
+ //
+ // // Valakas will use mass spells if he feels surrounded.
+ // if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
+ // {
+ // return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
+ // }
+ //
+ // if (hpRatio > 50)
+ // {
+ // return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
+ // }
+ //
+ // return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
+ // }
+ //
+ // /**
+ // * Pickup a random Playable from the zone, deads targets aren't included.
+ // * @param npc
+ // * @return a random Playable.
+ // */
+ // private Playable getRandomTarget(Npc npc)
+ // {
+ // final List result = new ArrayList<>();
+ //
+ // World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
+ // {
+ // if (!obj.isPet() && !obj.isDead())
+ // {
+ // result.add(obj);
+ // }
+ // });
+ //
+ // return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
+ // }
public static void main(String[] args)
{
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/29200-29299.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/29200-29299.xml
index f2c0b2faac..ccc9d30fec 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/29200-29299.xml
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/npcs/29200-29299.xml
@@ -408,8 +408,8 @@
-
-
+
+
@@ -489,8 +489,8 @@
-
-
+
+
@@ -532,8 +532,8 @@
-
-
+
+
@@ -685,8 +685,8 @@
-
-
+
+
@@ -956,8 +956,8 @@
-
-
+
+
@@ -1806,8 +1806,8 @@
-
-
+
+
@@ -1914,8 +1914,8 @@
-
-
+
+
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/04400-04499.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/04400-04499.xml
index 451ea98cef..2f351cbc5f 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/04400-04499.xml
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/04400-04499.xml
@@ -3922,6 +3922,11 @@
1
P
-5
+
+
+ 100
+
+
900
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/05000-05099.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/05000-05099.xml
index dcc4017d55..9bdfeeffba 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/05000-05099.xml
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/05000-05099.xml
@@ -3003,25 +3003,21 @@
- 150
- 600
- -1
- 1100
+ 2500
+ -100
+ 2500
EARTH
- 180
+ 450
8000
- 2
- 99
- A1
- 6000
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
+ 110
+ A2
+ 300
ENEMY
RANGE
NOT_FRIEND
-
- 1084
+
+ 34255
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/14200-14299.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/14200-14299.xml
index b4c63e0736..be0c082931 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/14200-14299.xml
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/14200-14299.xml
@@ -1232,29 +1232,20 @@
icon.skill0054
A2
- 1
- 1000
+ 600
1500
- 1
- -1
+ -100
FLY_AWAY
- NONE
- -5
- 0
- 1400
- 1
- 99
+ 600
99
1
- 1
- 200
+ 3
true
ENEMY
- RANGE
- NOT_FRIEND
+ SINGLE
- 2000
+ 157
200
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15200-15299.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15200-15299.xml
index dc70a7a20e..3b0a7b808d 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15200-15299.xml
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15200-15299.xml
@@ -1330,56 +1330,104 @@
icon.skill0100
A2
- 400
+ 1
+ 10
+ STUN
+ STUN
+ 600
2500
1000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ SHOCK
SELF
- SINGLE
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+
icon.skill10549
A2
- 400
+ 1
+ 30
2500
3000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ 0;0;2500;900
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+ -30
+ PER
+
+
+ -30
+ PER
+
+
- A1
- 2500
- -574
- -5
- 0
- 99
- 1500
+ 1
+ 10
+ STUN
+ STUN
+ 1000
+ -100
+ WIND
+ 300
+ 0;180;1500;600
+ 3000
+ 110
+ A2
+ SHOCK
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+
- A1
- 1800
+ A2
+ 300
+ 2500
2500
- -707
- -5
- 0
+ -100
+ 2500
+ WIND
+ 300
99
- 1
- SELF
- SINGLE
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15400-15499.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15400-15499.xml
index 0d2b679c7d..82b6b9b0cf 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15400-15499.xml
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15400-15499.xml
@@ -444,10 +444,21 @@
A2
+ 1
+ 5
+ 600
5000
5000
-574
true
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
A1
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15500-15599.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15500-15599.xml
index ab3170d0ad..9dfdf0049e 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15500-15599.xml
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/15500-15599.xml
@@ -879,21 +879,53 @@
icon.skill4108
+ 1
+ 30
+ TURN_FLEE
+ TURN_FLEE
+ 600
A2
3000
500
1
-867
true
+ DERANGEMENT
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+
+
icon.skill0006
+ 1
+ 5
+ STUN
+ 600
A2
2000
3000
-867
true
+ PULL
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+ 600
+
+
+ 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912
+
+
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/16100-16199.xml b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/16100-16199.xml
index 56427a51fe..4de299e952 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/16100-16199.xml
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/stats/skills/16100-16199.xml
@@ -28,11 +28,22 @@
icon.skill1167
A1
- 900
- 2000
+ 1
+ 300
+ 40-80
+ 300
+ 2500
500
- -264
- 1
+ -100
+ 300
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
index 9051735a7b..f47966d56b 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
@@ -847,7 +847,7 @@ public class Trasken extends AbstractNpcAI
{
tie_trasken = addSpawn(TAIL_TRASKEN, CENTER_LOCATION, false, 0, true);
hp_tail = tie_trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 30000, tie_trasken, null);
+ startQuestTimer("spawn_rnd", 3000000, tie_trasken, null);
break;
}
case 3:
@@ -858,7 +858,7 @@ public class Trasken extends AbstractNpcAI
trasken.doCast(SKILL_TRASKEN_UP.getSkill());
hp_trasken = trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 70000, trasken, null);
+ startQuestTimer("spawn_rnd", 9000000, trasken, null);
for (Location loc : Spawn_Larva_1)
{
addSpawn(LAVRA_1, loc, false, 0, true);
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
index b98df41795..22d2f7812b 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
@@ -16,32 +16,23 @@
*/
package ai.bosses.Valakas;
-import java.util.ArrayList;
-import java.util.List;
-
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.enums.MountType;
-import org.l2jmobius.gameserver.geoengine.GeoEngine;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatsSet;
-import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Npc;
-import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
-import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.skills.BuffInfo;
import org.l2jmobius.gameserver.model.skills.Skill;
-import org.l2jmobius.gameserver.model.skills.SkillCaster;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera;
-import org.l2jmobius.gameserver.util.Util;
import ai.AbstractNpcAI;
@@ -54,36 +45,36 @@ public final class Valakas extends AbstractNpcAI
// NPC
private static final int VALAKAS = 29028;
// Skills
- private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
+ // private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
private static final int VALAKAS_REGENERATION = 4691;
- private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- };
-
- private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
-
- private static final SkillHolder[] VALAKAS_AOE_SKILLS =
- {
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4684, 1), // Valakas Dragon Breath
- new SkillHolder(4685, 1), // Valakas Tail Stomp
- new SkillHolder(4686, 1), // Valakas Tail Stomp
- new SkillHolder(4688, 1), // Valakas Stun
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
+ // private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_AOE_SKILLS =
+ // {
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4684, 1), // Valakas Dragon Breath
+ // new SkillHolder(4685, 1), // Valakas Tail Stomp
+ // new SkillHolder(4686, 1), // Valakas Tail Stomp
+ // new SkillHolder(4688, 1), // Valakas Stun
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
// Locations
private static final Location TELEPORT_CUBE_LOCATIONS[] =
@@ -114,7 +105,7 @@ public final class Valakas extends AbstractNpcAI
private static final byte DEAD = 3; // Valakas has been killed. Entry is locked.
// Misc
private long _timeTracker = 0; // Time tracker for last attack on Valakas.
- private Playable _actualVictim; // Actual target of Valakas.
+ // private Playable _actualVictim; // Actual target of Valakas.
private static ZoneType ZONE;
private Valakas()
@@ -355,10 +346,10 @@ public final class Valakas extends AbstractNpcAI
startQuestTimer("remove_players", 900000, null, null);
}
- else if (event.equalsIgnoreCase("skill_task"))
- {
- callSkillAI(npc);
- }
+ // else if (event.equalsIgnoreCase("skill_task"))
+ // {
+ // callSkillAI(npc);
+ // }
}
else if (event.equalsIgnoreCase("valakas_unlock"))
{
@@ -373,12 +364,12 @@ public final class Valakas extends AbstractNpcAI
return super.onAdvEvent(event, npc, player);
}
- @Override
- public String onSpawn(Npc npc)
- {
- npc.disableCoreAI(true);
- return super.onSpawn(npc);
- }
+ // @Override
+ // public String onSpawn(Npc npc)
+ // {
+ // npc.disableCoreAI(true);
+ // return super.onSpawn(npc);
+ // }
@Override
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
@@ -449,105 +440,105 @@ public final class Valakas extends AbstractNpcAI
return super.onKill(npc, killer, isSummon);
}
- @Override
- public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
- {
- return null;
- }
-
- private void callSkillAI(Npc npc)
- {
- if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
- {
- return;
- }
-
- // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
- if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
- {
- _actualVictim = getRandomTarget(npc);
- }
-
- // If result is still null, Valakas will roam. Don't go deeper in skill AI.
- if (_actualVictim == null)
- {
- if (getRandom(10) == 0)
- {
- final int posX = npc.getX() + getRandom(-1400, 1400);
- final int posY = npc.getY() + getRandom(-1400, 1400);
- if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
- }
- }
- return;
- }
-
- final Skill skill = getRandomSkill(npc).getSkill();
-
- // Cast the skill or follow the target.
- if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
- npc.setTarget(_actualVictim);
- npc.doCast(skill);
- }
- else
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
- }
- }
-
- /**
- * Pick a random skill.
- * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
- * Lower than 50% HPs, he will begin to use Meteor skill.
- * @param npc valakas
- * @return a skill holder
- */
- private SkillHolder getRandomSkill(Npc npc)
- {
- final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
-
- // Valakas Lava Skin has priority.
- if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
- {
- return VALAKAS_LAVA_SKIN;
- }
-
- // Valakas will use mass spells if he feels surrounded.
- if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
- {
- return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
- }
-
- if (hpRatio > 50)
- {
- return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
- }
-
- return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
- }
-
- /**
- * Pickup a random Playable from the zone, deads targets aren't included.
- * @param npc
- * @return a random Playable.
- */
- private Playable getRandomTarget(Npc npc)
- {
- final List result = new ArrayList<>();
-
- World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
- {
- if (!obj.isPet() && !obj.isDead())
- {
- result.add(obj);
- }
- });
-
- return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
- }
+ // @Override
+ // public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
+ // {
+ // return null;
+ // }
+ //
+ // private void callSkillAI(Npc npc)
+ // {
+ // if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
+ // {
+ // return;
+ // }
+ //
+ // // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
+ // if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
+ // {
+ // _actualVictim = getRandomTarget(npc);
+ // }
+ //
+ // // If result is still null, Valakas will roam. Don't go deeper in skill AI.
+ // if (_actualVictim == null)
+ // {
+ // if (getRandom(10) == 0)
+ // {
+ // final int posX = npc.getX() + getRandom(-1400, 1400);
+ // final int posY = npc.getY() + getRandom(-1400, 1400);
+ // if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
+ // }
+ // }
+ // return;
+ // }
+ //
+ // final Skill skill = getRandomSkill(npc).getSkill();
+ //
+ // // Cast the skill or follow the target.
+ // if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
+ // npc.setTarget(_actualVictim);
+ // npc.doCast(skill);
+ // }
+ // else
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
+ // }
+ // }
+ //
+ // /**
+ // * Pick a random skill.
+ // * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
+ // * Lower than 50% HPs, he will begin to use Meteor skill.
+ // * @param npc valakas
+ // * @return a skill holder
+ // */
+ // private SkillHolder getRandomSkill(Npc npc)
+ // {
+ // final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
+ //
+ // // Valakas Lava Skin has priority.
+ // if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
+ // {
+ // return VALAKAS_LAVA_SKIN;
+ // }
+ //
+ // // Valakas will use mass spells if he feels surrounded.
+ // if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
+ // {
+ // return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
+ // }
+ //
+ // if (hpRatio > 50)
+ // {
+ // return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
+ // }
+ //
+ // return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
+ // }
+ //
+ // /**
+ // * Pickup a random Playable from the zone, deads targets aren't included.
+ // * @param npc
+ // * @return a random Playable.
+ // */
+ // private Playable getRandomTarget(Npc npc)
+ // {
+ // final List result = new ArrayList<>();
+ //
+ // World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
+ // {
+ // if (!obj.isPet() && !obj.isDead())
+ // {
+ // result.add(obj);
+ // }
+ // });
+ //
+ // return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
+ // }
public static void main(String[] args)
{
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/03400-03499.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/03400-03499.xml
index 4510cd9644..1b18ffead9 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/03400-03499.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/03400-03499.xml
@@ -3247,8 +3247,8 @@
-
-
+
+
@@ -3481,8 +3481,8 @@
-
-
+
+
@@ -3589,8 +3589,8 @@
-
-
+
+
@@ -3692,8 +3692,8 @@
-
-
+
+
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/29200-29299.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/29200-29299.xml
index 5c5908ed43..91a64e2c63 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/29200-29299.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/npcs/29200-29299.xml
@@ -408,8 +408,8 @@
-
-
+
+
@@ -489,8 +489,8 @@
-
-
+
+
@@ -532,8 +532,8 @@
-
-
+
+
@@ -685,8 +685,8 @@
-
-
+
+
@@ -956,8 +956,8 @@
-
-
+
+
@@ -1806,8 +1806,8 @@
-
-
+
+
@@ -1914,8 +1914,8 @@
-
-
+
+
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/04400-04499.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/04400-04499.xml
index abc97495d3..2769fbdd93 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/04400-04499.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/04400-04499.xml
@@ -3935,6 +3935,11 @@
1
P
-5
+
+
+ 100
+
+
900
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/05000-05099.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/05000-05099.xml
index 48f9d23580..e3faf9e477 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/05000-05099.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/05000-05099.xml
@@ -3003,25 +3003,21 @@
- 150
- 600
- -1
- 1100
+ 2500
+ -100
+ 2500
EARTH
- 180
+ 450
8000
- 2
- 99
- A1
- 6000
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
+ 110
+ A2
+ 300
ENEMY
RANGE
NOT_FRIEND
-
- 1084
+
+ 34255
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/14200-14299.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/14200-14299.xml
index a6b7f19a69..af72cc87de 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/14200-14299.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/14200-14299.xml
@@ -1232,29 +1232,20 @@
icon.skill0054
A2
- 1
- 1000
+ 600
1500
- 1
- -1
+ -100
FLY_AWAY
- NONE
- -5
- 0
- 1400
- 1
- 99
+ 600
99
1
- 1
- 200
+ 3
true
ENEMY
- RANGE
- NOT_FRIEND
+ SINGLE
- 2000
+ 157
200
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15200-15299.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15200-15299.xml
index 42ab9e311b..3d605972cf 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15200-15299.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15200-15299.xml
@@ -1330,56 +1330,104 @@
icon.skill0100
A2
- 400
+ 1
+ 10
+ STUN
+ STUN
+ 600
2500
1000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ SHOCK
SELF
- SINGLE
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+
icon.skill10549
A2
- 400
+ 1
+ 30
2500
3000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ 0;0;2500;900
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+ -30
+ PER
+
+
+ -30
+ PER
+
+
- A1
- 2500
- -574
- -5
- 0
- 99
- 1500
+ 1
+ 10
+ STUN
+ STUN
+ 1000
+ -100
+ WIND
+ 300
+ 0;180;1500;600
+ 3000
+ 110
+ A2
+ SHOCK
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+
- A1
- 1800
+ A2
+ 300
+ 2500
2500
- -707
- -5
- 0
+ -100
+ 2500
+ WIND
+ 300
99
- 1
- SELF
- SINGLE
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15400-15499.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15400-15499.xml
index 0d2b679c7d..82b6b9b0cf 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15400-15499.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15400-15499.xml
@@ -444,10 +444,21 @@
A2
+ 1
+ 5
+ 600
5000
5000
-574
true
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
A1
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15500-15599.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15500-15599.xml
index ab3170d0ad..9dfdf0049e 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15500-15599.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/15500-15599.xml
@@ -879,21 +879,53 @@
icon.skill4108
+ 1
+ 30
+ TURN_FLEE
+ TURN_FLEE
+ 600
A2
3000
500
1
-867
true
+ DERANGEMENT
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+
+
icon.skill0006
+ 1
+ 5
+ STUN
+ 600
A2
2000
3000
-867
true
+ PULL
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+ 600
+
+
+ 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912
+
+
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/16100-16199.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/16100-16199.xml
index ff88912fb5..1afaf9e3ad 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/16100-16199.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/16100-16199.xml
@@ -28,11 +28,22 @@
icon.skill1167
A1
- 900
- 2000
+ 1
+ 300
+ 40-80
+ 300
+ 2500
500
- -264
- 1
+ -100
+ 300
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/16600-16699.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/16600-16699.xml
index 7a46316aa3..2c0fdef9ad 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/16600-16699.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/16600-16699.xml
@@ -206,25 +206,19 @@
1
10
PARALYZE
- 150
PARALYZE
- 10
2500
2500
- 200
3000
500
- 10000
- 2
- -52
- 0
+ -100
PARALYZE
ENEMY
SINGLE
true
- 1500
+ 157
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
@@ -237,20 +231,17 @@
A1
true
40-80
- 2500
- 900
- 10
+ 600
1000
500
- -52
- 2500
+ -100
SELF
POINT_BLANK
NOT_FRIEND
true
-
- 1500
+
+ 34255
@@ -259,21 +250,14 @@
icon.skill1275
A2
5
- 2
- 200
- true
- -1
+ 5
40-80
- 900
- 20000
+ 600
KNOCKDOWN
KNOCKDOWN
- 0
- 10
1000
500
- -52
- 2500
+ -100
KNOCKDOWN
SELF
POINT_BLANK
@@ -281,7 +265,7 @@
true
- 1500
+ 157
600
@@ -297,18 +281,11 @@
A2
5
30
- 200
- true
- -1
40-80
- 900
- 20000
- 0
- 10
+ 600
2000
500
- -52
- 2500
+ -100
GIANT_WEAKNESS
SELF
POINT_BLANK
@@ -316,7 +293,7 @@
true
- 1500
+ 157
30
@@ -368,22 +345,16 @@
icon.skill1172
A2
- 1200
+ 2500
2000
- -52
- 1
- 10
+ -100
1
10
40-80
PARALYZE
PARALYZE
- 150
- 900
- 1200
- 10000
- 2
- 0
+ 300
+ 2500
PARALYZE
ENEMY
RANGE
@@ -391,7 +362,7 @@
true
- 100000
+ 34255
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
@@ -402,23 +373,20 @@
A1
- true
45-45
- 200
- 1200
- 400
- 10
+ 2500
+ 300
3000
500
- -1349
- 1200
+ -100
+ 2500
ENEMY
RANGE
NOT_FRIEND
true
- 1500
+ 157
250
@@ -431,26 +399,21 @@
icon.skill16614
A2
- SELF
- 1200
+ 2500
3000
- -52
- 1
- 10
- 10000
+ -100
+ 2500
1
30
PARALYZE
- 150
PARALYZE
true
- 0
PARALYZE
ENEMY
SINGLE
- 200
+ 512
1
@@ -587,19 +550,20 @@
A1
2500
5000
- -696
- 1
- 10000
- 200
- 12
+ -100
+ 300
2500
ENEMY
- SINGLE
+ RANGE
NOT_FRIEND
true
- 1500
+ 157
+
+
+ 512
+ 1
@@ -607,23 +571,17 @@
icon.skll10094
A2
- SELF
2500
2500
- 900
+ 300
2500
40-80
- -438
- 1
- 10
- 10000
+ -100
1
30
PARALYZE
- 150
PARALYZE
true
- 0
PARALYZE
ENEMY
RANGE
@@ -634,7 +592,7 @@
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
- 1500
+ 157
-50
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/16700-16799.xml b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/16700-16799.xml
index 5a13c515d8..2b6dc7c791 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/16700-16799.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/stats/skills/16700-16799.xml
@@ -389,15 +389,15 @@
A1
- -1
+ 600
1500
- 1
-100
+ 600
ENEMY
SINGLE
- 100000
+ 34255
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
index 9051735a7b..f47966d56b 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
@@ -847,7 +847,7 @@ public class Trasken extends AbstractNpcAI
{
tie_trasken = addSpawn(TAIL_TRASKEN, CENTER_LOCATION, false, 0, true);
hp_tail = tie_trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 30000, tie_trasken, null);
+ startQuestTimer("spawn_rnd", 3000000, tie_trasken, null);
break;
}
case 3:
@@ -858,7 +858,7 @@ public class Trasken extends AbstractNpcAI
trasken.doCast(SKILL_TRASKEN_UP.getSkill());
hp_trasken = trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 70000, trasken, null);
+ startQuestTimer("spawn_rnd", 9000000, trasken, null);
for (Location loc : Spawn_Larva_1)
{
addSpawn(LAVRA_1, loc, false, 0, true);
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
index b98df41795..22d2f7812b 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
@@ -16,32 +16,23 @@
*/
package ai.bosses.Valakas;
-import java.util.ArrayList;
-import java.util.List;
-
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.enums.MountType;
-import org.l2jmobius.gameserver.geoengine.GeoEngine;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatsSet;
-import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Npc;
-import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
-import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.skills.BuffInfo;
import org.l2jmobius.gameserver.model.skills.Skill;
-import org.l2jmobius.gameserver.model.skills.SkillCaster;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera;
-import org.l2jmobius.gameserver.util.Util;
import ai.AbstractNpcAI;
@@ -54,36 +45,36 @@ public final class Valakas extends AbstractNpcAI
// NPC
private static final int VALAKAS = 29028;
// Skills
- private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
+ // private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
private static final int VALAKAS_REGENERATION = 4691;
- private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- };
-
- private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
-
- private static final SkillHolder[] VALAKAS_AOE_SKILLS =
- {
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4684, 1), // Valakas Dragon Breath
- new SkillHolder(4685, 1), // Valakas Tail Stomp
- new SkillHolder(4686, 1), // Valakas Tail Stomp
- new SkillHolder(4688, 1), // Valakas Stun
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
+ // private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_AOE_SKILLS =
+ // {
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4684, 1), // Valakas Dragon Breath
+ // new SkillHolder(4685, 1), // Valakas Tail Stomp
+ // new SkillHolder(4686, 1), // Valakas Tail Stomp
+ // new SkillHolder(4688, 1), // Valakas Stun
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
// Locations
private static final Location TELEPORT_CUBE_LOCATIONS[] =
@@ -114,7 +105,7 @@ public final class Valakas extends AbstractNpcAI
private static final byte DEAD = 3; // Valakas has been killed. Entry is locked.
// Misc
private long _timeTracker = 0; // Time tracker for last attack on Valakas.
- private Playable _actualVictim; // Actual target of Valakas.
+ // private Playable _actualVictim; // Actual target of Valakas.
private static ZoneType ZONE;
private Valakas()
@@ -355,10 +346,10 @@ public final class Valakas extends AbstractNpcAI
startQuestTimer("remove_players", 900000, null, null);
}
- else if (event.equalsIgnoreCase("skill_task"))
- {
- callSkillAI(npc);
- }
+ // else if (event.equalsIgnoreCase("skill_task"))
+ // {
+ // callSkillAI(npc);
+ // }
}
else if (event.equalsIgnoreCase("valakas_unlock"))
{
@@ -373,12 +364,12 @@ public final class Valakas extends AbstractNpcAI
return super.onAdvEvent(event, npc, player);
}
- @Override
- public String onSpawn(Npc npc)
- {
- npc.disableCoreAI(true);
- return super.onSpawn(npc);
- }
+ // @Override
+ // public String onSpawn(Npc npc)
+ // {
+ // npc.disableCoreAI(true);
+ // return super.onSpawn(npc);
+ // }
@Override
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
@@ -449,105 +440,105 @@ public final class Valakas extends AbstractNpcAI
return super.onKill(npc, killer, isSummon);
}
- @Override
- public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
- {
- return null;
- }
-
- private void callSkillAI(Npc npc)
- {
- if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
- {
- return;
- }
-
- // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
- if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
- {
- _actualVictim = getRandomTarget(npc);
- }
-
- // If result is still null, Valakas will roam. Don't go deeper in skill AI.
- if (_actualVictim == null)
- {
- if (getRandom(10) == 0)
- {
- final int posX = npc.getX() + getRandom(-1400, 1400);
- final int posY = npc.getY() + getRandom(-1400, 1400);
- if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
- }
- }
- return;
- }
-
- final Skill skill = getRandomSkill(npc).getSkill();
-
- // Cast the skill or follow the target.
- if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
- npc.setTarget(_actualVictim);
- npc.doCast(skill);
- }
- else
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
- }
- }
-
- /**
- * Pick a random skill.
- * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
- * Lower than 50% HPs, he will begin to use Meteor skill.
- * @param npc valakas
- * @return a skill holder
- */
- private SkillHolder getRandomSkill(Npc npc)
- {
- final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
-
- // Valakas Lava Skin has priority.
- if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
- {
- return VALAKAS_LAVA_SKIN;
- }
-
- // Valakas will use mass spells if he feels surrounded.
- if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
- {
- return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
- }
-
- if (hpRatio > 50)
- {
- return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
- }
-
- return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
- }
-
- /**
- * Pickup a random Playable from the zone, deads targets aren't included.
- * @param npc
- * @return a random Playable.
- */
- private Playable getRandomTarget(Npc npc)
- {
- final List result = new ArrayList<>();
-
- World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
- {
- if (!obj.isPet() && !obj.isDead())
- {
- result.add(obj);
- }
- });
-
- return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
- }
+ // @Override
+ // public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
+ // {
+ // return null;
+ // }
+ //
+ // private void callSkillAI(Npc npc)
+ // {
+ // if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
+ // {
+ // return;
+ // }
+ //
+ // // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
+ // if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
+ // {
+ // _actualVictim = getRandomTarget(npc);
+ // }
+ //
+ // // If result is still null, Valakas will roam. Don't go deeper in skill AI.
+ // if (_actualVictim == null)
+ // {
+ // if (getRandom(10) == 0)
+ // {
+ // final int posX = npc.getX() + getRandom(-1400, 1400);
+ // final int posY = npc.getY() + getRandom(-1400, 1400);
+ // if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
+ // }
+ // }
+ // return;
+ // }
+ //
+ // final Skill skill = getRandomSkill(npc).getSkill();
+ //
+ // // Cast the skill or follow the target.
+ // if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
+ // npc.setTarget(_actualVictim);
+ // npc.doCast(skill);
+ // }
+ // else
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
+ // }
+ // }
+ //
+ // /**
+ // * Pick a random skill.
+ // * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
+ // * Lower than 50% HPs, he will begin to use Meteor skill.
+ // * @param npc valakas
+ // * @return a skill holder
+ // */
+ // private SkillHolder getRandomSkill(Npc npc)
+ // {
+ // final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
+ //
+ // // Valakas Lava Skin has priority.
+ // if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
+ // {
+ // return VALAKAS_LAVA_SKIN;
+ // }
+ //
+ // // Valakas will use mass spells if he feels surrounded.
+ // if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
+ // {
+ // return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
+ // }
+ //
+ // if (hpRatio > 50)
+ // {
+ // return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
+ // }
+ //
+ // return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
+ // }
+ //
+ // /**
+ // * Pickup a random Playable from the zone, deads targets aren't included.
+ // * @param npc
+ // * @return a random Playable.
+ // */
+ // private Playable getRandomTarget(Npc npc)
+ // {
+ // final List result = new ArrayList<>();
+ //
+ // World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
+ // {
+ // if (!obj.isPet() && !obj.isDead())
+ // {
+ // result.add(obj);
+ // }
+ // });
+ //
+ // return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
+ // }
public static void main(String[] args)
{
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/03400-03499.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/03400-03499.xml
index 4510cd9644..1b18ffead9 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/03400-03499.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/03400-03499.xml
@@ -3247,8 +3247,8 @@
-
-
+
+
@@ -3481,8 +3481,8 @@
-
-
+
+
@@ -3589,8 +3589,8 @@
-
-
+
+
@@ -3692,8 +3692,8 @@
-
-
+
+
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/29200-29299.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/29200-29299.xml
index 9f054c4c3a..753adf8830 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/29200-29299.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/npcs/29200-29299.xml
@@ -408,8 +408,8 @@
-
-
+
+
@@ -489,8 +489,8 @@
-
-
+
+
@@ -532,8 +532,8 @@
-
-
+
+
@@ -685,8 +685,8 @@
-
-
+
+
@@ -991,8 +991,8 @@
-
-
+
+
@@ -1876,8 +1876,8 @@
-
-
+
+
@@ -1984,8 +1984,8 @@
-
-
+
+
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/04400-04499.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/04400-04499.xml
index c314fff4c7..9806f0a553 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/04400-04499.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/04400-04499.xml
@@ -3935,6 +3935,11 @@
1
P
-5
+
+
+ 100
+
+
900
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/05000-05099.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/05000-05099.xml
index 4e848ff314..1c6e2b9c3b 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/05000-05099.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/05000-05099.xml
@@ -3003,25 +3003,21 @@
- 150
- 600
- -1
- 1100
+ 2500
+ -100
+ 2500
EARTH
- 180
+ 450
8000
- 2
- 99
- A1
- 6000
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
+ 110
+ A2
+ 300
ENEMY
RANGE
NOT_FRIEND
-
- 1084
+
+ 34255
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/14200-14299.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/14200-14299.xml
index b4c63e0736..be0c082931 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/14200-14299.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/14200-14299.xml
@@ -1232,29 +1232,20 @@
icon.skill0054
A2
- 1
- 1000
+ 600
1500
- 1
- -1
+ -100
FLY_AWAY
- NONE
- -5
- 0
- 1400
- 1
- 99
+ 600
99
1
- 1
- 200
+ 3
true
ENEMY
- RANGE
- NOT_FRIEND
+ SINGLE
- 2000
+ 157
200
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15200-15299.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15200-15299.xml
index 2391d5420f..26c036ada6 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15200-15299.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15200-15299.xml
@@ -1330,56 +1330,104 @@
icon.skill0100
A2
- 400
+ 1
+ 10
+ STUN
+ STUN
+ 600
2500
1000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ SHOCK
SELF
- SINGLE
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+
icon.skill10549
A2
- 400
+ 1
+ 30
2500
3000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ 0;0;2500;900
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+ -30
+ PER
+
+
+ -30
+ PER
+
+
- A1
- 2500
- -574
- -5
- 0
- 99
- 1500
+ 1
+ 10
+ STUN
+ STUN
+ 1000
+ -100
+ WIND
+ 300
+ 0;180;1500;600
+ 3000
+ 110
+ A2
+ SHOCK
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+
- A1
- 1800
+ A2
+ 300
+ 2500
2500
- -707
- -5
- 0
+ -100
+ 2500
+ WIND
+ 300
99
- 1
- SELF
- SINGLE
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15400-15499.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15400-15499.xml
index 0ffe920648..4e3558a117 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15400-15499.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15400-15499.xml
@@ -444,10 +444,21 @@
A2
+ 1
+ 5
+ 600
5000
5000
-574
true
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
A1
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15500-15599.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15500-15599.xml
index 2de1fb0a0c..cd1580c66a 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15500-15599.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/15500-15599.xml
@@ -939,21 +939,53 @@
icon.skill4108
+ 1
+ 30
+ TURN_FLEE
+ TURN_FLEE
+ 600
A2
3000
500
1
-867
true
+ DERANGEMENT
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+
+
icon.skill0006
+ 1
+ 5
+ STUN
+ 600
A2
2000
3000
-867
true
+ PULL
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+ 600
+
+
+ 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912
+
+
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/16100-16199.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/16100-16199.xml
index 597c44918b..5c0c1a63ff 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/16100-16199.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/16100-16199.xml
@@ -28,11 +28,22 @@
icon.skill1167
A1
- 900
- 2000
+ 1
+ 300
+ 40-80
+ 300
+ 2500
500
- -264
- 1
+ -100
+ 300
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/16600-16699.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/16600-16699.xml
index 3f616b2c2a..b3c46ed56d 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/16600-16699.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/16600-16699.xml
@@ -206,25 +206,19 @@
1
10
PARALYZE
- 150
PARALYZE
- 10
2500
2500
- 200
3000
500
- 10000
- 2
- -52
- 0
+ -100
PARALYZE
ENEMY
SINGLE
true
- 1500
+ 157
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
@@ -237,20 +231,17 @@
A1
true
40-80
- 2500
- 900
- 10
+ 600
1000
500
- -52
- 2500
+ -100
SELF
POINT_BLANK
NOT_FRIEND
true
-
- 1500
+
+ 34255
@@ -259,21 +250,14 @@
icon.skill1275
A2
5
- 2
- 200
- true
- -1
+ 5
40-80
- 900
- 20000
+ 600
KNOCKDOWN
KNOCKDOWN
- 0
- 10
1000
500
- -52
- 2500
+ -100
KNOCKDOWN
SELF
POINT_BLANK
@@ -281,7 +265,7 @@
true
- 1500
+ 157
600
@@ -297,18 +281,11 @@
A2
5
30
- 200
- true
- -1
40-80
- 900
- 20000
- 0
- 10
+ 600
2000
500
- -52
- 2500
+ -100
GIANT_WEAKNESS
SELF
POINT_BLANK
@@ -316,7 +293,7 @@
true
- 1500
+ 157
30
@@ -368,22 +345,16 @@
icon.skill1172
A2
- 1200
+ 2500
2000
- -52
- 1
- 10
+ -100
1
10
40-80
PARALYZE
PARALYZE
- 150
- 900
- 1200
- 10000
- 2
- 0
+ 300
+ 2500
PARALYZE
ENEMY
RANGE
@@ -391,7 +362,7 @@
true
- 100000
+ 34255
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
@@ -402,23 +373,20 @@
A1
- true
45-45
- 200
- 1200
- 400
- 10
+ 2500
+ 300
3000
500
- -1349
- 1200
+ -100
+ 2500
ENEMY
RANGE
NOT_FRIEND
true
- 1500
+ 157
250
@@ -431,26 +399,21 @@
icon.skill16614
A2
- SELF
- 1200
+ 2500
3000
- -52
- 1
- 10
- 10000
+ -100
+ 2500
1
30
PARALYZE
- 150
PARALYZE
true
- 0
PARALYZE
ENEMY
SINGLE
- 200
+ 512
1
@@ -587,19 +550,20 @@
A1
2500
5000
- -696
- 1
- 10000
- 200
- 12
+ -100
+ 300
2500
ENEMY
- SINGLE
+ RANGE
NOT_FRIEND
true
- 1500
+ 157
+
+
+ 512
+ 1
@@ -607,23 +571,17 @@
icon.skll10094
A2
- SELF
2500
2500
- 900
+ 300
2500
40-80
- -438
- 1
- 10
- 10000
+ -100
1
30
PARALYZE
- 150
PARALYZE
true
- 0
PARALYZE
ENEMY
RANGE
@@ -634,7 +592,7 @@
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
- 1500
+ 157
-50
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/16700-16799.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/16700-16799.xml
index 1d14ef2f3f..e6caa81a5d 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/16700-16799.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/stats/skills/16700-16799.xml
@@ -389,15 +389,15 @@
A1
- -1
+ 600
1500
- 1
-100
+ 600
ENEMY
SINGLE
- 100000
+ 34255
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
index 9051735a7b..f47966d56b 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
@@ -847,7 +847,7 @@ public class Trasken extends AbstractNpcAI
{
tie_trasken = addSpawn(TAIL_TRASKEN, CENTER_LOCATION, false, 0, true);
hp_tail = tie_trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 30000, tie_trasken, null);
+ startQuestTimer("spawn_rnd", 3000000, tie_trasken, null);
break;
}
case 3:
@@ -858,7 +858,7 @@ public class Trasken extends AbstractNpcAI
trasken.doCast(SKILL_TRASKEN_UP.getSkill());
hp_trasken = trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 70000, trasken, null);
+ startQuestTimer("spawn_rnd", 9000000, trasken, null);
for (Location loc : Spawn_Larva_1)
{
addSpawn(LAVRA_1, loc, false, 0, true);
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
index b98df41795..22d2f7812b 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
@@ -16,32 +16,23 @@
*/
package ai.bosses.Valakas;
-import java.util.ArrayList;
-import java.util.List;
-
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.enums.MountType;
-import org.l2jmobius.gameserver.geoengine.GeoEngine;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatsSet;
-import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Npc;
-import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
-import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.skills.BuffInfo;
import org.l2jmobius.gameserver.model.skills.Skill;
-import org.l2jmobius.gameserver.model.skills.SkillCaster;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera;
-import org.l2jmobius.gameserver.util.Util;
import ai.AbstractNpcAI;
@@ -54,36 +45,36 @@ public final class Valakas extends AbstractNpcAI
// NPC
private static final int VALAKAS = 29028;
// Skills
- private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
+ // private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
private static final int VALAKAS_REGENERATION = 4691;
- private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- };
-
- private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
-
- private static final SkillHolder[] VALAKAS_AOE_SKILLS =
- {
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4684, 1), // Valakas Dragon Breath
- new SkillHolder(4685, 1), // Valakas Tail Stomp
- new SkillHolder(4686, 1), // Valakas Tail Stomp
- new SkillHolder(4688, 1), // Valakas Stun
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
+ // private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_AOE_SKILLS =
+ // {
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4684, 1), // Valakas Dragon Breath
+ // new SkillHolder(4685, 1), // Valakas Tail Stomp
+ // new SkillHolder(4686, 1), // Valakas Tail Stomp
+ // new SkillHolder(4688, 1), // Valakas Stun
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
// Locations
private static final Location TELEPORT_CUBE_LOCATIONS[] =
@@ -114,7 +105,7 @@ public final class Valakas extends AbstractNpcAI
private static final byte DEAD = 3; // Valakas has been killed. Entry is locked.
// Misc
private long _timeTracker = 0; // Time tracker for last attack on Valakas.
- private Playable _actualVictim; // Actual target of Valakas.
+ // private Playable _actualVictim; // Actual target of Valakas.
private static ZoneType ZONE;
private Valakas()
@@ -355,10 +346,10 @@ public final class Valakas extends AbstractNpcAI
startQuestTimer("remove_players", 900000, null, null);
}
- else if (event.equalsIgnoreCase("skill_task"))
- {
- callSkillAI(npc);
- }
+ // else if (event.equalsIgnoreCase("skill_task"))
+ // {
+ // callSkillAI(npc);
+ // }
}
else if (event.equalsIgnoreCase("valakas_unlock"))
{
@@ -373,12 +364,12 @@ public final class Valakas extends AbstractNpcAI
return super.onAdvEvent(event, npc, player);
}
- @Override
- public String onSpawn(Npc npc)
- {
- npc.disableCoreAI(true);
- return super.onSpawn(npc);
- }
+ // @Override
+ // public String onSpawn(Npc npc)
+ // {
+ // npc.disableCoreAI(true);
+ // return super.onSpawn(npc);
+ // }
@Override
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
@@ -449,105 +440,105 @@ public final class Valakas extends AbstractNpcAI
return super.onKill(npc, killer, isSummon);
}
- @Override
- public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
- {
- return null;
- }
-
- private void callSkillAI(Npc npc)
- {
- if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
- {
- return;
- }
-
- // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
- if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
- {
- _actualVictim = getRandomTarget(npc);
- }
-
- // If result is still null, Valakas will roam. Don't go deeper in skill AI.
- if (_actualVictim == null)
- {
- if (getRandom(10) == 0)
- {
- final int posX = npc.getX() + getRandom(-1400, 1400);
- final int posY = npc.getY() + getRandom(-1400, 1400);
- if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
- }
- }
- return;
- }
-
- final Skill skill = getRandomSkill(npc).getSkill();
-
- // Cast the skill or follow the target.
- if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
- npc.setTarget(_actualVictim);
- npc.doCast(skill);
- }
- else
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
- }
- }
-
- /**
- * Pick a random skill.
- * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
- * Lower than 50% HPs, he will begin to use Meteor skill.
- * @param npc valakas
- * @return a skill holder
- */
- private SkillHolder getRandomSkill(Npc npc)
- {
- final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
-
- // Valakas Lava Skin has priority.
- if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
- {
- return VALAKAS_LAVA_SKIN;
- }
-
- // Valakas will use mass spells if he feels surrounded.
- if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
- {
- return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
- }
-
- if (hpRatio > 50)
- {
- return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
- }
-
- return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
- }
-
- /**
- * Pickup a random Playable from the zone, deads targets aren't included.
- * @param npc
- * @return a random Playable.
- */
- private Playable getRandomTarget(Npc npc)
- {
- final List result = new ArrayList<>();
-
- World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
- {
- if (!obj.isPet() && !obj.isDead())
- {
- result.add(obj);
- }
- });
-
- return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
- }
+ // @Override
+ // public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
+ // {
+ // return null;
+ // }
+ //
+ // private void callSkillAI(Npc npc)
+ // {
+ // if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
+ // {
+ // return;
+ // }
+ //
+ // // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
+ // if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
+ // {
+ // _actualVictim = getRandomTarget(npc);
+ // }
+ //
+ // // If result is still null, Valakas will roam. Don't go deeper in skill AI.
+ // if (_actualVictim == null)
+ // {
+ // if (getRandom(10) == 0)
+ // {
+ // final int posX = npc.getX() + getRandom(-1400, 1400);
+ // final int posY = npc.getY() + getRandom(-1400, 1400);
+ // if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
+ // }
+ // }
+ // return;
+ // }
+ //
+ // final Skill skill = getRandomSkill(npc).getSkill();
+ //
+ // // Cast the skill or follow the target.
+ // if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
+ // npc.setTarget(_actualVictim);
+ // npc.doCast(skill);
+ // }
+ // else
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
+ // }
+ // }
+ //
+ // /**
+ // * Pick a random skill.
+ // * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
+ // * Lower than 50% HPs, he will begin to use Meteor skill.
+ // * @param npc valakas
+ // * @return a skill holder
+ // */
+ // private SkillHolder getRandomSkill(Npc npc)
+ // {
+ // final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
+ //
+ // // Valakas Lava Skin has priority.
+ // if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
+ // {
+ // return VALAKAS_LAVA_SKIN;
+ // }
+ //
+ // // Valakas will use mass spells if he feels surrounded.
+ // if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
+ // {
+ // return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
+ // }
+ //
+ // if (hpRatio > 50)
+ // {
+ // return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
+ // }
+ //
+ // return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
+ // }
+ //
+ // /**
+ // * Pickup a random Playable from the zone, deads targets aren't included.
+ // * @param npc
+ // * @return a random Playable.
+ // */
+ // private Playable getRandomTarget(Npc npc)
+ // {
+ // final List result = new ArrayList<>();
+ //
+ // World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
+ // {
+ // if (!obj.isPet() && !obj.isDead())
+ // {
+ // result.add(obj);
+ // }
+ // });
+ //
+ // return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
+ // }
public static void main(String[] args)
{
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/npcs/03400-03499.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/npcs/03400-03499.xml
index 71086e2f3b..6f48e77ad6 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/npcs/03400-03499.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/npcs/03400-03499.xml
@@ -3247,8 +3247,8 @@
-
-
+
+
@@ -3481,8 +3481,8 @@
-
-
+
+
@@ -3589,8 +3589,8 @@
-
-
+
+
@@ -3692,8 +3692,8 @@
-
-
+
+
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/npcs/29200-29299.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/npcs/29200-29299.xml
index def2ff4f6b..96502610f2 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/npcs/29200-29299.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/npcs/29200-29299.xml
@@ -408,8 +408,8 @@
-
-
+
+
@@ -489,8 +489,8 @@
-
-
+
+
@@ -532,8 +532,8 @@
-
-
+
+
@@ -685,8 +685,8 @@
-
-
+
+
@@ -991,8 +991,8 @@
-
-
+
+
@@ -1876,8 +1876,8 @@
-
-
+
+
@@ -1984,8 +1984,8 @@
-
-
+
+
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/04400-04499.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/04400-04499.xml
index e4b2bc9942..cd59674ae8 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/04400-04499.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/04400-04499.xml
@@ -3935,6 +3935,11 @@
1
P
-5
+
+
+ 100
+
+
900
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/05000-05099.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/05000-05099.xml
index 5c98cedf33..233e807a77 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/05000-05099.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/05000-05099.xml
@@ -3003,25 +3003,21 @@
- 150
- 600
- -1
- 1100
+ 2500
+ -100
+ 2500
EARTH
- 180
+ 450
8000
- 2
- 99
- A1
- 6000
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
+ 110
+ A2
+ 300
ENEMY
RANGE
NOT_FRIEND
-
- 1084
+
+ 34255
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/14200-14299.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/14200-14299.xml
index e8e8686e9e..df9cc02f8e 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/14200-14299.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/14200-14299.xml
@@ -1232,29 +1232,20 @@
icon.skill0054
A2
- 1
- 1000
+ 600
1500
- 1
- -1
+ -100
FLY_AWAY
- NONE
- -5
- 0
- 1400
- 1
- 99
+ 600
99
1
- 1
- 200
+ 3
true
ENEMY
- RANGE
- NOT_FRIEND
+ SINGLE
- 2000
+ 157
200
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15200-15299.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15200-15299.xml
index edc5f12926..d0345a104a 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15200-15299.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15200-15299.xml
@@ -1330,56 +1330,104 @@
icon.skill0100
A2
- 400
+ 1
+ 10
+ STUN
+ STUN
+ 600
2500
1000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ SHOCK
SELF
- SINGLE
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+
icon.skill10549
A2
- 400
+ 1
+ 30
2500
3000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ 0;0;2500;900
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+ -30
+ PER
+
+
+ -30
+ PER
+
+
- A1
- 2500
- -574
- -5
- 0
- 99
- 1500
+ 1
+ 10
+ STUN
+ STUN
+ 1000
+ -100
+ WIND
+ 300
+ 0;180;1500;600
+ 3000
+ 110
+ A2
+ SHOCK
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+
- A1
- 1800
+ A2
+ 300
+ 2500
2500
- -707
- -5
- 0
+ -100
+ 2500
+ WIND
+ 300
99
- 1
- SELF
- SINGLE
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15400-15499.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15400-15499.xml
index 3fd80e052e..622c3a6405 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15400-15499.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15400-15499.xml
@@ -444,10 +444,21 @@
A2
+ 1
+ 5
+ 600
5000
5000
-574
true
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
A1
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15500-15599.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15500-15599.xml
index bf515c3aa1..6f8b7cd3fc 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15500-15599.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15500-15599.xml
@@ -939,21 +939,53 @@
icon.skill4108
+ 1
+ 30
+ TURN_FLEE
+ TURN_FLEE
+ 600
A2
3000
500
1
-867
true
+ DERANGEMENT
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+
+
icon.skill0006
+ 1
+ 5
+ STUN
+ 600
A2
2000
3000
-867
true
+ PULL
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+ 600
+
+
+ 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912
+
+
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15600-15699.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15600-15699.xml
index 7f5630eed4..86a6c1c89a 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15600-15699.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/15600-15699.xml
@@ -4,11 +4,22 @@
icon.skill1275
A1
+ 300
300
1500
1000
- -867
- 5000
+ -100
+ 300
+ WIND
+ 300
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 34255
+
+
@@ -90,13 +101,11 @@
icon.skill0003
A1
- 40
+ 600
2000
-100
+ 600
500
- ATTACK
- 6000
- 5
ENEMY
SINGLE
@@ -108,7 +117,7 @@
1000
2000
4000
- 6000
+ 50000
@@ -130,8 +139,7 @@
6000
-100
500
- 300
- 30000
+ 600
SELF
POINT_BLANK
NOT_FRIEND
@@ -144,7 +152,7 @@
12000
14000
16000
- 18000
+ 50000
@@ -156,8 +164,7 @@
6000
-100
500
- 800
- 30000
+ 600
SELF
POINT_BLANK
NOT_FRIEND
@@ -170,7 +177,7 @@
16000
18000
20000
- 22000
+ 50000
@@ -394,6 +401,10 @@
icon.skillboss
P
+ 99
+
+
+
@@ -1215,11 +1226,25 @@
icon.skill1422
A2
- 2000
+ 2500
500
- 1
+ 1
+ 30
+ 300
+ 300
+ 300
+ 40-80
-100
true
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ -20
+ PER
+
+
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/16100-16199.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/16100-16199.xml
index 5fe878dadc..6935bac7a2 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/16100-16199.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/16100-16199.xml
@@ -28,11 +28,22 @@
icon.skill1167
A1
- 900
- 2000
+ 1
+ 300
+ 40-80
+ 300
+ 2500
500
- -264
- 1
+ -100
+ 300
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/16600-16699.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/16600-16699.xml
index 5c1663ea6f..4625284029 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/16600-16699.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/16600-16699.xml
@@ -206,25 +206,19 @@
1
10
PARALYZE
- 150
PARALYZE
- 10
2500
2500
- 200
3000
500
- 10000
- 2
- -52
- 0
+ -100
PARALYZE
ENEMY
SINGLE
true
- 1500
+ 157
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
@@ -237,20 +231,17 @@
A1
true
40-80
- 2500
- 900
- 10
+ 600
1000
500
- -52
- 2500
+ -100
SELF
POINT_BLANK
NOT_FRIEND
true
-
- 1500
+
+ 34255
@@ -259,21 +250,14 @@
icon.skill1275
A2
5
- 2
- 200
- true
- -1
+ 5
40-80
- 900
- 20000
+ 600
KNOCKDOWN
KNOCKDOWN
- 0
- 10
1000
500
- -52
- 2500
+ -100
KNOCKDOWN
SELF
POINT_BLANK
@@ -281,7 +265,7 @@
true
- 1500
+ 157
600
@@ -297,18 +281,11 @@
A2
5
30
- 200
- true
- -1
40-80
- 900
- 20000
- 0
- 10
+ 600
2000
500
- -52
- 2500
+ -100
GIANT_WEAKNESS
SELF
POINT_BLANK
@@ -316,7 +293,7 @@
true
- 1500
+ 157
30
@@ -368,22 +345,16 @@
icon.skill1172
A2
- 1200
+ 2500
2000
- -52
- 1
- 10
+ -100
1
10
40-80
PARALYZE
PARALYZE
- 150
- 900
- 1200
- 10000
- 2
- 0
+ 300
+ 2500
PARALYZE
ENEMY
RANGE
@@ -391,7 +362,7 @@
true
- 100000
+ 34255
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
@@ -402,23 +373,20 @@
A1
- true
45-45
- 200
- 1200
- 400
- 10
+ 2500
+ 300
3000
500
- -1349
- 1200
+ -100
+ 2500
ENEMY
RANGE
NOT_FRIEND
true
- 1500
+ 157
250
@@ -431,26 +399,21 @@
icon.skill16614
A2
- SELF
- 1200
+ 2500
3000
- -52
- 1
- 10
- 10000
+ -100
+ 2500
1
30
PARALYZE
- 150
PARALYZE
true
- 0
PARALYZE
ENEMY
SINGLE
- 200
+ 512
1
@@ -587,19 +550,20 @@
A1
2500
5000
- -696
- 1
- 10000
- 200
- 12
+ -100
+ 300
2500
ENEMY
- SINGLE
+ RANGE
NOT_FRIEND
true
- 1500
+ 157
+
+
+ 512
+ 1
@@ -607,23 +571,17 @@
icon.skll10094
A2
- SELF
2500
2500
- 900
+ 300
2500
40-80
- -438
- 1
- 10
- 10000
+ -100
1
30
PARALYZE
- 150
PARALYZE
true
- 0
PARALYZE
ENEMY
RANGE
@@ -634,7 +592,7 @@
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
- 1500
+ 157
-50
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/16700-16799.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/16700-16799.xml
index cd30dfc96a..dec1265a0c 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/16700-16799.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/stats/skills/16700-16799.xml
@@ -389,15 +389,15 @@
A1
- -1
+ 600
1500
- 1
-100
+ 600
ENEMY
SINGLE
- 100000
+ 34255
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
index 9051735a7b..f47966d56b 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
@@ -847,7 +847,7 @@ public class Trasken extends AbstractNpcAI
{
tie_trasken = addSpawn(TAIL_TRASKEN, CENTER_LOCATION, false, 0, true);
hp_tail = tie_trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 30000, tie_trasken, null);
+ startQuestTimer("spawn_rnd", 3000000, tie_trasken, null);
break;
}
case 3:
@@ -858,7 +858,7 @@ public class Trasken extends AbstractNpcAI
trasken.doCast(SKILL_TRASKEN_UP.getSkill());
hp_trasken = trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 70000, trasken, null);
+ startQuestTimer("spawn_rnd", 9000000, trasken, null);
for (Location loc : Spawn_Larva_1)
{
addSpawn(LAVRA_1, loc, false, 0, true);
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
index b98df41795..22d2f7812b 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
@@ -16,32 +16,23 @@
*/
package ai.bosses.Valakas;
-import java.util.ArrayList;
-import java.util.List;
-
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.enums.MountType;
-import org.l2jmobius.gameserver.geoengine.GeoEngine;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatsSet;
-import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Npc;
-import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
-import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.skills.BuffInfo;
import org.l2jmobius.gameserver.model.skills.Skill;
-import org.l2jmobius.gameserver.model.skills.SkillCaster;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera;
-import org.l2jmobius.gameserver.util.Util;
import ai.AbstractNpcAI;
@@ -54,36 +45,36 @@ public final class Valakas extends AbstractNpcAI
// NPC
private static final int VALAKAS = 29028;
// Skills
- private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
+ // private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
private static final int VALAKAS_REGENERATION = 4691;
- private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- };
-
- private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
-
- private static final SkillHolder[] VALAKAS_AOE_SKILLS =
- {
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4684, 1), // Valakas Dragon Breath
- new SkillHolder(4685, 1), // Valakas Tail Stomp
- new SkillHolder(4686, 1), // Valakas Tail Stomp
- new SkillHolder(4688, 1), // Valakas Stun
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
+ // private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_AOE_SKILLS =
+ // {
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4684, 1), // Valakas Dragon Breath
+ // new SkillHolder(4685, 1), // Valakas Tail Stomp
+ // new SkillHolder(4686, 1), // Valakas Tail Stomp
+ // new SkillHolder(4688, 1), // Valakas Stun
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
// Locations
private static final Location TELEPORT_CUBE_LOCATIONS[] =
@@ -114,7 +105,7 @@ public final class Valakas extends AbstractNpcAI
private static final byte DEAD = 3; // Valakas has been killed. Entry is locked.
// Misc
private long _timeTracker = 0; // Time tracker for last attack on Valakas.
- private Playable _actualVictim; // Actual target of Valakas.
+ // private Playable _actualVictim; // Actual target of Valakas.
private static ZoneType ZONE;
private Valakas()
@@ -355,10 +346,10 @@ public final class Valakas extends AbstractNpcAI
startQuestTimer("remove_players", 900000, null, null);
}
- else if (event.equalsIgnoreCase("skill_task"))
- {
- callSkillAI(npc);
- }
+ // else if (event.equalsIgnoreCase("skill_task"))
+ // {
+ // callSkillAI(npc);
+ // }
}
else if (event.equalsIgnoreCase("valakas_unlock"))
{
@@ -373,12 +364,12 @@ public final class Valakas extends AbstractNpcAI
return super.onAdvEvent(event, npc, player);
}
- @Override
- public String onSpawn(Npc npc)
- {
- npc.disableCoreAI(true);
- return super.onSpawn(npc);
- }
+ // @Override
+ // public String onSpawn(Npc npc)
+ // {
+ // npc.disableCoreAI(true);
+ // return super.onSpawn(npc);
+ // }
@Override
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
@@ -449,105 +440,105 @@ public final class Valakas extends AbstractNpcAI
return super.onKill(npc, killer, isSummon);
}
- @Override
- public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
- {
- return null;
- }
-
- private void callSkillAI(Npc npc)
- {
- if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
- {
- return;
- }
-
- // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
- if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
- {
- _actualVictim = getRandomTarget(npc);
- }
-
- // If result is still null, Valakas will roam. Don't go deeper in skill AI.
- if (_actualVictim == null)
- {
- if (getRandom(10) == 0)
- {
- final int posX = npc.getX() + getRandom(-1400, 1400);
- final int posY = npc.getY() + getRandom(-1400, 1400);
- if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
- }
- }
- return;
- }
-
- final Skill skill = getRandomSkill(npc).getSkill();
-
- // Cast the skill or follow the target.
- if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
- npc.setTarget(_actualVictim);
- npc.doCast(skill);
- }
- else
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
- }
- }
-
- /**
- * Pick a random skill.
- * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
- * Lower than 50% HPs, he will begin to use Meteor skill.
- * @param npc valakas
- * @return a skill holder
- */
- private SkillHolder getRandomSkill(Npc npc)
- {
- final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
-
- // Valakas Lava Skin has priority.
- if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
- {
- return VALAKAS_LAVA_SKIN;
- }
-
- // Valakas will use mass spells if he feels surrounded.
- if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
- {
- return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
- }
-
- if (hpRatio > 50)
- {
- return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
- }
-
- return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
- }
-
- /**
- * Pickup a random Playable from the zone, deads targets aren't included.
- * @param npc
- * @return a random Playable.
- */
- private Playable getRandomTarget(Npc npc)
- {
- final List result = new ArrayList<>();
-
- World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
- {
- if (!obj.isPet() && !obj.isDead())
- {
- result.add(obj);
- }
- });
-
- return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
- }
+ // @Override
+ // public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
+ // {
+ // return null;
+ // }
+ //
+ // private void callSkillAI(Npc npc)
+ // {
+ // if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
+ // {
+ // return;
+ // }
+ //
+ // // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
+ // if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
+ // {
+ // _actualVictim = getRandomTarget(npc);
+ // }
+ //
+ // // If result is still null, Valakas will roam. Don't go deeper in skill AI.
+ // if (_actualVictim == null)
+ // {
+ // if (getRandom(10) == 0)
+ // {
+ // final int posX = npc.getX() + getRandom(-1400, 1400);
+ // final int posY = npc.getY() + getRandom(-1400, 1400);
+ // if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
+ // }
+ // }
+ // return;
+ // }
+ //
+ // final Skill skill = getRandomSkill(npc).getSkill();
+ //
+ // // Cast the skill or follow the target.
+ // if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
+ // npc.setTarget(_actualVictim);
+ // npc.doCast(skill);
+ // }
+ // else
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
+ // }
+ // }
+ //
+ // /**
+ // * Pick a random skill.
+ // * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
+ // * Lower than 50% HPs, he will begin to use Meteor skill.
+ // * @param npc valakas
+ // * @return a skill holder
+ // */
+ // private SkillHolder getRandomSkill(Npc npc)
+ // {
+ // final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
+ //
+ // // Valakas Lava Skin has priority.
+ // if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
+ // {
+ // return VALAKAS_LAVA_SKIN;
+ // }
+ //
+ // // Valakas will use mass spells if he feels surrounded.
+ // if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
+ // {
+ // return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
+ // }
+ //
+ // if (hpRatio > 50)
+ // {
+ // return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
+ // }
+ //
+ // return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
+ // }
+ //
+ // /**
+ // * Pickup a random Playable from the zone, deads targets aren't included.
+ // * @param npc
+ // * @return a random Playable.
+ // */
+ // private Playable getRandomTarget(Npc npc)
+ // {
+ // final List result = new ArrayList<>();
+ //
+ // World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
+ // {
+ // if (!obj.isPet() && !obj.isDead())
+ // {
+ // result.add(obj);
+ // }
+ // });
+ //
+ // return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
+ // }
public static void main(String[] args)
{
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/npcs/03400-03499.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/npcs/03400-03499.xml
index 30dbd3028f..b5bd1754fe 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/npcs/03400-03499.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/npcs/03400-03499.xml
@@ -3247,8 +3247,8 @@
-
-
+
+
@@ -3481,8 +3481,8 @@
-
-
+
+
@@ -3589,8 +3589,8 @@
-
-
+
+
@@ -3692,8 +3692,8 @@
-
-
+
+
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/npcs/29200-29299.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/npcs/29200-29299.xml
index f17aaca0c6..df9c2c0be8 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/npcs/29200-29299.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/npcs/29200-29299.xml
@@ -408,8 +408,8 @@
-
-
+
+
@@ -489,8 +489,8 @@
-
-
+
+
@@ -532,8 +532,8 @@
-
-
+
+
@@ -685,8 +685,8 @@
-
-
+
+
@@ -991,8 +991,8 @@
-
-
+
+
@@ -1876,8 +1876,8 @@
-
-
+
+
@@ -1984,8 +1984,8 @@
-
-
+
+
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/04400-04499.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/04400-04499.xml
index b72f11a346..8e098f97c7 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/04400-04499.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/04400-04499.xml
@@ -3935,6 +3935,11 @@
1
P
-5
+
+
+ 100
+
+
900
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/05000-05099.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/05000-05099.xml
index dd487a5d89..5792df05be 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/05000-05099.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/05000-05099.xml
@@ -3003,25 +3003,21 @@
- 150
- 600
- -1
- 1100
+ 2500
+ -100
+ 2500
EARTH
- 180
+ 450
8000
- 2
- 99
- A1
- 6000
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
+ 110
+ A2
+ 300
ENEMY
RANGE
NOT_FRIEND
-
- 1084
+
+ 34255
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/14200-14299.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/14200-14299.xml
index 642061ce56..a91097f71d 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/14200-14299.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/14200-14299.xml
@@ -1232,29 +1232,20 @@
icon.skill0054
A2
- 1
- 1000
+ 600
1500
- 1
- -1
+ -100
FLY_AWAY
- NONE
- -5
- 0
- 1400
- 1
- 99
+ 600
99
1
- 1
- 200
+ 3
true
ENEMY
- RANGE
- NOT_FRIEND
+ SINGLE
- 2000
+ 157
200
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/14300-14399.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/14300-14399.xml
index b4e8bc2bc3..279a5f79e9 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/14300-14399.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/14300-14399.xml
@@ -915,21 +915,16 @@
icon.skill1167
A2
- 500
500
1
- -1
+ -100
POISON
POISON
- NONE
- -5
- 0
- 1000
99
3
30
POISON
- 200
+ 600
DOT_POISON
true
SELF
@@ -969,59 +964,59 @@
icon.skill0773
A1
- 2000
- -686
- -5
- 0
- 2500
+ -100
99
- 0;0;2000;600
10000
- TARGET
+ 0;0;2500;600
+ SELF
SQUARE
NOT_FRIEND
+
+
+ 34255
+
+
icon.skill0036
A1
- -1
- -5
- 0
+ -100
99
- 1200
- 0;0;900;0
- 10000
- SELF
- RING_RANGE
- NOT_FRIEND
-
-
- icon.skill0036
- A1
- -1
- -5
- 0
- 99
- 900
+ 600
10000
SELF
POINT_BLANK
NOT_FRIEND
+
+
+ 34255
+
+
+
+
+ icon.skill0036
+ A1
+ -100
+ 99
+ 600
+ 10000
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
icon.skill1167
A2
- 500
10000
- 1
- -1
POISON
POISON
- NONE
- -5
- 0
- 1000
+ 600
99
3
30
@@ -1029,10 +1024,11 @@
DOT_POISON
true
SELF
- SINGLE
+ POINT_BLANK
+ NOT_FRIEND
- 1
+ 512
5
@@ -1666,29 +1662,22 @@
A2
600
2500
- 2000
- 1
- -1
+ -100
ROOT_MAGICALLY
- NONE
- -5
- 0
- 1100
- 2
- 80
+ 600
97
1
- 5
+ 10
HOLD
300
ROOT
true
- ENEMY_ONLY
+ ENEMY
RANGE
NOT_FRIEND
- 1000
+ 157
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15200-15299.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15200-15299.xml
index e01a727b52..02e23957a4 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15200-15299.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15200-15299.xml
@@ -1330,56 +1330,104 @@
icon.skill0100
A2
- 400
+ 1
+ 10
+ STUN
+ STUN
+ 600
2500
1000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ SHOCK
SELF
- SINGLE
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+
icon.skill10549
A2
- 400
+ 1
+ 30
2500
3000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ 0;0;2500;900
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+ -30
+ PER
+
+
+ -30
+ PER
+
+
- A1
- 2500
- -574
- -5
- 0
- 99
- 1500
+ 1
+ 10
+ STUN
+ STUN
+ 1000
+ -100
+ WIND
+ 300
+ 0;180;1500;600
+ 3000
+ 110
+ A2
+ SHOCK
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+
- A1
- 1800
+ A2
+ 300
+ 2500
2500
- -707
- -5
- 0
+ -100
+ 2500
+ WIND
+ 300
99
- 1
- SELF
- SINGLE
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15400-15499.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15400-15499.xml
index 3fd80e052e..622c3a6405 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15400-15499.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15400-15499.xml
@@ -444,10 +444,21 @@
A2
+ 1
+ 5
+ 600
5000
5000
-574
true
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
A1
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15500-15599.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15500-15599.xml
index 3c81908347..614f30bc22 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15500-15599.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15500-15599.xml
@@ -939,21 +939,53 @@
icon.skill4108
+ 1
+ 30
+ TURN_FLEE
+ TURN_FLEE
+ 600
A2
3000
500
1
-867
true
+ DERANGEMENT
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+
+
icon.skill0006
+ 1
+ 5
+ STUN
+ 600
A2
2000
3000
-867
true
+ PULL
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+ 600
+
+
+ 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912
+
+
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15600-15699.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15600-15699.xml
index ad85493b35..c49ed95458 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15600-15699.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/15600-15699.xml
@@ -4,11 +4,22 @@
icon.skill1275
A1
+ 300
300
1500
1000
- -867
- 5000
+ -100
+ 300
+ WIND
+ 300
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 34255
+
+
@@ -90,13 +101,11 @@
icon.skill0003
A1
- 40
+ 600
2000
-100
+ 600
500
- ATTACK
- 6000
- 5
ENEMY
SINGLE
@@ -108,7 +117,7 @@
1000
2000
4000
- 6000
+ 50000
@@ -130,8 +139,7 @@
6000
-100
500
- 300
- 30000
+ 600
SELF
POINT_BLANK
NOT_FRIEND
@@ -144,7 +152,7 @@
12000
14000
16000
- 18000
+ 50000
@@ -156,8 +164,7 @@
6000
-100
500
- 800
- 30000
+ 600
SELF
POINT_BLANK
NOT_FRIEND
@@ -170,7 +177,7 @@
16000
18000
20000
- 22000
+ 50000
@@ -394,6 +401,10 @@
icon.skillboss
P
+ 99
+
+
+
@@ -1215,11 +1226,25 @@
icon.skill1422
A2
- 2000
+ 2500
500
- 1
+ 1
+ 30
+ 300
+ 300
+ 300
+ 40-80
-100
true
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ -20
+ PER
+
+
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/16100-16199.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/16100-16199.xml
index 67d9023e22..3abaccbb7e 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/16100-16199.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/16100-16199.xml
@@ -28,11 +28,22 @@
icon.skill1167
A1
- 900
- 2000
+ 1
+ 300
+ 40-80
+ 300
+ 2500
500
- -264
- 1
+ -100
+ 300
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/16600-16699.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/16600-16699.xml
index 67dd7dc01d..03878c6d7d 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/16600-16699.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/16600-16699.xml
@@ -206,25 +206,19 @@
1
10
PARALYZE
- 150
PARALYZE
- 10
2500
2500
- 200
3000
500
- 10000
- 2
- -52
- 0
+ -100
PARALYZE
ENEMY
SINGLE
true
- 1500
+ 157
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
@@ -237,20 +231,17 @@
A1
true
40-80
- 2500
- 900
- 10
+ 600
1000
500
- -52
- 2500
+ -100
SELF
POINT_BLANK
NOT_FRIEND
true
-
- 1500
+
+ 34255
@@ -259,21 +250,14 @@
icon.skill1275
A2
5
- 2
- 200
- true
- -1
+ 5
40-80
- 900
- 20000
+ 600
KNOCKDOWN
KNOCKDOWN
- 0
- 10
1000
500
- -52
- 2500
+ -100
KNOCKDOWN
SELF
POINT_BLANK
@@ -281,7 +265,7 @@
true
- 1500
+ 157
600
@@ -297,18 +281,11 @@
A2
5
30
- 200
- true
- -1
40-80
- 900
- 20000
- 0
- 10
+ 600
2000
500
- -52
- 2500
+ -100
GIANT_WEAKNESS
SELF
POINT_BLANK
@@ -316,7 +293,7 @@
true
- 1500
+ 157
30
@@ -368,22 +345,16 @@
icon.skill1172
A2
- 1200
+ 2500
2000
- -52
- 1
- 10
+ -100
1
10
40-80
PARALYZE
PARALYZE
- 150
- 900
- 1200
- 10000
- 2
- 0
+ 300
+ 2500
PARALYZE
ENEMY
RANGE
@@ -391,7 +362,7 @@
true
- 100000
+ 34255
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
@@ -402,23 +373,20 @@
A1
- true
45-45
- 200
- 1200
- 400
- 10
+ 2500
+ 300
3000
500
- -1349
- 1200
+ -100
+ 2500
ENEMY
RANGE
NOT_FRIEND
true
- 1500
+ 157
250
@@ -431,26 +399,21 @@
icon.skill16614
A2
- SELF
- 1200
+ 2500
3000
- -52
- 1
- 10
- 10000
+ -100
+ 2500
1
30
PARALYZE
- 150
PARALYZE
true
- 0
PARALYZE
ENEMY
SINGLE
- 200
+ 512
1
@@ -587,19 +550,20 @@
A1
2500
5000
- -696
- 1
- 10000
- 200
- 12
+ -100
+ 300
2500
ENEMY
- SINGLE
+ RANGE
NOT_FRIEND
true
- 1500
+ 157
+
+
+ 512
+ 1
@@ -607,23 +571,17 @@
icon.skll10094
A2
- SELF
2500
2500
- 900
+ 300
2500
40-80
- -438
- 1
- 10
- 10000
+ -100
1
30
PARALYZE
- 150
PARALYZE
true
- 0
PARALYZE
ENEMY
RANGE
@@ -634,7 +592,7 @@
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
- 1500
+ 157
-50
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/16700-16799.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/16700-16799.xml
index aded63f545..96828e40c0 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/16700-16799.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/16700-16799.xml
@@ -389,15 +389,15 @@
A1
- -1
+ 600
1500
- 1
-100
+ 600
ENEMY
SINGLE
- 100000
+ 34255
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/23600-23699.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/23600-23699.xml
index 0ff8bc064d..554b206f91 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/23600-23699.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/23600-23699.xml
@@ -785,37 +785,68 @@
A1
- 1
- 600
+ 100
1500
800
- 10000
- -700
- 1
+ -100
+ 100
+ ENEMY
+ SINGLE
+
+
+ 34255
+
+
icon.skill0096
A2
- 1
+ 1
+ 10
+ 40-80
+ 600
3000
500
- 10000
- 1
-100
true
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 157
+
+
+ 512
+ 1
+
+
icon.skill1092
A2
- 1
+ 1
+ 10
+ 40-80
+ 600
6000
800
- 10000
- 1
- -700
+ -100
true
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+ 512
+ 1
+
+
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/32400-32499.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/32400-32499.xml
index 911daafe75..28b537262a 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/32400-32499.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/skills/32400-32499.xml
@@ -418,6 +418,19 @@
A1
+ 40-80
+ 600
+ 2000
+ -100
+ 3500
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
@@ -440,12 +453,63 @@
icon.skill10266
- A1
+ 1
+ 30
+ ROOT_MAGICALLY
+ ROOT
+ 40-80
+ 600
+ 2000
+ -100
+ 5500
+ true
+ A2
+ HOLD
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+
icon.skill1072
- A1
+ 1
+ 30
+ POISON
+ POISON
+ 40-80
+ 600
+ 2000
+ -100
+ 5500
+ true
+ A2
+ POISON
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 157
+
+
+ 512
+ 1
+
+
+ -20
+ PER
+
+
+ -20
+ PER
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
index 9051735a7b..f47966d56b 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Trasken/Trasken.java
@@ -847,7 +847,7 @@ public class Trasken extends AbstractNpcAI
{
tie_trasken = addSpawn(TAIL_TRASKEN, CENTER_LOCATION, false, 0, true);
hp_tail = tie_trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 30000, tie_trasken, null);
+ startQuestTimer("spawn_rnd", 3000000, tie_trasken, null);
break;
}
case 3:
@@ -858,7 +858,7 @@ public class Trasken extends AbstractNpcAI
trasken.doCast(SKILL_TRASKEN_UP.getSkill());
hp_trasken = trasken.getCurrentHp();
- startQuestTimer("spawn_rnd", 70000, trasken, null);
+ startQuestTimer("spawn_rnd", 9000000, trasken, null);
for (Location loc : Spawn_Larva_1)
{
addSpawn(LAVRA_1, loc, false, 0, true);
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
index b98df41795..22d2f7812b 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/bosses/Valakas/Valakas.java
@@ -16,32 +16,23 @@
*/
package ai.bosses.Valakas;
-import java.util.ArrayList;
-import java.util.List;
-
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.ai.CtrlIntention;
import org.l2jmobius.gameserver.data.xml.impl.SkillData;
import org.l2jmobius.gameserver.enums.MountType;
-import org.l2jmobius.gameserver.geoengine.GeoEngine;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatsSet;
-import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Npc;
-import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
-import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.skills.BuffInfo;
import org.l2jmobius.gameserver.model.skills.Skill;
-import org.l2jmobius.gameserver.model.skills.SkillCaster;
import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera;
-import org.l2jmobius.gameserver.util.Util;
import ai.AbstractNpcAI;
@@ -54,36 +45,36 @@ public final class Valakas extends AbstractNpcAI
// NPC
private static final int VALAKAS = 29028;
// Skills
- private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
+ // private static final SkillHolder VALAKAS_LAVA_SKIN = new SkillHolder(4680, 1);
private static final int VALAKAS_REGENERATION = 4691;
- private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- };
-
- private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
- {
- new SkillHolder(4681, 1), // Valakas Trample
- new SkillHolder(4682, 1), // Valakas Trample
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
-
- private static final SkillHolder[] VALAKAS_AOE_SKILLS =
- {
- new SkillHolder(4683, 1), // Valakas Dragon Breath
- new SkillHolder(4684, 1), // Valakas Dragon Breath
- new SkillHolder(4685, 1), // Valakas Tail Stomp
- new SkillHolder(4686, 1), // Valakas Tail Stomp
- new SkillHolder(4688, 1), // Valakas Stun
- new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
- new SkillHolder(4690, 1), // Valakas Meteor Storm
- };
+ // private static final SkillHolder[] VALAKAS_REGULAR_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_LOWHP_SKILLS =
+ // {
+ // new SkillHolder(4681, 1), // Valakas Trample
+ // new SkillHolder(4682, 1), // Valakas Trample
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
+ //
+ // private static final SkillHolder[] VALAKAS_AOE_SKILLS =
+ // {
+ // new SkillHolder(4683, 1), // Valakas Dragon Breath
+ // new SkillHolder(4684, 1), // Valakas Dragon Breath
+ // new SkillHolder(4685, 1), // Valakas Tail Stomp
+ // new SkillHolder(4686, 1), // Valakas Tail Stomp
+ // new SkillHolder(4688, 1), // Valakas Stun
+ // new SkillHolder(4689, 1), // Valakas Fear TODO: has two levels only level one is used.
+ // new SkillHolder(4690, 1), // Valakas Meteor Storm
+ // };
// Locations
private static final Location TELEPORT_CUBE_LOCATIONS[] =
@@ -114,7 +105,7 @@ public final class Valakas extends AbstractNpcAI
private static final byte DEAD = 3; // Valakas has been killed. Entry is locked.
// Misc
private long _timeTracker = 0; // Time tracker for last attack on Valakas.
- private Playable _actualVictim; // Actual target of Valakas.
+ // private Playable _actualVictim; // Actual target of Valakas.
private static ZoneType ZONE;
private Valakas()
@@ -355,10 +346,10 @@ public final class Valakas extends AbstractNpcAI
startQuestTimer("remove_players", 900000, null, null);
}
- else if (event.equalsIgnoreCase("skill_task"))
- {
- callSkillAI(npc);
- }
+ // else if (event.equalsIgnoreCase("skill_task"))
+ // {
+ // callSkillAI(npc);
+ // }
}
else if (event.equalsIgnoreCase("valakas_unlock"))
{
@@ -373,12 +364,12 @@ public final class Valakas extends AbstractNpcAI
return super.onAdvEvent(event, npc, player);
}
- @Override
- public String onSpawn(Npc npc)
- {
- npc.disableCoreAI(true);
- return super.onSpawn(npc);
- }
+ // @Override
+ // public String onSpawn(Npc npc)
+ // {
+ // npc.disableCoreAI(true);
+ // return super.onSpawn(npc);
+ // }
@Override
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
@@ -449,105 +440,105 @@ public final class Valakas extends AbstractNpcAI
return super.onKill(npc, killer, isSummon);
}
- @Override
- public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
- {
- return null;
- }
-
- private void callSkillAI(Npc npc)
- {
- if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
- {
- return;
- }
-
- // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
- if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
- {
- _actualVictim = getRandomTarget(npc);
- }
-
- // If result is still null, Valakas will roam. Don't go deeper in skill AI.
- if (_actualVictim == null)
- {
- if (getRandom(10) == 0)
- {
- final int posX = npc.getX() + getRandom(-1400, 1400);
- final int posY = npc.getY() + getRandom(-1400, 1400);
- if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
- }
- }
- return;
- }
-
- final Skill skill = getRandomSkill(npc).getSkill();
-
- // Cast the skill or follow the target.
- if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
- npc.setTarget(_actualVictim);
- npc.doCast(skill);
- }
- else
- {
- npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
- }
- }
-
- /**
- * Pick a random skill.
- * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
- * Lower than 50% HPs, he will begin to use Meteor skill.
- * @param npc valakas
- * @return a skill holder
- */
- private SkillHolder getRandomSkill(Npc npc)
- {
- final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
-
- // Valakas Lava Skin has priority.
- if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
- {
- return VALAKAS_LAVA_SKIN;
- }
-
- // Valakas will use mass spells if he feels surrounded.
- if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
- {
- return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
- }
-
- if (hpRatio > 50)
- {
- return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
- }
-
- return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
- }
-
- /**
- * Pickup a random Playable from the zone, deads targets aren't included.
- * @param npc
- * @return a random Playable.
- */
- private Playable getRandomTarget(Npc npc)
- {
- final List result = new ArrayList<>();
-
- World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
- {
- if (!obj.isPet() && !obj.isDead())
- {
- result.add(obj);
- }
- });
-
- return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
- }
+ // @Override
+ // public String onAggroRangeEnter(Npc npc, PlayerInstance player, boolean isSummon)
+ // {
+ // return null;
+ // }
+ //
+ // private void callSkillAI(Npc npc)
+ // {
+ // if (npc.isInvul() || npc.isCastingNow(SkillCaster::isAnyNormalType))
+ // {
+ // return;
+ // }
+ //
+ // // Pickup a target if no or dead victim. 10% luck he decides to reconsiders his target.
+ // if ((_actualVictim == null) || _actualVictim.isDead() || !(npc.isInSurroundingRegion(_actualVictim)) || (getRandom(10) == 0))
+ // {
+ // _actualVictim = getRandomTarget(npc);
+ // }
+ //
+ // // If result is still null, Valakas will roam. Don't go deeper in skill AI.
+ // if (_actualVictim == null)
+ // {
+ // if (getRandom(10) == 0)
+ // {
+ // final int posX = npc.getX() + getRandom(-1400, 1400);
+ // final int posY = npc.getY() + getRandom(-1400, 1400);
+ // if (GeoEngine.getInstance().canMoveToTarget(npc.getX(), npc.getY(), npc.getZ(), posX, posY, npc.getZ(), npc.getInstanceWorld()))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, npc.getZ(), 0));
+ // }
+ // }
+ // return;
+ // }
+ //
+ // final Skill skill = getRandomSkill(npc).getSkill();
+ //
+ // // Cast the skill or follow the target.
+ // if (Util.checkIfInRange((skill.getCastRange() < 600) ? 600 : skill.getCastRange(), npc, _actualVictim, true))
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
+ // npc.setTarget(_actualVictim);
+ // npc.doCast(skill);
+ // }
+ // else
+ // {
+ // npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, _actualVictim, null);
+ // }
+ // }
+ //
+ // /**
+ // * Pick a random skill.
+ // * Valakas will mostly use utility skills. If Valakas feels surrounded, he will use AoE skills.
+ // * Lower than 50% HPs, he will begin to use Meteor skill.
+ // * @param npc valakas
+ // * @return a skill holder
+ // */
+ // private SkillHolder getRandomSkill(Npc npc)
+ // {
+ // final int hpRatio = (int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100);
+ //
+ // // Valakas Lava Skin has priority.
+ // if ((hpRatio < 75) && (getRandom(150) == 0) && !npc.isAffectedBySkill(VALAKAS_LAVA_SKIN.getSkillId()))
+ // {
+ // return VALAKAS_LAVA_SKIN;
+ // }
+ //
+ // // Valakas will use mass spells if he feels surrounded.
+ // if (World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 1200).size() >= 20)
+ // {
+ // return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
+ // }
+ //
+ // if (hpRatio > 50)
+ // {
+ // return VALAKAS_REGULAR_SKILLS[getRandom(VALAKAS_REGULAR_SKILLS.length)];
+ // }
+ //
+ // return VALAKAS_LOWHP_SKILLS[getRandom(VALAKAS_LOWHP_SKILLS.length)];
+ // }
+ //
+ // /**
+ // * Pickup a random Playable from the zone, deads targets aren't included.
+ // * @param npc
+ // * @return a random Playable.
+ // */
+ // private Playable getRandomTarget(Npc npc)
+ // {
+ // final List result = new ArrayList<>();
+ //
+ // World.getInstance().forEachVisibleObject(npc, Playable.class, obj ->
+ // {
+ // if (!obj.isPet() && !obj.isDead())
+ // {
+ // result.add(obj);
+ // }
+ // });
+ //
+ // return (result.isEmpty()) ? null : result.get(getRandom(result.size()));
+ // }
public static void main(String[] args)
{
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/03400-03499.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/03400-03499.xml
index 263019eb47..f4ce0703ae 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/03400-03499.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/03400-03499.xml
@@ -3247,8 +3247,8 @@
-
-
+
+
@@ -3481,8 +3481,8 @@
-
-
+
+
@@ -3589,8 +3589,8 @@
-
-
+
+
@@ -3692,8 +3692,8 @@
-
-
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/25800-25899.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/25800-25899.xml
index 897334f67d..191603e3f6 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/25800-25899.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/25800-25899.xml
@@ -11,8 +11,8 @@
-
-
+
+
@@ -168,8 +168,8 @@
-
-
+
+
@@ -1352,8 +1352,8 @@
-
-
+
+
@@ -1484,8 +1484,8 @@
-
-
+
+
@@ -2113,8 +2113,8 @@
-
-
+
+
@@ -2185,8 +2185,8 @@
-
-
+
+
@@ -2248,8 +2248,8 @@
-
-
+
+
@@ -2319,8 +2319,8 @@
-
-
+
+
@@ -2388,8 +2388,8 @@
-
-
+
+
@@ -2502,8 +2502,8 @@
-
-
+
+
@@ -2606,8 +2606,8 @@
-
-
+
+
@@ -2711,8 +2711,8 @@
-
-
+
+
@@ -2790,8 +2790,8 @@
-
-
+
+
@@ -2851,8 +2851,8 @@
-
-
+
+
@@ -3009,8 +3009,8 @@
-
-
+
+
@@ -3282,8 +3282,8 @@
-
-
+
+
@@ -3355,8 +3355,8 @@
-
-
+
+
@@ -3411,8 +3411,8 @@
-
-
+
+
@@ -3464,8 +3464,8 @@
-
-
+
+
@@ -3622,8 +3622,8 @@
-
-
+
+
@@ -4042,8 +4042,8 @@
-
-
+
+
@@ -4134,8 +4134,8 @@
-
-
+
+
@@ -4313,8 +4313,8 @@
-
-
+
+
@@ -4442,8 +4442,8 @@
-
-
+
+
@@ -4571,8 +4571,8 @@
-
-
+
+
@@ -4703,8 +4703,8 @@
-
-
+
+
@@ -4833,8 +4833,8 @@
-
-
+
+
@@ -4962,8 +4962,8 @@
-
-
+
+
@@ -5091,8 +5091,8 @@
-
-
+
+
@@ -5286,8 +5286,8 @@
-
-
+
+
@@ -5442,8 +5442,8 @@
-
-
+
+
@@ -5656,8 +5656,8 @@
-
-
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/25900-25999.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/25900-25999.xml
index e414667b8c..e089b700e4 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/25900-25999.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/25900-25999.xml
@@ -42,8 +42,8 @@
-
-
+
+
@@ -151,8 +151,8 @@
-
-
+
+
@@ -937,8 +937,8 @@
-
-
+
+
@@ -1056,15 +1056,16 @@
FEMALE
-
+
-
-
+
+
+
@@ -1147,15 +1148,16 @@
FEMALE
-
+
-
-
+
+
+
@@ -1238,15 +1240,16 @@
FEMALE
-
+
-
-
+
+
+
@@ -1328,15 +1331,16 @@
FEMALE
-
-
-
+
+
+
+
@@ -1421,8 +1425,8 @@
-
-
+
+
@@ -1521,8 +1525,8 @@
-
-
+
+
@@ -1692,8 +1696,8 @@
-
-
+
+
@@ -1921,8 +1925,8 @@
-
-
+
+
@@ -2047,8 +2051,8 @@
-
-
+
+
@@ -2168,8 +2172,8 @@
-
-
+
+
@@ -2297,8 +2301,8 @@
-
-
+
+
@@ -2406,8 +2410,8 @@
-
-
+
+
@@ -2515,8 +2519,8 @@
-
-
+
+
@@ -2624,8 +2628,8 @@
-
-
+
+
@@ -2733,8 +2737,8 @@
-
-
+
+
@@ -2842,8 +2846,8 @@
-
-
+
+
@@ -3096,8 +3100,8 @@
-
-
+
+
@@ -3205,8 +3209,8 @@
-
-
+
+
@@ -3314,8 +3318,8 @@
-
-
+
+
@@ -3423,8 +3427,8 @@
-
-
+
+
@@ -3532,8 +3536,8 @@
-
-
+
+
@@ -3641,8 +3645,8 @@
-
-
+
+
@@ -3894,8 +3898,8 @@
-
-
+
+
@@ -4006,8 +4010,8 @@
-
-
+
+
@@ -4118,8 +4122,8 @@
-
-
+
+
@@ -4230,8 +4234,8 @@
-
-
+
+
@@ -4342,8 +4346,8 @@
-
-
+
+
@@ -4455,8 +4459,8 @@
-
-
+
+
@@ -4715,8 +4719,8 @@
-
-
+
+
@@ -4827,8 +4831,8 @@
-
-
+
+
@@ -4939,8 +4943,8 @@
-
-
+
+
@@ -5051,8 +5055,8 @@
-
-
+
+
@@ -5163,8 +5167,8 @@
-
-
+
+
@@ -5275,8 +5279,8 @@
-
-
+
+
@@ -5531,8 +5535,8 @@
-
-
+
+
@@ -5638,8 +5642,8 @@
-
-
+
+
@@ -5740,8 +5744,8 @@
-
-
+
+
@@ -5847,8 +5851,8 @@
-
-
+
+
@@ -5953,8 +5957,8 @@
-
-
+
+
@@ -6059,8 +6063,8 @@
-
-
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/26000-26099.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/26000-26099.xml
index e3f4aab179..beeb9c5c32 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/26000-26099.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/26000-26099.xml
@@ -14,8 +14,8 @@
-
-
+
+
@@ -119,8 +119,8 @@
-
-
+
+
@@ -222,8 +222,8 @@
-
-
+
+
@@ -326,8 +326,8 @@
-
-
+
+
@@ -430,8 +430,8 @@
-
-
+
+
@@ -533,8 +533,8 @@
-
-
+
+
@@ -788,8 +788,8 @@
-
-
+
+
@@ -895,8 +895,8 @@
-
-
+
+
@@ -1001,8 +1001,8 @@
-
-
+
+
@@ -1108,8 +1108,8 @@
-
-
+
+
@@ -1214,8 +1214,8 @@
-
-
+
+
@@ -1321,8 +1321,8 @@
-
-
+
+
@@ -1575,8 +1575,8 @@
-
-
+
+
@@ -1685,8 +1685,8 @@
-
-
+
+
@@ -1794,8 +1794,8 @@
-
-
+
+
@@ -1904,8 +1904,8 @@
-
-
+
+
@@ -2013,8 +2013,8 @@
-
-
+
+
@@ -2122,8 +2122,8 @@
-
-
+
+
@@ -2369,8 +2369,8 @@
-
-
+
+
@@ -2469,8 +2469,8 @@
-
-
+
+
@@ -2570,8 +2570,8 @@
-
-
+
+
@@ -2671,8 +2671,8 @@
-
-
+
+
@@ -2772,8 +2772,8 @@
-
-
+
+
@@ -2873,8 +2873,8 @@
-
-
+
+
@@ -3917,8 +3917,8 @@
-
-
+
+
@@ -4016,8 +4016,8 @@
-
-
+
+
@@ -4114,8 +4114,8 @@
-
-
+
+
@@ -4212,8 +4212,8 @@
-
-
+
+
@@ -4310,8 +4310,8 @@
-
-
+
+
@@ -4408,8 +4408,8 @@
-
-
+
+
@@ -4664,8 +4664,8 @@
-
-
+
+
@@ -4768,8 +4768,8 @@
-
-
+
+
@@ -4872,8 +4872,8 @@
-
-
+
+
@@ -4976,8 +4976,8 @@
-
-
+
+
@@ -5079,8 +5079,8 @@
-
-
+
+
@@ -5182,8 +5182,8 @@
-
-
+
+
@@ -5438,8 +5438,8 @@
-
-
+
+
@@ -5546,8 +5546,8 @@
-
-
+
+
@@ -5652,8 +5652,8 @@
-
-
+
+
@@ -5759,8 +5759,8 @@
-
-
+
+
@@ -5865,8 +5865,8 @@
-
-
+
+
@@ -5971,8 +5971,8 @@
-
-
+
+
@@ -6269,8 +6269,8 @@
-
-
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/26100-26199.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/26100-26199.xml
index a818a8efa1..762b8b7c8c 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/26100-26199.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/26100-26199.xml
@@ -66,8 +66,8 @@
-
-
+
+
@@ -240,8 +240,8 @@
-
-
+
+
@@ -340,8 +340,8 @@
-
-
+
+
@@ -406,8 +406,8 @@
-
-
+
+
@@ -523,8 +523,8 @@
-
-
+
+
@@ -559,8 +559,8 @@
-
-
+
+
@@ -595,8 +595,8 @@
-
-
+
+
@@ -631,8 +631,8 @@
-
-
+
+
@@ -733,8 +733,8 @@
-
-
+
+
@@ -801,8 +801,8 @@
-
-
+
+
@@ -920,8 +920,8 @@
-
-
+
+
@@ -1020,8 +1020,8 @@
-
-
+
+
@@ -1086,8 +1086,8 @@
-
-
+
+
@@ -1202,8 +1202,8 @@
-
-
+
+
@@ -1331,8 +1331,8 @@
-
-
+
+
@@ -1460,8 +1460,8 @@
-
-
+
+
@@ -1606,6 +1606,7 @@
+
@@ -1625,6 +1626,9 @@
+
+
+
@@ -2129,6 +2133,10 @@
+
+
+
+
@@ -2335,8 +2343,8 @@
-
-
+
+
@@ -2368,8 +2376,12 @@
-
-
+
+
+
+
+
+
@@ -2398,10 +2410,11 @@
-
-
+
+
-
+
+
@@ -2656,8 +2669,12 @@
-
-
+
+
+
+
+
+
@@ -2879,10 +2896,11 @@
-
-
+
+
-
+
+
@@ -3050,10 +3068,11 @@
-
-
+
+
-
+
+
@@ -3226,6 +3245,10 @@
+
+
+
+
@@ -3320,6 +3343,10 @@
+
+
+
+
@@ -3414,6 +3441,10 @@
+
+
+
+
@@ -3508,6 +3539,10 @@
+
+
+
+
@@ -3678,6 +3713,10 @@
+
+
+
+
@@ -3772,6 +3811,10 @@
+
+
+
+
@@ -3866,6 +3909,10 @@
+
+
+
+
@@ -3960,6 +4007,10 @@
+
+
+
+
@@ -4140,6 +4191,10 @@
+
+
+
+
@@ -4234,6 +4289,10 @@
+
+
+
+
@@ -4328,6 +4387,10 @@
+
+
+
+
@@ -4423,6 +4486,10 @@
+
+
+
+
@@ -4592,6 +4659,10 @@
+
+
+
+
@@ -4686,6 +4757,10 @@
+
+
+
+
@@ -4780,6 +4855,10 @@
+
+
+
+
@@ -4874,6 +4953,10 @@
+
+
+
+
@@ -5041,6 +5124,12 @@
FEMALE
+
+
+
+
+
+
@@ -5110,8 +5199,8 @@
-
-
+
+
@@ -5182,6 +5271,12 @@
FEMALE
+
+
+
+
+
+
@@ -5246,6 +5341,12 @@
FEMALE
+
+
+
+
+
+
@@ -5310,6 +5411,12 @@
FEMALE
+
+
+
+
+
+
@@ -5370,6 +5477,10 @@
+
+
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29000-29099.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29000-29099.xml
index 65a072c0ec..94a1eb7db3 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29000-29099.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29000-29099.xml
@@ -1179,6 +1179,11 @@
+
+
+
+
+
21
true
@@ -3348,6 +3353,11 @@
+
+
+
+
+
14
true
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29100-29199.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29100-29199.xml
index e90d2a60e2..a70be91611 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29100-29199.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29100-29199.xml
@@ -4079,8 +4079,8 @@
-
-
+
+
@@ -4158,8 +4158,8 @@
-
-
+
+
@@ -4200,8 +4200,8 @@
-
-
+
+
@@ -4326,8 +4326,8 @@
-
-
+
+
@@ -4469,8 +4469,8 @@
-
-
+
+
@@ -4600,8 +4600,8 @@
-
-
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29200-29299.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29200-29299.xml
index 37e1d62892..240f000ddd 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29200-29299.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29200-29299.xml
@@ -401,8 +401,8 @@
-
-
+
+
@@ -482,8 +482,8 @@
-
-
+
+
@@ -525,8 +525,8 @@
-
-
+
+
@@ -671,8 +671,8 @@
-
-
+
+
@@ -956,8 +956,8 @@
-
-
+
+
@@ -1823,8 +1823,8 @@
-
-
+
+
@@ -1946,8 +1946,8 @@
-
-
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29300-29399.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29300-29399.xml
index fd4d6d4585..409cd75251 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29300-29399.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/npcs/29300-29399.xml
@@ -5,8 +5,8 @@
MALE
-
-
+
+
@@ -161,17 +161,17 @@
-
+
GIANT
MALE
-
+
-
-
+
+
@@ -182,16 +182,19 @@
+
+
+
-
+
GIANT
MALE
-
+
@@ -201,14 +204,19 @@
-
-
+
+
+
+
+
+
+
@@ -225,12 +233,13 @@
+
-
-
+
+
@@ -238,6 +247,13 @@
+
+
+
+
+
+
+
@@ -666,6 +682,7 @@
+
@@ -680,6 +697,10 @@
+
+
+
+
@@ -690,6 +711,7 @@
+
@@ -786,6 +808,10 @@
+
+
+
+
@@ -796,6 +822,7 @@
+
@@ -1035,6 +1062,10 @@
+
+
+
+
300
true
@@ -1362,6 +1393,10 @@
+
+
+
+
500
@@ -1376,6 +1411,9 @@
+
+
+
true
@@ -1474,12 +1512,16 @@
MALE
-
-
+
+
+
+
+
+
480
@@ -1504,12 +1546,16 @@
MALE
-
-
+
+
+
+
+
+
630
@@ -1531,16 +1577,27 @@
DIVINE
MALE
-
-
+
+
+
+
+
+
+
630
+
+
+
+
+
+
true
@@ -2008,6 +2065,10 @@
+
+
+
+
560
@@ -2025,6 +2086,7 @@
+
true
@@ -2123,12 +2185,16 @@
MALE
-
-
+
+
+
+
+
+
480
@@ -2153,12 +2219,16 @@
MALE
-
-
+
+
+
+
+
+
630
@@ -2180,16 +2250,27 @@
DIVINE
MALE
-
-
+
+
+
+
+
+
+
630
+
+
+
+
+
+
true
@@ -3237,13 +3318,18 @@
MALE
-
+
+
+
+
+
+
@@ -3257,9 +3343,16 @@
+
+
+
+
+
+
+
@@ -3471,6 +3564,11 @@
+
+
+
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/04100-04199.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/04100-04199.xml
index b5eff97c27..736b571067 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/04100-04199.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/04100-04199.xml
@@ -353,28 +353,25 @@
icon.skill4106
1
- 9
+ 10
STUN
STUN
- 1100
+ 600
2000
-100
- FIRE
- 180
+ EARTH
+ 450
6000
true
- 99
+ 110
A2
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- NONE
- -5
SHOCK
SELF
POINT_BLANK
NOT_FRIEND
- 28600
+ 34255
@@ -383,33 +380,25 @@
icon.skill4107
1
- 9
- FLY_AWAY
+ 10
+ STUN
STUN
- 1500
3000
-100
- FIRE
- 180
- 0;180;1500;400
+ EARTH
+ 450
+ 0;180;1500;600
3000
true
- 99
+ 110
A2
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- NONE
- -5
- 1.5
SHOCK
SELF
- SQUARE_PB
+ SQUARE
NOT_FRIEND
- 28600
-
-
- 600
+ 34255
@@ -421,25 +410,16 @@
30
TURN_FLEE
TURN_FLEE
- 90
- 400
- MAGIC
- 600
+ 600
2700
-100
- 1100
- FIRE
- 180
2300
true
- 1
- 99
+ 110
A2
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
DERANGEMENT
- ENEMY_ONLY
- RANGE
+ SELF
+ POINT_BLANK
NOT_FRIEND
@@ -452,93 +432,78 @@
1
120
ANTARAS_DEBUFF
- 90
- 850
- MAGIC
+ 600
1200
-100
- 0;0;850;850
2800
true
- 1
- 99
+ 110
A2
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
- 2
DERANGEMENT
SELF
- SQUARE_PB
+ POINT_BLANK
NOT_FRIEND
- -15
+ -30
PER
- -15
+ -30
PER
- -50
+ -30
PER
- -40
+ -30
PER
- -40
+ -30
PER
- -19
- DIFF
+ -30
+ PER
- -19
- DIFF
+ -30
+ PER
- -25
+ -30
PER
- -25
+ -30
PER
- 10
+ -30
PER
- 1200
-
- 500
- 1000
-
2700
-100
-
- 1000
- 1500
-
- FIRE
- 180
- 0;0;1200;300
+ EARTH
+ 450
+ 0;0;1500;600
2300
- 99
- A1
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
- ENEMY
+ 110
+ A2
+ SELF
SQUARE
NOT_FRIEND
-
- 650
+
+
+ 10000
+ 34255
+
@@ -549,28 +514,24 @@
120
TURN_STONE
FLESH_STONE
- 50
- 700
- MAGIC
- 1000
+ 300
+ 2500
1800
-100
- 1500
+ 2500
EARTH
- 20
+ 450
3200
true
1
99
A2
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
- ENEMY_ONLY
+ ENEMY
RANGE
NOT_FRIEND
- 10
+ 34255
@@ -580,24 +541,22 @@
- 100
- 50
+ 300
+ 300
800
-100
- 400
+ 300
FIRE
- 180
+ 450
2200
99
A1
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
ENEMY
RANGE
NOT_FRIEND
- 57200
+ 34255
@@ -988,15 +947,10 @@
icon.skillboss
- 99
P
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
+ 110
-
- 80
-
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/04400-04499.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/04400-04499.xml
index 075b58596d..d4f4260695 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/04400-04499.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/04400-04499.xml
@@ -3935,6 +3935,11 @@
1
P
-5
+
+
+ 100
+
+
900
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/04600-04699.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/04600-04699.xml
index 80679c7e46..8d1a05a817 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/04600-04699.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/04600-04699.xml
@@ -4688,87 +4688,69 @@
icon.skillboss
- 99
P
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
+ 110
-
- -8
-
1
- 30
+ 300
PD_UP_SPECIAL
3300
- -1
A2
- NONE
- -5
- -1
+ 110
TARGET
SINGLE
- 900
+ 100
PER
- 900
+ 100
PER
- 250
- 50
+ 300
+ 300
1500
-100
- 400
+ 300
FIRE
- 180
- 0;15;250;160
+ 450
1000
- 99
+ 110
A1
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
- VALAKAS
ENEMY
- SQUARE
+ RANGE
NOT_FRIEND
- 30416
- 10
+ 34255
- 250
- 50
+ 300
+ 300
1500
-100
- 400
+ 300
FIRE
- 180
- 0;-15;250;160
+ 450
1000
- 99
+ 110
A1
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
- VALAKAS
ENEMY
- SQUARE
+ RANGE
NOT_FRIEND
- 30416
- 10
+ 34255
@@ -4776,36 +4758,27 @@
icon.skill4683
1
- 10
+ 30
DRAGON_BREATH
- 80
- 1200
- MAGIC
- 600
2000
-100
- 1100
FIRE
- 180
- 0;0;1200;35
+ 450
3000
true
- 2
- 99
+ 110
A2
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
- -100;100
- ENEMY
- FAN
+ 0;0;2500;900
+ SELF
+ SQUARE
NOT_FRIEND
-
- 648
+
+ 34255
- 216
- 3
+ 512
+ 1
@@ -4813,122 +4786,124 @@
icon.skill4683
1
- 10
+ 30
DRAGON_BREATH
- 80
- 1700
- MAGIC
- 900
2000
-100
- 1400
FIRE
- 180
- 0;0;1700;160
+ 450
3000
true
- 2
- 99
+ 110
A2
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
- 100;300
- ENEMY
+ 0;0;2500;900
+ SELF
SQUARE
NOT_FRIEND
-
- 648
+
+ 34255
- 216
- 3
+ 512
+ 1
- 1000
+ 1
+ 10
+ STUN
+ STUN
1000
-100
FIRE
- 180
- 0;180;1000;120
+ 450
+ 0;180;1500;600
3000
- 99
- A1
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
+ 110
+ A2
+ SHOCK
SELF
- SQUARE_PB
+ SQUARE
NOT_FRIEND
- 48391
- 10
+ 34255
+
- 500
+ 1
+ 10
+ STUN
+ STUN
+ 1000
-100
FIRE
- 180
- 0;180;500;120
- 99
- A1
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
- 0
+ 450
+ 0;180;1500;600
+ 3000
+ 110
+ A2
+ SHOCK
SELF
- SQUARE_PB
+ SQUARE
NOT_FRIEND
-
- 157
+
+ 34255
+
+ 1
+ 10
+ STUN
+ STUN
+ 1000
+ -100
+ FIRE
+ 450
+ 0;180;1500;600
3000
- 99
- A1
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
- TARGET
- SINGLE
+ 110
+ A2
+ SHOCK
+ SELF
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+
icon.skill4688
1
- 9
- FLY_AWAY
- 80
- 250
- PHYSICAL
- 3000
+ 10
+ STUN
+ STUN
+ 1000
-100
FIRE
- 180
- 0;180;250;500
+ 450
+ 0;180;1500;600
3000
- true
- 1
- 99
+ 110
A2
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
SHOCK
SELF
- SQUARE_PB
+ SQUARE
NOT_FRIEND
- 27849
- 10
-
-
- 600
+ 34255
@@ -4940,36 +4915,13 @@
30
TURN_FLEE
TURN_FLEE
-
- 80
- -1
-
- 1000
-
- MAGIC
- NONE
-
-
- 2000
- 0
-
+ 600
+ 2000
-100
- FIRE
- 180
-
- 3000
- 0
-
+ 3000
true
-
- 1
- 0
-
- 99
+ 110
A2
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
- -100;300
DERANGEMENT
SELF
POINT_BLANK
@@ -4980,22 +4932,20 @@
- 300
+ 600
2000
-100
FIRE
- 180
+ 450
8000
- 99
- A1
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
+ 110
+ A2
SELF
- BALAKAS_SCOPE
+ POINT_BLANK
NOT_FRIEND
-
- 1084
+
+ 34255
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/05000-05099.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/05000-05099.xml
index dff9bb8b45..a5bb478acf 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/05000-05099.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/05000-05099.xml
@@ -3003,25 +3003,21 @@
- 150
- 600
- -1
- 1100
+ 2500
+ -100
+ 2500
EARTH
- 180
+ 450
8000
- 2
- 99
- A1
- 6000
- TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT
- -5
+ 110
+ A2
+ 300
ENEMY
RANGE
NOT_FRIEND
-
- 1084
+
+ 34255
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/14200-14299.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/14200-14299.xml
index 642061ce56..a91097f71d 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/14200-14299.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/14200-14299.xml
@@ -1232,29 +1232,20 @@
icon.skill0054
A2
- 1
- 1000
+ 600
1500
- 1
- -1
+ -100
FLY_AWAY
- NONE
- -5
- 0
- 1400
- 1
- 99
+ 600
99
1
- 1
- 200
+ 3
true
ENEMY
- RANGE
- NOT_FRIEND
+ SINGLE
- 2000
+ 157
200
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/14300-14399.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/14300-14399.xml
index 515c8e1360..ef0a2e9c08 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/14300-14399.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/14300-14399.xml
@@ -915,21 +915,16 @@
icon.skill1167
A2
- 500
500
1
- -1
+ -100
POISON
POISON
- NONE
- -5
- 0
- 1000
99
3
30
POISON
- 200
+ 600
DOT_POISON
true
SELF
@@ -969,59 +964,59 @@
icon.skill0773
A1
- 2000
- -686
- -5
- 0
- 2500
+ -100
99
- 0;0;2000;600
10000
- TARGET
+ 0;0;2500;600
+ SELF
SQUARE
NOT_FRIEND
+
+
+ 34255
+
+
icon.skill0036
A1
- -1
- -5
- 0
+ -100
99
- 1200
- 0;0;900;0
- 10000
- SELF
- RING_RANGE
- NOT_FRIEND
-
-
- icon.skill0036
- A1
- -1
- -5
- 0
- 99
- 900
+ 600
10000
SELF
POINT_BLANK
NOT_FRIEND
+
+
+ 34255
+
+
+
+
+ icon.skill0036
+ A1
+ -100
+ 99
+ 600
+ 10000
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
icon.skill1167
A2
- 500
10000
- 1
- -1
POISON
POISON
- NONE
- -5
- 0
- 1000
+ 600
99
3
30
@@ -1029,10 +1024,11 @@
DOT_POISON
true
SELF
- SINGLE
+ POINT_BLANK
+ NOT_FRIEND
- 1
+ 512
5
@@ -1666,29 +1662,22 @@
A2
600
2500
- 2000
- 1
- -1
+ -100
ROOT_MAGICALLY
- NONE
- -5
- 0
- 1100
- 2
- 80
+ 600
97
1
- 5
+ 10
HOLD
300
ROOT
true
- ENEMY_ONLY
+ ENEMY
RANGE
NOT_FRIEND
- 1000
+ 157
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15200-15299.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15200-15299.xml
index f7eb496279..b1e60fb276 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15200-15299.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15200-15299.xml
@@ -1343,56 +1343,104 @@
icon.skill0100
A2
- 400
+ 1
+ 10
+ STUN
+ STUN
+ 600
2500
1000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ SHOCK
SELF
- SINGLE
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+
icon.skill10549
A2
- 400
+ 1
+ 30
2500
3000
- -574
- -5
- 0
+ -100
+ WIND
+ 300
99
true
+ 0;0;2500;900
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+ -30
+ PER
+
+
+ -30
+ PER
+
+
- A1
- 2500
- -574
- -5
- 0
- 99
- 1500
+ 1
+ 10
+ STUN
+ STUN
+ 1000
+ -100
+ WIND
+ 300
+ 0;180;1500;600
+ 3000
+ 110
+ A2
+ SHOCK
SELF
- SINGLE
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+
- A1
- 1800
+ A2
+ 300
+ 2500
2500
- -707
- -5
- 0
+ -100
+ 2500
+ WIND
+ 300
99
- 1
- SELF
- SINGLE
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15400-15499.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15400-15499.xml
index 56bc171033..53e890c58c 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15400-15499.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15400-15499.xml
@@ -444,10 +444,21 @@
A2
+ 1
+ 5
+ 600
5000
5000
-574
true
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
A1
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15500-15599.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15500-15599.xml
index 3a1abed743..27a80a0fc7 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15500-15599.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15500-15599.xml
@@ -939,21 +939,53 @@
icon.skill4108
+ 1
+ 30
+ TURN_FLEE
+ TURN_FLEE
+ 600
A2
3000
500
1
-867
true
+ DERANGEMENT
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+
+
icon.skill0006
+ 1
+ 5
+ STUN
+ 600
A2
2000
3000
-867
true
+ PULL
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+ 600
+
+
+ 10279;10517;10025;10776;11770;1904;11264;11093;13314;1912
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15600-15699.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15600-15699.xml
index e0fe0e4306..609429406e 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15600-15699.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/15600-15699.xml
@@ -4,11 +4,22 @@
icon.skill1275
A1
+ 300
300
1500
1000
- -867
- 5000
+ -100
+ 300
+ WIND
+ 300
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 34255
+
+
@@ -90,13 +101,11 @@
icon.skill0003
A1
- 40
+ 600
2000
-100
+ 600
500
- ATTACK
- 6000
- 5
ENEMY
SINGLE
@@ -108,7 +117,7 @@
1000
2000
4000
- 6000
+ 50000
@@ -130,8 +139,7 @@
6000
-100
500
- 300
- 30000
+ 600
SELF
POINT_BLANK
NOT_FRIEND
@@ -144,7 +152,7 @@
12000
14000
16000
- 18000
+ 50000
@@ -156,8 +164,7 @@
6000
-100
500
- 800
- 30000
+ 600
SELF
POINT_BLANK
NOT_FRIEND
@@ -170,7 +177,7 @@
16000
18000
20000
- 22000
+ 50000
@@ -394,6 +401,10 @@
icon.skillboss
P
+ 99
+
+
+
@@ -1215,11 +1226,25 @@
icon.skill1422
A2
- 2000
+ 2500
500
- 1
+ 1
+ 30
+ 300
+ 300
+ 300
+ 40-80
-100
true
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ -20
+ PER
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/16100-16199.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/16100-16199.xml
index f38ef49843..071d8fbdd1 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/16100-16199.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/16100-16199.xml
@@ -28,11 +28,22 @@
icon.skill1167
A1
- 900
- 2000
+ 1
+ 300
+ 40-80
+ 300
+ 2500
500
- -264
- 1
+ -100
+ 300
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 157
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/16600-16699.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/16600-16699.xml
index 8da1d1a1f7..2b8f764eee 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/16600-16699.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/16600-16699.xml
@@ -206,25 +206,19 @@
1
10
PARALYZE
- 150
PARALYZE
- 10
2500
2500
- 200
3000
500
- 10000
- 2
- -52
- 0
+ -100
PARALYZE
ENEMY
SINGLE
true
- 1500
+ 157
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
@@ -237,20 +231,17 @@
A1
true
40-80
- 2500
- 900
- 10
+ 600
1000
500
- -52
- 2500
+ -100
SELF
POINT_BLANK
NOT_FRIEND
true
-
- 1500
+
+ 34255
@@ -259,21 +250,14 @@
icon.skill1275
A2
5
- 2
- 200
- true
- -1
+ 5
40-80
- 900
- 20000
+ 600
KNOCKDOWN
KNOCKDOWN
- 0
- 10
1000
500
- -52
- 2500
+ -100
KNOCKDOWN
SELF
POINT_BLANK
@@ -281,7 +265,7 @@
true
- 1500
+ 157
600
@@ -297,18 +281,11 @@
A2
5
30
- 200
- true
- -1
40-80
- 900
- 20000
- 0
- 10
+ 600
2000
500
- -52
- 2500
+ -100
GIANT_WEAKNESS
SELF
POINT_BLANK
@@ -316,7 +293,7 @@
true
- 1500
+ 157
30
@@ -368,22 +345,16 @@
icon.skill1172
A2
- 1200
+ 2500
2000
- -52
- 1
- 10
+ -100
1
10
40-80
PARALYZE
PARALYZE
- 150
- 900
- 1200
- 10000
- 2
- 0
+ 300
+ 2500
PARALYZE
ENEMY
RANGE
@@ -391,7 +362,7 @@
true
- 100000
+ 34255
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
@@ -402,23 +373,20 @@
A1
- true
45-45
- 200
- 1200
- 400
- 10
+ 2500
+ 300
3000
500
- -1349
- 1200
+ -100
+ 2500
ENEMY
RANGE
NOT_FRIEND
true
- 1500
+ 157
250
@@ -431,26 +399,21 @@
icon.skill16614
A2
- SELF
- 1200
+ 2500
3000
- -52
- 1
- 10
- 10000
+ -100
+ 2500
1
30
PARALYZE
- 150
PARALYZE
true
- 0
PARALYZE
ENEMY
SINGLE
- 200
+ 512
1
@@ -587,19 +550,20 @@
A1
2500
5000
- -696
- 1
- 10000
- 200
- 12
+ -100
+ 300
2500
ENEMY
- SINGLE
+ RANGE
NOT_FRIEND
true
- 1500
+ 157
+
+
+ 512
+ 1
@@ -607,23 +571,17 @@
icon.skll10094
A2
- SELF
2500
2500
- 900
+ 300
2500
40-80
- -438
- 1
- 10
- 10000
+ -100
1
30
PARALYZE
- 150
PARALYZE
true
- 0
PARALYZE
ENEMY
RANGE
@@ -634,7 +592,7 @@
10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516
- 1500
+ 157
-50
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/16700-16799.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/16700-16799.xml
index bccd34e1e5..5eff878c51 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/16700-16799.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/16700-16799.xml
@@ -389,15 +389,15 @@
A1
- -1
+ 600
1500
- 1
-100
+ 600
ENEMY
SINGLE
- 100000
+ 34255
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/23600-23699.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/23600-23699.xml
index 7a8c770fbb..6e37757bdb 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/23600-23699.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/23600-23699.xml
@@ -785,37 +785,68 @@
A1
- 1
- 600
+ 100
1500
800
- 10000
- -700
- 1
+ -100
+ 100
+ ENEMY
+ SINGLE
+
+
+ 34255
+
+
icon.skill0096
A2
- 1
+ 1
+ 10
+ 40-80
+ 600
3000
500
- 10000
- 1
-100
true
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 157
+
+
+ 512
+ 1
+
+
icon.skill1092
A2
- 1
+ 1
+ 10
+ 40-80
+ 600
6000
800
- 10000
- 1
- -700
+ -100
true
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+ 512
+ 1
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/32400-32499.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/32400-32499.xml
index 911daafe75..28b537262a 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/32400-32499.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/32400-32499.xml
@@ -418,6 +418,19 @@
A1
+ 40-80
+ 600
+ 2000
+ -100
+ 3500
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
@@ -440,12 +453,63 @@
icon.skill10266
- A1
+ 1
+ 30
+ ROOT_MAGICALLY
+ ROOT
+ 40-80
+ 600
+ 2000
+ -100
+ 5500
+ true
+ A2
+ HOLD
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 34255
+
+
+
icon.skill1072
- A1
+ 1
+ 30
+ POISON
+ POISON
+ 40-80
+ 600
+ 2000
+ -100
+ 5500
+ true
+ A2
+ POISON
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+ 157
+
+
+ 512
+ 1
+
+
+ -20
+ PER
+
+
+ -20
+ PER
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/32700-32799.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/32700-32799.xml
index b0410f2525..76fba9c194 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/32700-32799.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/skills/32700-32799.xml
@@ -27,7 +27,24 @@
+ 300
+ 300
+ 1500
+ -100
+ 300
+ WATER
+ 450
+ 1000
+ 110
A1
+ ENEMY
+ RANGE
+ NOT_FRIEND
+
+
+ 34255
+
+
@@ -68,12 +85,54 @@
icon.skill32713
- A1
+ 1
+ 10
+ STUN
+ STUN
+ 1000
+ -100
+ WATER
+ 450
+ 0;180;1500;600
+ 3000
+ 110
+ A2
+ SHOCK
+ SELF
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+
icon.skill32713
- A1
+ 1
+ 10
+ STUN
+ STUN
+ 1000
+ -100
+ WATER
+ 450
+ 0;180;1500;600
+ 3000
+ 110
+ A2
+ SHOCK
+ SELF
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+
@@ -83,12 +142,64 @@
icon.skill32716
- A1
+ A2
+ 1
+ 30
+ 2500
+ 3000
+ -100
+ WATER
+ 450
+ 110
+ true
+ 0;0;2500;900
+ SELF
+ SQUARE
+ NOT_FRIEND
+
+
+ 34255
+
+
+ 512
+ 1
+
+
icon.skill32717
- A1
+ 1
+ 30
+ TURN_FLEE
+ TURN_FLEE
+ 600
+ 2000
+ -100
+ 3000
+ true
+ 110
+ A2
+ DERANGEMENT
+ SELF
+ POINT_BLANK
+ NOT_FRIEND
+
+
+
+
+ -30
+ PER
+
+
+ -30
+ PER
+
+
+ 512
+ 1
+
+
@@ -131,7 +242,11 @@
icon.skillboss
- A1
+ P
+ 110
+
+
+