Sync with L2jServer HighFive Oct 22nd 2015.
This commit is contained in:
@@ -11,4 +11,4 @@ CREATE TABLE IF NOT EXISTS `announcements` (
|
|||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
INSERT INTO announcements (`type`, `author`, `content`) VALUES
|
INSERT INTO announcements (`type`, `author`, `content`) VALUES
|
||||||
(0, 'Mobius', 'Powered by L2J-Mobius');
|
(0, 'Mobius', 'Server powered by L2J-Mobius project.');
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
DROP TABLE IF EXISTS `custom_npc_buffer`;
|
DROP TABLE IF EXISTS `custom_npc_buffer`;
|
||||||
CREATE TABLE IF NOT EXISTS `custom_npc_buffer` (
|
CREATE TABLE IF NOT EXISTS `custom_npc_buffer` (
|
||||||
`npc_id` mediumint(7) NOT NULL,
|
`npc_id` int(10) NOT NULL,
|
||||||
`skill_id` int(6) NOT NULL,
|
`skill_id` int(6) NOT NULL,
|
||||||
`skill_level` int(6) NOT NULL DEFAULT '1',
|
`skill_level` int(6) NOT NULL DEFAULT '1',
|
||||||
`skill_fee_id` int(6) NOT NULL DEFAULT '0',
|
`skill_fee_id` int(6) NOT NULL DEFAULT '0',
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ DROP TABLE IF EXISTS `custom_spawnlist`;
|
|||||||
CREATE TABLE IF NOT EXISTS `custom_spawnlist` (
|
CREATE TABLE IF NOT EXISTS `custom_spawnlist` (
|
||||||
`location` varchar(40) NOT NULL DEFAULT '',
|
`location` varchar(40) NOT NULL DEFAULT '',
|
||||||
`count` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
`count` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
`npc_templateid` mediumint(7) unsigned NOT NULL DEFAULT '0',
|
`npc_templateid` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
`locx` mediumint(6) NOT NULL DEFAULT '0',
|
`locx` mediumint(8) NOT NULL DEFAULT '0',
|
||||||
`locy` mediumint(6) NOT NULL DEFAULT '0',
|
`locy` mediumint(6) NOT NULL DEFAULT '0',
|
||||||
`locz` mediumint(6) NOT NULL DEFAULT '0',
|
`locz` mediumint(6) NOT NULL DEFAULT '0',
|
||||||
`randomx` mediumint(6) NOT NULL DEFAULT '0',
|
`randomx` mediumint(6) NOT NULL DEFAULT '0',
|
||||||
|
|||||||
@@ -331,9 +331,9 @@ INSERT IGNORE INTO `raidboss_spawnlist` (`boss_id`,`loc_x`,`loc_y`,`loc_z`,`head
|
|||||||
-- (29144,0,0,0,0,0,0,0,0), -- Lost Captain (78) (Spawned by Kamaloka's instance)
|
-- (29144,0,0,0,0,0,0,0,0), -- Lost Captain (78) (Spawned by Kamaloka's instance)
|
||||||
-- (29147,0,0,0,0,0,0,0,0), -- Lost Captain (81) (Spawned by Kamaloka's instance)
|
-- (29147,0,0,0,0,0,0,0,0), -- Lost Captain (81) (Spawned by Kamaloka's instance)
|
||||||
-- (29186,0,0,0,0,0,0,0,0), -- Balor (85) (stats to be done)
|
-- (29186,0,0,0,0,0,0,0,0), -- Balor (85) (stats to be done)
|
||||||
(25725,152316,110439,-5520,36811,129600,86400,6165648,20499), -- Drake Lord (85)
|
(25725,152260,110394,-5552,0,129600,86400,6165648,20499), -- Drake Lord (85)
|
||||||
(25726,145734,120031,-3912,45303,129600,86400,6165648,20499), -- Behemoth Leader (85)
|
(25726,145788,120118,-3912,32768,129600,86400,6165648,20499), -- Behemoth Leader (85)
|
||||||
(25727,148482,117859,-3712,36584,129600,86400,6165648,20499); -- Dragon Beast (85)
|
(25727,148241,117965,-3712,0,129600,86400,6165648,20499); -- Dragon Beast (85)
|
||||||
|
|
||||||
-- Removed
|
-- Removed
|
||||||
DELETE FROM `raidboss_spawnlist` WHERE (boss_id = 25118); -- Guilotine, Warden Of The Execution Grounds
|
DELETE FROM `raidboss_spawnlist` WHERE (boss_id = 25118); -- Guilotine, Warden Of The Execution Grounds
|
||||||
|
|||||||
2
trunk/dist/game/config/Server.ini
vendored
2
trunk/dist/game/config/Server.ini
vendored
@@ -57,7 +57,7 @@ Password =
|
|||||||
# Available: C3P0, HikariCP, BoneCP
|
# Available: C3P0, HikariCP, BoneCP
|
||||||
ConnectionPool = C3P0
|
ConnectionPool = C3P0
|
||||||
|
|
||||||
# Default: 100
|
# Default: 500
|
||||||
MaximumDbConnections = 500
|
MaximumDbConnections = 500
|
||||||
|
|
||||||
# Default: 0
|
# Default: 0
|
||||||
|
|||||||
2
trunk/dist/game/config/default-ipconfig.xml
vendored
2
trunk/dist/game/config/default-ipconfig.xml
vendored
@@ -8,4 +8,6 @@
|
|||||||
<define subnet="10.0.0.0/8" address="10.0.0.0" />
|
<define subnet="10.0.0.0/8" address="10.0.0.0" />
|
||||||
<define subnet="172.16.0.0/19" address="172.16.0.0" />
|
<define subnet="172.16.0.0/19" address="172.16.0.0" />
|
||||||
<define subnet="192.168.0.0/16" address="192.168.0.0" />
|
<define subnet="192.168.0.0/16" address="192.168.0.0" />
|
||||||
|
<define subnet="192.168.0.0/24" address="192.168.0.0" />
|
||||||
|
<define subnet="192.168.1.0/24" address="192.168.1.0" />
|
||||||
</gameserver>
|
</gameserver>
|
||||||
@@ -26,6 +26,7 @@ import java.util.StringTokenizer;
|
|||||||
import com.l2jserver.Config;
|
import com.l2jserver.Config;
|
||||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||||
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
|
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
|
||||||
|
import com.l2jserver.gameserver.model.L2Object;
|
||||||
import com.l2jserver.gameserver.model.L2World;
|
import com.l2jserver.gameserver.model.L2World;
|
||||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||||
@@ -160,47 +161,39 @@ public class AdminBuffs implements IAdminCommandHandler
|
|||||||
StringTokenizer st = new StringTokenizer(command, " ");
|
StringTokenizer st = new StringTokenizer(command, " ");
|
||||||
command = st.nextToken();
|
command = st.nextToken();
|
||||||
|
|
||||||
L2PcInstance player = null;
|
L2Character creature = null;
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
String playername = st.nextToken();
|
creature = L2World.getInstance().getPlayer(st.nextToken());
|
||||||
|
if (creature == null)
|
||||||
try
|
|
||||||
{
|
{
|
||||||
player = L2World.getInstance().getPlayer(playername);
|
activeChar.sendMessage("The player " + creature + " is not online.");
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player == null)
|
|
||||||
{
|
|
||||||
activeChar.sendMessage("The player " + playername + " is not online.");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((activeChar.getTarget() != null) && activeChar.getTarget().isPlayer())
|
|
||||||
{
|
|
||||||
player = activeChar.getTarget().getActingPlayer();
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
|
final L2Object target = activeChar.getTarget();
|
||||||
return false;
|
if ((target != null) && target.isCharacter())
|
||||||
|
{
|
||||||
|
creature = (L2Character) target;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (creature == null)
|
||||||
|
{
|
||||||
|
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
creature.resetTimeStamps();
|
||||||
|
creature.resetDisabledSkills();
|
||||||
|
if (creature.isPlayer())
|
||||||
{
|
{
|
||||||
player.resetTimeStamps();
|
creature.sendPacket(new SkillCoolTime(creature.getActingPlayer()));
|
||||||
player.resetDisabledSkills();
|
|
||||||
player.sendPacket(new SkillCoolTime(player));
|
|
||||||
activeChar.sendMessage("Skill reuse was removed from " + player.getName() + ".");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
catch (NullPointerException e)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
activeChar.sendMessage("Skill reuse was removed from " + creature.getName() + ".");
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else if (command.startsWith("admin_switch_gm_buffs"))
|
else if (command.startsWith("admin_switch_gm_buffs"))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public final class MagicalAttackMp extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public L2EffectType getEffectType()
|
public L2EffectType getEffectType()
|
||||||
{
|
{
|
||||||
return L2EffectType.MAGICAL_ATTACK;
|
return L2EffectType.MAGICAL_ATTACK_MP;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -914,7 +914,7 @@
|
|||||||
<set name="is_sellable" val="false" />
|
<set name="is_sellable" val="false" />
|
||||||
<set name="is_depositable" val="false" />
|
<set name="is_depositable" val="false" />
|
||||||
<set name="is_oly_restricted" val="true" />
|
<set name="is_oly_restricted" val="true" />
|
||||||
<set name="handler" val="ItemSkills" />
|
<set name="handler" val="SummonItems" />
|
||||||
<set name="item_skill" val="2046-1" />
|
<set name="item_skill" val="2046-1" />
|
||||||
<set name="use_condition" val="{{uc_transmode_exclude;{tt_pure_stat}}}" />
|
<set name="use_condition" val="{{uc_transmode_exclude;{tt_pure_stat}}}" />
|
||||||
<cond msgId="113" addName="1">
|
<cond msgId="113" addName="1">
|
||||||
@@ -934,7 +934,7 @@
|
|||||||
<set name="is_premium" val="true" />
|
<set name="is_premium" val="true" />
|
||||||
<set name="is_oly_restricted" val="true" />
|
<set name="is_oly_restricted" val="true" />
|
||||||
<set name="is_freightable" val="true" />
|
<set name="is_freightable" val="true" />
|
||||||
<set name="handler" val="ItemSkills" />
|
<set name="handler" val="SummonItems" />
|
||||||
<set name="item_skill" val="2046-1" />
|
<set name="item_skill" val="2046-1" />
|
||||||
<set name="use_condition" val="{{uc_transmode_exclude;{tt_pure_stat}}}" />
|
<set name="use_condition" val="{{uc_transmode_exclude;{tt_pure_stat}}}" />
|
||||||
<cond msgId="113" addName="1">
|
<cond msgId="113" addName="1">
|
||||||
|
|||||||
1170
trunk/dist/game/data/stats/npcs/18200-18299.xml
vendored
1170
trunk/dist/game/data/stats/npcs/18200-18299.xml
vendored
File diff suppressed because it is too large
Load Diff
136
trunk/dist/game/data/stats/skills/00900-00999.xml
vendored
136
trunk/dist/game/data/stats/skills/00900-00999.xml
vendored
@@ -2018,12 +2018,13 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="984" levels="25" name="Shield Strike">
|
<skill id="984" levels="25" name="Shield Strike">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#effectPoints"> -377 -392 -407 -437 -453 -469 -501 -518 -535 -570 -588 -606 -643 -662 -681 -719 -738 -758 -777 -797 -816 -836 -856 -875 -895 </table>
|
<table name="#effectPoints"> -377 -392 -407 -437 -453 -469 -501 -518 -535 -570 -588 -606 -643 -662 -681 -719 -738 -758 -777 -797 -816 -836 -856 -875 -895 </table>
|
||||||
<table name="#magicLvl"> 40 43 46 49 52 55 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
<table name="#magicLvl"> 40 43 46 49 52 55 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
||||||
<table name="#mpConsume"> 38 41 44 48 51 55 58 61 62 65 67 69 71 73 75 77 78 78 79 80 80 81 82 82 83 </table>
|
<table name="#mpConsume"> 38 41 44 48 51 55 58 61 62 65 67 69 71 73 75 77 78 78 79 80 80 81 82 82 83 </table>
|
||||||
<table name="#power"> 833 992 1171 1371 1592 1832 2091 2272 2460 2653 2850 3050 3252 3453 3653 3849 3945 4040 4133 4224 4312 4399 4482 4563 4640 </table>
|
<table name="#power"> 833 992 1171 1371 1592 1832 2091 2272 2460 2653 2850 3050 3252 3453 3653 3849 3945 4040 4133 4224 4312 4399 4482 4563 4640 </table>
|
||||||
<set name="castRange" val="40" />
|
<set name="castRange" val="40" />
|
||||||
|
<set name="coolTime" val="380" />
|
||||||
<set name="effectPoint" val="#effectPoints" />
|
<set name="effectPoint" val="#effectPoints" />
|
||||||
<set name="effectRange" val="400" />
|
<set name="effectRange" val="400" />
|
||||||
<set name="hitTime" val="1080" />
|
<set name="hitTime" val="1080" />
|
||||||
@@ -2031,7 +2032,7 @@
|
|||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="mpConsume" val="#mpConsume" />
|
<set name="mpConsume" val="#mpConsume" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="power" val="#power" />
|
<set name="power" val="#power" />
|
||||||
<set name="reuseDelay" val="6000" />
|
<set name="reuseDelay" val="6000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
@@ -2045,20 +2046,22 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="985" levels="1" name="Challenge for Fate">
|
<skill id="985" levels="1" name="Challenge for Fate">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="abnormalTime" val="4" />
|
<set name="abnormalLvl" val="1" />
|
||||||
|
<set name="abnormalTime" val="5" />
|
||||||
|
<set name="abnormalType" val="TARGET_LOCK" />
|
||||||
<set name="affectLimit" val="10-10" />
|
<set name="affectLimit" val="10-10" />
|
||||||
<set name="affectRange" val="100" /> <!-- FIXME: value unconfirmed -->
|
<set name="affectRange" val="550" />
|
||||||
<set name="castRange" val="400" />
|
<set name="effectPoint" val="-10000" />
|
||||||
<set name="effectPoint" val="-7987" />
|
|
||||||
<set name="effectRange" val="900" />
|
|
||||||
<set name="hitTime" val="1000" />
|
<set name="hitTime" val="1000" />
|
||||||
<set name="icon" val="icon.skill0985" />
|
<set name="icon" val="icon.skill0985" />
|
||||||
|
<set name="isDebuff" val="true" />
|
||||||
<set name="magicLvl" val="83" />
|
<set name="magicLvl" val="83" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="45000" />
|
<set name="reuseDelay" val="45000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="AREA" />
|
<set name="staticReuse" val="true" />
|
||||||
|
<set name="targetType" val="AURA" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="TargetMe" />
|
<effect name="TargetMe" />
|
||||||
<effect name="GetAgro" />
|
<effect name="GetAgro" />
|
||||||
@@ -2070,7 +2073,7 @@
|
|||||||
</selfEffects>
|
</selfEffects>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="986" levels="25" name="Deadly Strike">
|
<skill id="986" levels="25" name="Deadly Strike">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 40 43 46 49 52 55 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
<table name="#magicLvl"> 40 43 46 49 52 55 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
||||||
<table name="#mpConsume"> 38 41 44 48 51 55 58 61 62 65 67 69 71 73 75 77 78 78 79 80 80 81 82 82 83 </table>
|
<table name="#mpConsume"> 38 41 44 48 51 55 58 61 62 65 67 69 71 73 75 77 78 78 79 80 80 81 82 82 83 </table>
|
||||||
<table name="#power"> 833 992 1171 1371 1592 1832 2091 2272 2460 2653 2850 3050 3252 3453 3653 3849 3945 4040 4133 4224 4312 4399 4482 4563 4640 </table>
|
<table name="#power"> 833 992 1171 1371 1592 1832 2091 2272 2460 2653 2850 3050 3252 3453 3653 3849 3945 4040 4133 4224 4312 4399 4482 4563 4640 </table>
|
||||||
@@ -2082,33 +2085,33 @@
|
|||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="mpConsume" val="#mpConsume" />
|
<set name="mpConsume" val="#mpConsume" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="overHit" val="true" />
|
<set name="overHit" val="true" />
|
||||||
<set name="power" val="#power" />
|
<set name="power" val="#power" />
|
||||||
<set name="reuseDelay" val="5000" />
|
<set name="reuseDelay" val="5000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<cond msgId="113" addName="1">
|
<cond msgId="113" addName="1">
|
||||||
<not>
|
<using kind="SWORD,BLUNT,DAGGER,DUALDAGGER,DUAL,POLE" />
|
||||||
<using kind="FIST,DUALFIST,BOW,CROSSBOW" />
|
|
||||||
</not>
|
|
||||||
</cond>
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="PhysicalAttack" />
|
<effect name="PhysicalAttack" />
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="987" levels="1" name="Multiple Shot">
|
<skill id="987" levels="1" name="Multiple Shot">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="affectLimit" val="5-12" />
|
<set name="affectLimit" val="5-12" />
|
||||||
<set name="affectRange" val="250" />
|
<set name="affectRange" val="900" />
|
||||||
<set name="baseCritRate" val="15" /> <!-- FIXME: value unconfirmed -->
|
<set name="baseCritRate" val="15" />
|
||||||
<set name="castRange" val="900" />
|
<set name="castRange" val="900" />
|
||||||
<set name="effectPoint" val="-887" />
|
<set name="effectPoint" val="-887" />
|
||||||
<set name="effectRange" val="1400" />
|
<set name="effectRange" val="1100" />
|
||||||
|
<set name="fanRange" val="0,0,900,45" />
|
||||||
<set name="hitTime" val="3000" />
|
<set name="hitTime" val="3000" />
|
||||||
<set name="icon" val="icon.skill0987" />
|
<set name="icon" val="icon.skill0987" />
|
||||||
<set name="magicLvl" val="82" />
|
<set name="magicLvl" val="82" />
|
||||||
<set name="mpConsume" val="162" />
|
<set name="mpConsume" val="162" />
|
||||||
|
<set name="nextActionAttack" val="true" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="overHit" val="true" />
|
<set name="overHit" val="true" />
|
||||||
<set name="power" val="16667" />
|
<set name="power" val="16667" />
|
||||||
@@ -2123,21 +2126,26 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="988" levels="3" name="Battle Whisper">
|
<skill id="988" levels="3" name="Battle Whisper">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
|
<table name="#abnormalLvl"> 1 2 3 </table>
|
||||||
<table name="#amount"> 1.05 1.07 1.1 </table>
|
<table name="#amount"> 1.05 1.07 1.1 </table>
|
||||||
<table name="#effectPoints"> 454 523 635 </table>
|
<table name="#effectPoints"> 454 523 635 </table>
|
||||||
<table name="#magicLvl"> 46 52 60 </table>
|
<table name="#magicLvl"> 46 52 60 </table>
|
||||||
<table name="#pAtk"> 1.05 1.1 1.15 </table>
|
<table name="#pAtk"> 1.05 1.1 1.15 </table>
|
||||||
|
<set name="abnormalLvl" val="#abnormalLvl" />
|
||||||
<set name="abnormalTime" val="120" />
|
<set name="abnormalTime" val="120" />
|
||||||
|
<set name="abnormalType" val="SONG_BATTLE_WHISPER" />
|
||||||
|
<!-- <set name="affectRange" val="1000" /> -->
|
||||||
<set name="effectPoint" val="#effectPoints" />
|
<set name="effectPoint" val="#effectPoints" />
|
||||||
<set name="hitTime" val="2500" />
|
<set name="hitTime" val="2500" />
|
||||||
<set name="icon" val="icon.skill0988" />
|
<set name="icon" val="icon.skill0988" />
|
||||||
<set name="isMagic" val="3" /> <!-- Dance Skill -->
|
<set name="isMagic" val="3" /> <!-- Dance Skill -->
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="mpConsume" val="30" />
|
<set name="mpConsume" val="30" />
|
||||||
|
<set name="mpInitialConsume" val="8" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="3000" />
|
<set name="reuseDelay" val="3000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="Buff">
|
<effect name="Buff">
|
||||||
@@ -2148,8 +2156,11 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="989" levels="1" name="Defense Motion">
|
<skill id="989" levels="1" name="Defense Motion">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="120" />
|
<set name="abnormalTime" val="120" />
|
||||||
|
<set name="abnormalType" val="DANCE_DEFENCE_MOTION1" />
|
||||||
|
<!-- <set name="affectRange" val="1000" /> -->
|
||||||
<set name="effectPoint" val="635" />
|
<set name="effectPoint" val="635" />
|
||||||
<set name="hitTime" val="2500" />
|
<set name="hitTime" val="2500" />
|
||||||
<set name="icon" val="icon.skill0989" />
|
<set name="icon" val="icon.skill0989" />
|
||||||
@@ -2158,8 +2169,11 @@
|
|||||||
<set name="mpConsume" val="30" />
|
<set name="mpConsume" val="30" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="3000" />
|
<set name="reuseDelay" val="3000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
|
<cond msgId="113" addName="1">
|
||||||
|
<using kind="DUAL" />
|
||||||
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="Buff">
|
<effect name="Buff">
|
||||||
<mul stat="pDef" val="1.25" />
|
<mul stat="pDef" val="1.25" />
|
||||||
@@ -2168,9 +2182,9 @@
|
|||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="990" levels="1" name="Death Sting">
|
<skill id="990" levels="1" name="Death Shot">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="baseCritRate" val="15" /> <!-- FIXME: value unconfirmed -->
|
<set name="baseCritRate" val="15" />
|
||||||
<set name="castRange" val="900" />
|
<set name="castRange" val="900" />
|
||||||
<set name="effectPoint" val="-887" />
|
<set name="effectPoint" val="-887" />
|
||||||
<set name="effectRange" val="1400" />
|
<set name="effectRange" val="1400" />
|
||||||
@@ -2192,19 +2206,20 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="991" levels="1" name="Throwing Dagger">
|
<skill id="991" levels="1" name="Throwing Dagger">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="abnormalLvl" val="3" />
|
<set name="abnormalLvl" val="3" />
|
||||||
<set name="abnormalTime" val="10" />
|
<set name="abnormalTime" val="10" />
|
||||||
<set name="abnormalType" val="SPEED_DOWN" />
|
<set name="abnormalType" val="SPEED_DOWN" />
|
||||||
<set name="activateRate" val="40" />
|
<set name="activateRate" val="40" />
|
||||||
|
<set name="baseCritRate" val="15" />
|
||||||
<set name="basicProperty" val="MEN" />
|
<set name="basicProperty" val="MEN" />
|
||||||
<set name="castRange" val="300" />
|
<set name="castRange" val="300" />
|
||||||
<set name="effectPoint" val="-569" />
|
<set name="effectPoint" val="-569" />
|
||||||
<set name="effectRange" val="800" />
|
<set name="effectRange" val="500" />
|
||||||
<set name="hitTime" val="1080" />
|
<set name="hitTime" val="1080" />
|
||||||
<set name="icon" val="icon.skill0991" />
|
<set name="icon" val="icon.skill0991" />
|
||||||
<set name="isDebuff" val="true" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="lvlBonusRate" val="2" /> <!-- FIXME: value unconfirmed -->
|
<set name="lvlBonusRate" val="1" />
|
||||||
<set name="magicLvl" val="80" />
|
<set name="magicLvl" val="80" />
|
||||||
<set name="mpConsume" val="82" />
|
<set name="mpConsume" val="82" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
@@ -2224,15 +2239,20 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="992" levels="8" name="Sonic Mastery">
|
<skill id="992" levels="8" name="Sonic Mastery">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 40 43 49 55 60 66 70 79 </table>
|
<table name="#magicLvl"> 40 43 49 55 60 66 70 79 </table>
|
||||||
<table name="#skillLevel"> 1 2 3 4 5 6 7 8 </table>
|
<table name="#skillLevel"> 1 2 3 4 5 6 7 8 </table>
|
||||||
<set name="icon" val="icon.skill0992" />
|
<set name="icon" val="icon.skill0992" />
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="operateType" val="PASSIVE" />
|
<set name="operateType" val="PASSIVE" />
|
||||||
|
<cond msgId="324">
|
||||||
|
<not>
|
||||||
|
<player Charges="#skillLevel" />
|
||||||
|
</not>
|
||||||
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="TriggerSkillByAttack">
|
<effect name="TriggerSkillByAttack">
|
||||||
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="99" />
|
||||||
<param isCritical="false" />
|
<param isCritical="false" />
|
||||||
<param minDamage="1" chance="15" />
|
<param minDamage="1" chance="15" />
|
||||||
<param skillId="6813" skillLevel="#skillLevel" /> <!-- Focus Sonic -->
|
<param skillId="6813" skillLevel="#skillLevel" /> <!-- Focus Sonic -->
|
||||||
@@ -2250,16 +2270,21 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="993" levels="8" name="Force Mastery">
|
<skill id="993" levels="8" name="Force Mastery">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 24 32 40 52 60 66 72 79 </table>
|
<table name="#magicLvl"> 24 32 40 52 60 66 72 79 </table>
|
||||||
<table name="#skillLevel"> 1 2 3 4 5 6 7 8 </table>
|
<table name="#skillLevel"> 1 2 3 4 5 6 7 8 </table>
|
||||||
<set name="icon" val="icon.skill0993" />
|
<set name="icon" val="icon.skill0993" />
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="operateType" val="PASSIVE" />
|
<set name="operateType" val="PASSIVE" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
|
<cond msgId="324">
|
||||||
|
<not>
|
||||||
|
<player Charges="#skillLevel" />
|
||||||
|
</not>
|
||||||
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="TriggerSkillByAttack">
|
<effect name="TriggerSkillByAttack">
|
||||||
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="99" />
|
||||||
<param isCritical="false" />
|
<param isCritical="false" />
|
||||||
<param minDamage="1" chance="15" />
|
<param minDamage="1" chance="15" />
|
||||||
<param skillId="6814" skillLevel="#skillLevel" /> <!-- Focus Force -->
|
<param skillId="6814" skillLevel="#skillLevel" /> <!-- Focus Force -->
|
||||||
@@ -2277,7 +2302,7 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="994" levels="1" name="Rush">
|
<skill id="994" levels="1" name="Rush">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="castRange" val="400" />
|
<set name="castRange" val="400" />
|
||||||
<set name="coolTime" val="200" />
|
<set name="coolTime" val="200" />
|
||||||
<set name="effectPoint" val="-303" />
|
<set name="effectPoint" val="-303" />
|
||||||
@@ -2285,8 +2310,8 @@
|
|||||||
<set name="flyType" val="CHARGE" />
|
<set name="flyType" val="CHARGE" />
|
||||||
<set name="hitTime" val="800" />
|
<set name="hitTime" val="800" />
|
||||||
<set name="icon" val="icon.skill0484" />
|
<set name="icon" val="icon.skill0484" />
|
||||||
<set name="magicLvl" val="40" />
|
<set name="magicLvl" val="32" />
|
||||||
<set name="mpConsume" val="38" />
|
<set name="mpInitialConsume" val="20" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
<set name="operateType" val="DIRECTIONAL_INSTANT" />
|
<set name="operateType" val="DIRECTIONAL_INSTANT" />
|
||||||
<set name="reuseDelay" val="3000" />
|
<set name="reuseDelay" val="3000" />
|
||||||
@@ -2294,10 +2319,8 @@
|
|||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<cond msgId="113" addName="1">
|
<cond msgId="113" addName="1">
|
||||||
<and>
|
<and>
|
||||||
|
<using kind="SWORD,BLUNT,DAGGER,DUALDAGGER,DUALFIST,DUAL,POLE" />
|
||||||
<target mindistance="200" />
|
<target mindistance="200" />
|
||||||
<not>
|
|
||||||
<using kind="BOW,CROSSBOW" />
|
|
||||||
</not>
|
|
||||||
</and>
|
</and>
|
||||||
</cond>
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
@@ -2305,7 +2328,7 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="995" levels="1" name="Rush Impact">
|
<skill id="995" levels="1" name="Rush Impact">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="abnormalLvl" val="1" />
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="9" />
|
<set name="abnormalTime" val="9" />
|
||||||
<set name="abnormalType" val="STUN" />
|
<set name="abnormalType" val="STUN" />
|
||||||
@@ -2323,25 +2346,24 @@
|
|||||||
<set name="icon" val="icon.skill0793" />
|
<set name="icon" val="icon.skill0793" />
|
||||||
<set name="isDebuff" val="true" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="lvlBonusRate" val="1" />
|
<set name="lvlBonusRate" val="1" />
|
||||||
<set name="magicLvl" val="83" />
|
<set name="magicLvl" val="78" />
|
||||||
<set name="mpConsume" val="82" />
|
<set name="mpInitialConsume" val="83" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
<set name="operateType" val="DIRECTIONAL_CONTINUOUS" />
|
<set name="operateType" val="DIRECTIONAL_CONTINUOUS" />
|
||||||
<set name="power" val="4224" />
|
<set name="power" val="4224" />
|
||||||
<set name="reuseDelay" val="20000" />
|
<set name="reuseDelay" val="20000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
|
<set name="soulMaxConsumeCount" val="5" />
|
||||||
<set name="targetType" val="FRONT_AREA" />
|
<set name="targetType" val="FRONT_AREA" />
|
||||||
<set name="trait" val="SHOCK" />
|
<set name="trait" val="SHOCK" />
|
||||||
<cond msgId="113" addName="1">
|
<cond msgId="113" addName="1">
|
||||||
<and>
|
<and>
|
||||||
|
<using kind="SWORD,BLUNT,DAGGER,DUALDAGGER,DUALFIST,DUAL,POLE" />
|
||||||
<target mindistance="200" />
|
<target mindistance="200" />
|
||||||
<not>
|
|
||||||
<using kind="BOW,CROSSBOW" />
|
|
||||||
</not>
|
|
||||||
</and>
|
</and>
|
||||||
</cond>
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="PhysicalAttack" />
|
<effect name="PhysicalSoulAttack" />
|
||||||
<effect name="Stun" />
|
<effect name="Stun" />
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
@@ -2369,18 +2391,23 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="997" levels="25" name="Crushing Strike">
|
<skill id="997" levels="25" name="Crushing Strike">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 40 43 46 49 52 55 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
<table name="#magicLvl"> 40 43 46 49 52 55 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
||||||
<table name="#mpConsume"> 38 41 44 48 51 55 58 61 62 65 67 69 71 73 75 77 78 78 79 80 80 81 82 82 83 </table>
|
<table name="#mpConsume"> 38 41 44 48 51 55 58 61 62 65 67 69 71 73 75 77 78 78 79 80 80 81 82 82 83 </table>
|
||||||
<table name="#power"> 1041 1240 1464 1714 1990 2290 2614 2840 3075 3316 3563 3813 4065 4316 4566 4689 4811 4931 5050 5166 5280 5390 5498 5603 5704 </table>
|
<table name="#power"> 1041 1240 1464 1714 1990 2290 2614 2840 3075 3316 3563 3813 4065 4316 4566 4689 4811 4931 5050 5166 5280 5390 5498 5603 5704 </table>
|
||||||
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="3" />
|
<set name="abnormalTime" val="3" />
|
||||||
|
<set name="abnormalType" val="MULTI_DEBUFF_G" />
|
||||||
<set name="activateRate" val="80" />
|
<set name="activateRate" val="80" />
|
||||||
<set name="basicProperty" val="MEN" />
|
<set name="basicProperty" val="MEN" />
|
||||||
<set name="castRange" val="40" />
|
<set name="castRange" val="40" />
|
||||||
|
<set name="coolTime" val="200" />
|
||||||
<set name="effectPoint" val="-52" />
|
<set name="effectPoint" val="-52" />
|
||||||
<set name="effectRange" val="400" />
|
<set name="effectRange" val="400" />
|
||||||
<set name="hitTime" val="800" />
|
<set name="hitTime" val="800" />
|
||||||
<set name="icon" val="icon.skill0997" />
|
<set name="icon" val="icon.skill0997" />
|
||||||
|
<set name="isDebuff" val="true" />
|
||||||
|
<set name="lvlBonusRate" val="1" />
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="mpConsume" val="#mpConsume" />
|
<set name="mpConsume" val="#mpConsume" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
@@ -2402,26 +2429,25 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="998" levels="1" name="Blazing Boost">
|
<skill id="998" levels="1" name="Blazing Boost">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="castRange" val="400" />
|
<set name="castRange" val="600" />
|
||||||
<set name="coolTime" val="200" /> <!-- FIXME: value unconfirmed -->
|
<set name="coolTime" val="200" />
|
||||||
<set name="effectPoint" val="-303" />
|
<set name="effectPoint" val="-303" />
|
||||||
<set name="effectRange" val="900" />
|
<set name="effectRange" val="900" />
|
||||||
<set name="flyType" val="CHARGE" />
|
<set name="flyType" val="CHARGE" />
|
||||||
<set name="hitTime" val="800" />
|
<set name="hitTime" val="800" />
|
||||||
<set name="icon" val="icon.skill0998" />
|
<set name="icon" val="icon.skill0998" />
|
||||||
<set name="magicLvl" val="40" />
|
<set name="magicLvl" val="40" />
|
||||||
<set name="mpConsume" val="38" />
|
<set name="mpInitialConsume" val="38" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="nextActionAttack" val="true" />
|
||||||
|
<set name="operateType" val="DIRECTIONAL_INSTANT" />
|
||||||
<set name="reuseDelay" val="3000" />
|
<set name="reuseDelay" val="3000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<cond msgId="113" addName="1">
|
<cond msgId="113" addName="1">
|
||||||
<and>
|
<and>
|
||||||
<target mindistance="200" />
|
<using kind="DAGGER,DUALDAGGER,SWORD,BLUNT,FIST" />
|
||||||
<not>
|
<target mindistance="400" />
|
||||||
<using kind="BOW,CROSSBOW" />
|
|
||||||
</not>
|
|
||||||
</and>
|
</and>
|
||||||
</cond>
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
|
|||||||
131
trunk/dist/game/data/stats/skills/01500-01599.xml
vendored
131
trunk/dist/game/data/stats/skills/01500-01599.xml
vendored
@@ -1591,9 +1591,9 @@
|
|||||||
</enchant3for>
|
</enchant3for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1549" levels="1" name="Chant of Elements">
|
<skill id="1549" levels="1" name="Chant of Elements">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- NOTE: skill desc says "increases the elemental attribute" but is client typo, it increase defense (see skill icon) -->
|
<!-- NOTE: skill desc says "increases the elemental attribute" but is client typo, it increase defense (see skill icon) -->
|
||||||
<set name="abnormalLvl" val="3" />
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="1200" />
|
<set name="abnormalTime" val="1200" />
|
||||||
<set name="abnormalType" val="MD_UP_ATTR" />
|
<set name="abnormalType" val="MD_UP_ATTR" />
|
||||||
<set name="affectRange" val="1000" />
|
<set name="affectRange" val="1000" />
|
||||||
@@ -1601,8 +1601,8 @@
|
|||||||
<set name="icon" val="icon.skill1549" />
|
<set name="icon" val="icon.skill1549" />
|
||||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="magicLvl" val="76" />
|
<set name="magicLvl" val="76" />
|
||||||
<set name="mpConsume" val="220" />
|
<set name="mpConsume" val="55" />
|
||||||
<set name="mpInitialConsume" val="55" />
|
<set name="mpInitialConsume" val="220" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="5000" />
|
<set name="reuseDelay" val="5000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
@@ -1617,7 +1617,7 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1550" levels="1" name="Mass Cure Poison">
|
<skill id="1550" levels="1" name="Mass Cure Poison">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="affectRange" val="1000" />
|
<set name="affectRange" val="1000" />
|
||||||
<set name="effectPoint" val="1000" />
|
<set name="effectPoint" val="1000" />
|
||||||
<set name="hitTime" val="4000" />
|
<set name="hitTime" val="4000" />
|
||||||
@@ -1637,7 +1637,7 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1551" levels="1" name="Mass Purify">
|
<skill id="1551" levels="1" name="Mass Purify">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="affectRange" val="1000" />
|
<set name="affectRange" val="1000" />
|
||||||
<set name="effectPoint" val="1000" />
|
<set name="effectPoint" val="1000" />
|
||||||
<set name="hitTime" val="3000" />
|
<set name="hitTime" val="3000" />
|
||||||
@@ -1652,31 +1652,31 @@
|
|||||||
<set name="targetType" val="PARTY" />
|
<set name="targetType" val="PARTY" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="DispelBySlot">
|
<effect name="DispelBySlot">
|
||||||
<param dispel="POISON,9;BLEEDING,9;PARALYZE,1;TURN_STONE,1" />
|
<param dispel="POISON,9;BLEEDING,9;PARALYZE,9;TURN_STONE,9" />
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1552" levels="1" name="Mass Vitalize">
|
<skill id="1552" levels="1" name="Mass Vitalize">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="affectRange" val="1000" />
|
<set name="affectRange" val="1000" />
|
||||||
<set name="effectPoint" val="1000" />
|
<set name="effectPoint" val="1000" />
|
||||||
<set name="hitTime" val="3000" />
|
<set name="hitTime" val="3000" />
|
||||||
<set name="icon" val="icon.skill1552" />
|
<set name="icon" val="icon.skill1552" />
|
||||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="magicLvl" val="76" />
|
<set name="magicLvl" val="76" />
|
||||||
<set name="mpConsume" val="155" />
|
<set name="mpConsume" val="38" />
|
||||||
<set name="mpInitialConsume" val="38" />
|
<set name="mpInitialConsume" val="155" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="reuseDelay" val="9000" />
|
<set name="reuseDelay" val="9000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
<set name="targetType" val="PARTY" />
|
<set name="targetType" val="PARTY" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="Heal">
|
|
||||||
<param power="796" />
|
|
||||||
</effect>
|
|
||||||
<effect name="DispelBySlot">
|
<effect name="DispelBySlot">
|
||||||
<param dispel="POISON,9;BLEEDING,9" />
|
<param dispel="POISON,9;BLEEDING,9" />
|
||||||
</effect>
|
</effect>
|
||||||
|
<effect name="Heal">
|
||||||
|
<param power="796" />
|
||||||
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1553" levels="1" name="Chain Heal">
|
<skill id="1553" levels="1" name="Chain Heal">
|
||||||
@@ -1705,10 +1705,10 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1554" levels="1" name="Aura Blast">
|
<skill id="1554" levels="1" name="Aura Blast">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="abnormalTime" val="3" />
|
<set name="abnormalTime" val="3" />
|
||||||
<set name="affectLimit" val="2-10" />
|
<set name="affectLimit" val="2-10" />
|
||||||
<set name="affectRange" val="100" /> <!-- FIXME: value unconfirmed -->
|
<set name="affectRange" val="200" />
|
||||||
<set name="castRange" val="900" />
|
<set name="castRange" val="900" />
|
||||||
<set name="effectPoint" val="-288" />
|
<set name="effectPoint" val="-288" />
|
||||||
<set name="effectRange" val="1400" />
|
<set name="effectRange" val="1400" />
|
||||||
@@ -1716,9 +1716,9 @@
|
|||||||
<set name="icon" val="icon.skill1554" />
|
<set name="icon" val="icon.skill1554" />
|
||||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="magicLvl" val="81" />
|
<set name="magicLvl" val="81" />
|
||||||
<set name="mpConsume" val="116" />
|
<set name="mpConsume" val="31" />
|
||||||
<set name="mpInitialConsume" val="29" />
|
<set name="mpInitialConsume" val="145" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="power" val="199" /> <!-- Inflicts additional non-attribute damage if the target is a monster -->
|
<set name="power" val="199" /> <!-- Inflicts additional non-attribute damage if the target is a monster -->
|
||||||
<set name="pvpPower" val="141" />
|
<set name="pvpPower" val="141" />
|
||||||
<set name="reuseDelay" val="15000" />
|
<set name="reuseDelay" val="15000" />
|
||||||
@@ -1727,24 +1727,19 @@
|
|||||||
<for>
|
<for>
|
||||||
<effect name="MagicalAttack" />
|
<effect name="MagicalAttack" />
|
||||||
</for>
|
</for>
|
||||||
<selfEffects>
|
|
||||||
<effect name="ManaHeal">
|
|
||||||
<param power="10" /> <!-- FIXME: value unconfirmed -->
|
|
||||||
</effect>
|
|
||||||
</selfEffects>
|
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1555" levels="1" name="Aura Cannon">
|
<skill id="1555" levels="1" name="Aura Cannon">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="castRange" val="150" />
|
<set name="castRange" val="150" />
|
||||||
<set name="effectPoint" val="-993" />
|
<set name="effectPoint" val="-993" />
|
||||||
<set name="effectRange" val="650" />
|
<set name="effectRange" val="600" />
|
||||||
<set name="hitTime" val="2000" />
|
<set name="hitTime" val="2000" />
|
||||||
<set name="icon" val="icon.skill1555" />
|
<set name="icon" val="icon.skill1555" />
|
||||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="magicLvl" val="82" />
|
<set name="magicLvl" val="82" />
|
||||||
<set name="mpConsume" val="99" />
|
<set name="mpConsume" val="27" />
|
||||||
<set name="mpInitialConsume" val="24" />
|
<set name="mpInitialConsume" val="123" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="power" val="302" /> <!-- Inflicts additional non-attribute damage if the target is a monster -->
|
<set name="power" val="302" /> <!-- Inflicts additional non-attribute damage if the target is a monster -->
|
||||||
<set name="pvpPower" val="178" />
|
<set name="pvpPower" val="178" />
|
||||||
<set name="reuseDelay" val="10000" />
|
<set name="reuseDelay" val="10000" />
|
||||||
@@ -1753,11 +1748,6 @@
|
|||||||
<for>
|
<for>
|
||||||
<effect name="MagicalAttack" />
|
<effect name="MagicalAttack" />
|
||||||
</for>
|
</for>
|
||||||
<selfEffects>
|
|
||||||
<effect name="ManaHeal">
|
|
||||||
<param power="10" /> <!-- FIXME: value unconfirmed -->
|
|
||||||
</effect>
|
|
||||||
</selfEffects>
|
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1556" levels="1" name="Arcane Shield">
|
<skill id="1556" levels="1" name="Arcane Shield">
|
||||||
<!-- High Five Skill -->
|
<!-- High Five Skill -->
|
||||||
@@ -1781,7 +1771,7 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1557" levels="1" name="Servitor Share">
|
<skill id="1557" levels="1" name="Servitor Share">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="abnormalLvl" val="1" />
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="1200" />
|
<set name="abnormalTime" val="1200" />
|
||||||
<set name="abnormalType" val="SUMMON_CONDITION" />
|
<set name="abnormalType" val="SUMMON_CONDITION" />
|
||||||
@@ -1818,10 +1808,11 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1558" levels="24" name="Dimension Spiral">
|
<skill id="1558" levels="24" name="Dimension Spiral">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 40 44 48 52 56 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
<table name="#magicLvl"> 40 44 48 52 56 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
||||||
<table name="#mpConsume"> 38 43 47 50 53 55 57 59 60 63 64 67 74 83 92 99 100 106 109 115 118 119 125 134 </table>
|
<table name="#mpConsume"> 31 35 38 40 43 44 46 48 48 51 52 54 60 67 74 80 80 85 88 92 95 96 100 108 </table>
|
||||||
<table name="#power"> 57 58 60 61 63 66 68 71 74 77 79 82 89 94 100 104 110 115 139 152 166 179 193 207 </table>
|
<table name="#mpInitialConsume"> 7 8 9 10 10 11 11 11 12 12 12 13 14 16 18 19 20 21 21 23 23 23 25 26 </table>
|
||||||
|
<table name="#power"> 57 58 60 61 63 66 68 71 74 77 79 82 89 94 100 104 110 115 136 152 166 179 193 207 </table>
|
||||||
<table name="#pvpPower"> 57 58 60 61 63 66 68 71 74 77 79 82 84 87 89 90 91 92 93 94 95 96 97 98 </table>
|
<table name="#pvpPower"> 57 58 60 61 63 66 68 71 74 77 79 82 84 87 89 90 91 92 93 94 95 96 97 98 </table>
|
||||||
<set name="castRange" val="900" />
|
<set name="castRange" val="900" />
|
||||||
<set name="effectPoint" val="-993" />
|
<set name="effectPoint" val="-993" />
|
||||||
@@ -1831,7 +1822,8 @@
|
|||||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="mpConsume" val="#mpConsume" />
|
<set name="mpConsume" val="#mpConsume" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="mpInitialConsume" val="#mpInitialConsume" />
|
||||||
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="overHit" val="true" />
|
<set name="overHit" val="true" />
|
||||||
<set name="power" val="#power" /> <!-- Inflicts additional non-attribute damage if the target is a monster -->
|
<set name="power" val="#power" /> <!-- Inflicts additional non-attribute damage if the target is a monster -->
|
||||||
<set name="pvpPower" val="#pvpPower" />
|
<set name="pvpPower" val="#pvpPower" />
|
||||||
@@ -1840,18 +1832,12 @@
|
|||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="MagicalAttack" />
|
<effect name="MagicalAttack" />
|
||||||
<effect name="TriggerSkillBySkill">
|
|
||||||
<param castSkillId="1558" /> <!-- Dimension Spiral -->
|
|
||||||
<param chance="5" />
|
|
||||||
<param skillId="5571" skillLevel="1" /> <!-- Mutual Response -->
|
|
||||||
<param targetType="SUMMON" />
|
|
||||||
</effect>
|
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1559" levels="3" name="Potential Ability">
|
<skill id="1559" levels="3" name="Potential Ability">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#cAtkAdd"> 177 295 384 </table>
|
<table name="#cAtkAdd"> 117 295 384 </table>
|
||||||
<table name="#magicLvl"> 28 40 49 </table>
|
<table name="#magicLvl"> 28 40 58 </table>
|
||||||
<table name="#rCrit"> 1.2 1.3 1.4 </table>
|
<table name="#rCrit"> 1.2 1.3 1.4 </table>
|
||||||
<set name="icon" val="icon.skill1559" />
|
<set name="icon" val="icon.skill1559" />
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
@@ -1860,26 +1846,23 @@
|
|||||||
<for>
|
<for>
|
||||||
<effect name="Buff">
|
<effect name="Buff">
|
||||||
<mul stat="critRate" val="#rCrit">
|
<mul stat="critRate" val="#rCrit">
|
||||||
<using kind="DAGGER,DUALDAGGER,LIGHT" />
|
<using kind="DAGGER,DUALDAGGER" />
|
||||||
</mul>
|
</mul>
|
||||||
<add stat="critDmgAdd" val="#cAtkAdd">
|
<add stat="critDmgAdd" val="#cAtkAdd">
|
||||||
<using kind="DAGGER,DUALDAGGER,LIGHT" />
|
<using kind="DAGGER,DUALDAGGER" />
|
||||||
</add>
|
</add>
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1560" levels="1" name="Lucky Blow">
|
<skill id="1560" levels="1" name="Lucky Blow">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="baseCritRate" val="30" />
|
<set name="baseCritRate" val="10" />
|
||||||
<set name="blowChance" val="60" />
|
<set name="blowChance" val="30" />
|
||||||
<set name="castRange" val="40" />
|
<set name="castRange" val="40" />
|
||||||
<set name="coolTime" val="720" />
|
|
||||||
<set name="effectPoint" val="-337" />
|
<set name="effectPoint" val="-337" />
|
||||||
<set name="effectRange" val="400" />
|
<set name="effectRange" val="400" />
|
||||||
<set name="halfKillRate" val="8" />
|
|
||||||
<set name="hitTime" val="1800" />
|
<set name="hitTime" val="1800" />
|
||||||
<set name="icon" val="icon.skill1560" />
|
<set name="icon" val="icon.skill1560" />
|
||||||
<set name="lethalStrikeRate" val="1" /> <!-- FIXME: unconfirmed -->
|
|
||||||
<set name="magicLvl" val="83" />
|
<set name="magicLvl" val="83" />
|
||||||
<set name="mpConsume" val="82" />
|
<set name="mpConsume" val="82" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
@@ -1895,18 +1878,22 @@
|
|||||||
</cond>
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="FatalBlow" />
|
<effect name="FatalBlow" />
|
||||||
|
<effect name="Lethal">
|
||||||
|
<param halfLethal="10" />
|
||||||
|
<param fullLethal="5" />
|
||||||
|
</effect>
|
||||||
<effect name="Spoil" />
|
<effect name="Spoil" />
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1561" levels="5" name="Battle Cry">
|
<skill id="1561" levels="5" name="Battle Cry">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#abnormalLvls"> 2 3 4 5 6 </table>
|
<table name="#abnormalLvls"> 1 2 3 4 5 </table>
|
||||||
<table name="#MaxHp"> 15 20 25 30 35 </table>
|
<table name="#MaxHp"> 15 20 25 30 35 </table>
|
||||||
<table name="#magicLvl"> 40 49 58 64 70 </table>
|
<table name="#magicLvl"> 40 49 58 64 70 </table>
|
||||||
<table name="#mpConsume"> 18 22 27 30 33 </table>
|
<table name="#mpConsume"> 18 22 27 30 33 </table>
|
||||||
<set name="abnormalLvl" val="#abnormalLvls" />
|
<set name="abnormalLvl" val="#abnormalLvls" />
|
||||||
<set name="abnormalTime" val="600" />
|
<set name="abnormalTime" val="600" />
|
||||||
<set name="abnormalType" val="MAX_HP_UP" />
|
<set name="abnormalType" val="MAX_HP_CP_UP" />
|
||||||
<set name="effectPoint" val="268" />
|
<set name="effectPoint" val="268" />
|
||||||
<set name="hitTime" val="1500" />
|
<set name="hitTime" val="1500" />
|
||||||
<set name="icon" val="icon.skill1561" />
|
<set name="icon" val="icon.skill1561" />
|
||||||
@@ -1925,17 +1912,15 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1562" levels="2" name="Chant of Berserker">
|
<skill id="1562" levels="2" name="Chant of Berserker">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#abnormalLvls"> 1 2 </table>
|
<table name="#abnormalLvls"> 1 2 </table>
|
||||||
|
<table name="#amount"> 1.05 1.08 </table>
|
||||||
<table name="#effectPoints"> 549 611 </table>
|
<table name="#effectPoints"> 549 611 </table>
|
||||||
<table name="#magicLvl"> 44 52 </table>
|
<table name="#magicLvl"> 44 52 </table>
|
||||||
<table name="#mAtk"> 1.1 1.16 </table>
|
<table name="#mAtk"> 1.1 1.16 </table>
|
||||||
<table name="#mAtkSpd"> 1.05 1.08 </table>
|
|
||||||
<table name="#mDef"> 0.9 0.84 </table>
|
<table name="#mDef"> 0.9 0.84 </table>
|
||||||
<table name="#mpConsume"> 124 151 </table>
|
<table name="#mpConsume"> 154 188 </table>
|
||||||
<table name="#mpInitialConsume"> 30 37 </table>
|
<table name="#mpInitialConsume"> 8 41 </table>
|
||||||
<table name="#pAtk"> 1.05 1.08 </table>
|
|
||||||
<table name="#pAtkSpd"> 1.05 1.08 </table>
|
|
||||||
<table name="#pDef"> 0.95 0.92 </table>
|
<table name="#pDef"> 0.95 0.92 </table>
|
||||||
<table name="#rEvas"> 2 4 </table>
|
<table name="#rEvas"> 2 4 </table>
|
||||||
<table name="#runSpd"> 5 8 </table>
|
<table name="#runSpd"> 5 8 </table>
|
||||||
@@ -1959,27 +1944,27 @@
|
|||||||
<mul stat="pDef" val="#pDef" />
|
<mul stat="pDef" val="#pDef" />
|
||||||
<mul stat="mDef" val="#mDef" />
|
<mul stat="mDef" val="#mDef" />
|
||||||
<sub stat="rEvas" val="#rEvas" />
|
<sub stat="rEvas" val="#rEvas" />
|
||||||
<mul stat="pAtk" val="#pAtk" />
|
<mul stat="pAtk" val="#amount" />
|
||||||
<mul stat="mAtk" val="#mAtk" />
|
<mul stat="mAtk" val="#mAtk" />
|
||||||
<mul stat="pAtkSpd" val="#pAtkSpd" />
|
<mul stat="pAtkSpd" val="#amount" />
|
||||||
<mul stat="mAtkSpd" val="#mAtkSpd" />
|
<mul stat="mAtkSpd" val="#amount" />
|
||||||
<add stat="runSpd" val="#runSpd" />
|
<add stat="runSpd" val="#runSpd" />
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1563" levels="2" name="Fury of Pa'agrio">
|
<skill id="1563" levels="2" name="Fury of Pa'agrio">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#abnormalLvls"> 1 2 </table>
|
<table name="#abnormalLvls"> 1 2 </table>
|
||||||
<table name="#effectPoints"> 379 457 </table>
|
<table name="#effectPoints"> 379 457 </table>
|
||||||
<table name="#magicLvl"> 48 56 </table>
|
<table name="#magicLvl"> 48 56 </table>
|
||||||
<table name="#mpConsume"> 138 164 </table>
|
<table name="#mpConsume"> 172 204 </table>
|
||||||
<table name="#mpInitialConsume"> 34 40 </table>
|
<table name="#mpInitialConsume"> 28 35 </table>
|
||||||
<table name="#pAtkSpd"> 1.15 1.33 </table>
|
<table name="#pAtkSpd"> 1.15 1.33 </table>
|
||||||
<set name="abnormalLvl" val="#abnormalLvls" />
|
<set name="abnormalLvl" val="#abnormalLvls" />
|
||||||
<set name="abnormalTime" val="1200" />
|
<set name="abnormalTime" val="1200" />
|
||||||
<set name="abnormalType" val="ATTACK_TIME_DOWN" />
|
<set name="abnormalType" val="ATTACK_TIME_DOWN" />
|
||||||
<set name="affectLimit" val="50-50" />
|
<set name="affectLimit" val="50-50" />
|
||||||
<set name="affectRange" val="900" />
|
<set name="affectRange" val="1000" />
|
||||||
<set name="effectPoint" val="#effectPoints" />
|
<set name="effectPoint" val="#effectPoints" />
|
||||||
<set name="hitTime" val="2500" />
|
<set name="hitTime" val="2500" />
|
||||||
<set name="icon" val="icon.skill1563" />
|
<set name="icon" val="icon.skill1563" />
|
||||||
@@ -2007,14 +1992,14 @@
|
|||||||
<effect name="TriggerSkillByDamage">
|
<effect name="TriggerSkillByDamage">
|
||||||
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="99" />
|
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="99" />
|
||||||
<param minDamage="1" />
|
<param minDamage="1" />
|
||||||
<param chance="5" />
|
<param chance="50" />
|
||||||
<param skillId="6921" skillLevel="1" /> <!-- Penetration Attack -->
|
<param skillId="6921" skillLevel="1" /> <!-- Penetration Attack -->
|
||||||
<param targetType="ONE" />
|
<param targetType="ONE" />
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1565" levels="6" name="Mana Pump" enchantGroup1="1">
|
<skill id="1565" levels="6" name="Mana Pump" enchantGroup1="1">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 40 49 58 64 68 72 </table>
|
<table name="#magicLvl"> 40 49 58 64 68 72 </table>
|
||||||
<table name="#maxMp"> 70 100 140 150 180 200 </table>
|
<table name="#maxMp"> 70 100 140 150 180 200 </table>
|
||||||
<table name="#ench1maxMp"> 203 206 210 213 216 220 223 226 230 233 236 240 243 246 250 253 256 260 263 266 270 273 276 280 283 286 290 293 296 300 </table>
|
<table name="#ench1maxMp"> 203 206 210 213 216 220 223 226 230 233 236 240 243 246 250 253 256 260 263 266 270 273 276 280 283 286 290 293 296 300 </table>
|
||||||
|
|||||||
@@ -556,34 +556,35 @@
|
|||||||
<set name="targetType" val="NONE" />
|
<set name="targetType" val="NONE" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6743" levels="1" name="Dark Wound">
|
<skill id="6743" levels="1" name="Dark Wound">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
<set name="abnormalLvl" val="3" />
|
||||||
<set name="abnormalLvl" val="1" />
|
|
||||||
<set name="abnormalTime" val="20" />
|
<set name="abnormalTime" val="20" />
|
||||||
<set name="abnormalType" val="BLEEDING" />
|
<set name="abnormalType" val="BLEEDING" />
|
||||||
<set name="abnormalVisualEffect" val="DOT_BLEEDING" />
|
<set name="abnormalVisualEffect" val="DOT_BLEEDING" />
|
||||||
<set name="activateRate" val="100" />
|
<set name="activateRate" val="100" />
|
||||||
<set name="basicProperty" val="CON" />
|
<set name="basicProperty" val="CON" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
<set name="castRange" val="1500" />
|
<set name="castRange" val="400" />
|
||||||
|
<set name="coolTime" val="300" />
|
||||||
<set name="effectPoint" val="-100" />
|
<set name="effectPoint" val="-100" />
|
||||||
<set name="effectRange" val="2000" />
|
<set name="effectRange" val="900" />
|
||||||
|
<set name="element" val="5" /> <!-- Dark -->
|
||||||
|
<set name="elementPower" val="30" />
|
||||||
<set name="hitTime" val="2000" />
|
<set name="hitTime" val="2000" />
|
||||||
<set name="icon" val="icon.skill0096" />
|
<set name="icon" val="icon.skill0096" />
|
||||||
<set name="isDebuff" val="true" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="lvlBonusRate" val="1" />
|
<set name="lvlBonusRate" val="2" />
|
||||||
<set name="magicLvl" val="85" />
|
<set name="magicLvl" val="83" />
|
||||||
<set name="mpConsume" val="25" />
|
<set name="mpConsume" val="34" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="5000" />
|
<set name="reuseDelay" val="10000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<set name="trait" val="BLEED" />
|
<set name="trait" val="BLEED" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="DamOverTime" ticks="1">
|
<effect name="DamOverTime" ticks="7">
|
||||||
<param power="200" />
|
<param power="200" />
|
||||||
<sub stat="darkRes" val="60" />
|
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
|
|||||||
@@ -237,14 +237,13 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6813" levels="8" name="Sonic Focus">
|
<skill id="6813" levels="8" name="Sonic Focus">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 40 43 49 55 60 66 70 79 </table>
|
<table name="#magicLvl"> 40 43 49 55 60 66 70 79 </table>
|
||||||
<table name="#maxCharges"> 1 2 3 4 5 6 7 8 </table>
|
<table name="#maxCharges"> 1 2 3 4 5 6 7 8 </table>
|
||||||
<set name="blockedInOlympiad" val="true" />
|
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="reuseDelay" val="10000" /> <!-- FIXME: value unconfirmed -->
|
<set name="reuseDelay" val="10000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
<cond msgId="324">
|
<cond msgId="324">
|
||||||
@@ -259,13 +258,13 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6814" levels="8" name="Focus Force">
|
<skill id="6814" levels="8" name="Focus Force">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 24 32 40 52 60 66 72 79 </table>
|
<table name="#magicLvl"> 24 32 40 52 60 66 72 79 </table>
|
||||||
<table name="#maxCharges"> 1 2 3 4 5 6 7 8 </table>
|
<table name="#maxCharges"> 1 2 3 4 5 6 7 8 </table>
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="reuseDelay" val="10000" /> <!-- FIXME: value unconfirmed -->
|
<set name="reuseDelay" val="10000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
<cond msgId="324">
|
<cond msgId="324">
|
||||||
@@ -1332,31 +1331,35 @@
|
|||||||
<set name="targetType" val="NONE" />
|
<set name="targetType" val="NONE" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6885" levels="3" name="Morale Boost">
|
<skill id="6885" levels="3" name="Morale Boost">
|
||||||
<!-- "The persistence of the brave who fight together in Dragon Valley receive resistance to Paralysis/Bleed/Poison/Stun +90, Critical Rate +50%, Critical Damage +15%, P. Atk. +15%, M. Atk. +15%, Atk. Spd. +15%, Casting Spd. +15%, and EXP bonus +20%." -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- High Five Skill -->
|
<table name="#abnormalLvl"> 2 3 4 </table>
|
||||||
<table name="#bonusExp"> 1 1 1.2 </table>
|
<table name="#critDmg"> 1.1 1.15 1.2 </table>
|
||||||
<table name="#cAtk"> 1.1 1.15 1.15 </table>
|
|
||||||
<table name="#pmAtk"> 1 1.15 1.15 </table>
|
<table name="#pmAtk"> 1 1.15 1.15 </table>
|
||||||
<table name="#pmAtkSpd"> 1 1 1.15 </table>
|
<table name="#pmAtkSpd"> 1 1 1.15 </table>
|
||||||
<table name="#rCrit"> 1.1 1.3 1.5 </table>
|
<table name="#critRate"> 1.1 1.3 1.5 </table>
|
||||||
<table name="#traits"> 50 80 90 </table>
|
<table name="#traits"> 50 80 90 </table>
|
||||||
|
<set name="abnormalLvl" val="#abnormalLvl" />
|
||||||
<set name="abnormalTime" val="60" />
|
<set name="abnormalTime" val="60" />
|
||||||
|
<set name="abnormalType" val="DRAGON_BUFF" />
|
||||||
|
<set name="affectRange" val="1000" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
|
<set name="castRange" val="1500" />
|
||||||
<set name="effectPoint" val="100" />
|
<set name="effectPoint" val="100" />
|
||||||
|
<set name="effectRange" val="1800" />
|
||||||
<set name="icon" val="icon.skill6885" />
|
<set name="icon" val="icon.skill6885" />
|
||||||
<set name="magicLvl" val="85" />
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
|
<set name="magicLvl" val="-1" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="PARTY" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="Buff">
|
<effect name="Buff">
|
||||||
<mul stat="critRate" val="#rCrit" />
|
<mul stat="critRate" val="#critRate" />
|
||||||
<mul stat="critDmg" val="#cAtk" />
|
<mul stat="critDmg" val="#critDmg" />
|
||||||
<mul stat="pAtk" val="#pmAtk" />
|
<mul stat="pAtk" val="#pmAtk" />
|
||||||
<mul stat="mAtk" val="#pmAtk" />
|
<mul stat="mAtk" val="#pmAtk" />
|
||||||
<mul stat="mAtkSpd" val="#pmAtkSpd" />
|
<mul stat="mAtkSpd" val="#pmAtkSpd" />
|
||||||
<mul stat="pAtkSpd" val="#pmAtkSpd" />
|
<mul stat="pAtkSpd" val="#pmAtkSpd" />
|
||||||
<mul stat="bonusExp" val="#bonusExp" />
|
|
||||||
</effect>
|
</effect>
|
||||||
<effect name="DefenceTrait">
|
<effect name="DefenceTrait">
|
||||||
<param PARALYZE="#traits" />
|
<param PARALYZE="#traits" />
|
||||||
|
|||||||
@@ -90,14 +90,17 @@
|
|||||||
<set name="targetType" val="NONE" />
|
<set name="targetType" val="NONE" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6913" levels="1" name="Challenge of Faith">
|
<skill id="6913" levels="1" name="Challenge of Faith">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="abnormalLvl" val="1" />
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="15" />
|
<set name="abnormalTime" val="15" />
|
||||||
|
<set name="abnormalType" val="SUB_TRIGGER_DEFENCE" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
<set name="icon" val="icon.skill0985" />
|
<set name="icon" val="icon.skill0985" />
|
||||||
|
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="magicLvl" val="83" />
|
<set name="magicLvl" val="83" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
|
<set name="reuseDelay" val="45000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
<for>
|
<for>
|
||||||
@@ -138,21 +141,25 @@
|
|||||||
<set name="targetType" val="NONE" />
|
<set name="targetType" val="NONE" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6920" levels="1" name="Collector's Fortune">
|
<skill id="6920" levels="1" name="Collector's Fortune">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- Triggered Skill for Collector's Experience -->
|
<!-- Triggered Skill for Collector's Experience -->
|
||||||
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="10" />
|
<set name="abnormalTime" val="10" />
|
||||||
|
<set name="abnormalType" val="MULTI_BUFF_A" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
<set name="icon" val="BranchSys2.icon.skill0952" />
|
<set name="icon" val="BranchSys2.icon.skill0952" />
|
||||||
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="magicLvl" val="74" />
|
<set name="magicLvl" val="74" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="15000" /> <!-- FIXME: value unconfirmed -->
|
<set name="reuseDelay" val="15000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
|
<set name="staticReuse" val="true" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="Buff">
|
<effect name="Buff">
|
||||||
<mul stat="pAtk" val="1.15" />
|
<mul stat="pAtk" val="1.15" />
|
||||||
<mul stat="critRate" val="1.1" />
|
<mul stat="critRate" val="1.15" />
|
||||||
<mul stat="critDmg" val="1.1" />
|
<mul stat="critDmg" val="1.1" />
|
||||||
<mul stat="pAtkSpd" val="1.03" />
|
<mul stat="pAtkSpd" val="1.03" />
|
||||||
<add stat="runSpd" val="5" />
|
<add stat="runSpd" val="5" />
|
||||||
@@ -160,15 +167,32 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6921" levels="1" name="Penetrating Attack">
|
<skill id="6921" levels="1" name="Penetrating Attack">
|
||||||
<!-- P. Def. is decreased momentarily. -->
|
<!-- Confirmed High Five -->
|
||||||
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="30" />
|
<set name="abnormalTime" val="30" />
|
||||||
|
<set name="abnormalType" val="PD_DOWN" />
|
||||||
<set name="activateRate" val="80" />
|
<set name="activateRate" val="80" />
|
||||||
<set name="basicProperty" val="CON" />
|
<set name="basicProperty" val="CON" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
|
<set name="castRange" val="40" />
|
||||||
<set name="effectPoint" val="-671" />
|
<set name="effectPoint" val="-671" />
|
||||||
|
<set name="effectRange" val="400" />
|
||||||
|
<set name="hitTime" val="1500" />
|
||||||
<set name="icon" val="icon.skill0122" />
|
<set name="icon" val="icon.skill0122" />
|
||||||
<set name="operateType" val="PASSIVE" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="targetType" val="NONE" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
|
<set name="lvlBonusRate" val="2" />
|
||||||
|
<set name="mpConsume" val="43" />
|
||||||
|
<set name="nextActionAttack" val="true" />
|
||||||
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
|
<set name="reuseDelay" val="30000" />
|
||||||
|
<set name="rideState" val="NONE" />
|
||||||
|
<set name="targetType" val="ONE" />
|
||||||
|
<for>
|
||||||
|
<effect name="Debuff">
|
||||||
|
<mul stat="pDef" val="0.77" />
|
||||||
|
</effect>
|
||||||
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6922" levels="3" name="Adventurer's Might">
|
<skill id="6922" levels="3" name="Adventurer's Might">
|
||||||
<!-- AUTO GENERATED SKILL -->
|
<!-- AUTO GENERATED SKILL -->
|
||||||
|
|||||||
@@ -73,8 +73,10 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="20006" levels="1" name="Soul Roar">
|
<skill id="20006" levels="1" name="Soul Roar">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="600" />
|
<set name="abnormalTime" val="600" />
|
||||||
|
<set name="abnormalType" val="MULTI_DEBUFF_G" />
|
||||||
<set name="effectPoint" val="611" />
|
<set name="effectPoint" val="611" />
|
||||||
<set name="hitTime" val="1500" />
|
<set name="hitTime" val="1500" />
|
||||||
<set name="icon" val="BranchSys2.icon.skill20006" />
|
<set name="icon" val="BranchSys2.icon.skill20006" />
|
||||||
|
|||||||
@@ -513,6 +513,7 @@
|
|||||||
<set name="hitTime" val="20000" />
|
<set name="hitTime" val="20000" />
|
||||||
<set name="icon" val="BranchSys2.Icon.br_zaken_cloak_i00" />
|
<set name="icon" val="BranchSys2.Icon.br_zaken_cloak_i00" />
|
||||||
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
||||||
|
<set name="magicLvl" val="1" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="reuseDelay" val="1800000" />
|
<set name="reuseDelay" val="1800000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
@@ -527,7 +528,7 @@
|
|||||||
</cond>
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="Teleport">
|
<effect name="Teleport">
|
||||||
<param x="52195" y="218787" z="-3231" />
|
<param x="52201" y="218801" z="-3224" />
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
@@ -561,6 +562,7 @@
|
|||||||
<set name="hitTime" val="20000" />
|
<set name="hitTime" val="20000" />
|
||||||
<set name="icon" val="BranchSys2.Icon.br_frintessa_cloak_i00" />
|
<set name="icon" val="BranchSys2.Icon.br_frintessa_cloak_i00" />
|
||||||
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
||||||
|
<set name="magicLvl" val="1" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="reuseDelay" val="1800000" />
|
<set name="reuseDelay" val="1800000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
@@ -575,7 +577,7 @@
|
|||||||
</cond>
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="Teleport">
|
<effect name="Teleport">
|
||||||
<param x="181378" y="-80915" z="-2731" />
|
<param x="181384" y="-80856" z="-2728" />
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
@@ -657,15 +659,15 @@
|
|||||||
<set name="targetType" val="NONE" />
|
<set name="targetType" val="NONE" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="21252" levels="1" name="Hellblade">
|
<skill id="21252" levels="1" name="Hellblade">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
|
||||||
<set name="icon" val="BranchSys2.icon.br_wp_Caladbulg_i00" />
|
<set name="icon" val="BranchSys2.icon.br_wp_Caladbulg_i00" />
|
||||||
|
<set name="magicLvl" val="84" />
|
||||||
<set name="operateType" val="PASSIVE" />
|
<set name="operateType" val="PASSIVE" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="TriggerSkillByAttack">
|
<effect name="TriggerSkillByAttack">
|
||||||
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
||||||
<param isCritical="false" />
|
<param isCritical="false" />
|
||||||
<param minDamage="1" chance="3" />
|
<param minDamage="1" chance="15" />
|
||||||
<param skillId="23319" skillLevel="1" /> <!-- Blood Seeker -->
|
<param skillId="23319" skillLevel="1" /> <!-- Blood Seeker -->
|
||||||
<param targetType="ONE" />
|
<param targetType="ONE" />
|
||||||
<param allowWeapons="ALL" />
|
<param allowWeapons="ALL" />
|
||||||
@@ -673,15 +675,15 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="21253" levels="1" name="Butcher Blades">
|
<skill id="21253" levels="1" name="Butcher Blades">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
|
||||||
<set name="icon" val="BranchSys2.icon.br_wp_habus_knife_i00" />
|
<set name="icon" val="BranchSys2.icon.br_wp_habus_knife_i00" />
|
||||||
|
<set name="magicLvl" val="84" />
|
||||||
<set name="operateType" val="PASSIVE" />
|
<set name="operateType" val="PASSIVE" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="TriggerSkillByAttack">
|
<effect name="TriggerSkillByAttack">
|
||||||
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
||||||
<param isCritical="false" />
|
<param isCritical="false" />
|
||||||
<param minDamage="1" chance="3" />
|
<param minDamage="1" chance="15" />
|
||||||
<param skillId="23320" skillLevel="1" /> <!-- Greedy Throat -->
|
<param skillId="23320" skillLevel="1" /> <!-- Greedy Throat -->
|
||||||
<param targetType="ONE" />
|
<param targetType="ONE" />
|
||||||
<param allowWeapons="ALL" />
|
<param allowWeapons="ALL" />
|
||||||
@@ -689,15 +691,15 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="21254" levels="1" name="Claw of Destruction">
|
<skill id="21254" levels="1" name="Claw of Destruction">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
|
||||||
<set name="icon" val="BranchSys2.icon.br_wp_tiatenon_i00" />
|
<set name="icon" val="BranchSys2.icon.br_wp_tiatenon_i00" />
|
||||||
|
<set name="magicLvl" val="84" />
|
||||||
<set name="operateType" val="PASSIVE" />
|
<set name="operateType" val="PASSIVE" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="TriggerSkillByAttack">
|
<effect name="TriggerSkillByAttack">
|
||||||
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
<param attackerType="L2Playable" minAttackerLevel="1" maxAttackerLevel="100" />
|
||||||
<param isCritical="false" />
|
<param isCritical="false" />
|
||||||
<param minDamage="1" chance="3" />
|
<param minDamage="1" chance="15" />
|
||||||
<param skillId="23321" skillLevel="1" /> <!-- Draconic Evolver -->
|
<param skillId="23321" skillLevel="1" /> <!-- Draconic Evolver -->
|
||||||
<param targetType="ONE" />
|
<param targetType="ONE" />
|
||||||
<param allowWeapons="ALL" />
|
<param allowWeapons="ALL" />
|
||||||
@@ -705,47 +707,47 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="21255" levels="1" name="Blades of Delusion">
|
<skill id="21255" levels="1" name="Blades of Delusion">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
|
||||||
<set name="icon" val="BranchSys2.icon.br_wp_astarot_i00" />
|
<set name="icon" val="BranchSys2.icon.br_wp_astarot_i00" />
|
||||||
|
<set name="magicLvl" val="84" />
|
||||||
<set name="operateType" val="PASSIVE" />
|
<set name="operateType" val="PASSIVE" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="TriggerSkillByAttack">
|
<effect name="TriggerSkillByAttack">
|
||||||
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
||||||
<param isCritical="false" />
|
<param isCritical="false" />
|
||||||
<param minDamage="1" chance="3" />
|
<param minDamage="1" chance="15" />
|
||||||
<param skillId="23322" skillLevel="10" /> <!-- Demonic Desire -->
|
<param skillId="23322" skillLevel="1" /> <!-- Demonic Desire -->
|
||||||
<param targetType="ONE" />
|
<param targetType="ONE" />
|
||||||
<param allowWeapons="ALL" />
|
<param allowWeapons="ALL" />
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="21256" levels="1" name="Blood Brother">
|
<skill id="21256" levels="1" name="Blood Brother">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
|
||||||
<set name="icon" val="BranchSys2.icon.br_wp_tirbing_i00" />
|
<set name="icon" val="BranchSys2.icon.br_wp_tirbing_i00" />
|
||||||
|
<set name="magicLvl" val="84" />
|
||||||
<set name="operateType" val="PASSIVE" />
|
<set name="operateType" val="PASSIVE" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="TriggerSkillByAttack">
|
<effect name="TriggerSkillByAttack">
|
||||||
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
||||||
<param isCritical="false" />
|
<param isCritical="false" />
|
||||||
<param minDamage="1" chance="3" />
|
<param minDamage="1" chance="15" />
|
||||||
<param skillId="23323" skillLevel="10" /> <!-- Fury of Darkness -->
|
<param skillId="23323" skillLevel="1" /> <!-- Fury of Darkness -->
|
||||||
<param targetType="ONE" />
|
<param targetType="ONE" />
|
||||||
<param allowWeapons="ALL" />
|
<param allowWeapons="ALL" />
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="21257" levels="1" name="Mardil">
|
<skill id="21257" levels="1" name="Mardil">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
|
||||||
<set name="icon" val="BranchSys2.icon.br_wp_wind_of_mardil_i00" />
|
<set name="icon" val="BranchSys2.icon.br_wp_wind_of_mardil_i00" />
|
||||||
|
<set name="magicLvl" val="84" />
|
||||||
<set name="operateType" val="PASSIVE" />
|
<set name="operateType" val="PASSIVE" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="TriggerSkillByDamage">
|
<effect name="TriggerSkillByDamage">
|
||||||
<param attackerType="L2Playable" minAttackerLevel="1" maxAttackerLevel="100" />
|
<param attackerType="L2Playable" minAttackerLevel="1" maxAttackerLevel="99" />
|
||||||
<param minDamage="1" />
|
<param minDamage="100" />
|
||||||
<param chance="3" />
|
<param chance="30" />
|
||||||
<param skillId="23324" skillLevel="1" /> <!-- Jet Black Typhoon -->
|
<param skillId="23324" skillLevel="1" /> <!-- Jet Black Typhoon -->
|
||||||
<param targetType="SELF" />
|
<param targetType="SELF" />
|
||||||
</effect>
|
</effect>
|
||||||
|
|||||||
112
trunk/dist/game/data/stats/skills/23300-23399.xml
vendored
112
trunk/dist/game/data/stats/skills/23300-23399.xml
vendored
@@ -150,82 +150,80 @@
|
|||||||
<set name="targetType" val="NONE" />
|
<set name="targetType" val="NONE" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="23319" levels="1" name="Blood Seeker">
|
<skill id="23319" levels="1" name="Blood Seeker">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
<set name="abnormalLvl" val="7" />
|
||||||
<set name="abnormalLvl" val="8" />
|
|
||||||
<set name="abnormalTime" val="60" />
|
<set name="abnormalTime" val="60" />
|
||||||
<set name="abnormalType" val="BLEEDING" />
|
<set name="abnormalType" val="BLEEDING" />
|
||||||
<set name="abnormalVisualEffect" val="DOT_BLEEDING" />
|
|
||||||
<set name="activateRate" val="80" />
|
<set name="activateRate" val="80" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
<set name="castRange" val="80" />
|
<set name="castRange" val="40" />
|
||||||
<set name="effectRange" val="400" />
|
<set name="effectRange" val="400" />
|
||||||
|
<set name="hitTime" val="1500" />
|
||||||
<set name="icon" val="BranchSys2.icon.br_wp_Caladbulg_i00" />
|
<set name="icon" val="BranchSys2.icon.br_wp_Caladbulg_i00" />
|
||||||
<set name="isDebuff" val="true" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="lvlBonusRate" val="1" />
|
<set name="lvlBonusRate" val="2" />
|
||||||
<set name="magicLvl" val="85" />
|
<set name="magicLvl" val="84" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
|
<set name="power" val="5000" />
|
||||||
<set name="reuseDelay" val="10000" />
|
<set name="reuseDelay" val="10000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<set name="trait" val="BLEED" />
|
|
||||||
<for>
|
<for>
|
||||||
|
<effect name="PhysicalAttack" />
|
||||||
<effect name="DamOverTime" ticks="5">
|
<effect name="DamOverTime" ticks="5">
|
||||||
<param power="170" />
|
<param power="105" />
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="23320" levels="1" name="Greedy Throat">
|
<skill id="23320" levels="1" name="Greedy Throat">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
<set name="abnormalLvl" val="7" />
|
||||||
<set name="abnormalLvl" val="8" />
|
|
||||||
<set name="abnormalTime" val="60" />
|
<set name="abnormalTime" val="60" />
|
||||||
<set name="abnormalType" val="BLEEDING" />
|
<set name="abnormalType" val="BLEEDING" />
|
||||||
<set name="abnormalVisualEffect" val="DOT_BLEEDING" />
|
|
||||||
<set name="activateRate" val="80" />
|
<set name="activateRate" val="80" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
<set name="castRange" val="80" />
|
<set name="castRange" val="40" />
|
||||||
<set name="effectRange" val="400" />
|
<set name="effectRange" val="400" />
|
||||||
|
<set name="hitTime" val="1500" />
|
||||||
<set name="icon" val="BranchSys2.icon.br_wp_habus_knife_i00" />
|
<set name="icon" val="BranchSys2.icon.br_wp_habus_knife_i00" />
|
||||||
<set name="isDebuff" val="true" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="lvlBonusRate" val="1" />
|
<set name="lvlBonusRate" val="1" />
|
||||||
<set name="magicLvl" val="80" />
|
<set name="magicLvl" val="84" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="10000" />
|
<set name="reuseDelay" val="10000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<set name="trait" val="BLEED" />
|
|
||||||
<for>
|
<for>
|
||||||
<effect name="DamOverTime" ticks="5">
|
<effect name="DamOverTime" ticks="5">
|
||||||
<param power="230" />
|
<param power="88" />
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="23321" levels="1" name="Draconic Evolver">
|
<skill id="23321" levels="1" name="Draconic Evolver">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
<set name="abnormalLvl" val="7" />
|
||||||
<set name="abnormalLvl" val="1" />
|
|
||||||
<set name="abnormalTime" val="15" />
|
<set name="abnormalTime" val="15" />
|
||||||
<set name="abnormalType" val="TURN_FLEE" />
|
<set name="abnormalType" val="TURN_FLEE" />
|
||||||
<set name="abnormalVisualEffect" val="TURN_FLEE" />
|
<set name="abnormalVisualEffect" val="TURN_FLEE" />
|
||||||
<set name="activateRate" val="80" />
|
<set name="activateRate" val="80" />
|
||||||
<set name="basicProperty" val="MEN" />
|
<set name="basicProperty" val="MEN" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
<set name="castRange" val="80" />
|
<set name="castRange" val="40" />
|
||||||
<set name="effectPoint" val="-800" />
|
<set name="effectPoint" val="-800" />
|
||||||
<set name="effectRange" val="400" />
|
<set name="effectRange" val="400" />
|
||||||
|
<set name="hitTime" val="1500" />
|
||||||
<set name="icon" val="BranchSys2.icon.br_wp_tiatenon_i00" />
|
<set name="icon" val="BranchSys2.icon.br_wp_tiatenon_i00" />
|
||||||
<set name="isDebuff" val="true" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="lvlBonusRate" val="1" />
|
<set name="lvlBonusRate" val="2" />
|
||||||
<set name="magicLvl" val="85" />
|
<set name="magicLvl" val="84" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="10000" />
|
<set name="reuseDelay" val="5000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<set name="trait" val="DERANGEMENT" />
|
<set name="trait" val="DERANGEMENT" />
|
||||||
@@ -233,26 +231,25 @@
|
|||||||
<effect name="Fear" />
|
<effect name="Fear" />
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="23322" levels="10" name="Demonic Desire">
|
<skill id="23322" levels="1" name="Demonic Desire">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
<set name="abnormalLvl" val="7" />
|
||||||
<!-- This skill only has one level, 10. -->
|
|
||||||
<set name="abnormalLvl" val="3" />
|
|
||||||
<set name="abnormalTime" val="30" />
|
<set name="abnormalTime" val="30" />
|
||||||
<set name="abnormalType" val="PD_DOWN" />
|
<set name="abnormalType" val="PD_DOWN" />
|
||||||
<set name="activateRate" val="80" />
|
<set name="activateRate" val="80" />
|
||||||
<set name="basicProperty" val="MEN" />
|
<set name="basicProperty" val="MEN" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
<set name="castRange" val="80" />
|
<set name="castRange" val="40" />
|
||||||
<set name="effectPoint" val="-800" />
|
<set name="effectPoint" val="-800" />
|
||||||
<set name="effectRange" val="400" />
|
<set name="effectRange" val="400" />
|
||||||
|
<set name="hitTime" val="1500" />
|
||||||
<set name="isDebuff" val="true" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="lvlBonusRate" val="1" />
|
<set name="lvlBonusRate" val="2" />
|
||||||
<set name="magicLvl" val="76" />
|
<set name="magicLvl" val="84" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="10000" />
|
<set name="reuseDelay" val="5000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<for>
|
<for>
|
||||||
@@ -261,26 +258,26 @@
|
|||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="23323" levels="10" name="Fury of Darkness">
|
<skill id="23323" levels="1" name="Fury of Darkness">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
<set name="abnormalLvl" val="7" />
|
||||||
<!-- This skill only has one level, 10. -->
|
|
||||||
<set name="abnormalLvl" val="3" />
|
|
||||||
<set name="abnormalTime" val="9" />
|
<set name="abnormalTime" val="9" />
|
||||||
<set name="abnormalType" val="PD_DOWN" />
|
<set name="abnormalType" val="STUN" />
|
||||||
|
<set name="abnormalVisualEffect" val="STUN" />
|
||||||
<set name="activateRate" val="80" />
|
<set name="activateRate" val="80" />
|
||||||
<set name="basicProperty" val="CON" />
|
<set name="basicProperty" val="CON" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
<set name="castRange" val="80" />
|
<set name="castRange" val="40" />
|
||||||
<set name="effectPoint" val="-800" />
|
<set name="effectPoint" val="-800" />
|
||||||
<set name="effectRange" val="400" />
|
<set name="effectRange" val="400" />
|
||||||
|
<set name="hitTime" val="1500" />
|
||||||
<set name="isDebuff" val="true" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="lvlBonusRate" val="1" />
|
<set name="lvlBonusRate" val="2" />
|
||||||
<set name="magicLvl" val="76" />
|
<set name="magicLvl" val="84" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="10000" />
|
<set name="reuseDelay" val="5000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<set name="trait" val="SHOCK" />
|
<set name="trait" val="SHOCK" />
|
||||||
@@ -291,25 +288,28 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="23324" levels="1" name="Jet Black Typhoon">
|
<skill id="23324" levels="1" name="Jet Black Typhoon">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
<set name="abnormalLvl" val="7" />
|
||||||
<set name="abnormalLvl" val="1" />
|
|
||||||
<set name="abnormalTime" val="15" />
|
<set name="abnormalTime" val="15" />
|
||||||
|
<set name="abnormalType" val="CASTING_TIME_DOWN" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
|
<!-- <set name="castRange" val="40" /> -->
|
||||||
<set name="effectPoint" val="800" />
|
<set name="effectPoint" val="800" />
|
||||||
|
<!-- <set name="effectRange" val="400" /> -->
|
||||||
|
<set name="element" val="2" /> <!-- Wind -->
|
||||||
|
<set name="elementPower" val="20" />
|
||||||
|
<set name="hitTime" val="1500" />
|
||||||
<set name="icon" val="BranchSys2.icon.br_wp_wind_of_mardil_i00" />
|
<set name="icon" val="BranchSys2.icon.br_wp_wind_of_mardil_i00" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<!-- set name="abnormalType" val="RAID_WEAPON" / --> <!-- FIXME: Value unconfirmed. -->
|
|
||||||
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="magicLvl" val="67" />
|
<set name="magicLvl" val="84" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="10000" />
|
<set name="reuseDelay" val="5000" />
|
||||||
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="Buff">
|
<effect name="Buff">
|
||||||
<mul stat="mAtkSpd" val="1.15" />
|
<mul stat="mAtkSpd" val="1.3" />
|
||||||
<add stat="windPower" val="30" />
|
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import java.util.StringTokenizer;
|
|||||||
import com.l2jserver.Config;
|
import com.l2jserver.Config;
|
||||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||||
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
|
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
|
||||||
|
import com.l2jserver.gameserver.model.L2Object;
|
||||||
import com.l2jserver.gameserver.model.L2World;
|
import com.l2jserver.gameserver.model.L2World;
|
||||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||||
@@ -160,47 +161,39 @@ public class AdminBuffs implements IAdminCommandHandler
|
|||||||
StringTokenizer st = new StringTokenizer(command, " ");
|
StringTokenizer st = new StringTokenizer(command, " ");
|
||||||
command = st.nextToken();
|
command = st.nextToken();
|
||||||
|
|
||||||
L2PcInstance player = null;
|
L2Character creature = null;
|
||||||
if (st.hasMoreTokens())
|
if (st.hasMoreTokens())
|
||||||
{
|
{
|
||||||
String playername = st.nextToken();
|
creature = L2World.getInstance().getPlayer(st.nextToken());
|
||||||
|
if (creature == null)
|
||||||
try
|
|
||||||
{
|
{
|
||||||
player = L2World.getInstance().getPlayer(playername);
|
activeChar.sendMessage("The player " + creature + " is not online.");
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
if (player == null)
|
|
||||||
{
|
|
||||||
activeChar.sendMessage("The player " + playername + " is not online.");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((activeChar.getTarget() != null) && activeChar.getTarget().isPlayer())
|
|
||||||
{
|
|
||||||
player = activeChar.getTarget().getActingPlayer();
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
|
final L2Object target = activeChar.getTarget();
|
||||||
return false;
|
if ((target != null) && target.isCharacter())
|
||||||
|
{
|
||||||
|
creature = (L2Character) target;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (creature == null)
|
||||||
|
{
|
||||||
|
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
creature.resetTimeStamps();
|
||||||
|
creature.resetDisabledSkills();
|
||||||
|
if (creature.isPlayer())
|
||||||
{
|
{
|
||||||
player.resetTimeStamps();
|
creature.sendPacket(new SkillCoolTime(creature.getActingPlayer()));
|
||||||
player.resetDisabledSkills();
|
|
||||||
player.sendPacket(new SkillCoolTime(player));
|
|
||||||
activeChar.sendMessage("Skill reuse was removed from " + player.getName() + ".");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
catch (NullPointerException e)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
activeChar.sendMessage("Skill reuse was removed from " + creature.getName() + ".");
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else if (command.startsWith("admin_switch_gm_buffs"))
|
else if (command.startsWith("admin_switch_gm_buffs"))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public final class MagicalAttackMp extends AbstractEffect
|
|||||||
@Override
|
@Override
|
||||||
public L2EffectType getEffectType()
|
public L2EffectType getEffectType()
|
||||||
{
|
{
|
||||||
return L2EffectType.MAGICAL_ATTACK;
|
return L2EffectType.MAGICAL_ATTACK_MP;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1907,12 +1907,13 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="984" levels="25" name="Shield Strike">
|
<skill id="984" levels="25" name="Shield Strike">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#effectPoints"> -377 -392 -407 -437 -453 -469 -501 -518 -535 -570 -588 -606 -643 -662 -681 -719 -738 -758 -777 -797 -816 -836 -856 -875 -895 </table>
|
<table name="#effectPoints"> -377 -392 -407 -437 -453 -469 -501 -518 -535 -570 -588 -606 -643 -662 -681 -719 -738 -758 -777 -797 -816 -836 -856 -875 -895 </table>
|
||||||
<table name="#magicLvl"> 40 43 46 49 52 55 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
<table name="#magicLvl"> 40 43 46 49 52 55 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
||||||
<table name="#mpConsume"> 38 41 44 48 51 55 58 61 62 65 67 69 71 73 75 77 78 78 79 80 80 81 82 82 83 </table>
|
<table name="#mpConsume"> 38 41 44 48 51 55 58 61 62 65 67 69 71 73 75 77 78 78 79 80 80 81 82 82 83 </table>
|
||||||
<table name="#power"> 833 992 1171 1371 1592 1832 2091 2272 2460 2653 2850 3050 3252 3453 3653 3849 3945 4040 4133 4224 4312 4399 4482 4563 4640 </table>
|
<table name="#power"> 833 992 1171 1371 1592 1832 2091 2272 2460 2653 2850 3050 3252 3453 3653 3849 3945 4040 4133 4224 4312 4399 4482 4563 4640 </table>
|
||||||
<set name="castRange" val="40" />
|
<set name="castRange" val="40" />
|
||||||
|
<set name="coolTime" val="380" />
|
||||||
<set name="effectPoint" val="#effectPoints" />
|
<set name="effectPoint" val="#effectPoints" />
|
||||||
<set name="effectRange" val="400" />
|
<set name="effectRange" val="400" />
|
||||||
<set name="hitTime" val="1080" />
|
<set name="hitTime" val="1080" />
|
||||||
@@ -1920,7 +1921,7 @@
|
|||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="mpConsume" val="#mpConsume" />
|
<set name="mpConsume" val="#mpConsume" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="power" val="#power" />
|
<set name="power" val="#power" />
|
||||||
<set name="reuseDelay" val="6000" />
|
<set name="reuseDelay" val="6000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
@@ -1934,20 +1935,22 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="985" levels="1" name="Challenge for Fate">
|
<skill id="985" levels="1" name="Challenge for Fate">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="abnormalTime" val="4" />
|
<set name="abnormalLvl" val="1" />
|
||||||
|
<set name="abnormalTime" val="5" />
|
||||||
|
<set name="abnormalType" val="TARGET_LOCK" />
|
||||||
<set name="affectLimit" val="10-10" />
|
<set name="affectLimit" val="10-10" />
|
||||||
<set name="affectRange" val="100" /> <!-- FIXME: value unconfirmed -->
|
<set name="affectRange" val="550" />
|
||||||
<set name="castRange" val="400" />
|
<set name="effectPoint" val="-10000" />
|
||||||
<set name="effectPoint" val="-7987" />
|
|
||||||
<set name="effectRange" val="900" />
|
|
||||||
<set name="hitTime" val="1000" />
|
<set name="hitTime" val="1000" />
|
||||||
<set name="icon" val="icon.skill0985" />
|
<set name="icon" val="icon.skill0985" />
|
||||||
|
<set name="isDebuff" val="true" />
|
||||||
<set name="magicLvl" val="83" />
|
<set name="magicLvl" val="83" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="45000" />
|
<set name="reuseDelay" val="45000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="AREA" />
|
<set name="staticReuse" val="true" />
|
||||||
|
<set name="targetType" val="AURA" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="TargetMe" />
|
<effect name="TargetMe" />
|
||||||
<effect name="GetAgro" />
|
<effect name="GetAgro" />
|
||||||
@@ -1959,7 +1962,7 @@
|
|||||||
</selfEffects>
|
</selfEffects>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="986" levels="25" name="Deadly Strike">
|
<skill id="986" levels="25" name="Deadly Strike">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 40 43 46 49 52 55 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
<table name="#magicLvl"> 40 43 46 49 52 55 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
||||||
<table name="#mpConsume"> 38 41 44 48 51 55 58 61 62 65 67 69 71 73 75 77 78 78 79 80 80 81 82 82 83 </table>
|
<table name="#mpConsume"> 38 41 44 48 51 55 58 61 62 65 67 69 71 73 75 77 78 78 79 80 80 81 82 82 83 </table>
|
||||||
<table name="#power"> 833 992 1171 1371 1592 1832 2091 2272 2460 2653 2850 3050 3252 3453 3653 3849 3945 4040 4133 4224 4312 4399 4482 4563 4640 </table>
|
<table name="#power"> 833 992 1171 1371 1592 1832 2091 2272 2460 2653 2850 3050 3252 3453 3653 3849 3945 4040 4133 4224 4312 4399 4482 4563 4640 </table>
|
||||||
@@ -1971,33 +1974,33 @@
|
|||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="mpConsume" val="#mpConsume" />
|
<set name="mpConsume" val="#mpConsume" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="overHit" val="true" />
|
<set name="overHit" val="true" />
|
||||||
<set name="power" val="#power" />
|
<set name="power" val="#power" />
|
||||||
<set name="reuseDelay" val="5000" />
|
<set name="reuseDelay" val="5000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<cond msgId="113" addName="1">
|
<cond msgId="113" addName="1">
|
||||||
<not>
|
<using kind="SWORD,BLUNT,DAGGER,DUALDAGGER,DUAL,POLE" />
|
||||||
<using kind="FIST,DUALFIST,BOW,CROSSBOW" />
|
|
||||||
</not>
|
|
||||||
</cond>
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="PhysicalAttack" />
|
<effect name="PhysicalAttack" />
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="987" levels="1" name="Multiple Shot">
|
<skill id="987" levels="1" name="Multiple Shot">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="affectLimit" val="5-12" />
|
<set name="affectLimit" val="5-12" />
|
||||||
<set name="affectRange" val="250" />
|
<set name="affectRange" val="900" />
|
||||||
<set name="baseCritRate" val="15" /> <!-- FIXME: value unconfirmed -->
|
<set name="baseCritRate" val="15" />
|
||||||
<set name="castRange" val="900" />
|
<set name="castRange" val="900" />
|
||||||
<set name="effectPoint" val="-887" />
|
<set name="effectPoint" val="-887" />
|
||||||
<set name="effectRange" val="1400" />
|
<set name="effectRange" val="1100" />
|
||||||
|
<set name="fanRange" val="0,0,900,45" />
|
||||||
<set name="hitTime" val="3000" />
|
<set name="hitTime" val="3000" />
|
||||||
<set name="icon" val="icon.skill0987" />
|
<set name="icon" val="icon.skill0987" />
|
||||||
<set name="magicLvl" val="82" />
|
<set name="magicLvl" val="82" />
|
||||||
<set name="mpConsume" val="162" />
|
<set name="mpConsume" val="162" />
|
||||||
|
<set name="nextActionAttack" val="true" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="overHit" val="true" />
|
<set name="overHit" val="true" />
|
||||||
<set name="power" val="16667" />
|
<set name="power" val="16667" />
|
||||||
@@ -2012,21 +2015,26 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="988" levels="3" name="Battle Whisper">
|
<skill id="988" levels="3" name="Battle Whisper">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
|
<table name="#abnormalLvl"> 1 2 3 </table>
|
||||||
<table name="#amount"> 1.05 1.07 1.1 </table>
|
<table name="#amount"> 1.05 1.07 1.1 </table>
|
||||||
<table name="#effectPoints"> 454 523 635 </table>
|
<table name="#effectPoints"> 454 523 635 </table>
|
||||||
<table name="#magicLvl"> 46 52 60 </table>
|
<table name="#magicLvl"> 46 52 60 </table>
|
||||||
<table name="#pAtk"> 1.05 1.1 1.15 </table>
|
<table name="#pAtk"> 1.05 1.1 1.15 </table>
|
||||||
|
<set name="abnormalLvl" val="#abnormalLvl" />
|
||||||
<set name="abnormalTime" val="120" />
|
<set name="abnormalTime" val="120" />
|
||||||
|
<set name="abnormalType" val="SONG_BATTLE_WHISPER" />
|
||||||
|
<!-- <set name="affectRange" val="1000" /> -->
|
||||||
<set name="effectPoint" val="#effectPoints" />
|
<set name="effectPoint" val="#effectPoints" />
|
||||||
<set name="hitTime" val="2500" />
|
<set name="hitTime" val="2500" />
|
||||||
<set name="icon" val="icon.skill0988" />
|
<set name="icon" val="icon.skill0988" />
|
||||||
<set name="isMagic" val="3" /> <!-- Dance Skill -->
|
<set name="isMagic" val="3" /> <!-- Dance Skill -->
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="mpConsume" val="30" />
|
<set name="mpConsume" val="30" />
|
||||||
|
<set name="mpInitialConsume" val="8" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="3000" />
|
<set name="reuseDelay" val="3000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="Buff">
|
<effect name="Buff">
|
||||||
@@ -2037,8 +2045,11 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="989" levels="1" name="Defense Motion">
|
<skill id="989" levels="1" name="Defense Motion">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="120" />
|
<set name="abnormalTime" val="120" />
|
||||||
|
<set name="abnormalType" val="DANCE_DEFENCE_MOTION1" />
|
||||||
|
<!-- <set name="affectRange" val="1000" /> -->
|
||||||
<set name="effectPoint" val="635" />
|
<set name="effectPoint" val="635" />
|
||||||
<set name="hitTime" val="2500" />
|
<set name="hitTime" val="2500" />
|
||||||
<set name="icon" val="icon.skill0989" />
|
<set name="icon" val="icon.skill0989" />
|
||||||
@@ -2047,8 +2058,11 @@
|
|||||||
<set name="mpConsume" val="30" />
|
<set name="mpConsume" val="30" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="3000" />
|
<set name="reuseDelay" val="3000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
|
<cond msgId="113" addName="1">
|
||||||
|
<using kind="DUAL" />
|
||||||
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="Buff">
|
<effect name="Buff">
|
||||||
<mul stat="pDef" val="1.25" />
|
<mul stat="pDef" val="1.25" />
|
||||||
@@ -2057,9 +2071,9 @@
|
|||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="990" levels="1" name="Death Sting">
|
<skill id="990" levels="1" name="Death Shot">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="baseCritRate" val="15" /> <!-- FIXME: value unconfirmed -->
|
<set name="baseCritRate" val="15" />
|
||||||
<set name="castRange" val="900" />
|
<set name="castRange" val="900" />
|
||||||
<set name="effectPoint" val="-887" />
|
<set name="effectPoint" val="-887" />
|
||||||
<set name="effectRange" val="1400" />
|
<set name="effectRange" val="1400" />
|
||||||
@@ -2081,19 +2095,20 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="991" levels="1" name="Throwing Dagger">
|
<skill id="991" levels="1" name="Throwing Dagger">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="abnormalLvl" val="3" />
|
<set name="abnormalLvl" val="3" />
|
||||||
<set name="abnormalTime" val="10" />
|
<set name="abnormalTime" val="10" />
|
||||||
<set name="abnormalType" val="SPEED_DOWN" />
|
<set name="abnormalType" val="SPEED_DOWN" />
|
||||||
<set name="activateRate" val="40" />
|
<set name="activateRate" val="40" />
|
||||||
|
<set name="baseCritRate" val="15" />
|
||||||
<set name="basicProperty" val="MEN" />
|
<set name="basicProperty" val="MEN" />
|
||||||
<set name="castRange" val="300" />
|
<set name="castRange" val="300" />
|
||||||
<set name="effectPoint" val="-569" />
|
<set name="effectPoint" val="-569" />
|
||||||
<set name="effectRange" val="800" />
|
<set name="effectRange" val="500" />
|
||||||
<set name="hitTime" val="1080" />
|
<set name="hitTime" val="1080" />
|
||||||
<set name="icon" val="icon.skill0991" />
|
<set name="icon" val="icon.skill0991" />
|
||||||
<set name="isDebuff" val="true" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="lvlBonusRate" val="2" /> <!-- FIXME: value unconfirmed -->
|
<set name="lvlBonusRate" val="1" />
|
||||||
<set name="magicLvl" val="80" />
|
<set name="magicLvl" val="80" />
|
||||||
<set name="mpConsume" val="82" />
|
<set name="mpConsume" val="82" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
@@ -2113,15 +2128,20 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="992" levels="8" name="Sonic Mastery">
|
<skill id="992" levels="8" name="Sonic Mastery">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 40 43 49 55 60 66 70 79 </table>
|
<table name="#magicLvl"> 40 43 49 55 60 66 70 79 </table>
|
||||||
<table name="#skillLevel"> 1 2 3 4 5 6 7 8 </table>
|
<table name="#skillLevel"> 1 2 3 4 5 6 7 8 </table>
|
||||||
<set name="icon" val="icon.skill0992" />
|
<set name="icon" val="icon.skill0992" />
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="operateType" val="PASSIVE" />
|
<set name="operateType" val="PASSIVE" />
|
||||||
|
<cond msgId="324">
|
||||||
|
<not>
|
||||||
|
<player Charges="#skillLevel" />
|
||||||
|
</not>
|
||||||
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="TriggerSkillByAttack">
|
<effect name="TriggerSkillByAttack">
|
||||||
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="99" />
|
||||||
<param isCritical="false" />
|
<param isCritical="false" />
|
||||||
<param minDamage="1" chance="15" />
|
<param minDamage="1" chance="15" />
|
||||||
<param skillId="6813" skillLevel="#skillLevel" /> <!-- Focus Sonic -->
|
<param skillId="6813" skillLevel="#skillLevel" /> <!-- Focus Sonic -->
|
||||||
@@ -2139,16 +2159,21 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="993" levels="8" name="Force Mastery">
|
<skill id="993" levels="8" name="Force Mastery">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 24 32 40 52 60 66 72 79 </table>
|
<table name="#magicLvl"> 24 32 40 52 60 66 72 79 </table>
|
||||||
<table name="#skillLevel"> 1 2 3 4 5 6 7 8 </table>
|
<table name="#skillLevel"> 1 2 3 4 5 6 7 8 </table>
|
||||||
<set name="icon" val="icon.skill0993" />
|
<set name="icon" val="icon.skill0993" />
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="operateType" val="PASSIVE" />
|
<set name="operateType" val="PASSIVE" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
|
<cond msgId="324">
|
||||||
|
<not>
|
||||||
|
<player Charges="#skillLevel" />
|
||||||
|
</not>
|
||||||
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="TriggerSkillByAttack">
|
<effect name="TriggerSkillByAttack">
|
||||||
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="100" />
|
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="99" />
|
||||||
<param isCritical="false" />
|
<param isCritical="false" />
|
||||||
<param minDamage="1" chance="15" />
|
<param minDamage="1" chance="15" />
|
||||||
<param skillId="6814" skillLevel="#skillLevel" /> <!-- Focus Force -->
|
<param skillId="6814" skillLevel="#skillLevel" /> <!-- Focus Force -->
|
||||||
@@ -2166,7 +2191,7 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="994" levels="1" name="Rush">
|
<skill id="994" levels="1" name="Rush">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="castRange" val="400" />
|
<set name="castRange" val="400" />
|
||||||
<set name="coolTime" val="200" />
|
<set name="coolTime" val="200" />
|
||||||
<set name="effectPoint" val="-303" />
|
<set name="effectPoint" val="-303" />
|
||||||
@@ -2174,8 +2199,8 @@
|
|||||||
<set name="flyType" val="CHARGE" />
|
<set name="flyType" val="CHARGE" />
|
||||||
<set name="hitTime" val="800" />
|
<set name="hitTime" val="800" />
|
||||||
<set name="icon" val="icon.skill0484" />
|
<set name="icon" val="icon.skill0484" />
|
||||||
<set name="magicLvl" val="40" />
|
<set name="magicLvl" val="32" />
|
||||||
<set name="mpConsume" val="38" />
|
<set name="mpInitialConsume" val="20" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
<set name="operateType" val="DIRECTIONAL_INSTANT" />
|
<set name="operateType" val="DIRECTIONAL_INSTANT" />
|
||||||
<set name="reuseDelay" val="3000" />
|
<set name="reuseDelay" val="3000" />
|
||||||
@@ -2183,10 +2208,8 @@
|
|||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<cond msgId="113" addName="1">
|
<cond msgId="113" addName="1">
|
||||||
<and>
|
<and>
|
||||||
|
<using kind="SWORD,BLUNT,DAGGER,DUALDAGGER,DUALFIST,DUAL,POLE" />
|
||||||
<target mindistance="200" />
|
<target mindistance="200" />
|
||||||
<not>
|
|
||||||
<using kind="BOW,CROSSBOW" />
|
|
||||||
</not>
|
|
||||||
</and>
|
</and>
|
||||||
</cond>
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
@@ -2194,7 +2217,7 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="995" levels="1" name="Rush Impact">
|
<skill id="995" levels="1" name="Rush Impact">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="abnormalLvl" val="1" />
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="9" />
|
<set name="abnormalTime" val="9" />
|
||||||
<set name="abnormalType" val="STUN" />
|
<set name="abnormalType" val="STUN" />
|
||||||
@@ -2212,25 +2235,24 @@
|
|||||||
<set name="icon" val="icon.skill0793" />
|
<set name="icon" val="icon.skill0793" />
|
||||||
<set name="isDebuff" val="true" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="lvlBonusRate" val="1" />
|
<set name="lvlBonusRate" val="1" />
|
||||||
<set name="magicLvl" val="83" />
|
<set name="magicLvl" val="78" />
|
||||||
<set name="mpConsume" val="82" />
|
<set name="mpInitialConsume" val="83" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
<set name="operateType" val="DIRECTIONAL_CONTINUOUS" />
|
<set name="operateType" val="DIRECTIONAL_CONTINUOUS" />
|
||||||
<set name="power" val="4224" />
|
<set name="power" val="4224" />
|
||||||
<set name="reuseDelay" val="20000" />
|
<set name="reuseDelay" val="20000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
|
<set name="soulMaxConsumeCount" val="5" />
|
||||||
<set name="targetType" val="FRONT_AREA" />
|
<set name="targetType" val="FRONT_AREA" />
|
||||||
<set name="trait" val="SHOCK" />
|
<set name="trait" val="SHOCK" />
|
||||||
<cond msgId="113" addName="1">
|
<cond msgId="113" addName="1">
|
||||||
<and>
|
<and>
|
||||||
|
<using kind="SWORD,BLUNT,DAGGER,DUALDAGGER,DUALFIST,DUAL,POLE" />
|
||||||
<target mindistance="200" />
|
<target mindistance="200" />
|
||||||
<not>
|
|
||||||
<using kind="BOW,CROSSBOW" />
|
|
||||||
</not>
|
|
||||||
</and>
|
</and>
|
||||||
</cond>
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="PhysicalAttack" />
|
<effect name="PhysicalSoulAttack" />
|
||||||
<effect name="Stun" />
|
<effect name="Stun" />
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
@@ -2258,18 +2280,23 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="997" levels="25" name="Crushing Strike">
|
<skill id="997" levels="25" name="Crushing Strike">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 40 43 46 49 52 55 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
<table name="#magicLvl"> 40 43 46 49 52 55 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
||||||
<table name="#mpConsume"> 38 41 44 48 51 55 58 61 62 65 67 69 71 73 75 77 78 78 79 80 80 81 82 82 83 </table>
|
<table name="#mpConsume"> 38 41 44 48 51 55 58 61 62 65 67 69 71 73 75 77 78 78 79 80 80 81 82 82 83 </table>
|
||||||
<table name="#power"> 1041 1240 1464 1714 1990 2290 2614 2840 3075 3316 3563 3813 4065 4316 4566 4689 4811 4931 5050 5166 5280 5390 5498 5603 5704 </table>
|
<table name="#power"> 1041 1240 1464 1714 1990 2290 2614 2840 3075 3316 3563 3813 4065 4316 4566 4689 4811 4931 5050 5166 5280 5390 5498 5603 5704 </table>
|
||||||
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="3" />
|
<set name="abnormalTime" val="3" />
|
||||||
|
<set name="abnormalType" val="MULTI_DEBUFF_G" />
|
||||||
<set name="activateRate" val="80" />
|
<set name="activateRate" val="80" />
|
||||||
<set name="basicProperty" val="MEN" />
|
<set name="basicProperty" val="MEN" />
|
||||||
<set name="castRange" val="40" />
|
<set name="castRange" val="40" />
|
||||||
|
<set name="coolTime" val="200" />
|
||||||
<set name="effectPoint" val="-52" />
|
<set name="effectPoint" val="-52" />
|
||||||
<set name="effectRange" val="400" />
|
<set name="effectRange" val="400" />
|
||||||
<set name="hitTime" val="800" />
|
<set name="hitTime" val="800" />
|
||||||
<set name="icon" val="icon.skill0997" />
|
<set name="icon" val="icon.skill0997" />
|
||||||
|
<set name="isDebuff" val="true" />
|
||||||
|
<set name="lvlBonusRate" val="1" />
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="mpConsume" val="#mpConsume" />
|
<set name="mpConsume" val="#mpConsume" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
@@ -2291,26 +2318,25 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="998" levels="1" name="Blazing Boost">
|
<skill id="998" levels="1" name="Blazing Boost">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="castRange" val="400" />
|
<set name="castRange" val="600" />
|
||||||
<set name="coolTime" val="200" /> <!-- FIXME: value unconfirmed -->
|
<set name="coolTime" val="200" />
|
||||||
<set name="effectPoint" val="-303" />
|
<set name="effectPoint" val="-303" />
|
||||||
<set name="effectRange" val="900" />
|
<set name="effectRange" val="900" />
|
||||||
<set name="flyType" val="CHARGE" />
|
<set name="flyType" val="CHARGE" />
|
||||||
<set name="hitTime" val="800" />
|
<set name="hitTime" val="800" />
|
||||||
<set name="icon" val="icon.skill0998" />
|
<set name="icon" val="icon.skill0998" />
|
||||||
<set name="magicLvl" val="40" />
|
<set name="magicLvl" val="40" />
|
||||||
<set name="mpConsume" val="38" />
|
<set name="mpInitialConsume" val="38" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="nextActionAttack" val="true" />
|
||||||
|
<set name="operateType" val="DIRECTIONAL_INSTANT" />
|
||||||
<set name="reuseDelay" val="3000" />
|
<set name="reuseDelay" val="3000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<cond msgId="113" addName="1">
|
<cond msgId="113" addName="1">
|
||||||
<and>
|
<and>
|
||||||
<target mindistance="200" />
|
<using kind="DAGGER,DUALDAGGER,SWORD,BLUNT,FIST" />
|
||||||
<not>
|
<target mindistance="400" />
|
||||||
<using kind="BOW,CROSSBOW" />
|
|
||||||
</not>
|
|
||||||
</and>
|
</and>
|
||||||
</cond>
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
|
|||||||
@@ -1492,9 +1492,9 @@
|
|||||||
</enchant3for>
|
</enchant3for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1549" levels="1" name="Chant of Elements">
|
<skill id="1549" levels="1" name="Chant of Elements">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- NOTE: skill desc says "increases the elemental attribute" but is client typo, it increase defense (see skill icon) -->
|
<!-- NOTE: skill desc says "increases the elemental attribute" but is client typo, it increase defense (see skill icon) -->
|
||||||
<set name="abnormalLvl" val="3" />
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="1200" />
|
<set name="abnormalTime" val="1200" />
|
||||||
<set name="abnormalType" val="MD_UP_ATTR" />
|
<set name="abnormalType" val="MD_UP_ATTR" />
|
||||||
<set name="affectRange" val="1000" />
|
<set name="affectRange" val="1000" />
|
||||||
@@ -1502,8 +1502,8 @@
|
|||||||
<set name="icon" val="icon.skill1549" />
|
<set name="icon" val="icon.skill1549" />
|
||||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="magicLvl" val="76" />
|
<set name="magicLvl" val="76" />
|
||||||
<set name="mpConsume" val="220" />
|
<set name="mpConsume" val="55" />
|
||||||
<set name="mpInitialConsume" val="55" />
|
<set name="mpInitialConsume" val="220" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="5000" />
|
<set name="reuseDelay" val="5000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
@@ -1518,7 +1518,7 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1550" levels="1" name="Mass Cure Poison">
|
<skill id="1550" levels="1" name="Mass Cure Poison">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="affectRange" val="1000" />
|
<set name="affectRange" val="1000" />
|
||||||
<set name="effectPoint" val="1000" />
|
<set name="effectPoint" val="1000" />
|
||||||
<set name="hitTime" val="4000" />
|
<set name="hitTime" val="4000" />
|
||||||
@@ -1538,7 +1538,7 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1551" levels="1" name="Mass Purify">
|
<skill id="1551" levels="1" name="Mass Purify">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="affectRange" val="1000" />
|
<set name="affectRange" val="1000" />
|
||||||
<set name="effectPoint" val="1000" />
|
<set name="effectPoint" val="1000" />
|
||||||
<set name="hitTime" val="3000" />
|
<set name="hitTime" val="3000" />
|
||||||
@@ -1553,31 +1553,31 @@
|
|||||||
<set name="targetType" val="PARTY" />
|
<set name="targetType" val="PARTY" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="DispelBySlot">
|
<effect name="DispelBySlot">
|
||||||
<param dispel="POISON,9;BLEEDING,9;PARALYZE,1;TURN_STONE,1" />
|
<param dispel="POISON,9;BLEEDING,9;PARALYZE,9;TURN_STONE,9" />
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1552" levels="1" name="Mass Vitalize">
|
<skill id="1552" levels="1" name="Mass Vitalize">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="affectRange" val="1000" />
|
<set name="affectRange" val="1000" />
|
||||||
<set name="effectPoint" val="1000" />
|
<set name="effectPoint" val="1000" />
|
||||||
<set name="hitTime" val="3000" />
|
<set name="hitTime" val="3000" />
|
||||||
<set name="icon" val="icon.skill1552" />
|
<set name="icon" val="icon.skill1552" />
|
||||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="magicLvl" val="76" />
|
<set name="magicLvl" val="76" />
|
||||||
<set name="mpConsume" val="155" />
|
<set name="mpConsume" val="38" />
|
||||||
<set name="mpInitialConsume" val="38" />
|
<set name="mpInitialConsume" val="155" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" />
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="reuseDelay" val="9000" />
|
<set name="reuseDelay" val="9000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
<set name="targetType" val="PARTY" />
|
<set name="targetType" val="PARTY" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="Heal">
|
|
||||||
<param power="796" />
|
|
||||||
</effect>
|
|
||||||
<effect name="DispelBySlot">
|
<effect name="DispelBySlot">
|
||||||
<param dispel="POISON,9;BLEEDING,9" />
|
<param dispel="POISON,9;BLEEDING,9" />
|
||||||
</effect>
|
</effect>
|
||||||
|
<effect name="Heal">
|
||||||
|
<param power="796" />
|
||||||
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1553" levels="1" name="Chain Heal">
|
<skill id="1553" levels="1" name="Chain Heal">
|
||||||
@@ -1606,10 +1606,10 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1554" levels="1" name="Aura Blast">
|
<skill id="1554" levels="1" name="Aura Blast">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="abnormalTime" val="3" />
|
<set name="abnormalTime" val="3" />
|
||||||
<set name="affectLimit" val="2-10" />
|
<set name="affectLimit" val="2-10" />
|
||||||
<set name="affectRange" val="100" /> <!-- FIXME: value unconfirmed -->
|
<set name="affectRange" val="200" />
|
||||||
<set name="castRange" val="900" />
|
<set name="castRange" val="900" />
|
||||||
<set name="effectPoint" val="-288" />
|
<set name="effectPoint" val="-288" />
|
||||||
<set name="effectRange" val="1400" />
|
<set name="effectRange" val="1400" />
|
||||||
@@ -1617,9 +1617,9 @@
|
|||||||
<set name="icon" val="icon.skill1554" />
|
<set name="icon" val="icon.skill1554" />
|
||||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="magicLvl" val="81" />
|
<set name="magicLvl" val="81" />
|
||||||
<set name="mpConsume" val="116" />
|
<set name="mpConsume" val="31" />
|
||||||
<set name="mpInitialConsume" val="29" />
|
<set name="mpInitialConsume" val="145" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="power" val="199" /> <!-- Inflicts additional non-attribute damage if the target is a monster -->
|
<set name="power" val="199" /> <!-- Inflicts additional non-attribute damage if the target is a monster -->
|
||||||
<set name="pvpPower" val="141" />
|
<set name="pvpPower" val="141" />
|
||||||
<set name="reuseDelay" val="15000" />
|
<set name="reuseDelay" val="15000" />
|
||||||
@@ -1628,24 +1628,19 @@
|
|||||||
<for>
|
<for>
|
||||||
<effect name="MagicalAttack" />
|
<effect name="MagicalAttack" />
|
||||||
</for>
|
</for>
|
||||||
<selfEffects>
|
|
||||||
<effect name="ManaHeal">
|
|
||||||
<param power="10" /> <!-- FIXME: value unconfirmed -->
|
|
||||||
</effect>
|
|
||||||
</selfEffects>
|
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1555" levels="1" name="Aura Cannon">
|
<skill id="1555" levels="1" name="Aura Cannon">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="castRange" val="150" />
|
<set name="castRange" val="150" />
|
||||||
<set name="effectPoint" val="-993" />
|
<set name="effectPoint" val="-993" />
|
||||||
<set name="effectRange" val="650" />
|
<set name="effectRange" val="600" />
|
||||||
<set name="hitTime" val="2000" />
|
<set name="hitTime" val="2000" />
|
||||||
<set name="icon" val="icon.skill1555" />
|
<set name="icon" val="icon.skill1555" />
|
||||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="magicLvl" val="82" />
|
<set name="magicLvl" val="82" />
|
||||||
<set name="mpConsume" val="99" />
|
<set name="mpConsume" val="27" />
|
||||||
<set name="mpInitialConsume" val="24" />
|
<set name="mpInitialConsume" val="123" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="power" val="302" /> <!-- Inflicts additional non-attribute damage if the target is a monster -->
|
<set name="power" val="302" /> <!-- Inflicts additional non-attribute damage if the target is a monster -->
|
||||||
<set name="pvpPower" val="178" />
|
<set name="pvpPower" val="178" />
|
||||||
<set name="reuseDelay" val="10000" />
|
<set name="reuseDelay" val="10000" />
|
||||||
@@ -1654,11 +1649,6 @@
|
|||||||
<for>
|
<for>
|
||||||
<effect name="MagicalAttack" />
|
<effect name="MagicalAttack" />
|
||||||
</for>
|
</for>
|
||||||
<selfEffects>
|
|
||||||
<effect name="ManaHeal">
|
|
||||||
<param power="10" /> <!-- FIXME: value unconfirmed -->
|
|
||||||
</effect>
|
|
||||||
</selfEffects>
|
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1556" levels="1" name="Arcane Shield">
|
<skill id="1556" levels="1" name="Arcane Shield">
|
||||||
<!-- High Five Skill -->
|
<!-- High Five Skill -->
|
||||||
@@ -1682,7 +1672,7 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1557" levels="1" name="Servitor Share">
|
<skill id="1557" levels="1" name="Servitor Share">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="abnormalLvl" val="1" />
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="1200" />
|
<set name="abnormalTime" val="1200" />
|
||||||
<set name="abnormalType" val="SUMMON_CONDITION" />
|
<set name="abnormalType" val="SUMMON_CONDITION" />
|
||||||
@@ -1719,10 +1709,11 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1558" levels="24" name="Dimension Spiral">
|
<skill id="1558" levels="24" name="Dimension Spiral">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 40 44 48 52 56 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
<table name="#magicLvl"> 40 44 48 52 56 58 60 62 64 66 68 70 72 74 76 77 78 79 80 81 82 83 84 85 </table>
|
||||||
<table name="#mpConsume"> 38 43 47 50 53 55 57 59 60 63 64 67 74 83 92 99 100 106 109 115 118 119 125 134 </table>
|
<table name="#mpConsume"> 31 35 38 40 43 44 46 48 48 51 52 54 60 67 74 80 80 85 88 92 95 96 100 108 </table>
|
||||||
<table name="#power"> 57 58 60 61 63 66 68 71 74 77 79 82 89 94 100 104 110 115 139 152 166 179 193 207 </table>
|
<table name="#mpInitialConsume"> 7 8 9 10 10 11 11 11 12 12 12 13 14 16 18 19 20 21 21 23 23 23 25 26 </table>
|
||||||
|
<table name="#power"> 57 58 60 61 63 66 68 71 74 77 79 82 89 94 100 104 110 115 136 152 166 179 193 207 </table>
|
||||||
<table name="#pvpPower"> 57 58 60 61 63 66 68 71 74 77 79 82 84 87 89 90 91 92 93 94 95 96 97 98 </table>
|
<table name="#pvpPower"> 57 58 60 61 63 66 68 71 74 77 79 82 84 87 89 90 91 92 93 94 95 96 97 98 </table>
|
||||||
<set name="castRange" val="900" />
|
<set name="castRange" val="900" />
|
||||||
<set name="effectPoint" val="-993" />
|
<set name="effectPoint" val="-993" />
|
||||||
@@ -1732,7 +1723,8 @@
|
|||||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="mpConsume" val="#mpConsume" />
|
<set name="mpConsume" val="#mpConsume" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="mpInitialConsume" val="#mpInitialConsume" />
|
||||||
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="overHit" val="true" />
|
<set name="overHit" val="true" />
|
||||||
<set name="power" val="#power" /> <!-- Inflicts additional non-attribute damage if the target is a monster -->
|
<set name="power" val="#power" /> <!-- Inflicts additional non-attribute damage if the target is a monster -->
|
||||||
<set name="pvpPower" val="#pvpPower" />
|
<set name="pvpPower" val="#pvpPower" />
|
||||||
@@ -1741,18 +1733,12 @@
|
|||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="MagicalAttack" />
|
<effect name="MagicalAttack" />
|
||||||
<effect name="TriggerSkillBySkill">
|
|
||||||
<param castSkillId="1558" /> <!-- Dimension Spiral -->
|
|
||||||
<param chance="5" />
|
|
||||||
<param skillId="5571" skillLevel="1" /> <!-- Mutual Response -->
|
|
||||||
<param targetType="SUMMON" />
|
|
||||||
</effect>
|
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1559" levels="3" name="Potential Ability">
|
<skill id="1559" levels="3" name="Potential Ability">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#cAtkAdd"> 177 295 384 </table>
|
<table name="#cAtkAdd"> 117 295 384 </table>
|
||||||
<table name="#magicLvl"> 28 40 49 </table>
|
<table name="#magicLvl"> 28 40 58 </table>
|
||||||
<table name="#rCrit"> 1.2 1.3 1.4 </table>
|
<table name="#rCrit"> 1.2 1.3 1.4 </table>
|
||||||
<set name="icon" val="icon.skill1559" />
|
<set name="icon" val="icon.skill1559" />
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
@@ -1761,26 +1747,23 @@
|
|||||||
<for>
|
<for>
|
||||||
<effect name="Buff">
|
<effect name="Buff">
|
||||||
<mul stat="critRate" val="#rCrit">
|
<mul stat="critRate" val="#rCrit">
|
||||||
<using kind="DAGGER,DUALDAGGER,LIGHT" />
|
<using kind="DAGGER,DUALDAGGER" />
|
||||||
</mul>
|
</mul>
|
||||||
<add stat="critDmgAdd" val="#cAtkAdd">
|
<add stat="critDmgAdd" val="#cAtkAdd">
|
||||||
<using kind="DAGGER,DUALDAGGER,LIGHT" />
|
<using kind="DAGGER,DUALDAGGER" />
|
||||||
</add>
|
</add>
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1560" levels="1" name="Lucky Blow">
|
<skill id="1560" levels="1" name="Lucky Blow">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="baseCritRate" val="30" />
|
<set name="baseCritRate" val="10" />
|
||||||
<set name="blowChance" val="60" />
|
<set name="blowChance" val="30" />
|
||||||
<set name="castRange" val="40" />
|
<set name="castRange" val="40" />
|
||||||
<set name="coolTime" val="720" />
|
|
||||||
<set name="effectPoint" val="-337" />
|
<set name="effectPoint" val="-337" />
|
||||||
<set name="effectRange" val="400" />
|
<set name="effectRange" val="400" />
|
||||||
<set name="halfKillRate" val="8" />
|
|
||||||
<set name="hitTime" val="1800" />
|
<set name="hitTime" val="1800" />
|
||||||
<set name="icon" val="icon.skill1560" />
|
<set name="icon" val="icon.skill1560" />
|
||||||
<set name="lethalStrikeRate" val="1" /> <!-- FIXME: unconfirmed -->
|
|
||||||
<set name="magicLvl" val="83" />
|
<set name="magicLvl" val="83" />
|
||||||
<set name="mpConsume" val="82" />
|
<set name="mpConsume" val="82" />
|
||||||
<set name="nextActionAttack" val="true" />
|
<set name="nextActionAttack" val="true" />
|
||||||
@@ -1796,18 +1779,22 @@
|
|||||||
</cond>
|
</cond>
|
||||||
<for>
|
<for>
|
||||||
<effect name="FatalBlow" />
|
<effect name="FatalBlow" />
|
||||||
|
<effect name="Lethal">
|
||||||
|
<param halfLethal="10" />
|
||||||
|
<param fullLethal="5" />
|
||||||
|
</effect>
|
||||||
<effect name="Spoil" />
|
<effect name="Spoil" />
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1561" levels="5" name="Battle Cry">
|
<skill id="1561" levels="5" name="Battle Cry">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#abnormalLvls"> 2 3 4 5 6 </table>
|
<table name="#abnormalLvls"> 1 2 3 4 5 </table>
|
||||||
<table name="#MaxHp"> 15 20 25 30 35 </table>
|
<table name="#MaxHp"> 15 20 25 30 35 </table>
|
||||||
<table name="#magicLvl"> 40 49 58 64 70 </table>
|
<table name="#magicLvl"> 40 49 58 64 70 </table>
|
||||||
<table name="#mpConsume"> 18 22 27 30 33 </table>
|
<table name="#mpConsume"> 18 22 27 30 33 </table>
|
||||||
<set name="abnormalLvl" val="#abnormalLvls" />
|
<set name="abnormalLvl" val="#abnormalLvls" />
|
||||||
<set name="abnormalTime" val="600" />
|
<set name="abnormalTime" val="600" />
|
||||||
<set name="abnormalType" val="MAX_HP_UP" />
|
<set name="abnormalType" val="MAX_HP_CP_UP" />
|
||||||
<set name="effectPoint" val="268" />
|
<set name="effectPoint" val="268" />
|
||||||
<set name="hitTime" val="1500" />
|
<set name="hitTime" val="1500" />
|
||||||
<set name="icon" val="icon.skill1561" />
|
<set name="icon" val="icon.skill1561" />
|
||||||
@@ -1826,17 +1813,15 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1562" levels="2" name="Chant of Berserker">
|
<skill id="1562" levels="2" name="Chant of Berserker">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#abnormalLvls"> 1 2 </table>
|
<table name="#abnormalLvls"> 1 2 </table>
|
||||||
|
<table name="#amount"> 1.05 1.08 </table>
|
||||||
<table name="#effectPoints"> 549 611 </table>
|
<table name="#effectPoints"> 549 611 </table>
|
||||||
<table name="#magicLvl"> 44 52 </table>
|
<table name="#magicLvl"> 44 52 </table>
|
||||||
<table name="#mAtk"> 1.1 1.16 </table>
|
<table name="#mAtk"> 1.1 1.16 </table>
|
||||||
<table name="#mAtkSpd"> 1.05 1.08 </table>
|
|
||||||
<table name="#mDef"> 0.9 0.84 </table>
|
<table name="#mDef"> 0.9 0.84 </table>
|
||||||
<table name="#mpConsume"> 124 151 </table>
|
<table name="#mpConsume"> 154 188 </table>
|
||||||
<table name="#mpInitialConsume"> 30 37 </table>
|
<table name="#mpInitialConsume"> 8 41 </table>
|
||||||
<table name="#pAtk"> 1.05 1.08 </table>
|
|
||||||
<table name="#pAtkSpd"> 1.05 1.08 </table>
|
|
||||||
<table name="#pDef"> 0.95 0.92 </table>
|
<table name="#pDef"> 0.95 0.92 </table>
|
||||||
<table name="#rEvas"> 2 4 </table>
|
<table name="#rEvas"> 2 4 </table>
|
||||||
<table name="#runSpd"> 5 8 </table>
|
<table name="#runSpd"> 5 8 </table>
|
||||||
@@ -1860,27 +1845,27 @@
|
|||||||
<mul stat="pDef" val="#pDef" />
|
<mul stat="pDef" val="#pDef" />
|
||||||
<mul stat="mDef" val="#mDef" />
|
<mul stat="mDef" val="#mDef" />
|
||||||
<sub stat="rEvas" val="#rEvas" />
|
<sub stat="rEvas" val="#rEvas" />
|
||||||
<mul stat="pAtk" val="#pAtk" />
|
<mul stat="pAtk" val="#amount" />
|
||||||
<mul stat="mAtk" val="#mAtk" />
|
<mul stat="mAtk" val="#mAtk" />
|
||||||
<mul stat="pAtkSpd" val="#pAtkSpd" />
|
<mul stat="pAtkSpd" val="#amount" />
|
||||||
<mul stat="mAtkSpd" val="#mAtkSpd" />
|
<mul stat="mAtkSpd" val="#amount" />
|
||||||
<add stat="runSpd" val="#runSpd" />
|
<add stat="runSpd" val="#runSpd" />
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1563" levels="2" name="Fury of Pa'agrio">
|
<skill id="1563" levels="2" name="Fury of Pa'agrio">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#abnormalLvls"> 1 2 </table>
|
<table name="#abnormalLvls"> 1 2 </table>
|
||||||
<table name="#effectPoints"> 379 457 </table>
|
<table name="#effectPoints"> 379 457 </table>
|
||||||
<table name="#magicLvl"> 48 56 </table>
|
<table name="#magicLvl"> 48 56 </table>
|
||||||
<table name="#mpConsume"> 138 164 </table>
|
<table name="#mpConsume"> 172 204 </table>
|
||||||
<table name="#mpInitialConsume"> 34 40 </table>
|
<table name="#mpInitialConsume"> 28 35 </table>
|
||||||
<table name="#pAtkSpd"> 1.15 1.33 </table>
|
<table name="#pAtkSpd"> 1.15 1.33 </table>
|
||||||
<set name="abnormalLvl" val="#abnormalLvls" />
|
<set name="abnormalLvl" val="#abnormalLvls" />
|
||||||
<set name="abnormalTime" val="1200" />
|
<set name="abnormalTime" val="1200" />
|
||||||
<set name="abnormalType" val="ATTACK_TIME_DOWN" />
|
<set name="abnormalType" val="ATTACK_TIME_DOWN" />
|
||||||
<set name="affectLimit" val="50-50" />
|
<set name="affectLimit" val="50-50" />
|
||||||
<set name="affectRange" val="900" />
|
<set name="affectRange" val="1000" />
|
||||||
<set name="effectPoint" val="#effectPoints" />
|
<set name="effectPoint" val="#effectPoints" />
|
||||||
<set name="hitTime" val="2500" />
|
<set name="hitTime" val="2500" />
|
||||||
<set name="icon" val="icon.skill1563" />
|
<set name="icon" val="icon.skill1563" />
|
||||||
@@ -1908,14 +1893,14 @@
|
|||||||
<effect name="TriggerSkillByDamage">
|
<effect name="TriggerSkillByDamage">
|
||||||
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="99" />
|
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="99" />
|
||||||
<param minDamage="1" />
|
<param minDamage="1" />
|
||||||
<param chance="5" />
|
<param chance="50" />
|
||||||
<param skillId="6921" skillLevel="1" /> <!-- Penetration Attack -->
|
<param skillId="6921" skillLevel="1" /> <!-- Penetration Attack -->
|
||||||
<param targetType="ONE" />
|
<param targetType="ONE" />
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="1565" levels="6" name="Mana Pump" enchantGroup1="1">
|
<skill id="1565" levels="6" name="Mana Pump" enchantGroup1="1">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 40 49 58 64 68 72 </table>
|
<table name="#magicLvl"> 40 49 58 64 68 72 </table>
|
||||||
<table name="#maxMp"> 70 100 140 150 180 200 </table>
|
<table name="#maxMp"> 70 100 140 150 180 200 </table>
|
||||||
<table name="#ench1maxMp"> 203 206 210 213 216 220 223 226 230 233 236 240 243 246 250 253 256 260 263 266 270 273 276 280 283 286 290 293 296 300 </table>
|
<table name="#ench1maxMp"> 203 206 210 213 216 220 223 226 230 233 236 240 243 246 250 253 256 260 263 266 270 273 276 280 283 286 290 293 296 300 </table>
|
||||||
|
|||||||
@@ -540,34 +540,35 @@
|
|||||||
<set name="targetType" val="NONE" />
|
<set name="targetType" val="NONE" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6743" levels="1" name="Dark Wound">
|
<skill id="6743" levels="1" name="Dark Wound">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- FIXME: value unconfirmed -->
|
<set name="abnormalLvl" val="3" />
|
||||||
<set name="abnormalLvl" val="1" />
|
|
||||||
<set name="abnormalTime" val="20" />
|
<set name="abnormalTime" val="20" />
|
||||||
<set name="abnormalType" val="BLEEDING" />
|
<set name="abnormalType" val="BLEEDING" />
|
||||||
<set name="abnormalVisualEffect" val="DOT_BLEEDING" />
|
<set name="abnormalVisualEffect" val="DOT_BLEEDING" />
|
||||||
<set name="activateRate" val="100" />
|
<set name="activateRate" val="100" />
|
||||||
<set name="basicProperty" val="CON" />
|
<set name="basicProperty" val="CON" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
<set name="castRange" val="1500" />
|
<set name="castRange" val="400" />
|
||||||
|
<set name="coolTime" val="300" />
|
||||||
<set name="effectPoint" val="-100" />
|
<set name="effectPoint" val="-100" />
|
||||||
<set name="effectRange" val="2000" />
|
<set name="effectRange" val="900" />
|
||||||
|
<set name="element" val="5" /> <!-- Dark -->
|
||||||
|
<set name="elementPower" val="30" />
|
||||||
<set name="hitTime" val="2000" />
|
<set name="hitTime" val="2000" />
|
||||||
<set name="icon" val="icon.skill0096" />
|
<set name="icon" val="icon.skill0096" />
|
||||||
<set name="isDebuff" val="true" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="lvlBonusRate" val="1" />
|
<set name="lvlBonusRate" val="2" />
|
||||||
<set name="magicLvl" val="85" />
|
<set name="magicLvl" val="83" />
|
||||||
<set name="mpConsume" val="25" />
|
<set name="mpConsume" val="34" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="5000" />
|
<set name="reuseDelay" val="10000" />
|
||||||
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="ONE" />
|
||||||
<set name="trait" val="BLEED" />
|
<set name="trait" val="BLEED" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="DamOverTime" ticks="1">
|
<effect name="DamOverTime" ticks="7">
|
||||||
<param power="200" />
|
<param power="200" />
|
||||||
<sub stat="darkRes" val="60" />
|
|
||||||
</effect>
|
</effect>
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
|
|||||||
@@ -237,14 +237,13 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6813" levels="8" name="Sonic Focus">
|
<skill id="6813" levels="8" name="Sonic Focus">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 40 43 49 55 60 66 70 79 </table>
|
<table name="#magicLvl"> 40 43 49 55 60 66 70 79 </table>
|
||||||
<table name="#maxCharges"> 1 2 3 4 5 6 7 8 </table>
|
<table name="#maxCharges"> 1 2 3 4 5 6 7 8 </table>
|
||||||
<set name="blockedInOlympiad" val="true" />
|
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="reuseDelay" val="10000" /> <!-- FIXME: value unconfirmed -->
|
<set name="reuseDelay" val="10000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
<cond msgId="324">
|
<cond msgId="324">
|
||||||
@@ -259,13 +258,13 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6814" levels="8" name="Focus Force">
|
<skill id="6814" levels="8" name="Focus Force">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<table name="#magicLvl"> 24 32 40 52 60 66 72 79 </table>
|
<table name="#magicLvl"> 24 32 40 52 60 66 72 79 </table>
|
||||||
<table name="#maxCharges"> 1 2 3 4 5 6 7 8 </table>
|
<table name="#maxCharges"> 1 2 3 4 5 6 7 8 </table>
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="magicLvl" val="#magicLvl" />
|
<set name="magicLvl" val="#magicLvl" />
|
||||||
<set name="operateType" val="ACTIVE_INSTANT" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_INSTANT" />
|
||||||
<set name="reuseDelay" val="10000" /> <!-- FIXME: value unconfirmed -->
|
<set name="reuseDelay" val="10000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
<cond msgId="324">
|
<cond msgId="324">
|
||||||
@@ -1317,6 +1316,11 @@
|
|||||||
<effect name="Petrification" />
|
<effect name="Petrification" />
|
||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
|
<skill id="6883" levels="1" name="Vitality Recovery Effect">
|
||||||
|
<!-- "For 5 minutes, energy is filled to stage 4. Returns to before as time goes on." -->
|
||||||
|
<set name="operateType" val="PASSIVE" />
|
||||||
|
<set name="targetType" val="NONE" />
|
||||||
|
</skill>
|
||||||
<skill id="6884" levels="1" name="Morale Boost">
|
<skill id="6884" levels="1" name="Morale Boost">
|
||||||
<!-- none -->
|
<!-- none -->
|
||||||
<set name="abnormalTime" val="60" />
|
<set name="abnormalTime" val="60" />
|
||||||
@@ -1327,31 +1331,35 @@
|
|||||||
<set name="targetType" val="NONE" />
|
<set name="targetType" val="NONE" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6885" levels="3" name="Morale Boost">
|
<skill id="6885" levels="3" name="Morale Boost">
|
||||||
<!-- "The persistence of the brave who fight together in Dragon Valley receive resistance to Paralysis/Bleed/Poison/Stun +90, Critical Rate +50%, Critical Damage +15%, P. Atk. +15%, M. Atk. +15%, Atk. Spd. +15%, Casting Spd. +15%, and EXP bonus +20%." -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- High Five Skill -->
|
<table name="#abnormalLvl"> 2 3 4 </table>
|
||||||
<table name="#bonusExp"> 1 1 1.2 </table>
|
<table name="#critDmg"> 1.1 1.15 1.2 </table>
|
||||||
<table name="#cAtk"> 1.1 1.15 1.15 </table>
|
|
||||||
<table name="#pmAtk"> 1 1.15 1.15 </table>
|
<table name="#pmAtk"> 1 1.15 1.15 </table>
|
||||||
<table name="#pmAtkSpd"> 1 1 1.15 </table>
|
<table name="#pmAtkSpd"> 1 1 1.15 </table>
|
||||||
<table name="#rCrit"> 1.1 1.3 1.5 </table>
|
<table name="#critRate"> 1.1 1.3 1.5 </table>
|
||||||
<table name="#traits"> 50 80 90 </table>
|
<table name="#traits"> 50 80 90 </table>
|
||||||
|
<set name="abnormalLvl" val="#abnormalLvl" />
|
||||||
<set name="abnormalTime" val="60" />
|
<set name="abnormalTime" val="60" />
|
||||||
|
<set name="abnormalType" val="DRAGON_BUFF" />
|
||||||
|
<set name="affectRange" val="1000" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
|
<set name="castRange" val="1500" />
|
||||||
<set name="effectPoint" val="100" />
|
<set name="effectPoint" val="100" />
|
||||||
|
<set name="effectRange" val="1800" />
|
||||||
<set name="icon" val="icon.skill6885" />
|
<set name="icon" val="icon.skill6885" />
|
||||||
<set name="magicLvl" val="85" />
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
|
<set name="magicLvl" val="-1" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="ONE" />
|
<set name="targetType" val="PARTY" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="Buff">
|
<effect name="Buff">
|
||||||
<mul stat="critRate" val="#rCrit" />
|
<mul stat="critRate" val="#critRate" />
|
||||||
<mul stat="critDmg" val="#cAtk" />
|
<mul stat="critDmg" val="#critDmg" />
|
||||||
<mul stat="pAtk" val="#pmAtk" />
|
<mul stat="pAtk" val="#pmAtk" />
|
||||||
<mul stat="mAtk" val="#pmAtk" />
|
<mul stat="mAtk" val="#pmAtk" />
|
||||||
<mul stat="mAtkSpd" val="#pmAtkSpd" />
|
<mul stat="mAtkSpd" val="#pmAtkSpd" />
|
||||||
<mul stat="pAtkSpd" val="#pmAtkSpd" />
|
<mul stat="pAtkSpd" val="#pmAtkSpd" />
|
||||||
<mul stat="bonusExp" val="#bonusExp" />
|
|
||||||
</effect>
|
</effect>
|
||||||
<effect name="DefenceTrait">
|
<effect name="DefenceTrait">
|
||||||
<param PARALYZE="#traits" />
|
<param PARALYZE="#traits" />
|
||||||
|
|||||||
@@ -77,14 +77,17 @@
|
|||||||
<set name="targetType" val="NONE" />
|
<set name="targetType" val="NONE" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6913" levels="1" name="Challenge of Faith">
|
<skill id="6913" levels="1" name="Challenge of Faith">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<set name="abnormalLvl" val="1" />
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="15" />
|
<set name="abnormalTime" val="15" />
|
||||||
|
<set name="abnormalType" val="SUB_TRIGGER_DEFENCE" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
<set name="icon" val="icon.skill0985" />
|
<set name="icon" val="icon.skill0985" />
|
||||||
|
<set name="isMagic" val="2" /> <!-- Static Skill -->
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="magicLvl" val="83" />
|
<set name="magicLvl" val="83" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
|
<set name="reuseDelay" val="45000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
<for>
|
<for>
|
||||||
@@ -125,21 +128,25 @@
|
|||||||
<set name="targetType" val="NONE" />
|
<set name="targetType" val="NONE" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6920" levels="1" name="Collector's Fortune">
|
<skill id="6920" levels="1" name="Collector's Fortune">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
<!-- Triggered Skill for Collector's Experience -->
|
<!-- Triggered Skill for Collector's Experience -->
|
||||||
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="10" />
|
<set name="abnormalTime" val="10" />
|
||||||
|
<set name="abnormalType" val="MULTI_BUFF_A" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
<set name="icon" val="BranchSys2.icon.skill0952" />
|
<set name="icon" val="BranchSys2.icon.skill0952" />
|
||||||
|
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||||
<set name="isTriggeredSkill" val="true" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
<set name="magicLvl" val="74" />
|
<set name="magicLvl" val="74" />
|
||||||
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <!-- FIXME: value unconfirmed -->
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
<set name="reuseDelay" val="15000" /> <!-- FIXME: value unconfirmed -->
|
<set name="reuseDelay" val="15000" />
|
||||||
<set name="rideState" val="NONE" />
|
<set name="rideState" val="NONE" />
|
||||||
|
<set name="staticReuse" val="true" />
|
||||||
<set name="targetType" val="SELF" />
|
<set name="targetType" val="SELF" />
|
||||||
<for>
|
<for>
|
||||||
<effect name="Buff">
|
<effect name="Buff">
|
||||||
<mul stat="pAtk" val="1.15" />
|
<mul stat="pAtk" val="1.15" />
|
||||||
<mul stat="critRate" val="1.1" />
|
<mul stat="critRate" val="1.15" />
|
||||||
<mul stat="critDmg" val="1.1" />
|
<mul stat="critDmg" val="1.1" />
|
||||||
<mul stat="pAtkSpd" val="1.03" />
|
<mul stat="pAtkSpd" val="1.03" />
|
||||||
<add stat="runSpd" val="5" />
|
<add stat="runSpd" val="5" />
|
||||||
@@ -147,15 +154,32 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6921" levels="1" name="Penetrating Attack">
|
<skill id="6921" levels="1" name="Penetrating Attack">
|
||||||
<!-- P. Def. is decreased momentarily. -->
|
<!-- Confirmed High Five -->
|
||||||
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="30" />
|
<set name="abnormalTime" val="30" />
|
||||||
|
<set name="abnormalType" val="PD_DOWN" />
|
||||||
<set name="activateRate" val="80" />
|
<set name="activateRate" val="80" />
|
||||||
<set name="basicProperty" val="CON" />
|
<set name="basicProperty" val="CON" />
|
||||||
<set name="blockedInOlympiad" val="true" />
|
<set name="blockedInOlympiad" val="true" />
|
||||||
|
<set name="castRange" val="40" />
|
||||||
<set name="effectPoint" val="-671" />
|
<set name="effectPoint" val="-671" />
|
||||||
|
<set name="effectRange" val="400" />
|
||||||
|
<set name="hitTime" val="1500" />
|
||||||
<set name="icon" val="icon.skill0122" />
|
<set name="icon" val="icon.skill0122" />
|
||||||
<set name="operateType" val="PASSIVE" />
|
<set name="isDebuff" val="true" />
|
||||||
<set name="targetType" val="NONE" />
|
<set name="isTriggeredSkill" val="true" />
|
||||||
|
<set name="lvlBonusRate" val="2" />
|
||||||
|
<set name="mpConsume" val="43" />
|
||||||
|
<set name="nextActionAttack" val="true" />
|
||||||
|
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||||
|
<set name="reuseDelay" val="30000" />
|
||||||
|
<set name="rideState" val="NONE" />
|
||||||
|
<set name="targetType" val="ONE" />
|
||||||
|
<for>
|
||||||
|
<effect name="Debuff">
|
||||||
|
<mul stat="pDef" val="0.77" />
|
||||||
|
</effect>
|
||||||
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="6922" levels="3" name="Adventurer's Might">
|
<skill id="6922" levels="3" name="Adventurer's Might">
|
||||||
<!-- AUTO GENERATED SKILL -->
|
<!-- AUTO GENERATED SKILL -->
|
||||||
|
|||||||
@@ -68,8 +68,10 @@
|
|||||||
</for>
|
</for>
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="20006" levels="1" name="Soul Roar">
|
<skill id="20006" levels="1" name="Soul Roar">
|
||||||
<!-- High Five Skill -->
|
<!-- Confirmed High Five -->
|
||||||
|
<set name="abnormalLvl" val="1" />
|
||||||
<set name="abnormalTime" val="600" />
|
<set name="abnormalTime" val="600" />
|
||||||
|
<set name="abnormalType" val="MULTI_DEBUFF_G" />
|
||||||
<set name="effectPoint" val="611" />
|
<set name="effectPoint" val="611" />
|
||||||
<set name="hitTime" val="1500" />
|
<set name="hitTime" val="1500" />
|
||||||
<set name="icon" val="BranchSys2.icon.skill20006" />
|
<set name="icon" val="BranchSys2.icon.skill20006" />
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ import org.w3c.dom.Document;
|
|||||||
import org.w3c.dom.NamedNodeMap;
|
import org.w3c.dom.NamedNodeMap;
|
||||||
import org.w3c.dom.Node;
|
import org.w3c.dom.Node;
|
||||||
|
|
||||||
|
import com.l2jserver.gameserver.GameServer;
|
||||||
import com.l2jserver.gameserver.enums.ChatType;
|
import com.l2jserver.gameserver.enums.ChatType;
|
||||||
import com.l2jserver.gameserver.enums.IllegalActionPunishmentType;
|
import com.l2jserver.gameserver.enums.IllegalActionPunishmentType;
|
||||||
import com.l2jserver.gameserver.model.L2World;
|
import com.l2jserver.gameserver.model.L2World;
|
||||||
@@ -4067,16 +4068,17 @@ public final class Config
|
|||||||
@Override
|
@Override
|
||||||
public void load()
|
public void load()
|
||||||
{
|
{
|
||||||
File f = new File(IP_CONFIG_FILE);
|
GameServer.printSection("Network Configuration");
|
||||||
|
final File f = new File(IP_CONFIG_FILE);
|
||||||
if (f.exists())
|
if (f.exists())
|
||||||
{
|
{
|
||||||
LOGGER.log(Level.INFO, "Network Config: ipconfig.xml exists using manual configuration...");
|
LOGGER.log(Level.INFO, "Using existing ipconfig.xml.");
|
||||||
parseFile(new File(IP_CONFIG_FILE));
|
parseFile(new File(IP_CONFIG_FILE));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
// Auto configuration...
|
// Auto configuration...
|
||||||
{
|
{
|
||||||
LOGGER.log(Level.INFO, "Network Config: ipconfig.xml doesn't exists using automatic configuration...");
|
LOGGER.log(Level.INFO, "Using automatic network configuration.");
|
||||||
autoIpConfig();
|
autoIpConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4132,7 +4134,7 @@ public final class Config
|
|||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
LOGGER.log(Level.INFO, "Network Config: Failed to connect to api.externalip.net please check your internet connection using 127.0.0.1!");
|
LOGGER.log(Level.INFO, "Failed to connect to api.externalip.net please check your internet connection using 127.0.0.1!");
|
||||||
externalIp = "127.0.0.1";
|
externalIp = "127.0.0.1";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4172,7 +4174,7 @@ public final class Config
|
|||||||
{
|
{
|
||||||
_subnets.add(subnet);
|
_subnets.add(subnet);
|
||||||
_hosts.add(hostAddress);
|
_hosts.add(hostAddress);
|
||||||
LOGGER.log(Level.INFO, "Network Config: Adding new subnet: " + subnet + " address: " + hostAddress);
|
LOGGER.log(Level.INFO, "Adding new subnet: " + subnet + " address: " + hostAddress);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4180,11 +4182,11 @@ public final class Config
|
|||||||
// External host and subnet
|
// External host and subnet
|
||||||
_hosts.add(externalIp);
|
_hosts.add(externalIp);
|
||||||
_subnets.add("0.0.0.0/0");
|
_subnets.add("0.0.0.0/0");
|
||||||
LOGGER.log(Level.INFO, "Network Config: Adding new subnet: 0.0.0.0/0 address: " + externalIp);
|
LOGGER.log(Level.INFO, "Adding new subnet: 0.0.0.0/0 address: " + externalIp);
|
||||||
}
|
}
|
||||||
catch (SocketException e)
|
catch (SocketException e)
|
||||||
{
|
{
|
||||||
LOGGER.log(Level.INFO, "Network Config: Configuration failed please configure manually using ipconfig.xml", e);
|
LOGGER.log(Level.INFO, "Configuration failed please manually configure ipconfig.xml", e);
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,8 +28,7 @@ import java.util.logging.Logger;
|
|||||||
*/
|
*/
|
||||||
public abstract class AbstractConnectionFactory implements IConnectionFactory
|
public abstract class AbstractConnectionFactory implements IConnectionFactory
|
||||||
{
|
{
|
||||||
/** The logger. */
|
private static final Logger LOG = Logger.getLogger(AbstractConnectionFactory.class.getName());
|
||||||
protected static final Logger LOG = Logger.getLogger(AbstractConnectionFactory.class.getName());
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Connection getConnection()
|
public Connection getConnection()
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.l2jserver.commons.database.pool.impl;
|
package com.l2jserver.commons.database.pool.impl;
|
||||||
|
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
import com.l2jserver.commons.database.pool.AbstractConnectionFactory;
|
import com.l2jserver.commons.database.pool.AbstractConnectionFactory;
|
||||||
@@ -31,6 +33,8 @@ import com.l2jserver.commons.database.pool.IConnectionFactory;
|
|||||||
*/
|
*/
|
||||||
final class BoneCPConnectionFactory extends AbstractConnectionFactory
|
final class BoneCPConnectionFactory extends AbstractConnectionFactory
|
||||||
{
|
{
|
||||||
|
private static final Logger LOG = Logger.getLogger(BoneCPConnectionFactory.class.getName());
|
||||||
|
|
||||||
private final DataSource _dataSource = null;
|
private final DataSource _dataSource = null;
|
||||||
|
|
||||||
public BoneCPConnectionFactory()
|
public BoneCPConnectionFactory()
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ package com.l2jserver.commons.database.pool.impl;
|
|||||||
|
|
||||||
import java.beans.PropertyVetoException;
|
import java.beans.PropertyVetoException;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
@@ -36,6 +37,8 @@ import com.mchange.v2.c3p0.ComboPooledDataSource;
|
|||||||
*/
|
*/
|
||||||
final class C3P0ConnectionFactory extends AbstractConnectionFactory
|
final class C3P0ConnectionFactory extends AbstractConnectionFactory
|
||||||
{
|
{
|
||||||
|
private static final Logger LOG = Logger.getLogger(C3P0ConnectionFactory.class.getName());
|
||||||
|
|
||||||
private final ComboPooledDataSource _dataSource;
|
private final ComboPooledDataSource _dataSource;
|
||||||
|
|
||||||
public C3P0ConnectionFactory()
|
public C3P0ConnectionFactory()
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.l2jserver.commons.database.pool.impl;
|
package com.l2jserver.commons.database.pool.impl;
|
||||||
|
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
import com.l2jserver.commons.database.pool.AbstractConnectionFactory;
|
import com.l2jserver.commons.database.pool.AbstractConnectionFactory;
|
||||||
@@ -31,6 +33,8 @@ import com.l2jserver.commons.database.pool.IConnectionFactory;
|
|||||||
*/
|
*/
|
||||||
final class HikariCPConnectionFactory extends AbstractConnectionFactory
|
final class HikariCPConnectionFactory extends AbstractConnectionFactory
|
||||||
{
|
{
|
||||||
|
private static final Logger LOG = Logger.getLogger(HikariCPConnectionFactory.class.getName());
|
||||||
|
|
||||||
private final DataSource _dataSource = null;
|
private final DataSource _dataSource = null;
|
||||||
|
|
||||||
public HikariCPConnectionFactory()
|
public HikariCPConnectionFactory()
|
||||||
|
|||||||
@@ -199,10 +199,13 @@ public final class GameServer
|
|||||||
SecondaryAuthData.getInstance();
|
SecondaryAuthData.getInstance();
|
||||||
AbilityPointsData.getInstance();
|
AbilityPointsData.getInstance();
|
||||||
|
|
||||||
printSection("Skills");
|
printSection("Effects");
|
||||||
EffectHandler.getInstance().executeScript();
|
EffectHandler.getInstance().executeScript();
|
||||||
|
printSection("Enchant Skill Groups");
|
||||||
EnchantSkillGroupsData.getInstance();
|
EnchantSkillGroupsData.getInstance();
|
||||||
|
printSection("Skill Trees");
|
||||||
SkillTreesData.getInstance();
|
SkillTreesData.getInstance();
|
||||||
|
printSection("Skills");
|
||||||
SkillData.getInstance();
|
SkillData.getInstance();
|
||||||
SummonSkillsTable.getInstance();
|
SummonSkillsTable.getInstance();
|
||||||
|
|
||||||
@@ -288,18 +291,16 @@ public final class GameServer
|
|||||||
StaticObjectData.getInstance();
|
StaticObjectData.getInstance();
|
||||||
ZoneManager.getInstance();
|
ZoneManager.getInstance();
|
||||||
DoorData.getInstance();
|
DoorData.getInstance();
|
||||||
if (!Config.SERVER_CLASSIC_SUPPORT)
|
|
||||||
{
|
|
||||||
ItemAuctionManager.getInstance();
|
|
||||||
}
|
|
||||||
CastleManager.getInstance().loadInstances();
|
CastleManager.getInstance().loadInstances();
|
||||||
NpcBufferTable.getInstance();
|
NpcBufferTable.getInstance();
|
||||||
GrandBossManager.getInstance().initZones();
|
GrandBossManager.getInstance().initZones();
|
||||||
EventDroplist.getInstance();
|
EventDroplist.getInstance();
|
||||||
|
|
||||||
printSection("Olympiad");
|
|
||||||
if (!Config.SERVER_CLASSIC_SUPPORT)
|
if (!Config.SERVER_CLASSIC_SUPPORT)
|
||||||
{
|
{
|
||||||
|
printSection("Auction Manager");
|
||||||
|
ItemAuctionManager.getInstance();
|
||||||
|
|
||||||
|
printSection("Olympiad");
|
||||||
Olympiad.getInstance();
|
Olympiad.getInstance();
|
||||||
}
|
}
|
||||||
Hero.getInstance();
|
Hero.getInstance();
|
||||||
|
|||||||
@@ -1285,17 +1285,17 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|||||||
{
|
{
|
||||||
targetReconsider();
|
targetReconsider();
|
||||||
}
|
}
|
||||||
else if (getAttackTarget() != null)
|
else
|
||||||
{
|
{
|
||||||
if (getAttackTarget().isMoving())
|
final L2Character target = getAttackTarget();
|
||||||
|
if (target != null)
|
||||||
{
|
{
|
||||||
range -= 100;
|
if (target.isMoving())
|
||||||
|
{
|
||||||
|
range -= 100;
|
||||||
|
}
|
||||||
|
moveToPawn(target, Math.max(range, 5));
|
||||||
}
|
}
|
||||||
if (range < 5)
|
|
||||||
{
|
|
||||||
range = 5;
|
|
||||||
}
|
|
||||||
moveToPawn(getAttackTarget(), range);
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ package com.l2jserver.gameserver.ai;
|
|||||||
import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE;
|
import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE;
|
||||||
import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_ATTACK;
|
import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_ATTACK;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.l2jserver.gameserver.model.L2Object;
|
import com.l2jserver.gameserver.model.L2Object;
|
||||||
import com.l2jserver.gameserver.model.MobGroup;
|
import com.l2jserver.gameserver.model.MobGroup;
|
||||||
@@ -190,7 +190,7 @@ public final class L2ControllableMobAI extends L2AttackableAI
|
|||||||
}
|
}
|
||||||
|
|
||||||
_actor.setTarget(target);
|
_actor.setTarget(target);
|
||||||
// as a response, we put the target in a forcedattack mode
|
// as a response, we put the target in a forced attack mode
|
||||||
L2ControllableMobInstance theTarget = (L2ControllableMobInstance) target;
|
L2ControllableMobInstance theTarget = (L2ControllableMobInstance) target;
|
||||||
L2ControllableMobAI ctrlAi = (L2ControllableMobAI) theTarget.getAI();
|
L2ControllableMobAI ctrlAi = (L2ControllableMobAI) theTarget.getAI();
|
||||||
ctrlAi.forceAttack(_actor);
|
ctrlAi.forceAttack(_actor);
|
||||||
@@ -397,30 +397,31 @@ public final class L2ControllableMobAI extends L2AttackableAI
|
|||||||
|
|
||||||
private boolean checkAutoAttackCondition(L2Character target)
|
private boolean checkAutoAttackCondition(L2Character target)
|
||||||
{
|
{
|
||||||
if ((target == null) || !(_actor instanceof L2Attackable))
|
if ((target == null) || (target instanceof L2NpcInstance) || (target instanceof L2DoorInstance))
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
L2Attackable me = (L2Attackable) _actor;
|
|
||||||
|
|
||||||
if ((target instanceof L2NpcInstance) || (target instanceof L2DoorInstance))
|
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target.isAlikeDead() || !me.isInsideRadius(target, me.getAggroRange(), false, false) || (Math.abs(_actor.getZ() - target.getZ()) > 100))
|
// TODO(Zoey76)[#112]: This check must change if summon fall in L2Npc hierarchy.
|
||||||
|
if (target instanceof L2Npc)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if the target isn't invulnerable
|
// Check if the target isn't invulnerable
|
||||||
if (target.isInvul())
|
if (target.isInvul() || target.isAlikeDead())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Spawn protection (only against mobs)
|
// Spawn protection (only against mobs)
|
||||||
if ((target instanceof L2PcInstance) && ((L2PcInstance) target).isSpawnProtected())
|
if (target.isPlayer() && ((L2PcInstance) target).isSpawnProtected())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
final L2Attackable me = getActiveChar();
|
||||||
|
if (!me.isInsideRadius(target, me.getAggroRange(), false, false) || (Math.abs(_actor.getZ() - target.getZ()) > 100))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -434,56 +435,17 @@ public final class L2ControllableMobAI extends L2AttackableAI
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target instanceof L2Npc)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return me.isAggressive();
|
return me.isAggressive();
|
||||||
}
|
}
|
||||||
|
|
||||||
private L2Character findNextRndTarget()
|
private L2Character findNextRndTarget()
|
||||||
{
|
{
|
||||||
int aggroRange = ((L2Attackable) _actor).getAggroRange();
|
final List<L2Character> potentialTarget = _actor.getKnownList().getKnownCharactersInRadius(getActiveChar().getAggroRange()).stream().filter(this::checkAutoAttackCondition).collect(Collectors.toList());
|
||||||
L2Attackable npc = (L2Attackable) _actor;
|
|
||||||
int npcX, npcY, targetX, targetY;
|
|
||||||
double dy, dx;
|
|
||||||
double dblAggroRange = aggroRange * aggroRange;
|
|
||||||
|
|
||||||
final List<L2Character> potentialTarget = new ArrayList<>();
|
|
||||||
for (L2Character obj : npc.getKnownList().getKnownCharacters())
|
|
||||||
{
|
|
||||||
npcX = npc.getX();
|
|
||||||
npcY = npc.getY();
|
|
||||||
targetX = obj.getX();
|
|
||||||
targetY = obj.getY();
|
|
||||||
|
|
||||||
dx = npcX - targetX;
|
|
||||||
dy = npcY - targetY;
|
|
||||||
|
|
||||||
if (((dx * dx) + (dy * dy)) > dblAggroRange)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
L2Character target = obj;
|
|
||||||
if (checkAutoAttackCondition(target))
|
|
||||||
{
|
|
||||||
potentialTarget.add(target);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (potentialTarget.isEmpty())
|
if (potentialTarget.isEmpty())
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
return potentialTarget.get(Rnd.nextInt(potentialTarget.size()));
|
||||||
// we choose a random target
|
|
||||||
int choice = Rnd.nextInt(potentialTarget.size());
|
|
||||||
L2Character target = potentialTarget.get(choice);
|
|
||||||
|
|
||||||
return target;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private L2ControllableMobInstance findNextGroupTarget()
|
private L2ControllableMobInstance findNextGroupTarget()
|
||||||
|
|||||||
@@ -1738,7 +1738,7 @@ public final class SkillTreesData implements IXmlReader
|
|||||||
*/
|
*/
|
||||||
public static SkillTreesData getInstance()
|
public static SkillTreesData getInstance()
|
||||||
{
|
{
|
||||||
return SingletonHolder._instance;
|
return SingletonHolder.INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1746,6 +1746,6 @@ public final class SkillTreesData implements IXmlReader
|
|||||||
*/
|
*/
|
||||||
private static class SingletonHolder
|
private static class SingletonHolder
|
||||||
{
|
{
|
||||||
protected static final SkillTreesData _instance = new SkillTreesData();
|
protected static final SkillTreesData INSTANCE = new SkillTreesData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,19 +25,19 @@ import com.l2jserver.gameserver.data.xml.impl.AdminData;
|
|||||||
*/
|
*/
|
||||||
public class L2AccessLevel
|
public class L2AccessLevel
|
||||||
{
|
{
|
||||||
/** The access level<br> */
|
/** The access level. */
|
||||||
private int _accessLevel = 0;
|
private int _accessLevel = 0;
|
||||||
/** The access level name<br> */
|
/** The access level name. */
|
||||||
private String _name = null;
|
private String _name = null;
|
||||||
/** Child access levels */
|
/** Child access levels. */
|
||||||
L2AccessLevel _childsAccessLevel = null;
|
private L2AccessLevel _childsAccessLevel = null;
|
||||||
/** Child access levels */
|
/** Child access levels. */
|
||||||
private int _child = 0;
|
private int _child = 0;
|
||||||
/** The name color for the access level<br> */
|
/** The name color for the access level. */
|
||||||
private int _nameColor = 0;
|
private int _nameColor = 0;
|
||||||
/** The title color for the access level<br> */
|
/** The title color for the access level. */
|
||||||
private int _titleColor = 0;
|
private int _titleColor = 0;
|
||||||
/** Flag to determine if the access level has gm access<br> */
|
/** Flag to determine if the access level has GM access. */
|
||||||
private boolean _isGm = false;
|
private boolean _isGm = false;
|
||||||
/** Flag for peace zone attack */
|
/** Flag for peace zone attack */
|
||||||
private boolean _allowPeaceAttack = false;
|
private boolean _allowPeaceAttack = false;
|
||||||
@@ -89,9 +89,8 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the access level<br>
|
* Gets the access level.
|
||||||
* <br>
|
* @return the access level
|
||||||
* @return int: access level<br>
|
|
||||||
*/
|
*/
|
||||||
public int getLevel()
|
public int getLevel()
|
||||||
{
|
{
|
||||||
@@ -99,9 +98,8 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the access level name<br>
|
* Gets the access level name.
|
||||||
* <br>
|
* @return the access level name
|
||||||
* @return String: access level name<br>
|
|
||||||
*/
|
*/
|
||||||
public String getName()
|
public String getName()
|
||||||
{
|
{
|
||||||
@@ -109,9 +107,8 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the name color of the access level<br>
|
* Gets the name color of the access level.
|
||||||
* <br>
|
* @return the name color for the access level
|
||||||
* @return int: the name color for the access level<br>
|
|
||||||
*/
|
*/
|
||||||
public int getNameColor()
|
public int getNameColor()
|
||||||
{
|
{
|
||||||
@@ -119,9 +116,8 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the title color color of the access level<br>
|
* Gets the title color color of the access level.
|
||||||
* <br>
|
* @return the title color for the access level
|
||||||
* @return int: the title color for the access level<br>
|
|
||||||
*/
|
*/
|
||||||
public int getTitleColor()
|
public int getTitleColor()
|
||||||
{
|
{
|
||||||
@@ -129,9 +125,8 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retuns if the access level has gm access or not<br>
|
* Verifies if the access level has GM access or not.
|
||||||
* <br>
|
* @return {@code true} if access level have GM access, otherwise {@code false}
|
||||||
* @return boolean: true if access level have gm access, otherwise false<br>
|
|
||||||
*/
|
*/
|
||||||
public boolean isGm()
|
public boolean isGm()
|
||||||
{
|
{
|
||||||
@@ -139,9 +134,8 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if the access level is allowed to attack in peace zone or not<br>
|
* Verifies if the access level is allowed to attack in peace zone or not.
|
||||||
* <br>
|
* @return {@code true} if the access level is allowed to attack in peace zone, otherwise {@code false}
|
||||||
* @return boolean: true if the access level is allowed to attack in peace zone, otherwise false<br>
|
|
||||||
*/
|
*/
|
||||||
public boolean allowPeaceAttack()
|
public boolean allowPeaceAttack()
|
||||||
{
|
{
|
||||||
@@ -149,9 +143,8 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retruns if the access level is allowed to use fixed res or not<br>
|
* Verifies if the access level is allowed to use fixed resurrection or not.
|
||||||
* <br>
|
* @return {@ode true} if the access level is allowed to use fixed resurrection, otherwise {@code false}
|
||||||
* @return true if the access level is allowed to use fixed res, otherwise false<br>
|
|
||||||
*/
|
*/
|
||||||
public boolean allowFixedRes()
|
public boolean allowFixedRes()
|
||||||
{
|
{
|
||||||
@@ -159,9 +152,8 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if the access level is allowed to perform transactions or not<br>
|
* Verifies if the access level is allowed to perform transactions or not.
|
||||||
* <br>
|
* @return {@ode true} if access level is allowed to perform transactions, otherwise {@code false}
|
||||||
* @return boolean: true if access level is allowed to perform transactions, otherwise false<br>
|
|
||||||
*/
|
*/
|
||||||
public boolean allowTransaction()
|
public boolean allowTransaction()
|
||||||
{
|
{
|
||||||
@@ -169,9 +161,8 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if the access level is allowed to use AltG commands or not<br>
|
* Verifies if the access level is allowed to use AltG commands or not.
|
||||||
* <br>
|
* @return {@ode true} if access level is allowed to use AltG commands, otherwise {@code false}
|
||||||
* @return boolean: true if access level is allowed to use AltG commands, otherwise false<br>
|
|
||||||
*/
|
*/
|
||||||
public boolean allowAltG()
|
public boolean allowAltG()
|
||||||
{
|
{
|
||||||
@@ -179,9 +170,8 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if the access level can give damage or not<br>
|
* Verifies if the access level can give damage or not.
|
||||||
* <br>
|
* @return {@ode true} if the access level can give damage, otherwise {@code false}
|
||||||
* @return boolean: true if the access level can give damage, otherwise false<br>
|
|
||||||
*/
|
*/
|
||||||
public boolean canGiveDamage()
|
public boolean canGiveDamage()
|
||||||
{
|
{
|
||||||
@@ -189,9 +179,8 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if the access level can take aggro or not<br>
|
* Verifies if the access level can take aggro or not.
|
||||||
* <br>
|
* @return {@ode true} if the access level can take aggro, otherwise {@code false}
|
||||||
* @return boolean: true if the access level can take aggro, otherwise false<br>
|
|
||||||
*/
|
*/
|
||||||
public boolean canTakeAggro()
|
public boolean canTakeAggro()
|
||||||
{
|
{
|
||||||
@@ -199,9 +188,8 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if the access level can gain exp or not<br>
|
* Verifies if the access level can gain exp or not.
|
||||||
* <br>
|
* @return {@ode true} if the access level can gain exp, otherwise {@code false}
|
||||||
* @return boolean: true if the access level can gain exp, otherwise false<br>
|
|
||||||
*/
|
*/
|
||||||
public boolean canGainExp()
|
public boolean canGainExp()
|
||||||
{
|
{
|
||||||
@@ -209,9 +197,9 @@ public class L2AccessLevel
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if the access level contains allowedAccess as child<br>
|
* Returns if the access level contains allowedAccess as child.
|
||||||
* @param accessLevel as AccessLevel<br>
|
* @param accessLevel the parent access level
|
||||||
* @return boolean: true if a child access level is equals to allowedAccess, otherwise false<br>
|
* @return {@ode true} if a child access level is equals to allowedAccess, otherwise {@code false}
|
||||||
*/
|
*/
|
||||||
public boolean hasChildAccess(L2AccessLevel accessLevel)
|
public boolean hasChildAccess(L2AccessLevel accessLevel)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1156,6 +1156,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
player.updatePvPStatus(target);
|
player.updatePvPStatus(target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if hit isn't missed
|
// Check if hit isn't missed
|
||||||
if (!hitted)
|
if (!hitted)
|
||||||
{
|
{
|
||||||
@@ -1192,7 +1193,9 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Notify AI with EVT_READY_TO_ACT
|
// Notify AI with EVT_READY_TO_ACT
|
||||||
ThreadPoolManager.getInstance().scheduleAi(new NotifyAITask(this, CtrlEvent.EVT_READY_TO_ACT), timeAtk + reuse);
|
// Old method - use in case of bow reuse issues occur.
|
||||||
|
// ThreadPoolManager.getInstance().scheduleAi(new NotifyAITask(this, CtrlEvent.EVT_READY_TO_ACT), timeAtk + reuse);
|
||||||
|
ThreadPoolManager.getInstance().scheduleAi(new NotifyAITask(this, CtrlEvent.EVT_READY_TO_ACT), timeAtk);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
@@ -2636,6 +2639,8 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
{
|
{
|
||||||
if (_ai == null)
|
if (_ai == null)
|
||||||
{
|
{
|
||||||
|
// Return the new AI within the synchronized block
|
||||||
|
// to avoid being nulled by other threads
|
||||||
return _ai = initAI();
|
return _ai = initAI();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2655,7 +2660,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
|
|
||||||
public void setAI(L2CharacterAI newAI)
|
public void setAI(L2CharacterAI newAI)
|
||||||
{
|
{
|
||||||
L2CharacterAI oldAI = _ai;
|
final L2CharacterAI oldAI = _ai;
|
||||||
if ((oldAI != null) && (oldAI != newAI) && (oldAI instanceof L2AttackableAI))
|
if ((oldAI != null) && (oldAI != newAI) && (oldAI instanceof L2AttackableAI))
|
||||||
{
|
{
|
||||||
oldAI.stopAITask();
|
oldAI.stopAITask();
|
||||||
@@ -5330,19 +5335,28 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
|
|
||||||
public int calculateReuseTime(L2Character target, L2Weapon weapon)
|
public int calculateReuseTime(L2Character target, L2Weapon weapon)
|
||||||
{
|
{
|
||||||
if ((weapon == null) || isTransformed())
|
if (isTransformed())
|
||||||
|
{
|
||||||
|
switch (getAttackType())
|
||||||
|
{
|
||||||
|
case BOW:
|
||||||
|
case CROSSBOW:
|
||||||
|
return (int) ((517500 * getStat().getWeaponReuseModifier(null)) / getStat().getPAtkSpd());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((weapon == null))
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int reuse = weapon.getReuseDelay();
|
int reuse = weapon.getReuseDelay();
|
||||||
|
|
||||||
// only bows should continue for now
|
// only bows should continue for now
|
||||||
if (reuse == 0)
|
if (reuse == 0)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
reuse *= getStat().getWeaponReuseModifier(null);
|
||||||
reuse *= getStat().getWeaponReuseModifier(target);
|
|
||||||
double atkSpd = getStat().getPAtkSpd();
|
double atkSpd = getStat().getPAtkSpd();
|
||||||
switch (weapon.getItemType())
|
switch (weapon.getItemType())
|
||||||
{
|
{
|
||||||
@@ -6818,7 +6832,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dummy method overriden in {@link L2PcInstance}
|
* Dummy method overridden in {@link L2PcInstance}
|
||||||
* @return {@code true} if current player can revive and shows 'To Village' button upon death, {@code false} otherwise.
|
* @return {@code true} if current player can revive and shows 'To Village' button upon death, {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
public boolean canRevive()
|
public boolean canRevive()
|
||||||
@@ -6827,7 +6841,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dummy method overriden in {@link L2PcInstance}
|
* Dummy method overridden in {@link L2PcInstance}
|
||||||
* @param val
|
* @param val
|
||||||
*/
|
*/
|
||||||
public void setCanRevive(boolean val)
|
public void setCanRevive(boolean val)
|
||||||
@@ -6835,7 +6849,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dummy method overriden in {@link L2Attackable}
|
* Dummy method overridden in {@link L2Attackable}
|
||||||
* @return {@code true} if there is a loot to sweep, {@code false} otherwise.
|
* @return {@code true} if there is a loot to sweep, {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
public boolean isSweepActive()
|
public boolean isSweepActive()
|
||||||
@@ -6844,7 +6858,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dummy method overriden in {@link L2PcInstance}
|
* Dummy method overridden in {@link L2PcInstance}
|
||||||
* @return {@code true} if player is on event, {@code false} otherwise.
|
* @return {@code true} if player is on event, {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
public boolean isOnEvent()
|
public boolean isOnEvent()
|
||||||
@@ -6853,7 +6867,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dummy method overriden in {@link L2PcInstance}
|
* Dummy method overridden in {@link L2PcInstance}
|
||||||
* @return the clan id of current character.
|
* @return the clan id of current character.
|
||||||
*/
|
*/
|
||||||
public int getClanId()
|
public int getClanId()
|
||||||
@@ -6862,7 +6876,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dummy method overriden in {@link L2PcInstance}
|
* Dummy method overridden in {@link L2PcInstance}
|
||||||
* @return the clan of current character.
|
* @return the clan of current character.
|
||||||
*/
|
*/
|
||||||
public L2Clan getClan()
|
public L2Clan getClan()
|
||||||
@@ -6871,7 +6885,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dummy method overriden in {@link L2PcInstance}
|
* Dummy method overridden in {@link L2PcInstance}
|
||||||
* @return {@code true} if player is in academy, {@code false} otherwise.
|
* @return {@code true} if player is in academy, {@code false} otherwise.
|
||||||
*/
|
*/
|
||||||
public boolean isAcademyMember()
|
public boolean isAcademyMember()
|
||||||
@@ -6880,7 +6894,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dummy method overriden in {@link L2PcInstance}
|
* Dummy method overridden in {@link L2PcInstance}
|
||||||
* @return the pledge type of current character.
|
* @return the pledge type of current character.
|
||||||
*/
|
*/
|
||||||
public int getPledgeType()
|
public int getPledgeType()
|
||||||
@@ -6889,7 +6903,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dummy method overriden in {@link L2PcInstance}
|
* Dummy method overridden in {@link L2PcInstance}
|
||||||
* @return the alliance id of current character.
|
* @return the alliance id of current character.
|
||||||
*/
|
*/
|
||||||
public int getAllyId()
|
public int getAllyId()
|
||||||
|
|||||||
@@ -191,23 +191,13 @@ public class L2Npc extends L2Character
|
|||||||
return getTemplate().getSpiritShotChance();
|
return getTemplate().getSpiritShotChance();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getMinSkillChance()
|
|
||||||
{
|
|
||||||
return getTemplate().getMinSkillChance();
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getMaxSkillChance()
|
|
||||||
{
|
|
||||||
return getTemplate().getMaxSkillChance();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Verifies if the NPC can cast a skill given the minimum and maximum skill chances.
|
* Verifies if the NPC can cast a skill given the minimum and maximum skill chances.
|
||||||
* @return {@code true} if the NPC has chances of casting a skill
|
* @return {@code true} if the NPC has chances of casting a skill
|
||||||
*/
|
*/
|
||||||
public boolean hasSkillChance()
|
public boolean hasSkillChance()
|
||||||
{
|
{
|
||||||
return Rnd.get(100) < Rnd.get(getMinSkillChance(), getMaxSkillChance());
|
return Rnd.get(100) < Rnd.get(getTemplate().getMinSkillChance(), getTemplate().getMaxSkillChance());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canMove()
|
public boolean canMove()
|
||||||
|
|||||||
@@ -78,9 +78,6 @@ public class L2MonsterInstance extends L2Attackable
|
|||||||
return super.isAutoAttackable(attacker) && !isEventMob();
|
return super.isAutoAttackable(attacker) && !isEventMob();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return True if the L2MonsterInstance is Aggressive (aggroRange > 0).
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAggressive()
|
public boolean isAggressive()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7027,38 +7027,38 @@ public final class L2PcInstance extends L2Playable
|
|||||||
{
|
{
|
||||||
// Retrieve the L2PcInstance from the characters table of the database
|
// Retrieve the L2PcInstance from the characters table of the database
|
||||||
ps.setInt(1, objectId);
|
ps.setInt(1, objectId);
|
||||||
try (ResultSet rs = ps.executeQuery())
|
try (ResultSet rset = ps.executeQuery())
|
||||||
{
|
{
|
||||||
if (rs.next())
|
if (rset.next())
|
||||||
{
|
{
|
||||||
final int activeClassId = rs.getInt("classid");
|
final int activeClassId = rset.getInt("classid");
|
||||||
final boolean female = rs.getInt("sex") != Sex.MALE.ordinal();
|
final boolean female = rset.getInt("sex") != Sex.MALE.ordinal();
|
||||||
final L2PcTemplate template = PlayerTemplateData.getInstance().getTemplate(activeClassId);
|
final L2PcTemplate template = PlayerTemplateData.getInstance().getTemplate(activeClassId);
|
||||||
PcAppearance app = new PcAppearance(rs.getByte("face"), rs.getByte("hairColor"), rs.getByte("hairStyle"), female);
|
PcAppearance app = new PcAppearance(rset.getByte("face"), rset.getByte("hairColor"), rset.getByte("hairStyle"), female);
|
||||||
|
|
||||||
player = new L2PcInstance(objectId, template, rs.getString("account_name"), app);
|
player = new L2PcInstance(objectId, template, rset.getString("account_name"), app);
|
||||||
player.setName(rs.getString("char_name"));
|
player.setName(rset.getString("char_name"));
|
||||||
restorePremiumSystemData(player, rs.getString("account_name"));
|
restorePremiumSystemData(player, rset.getString("account_name"));
|
||||||
player._lastAccess = rs.getLong("lastAccess");
|
player._lastAccess = rset.getLong("lastAccess");
|
||||||
|
|
||||||
player.getStat().setExp(rs.getLong("exp"));
|
player.getStat().setExp(rset.getLong("exp"));
|
||||||
player.setExpBeforeDeath(rs.getLong("expBeforeDeath"));
|
player.setExpBeforeDeath(rset.getLong("expBeforeDeath"));
|
||||||
player.getStat().setLevel(rs.getByte("level"));
|
player.getStat().setLevel(rset.getByte("level"));
|
||||||
player.getStat().setSp(rs.getLong("sp"));
|
player.getStat().setSp(rset.getLong("sp"));
|
||||||
|
|
||||||
player.setWantsPeace(rs.getInt("wantspeace"));
|
player.setWantsPeace(rset.getInt("wantspeace"));
|
||||||
|
|
||||||
player.setHeading(rs.getInt("heading"));
|
player.setHeading(rset.getInt("heading"));
|
||||||
|
|
||||||
player.setReputation(rs.getInt("reputation"));
|
player.setReputation(rset.getInt("reputation"));
|
||||||
player.setFame(rs.getInt("fame"));
|
player.setFame(rset.getInt("fame"));
|
||||||
player.setRaidPoints(rs.getInt("raidpoints"));
|
player.setRaidPoints(rset.getInt("raidpoints"));
|
||||||
player.setPvpKills(rs.getInt("pvpkills"));
|
player.setPvpKills(rset.getInt("pvpkills"));
|
||||||
player.setPkKills(rs.getInt("pkkills"));
|
player.setPkKills(rset.getInt("pkkills"));
|
||||||
player.setOnlineTime(rs.getLong("onlinetime"));
|
player.setOnlineTime(rset.getLong("onlinetime"));
|
||||||
player.setNoble(rs.getInt("nobless") == 1);
|
player.setNoble(rset.getInt("nobless") == 1);
|
||||||
|
|
||||||
final int factionId = rs.getInt("faction");
|
final int factionId = rset.getInt("faction");
|
||||||
if (factionId == 1)
|
if (factionId == 1)
|
||||||
{
|
{
|
||||||
player.setGood();
|
player.setGood();
|
||||||
@@ -7068,25 +7068,100 @@ public final class L2PcInstance extends L2Playable
|
|||||||
player.setEvil();
|
player.setEvil();
|
||||||
}
|
}
|
||||||
|
|
||||||
player.setClanJoinExpiryTime(rs.getLong("clan_join_expiry_time"));
|
player.setClanJoinExpiryTime(rset.getLong("clan_join_expiry_time"));
|
||||||
if (player.getClanJoinExpiryTime() < System.currentTimeMillis())
|
if (player.getClanJoinExpiryTime() < System.currentTimeMillis())
|
||||||
{
|
{
|
||||||
player.setClanJoinExpiryTime(0);
|
player.setClanJoinExpiryTime(0);
|
||||||
}
|
}
|
||||||
player.setClanCreateExpiryTime(rs.getLong("clan_create_expiry_time"));
|
player.setClanCreateExpiryTime(rset.getLong("clan_create_expiry_time"));
|
||||||
if (player.getClanCreateExpiryTime() < System.currentTimeMillis())
|
if (player.getClanCreateExpiryTime() < System.currentTimeMillis())
|
||||||
{
|
{
|
||||||
player.setClanCreateExpiryTime(0);
|
player.setClanCreateExpiryTime(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int clanId = rs.getInt("clanid");
|
player.setPowerGrade(rset.getInt("power_grade"));
|
||||||
player.setPowerGrade(rs.getInt("power_grade"));
|
player.setPledgeType(rset.getInt("subpledge"));
|
||||||
player.setPledgeType(rs.getInt("subpledge"));
|
|
||||||
// player.setApprentice(rs.getInt("apprentice"));
|
// player.setApprentice(rs.getInt("apprentice"));
|
||||||
|
|
||||||
|
player.setDeleteTimer(rset.getLong("deletetime"));
|
||||||
|
player.setTitle(rset.getString("title"));
|
||||||
|
player.setAccessLevel(rset.getInt("accesslevel"), false);
|
||||||
|
int titleColor = rset.getInt("title_color");
|
||||||
|
if (titleColor != PcAppearance.DEFAULT_TITLE_COLOR)
|
||||||
|
{
|
||||||
|
player.getAppearance().setTitleColor(titleColor);
|
||||||
|
}
|
||||||
|
player.setFistsWeaponItem(player.findFistsWeaponItem(activeClassId));
|
||||||
|
player.setUptime(System.currentTimeMillis());
|
||||||
|
|
||||||
|
currentHp = rset.getDouble("curHp");
|
||||||
|
currentCp = rset.getDouble("curCp");
|
||||||
|
currentMp = rset.getDouble("curMp");
|
||||||
|
|
||||||
|
player._classIndex = 0;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
player.setBaseClass(rset.getInt("base_class"));
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
// TODO: Should this be logged?
|
||||||
|
player.setBaseClass(activeClassId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore Subclass Data (cannot be done earlier in function)
|
||||||
|
if (restoreSubClassData(player))
|
||||||
|
{
|
||||||
|
if (activeClassId != player.getBaseClass())
|
||||||
|
{
|
||||||
|
for (SubClass subClass : player.getSubClasses().values())
|
||||||
|
{
|
||||||
|
if (subClass.getClassId() == activeClassId)
|
||||||
|
{
|
||||||
|
player._classIndex = subClass.getClassIndex();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((player.getClassIndex() == 0) && (activeClassId != player.getBaseClass()))
|
||||||
|
{
|
||||||
|
// Subclass in use but doesn't exist in DB -
|
||||||
|
// a possible restart-while-modifysubclass cheat has been attempted.
|
||||||
|
// Switching to use base class
|
||||||
|
player.setClassId(player.getBaseClass());
|
||||||
|
_log.warning("Player " + player.getName() + " reverted to base class. Possibly has tried a relogin exploit while subclassing.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player._activeClass = activeClassId;
|
||||||
|
}
|
||||||
|
|
||||||
|
player.setApprentice(rset.getInt("apprentice"));
|
||||||
|
player.setSponsor(rset.getInt("sponsor"));
|
||||||
|
player.setLvlJoinedAcademy(rset.getInt("lvl_joined_academy"));
|
||||||
|
|
||||||
|
CursedWeaponsManager.getInstance().checkPlayer(player);
|
||||||
|
|
||||||
|
// Set the x,y,z position of the L2PcInstance and make it invisible
|
||||||
|
player.setXYZInvisible(rset.getInt("x"), rset.getInt("y"), rset.getInt("z"));
|
||||||
|
|
||||||
|
// Set Teleport Bookmark Slot
|
||||||
|
player.setBookMarkSlot(rset.getInt("BookmarkSlot"));
|
||||||
|
|
||||||
|
player._vitalityPoints = rset.getInt("vitality_points");
|
||||||
|
|
||||||
|
player.setPcBangPoints(rset.getInt("pccafe_points"));
|
||||||
|
|
||||||
|
// character creation Time
|
||||||
|
player.getCreateDate().setTimeInMillis(rset.getTimestamp("createDate").getTime());
|
||||||
|
|
||||||
|
// Language
|
||||||
|
player.setLang(rset.getString("language"));
|
||||||
|
|
||||||
// Set Hero status if it applies
|
// Set Hero status if it applies
|
||||||
player.setHero(Hero.getInstance().isHero(objectId));
|
player.setHero(Hero.getInstance().isHero(objectId));
|
||||||
|
|
||||||
|
int clanId = rset.getInt("clanid");
|
||||||
if (clanId > 0)
|
if (clanId > 0)
|
||||||
{
|
{
|
||||||
player.setClan(ClanTable.getInstance().getClan(clanId));
|
player.setClan(ClanTable.getInstance().getClan(clanId));
|
||||||
@@ -7124,81 +7199,6 @@ public final class L2PcInstance extends L2Playable
|
|||||||
player.getClanPrivileges().clear();
|
player.getClanPrivileges().clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
player.setDeleteTimer(rs.getLong("deletetime"));
|
|
||||||
player.setTitle(rs.getString("title"));
|
|
||||||
player.setAccessLevel(rs.getInt("accesslevel"), false);
|
|
||||||
int titleColor = rs.getInt("title_color");
|
|
||||||
if (titleColor != PcAppearance.DEFAULT_TITLE_COLOR)
|
|
||||||
{
|
|
||||||
player.getAppearance().setTitleColor(titleColor);
|
|
||||||
}
|
|
||||||
player.setFistsWeaponItem(player.findFistsWeaponItem(activeClassId));
|
|
||||||
player.setUptime(System.currentTimeMillis());
|
|
||||||
|
|
||||||
currentHp = rs.getDouble("curHp");
|
|
||||||
currentCp = rs.getDouble("curCp");
|
|
||||||
currentMp = rs.getDouble("curMp");
|
|
||||||
|
|
||||||
player._classIndex = 0;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
player.setBaseClass(rs.getInt("base_class"));
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
// TODO: Should this be logged?
|
|
||||||
player.setBaseClass(activeClassId);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Restore Subclass Data (cannot be done earlier in function)
|
|
||||||
if (restoreSubClassData(player))
|
|
||||||
{
|
|
||||||
if (activeClassId != player.getBaseClass())
|
|
||||||
{
|
|
||||||
for (SubClass subClass : player.getSubClasses().values())
|
|
||||||
{
|
|
||||||
if (subClass.getClassId() == activeClassId)
|
|
||||||
{
|
|
||||||
player._classIndex = subClass.getClassIndex();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((player.getClassIndex() == 0) && (activeClassId != player.getBaseClass()))
|
|
||||||
{
|
|
||||||
// Subclass in use but doesn't exist in DB -
|
|
||||||
// a possible restart-while-modifysubclass cheat has been attempted.
|
|
||||||
// Switching to use base class
|
|
||||||
player.setClassId(player.getBaseClass());
|
|
||||||
_log.warning("Player " + player.getName() + " reverted to base class. Possibly has tried a relogin exploit while subclassing.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player._activeClass = activeClassId;
|
|
||||||
}
|
|
||||||
|
|
||||||
player.setApprentice(rs.getInt("apprentice"));
|
|
||||||
player.setSponsor(rs.getInt("sponsor"));
|
|
||||||
player.setLvlJoinedAcademy(rs.getInt("lvl_joined_academy"));
|
|
||||||
|
|
||||||
CursedWeaponsManager.getInstance().checkPlayer(player);
|
|
||||||
|
|
||||||
// Set the x,y,z position of the L2PcInstance and make it invisible
|
|
||||||
player.setXYZInvisible(rs.getInt("x"), rs.getInt("y"), rs.getInt("z"));
|
|
||||||
|
|
||||||
// Set Teleport Bookmark Slot
|
|
||||||
player.setBookMarkSlot(rs.getInt("BookmarkSlot"));
|
|
||||||
|
|
||||||
player._vitalityPoints = rs.getInt("vitality_points");
|
|
||||||
|
|
||||||
player.setPcBangPoints(rs.getInt("pccafe_points"));
|
|
||||||
|
|
||||||
// character creation Time
|
|
||||||
player.getCreateDate().setTimeInMillis(rs.getTimestamp("createDate").getTime());
|
|
||||||
|
|
||||||
// Language
|
|
||||||
player.setLang(rs.getString("language"));
|
|
||||||
|
|
||||||
// Retrieve the name and ID of the other characters assigned to this account.
|
// Retrieve the name and ID of the other characters assigned to this account.
|
||||||
try (PreparedStatement stmt = con.prepareStatement("SELECT charId, char_name FROM characters WHERE account_name=? AND charId<>?"))
|
try (PreparedStatement stmt = con.prepareStatement("SELECT charId, char_name FROM characters WHERE account_name=? AND charId<>?"))
|
||||||
{
|
{
|
||||||
@@ -8939,17 +8939,12 @@ public final class L2PcInstance extends L2Playable
|
|||||||
// Are the target and the player in the same duel?
|
// Are the target and the player in the same duel?
|
||||||
if (isInDuel())
|
if (isInDuel())
|
||||||
{
|
{
|
||||||
// Get L2PcInstance
|
final L2PcInstance cha = target.getActingPlayer();
|
||||||
if (target instanceof L2Playable)
|
if ((cha != null) && (cha.getDuelId() != getDuelId()))
|
||||||
{
|
{
|
||||||
// Get L2PcInstance
|
sendMessage("You cannot do this while duelling.");
|
||||||
L2PcInstance cha = target.getActingPlayer();
|
sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
if (cha.getDuelId() != getDuelId())
|
return false;
|
||||||
{
|
|
||||||
sendMessage("You cannot do this while duelling.");
|
|
||||||
sendPacket(ActionFailed.STATIC_PACKET);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -9119,13 +9114,13 @@ public final class L2PcInstance extends L2Playable
|
|||||||
case SELF:
|
case SELF:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (!checkPvpSkill(target, skill) && !getAccessLevel().allowPeaceAttack() && target.isPlayable())
|
// Verify that player can attack a player or summon
|
||||||
|
if (target.isPlayable() && !getAccessLevel().allowPeaceAttack() && !checkPvpSkill(target, skill))
|
||||||
{
|
{
|
||||||
|
// Send a System Message to the player
|
||||||
// Send a System Message to the L2PcInstance
|
|
||||||
sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
|
sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
|
||||||
|
|
||||||
// Send a Server->Client packet ActionFailed to the L2PcInstance
|
// Send a Server->Client packet ActionFailed to the player
|
||||||
sendPacket(ActionFailed.STATIC_PACKET);
|
sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -9192,7 +9187,7 @@ public final class L2PcInstance extends L2Playable
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(target instanceof L2Playable))
|
if (!target.isPlayable())
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -9243,7 +9238,6 @@ public final class L2PcInstance extends L2Playable
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final boolean isCtrlPressed = (getCurrentSkill() != null) && getCurrentSkill().isCtrlPressed();
|
final boolean isCtrlPressed = (getCurrentSkill() != null) && getCurrentSkill().isCtrlPressed();
|
||||||
@@ -9289,18 +9283,19 @@ public final class L2PcInstance extends L2Playable
|
|||||||
{
|
{
|
||||||
if (aClan.isAtWarWith(tClan.getId()) && tClan.isAtWarWith(aClan.getId()))
|
if (aClan.isAtWarWith(tClan.getId()) && tClan.isAtWarWith(aClan.getId()))
|
||||||
{
|
{
|
||||||
// Check if skill can do dmg
|
// Check if skill can do damage
|
||||||
return true; // Always return true at war.
|
if ((skill.isAOE() && (skill.getEffectRange() > 0)) && isCtrlPressed && (getTarget() == target))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return isCtrlPressed;
|
||||||
}
|
}
|
||||||
else if ((getClanId() == targetPlayer.getClanId()) || ((getAllyId() > 0) && (getAllyId() == targetPlayer.getAllyId())))
|
else if ((getClanId() == targetPlayer.getClanId()) || ((getAllyId() > 0) && (getAllyId() == targetPlayer.getAllyId())))
|
||||||
{
|
{
|
||||||
// Check if skill can do dmg
|
// Check if skill can do damage
|
||||||
if ((skill.getEffectRange() > 0) && isCtrlPressed && (getTarget() == target))
|
if ((skill.getEffectRange() > 0) && isCtrlPressed && (getTarget() == target) && skill.isDamage())
|
||||||
{
|
{
|
||||||
if (skill.isDamage())
|
return true;
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -9317,15 +9312,12 @@ public final class L2PcInstance extends L2Playable
|
|||||||
}
|
}
|
||||||
|
|
||||||
// On retail, it is impossible to debuff a "peaceful" player.
|
// On retail, it is impossible to debuff a "peaceful" player.
|
||||||
if ((targetPlayer.getPvpFlag() == 0) && (targetPlayer.getReputation() >= 0))
|
if ((targetPlayer.getPvpFlag() == 0) && (targetPlayer.getReputation() > 0))
|
||||||
{
|
{
|
||||||
// Check if skill can do dmg
|
// Check if skill can do damage
|
||||||
if ((skill.getEffectRange() > 0) && isCtrlPressed && (getTarget() == target))
|
if ((skill.getEffectRange() > 0) && isCtrlPressed && (getTarget() == target) && skill.isDamage())
|
||||||
{
|
{
|
||||||
if (skill.isDamage())
|
return true;
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ public enum L2EffectType
|
|||||||
HEAL,
|
HEAL,
|
||||||
HP_DRAIN,
|
HP_DRAIN,
|
||||||
MAGICAL_ATTACK,
|
MAGICAL_ATTACK,
|
||||||
|
MAGICAL_ATTACK_MP,
|
||||||
MANAHEAL_BY_LEVEL,
|
MANAHEAL_BY_LEVEL,
|
||||||
MANAHEAL_PERCENT,
|
MANAHEAL_PERCENT,
|
||||||
MUTE,
|
MUTE,
|
||||||
|
|||||||
@@ -1504,7 +1504,7 @@ public class Quest extends AbstractScript implements IIdentifiable
|
|||||||
{
|
{
|
||||||
showHtmlFile(player, res, npc);
|
showHtmlFile(player, res, npc);
|
||||||
}
|
}
|
||||||
else if (res.startsWith("<html>"))
|
else if (res.startsWith("<html"))
|
||||||
{
|
{
|
||||||
final NpcHtmlMessage npcReply = new NpcHtmlMessage(npc != null ? npc.getObjectId() : 0, res);
|
final NpcHtmlMessage npcReply = new NpcHtmlMessage(npc != null ? npc.getObjectId() : 0, res);
|
||||||
npcReply.replace("%playername%", player.getName());
|
npcReply.replace("%playername%", player.getName());
|
||||||
|
|||||||
@@ -91,6 +91,7 @@ public enum AbnormalType
|
|||||||
CRITICAL_PROB_UP,
|
CRITICAL_PROB_UP,
|
||||||
CURSE_LIFE_FLOW,
|
CURSE_LIFE_FLOW,
|
||||||
DAMAGE_AMPLIFY,
|
DAMAGE_AMPLIFY,
|
||||||
|
DANCE_DEFENCE_MOTION1,
|
||||||
DANCE_OF_ALIGNMENT,
|
DANCE_OF_ALIGNMENT,
|
||||||
DANCE_OF_AQUA_GUARD,
|
DANCE_OF_AQUA_GUARD,
|
||||||
DANCE_OF_BERSERKER,
|
DANCE_OF_BERSERKER,
|
||||||
@@ -122,6 +123,7 @@ public enum AbnormalType
|
|||||||
DMG_SHIELD,
|
DMG_SHIELD,
|
||||||
DOT_ATTR,
|
DOT_ATTR,
|
||||||
DOT_MP,
|
DOT_MP,
|
||||||
|
DRAGON_BUFF,
|
||||||
DRAGON_BREATH,
|
DRAGON_BREATH,
|
||||||
DUELIST_SPIRIT,
|
DUELIST_SPIRIT,
|
||||||
DWARF_ATTACK_BUFF,
|
DWARF_ATTACK_BUFF,
|
||||||
@@ -289,6 +291,7 @@ public enum AbnormalType
|
|||||||
SOA_BUFF1,
|
SOA_BUFF1,
|
||||||
SOA_BUFF2,
|
SOA_BUFF2,
|
||||||
SOA_BUFF3,
|
SOA_BUFF3,
|
||||||
|
SONG_BATTLE_WHISPER,
|
||||||
SONG_OF_CHAMPION,
|
SONG_OF_CHAMPION,
|
||||||
SONG_OF_EARTH,
|
SONG_OF_EARTH,
|
||||||
SONG_OF_ELEMENTAL,
|
SONG_OF_ELEMENTAL,
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ package com.l2jserver.gameserver.network.serverpackets;
|
|||||||
*/
|
*/
|
||||||
public class ExDuelStart extends L2GameServerPacket
|
public class ExDuelStart extends L2GameServerPacket
|
||||||
{
|
{
|
||||||
public static final ExDuelReady PLAYER_DUEL = new ExDuelReady(false);
|
public static final ExDuelStart PLAYER_DUEL = new ExDuelStart(false);
|
||||||
public static final ExDuelReady PARTY_DUEL = new ExDuelReady(true);
|
public static final ExDuelStart PARTY_DUEL = new ExDuelStart(true);
|
||||||
|
|
||||||
private final boolean _partyDuel;
|
private final boolean _partyDuel;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user