Sync with L2JServer Jan 2nd 2015.

This commit is contained in:
mobius
2015-01-02 16:44:45 +00:00
parent 94b2621431
commit 54c0ceafb8
439 changed files with 63249 additions and 62327 deletions

View File

@@ -296,4 +296,4 @@ public final class DragonValley extends AbstractNpcAI
{
new DragonValley();
}
}
}

View File

@@ -111,4 +111,4 @@ public final class GiantsCave extends AbstractNpcAI
{
new GiantsCave();
}
}
}

View File

@@ -0,0 +1,6 @@
<html><body>Apprentice:<br>
Have you seen the Dwarven Workshop here?<br>
They're working on some kind of new product, and they're offering people a sneak peek at it.<br>
It's not complete, or anything, so don't judge too harshly, but do you want to give it a go?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Apprentice rideKukuru">"Why not?"</Button>
</body></html>

View File

@@ -0,0 +1,81 @@
/*
* 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.Apprentice;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.network.NpcStringId;
import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Apprentice AI.
* @author St3eT
*/
public final class Apprentice extends AbstractNpcAI
{
// NPCs
private static final int APPRENTICE = 33124;
// Skill
private static final SkillHolder KUKURU = new SkillHolder(9204, 1); // Kukuru
private Apprentice()
{
super(Apprentice.class.getSimpleName(), "ai/npc");
addSpawnId(APPRENTICE);
addStartNpc(APPRENTICE);
addTalkId(APPRENTICE);
addFirstTalkId(APPRENTICE);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if (event.equals("rideKukuru"))
{
if (!player.isTransformed())
{
KUKURU.getSkill().applyEffects(npc, player);
}
else
{
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.YOU_CAN_T_RIDE_A_KUKURI_NOW);
}
}
else if (event.equals("SPAM_TEXT") && (npc != null))
{
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.TRY_RIDING_A_KUKURI);
}
return super.onAdvEvent(event, npc, player);
}
@Override
public String onSpawn(L2Npc npc)
{
startQuestTimer("SPAM_TEXT", 12000, npc, null, true);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new Apprentice();
}
}

View File

@@ -131,4 +131,4 @@ public final class CastleMercenaryManager extends AbstractNpcAI
{
new CastleMercenaryManager();
}
}
}

View File

@@ -1,5 +1,6 @@
<html><body>Clan Trader Ilia:<br>
I seek a partner to a blood oath, the most sacred pledge of allegiance!<br>
I will not release any item to anyone else! Our reputation depends on it!<br>
<a action="bypass -h npc_%objectId%_Quest">Quest</a><br>
I will not release any item to anyone else!<br>
Our reputation depends on it!<br>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@@ -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>
<a action="bypass -h Quest ClanTrader exchange-ba">Provide 1 Blood Alliance.</a><br>
<a action="bypass -h Quest ClanTrader exchange-bo">Provide 10 Blood Oaths.</a><br>
<a action="bypass -h Quest ClanTrader exchange-ke">Provide 100 Knight's Epaulettes.</a><br>
<a action="bypass -h Quest ClanTrader 32025.html">Back.</a><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>
</body></html>

View File

@@ -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>
<a action="bypass -h Quest ClanTrader 32025.html">Back.</a><br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32025.html">Back.</Button>
</body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Clan Trader Ilia:<br>
Your reputation has been increased.<br><br>
<a action="bypass -h Quest ClanTrader 32025.html">Back.</a><br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32025.html">Back.</Button>
</body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Clan Trader Ilia:<br>
The maximum clan level for raising reputation is 5.<br><br>
<a action="bypass -h Quest ClanTrader 32025.html">Back.</a><br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanTrader 32025.html">Back.</Button>
</body></html>

View File

@@ -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>
<a action="bypass -h npc_%objectId%_multisell 1235">Buy a Clan Item.</a><br>
<a action="bypass -h npc_%objectId%_multisell 1236">Upgrade a clan item.</a><br>
<a action="bypass -h Quest ClanTrader repinfo">Ask about Clan Reputation Points.</a><br>
<a action="bypass -h npc_%objectId%_TerritoryStatus">Ask about the local lord and tax rate.</a><br>
<a action="bypass -h npc_%objectId%_Quest">Quest.</a><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>
</body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Reputation Manager Rapidus:<br>
You have not yet met the qualifications. (Requires completion of second class transfer and Clan Fame level above 40.)<br><br>
<a action="bypass -h Quest FameManager 36479-07.html">Ask how to obtain Clan Fame points.</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest FameManager 36479-07.html">Ask how to obtain Clan Fame points.</Button>
</body></html>

View File

@@ -1,7 +1,7 @@
<html><body>Reputation Manager Rapidus:<br>
Tell me what you want, and if you are worthy I will help you.<br>
If you have already <font color="LEVEL">bestowed them with a special ability</font>, <font color="LEVEL">top-grade weapons and armor</font> can be enhanced <font color="LEVEL">beyond A-Grade</font> especially for PvP combat. Once a multi-user item is specialized, you will still be able to enchant the item. However, you cannot augment, crystallize, convert or add an attribute to it.</font> Think carefully before making a decision...<br><br>
<a action="bypass -h npc_%objectId%_exc_multisell 364790001">Enhance weapons and armor for PvP.</a><br>
<a action="bypass -h npc_%objectId%_exc_multisell 364790002">Cancel enhancement.</a><br>
<a action="bypass -h npc_%objectId%_multisell 364790003">Obtain consumable item.</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 364790001">Enhance weapons and armor for PvP.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_exc_multisell 364790002">Cancel enhancement.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 364790003">Obtain consumable item.</Button>
</body></html>

View File

@@ -1,7 +1,7 @@
<html><body>Reputation Manager Rapidus:<br>
O victorious one, have you set your next goal? I have prepared something for you. You will be awarded according to your distinguished service. What is it that you seek?<br>
<a action="bypass -h Quest FameManager 36479-02.html">Examine PVP exclusive items.</a><br>
<a action="bypass -h Quest FameManager decreasePk">Decrease PK count by 1 (5,000 Fame Points).</a><br>
<a action="bypass -h Quest FameManager clanRep">Increase Clan Fame (1,000 Fame Points).</a><br>
<a action="bypass -h npc_%objectId%_Quest">Quest.</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest FameManager 36479-02.html">Examine PVP exclusive items.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest FameManager decreasePk">Decrease PK count by 1 (5,000 Fame Points).</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest FameManager clanRep">Increase Clan Fame (1,000 Fame Points).</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h Quest FameManager clanRep">Quest.</Button>
</body></html>

View File

@@ -31,6 +31,7 @@ import ai.npc.AbstractNpcAI;
import com.l2jserver.Config;
import com.l2jserver.gameserver.engines.DocumentParser;
import com.l2jserver.gameserver.enums.CategoryType;
import com.l2jserver.gameserver.enums.MailType;
import com.l2jserver.gameserver.instancemanager.MailManager;
import com.l2jserver.gameserver.instancemanager.MentorManager;
import com.l2jserver.gameserver.model.L2Mentee;
@@ -38,7 +39,6 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.base.ClassLevel;
import com.l2jserver.gameserver.model.entity.Message;
import com.l2jserver.gameserver.model.entity.Message.SendBySystem;
import com.l2jserver.gameserver.model.events.EventType;
import com.l2jserver.gameserver.model.events.ListenerRegisterType;
import com.l2jserver.gameserver.model.events.annotations.RegisterEvent;
@@ -451,9 +451,7 @@ public class MentorGuide extends AbstractNpcAI implements DocumentParser
private void sendMail(L2PcInstance player, String title, String body, int itemId, long amount)
{
// TODO: Update me when mail system is updated
// final Message msg = new Message(MENTOR_GUIDE, player.getObjectId(), title, body, MailType.MENTOR_NPC);
final Message msg = new Message(player.getObjectId(), title, body, SendBySystem.ALEGRIA);
final Message msg = new Message(MENTOR_GUIDE, player.getObjectId(), title, body, MailType.MENTOR_NPC);
msg.createAttachments().addItem(getName(), itemId, amount, null, player);
MailManager.getInstance().sendMessage(msg);

View File

@@ -0,0 +1,73 @@
/*
* 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.Milia;
import ai.npc.AbstractNpcAI;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.NpcStringId;
import com.l2jserver.gameserver.network.clientpackets.Say2;
/**
* Milia AI.
* @author St3eT
*/
public final class Milia extends AbstractNpcAI
{
// NPCs
private static final int MILIA = 30006;
// Locations
private static final Location GLUDIO_AIRSHIP = new Location(-149406, 255247, -80);
private Milia()
{
super(Milia.class.getSimpleName(), "ai/npc/Teleports");
addSpawnId(MILIA);
addStartNpc(MILIA);
addTalkId(MILIA);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if (event.equals("gludioAirship"))
{
player.teleToLocation(GLUDIO_AIRSHIP);
}
else if (event.equals("TEXT_SPAM") && (npc != null))
{
broadcastNpcSay(npc, Say2.NPC_ALL, NpcStringId.SPEAK_WITH_ME_ABOUT_TRAVELING_AROUND_ADEN);
}
return super.onAdvEvent(event, npc, player);
}
@Override
public String onSpawn(L2Npc npc)
{
startQuestTimer("TEXT_SPAM", 10000, npc, null, true);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new Milia();
}
}

View File

@@ -1,8 +1,6 @@
<html><body>Priest Ross:<br>
Did you hear about the recent meeting in Oren Castle? Representatives from the 5 races met for the first time as a Council to plan our defense against the coming darkness.<br>
Did you hear about the recent meeting in Oren Castle? Representatives from the 5 races met for the first time as a Council to plan our defenses against the coming darkness.<br>
Following that meeting, we are now sending messengers to the peoples of this continent to rally support for our united cause. We need many priests filled with courage and faith...<br>
<a action="bypass -h npc_%objectId%_SkillList">Learn skills.</a><br>
<a action="bypass -h Quest HealerTrainer SkillTransfer">Ask about Skill Transfer.</a><br>
<a action="bypass -h npc_%objectId%_Link common/skill_enchant_help.htm">Ask about Skill Enchanting.</a><br>
<a action="bypass -h npc_%objectId%_Quest">Quest</a>
<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>

View File

@@ -1,8 +1,6 @@
<html><body>Priestess Vivian:<br>
<html><body>Priestess Vivyan:<br>
Einhasad is eternal, and her words never fail. She fills the world with the light of her justice and compassion.<br>
Welcome to this temple, child. Though I am a seeker after truth such as yourself, I will gladly pass on what I have learned to you.<br>
<a action="bypass -h npc_%objectId%_SkillList">Learn skills.</a><br>
<a action="bypass -h Quest HealerTrainer SkillTransfer">Ask about Skill Transfer.</a><br>
<a action="bypass -h npc_%objectId%_Link common/skill_enchant_help.htm">Ask about Skill Enchanting.</a><br>
<a action="bypass -h npc_%objectId%_Quest">Quest</a>
<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>

View File

@@ -1,8 +1,6 @@
<html><body>Priestess Flownia:<br>
Welcome, seeker of truth. How do you like this Town of Aden? A beautiful and grand city, isn't it? I think it is even more impressive when you consider how close it is to the battlefront.<br>
Welcome, seeker of truth. How do you like Aden? It's a beautiful and grand city, isn't it? I think it is even more impressive when you consider how close it is to the battlefront.<br>
But never forget that this magnificent city was built upon the sacrifices of many saints. Unless we are prepared to follow their example, even Aden may someday fall...<br>
<a action="bypass -h npc_%objectId%_SkillList">Learn skills.</a><br>
<a action="bypass -h Quest HealerTrainer SkillTransfer">Ask about Skill Transfer.</a><br>
<a action="bypass -h npc_%objectId%_Link common/skill_enchant_help.htm">Ask about Skill Enchanting.</a><br>
<a action="bypass -h npc_%objectId%_Quest">Quest</a>
<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>

View File

@@ -1,8 +1,6 @@
<html><body>Priest Linette:<br>
<html><body>Priest Leonard:<br>
May Eva smile upon you. Oh! I feel a bit embarrassed to utter this greeting in the Temple of Einhasad. But I suppose if Giran is the center of commerce and Oren is the center of military might, then Aden is the center of culture and religion.<br>
Now what can I do for you, my child?<br>
<a action="bypass -h npc_%objectId%_SkillList">Learn skills.</a><br>
<a action="bypass -h Quest HealerTrainer SkillTransfer">Ask about Skill Transfer.</a><br>
<a action="bypass -h npc_%objectId%_Link common/skill_enchant_help.htm">Ask about Skill Enchanting.</a><br>
<a action="bypass -h npc_%objectId%_Quest">Quest</a>
<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>

View File

@@ -1,5 +1,5 @@
<html><body>Magister Hanellin:<br>
The king of this country so focused on foreign intrigues that he is blind to the revolt brewing in his own capital!<br>
There are dozens of plots, cabals and conspiracies to dethrone him and take over this castle. Those self-righteous Elves may frown and sniff at the goings-on, but we Dark Elves would never criticize. It's just the way of things. Humans may talk like Elves, but they inevitably behave like Dark Elves. It's just their nature...<br>
<a action="bypass -h Quest HealerTrainer 30864.html">Back</a>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest HealerTrainer 30864.html">Back</Button>
</body></html>

View File

@@ -1,8 +1,6 @@
<html><body>Magister Hanellin:<br>
People say this town is the center of culture and religion, but to me it feels like like a piece of rotten wood -- ready to collapse at the slightest push. Humans are closer to Dark Elves than they think...<br>
<a action="bypass -h Quest HealerTrainer 30864-1.html">"How can you say that?"</a><br>
<a action="bypass -h npc_%objectId%_SkillList">Learn skills.</a><br>
<a action="bypass -h Quest HealerTrainer SkillTransfer">Ask about Skill Transfer.</a><br>
<a action="bypass -h npc_%objectId%_Link common/skill_enchant_help.htm">Ask about Skill Enchanting.</a><br>
<a action="bypass -h npc_%objectId%_Quest">Quest</a>
People say this town is the center of culture and religion, but to me it feels like a piece of rotten wood ready to collapse at the slightest push. Humans are closer to Dark Elves than they think...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest HealerTrainer 30864-1.html">"Why is that?"</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>

View File

@@ -1,7 +1,7 @@
<html><body>Weaver Olf Kanore:<br>
Select an item from which you wish the seal removed.<br>
<a action="bypass -h Quest WeaverOlf 32610-2.htm">Remove the seal on the pin.</a><br>
<a action="bypass -h Quest WeaverOlf 32610-3.htm">Remove the seal on the pouch.</a><br>
<a action="bypass -h Quest WeaverOlf 32610-4.htm">Remove the seal on the clip.</a><br>
<a action="bypass -h Quest WeaverOlf 32610-5.htm">Remove the seal on the accessory.</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 32610-2.htm">Remove the seal on the pin.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 32610-3.htm">Remove the seal on the pouch.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 32610-4.htm">Remove the seal on the clip.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 32610-5.htm">Remove the seal on the accessory.</Button>
</body></html>

View File

@@ -1,7 +1,7 @@
<html><body>Weaver Olf Kanore:<br>
Select a magic pin from which to remove the seal. Keep in mind that there is a fee for doing so.<br>
<a action="bypass -h Quest WeaverOlf 0_grade_pin">C-Grade Magic Pin (3200 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 1_grade_pin">B-Grade Magic Pin (11,800 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 2_grade_pin">A-Grade Magic Pin (26,500 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 3_grade_pin">S-Grade Magic Pin (136,600 Adena)</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 0_grade_pin">C-Grade Magic Pin (3200 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 1_grade_pin">B-Grade Magic Pin (11,800 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 2_grade_pin">A-Grade Magic Pin (26,500 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 3_grade_pin">S-Grade Magic Pin (136,600 Adena)</Button>
</body></html>

View File

@@ -1,7 +1,7 @@
<html><body>Weaver Olf Kanore:<br>
Select a magic pouch from which to remove the seal. Keep in mind that there is a fee for doing so.<br>
<a action="bypass -h Quest WeaverOlf 0_grade_pouch">C-Grade Magic Pouch (3200 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 1_grade_pouch">B-Grade Magic Pouch (11,800 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 2_grade_pouch">A-Grade Magic Pouch (26,500 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 3_grade_pouch">S-Grade Magic Pouch (136,600 Adena)</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 0_grade_pouch">C-Grade Magic Pouch (3200 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 1_grade_pouch">B-Grade Magic Pouch (11,800 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 2_grade_pouch">A-Grade Magic Pouch (26,500 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 3_grade_pouch">S-Grade Magic Pouch (136,600 Adena)</Button>
</body></html>

View File

@@ -1,5 +1,5 @@
<html><body>Weaver Olf Kanore:<br>
Select a magic clip from which to remove the seal. Keep in mind that there is a fee for doing so.<br>
<a action="bypass -h Quest WeaverOlf 2_grade_clip">A-Grade Magic Clip (26,500 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 3_grade_clip">S-Grade Magic Clip (136,600 Adena)</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 2_grade_clip">A-Grade Magic Clip (26,500 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 3_grade_clip">S-Grade Magic Clip (136,600 Adena)</Button>
</body></html>

View File

@@ -1,5 +1,5 @@
<html><body>Weaver Olf Kanore:<br>
Select an accessory from which to remove the seal. Keep in mind that there is a fee for doing so.<br>
<a action="bypass -h Quest WeaverOlf 2_grade_ornament">A-Grade Accessory (26,500 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 3_grade_ornament">S-Grade Accessory (136,600 Adena)</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 2_grade_ornament">A-Grade Accessory (26,500 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 3_grade_ornament">S-Grade Accessory (136,600 Adena)</Button>
</body></html>

View File

@@ -1,7 +1,7 @@
<html><body>Weaver Olf Adams:<br>
Select an item from which you wish the seal removed.<br>
<a action="bypass -h Quest WeaverOlf 32612-2.htm">Remove the seal on the pin.</a><br>
<a action="bypass -h Quest WeaverOlf 32612-3.htm">Remove the seal on the pouch.</a><br>
<a action="bypass -h Quest WeaverOlf 32612-4.htm">Remove the seal on the clip.</a><br>
<a action="bypass -h Quest WeaverOlf 32612-5.htm">Remove the seal on the accessory.</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 32612-2.htm">Remove the seal on the pin.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 32612-3.htm">Remove the seal on the pouch.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 32612-4.htm">Remove the seal on the clip.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 32612-5.htm">Remove the seal on the accessory.</Button>
</body></html>

View File

@@ -1,7 +1,7 @@
<html><body>Weaver Olf Adams:<br>
Select a magic pin from which to remove the seal. Keep in mind that there is a fee for doing so.<br>
<a action="bypass -h Quest WeaverOlf 0_grade_pin">C-Grade Magic Pin (3200 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 1_grade_pin">B-Grade Magic Pin (11,800 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 2_grade_pin">A-Grade Magic Pin (26,500 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 3_grade_pin">S-Grade Magic Pin (136,600 Adena)</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 0_grade_pin">C-Grade Magic Pin (3200 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 1_grade_pin">B-Grade Magic Pin (11,800 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 2_grade_pin">A-Grade Magic Pin (26,500 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 3_grade_pin">S-Grade Magic Pin (136,600 Adena)</Button>
</body></html>

View File

@@ -1,7 +1,7 @@
<html><body>Weaver Olf Adams:<br>
Select a magic pouch from which to remove the seal. Keep in mind that there is a fee for doing so.<br>
<a action="bypass -h Quest WeaverOlf 0_grade_pouch">C-Grade Magic Pouch (3200 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 1_grade_pouch">B-Grade Magic Pouch (11,800 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 2_grade_pouch">A-Grade Magic Pouch (26,500 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 3_grade_pouch">S-Grade Magic Pouch (136,600 Adena)</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 0_grade_pouch">C-Grade Magic Pouch (3200 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 1_grade_pouch">B-Grade Magic Pouch (11,800 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 2_grade_pouch">A-Grade Magic Pouch (26,500 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 3_grade_pouch">S-Grade Magic Pouch (136,600 Adena)</Button>
</body></html>

View File

@@ -1,5 +1,5 @@
<html><body>Weaver Olf Adams:<br>
Select a magic clip from which to remove the seal. Keep in mind that there is a fee for doing so.<br>
<a action="bypass -h Quest WeaverOlf 2_grade_clip">A-Grade Magic Clip (26,500 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 3_grade_clip">S-Grade Magic Clip (136,600 Adena)</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 2_grade_clip">A-Grade Magic Clip (26,500 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 3_grade_clip">S-Grade Magic Clip (136,600 Adena)</Button>
</body></html>

View File

@@ -1,5 +1,5 @@
<html><body>Weaver Olf Adams:<br>
Select an accessory from which to remove the seal. Keep in mind that there is a fee for doing so.<br>
<a action="bypass -h Quest WeaverOlf 2_grade_ornament">A-Grade Accessory (26,500 Adena)</a><br>
<a action="bypass -h Quest WeaverOlf 3_grade_ornament">S-Grade Accessory (136,600 Adena)</a>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 2_grade_ornament">A-Grade Accessory (26,500 Adena)</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest WeaverOlf 3_grade_ornament">S-Grade Accessory (136,600 Adena)</Button>
</body></html>

View File

@@ -1,10 +1,6 @@
<html>
<head>
<body>
Zephyra:<br>
<html><body>Zephyra:<br>
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>
</body>
</html>
</body></html>

View File

@@ -1,9 +1,5 @@
<html>
<head>
<body>
Zephyra:<br>
<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>
</body>
</html>
</body></html>

View File

@@ -1,7 +1,4 @@
<html>
<head>
<body>
Zephyra:<br>
<html><body>Zephyra:<br>
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>
@@ -10,5 +7,4 @@ So, do you want to join my research? By the way, only Lv. 40 or above Ertheia wh
<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>
</body>
</html>
</body></html>

View File

@@ -33,11 +33,14 @@ import com.l2jserver.gameserver.network.serverpackets.ExAcquirableSkillListByCla
import com.l2jserver.gameserver.network.serverpackets.TutorialShowHtml;
/**
* Zephyra AI.
* @author Sdw
*/
public class Zephyra extends AbstractNpcAI
public final class Zephyra extends AbstractNpcAI
{
// NPCs
private static final int ZEPHYRA = 33978;
// Misc
private static final String TUTORIAL_LINK = "..\\L2text\\QT_026_alchemy_01.htm";
private Zephyra()