Sync with L2JServer Jan 12th 2015.
This commit is contained in:
@@ -201,7 +201,6 @@ public final class DragonValley extends AbstractNpcAI
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
((L2Attackable) npc).setOnKillDelay(0);
|
||||
if (npc.getId() == EXPLODING_ORC_GHOST)
|
||||
{
|
||||
startQuestTimer("SELF_DESTRUCTION", 3000, npc, null);
|
||||
@@ -296,4 +295,4 @@ public final class DragonValley extends AbstractNpcAI
|
||||
{
|
||||
new DragonValley();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,11 +127,9 @@ public final class LairOfAntharas extends AbstractNpcAI
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
final L2Attackable mob = (L2Attackable) npc;
|
||||
mob.setOnKillDelay(0);
|
||||
if ((npc.getId() == DRAGON_GUARD) || (npc.getId() == DRAGON_MAGE))
|
||||
{
|
||||
mob.setIsNoRndWalk(true);
|
||||
npc.setIsNoRndWalk(true);
|
||||
startQuestTimer("CHECK_HOME", 10000, npc, null, true);
|
||||
}
|
||||
return super.onSpawn(npc);
|
||||
|
||||
@@ -713,7 +713,6 @@ public final class Antharas extends AbstractNpcAI
|
||||
{
|
||||
cancelQuestTimer("SET_REGEN", npc, null);
|
||||
startQuestTimer("SET_REGEN", 60000, npc, null);
|
||||
((L2Attackable) npc).setOnKillDelay(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -20,7 +20,6 @@ package ai.individual;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Attackable;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.holders.ItemHolder;
|
||||
@@ -68,7 +67,6 @@ public final class EvasGiftBox extends AbstractNpcAI
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
npc.setIsNoRndWalk(true);
|
||||
((L2Attackable) npc).setOnKillDelay(0);
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
|
||||
5
trunk/dist/game/data/scripts/ai/npc/Acateo/33905-1.html
vendored
Normal file
5
trunk/dist/game/data/scripts/ai/npc/Acateo/33905-1.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Acateo:<br>
|
||||
So you've joined the Academy! Here, this Academy Circlet will be useful to you.<br>
|
||||
Don't thank me too much. Ho ho!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Acateo give_circlet">"Uh, sure?"</Button>
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/ai/npc/Acateo/33905-2.html
vendored
Normal file
4
trunk/dist/game/data/scripts/ai/npc/Acateo/33905-2.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Acateo:<br>
|
||||
Good! Put on your Academy Circlet and take off for adventures.<br>
|
||||
Now that you've joined the Academy, don't be shy about asking for help from your clan members. In fact, if you don't have a Mentor yet, ask a clan member to be one and you'll reap even greater benefits!
|
||||
</body></html>
|
||||
3
trunk/dist/game/data/scripts/ai/npc/Acateo/33905-3.html
vendored
Normal file
3
trunk/dist/game/data/scripts/ai/npc/Acateo/33905-3.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Acateo:<br>
|
||||
You already have an Academy Circlet, don't you?
|
||||
</body></html>
|
||||
7
trunk/dist/game/data/scripts/ai/npc/Acateo/33905.html
vendored
Normal file
7
trunk/dist/game/data/scripts/ai/npc/Acateo/33905.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Acateo:<br>
|
||||
Greetings friend, my name is Acateo.<br>
|
||||
Pray tell, have you heard of the Academy? Please, Allow me to educate you on what we have to offer.<br>
|
||||
First, characters who join the Academy receive an additional 10% XP until they graduate. Second, if you use the mentoring system while in the Academy, the number of Mentee Marks given to the mentee increases. Lastly, when academy members of level 40 or above level up, they receive additional clan fame points.<br>
|
||||
Someone of your stature must appreciate what the Academy has to offer.<br>
|
||||
Spread the word and direct anyone who wishes to join to me. Each person who joins the Academy receives a welcoming gift of Academy Circlets.<br>
|
||||
</body></html>
|
||||
80
trunk/dist/game/data/scripts/ai/npc/Acateo/Acateo.java
vendored
Normal file
80
trunk/dist/game/data/scripts/ai/npc/Acateo/Acateo.java
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2015 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package ai.npc.Acateo;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
/**
|
||||
* Acateo AI.
|
||||
* @author Gladicek
|
||||
*/
|
||||
public final class Acateo extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private static final int ACATEO = 33905;
|
||||
// Item
|
||||
private static final int ACADEMY_CIRCLET = 8181;
|
||||
|
||||
private Acateo()
|
||||
{
|
||||
super(Acateo.class.getSimpleName(), "ai/npc");
|
||||
addStartNpc(ACATEO);
|
||||
addFirstTalkId(ACATEO);
|
||||
addTalkId(ACATEO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "give_circlet":
|
||||
{
|
||||
if (hasQuestItems(player, ACADEMY_CIRCLET))
|
||||
{
|
||||
htmltext = "33905-3.html";
|
||||
break;
|
||||
}
|
||||
giveItems(player, ACADEMY_CIRCLET, 1);
|
||||
htmltext = "33905-2.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (player.isAcademyMember())
|
||||
{
|
||||
return "33905-1.html";
|
||||
}
|
||||
return "33905.html";
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Acateo();
|
||||
}
|
||||
}
|
||||
6
trunk/dist/game/data/scripts/ai/npc/AlchemistManager/33977-1.html
vendored
Normal file
6
trunk/dist/game/data/scripts/ai/npc/AlchemistManager/33977-1.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Veruti:<br>
|
||||
Alchemy can only be learned by Ertheia from the Spirit Realm.<br>
|
||||
It requires arduous training if one is to produce rare items, so you need to have at least undergone 1st Liberation in order to understand the basics of it!<br>
|
||||
Alchemy is divided into <font color="LEVEL">Combination</font> and <font color="LEVEL">Transmutation</font>. The Alchemy Cube is used in Combination while Transmutation allows you to transmute a variety of rare items. There's one more category, but I'll tell you about it later when the time is right. Hehe!<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest AlchemistManager 33977.html">Back</Button>
|
||||
</body></html>
|
||||
5
trunk/dist/game/data/scripts/ai/npc/AlchemistManager/33977-2.html
vendored
Normal file
5
trunk/dist/game/data/scripts/ai/npc/AlchemistManager/33977-2.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Veruti:<br>
|
||||
Only Ertheia may learn Alchemy. Sorry.<br>
|
||||
(Your main character must be Ertheia to learn Alchemy.)<br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest AlchemistManager 33977.html">Back</Button>
|
||||
</body></html>
|
||||
10
trunk/dist/game/data/scripts/ai/npc/AlchemistManager/33977.html
vendored
Normal file
10
trunk/dist/game/data/scripts/ai/npc/AlchemistManager/33977.html
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>Veruti:<br>
|
||||
There are so many strange things about the Material Realm. Apparently we need Adena just to get some clothes!<br>
|
||||
So I've asked Zephyra to help me create items of value so that the Ertheia can make some Adena. The research was very hard, but it was worth it!<br>
|
||||
How about it? Shall we embark on researching the mysterious together? Just remember, only Ertheia Lv. 40 or above who have completed 1st Liberation can learn this skill.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest AlchemistManager open_tutorial">"Tell me more about Alchemy."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest AlchemistManager learn_skill">"I want to acquire an Alchemy skill."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h package_deposit" msg="1040">"I want to share an item from my account."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h package_withdraw">"I want to retrieve an item."</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</button>
|
||||
</body></html>
|
||||
@@ -2,5 +2,5 @@
|
||||
Only the Ertheia from the Spirit Realm may learn alchemy.<br>
|
||||
Because Alchemy creates rare materials, it requires rigorous training. You must complete your 1st Liberation at least to learn the basics of alchemy. Remember that!<br>
|
||||
Alchemy consists of <font color="LEVEL">Combination</font>, using an Alchemy Cube, and <font color="LEVEL">Transmutation</font> for all kinds of rare items. There is one more thing you will require, but you will find out when you are ready.<br>
|
||||
<button align=LEFT icon="RETURN" action="bypass -h Quest Zephyra 33978.html">Back</button>
|
||||
<button align=LEFT icon="RETURN" action="bypass -h Quest AlchemistManager 33978.html">Back</button>
|
||||
</body></html>
|
||||
@@ -1,5 +1,5 @@
|
||||
<html><body>Zephyra:<br>
|
||||
Not just anyone can learn Alchemy. Only the Ertheia can learn thanks to our special connections with the Wind Spirits.<br>
|
||||
(Only Ertheia may learn Alchemy as their main class.)<br>
|
||||
<button align=LEFT icon="RETURN" action="bypass -h Quest Zephyra 33978.html">Back</button>
|
||||
<button align=LEFT icon="RETURN" action="bypass -h Quest AlchemistManager 33978.html">Back</button>
|
||||
</body></html>
|
||||
@@ -2,8 +2,8 @@
|
||||
There's so much we don't know about in the Material Realm. They require us to pay with Adena for everything.<br>
|
||||
So I started my research with Veruti. I also got help from the spirits. Research was hard, but then we discovered a new skill that can save Adena by creating valuable goods.<br>
|
||||
So, do you want to join my research? By the way, only Lv. 40 or above Ertheia who have completed their 1st Liberation may learn Alchemy.<br>
|
||||
<button align=LEFT icon="Normal" action="bypass -h Quest Zephyra open_tutorial">"Tell me about Alchemy."</button>
|
||||
<button align=LEFT icon="NORMAL" action="bypass -h Quest Zephyra learn_skill">"I want to learn Alchemy."</button>
|
||||
<button align=LEFT icon="Normal" action="bypass -h Quest AlchemistManager open_tutorial">"Tell me about Alchemy."</button>
|
||||
<button align=LEFT icon="NORMAL" action="bypass -h Quest AlchemistManager learn_skill">"I want to learn Alchemy."</button>
|
||||
<button align=LEFT icon="NORMAL" action="bypass -h package_deposit" msg="1040">"I want to share my items."</button>
|
||||
<button align=LEFT icon="NORMAL" action="bypass -h package_withdraw">"I want to retrieve my shared items."</button>
|
||||
<button align=LEFT icon="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</button>
|
||||
@@ -16,7 +16,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package ai.npc.Zephyra;
|
||||
package ai.npc.AlchemistManager;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -33,22 +33,26 @@ import com.l2jserver.gameserver.network.serverpackets.ExAcquirableSkillListByCla
|
||||
import com.l2jserver.gameserver.network.serverpackets.TutorialShowHtml;
|
||||
|
||||
/**
|
||||
* Zephyra AI.
|
||||
* Alchemist Manager AI.
|
||||
* @author Sdw
|
||||
*/
|
||||
public final class Zephyra extends AbstractNpcAI
|
||||
public final class AlchemistManager extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int ZEPHYRA = 33978;
|
||||
private static final int ALCHEMISTS[] =
|
||||
{
|
||||
33978, // Zephyra
|
||||
33977, // Veruti
|
||||
};
|
||||
// Misc
|
||||
private static final String TUTORIAL_LINK = "..\\L2text\\QT_026_alchemy_01.htm";
|
||||
|
||||
private Zephyra()
|
||||
private AlchemistManager()
|
||||
{
|
||||
super(Zephyra.class.getSimpleName(), "ai/npc");
|
||||
addStartNpc(ZEPHYRA);
|
||||
addTalkId(ZEPHYRA);
|
||||
addFirstTalkId(ZEPHYRA);
|
||||
super(AlchemistManager.class.getSimpleName(), "ai/npc");
|
||||
addStartNpc(ALCHEMISTS);
|
||||
addTalkId(ALCHEMISTS);
|
||||
addFirstTalkId(ALCHEMISTS);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -58,21 +62,15 @@ public final class Zephyra extends AbstractNpcAI
|
||||
switch (event)
|
||||
{
|
||||
case "33978.html":
|
||||
case "33977.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "open_tutorial":
|
||||
{
|
||||
if (player.getRace() == Race.ERTHEIA)
|
||||
{
|
||||
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), TUTORIAL_LINK, TutorialShowHtml.LARGE_WINDOW));
|
||||
htmltext = "33978-1.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33978-2.htm";
|
||||
}
|
||||
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), TUTORIAL_LINK, TutorialShowHtml.LARGE_WINDOW));
|
||||
htmltext = npc.getId() + "-1.html";
|
||||
break;
|
||||
}
|
||||
case "learn_skill":
|
||||
@@ -92,7 +90,7 @@ public final class Zephyra extends AbstractNpcAI
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33978-2.htm";
|
||||
htmltext = npc.getId() + "-2.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -102,6 +100,6 @@ public final class Zephyra extends AbstractNpcAI
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Zephyra();
|
||||
new AlchemistManager();
|
||||
}
|
||||
}
|
||||
@@ -42,11 +42,12 @@ import com.l2jserver.gameserver.network.serverpackets.SocialAction;
|
||||
import com.l2jserver.gameserver.network.serverpackets.UserInfo;
|
||||
|
||||
/**
|
||||
* AwakeningMaster AI.
|
||||
* @author Sdw
|
||||
*/
|
||||
public class AwakeningMaster extends AbstractNpcAI
|
||||
public final class AwakeningMaster extends AbstractNpcAI
|
||||
{
|
||||
// Masters
|
||||
// NPCs
|
||||
private static final int SIGEL_MASTER = 33397;
|
||||
private static final int TYRR_MASTER = 33398;
|
||||
private static final int OTHELL_MASTER = 33399;
|
||||
@@ -55,7 +56,6 @@ public class AwakeningMaster extends AbstractNpcAI
|
||||
private static final int ISS_MASTER = 33402;
|
||||
private static final int WYNN_MASTER = 33403;
|
||||
private static final int AEORE_MASTER = 33404;
|
||||
|
||||
// Items
|
||||
private static final int SCROLL_OF_AFTERLIFE = 17600;
|
||||
private final static int ABELIUS_POWER = 32264;
|
||||
|
||||
@@ -80,7 +80,7 @@ public final class CastleChamberlain extends AbstractNpcAI
|
||||
35316, 36658, // Innadril
|
||||
35363, 36659, // Goddard
|
||||
35509, 36660, // Rune
|
||||
35555, 36661, // Schuttgard
|
||||
35555, 36661, // Schuttgart
|
||||
};
|
||||
//@formatter:on
|
||||
// Item
|
||||
|
||||
@@ -45,7 +45,7 @@ public final class CastleCourtMagician extends AbstractNpcAI
|
||||
35653, // Innadril
|
||||
35654, // Goddard
|
||||
35655, // Rune
|
||||
35656, // Schuttgard
|
||||
35656, // Schuttgart
|
||||
};
|
||||
// Skills
|
||||
private static final int CLAN_GATE = 3632; // Clan Gate
|
||||
|
||||
@@ -40,7 +40,7 @@ public final class CastleSiegeManager extends AbstractNpcAI
|
||||
35320, // Innadril Castle
|
||||
35367, // Goddard Castle
|
||||
35513, // Rune Castle
|
||||
35559, // Schuttgard Castle
|
||||
35559, // Schuttgart Castle
|
||||
35639, // Fortress of the Dead
|
||||
35420, // Devastated Castle
|
||||
};
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
There are many ways to increase your clan's reputation, from capturing a castle or fortress in battle, to helping out wandering newbies. Protecting a territory is also laudable, and in that spirit I wish to make you an offer if you can bring me these items:<br><br>
|
||||
<font color = "LEVEL">1 Blood Alliance</font> to prove that you have successfully defended a castle, <font color = "LEVEL">10 Blood Oaths gained by preserving civic order in a territory</font>, and finally <font color = "LEVEL">100 Knight's Epaulettes to prove that you are invincible in battle</font>.<br><br>
|
||||
Bring me these things, and I will personally see to it that your reputation increases.<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader exchange-ba">Provide 1 Blood Alliance.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader exchange-bo">Provide 10 Blood Oaths.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader exchange-ke">Provide 100 Knight's Epaulettes.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader 32024.html">Back.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader exchange-ba">Provide 1 Blood Alliance</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader exchange-bo">Provide 10 Blood Oaths</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader exchange-ke">Provide 100 Knight's Epaulettes</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32024.html">Back</Button>
|
||||
</body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><body>Clan Trader Mulia:<br>
|
||||
You have not brought a sufficient number of the items I requested to justify an increase in reputation.<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader 32024.html">Back.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32024.html">Back</Button>
|
||||
</body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><body>Clan Trader Mulia:<br>
|
||||
Your reputation has been increased.<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader 32024.html">Back.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32024.html">Back</Button>
|
||||
</body></html>
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><body>Clan Trader Mulia:<br>
|
||||
The maximum clan level for raising reputation is 5.<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader 32024.html">Back.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32024.html">Back</Button>
|
||||
</body></html>
|
||||
@@ -1,8 +1,8 @@
|
||||
<html><body>Clan Trader Mulia:<br>
|
||||
Oh, renowned leader of the clan! What business do you have with me?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 1235">Buy a Clan Item.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 1236">Upgrade a clan item.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader repinfo">Ask about Clan Reputation Points.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">Ask about the local lord and tax rate.</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 1235">Buy a Clan Item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 1236">Upgrade a clan item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader repinfo">Ask about Clan Reputation Points</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">Ask about the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
||||
@@ -2,8 +2,8 @@
|
||||
There are many ways to increase your clan's reputation, from capturing a castle or fortress in battle, to helping out wandering newbies. Protecting a territory is also laudable, and in that spirit I wish to make you an offer if you can bring me these items:<br><br>
|
||||
<font color = "LEVEL">1 Blood Alliance</font> to prove that you have successfully defended a castle, <font color = "LEVEL">10 Blood Oaths gained by preserving civic order in a territory</font>, and finally <font color = "LEVEL">100 Knight's Epaulettes to prove that you are invincible in battle</font>.<br><br>
|
||||
Bring me these things, and I will personally see to it that your reputation increases.<br><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader exchange-ba">Provide 1 Blood Alliance.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader exchange-bo">Provide 10 Blood Oaths.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader exchange-ke">Provide 100 Knight's Epaulettes.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32025.html">Back.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader exchange-ba">Provide 1 Blood Alliance</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader exchange-bo">Provide 10 Blood Oaths</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader exchange-ke">Provide 100 Knight's Epaulettes</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32025.html">Back</Button>
|
||||
</body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><body>Clan Trader Ilia:<br>
|
||||
You have not brought a sufficient number of the items I requested to justify an increase in reputation.<br><br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32025.html">Back.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32025.html">Back</Button>
|
||||
</body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><body>Clan Trader Ilia:<br>
|
||||
Your reputation has been increased.<br><br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32025.html">Back.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32025.html">Back</Button>
|
||||
</body></html>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<html><body>Clan Trader Ilia:<br>
|
||||
The maximum clan level for raising reputation is 5.<br><br>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32025.html">Back.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32025.html">Back</Button>
|
||||
</body></html>
|
||||
@@ -1,8 +1,8 @@
|
||||
<html><body>Clan Trader Ilia:<br>
|
||||
We swore the blood oath together, did we not? If you are that oath-holder, come speak with me.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 1235">Buy a Clan Item.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 1236">Upgrade a clan item.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader repinfo">Ask about Clan Reputation Points.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">Ask about the local lord and tax rate.</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 1235">Buy a Clan Item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 1236">Upgrade a clan item</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ClanTrader repinfo">Ask about Clan Reputation Points</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_TerritoryStatus">Ask about the local lord and tax rate</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
||||
@@ -15,5 +15,4 @@
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr></table>
|
||||
|
||||
</body></html>
|
||||
@@ -15,5 +15,4 @@
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr></table>
|
||||
|
||||
</body></html>
|
||||
@@ -16,4 +16,4 @@
|
||||
</table>
|
||||
</td></tr></table>
|
||||
<br><br>
|
||||
</body></html>
|
||||
</body></html>
|
||||
@@ -27,10 +27,12 @@ import com.l2jserver.gameserver.network.serverpackets.ExResponseResetList;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExShowBeautyMenu;
|
||||
|
||||
/**
|
||||
* La Vie En Rose AI.
|
||||
* @author Sdw
|
||||
*/
|
||||
public class LaVieEnRose extends AbstractNpcAI
|
||||
public final class LaVieEnRose extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int LA_VIE_EN_ROSE = 33825;
|
||||
|
||||
private LaVieEnRose()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<html><body>Blacksmith of Mammon:<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 216">Craft S-Grade Dual Weapon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 311262501"">Bestow Special Ability on S-Grade Weapon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 311262501">Bestow Special Ability on S-Grade Weapon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest Mammons 31126-02.html">Change Special Ability of S-Grade Weapon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest Mammons 31126-02.html">Change Special Ability of S80-Grade Weapon</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 311262504">Remove Seal from S-Grade Armor</Button>
|
||||
|
||||
@@ -116,7 +116,6 @@ public final class Mammons extends AbstractNpcAI
|
||||
final L2Npc priest = addSpawn(MAMMONS[2], PRIEST_LOC[town]);
|
||||
_mammons.addAll(Arrays.asList(blacksmith, merchant, priest));
|
||||
|
||||
Broadcast.toAllOnlinePlayers("Mammon's has been spawned in " + TOWN_NAME[town] + ".", false); // TODO: remove me
|
||||
if (Config.ANNOUNCE_MAMMON_SPAWN)
|
||||
{
|
||||
Broadcast.toAllOnlinePlayers("Mammon's has been spawned in " + TOWN_NAME[town] + ".", false);
|
||||
|
||||
70
trunk/dist/game/data/scripts/ai/npc/Oris/Oris.java
vendored
Normal file
70
trunk/dist/game/data/scripts/ai/npc/Oris/Oris.java
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2015 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package ai.npc.Oris;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
/**
|
||||
* Oris AI.
|
||||
* @author St3eT
|
||||
*/
|
||||
public final class Oris extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private static final int ORIS = 33116;
|
||||
|
||||
private Oris()
|
||||
{
|
||||
super(Oris.class.getSimpleName(), "ai/npc");
|
||||
addSpawnId(ORIS);
|
||||
addStartNpc(ORIS);
|
||||
addTalkId(ORIS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (event.equals("SOCIAL_ACTION_1"))
|
||||
{
|
||||
npc.broadcastSocialAction(6);
|
||||
startQuestTimer("SOCIAL_ACTION_2", 2500, npc, null);
|
||||
}
|
||||
else if (event.equals("SOCIAL_ACTION_2"))
|
||||
{
|
||||
npc.broadcastSocialAction(7);
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
npc.setRandomAnimationEnabled(false);
|
||||
startQuestTimer("SOCIAL_ACTION_1", 6500, npc, null, true);
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Oris();
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
<html><body>Pantheon:<br>
|
||||
Welcome to the Talking Island! Ask me anything you need to know.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Pantheon teleport_museum">"I want to go inside the museum."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Pantheon 32792-1.html">"Can you tell me about Talking Island?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Pantheon 32972-1.html">"Can you tell me about Talking Island?"</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
||||
@@ -46,7 +46,7 @@ public final class Proclaimer extends AbstractNpcAI
|
||||
36614, // Innadril
|
||||
36615, // Goddard
|
||||
36616, // Rune
|
||||
36617, // Schuttgard
|
||||
36617, // Schuttgart
|
||||
};
|
||||
// Skills
|
||||
private static final SkillHolder XP_BUFF = new SkillHolder(19036, 1); // Blessing of Light
|
||||
|
||||
8
trunk/dist/game/data/scripts/ai/npc/RemembranceTower/33989.html
vendored
Normal file
8
trunk/dist/game/data/scripts/ai/npc/RemembranceTower/33989.html
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Remembrance Tower:<br>
|
||||
On the day Faeron passed through the Dimensional Rift into the Material Realm, we were attacked by the monsters of the Material Realm.<br>
|
||||
We were not prepared for such a sudden attack and suffered a great loss of life.<br>
|
||||
In remembrance of those poor lives we could not protect, this tower is hereby erected.<br>
|
||||
<center>Queen Navari</center><br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest RemembranceTower action">"I offer my condolences for the dead."</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</button>
|
||||
</body></html>
|
||||
67
trunk/dist/game/data/scripts/ai/npc/RemembranceTower/RemembranceTower.java
vendored
Normal file
67
trunk/dist/game/data/scripts/ai/npc/RemembranceTower/RemembranceTower.java
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2015 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package ai.npc.RemembranceTower;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.network.serverpackets.OnEventTrigger;
|
||||
|
||||
/**
|
||||
* Remembrance Tower AI.
|
||||
* @author St3eT
|
||||
*/
|
||||
public final class RemembranceTower extends AbstractNpcAI
|
||||
{
|
||||
// NPCs
|
||||
private static final int REMEMBRANCE_TOWER = 33989;
|
||||
// Misc
|
||||
private static final int EMMITER_ID = 17250700;
|
||||
|
||||
private RemembranceTower()
|
||||
{
|
||||
super(RemembranceTower.class.getSimpleName(), "ai/npc");
|
||||
addStartNpc(REMEMBRANCE_TOWER);
|
||||
addTalkId(REMEMBRANCE_TOWER);
|
||||
addFirstTalkId(REMEMBRANCE_TOWER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (event.equals("action") && npc.isScriptValue(0))
|
||||
{
|
||||
npc.broadcastPacket(new OnEventTrigger(EMMITER_ID, true));
|
||||
npc.setScriptValue(1);
|
||||
startQuestTimer("TRIGGER", 3000, npc, null);
|
||||
}
|
||||
else if (event.equals("TRIGGER"))
|
||||
{
|
||||
npc.setScriptValue(0);
|
||||
npc.broadcastPacket(new OnEventTrigger(EMMITER_ID, false));
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new RemembranceTower();
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,6 @@
|
||||
<html><body>Priest Eliyah:<br>
|
||||
Great Einhasad, lead us with your light... Ah! I'm sorry. I was praying...<br>
|
||||
Are you returning from the upper floor of the tower? That is no place to learn the teachings of the goddess. Here, though, you may meditate on the value of a life of service and devotion. Perhaps you'd care to join me in prayer?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_SkillList">Learn skills.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest HealerTrainer SkillTransfer">Ask about Skill Transfer.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/skill_enchant_help.htm">Ask about Skill Enchanting.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest HealerTrainer SkillTransfer">"So I heard something about skill linking. Can you tell me about it?"</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
||||
@@ -1,8 +1,6 @@
|
||||
<html><body>Priest Wagner:<br>
|
||||
May Eva's protection be with you!<br>
|
||||
This may be a library, but any place where knowledge is prized is a suitable spot for religious discussions, meditations and even worship. I know some of the Humans here do not share those views, but I have learned that it is better sometimes to bend like the reed than break like the oak...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_SkillList">Learn skills.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest HealerTrainer SkillTransfer">Ask about Skill Transfer.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/skill_enchant_help.htm">Ask about Skill Enchanting.</Button>
|
||||
This may be a library, but any place where knowledge is prized is a suitable spot for religious discussions, meditation, and even worship. I know some of the Humans here do not share those views, but I have learned that it is better sometimes to bend like the reed than break like the oak...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest HealerTrainer SkillTransfer">"So I heard something about skill linking. Can you tell me about it?"</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
||||
@@ -1,8 +1,6 @@
|
||||
<html><body>Magister Kayan:<br>
|
||||
This is a fascinating place, but it makes me feel uneasy. It's huge, filled with so many people and so different ideologies.<br>
|
||||
I think I prefer to conduct my experiments alone.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_SkillList">Learn skills.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest HealerTrainer SkillTransfer">Ask about Skill Transfer.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link common/skill_enchant_help.htm">Ask about Skill Enchanting.</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest HealerTrainer SkillTransfer">"So I heard something about skill linking. Can you tell me about it?"</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
||||
@@ -98,6 +98,7 @@ public final class EffectMasterHandler
|
||||
GiveRecommendation.class,
|
||||
GiveSp.class,
|
||||
Grow.class,
|
||||
HairAccessorySet.class,
|
||||
Harvesting.class,
|
||||
HeadquarterCreate.class,
|
||||
Heal.class,
|
||||
|
||||
@@ -46,7 +46,6 @@ import com.l2jserver.gameserver.model.base.ClassId;
|
||||
import com.l2jserver.gameserver.network.L2GameClient;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.AcquireSkillList;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExVoteSystemInfo;
|
||||
import com.l2jserver.gameserver.network.serverpackets.GMViewItemList;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
|
||||
@@ -235,7 +234,6 @@ public class AdminEditChar implements IAdminCommandHandler
|
||||
player.setPkKills(pk);
|
||||
player.broadcastUserInfo();
|
||||
player.sendPacket(new UserInfo(player));
|
||||
player.sendPacket(new ExBrExtraUserInfo(player));
|
||||
player.sendMessage("A GM changed your PK count to " + pk);
|
||||
activeChar.sendMessage(player.getName() + "'s PK count changed to " + pk);
|
||||
}
|
||||
@@ -266,7 +264,6 @@ public class AdminEditChar implements IAdminCommandHandler
|
||||
player.setPvpKills(pvp);
|
||||
player.broadcastUserInfo();
|
||||
player.sendPacket(new UserInfo(player));
|
||||
player.sendPacket(new ExBrExtraUserInfo(player));
|
||||
player.sendMessage("A GM changed your PVP count to " + pvp);
|
||||
activeChar.sendMessage(player.getName() + "'s PVP count changed to " + pvp);
|
||||
}
|
||||
@@ -297,7 +294,6 @@ public class AdminEditChar implements IAdminCommandHandler
|
||||
player.setFame(fame);
|
||||
player.broadcastUserInfo();
|
||||
player.sendPacket(new UserInfo(player));
|
||||
player.sendPacket(new ExBrExtraUserInfo(player));
|
||||
player.sendMessage("A GM changed your Reputation points to " + fame);
|
||||
activeChar.sendMessage(player.getName() + "'s Fame changed to " + fame);
|
||||
}
|
||||
@@ -328,7 +324,6 @@ public class AdminEditChar implements IAdminCommandHandler
|
||||
player.setRecomHave(recVal);
|
||||
player.broadcastUserInfo();
|
||||
player.sendPacket(new UserInfo(player));
|
||||
player.sendPacket(new ExBrExtraUserInfo(player));
|
||||
player.sendPacket(new ExVoteSystemInfo(player));
|
||||
player.sendMessage("A GM changed your Recommend points to " + recVal);
|
||||
activeChar.sendMessage(player.getName() + "'s Recommend changed to " + recVal);
|
||||
|
||||
@@ -36,10 +36,10 @@ import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.CharInfo;
|
||||
import com.l2jserver.gameserver.network.serverpackets.Earthquake;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExRedSky;
|
||||
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
|
||||
import com.l2jserver.gameserver.network.serverpackets.PlaySound;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SocialAction;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SunRise;
|
||||
@@ -89,8 +89,6 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
"admin_effect",
|
||||
"admin_effect_menu",
|
||||
"admin_ave_abnormal",
|
||||
"admin_ave_special",
|
||||
"admin_ave_event",
|
||||
"admin_social_menu",
|
||||
"admin_play_sounds",
|
||||
"admin_play_sound",
|
||||
@@ -221,7 +219,7 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
{
|
||||
if (!player.isGM())
|
||||
{
|
||||
player.startAbnormalVisualEffect(true, AbnormalVisualEffect.PARALYZE);
|
||||
player.startAbnormalVisualEffect(AbnormalVisualEffect.PARALYZE);
|
||||
player.setIsParalyzed(true);
|
||||
player.startParalyze();
|
||||
}
|
||||
@@ -238,7 +236,7 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
Collection<L2PcInstance> plrs = activeChar.getKnownList().getKnownPlayers().values();
|
||||
for (L2PcInstance player : plrs)
|
||||
{
|
||||
player.stopAbnormalVisualEffect(true, AbnormalVisualEffect.PARALYZE);
|
||||
player.stopAbnormalVisualEffect(AbnormalVisualEffect.PARALYZE);
|
||||
player.setIsParalyzed(false);
|
||||
}
|
||||
}
|
||||
@@ -265,11 +263,11 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
player = (L2Character) target;
|
||||
if (type.equals("1"))
|
||||
{
|
||||
player.startAbnormalVisualEffect(true, AbnormalVisualEffect.PARALYZE);
|
||||
player.startAbnormalVisualEffect(AbnormalVisualEffect.PARALYZE);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.startAbnormalVisualEffect(true, AbnormalVisualEffect.FLESH_STONE);
|
||||
player.startAbnormalVisualEffect(AbnormalVisualEffect.FLESH_STONE);
|
||||
}
|
||||
player.setIsParalyzed(true);
|
||||
player.startParalyze();
|
||||
@@ -298,11 +296,11 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
player = (L2Character) target;
|
||||
if (type.equals("1"))
|
||||
{
|
||||
player.stopAbnormalVisualEffect(true, AbnormalVisualEffect.PARALYZE);
|
||||
player.stopAbnormalVisualEffect(AbnormalVisualEffect.PARALYZE);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.stopAbnormalVisualEffect(true, AbnormalVisualEffect.FLESH_STONE);
|
||||
player.stopAbnormalVisualEffect(AbnormalVisualEffect.FLESH_STONE);
|
||||
}
|
||||
player.setIsParalyzed(false);
|
||||
}
|
||||
@@ -320,7 +318,7 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
if (target instanceof L2Character)
|
||||
{
|
||||
player = (L2Character) target;
|
||||
player.startAbnormalVisualEffect(true, AbnormalVisualEffect.BIG_HEAD);
|
||||
player.startAbnormalVisualEffect(AbnormalVisualEffect.BIG_HEAD);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -336,7 +334,7 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
if (target instanceof L2Character)
|
||||
{
|
||||
player = (L2Character) target;
|
||||
player.stopAbnormalVisualEffect(true, AbnormalVisualEffect.BIG_HEAD);
|
||||
player.stopAbnormalVisualEffect(AbnormalVisualEffect.BIG_HEAD);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -377,7 +375,6 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
activeChar.broadcastPacket(info1);
|
||||
UserInfo info2 = new UserInfo(activeChar);
|
||||
activeChar.sendPacket(info2);
|
||||
activeChar.broadcastPacket(new ExBrExtraUserInfo(activeChar));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -393,7 +390,6 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
activeChar.broadcastPacket(info1);
|
||||
UserInfo info2 = new UserInfo(activeChar);
|
||||
activeChar.sendPacket(info2);
|
||||
activeChar.broadcastPacket(new ExBrExtraUserInfo(activeChar));
|
||||
}
|
||||
else if (command.equals("admin_clearteams"))
|
||||
{
|
||||
@@ -526,7 +522,7 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (command.startsWith("admin_ave_abnormal") || command.startsWith("admin_ave_special") || command.startsWith("admin_ave_event"))
|
||||
else if (command.startsWith("admin_ave_abnormal"))
|
||||
{
|
||||
if (st.countTokens() > 0)
|
||||
{
|
||||
@@ -580,7 +576,18 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
}
|
||||
else
|
||||
{
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < AbnormalVisualEffect.values().length; i++)
|
||||
{
|
||||
final AbnormalVisualEffect abnormalVisualEffect = AbnormalVisualEffect.values()[i];
|
||||
sb.append("<button action=\"bypass admin_ave_abnormal " + abnormalVisualEffect.name() + "\" align=left icon=teleport>" + abnormalVisualEffect.name() + "</button>");
|
||||
}
|
||||
final NpcHtmlMessage html = new NpcHtmlMessage(0, 1);
|
||||
html.setFile(activeChar.getHtmlPrefix(), "data/html/admin/ave_abnormal.htm");
|
||||
html.replace("%abnormals%", sb.toString());
|
||||
activeChar.sendPacket(html);
|
||||
activeChar.sendMessage("Usage: //" + command.replace("admin_", "") + " <AbnormalVisualEffect> [radius]");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (command.startsWith("admin_effect"))
|
||||
@@ -640,7 +647,7 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
}
|
||||
}
|
||||
|
||||
if (command.contains("menu") || command.contains("ave_"))
|
||||
if (command.contains("menu"))
|
||||
{
|
||||
showMainPage(activeChar, command);
|
||||
}
|
||||
@@ -657,13 +664,13 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
if (target instanceof L2Character)
|
||||
{
|
||||
final L2Character character = (L2Character) target;
|
||||
if (character.hasAbnormalVisualEffect(ave))
|
||||
if (!character.hasAbnormalVisualEffect(ave))
|
||||
{
|
||||
character.stopAbnormalVisualEffect(true, ave);
|
||||
character.startAbnormalVisualEffect(ave);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.startAbnormalVisualEffect(true, ave);
|
||||
character.stopAbnormalVisualEffect(ave);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -764,19 +771,7 @@ public class AdminEffects implements IAdminCommandHandler
|
||||
private void showMainPage(L2PcInstance activeChar, String command)
|
||||
{
|
||||
String filename = "effects_menu";
|
||||
if (command.contains("ave_abnormal"))
|
||||
{
|
||||
filename = "ave_abnormal";
|
||||
}
|
||||
else if (command.contains("ave_special"))
|
||||
{
|
||||
filename = "ave_special";
|
||||
}
|
||||
else if (command.contains("ave_event"))
|
||||
{
|
||||
filename = "ave_event";
|
||||
}
|
||||
else if (command.contains("social"))
|
||||
if (command.contains("social"))
|
||||
{
|
||||
filename = "social";
|
||||
}
|
||||
|
||||
@@ -28,7 +28,6 @@ import com.l2jserver.gameserver.model.itemcontainer.Inventory;
|
||||
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.CharInfo;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
|
||||
import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
|
||||
import com.l2jserver.gameserver.network.serverpackets.UserInfo;
|
||||
|
||||
@@ -218,7 +217,6 @@ public class AdminEnchant implements IAdminCommandHandler
|
||||
player.sendPacket(iu);
|
||||
player.broadcastPacket(new CharInfo(player));
|
||||
player.sendPacket(new UserInfo(player));
|
||||
player.broadcastPacket(new ExBrExtraUserInfo(player));
|
||||
|
||||
// informations
|
||||
activeChar.sendMessage("Changed enchantment of " + player.getName() + "'s " + itemInstance.getItem().getName() + " from " + curEnchant + " to " + ench + ".");
|
||||
|
||||
@@ -37,7 +37,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.entity.L2Event;
|
||||
import com.l2jserver.gameserver.model.entity.L2Event.EventState;
|
||||
import com.l2jserver.gameserver.network.serverpackets.CharInfo;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
|
||||
import com.l2jserver.gameserver.network.serverpackets.PlaySound;
|
||||
import com.l2jserver.gameserver.network.serverpackets.UserInfo;
|
||||
@@ -331,7 +330,6 @@ public class AdminEventEngine implements IAdminCommandHandler
|
||||
player.broadcastPacket(info1);
|
||||
UserInfo info2 = new UserInfo(player);
|
||||
player.sendPacket(info2);
|
||||
player.broadcastPacket(new ExBrExtraUserInfo(player));
|
||||
}
|
||||
showEventControl(activeChar);
|
||||
}
|
||||
@@ -348,7 +346,6 @@ public class AdminEventEngine implements IAdminCommandHandler
|
||||
player.broadcastPacket(info1);
|
||||
UserInfo info2 = new UserInfo(player);
|
||||
player.sendPacket(info2);
|
||||
player.broadcastPacket(new ExBrExtraUserInfo(player));
|
||||
}
|
||||
}
|
||||
showEventControl(activeChar);
|
||||
|
||||
@@ -61,6 +61,7 @@ public class AdminTeleport implements IAdminCommandHandler
|
||||
"admin_show_teleport",
|
||||
"admin_teleport_to_character",
|
||||
"admin_teleportto",
|
||||
"admin_teleport",
|
||||
"admin_move_to",
|
||||
"admin_teleport_character",
|
||||
"admin_recall",
|
||||
@@ -184,6 +185,23 @@ public class AdminTeleport implements IAdminCommandHandler
|
||||
{
|
||||
}
|
||||
}
|
||||
else if (command.startsWith("admin_teleport"))
|
||||
{
|
||||
try
|
||||
{
|
||||
final StringTokenizer st = new StringTokenizer(command, " ");
|
||||
st.nextToken();
|
||||
final int x = (int) Float.parseFloat(st.nextToken());
|
||||
final int y = (int) Float.parseFloat(st.nextToken());
|
||||
final int z = (int) Float.parseFloat(st.nextToken());
|
||||
|
||||
activeChar.teleToLocation(x, y, z);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
activeChar.sendMessage("Wrong coordinates!");
|
||||
}
|
||||
}
|
||||
else if (command.startsWith("admin_recall "))
|
||||
{
|
||||
try
|
||||
|
||||
59
trunk/dist/game/data/scripts/handlers/effecthandlers/HairAccessorySet.java
vendored
Normal file
59
trunk/dist/game/data/scripts/handlers/effecthandlers/HairAccessorySet.java
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2015 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import com.l2jserver.gameserver.enums.UserInfoType;
|
||||
import com.l2jserver.gameserver.model.StatsSet;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.conditions.Condition;
|
||||
import com.l2jserver.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jserver.gameserver.model.skills.BuffInfo;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
|
||||
/**
|
||||
* @author UnAfraid
|
||||
*/
|
||||
public class HairAccessorySet extends AbstractEffect
|
||||
{
|
||||
public HairAccessorySet(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
|
||||
{
|
||||
super(attachCond, applyCond, set, params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInstant()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart(BuffInfo info)
|
||||
{
|
||||
if ((info.getEffector() == null) || (info.getEffected() == null) || !info.getEffector().isPlayer() || !info.getEffected().isPlayer() || info.getEffected().isAlikeDead())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final L2PcInstance player = info.getEffected().getActingPlayer();
|
||||
|
||||
player.setHairAccessoryEnabled(!player.isHairAccessoryEnabled());
|
||||
player.broadcastUserInfo(UserInfoType.APPAREANCE);
|
||||
player.sendPacket(player.isHairAccessoryEnabled() ? SystemMessageId.HAIR_ACCESSORIES_WILL_BE_DISPLAYED_FROM_NOW_ON : SystemMessageId.HAIR_ACCESSORIES_WILL_NO_LONGER_BE_DISPLAYED);
|
||||
}
|
||||
}
|
||||
@@ -57,6 +57,6 @@ public final class RefuelAirship extends AbstractEffect
|
||||
{
|
||||
final L2AirShipInstance ship = info.getEffector().getActingPlayer().getAirShip();
|
||||
ship.setFuel(ship.getFuel() + _value);
|
||||
ship.updateAbnormalEffect();
|
||||
ship.updateAbnormalVisualEffects();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@ import com.l2jserver.gameserver.model.punishment.PunishmentTask;
|
||||
import com.l2jserver.gameserver.model.punishment.PunishmentType;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.CharInfo;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
|
||||
import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
||||
import com.l2jserver.gameserver.network.serverpackets.UserInfo;
|
||||
@@ -321,7 +320,6 @@ public class PlayerHandler implements ITelnetHandler
|
||||
activeChar.sendPacket(iu);
|
||||
activeChar.broadcastPacket(new CharInfo(activeChar));
|
||||
activeChar.sendPacket(new UserInfo(activeChar));
|
||||
activeChar.broadcastPacket(new ExBrExtraUserInfo(activeChar));
|
||||
|
||||
// informations
|
||||
activeChar.sendMessage("Changed enchantment of " + activeChar.getName() + "'s " + itemInstance.getItem().getName() + " from " + curEnchant + " to " + ench + ".");
|
||||
|
||||
@@ -149,7 +149,7 @@ public class Wedding implements IVoicedCommandHandler
|
||||
activeChar.sendMessage("You are already engaged.");
|
||||
if (Config.L2JMOD_WEDDING_PUNISH_INFIDELITY)
|
||||
{
|
||||
activeChar.startAbnormalVisualEffect(true, AbnormalVisualEffect.BIG_HEAD); // give player a Big Head
|
||||
activeChar.startAbnormalVisualEffect(AbnormalVisualEffect.BIG_HEAD); // give player a Big Head
|
||||
// lets recycle the sevensigns debuffs
|
||||
int skillId;
|
||||
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
package hellbound.AI;
|
||||
|
||||
import hellbound.HellboundEngine;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import ai.npc.AbstractNpcAI;
|
||||
@@ -31,8 +33,6 @@ import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.clientpackets.Say2;
|
||||
import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
|
||||
|
||||
import hellbound.HellboundEngine;
|
||||
|
||||
/**
|
||||
* Hellbound Slaves AI.
|
||||
* @author DS
|
||||
@@ -61,7 +61,6 @@ public final class Slaves extends AbstractNpcAI
|
||||
public final String onSpawn(L2Npc npc)
|
||||
{
|
||||
((L2MonsterInstance) npc).enableMinions(HellboundEngine.getInstance().getLevel() < 5);
|
||||
((L2MonsterInstance) npc).setOnKillDelay(1000);
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
|
||||
@@ -173,7 +173,6 @@ public final class IceQueensCastleHardBattle extends AbstractNpcAI
|
||||
addTalkId(SIRRA, JINIA, SUPP_KEGOR);
|
||||
addAttackId(FREYA_THRONE, FREYA_STAND, GLAKIAS, GLACIER, BREATH, KNIGHT);
|
||||
addKillId(GLAKIAS, FREYA_STAND, KNIGHT, GLACIER, BREATH);
|
||||
addSpawnId(GLAKIAS, FREYA_STAND, KNIGHT, GLACIER, BREATH);
|
||||
addSpellFinishedId(GLACIER, BREATH);
|
||||
}
|
||||
|
||||
@@ -677,13 +676,6 @@ public final class IceQueensCastleHardBattle extends AbstractNpcAI
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
((L2Attackable) npc).setOnKillDelay(0);
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
|
||||
@@ -173,7 +173,6 @@ public final class IceQueensCastleNormalBattle extends AbstractNpcAI
|
||||
addTalkId(SIRRA, JINIA, SUPP_KEGOR);
|
||||
addAttackId(FREYA_THRONE, FREYA_STAND, GLAKIAS, GLACIER, BREATH, KNIGHT);
|
||||
addKillId(GLAKIAS, FREYA_STAND, KNIGHT, GLACIER, BREATH);
|
||||
addSpawnId(GLAKIAS, FREYA_STAND, KNIGHT, GLACIER, BREATH);
|
||||
addSpellFinishedId(GLACIER, BREATH);
|
||||
}
|
||||
|
||||
@@ -677,13 +676,6 @@ public final class IceQueensCastleNormalBattle extends AbstractNpcAI
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
((L2Attackable) npc).setOnKillDelay(0);
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<html><body>Captain Mathias:<br>
|
||||
What? You want to enter Kamaloka?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Kamaloka 15">Enter Kamaloka, Hall of the Abyss (level 73).</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Kamaloka 16">Enter Kamaloka, Labyrinth of the Abyss (level 78).</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Kamaloka 17">Enter Kamaloka, Labyrinth of the Abyss (level 81).</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Kamaloka 18">Enter Kamaloka, Labyrinth of the Abyss (level 83).</Button>
|
||||
Are you trying to enter Kamaloka?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Kamaloka 15">"I want to enter Kamaloka (Hall of the Abyss) (Lv. 73)."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Kamaloka 16">"I want to enter Kamaloka (Labyrinth of the Abyss) (Lv. 78)."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Kamaloka 17">"I want to enter Near Kamaloka (Labyrinth of the Abyss) (Lv. 81)."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Kamaloka 18">"I want to enter Kamaloka (Labyrinth of the Abyss) (Lv. 83)."</Button>
|
||||
</body></html>
|
||||
@@ -34,7 +34,6 @@ import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.entity.Instance;
|
||||
import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
|
||||
@@ -1518,9 +1517,7 @@ public final class Kamaloka extends Quest
|
||||
}
|
||||
|
||||
// boss
|
||||
npc = addSpawn(BOSS[index][0], BOSS[index][1], BOSS[index][2], BOSS[index][3], 0, false, 0, false, world.getInstanceId());
|
||||
((L2MonsterInstance) npc).setOnKillDelay(100);
|
||||
world.boss = npc;
|
||||
world.boss = addSpawn(BOSS[index][0], BOSS[index][1], BOSS[index][2], BOSS[index][3], 0, false, 0, false, world.getInstanceId());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/32615-01.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/32615-01.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Maestro Ishuma:<br>
|
||||
Judging by the way you’re standing and the huge sack you are holding, it looks like you have quite a large task in store for me.<br>
|
||||
Tell me, what do you have in store for me?<br>
|
||||
Just tell me.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny 32615-02.htm">"These..."</Button>
|
||||
</body></html>
|
||||
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/32615-02.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/32615-02.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Maestro Ishuma:<br>
|
||||
What do you want me to do with a bunch of rocks? Giant’s fragments you say and you want me to restore them? Hmm… that isn’t exactly in the description of my profession… but you know what I’ll give it a try.<br>
|
||||
Now let’s discuss my fee...<br>
|
||||
If you don't mind...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny 32615-03.htm">"Hadel says ‘It’s for that time he took care of that thing."</Button>
|
||||
</body></html>
|
||||
3
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/32615-03.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/32615-03.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Maestro Ishuma:<br>
|
||||
What! He told you about that… hmm well if he is calling in that favor this must be pretty important. Alright give me a few moments to work my magic.
|
||||
</body></html>
|
||||
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/32615-04.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/32615-04.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Maestro Ishuma:<br>
|
||||
It took a bit of doing but I was able to put all the pieces back together again.<br>
|
||||
Interestingly enough, it wasn’t just a hand and foot…<br>
|
||||
You have yourself a pair of hands and feet.<br>
|
||||
Now if you excuse me, I need to wash my hands, eat some food, and take a nap after all that work... and preferably in that order. Go see <font color="LEVEL">Giant's Minion Hadel</font> at the <font color="LEVEL">Ruins of Ye Sagira</font>.
|
||||
</body></html>
|
||||
3
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/32615-05.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/32615-05.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Maestro Ishuma:<br>
|
||||
I need to rest a little. If you don't have any other business, please go.
|
||||
</body></html>
|
||||
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-01.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-01.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
I can see that you have managed to absorb the power of the Giants. Good for you... but I don't think you quite have a firm grasp on the true power you could potentially possess.<br>
|
||||
Do you know what the <font color="LEVEL">Power of Ascension</font> is? Awakening is simply the unlocking the power hidden within the body, while Power of Ascension taps into the true strength of the Giants and pushes your body past its physical limits.<br>
|
||||
Show me that you are capable of wielding such power and I will help you learn how to harness the Power of Ascension.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny 33344-13.htm">"I need to increase my power!"</Button>
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-02.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-02.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
I have no business with you. Leave.<br>
|
||||
(This quest can only be accessed while in a subclass, at subclass level 80 or above, and after completing a 3rd class transfer.)
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-03.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-03.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
I have no business with you. Leave me.<br>
|
||||
(This quest is only available for characters who have transferred their main class to a specialized awakened class. They can transfer their class to a <font color="LEVEL">specialized awakened class</font> through <font color="LEVEL">Agent of Chaos Hardin</font> at the <font color="LEVEL">Reliquary of the Giants</font>.)
|
||||
</body></html>
|
||||
5
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-12.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-12.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
It won't be easy to use the powers you received from the giant. It's amazing that you received them at all!<br>
|
||||
However, I know you can do it. Stay focused. Continue your training. Then, you too can become an invaluable presence, the same way as my master was a long time ago.<br>
|
||||
(You already completed this quest.)
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-13.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-13.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
You have freed Hermuncus’s Soul from the binding light. However, in order for him to regain his power we must restore his physical form. If you recall the last time we spoke I mentioned about Hermuncus’ fate and what happened to his body, correct? We need to find the remains of his body in order to resurrect him. If you help us, we will in turn help you with your Power of Ascension. Do we have a deal? If so your first task would be to find the hand of Hermuncus!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny 33344-14.htm">"The hand of Hermuncus? Is that even possible?"</Button>
|
||||
</body></html>
|
||||
3
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-14.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-14.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
Yes, when Einhasad chopped off Hermuncus’ hand, it fell to the land of Aden. The power contained within the hand preserved itself by becoming petrified until it could rejoin the rest of Hermuncus’ body… Quite an amazing defense mechanism, with the exception of the whole being hacked off part. Creatures in the area would be drawn to its power and probably keep it as a trophy. Hurry to the <font color="LEVEL">Forest of the Dead</font> and collect the pieces of Hermuncus' petrified hand that the <font color="LEVEL">Vampire Berises</font> have in their possession.
|
||||
</body></html>
|
||||
3
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-15.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-15.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
Hurry to the Forest of the Dead and collect the pieces of Hermuncus' petrified hand that the <font color="LEVEL">Vampire Berises</font> have in their possession.
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-16.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-16.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
If you want acknowledgment as the inheritor of the true power of the giants, go now. Return when you are once again in the same subclass you were in when you promised to help with Hermuncus' resurrection.<br>
|
||||
(This quest can only be fulfilled if the character is in the same subclass state as when the quest was accepted.)
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-17.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-17.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
Yes, yes. I can feel the power of Hermuncus as you draw near. Show me, show me the hand!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny 33344-18.htm">"Yeah, about the hand..."</Button>
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-18.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-18.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
What did you do the hand? It's broke in so many places. I can't tell if that is a finger or a charred piece of wood, Hermuncus is going to be so mad. Alright, I think I can fix this, I just need to find out which piece goes where. Man, I'll need more time to figure this out. In the mean time, go to Isle of Prayer and find the foot of Hermuncus, and try not to break it this time.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny 33344-19.htm">"I didn't break the hand! It was like that when found it!"</Button>
|
||||
</body></html>
|
||||
3
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-19.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-19.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
Forget about the hand and focus on the foot! Same story as the hand... it most likely landed somewhere in the <font color="LEVEL">Isle of Prayer</font>. Creatures in this area that would be attracted to its power would be the <font color="LEVEL">Island Guardian</font>, <font color="LEVEL">White Sand Mirage</font>, <font color="LEVEL">Muddy Coral</font>, and <font color="LEVEL">Crinaeae</font>. One of these creatures must have the foot.
|
||||
</body></html>
|
||||
3
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-20.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-20.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
Hurry to the <font color="LEVEL">Isle of Prayer</font> and collect the petrified pieces of Hermuncus' foot that the <font color="LEVEL">Island Guardian</font>, <font color="LEVEL">White Sand Mirage</font>, <font color="LEVEL">Muddy Coral</font>, and <font color="LEVEL">Crinaeae</font> have in their possession.
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-21.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-21.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
I can feel the power of Hermuncus' foot. Do you have the foot? Please tell me you brought it to me intact. Otherwise you might feel the power of Hermuncus' foot in a very different way.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny 33344-22.htm">"You're not going to believe this..."</Button>
|
||||
</body></html>
|
||||
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-22.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-22.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
Seriously? Well, this is great.<br>
|
||||
We have both a foot and a hand, but they are completely useless in their current state.<br>
|
||||
My current methods of reassembling these pieces failed so we are going to need someone who is a little bit more skilled in the area of reconstructing body parts of ancient extinct races, such as the Giants. I know a guy, <font color="LEVEL">Maestro Ishuma</font>, on Gludio Airship Field who can restore the pieces of the hand and foot.<br>
|
||||
Bring the pieces of the hand and foot to <font color="LEVEL">Maestro Ishuma</font>. And if he brings up the subject of payment, tell him, "It's for the time that I took care of that thing." He'll know what it means. Just be sure to inspect the work before you bring them back here.
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-23.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-23.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
Why are you still here?<br>
|
||||
Take the pieces of Hermuncus' hand and foot to <font color="LEVEL">Maestro Ishuma</font>. Bring them back once they have been restored to their glory.
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-24.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-24.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
Well... did it work? Was Maestro Ishuma able to restore the foot and hand of Hermuncus?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny 33344-25.htm">"Yes, and then some."</Button>
|
||||
</body></html>
|
||||
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-25.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-25.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
Both hands and feet! Let me see. Yes, the workmanship is quite nice although there appear to be some minor blemishes here and there. It’s nothing that we wouldn’t be able to repair ourselves. I’m sure Hermuncus wouldn’t even notice...<br>
|
||||
Now, the real reason why you have assisted me… you wish to receive an Ascension of Power. Before we begin, please understand my words carefully. <font color="LEVEL">You must understand that this can only be done for one subclass. The Ascension of Power cannot be reverted once it has been complete. Be sure you are on the subclass profession you wish to receive this power</font>.<br1>
|
||||
Have you listened to my words? Are you ready with your final decision?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny 33344-26.htm">"Yes, I am ready to receive the Ascension of Power."</Button>
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-26.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-26.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
I'm not trying to be pedantic, but I'm going to ask you one more time, since the extension of power <font color="LEVEL">cannot be reverted</font> once you decide. Are you ready with your final decision?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny 33344-27.htm">"Yes, already! This is my final decision."</Button>
|
||||
</body></html>
|
||||
9
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-27.htm
vendored
Normal file
9
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-27.htm
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
I like your spirit, kid.<br>
|
||||
I will be sure to keep an eye on your progress… there are still other pieces of the Giant to be found and I’m sure our paths will cross again.<br>
|
||||
But, before you leave, I have one more thing I wish to give you. Call it a little bonus for all the work you have done.<br>
|
||||
I would like to provide you with a Soul Crystal to enhance your weapon.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny red_crystal">"Shiny, I like… the red one"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny green_crystal">"Shiny, I like… the green one"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00177_SplitDestiny blue_crystal">"Shiny, I like… the blue one"</Button>
|
||||
</body></html>
|
||||
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-28.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-28.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
And on that final note, our business here is concluded. Go forth and continue to develop your powers.<br>
|
||||
When you reach <font color="LEVEL">level 85</font>, you can learn <font color="LEVEL">dual skills</font>. I look forward to seeing you grow stronger.<br>
|
||||
Absorber of the giants' power...<br1>
|
||||
Do not forget Hermuncus and the giants.
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-aeore.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-aeore.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
You emanate the essence of an Aeore Healer. One cannot have duplicate powers.<br>
|
||||
(You cannot expand the power to the same class as your main character.)
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-feoh.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-feoh.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
I can feel the presence of a Feoh Wizard emanating from you. One cannot have duplicate powers.<br>
|
||||
(You cannot expand the power to the same class as your main character.)
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-iss.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-iss.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
I can feel the essence of an Iss Enchanter emanating from you. One cannot have duplicate powers.<br>
|
||||
(You cannot expand the power to the same class as your main character.)
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-othell.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-othell.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
I can feel the presence of an Othell Rogue emanating from you. One cannot have duplicate powers.<br>
|
||||
(You cannot expand the power to the same class as your main character.)
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-sigel.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-sigel.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
You radiate the essence of a Sigel Knight. You cannot duplicate that power.<br>
|
||||
(As the same class with the main character, the power cannot be expanded.)
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-tyrr.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-tyrr.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
I can feel a Tyrr Warrior's presence emanating from you. One cannot have duplicate powers.<br>
|
||||
(You cannot expand the power to the same class as your main character.)
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-wynn.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-wynn.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
I can feel the presence of a Wynn Summoner emanating from you. One cannot have duplicate powers.<br>
|
||||
(You cannot expand the power to the same class as your main character.)
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-yul.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/33344-yul.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Hadel:<br>
|
||||
I can feel a Yul Archer's presence surrounding you. One cannot have duplicate powers.<br>
|
||||
(You cannot expand the power to the same class as your main character.)
|
||||
</body></html>
|
||||
391
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/Q00177_SplitDestiny.java
vendored
Normal file
391
trunk/dist/game/data/scripts/quests/Q00177_SplitDestiny/Q00177_SplitDestiny.java
vendored
Normal file
@@ -0,0 +1,391 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2015 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* L2J DataPack is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package quests.Q00177_SplitDestiny;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.CategoryData;
|
||||
import com.l2jserver.gameserver.enums.CategoryType;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExSubjobInfo;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SocialAction;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* @author Sdw
|
||||
*/
|
||||
public class Q00177_SplitDestiny extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int HADEL = 33344;
|
||||
private static final int ISHUMA = 32615;
|
||||
// Items
|
||||
private static final ItemHolder PETRIFIED_GIANTS_HAND = new ItemHolder(17718, 2);
|
||||
private static final ItemHolder PETRIFIED_GIANTS_FOOT = new ItemHolder(17719, 2);
|
||||
private static final int PETRIFIED_GIANTS_HAND_PIECE = 17720;
|
||||
private static final int PETRIFIED_GIANTS_FOOT_PIECE = 17721;
|
||||
// Rewards
|
||||
private static final ItemHolder RECIPE_TWILIGHT_NECKLACE = new ItemHolder(36791, 1);
|
||||
private static final ItemHolder CRYSTAL_R = new ItemHolder(17371, 1);
|
||||
private static final ItemHolder RED_SOUL_CRYSTAL_15 = new ItemHolder(10480, 1);
|
||||
private static final ItemHolder BLUE_SOUL_CRYSTAL_15 = new ItemHolder(10481, 1);
|
||||
private static final ItemHolder GREEN_SOUL_CRYSTAL_15 = new ItemHolder(10482, 1);
|
||||
// Variable
|
||||
private static final String VAR_SUB_INDEX = "split_destiny_sub_id";
|
||||
|
||||
// Mobs
|
||||
private static final int[] GIANTS_HAND_MONSTERS =
|
||||
{
|
||||
21549, // Corrupted Guard
|
||||
21550, // Corrupted Guard
|
||||
21547, // Corrupted Knight
|
||||
21548, // Resurrected Knight
|
||||
21587, // Vampire Warrior
|
||||
};
|
||||
|
||||
private static final int[] GIANTS_FOOT_MONSTERS =
|
||||
{
|
||||
22257, // Island Guardian
|
||||
22258, // White Sand Mirage
|
||||
22259, // Muddy Coral
|
||||
22260, // Kleopora
|
||||
};
|
||||
|
||||
public Q00177_SplitDestiny()
|
||||
{
|
||||
super(177, Q00177_SplitDestiny.class.getSimpleName(), "Split Destiny");
|
||||
addStartNpc(HADEL);
|
||||
addTalkId(HADEL, ISHUMA);
|
||||
addKillId(GIANTS_HAND_MONSTERS);
|
||||
addKillId(GIANTS_FOOT_MONSTERS);
|
||||
registerQuestItems(PETRIFIED_GIANTS_HAND.getId(), PETRIFIED_GIANTS_FOOT.getId(), PETRIFIED_GIANTS_HAND_PIECE, PETRIFIED_GIANTS_FOOT_PIECE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33344-14.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
qs.set(VAR_SUB_INDEX, player.getClassIndex());
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33344-19.htm":
|
||||
{
|
||||
if (qs.isCond(3))
|
||||
{
|
||||
qs.setCond(4, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "33344-22.htm":
|
||||
{
|
||||
if (qs.isCond(6))
|
||||
{
|
||||
qs.setCond(7, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "32615-03.htm":
|
||||
{
|
||||
if (qs.isCond(7) && (getQuestItemsCount(player, PETRIFIED_GIANTS_HAND_PIECE) >= 10) && (getQuestItemsCount(player, PETRIFIED_GIANTS_FOOT_PIECE) >= 10))
|
||||
{
|
||||
takeItems(player, PETRIFIED_GIANTS_HAND_PIECE, 10);
|
||||
takeItems(player, PETRIFIED_GIANTS_FOOT_PIECE, 10);
|
||||
qs.setCond(8, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "33344-25.htm":
|
||||
{
|
||||
if (qs.isCond(9) && hasItem(player, PETRIFIED_GIANTS_HAND) && hasItem(player, PETRIFIED_GIANTS_FOOT))
|
||||
{
|
||||
takeItem(player, PETRIFIED_GIANTS_HAND);
|
||||
takeItem(player, PETRIFIED_GIANTS_FOOT);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "blue_crystal":
|
||||
case "green_crystal":
|
||||
case "red_crystal":
|
||||
{
|
||||
if (qs.isCond(9))
|
||||
{
|
||||
if (player.getClassIndex() != qs.getInt(VAR_SUB_INDEX))
|
||||
{
|
||||
return "33344-16.htm";
|
||||
}
|
||||
|
||||
player.getSubClasses().get(player.getClassIndex()).setIsDualClass(true);
|
||||
|
||||
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.SUBCLASS_S1_HAS_BEEN_UPGRADED_TO_DUEL_CLASS_S2_CONGRATULATIONS);
|
||||
msg.addClassId(player.getClassId().getId());
|
||||
msg.addClassId(player.getClassId().getId());
|
||||
player.sendPacket(msg);
|
||||
|
||||
player.sendPacket(new ExSubjobInfo(player));
|
||||
player.broadcastSocialAction(SocialAction.LEVEL_UP);
|
||||
|
||||
if (event.equals("red_crystal"))
|
||||
{
|
||||
giveItems(player, RED_SOUL_CRYSTAL_15);
|
||||
}
|
||||
else if (event.equals("blue_crystal"))
|
||||
{
|
||||
giveItems(player, BLUE_SOUL_CRYSTAL_15);
|
||||
}
|
||||
else if (event.equals("green_crystal"))
|
||||
{
|
||||
giveItems(player, GREEN_SOUL_CRYSTAL_15);
|
||||
}
|
||||
|
||||
giveItems(player, RECIPE_TWILIGHT_NECKLACE);
|
||||
giveItems(player, CRYSTAL_R);
|
||||
addExpAndSp(player, 175739575, 42177);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = "33344-28.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "33344-13.htm":
|
||||
case "33344-18.htm":
|
||||
case "32615-02.htm":
|
||||
case "33344-26.htm":
|
||||
case "33344-27.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
if (npc.getId() == HADEL)
|
||||
{
|
||||
if (qs.isStarted())
|
||||
{
|
||||
if (player.getClassIndex() == qs.getInt(VAR_SUB_INDEX))
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 1:
|
||||
case 2:
|
||||
{
|
||||
htmltext = "33344-15.htm";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
htmltext = "33344-17.htm";
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
case 5:
|
||||
{
|
||||
htmltext = "33344-20.htm";
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
htmltext = "33344-21.htm";
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
case 8:
|
||||
{
|
||||
htmltext = "33344-23.htm";
|
||||
break;
|
||||
}
|
||||
case 9:
|
||||
{
|
||||
htmltext = "33344-24.htm";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33344-16.htm";
|
||||
}
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
htmltext = "33344-12.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!player.isSubClassActive() || !player.isInCategory(CategoryType.FOURTH_CLASS_GROUP) || (player.getLevel() < 80))
|
||||
{
|
||||
htmltext = "33344-02.htm";
|
||||
}
|
||||
else if (!CategoryData.getInstance().isInCategory(CategoryType.AWAKEN_GROUP, player.getBaseClass()))
|
||||
{
|
||||
htmltext = "33344-03.htm";
|
||||
}
|
||||
else if (CategoryData.getInstance().isInCategory(CategoryType.SIGEL_GROUP, player.getBaseClass()) && player.isInCategory(CategoryType.SIGEL_CANDIDATE))
|
||||
{
|
||||
htmltext = "33344-sigel.htm";
|
||||
}
|
||||
else if (CategoryData.getInstance().isInCategory(CategoryType.TYRR_GROUP, player.getBaseClass()) && player.isInCategory(CategoryType.TYRR_CANDIDATE))
|
||||
{
|
||||
htmltext = "33344-tyrr.htm";
|
||||
}
|
||||
else if (CategoryData.getInstance().isInCategory(CategoryType.OTHELL_GROUP, player.getBaseClass()) && player.isInCategory(CategoryType.OTHELL_CANDIDATE))
|
||||
{
|
||||
htmltext = "33344-othell.htm";
|
||||
}
|
||||
else if (CategoryData.getInstance().isInCategory(CategoryType.YUL_GROUP, player.getBaseClass()) && player.isInCategory(CategoryType.YUL_CANDIDATE))
|
||||
{
|
||||
htmltext = "33344-yul.htm";
|
||||
}
|
||||
else if (CategoryData.getInstance().isInCategory(CategoryType.FEOH_GROUP, player.getBaseClass()) && player.isInCategory(CategoryType.FEOH_CANDIDATE))
|
||||
{
|
||||
htmltext = "33344-feoh.htm";
|
||||
}
|
||||
else if (CategoryData.getInstance().isInCategory(CategoryType.ISS_GROUP, player.getBaseClass()) && player.isInCategory(CategoryType.ISS_CANDIDATE))
|
||||
{
|
||||
htmltext = "33344-iss.htm";
|
||||
}
|
||||
else if (CategoryData.getInstance().isInCategory(CategoryType.WYNN_GROUP, player.getBaseClass()) && player.isInCategory(CategoryType.WYNN_CANDIDATE))
|
||||
{
|
||||
htmltext = "33344-wynn.htm";
|
||||
}
|
||||
else if (CategoryData.getInstance().isInCategory(CategoryType.AEORE_GROUP, player.getBaseClass()) && player.isInCategory(CategoryType.AEORE_CANDIDATE))
|
||||
{
|
||||
htmltext = "33344-aeore.htm";
|
||||
}
|
||||
else if (player.hasDualClass())
|
||||
{
|
||||
htmltext = "33344-12.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33344-01.htm";
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ((npc.getId() == ISHUMA) && qs.isStarted())
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 7:
|
||||
{
|
||||
htmltext = "32615-01.htm";
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
{
|
||||
qs.setCond(9, true);
|
||||
giveItems(player, PETRIFIED_GIANTS_HAND);
|
||||
giveItems(player, PETRIFIED_GIANTS_FOOT);
|
||||
htmltext = "32615-04.htm";
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
htmltext = "32615-05.htm";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && (killer.getClassIndex() == qs.getInt(VAR_SUB_INDEX)))
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
if (Util.contains(GIANTS_HAND_MONSTERS, npc.getId()))
|
||||
{
|
||||
giveItems(killer, PETRIFIED_GIANTS_HAND_PIECE, 1);
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if (Util.contains(GIANTS_HAND_MONSTERS, npc.getId()))
|
||||
{
|
||||
if (giveItemRandomly(killer, npc, PETRIFIED_GIANTS_HAND_PIECE, 1, 10, 1.0, true))
|
||||
{
|
||||
qs.setCond(3, true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
if (Util.contains(GIANTS_FOOT_MONSTERS, npc.getId()))
|
||||
{
|
||||
qs.giveItems(PETRIFIED_GIANTS_FOOT_PIECE, 1);
|
||||
qs.setCond(5, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
if (Util.contains(GIANTS_FOOT_MONSTERS, npc.getId()))
|
||||
{
|
||||
if (giveItemRandomly(killer, npc, PETRIFIED_GIANTS_FOOT_PIECE, 1, 10, 1.0, true))
|
||||
{
|
||||
qs.setCond(6, true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
}
|
||||
@@ -87,6 +87,7 @@ import quests.Q00146_TheZeroHour.Q00146_TheZeroHour;
|
||||
import quests.Q00147_PathtoBecominganEliteMercenary.Q00147_PathtoBecominganEliteMercenary;
|
||||
import quests.Q00148_PathtoBecominganExaltedMercenary.Q00148_PathtoBecominganExaltedMercenary;
|
||||
import quests.Q00176_StepsForHonor.Q00176_StepsForHonor;
|
||||
import quests.Q00177_SplitDestiny.Q00177_SplitDestiny;
|
||||
import quests.Q00183_RelicExploration.Q00183_RelicExploration;
|
||||
import quests.Q00184_ArtOfPersuasion.Q00184_ArtOfPersuasion;
|
||||
import quests.Q00185_NikolasCooperation.Q00185_NikolasCooperation;
|
||||
@@ -386,6 +387,7 @@ public class QuestMasterHandler
|
||||
Q00147_PathtoBecominganEliteMercenary.class,
|
||||
Q00148_PathtoBecominganExaltedMercenary.class,
|
||||
Q00176_StepsForHonor.class,
|
||||
Q00177_SplitDestiny.class,
|
||||
Q00183_RelicExploration.class,
|
||||
Q00184_ArtOfPersuasion.class,
|
||||
Q00185_NikolasCooperation.class,
|
||||
|
||||
Reference in New Issue
Block a user