Third part for Best Choice series quests.
Contributed by NightBR.
This commit is contained in:
@@ -185,8 +185,6 @@
|
||||
10572 To Expel the Embryo's Forces
|
||||
10574 Special Mission: Fortuna
|
||||
10576 Glittering Weapons
|
||||
10577 Temper a Rusting Blade
|
||||
10578 The Soul of a Sword
|
||||
10580 Special Mission: Defeat Spezion
|
||||
10594 Fergason's Scheme
|
||||
10595 The Dimensional Warp, Part 8
|
||||
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Do you know what <font color="LEVEL">augmenting</font> is? Your weapon sure doesen't look it.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-02.htm">"What is augmenting?"</button>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
See? I was right! Only when your weapons are reliable, can you be confident about your skills.<br>
|
||||
Now, pay attention. I will teach you to maximize the hidden potential.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-03.htm">"Yes, indeed."</button>
|
||||
</body></html>
|
@@ -0,0 +1,6 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
First, you must understand augmenting. It <font color="LEVEL">provides items with additional options</font>, separately from <font color="LEVEL">enchanting</font>, <font color="LEVEL">soul crystal enhancement</font> or <font color="LEVEL">attributes</font> that you will learn later.<br>
|
||||
For augmenting, you have to get all the required <font color="LEVEL">material</font> and ask <font color="LEVEL">any village's blacksmith</font> to make an item. Keep in mind that you can have accessories and hair accessories augmented but not armor.<br>
|
||||
So far so good, huh?
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-04.html">"Yes, indeed."</button>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
I told you about the items needed, right? Well, of course you need items for augmenting too. First, you need equipment you want to augment. It can be a <font color="LEVEL">weapon, accessory, or a hair accessory</font>. You also need <font color="LEVEL">Spirit Stones</font>. And you need Gemstones to pay the fee for augmenting, and the amount depends on the weapon grade.<br>
|
||||
A good way to get the items I mentioned is by using the <font color="LEVEL">private store</font>. There are many merchants who buy and sell items in the village, and you can get the items you want without having to pay fees and stuff. There's some legwork... but it can be fun too!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-05.html">"Alright."</button>
|
||||
</body></html>
|
@@ -0,0 +1,6 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Now, assuming tha you have all the necessary items, let's talk about augmentation. There are only two things you need to know. First, <font color="LEVEL">augmentation options are just random</font>. Sometimes, you need to release and repeat the augmentation to gain your desired option.<br>
|
||||
Second, <font color="LEVEL">the augmented items cannot be exchanged or traded</font>. In order to exchange the augmented item, you'll have to release the augmentation first.<br>
|
||||
That should be everithig I need to explain. Let's get practicing now!<nr>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-06.html">"Tell me about practice."</button>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Since this is your first time, I'll provide the materials. Here are an <font color="LEVEL">Augmentation Practice Weapon</font>, an <font color="LEVEL">Augmentation Practice Spirit Stone(46)</font>, and an <font color="LEVEL">Augmentation Practice Gemstone(R-grade)</font>. Try augmenting as I taught you. If you succeed, you will get an augmented <font color="LEVEL">Augmentation Practice Weapon</font>.<br>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Congratulations. Feel free to toss this practice weapon, if you don't like the result. That's what practice is for. In the real world, if you don't like the final version, you can <font color="LEVEL">remove augmentation</font> with some Adena. Keep that in mind.<br>
|
||||
Anyway, you did a good job following my instructions.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-08.html">"It wasn't that difficult."</button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Oh yeah? Hahaha. Anyway, I'll give you the certificate as a Reward. If you don't practice what you've learned, you'll forget it. So try augmentin whenever you have time.<br>
|
||||
I hope you will put your new augmenting skills to good use.<br>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Was it hard? Try augmenting with an <font color="LEVEL">Augmentation Practice Weapon</font>, an <font color="LEVEL">Augmentation Practice Spirit Stone(46)</font>, and an <font color="LEVEL">Augmentation Practice Gemstone (R-grade)</font>. Try augmenting as I taught you. If you succeed, you will get an augmented <font color="LEVEL">Augmentation Practice Weapon</font>.<br>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Hey, let nature take its course. It's not good for us to go against it.<br>
|
||||
(Only characters who have the quest "Best Choice" in progress, can play this quest.)
|
||||
</body></html>
|
@@ -0,0 +1,172 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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.Q10577_TemperARustingBlade;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.QuestType;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.Containers;
|
||||
import org.l2jmobius.gameserver.model.events.EventType;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerAugment;
|
||||
import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import org.l2jmobius.gameserver.model.quest.State;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
|
||||
|
||||
import quests.Q10566_BestChoice.Q10566_BestChoice;
|
||||
|
||||
/**
|
||||
* Temper a Rusting Blade (10577)
|
||||
* @URL https://l2wiki.com/Temper_a_Rusting_Blade
|
||||
* @author NightBR
|
||||
* @html by Werum
|
||||
*/
|
||||
public final class Q10577_TemperARustingBlade extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int FLUTTER = 30677;
|
||||
// Item
|
||||
private static final int AUGMENTATION_PRACTICE_STORMBRINGER = 36717;
|
||||
private static final int AUGMENTATION_PRACTICE_SPIRIT_STONE = 36718;
|
||||
private static final int AUGMENTATION_PRACTICE_GEMSTONE = 36719;
|
||||
// Rewards
|
||||
private static final long XP = 597699960;
|
||||
private static final int SP = 597690;
|
||||
private static final int CERTIFICATE_FROM_FLUTTER = 48175;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 95;
|
||||
|
||||
public Q10577_TemperARustingBlade()
|
||||
{
|
||||
super(10577);
|
||||
addStartNpc(FLUTTER);
|
||||
addTalkId(FLUTTER);
|
||||
addCondMinLevel(MIN_LEVEL, "noLevel.html");
|
||||
registerQuestItems(AUGMENTATION_PRACTICE_STORMBRINGER, AUGMENTATION_PRACTICE_SPIRIT_STONE, AUGMENTATION_PRACTICE_GEMSTONE);
|
||||
addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "30677-99.html");
|
||||
Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_PLAYER_AUGMENT, (OnPlayerAugment event) -> OnPlayerAugment(event), this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "30677-02.htm":
|
||||
case "30677-05.html":
|
||||
case "30677-07.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30677-03.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30677-04.html":
|
||||
{
|
||||
// show Service/Help/Private Store page
|
||||
player.sendPacket(new ExTutorialShowId(57));
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30677-06.html":
|
||||
{
|
||||
// show Service/Help/Augmentation page
|
||||
player.sendPacket(new ExTutorialShowId(39));
|
||||
giveItems(player, AUGMENTATION_PRACTICE_STORMBRINGER, 1);
|
||||
giveItems(player, AUGMENTATION_PRACTICE_SPIRIT_STONE, 1);
|
||||
giveItems(player, AUGMENTATION_PRACTICE_GEMSTONE, 20);
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30677-08.html":
|
||||
{
|
||||
addExpAndSp(player, XP, SP);
|
||||
giveItems(player, CERTIFICATE_FROM_FLUTTER, 1);
|
||||
qs.exitQuest(QuestType.ONE_TIME, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "30677-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "30677-03.html";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "30677-09.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30677-07.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public void OnPlayerAugment(OnPlayerAugment event)
|
||||
{
|
||||
final PlayerInstance player = event.getPlayer();
|
||||
if ((player == null) || (event.getItem().getId() != AUGMENTATION_PRACTICE_STORMBRINGER))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
// Check if weapon has been augmented to complete the quest
|
||||
if ((qs != null) && qs.isCond(2) && (player.getInventory().getItemByItemId(AUGMENTATION_PRACTICE_STORMBRINGER).isAugmented()))
|
||||
{
|
||||
qs.setCond(3, true);
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.<br>
|
||||
(Only characters with Lv. 95 or above may undertake this quest.)
|
||||
</body></html>
|
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm
vendored
Normal file
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Hello. Are you here to learn about <font color="LEVEL">Soul Crystals</font>?<br>
|
||||
Well, you've come to the right place. And you are also ready to learn about them. Should we get started?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-02.htm">"Go on."</button>
|
||||
</body></html>
|
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm
vendored
Normal file
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Let me offer a proposal. I'm confident that this will be very useful to you. I'll give you the items needed for experiencing Soul Crystals and I'll also teach you how. You just need to do as I tell you and try Soul Crystal. If you succeed in this, I'll give you a little reward.<br>
|
||||
So, what do you think? Isn't it a nice opportunity?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-03.htm">"Yes, indeed."</button>
|
||||
</body></html>
|
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm
vendored
Normal file
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Good. Now, I'll give you information on <font color="LEVEL">Soul Crystals</font>. Originally, Soul Crystals <font color="LEVEL">give a special ability to weapon by using the spirit of monster</font>. Especially, in the past, you had to have a Soul Crystal when defeating monsters to raise the level of the Soul Crystal. This wasn't an easy task but, those who desired to become stronger spared no effort.<br>
|
||||
But at some point, it became impossible to experience the Soul Crystal that way. Well... there are lots of strange things taking place nowadays, so stuff like this is not unthinkable.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-04.html">"Is there a solution?"</button>
|
||||
</body></html>
|
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html
vendored
Normal file
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Fortunately, there was a solution. Magisters, Maestros, and even scholars have helped find something that can replace the old Soul Crystals. The new Soul Crystals can be upgraded by combining them.<br>
|
||||
Surprisingly, the Soul Crystals can be just simply upgraded via <font color="LEVEL">combination</font>. And one more thing. The method of granting Soul Crystal effects through Blacksmiths is slightly different now. This is what I want to talk to you about.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-05.html">"Go on."</button>
|
||||
</body></html>
|
6
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html
vendored
Normal file
6
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
First off, you can't use old Soul Crystals anymore. To bestow the new special abilities, you need the new Soul Crystals. You can get them by defeating bosses or raid monsters.<br>
|
||||
When you get the Soul Crystals, then you can combine them to make an upgraded Soul Crystal. For combination, you need two Soul Crystals of the same type and the same stage. However, there is a chance of failure. If the combination fails, one of the two Soul Crystals will disappear.<br>
|
||||
In any case, by doing this, you can get your desired Soul Crystal class and then give the ability to a weapon.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-06.html">"Tell me about practice."</button>
|
||||
</body></html>
|
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html
vendored
Normal file
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Well, it's better to just try it for yourself. Here's a <font color="LEVEL">Practice StormBringer</font> and a <font color="LEVEL">Practice Soul Crystal-Stage 1</font>. You'll need to have a Gemstone that is appropriate for the level of the Soul Crystal. Now, I'll give you a <font color="LEVEL"></font>Practice Soul Crystal Gemstone, but next time, you'll have to obtain the Gemstone yourself.<br>
|
||||
You can purchase Gemstones from the <font color="LEVEL">Traders</font> at the <font color="LEVEL">Store</font> in the Village. There are various Stores in the village and each trader sells different items. It'll be good to know about their items.<br>
|
||||
If you want to try a Soul Crystal ability with other weapons, you can always try it out.<br>
|
||||
</body></html>
|
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html
vendored
Normal file
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Oh, you succeeded? Got it now?<br>
|
||||
It's easier than it sounds, right?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-08.html">"Yes, indeed."</button>
|
||||
</body></html>
|
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html
vendored
Normal file
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Good. Remenber what I've taught you next time you need to use Soul Crystals.<br>
|
||||
Oh, right. You can bestow up to 3 special abilities to new Soul Crystals! Don't forget all the effort we've put into this!<br>
|
||||
</body></html>
|
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html
vendored
Normal file
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Now, I'll tell you about <font color="LEVEL">Soul Crystals</font>. Originally, Soul Crystals <font color="LEVEL">give a special ability to weapon by using the spirit of monster</font>. Especially, in the past, you had to have a Soul Crystal when defeating monsters to raise the level of the Soul Crystal. This wasn't an easy task but, those who desired to become stronger spared no effort.<br>
|
||||
But at some point, it became impossible to experience the Soul Crystal that way. Well... there are lots of strange things taking place nowadays, so stuff like this is not unthinkable.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-04.html">"Is there a solution?"</button>
|
||||
</body></html>
|
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html
vendored
Normal file
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Hm? It looks like you didn't succeed yet. Do you need anything?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-11.html">"Tell me about Soul Crystals."</button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-06.html">"Give me the items needed for Soul Crystals."</button>
|
||||
</body></html>
|
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html
vendored
Normal file
5
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Alright. you can <font color="LEVEL">use a Soul Crystal to bestow a special ability onto weapons</font>. There have been some changes to the Soul Crystals, and now you can upgrade them by <font color="LEVEL">combining</font> them. That's why we have new Soul Crystals now.<br>
|
||||
The Soul Crystals from before cannot be used anymore. You can get the new Soul Crystals by defeating boss monsters, so remember that.<br>
|
||||
If you need more information, check the instructions.<br>
|
||||
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
I've already given you all the necessary items, I can't give you anymore.<br>
|
||||
</body></html>
|
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html
vendored
Normal file
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Hey, let nature take its course. It's not good for us to go against it.<br>
|
||||
(Only characters who have the quest "Best Choice" in progress, can play this quest.)
|
||||
</body></html>
|
@@ -0,0 +1,183 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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.Q10578_TheSoulOfASword;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.QuestType;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.Containers;
|
||||
import org.l2jmobius.gameserver.model.events.EventType;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd;
|
||||
import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import org.l2jmobius.gameserver.model.quest.State;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
|
||||
|
||||
import quests.Q10566_BestChoice.Q10566_BestChoice;
|
||||
|
||||
/**
|
||||
* The Soul of a Sword (10578)
|
||||
* @URL https://l2wiki.com/The_Soul_of_a_Sword
|
||||
* @author NightBR
|
||||
* @html by Werum
|
||||
*/
|
||||
public final class Q10578_TheSoulOfASword extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int VINCENZ = 31316;
|
||||
// Items
|
||||
private static final int PRACTICE_STORMBRINGER = 46629;
|
||||
private static final int PRACTICE_SOUL_CRYSTAL_STAGE1 = 46526;
|
||||
private static final int SOUL_CRYSTAL_PRACTICE_GEMSTONE = 36722;
|
||||
// Rewards
|
||||
private static final long XP = 597699960;
|
||||
private static final int SP = 597690;
|
||||
private static final int CERTIFICATE_FROM_VINCENZ = 48176;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 95;
|
||||
|
||||
public Q10578_TheSoulOfASword()
|
||||
{
|
||||
super(10578);
|
||||
addStartNpc(VINCENZ);
|
||||
addTalkId(VINCENZ);
|
||||
addCondMinLevel(MIN_LEVEL, "noLevel.html");
|
||||
registerQuestItems(PRACTICE_STORMBRINGER, PRACTICE_SOUL_CRYSTAL_STAGE1, SOUL_CRYSTAL_PRACTICE_GEMSTONE);
|
||||
addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "31316-99.html");
|
||||
Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_ITEM_SOUL_CRYSTAL_ADD, (OnItemSoulCrystalAdd event) -> OnItemSoulCrystalAdd(event), this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "31316-02.htm":
|
||||
case "31316-04.html":
|
||||
case "31316-07.html":
|
||||
case "31316-11.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31316-03.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31316-05.html":
|
||||
{
|
||||
// show Service/Help/Soul Crystal Enhancement page
|
||||
player.sendPacket(new ExTutorialShowId(40));
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31316-06.html":
|
||||
{
|
||||
// show Service/Help/Buy Item page
|
||||
player.sendPacket(new ExTutorialShowId(36));
|
||||
// TODO: check if player already have quest items
|
||||
if (hasQuestItems(player, PRACTICE_STORMBRINGER, PRACTICE_SOUL_CRYSTAL_STAGE1, SOUL_CRYSTAL_PRACTICE_GEMSTONE))
|
||||
{
|
||||
htmltext = "31316-12.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
// To make sure player does not have them already
|
||||
removeRegisteredQuestItems(player);
|
||||
giveItems(player, PRACTICE_STORMBRINGER, 1);
|
||||
giveItems(player, PRACTICE_SOUL_CRYSTAL_STAGE1, 1);
|
||||
giveItems(player, SOUL_CRYSTAL_PRACTICE_GEMSTONE, 10);
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31316-08.html":
|
||||
{
|
||||
addExpAndSp(player, XP, SP);
|
||||
giveItems(player, CERTIFICATE_FROM_VINCENZ, 1);
|
||||
qs.exitQuest(QuestType.ONE_TIME, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "31316-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "31316-09.html";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "31316-10.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31316-07.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public void OnItemSoulCrystalAdd(OnItemSoulCrystalAdd event)
|
||||
{
|
||||
final PlayerInstance player = event.getPlayer();
|
||||
if ((player == null) || (event.getItem().getId() != PRACTICE_STORMBRINGER))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
// Check if weapon has been augmented to complete the quest
|
||||
if ((qs != null) && qs.isCond(2) && (!player.getInventory().getItemByItemId(PRACTICE_STORMBRINGER).getSpecialAbilities().isEmpty()))
|
||||
{
|
||||
qs.setCond(3, true);
|
||||
}
|
||||
}
|
||||
}
|
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html
vendored
Normal file
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.<br>
|
||||
(Only characters with Lv. 95 or above may undertake this quest.)
|
||||
</body></html>
|
@@ -356,6 +356,8 @@ import quests.Q10561_AcrossTheDeathLine.Q10561_AcrossTheDeathLine;
|
||||
import quests.Q10562_TakeUpArms.Q10562_TakeUpArms;
|
||||
import quests.Q10566_BestChoice.Q10566_BestChoice;
|
||||
import quests.Q10575_LetsGoFishing.Q10575_LetsGoFishing;
|
||||
import quests.Q10577_TemperARustingBlade.Q10577_TemperARustingBlade;
|
||||
import quests.Q10578_TheSoulOfASword.Q10578_TheSoulOfASword;
|
||||
import quests.Q10579_ContainingTheAttributePower.Q10579_ContainingTheAttributePower;
|
||||
import quests.Q10658_MakkumInTheDimension.Q10658_MakkumInTheDimension;
|
||||
import quests.Q10701_TheRoadToDestruction.Q10701_TheRoadToDestruction;
|
||||
@@ -913,8 +915,8 @@ public class QuestMasterHandler
|
||||
Q10574_SpecialMissionFortuna.class, // TODO: Not done.
|
||||
Q10575_LetsGoFishing.class,
|
||||
Q10576_GlitteringWeapons.class, // TODO: Not done.
|
||||
Q10577_TemperARustingBlade.class, // TODO: Not done.
|
||||
Q10578_TheSoulOfASword.class, // TODO: Not done.
|
||||
Q10577_TemperARustingBlade.class,
|
||||
Q10578_TheSoulOfASword.class,
|
||||
Q10579_ContainingTheAttributePower.class,
|
||||
Q10580_SpecialMissionDefeatSpezion.class, // TODO: Not done.
|
||||
Q10594_FergasonsScheme.class, // TODO: Not done.
|
||||
|
@@ -1,36 +0,0 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10577_TemperARustingBlade extends Quest
|
||||
{
|
||||
private static final int START_NPC = 30677;
|
||||
|
||||
public Q10577_TemperARustingBlade()
|
||||
{
|
||||
super(10577);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@@ -1,36 +0,0 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10578_TheSoulOfASword extends Quest
|
||||
{
|
||||
private static final int START_NPC = 31316;
|
||||
|
||||
public Q10578_TheSoulOfASword()
|
||||
{
|
||||
super(10578);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@@ -8073,6 +8073,7 @@
|
||||
</itemGroup>
|
||||
<!--[r] -->
|
||||
<itemGroup id="15">
|
||||
<item id="46629" /> <!-- Practice Stormbringer -->
|
||||
<item id="17290" /> <!-- Requiem Shaper -->
|
||||
<item id="17291" /> <!-- Requiem Cutter -->
|
||||
<item id="17292" /> <!-- Requiem Slasher -->
|
||||
@@ -8660,6 +8661,7 @@
|
||||
</itemGroup>
|
||||
<!--[r95] -->
|
||||
<itemGroup id="16">
|
||||
<item id="46629" /> <!-- Practice Stormbringer -->
|
||||
<item id="17382" /> <!-- Specter Shaper -->
|
||||
<item id="17383" /> <!-- Specter Cutter -->
|
||||
<item id="17384" /> <!-- Specter Slasher -->
|
||||
@@ -8953,6 +8955,7 @@
|
||||
</itemGroup>
|
||||
<!--[r99] -->
|
||||
<itemGroup id="17">
|
||||
<item id="46629" /> <!-- Practice Stormbringer -->
|
||||
<item id="17416" /> <!-- Helios Shaper -->
|
||||
<item id="17417" /> <!-- Helios Cutter -->
|
||||
<item id="17418" /> <!-- Helios Slasher -->
|
||||
@@ -10417,6 +10420,7 @@
|
||||
</itemGroup>
|
||||
<!-- Life Stone Instilled with Giants -->
|
||||
<itemGroup id="36">
|
||||
<item id="46629" /> <!-- Practice Stormbringer -->
|
||||
<item id="17290" /> <!-- Requiem Shaper -->
|
||||
<item id="17291" /> <!-- Requiem Cutter -->
|
||||
<item id="17292" /> <!-- Requiem Slasher -->
|
||||
@@ -14329,6 +14333,7 @@
|
||||
</itemGroup>
|
||||
<!-- [r_new] -->
|
||||
<itemGroup id="52">
|
||||
<item id="46629" /> <!-- Practice Stormbringer -->
|
||||
<item id="17290" /> <!-- Requiem Shaper -->
|
||||
<item id="17291" /> <!-- Requiem Cutter -->
|
||||
<item id="17292" /> <!-- Requiem Slasher -->
|
||||
|
@@ -291,7 +291,7 @@
|
||||
<set name="default_action" val="EQUIP" />
|
||||
<set name="bodypart" val="rhand" />
|
||||
<set name="weapon_type" val="SWORD" />
|
||||
<set name="crystal_type" val="C" />
|
||||
<set name="crystal_type" val="R" />
|
||||
<set name="is_clan_depositable" val="false" />
|
||||
<set name="is_mailable" val="false" />
|
||||
<set name="is_tradable" val="false" />
|
||||
|
@@ -334,18 +334,16 @@
|
||||
<!-- Temporary practice weapon for learning about the Soul Crystal system. Very inefficient as a weapon. -->
|
||||
<set name="icon" val="icon.weapon_stormbringer_i00" />
|
||||
<set name="default_action" val="EQUIP" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="bodypart" val="rhand" />
|
||||
<set name="weapon_type" val="SWORD" />
|
||||
<set name="crystal_type" val="C" />
|
||||
<set name="weight" val="1420" />
|
||||
<set name="soulshots" val="2" />
|
||||
<set name="bodypart" val="rhand" />
|
||||
<set name="spiritshots" val="2" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_destroyable" val="false" />
|
||||
<set name="is_private_storeable" val="false" />
|
||||
<set name="is_sellable" val="false" />
|
||||
<set name="crystal_count" val="3274" />
|
||||
<set name="weight" val="1520" />
|
||||
<set name="enchant_enabled" val="1" />
|
||||
<set name="element_enabled" val="true" />
|
||||
<set name="isAppearanceable" val="true" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="commissionItemType" val="ONE_HAND_SWORD" />
|
||||
<stats>
|
||||
<stat type="pAtk">107.0</stat>
|
||||
<stat type="mAtk">68.0</stat>
|
||||
|
@@ -123,6 +123,7 @@ import org.l2jmobius.gameserver.model.events.impl.instance.OnInstanceStatusChang
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemAttributeAdd;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemBypassEvent;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemCreate;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemTalk;
|
||||
import org.l2jmobius.gameserver.model.events.impl.olympiad.OnOlympiadMatchResult;
|
||||
import org.l2jmobius.gameserver.model.events.impl.server.OnPacketReceived;
|
||||
@@ -183,6 +184,7 @@ public enum EventType
|
||||
ON_ITEM_CREATE(OnItemCreate.class, void.class),
|
||||
ON_ITEM_TALK(OnItemTalk.class, void.class),
|
||||
ON_ITEM_ATTRIBUTE_ADD(OnItemAttributeAdd.class, void.class),
|
||||
ON_ITEM_SOUL_CRYSTAL_ADD(OnItemSoulCrystalAdd.class, void.class),
|
||||
|
||||
// NPC events
|
||||
ON_NPC_CAN_BE_SEEN(OnNpcCanBeSeen.class, void.class, TerminateReturn.class),
|
||||
|
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 org.l2jmobius.gameserver.model.events.impl.item;
|
||||
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.EventType;
|
||||
import org.l2jmobius.gameserver.model.events.impl.IBaseEvent;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
|
||||
/**
|
||||
* @author NightBR
|
||||
*/
|
||||
public class OnItemSoulCrystalAdd implements IBaseEvent
|
||||
{
|
||||
private final PlayerInstance _player;
|
||||
private final ItemInstance _item;
|
||||
|
||||
public OnItemSoulCrystalAdd(PlayerInstance player, ItemInstance item)
|
||||
{
|
||||
_player = player;
|
||||
_item = item;
|
||||
}
|
||||
|
||||
public PlayerInstance getPlayer()
|
||||
{
|
||||
return _player;
|
||||
}
|
||||
|
||||
public ItemInstance getItem()
|
||||
{
|
||||
return _item;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventType getType()
|
||||
{
|
||||
return EventType.ON_ITEM_SOUL_CRYSTAL_ADD;
|
||||
}
|
||||
}
|
@@ -69,6 +69,7 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDr
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemPickup;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemAttributeAdd;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemBypassEvent;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemTalk;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.model.items.Armor;
|
||||
@@ -2207,6 +2208,9 @@ public final class ItemInstance extends WorldObject
|
||||
{
|
||||
updateSpecialAbilities();
|
||||
}
|
||||
|
||||
// Notify to Scripts
|
||||
EventDispatcher.getInstance().notifyEventAsync(new OnItemSoulCrystalAdd(getActingPlayer(), this));
|
||||
}
|
||||
|
||||
public void removeSpecialAbility(int position, int type)
|
||||
|
@@ -197,8 +197,6 @@
|
||||
10572 To Expel the Embryo's Forces
|
||||
10574 Special Mission: Fortuna
|
||||
10576 Glittering Weapons
|
||||
10577 Temper a Rusting Blade
|
||||
10578 The Soul of a Sword
|
||||
10580 Special Mission: Defeat Spezion
|
||||
10594 Fergason's Scheme
|
||||
10595 The Dimensional Warp, Part 8
|
||||
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Do you know what <font color="LEVEL">augmenting</font> is? Your weapon sure doesen't look it.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-02.htm">"What is augmenting?"</button>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
See? I was right! Only when your weapons are reliable, can you be confident about your skills.<br>
|
||||
Now, pay attention. I will teach you to maximize the hidden potential.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-03.htm">"Yes, indeed."</button>
|
||||
</body></html>
|
@@ -0,0 +1,6 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
First, you must understand augmenting. It <font color="LEVEL">provides items with additional options</font>, separately from <font color="LEVEL">enchanting</font>, <font color="LEVEL">soul crystal enhancement</font> or <font color="LEVEL">attributes</font> that you will learn later.<br>
|
||||
For augmenting, you have to get all the required <font color="LEVEL">material</font> and ask <font color="LEVEL">any village's blacksmith</font> to make an item. Keep in mind that you can have accessories and hair accessories augmented but not armor.<br>
|
||||
So far so good, huh?
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-04.html">"Yes, indeed."</button>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
I told you about the items needed, right? Well, of course you need items for augmenting too. First, you need equipment you want to augment. It can be a <font color="LEVEL">weapon, accessory, or a hair accessory</font>. You also need <font color="LEVEL">Spirit Stones</font>. And you need Gemstones to pay the fee for augmenting, and the amount depends on the weapon grade.<br>
|
||||
A good way to get the items I mentioned is by using the <font color="LEVEL">private store</font>. There are many merchants who buy and sell items in the village, and you can get the items you want without having to pay fees and stuff. There's some legwork... but it can be fun too!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-05.html">"Alright."</button>
|
||||
</body></html>
|
@@ -0,0 +1,6 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Now, assuming tha you have all the necessary items, let's talk about augmentation. There are only two things you need to know. First, <font color="LEVEL">augmentation options are just random</font>. Sometimes, you need to release and repeat the augmentation to gain your desired option.<br>
|
||||
Second, <font color="LEVEL">the augmented items cannot be exchanged or traded</font>. In order to exchange the augmented item, you'll have to release the augmentation first.<br>
|
||||
That should be everithig I need to explain. Let's get practicing now!<nr>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-06.html">"Tell me about practice."</button>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Since this is your first time, I'll provide the materials. Here are an <font color="LEVEL">Augmentation Practice Weapon</font>, an <font color="LEVEL">Augmentation Practice Spirit Stone(46)</font>, and an <font color="LEVEL">Augmentation Practice Gemstone(R-grade)</font>. Try augmenting as I taught you. If you succeed, you will get an augmented <font color="LEVEL">Augmentation Practice Weapon</font>.<br>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Congratulations. Feel free to toss this practice weapon, if you don't like the result. That's what practice is for. In the real world, if you don't like the final version, you can <font color="LEVEL">remove augmentation</font> with some Adena. Keep that in mind.<br>
|
||||
Anyway, you did a good job following my instructions.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-08.html">"It wasn't that difficult."</button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Oh yeah? Hahaha. Anyway, I'll give you the certificate as a Reward. If you don't practice what you've learned, you'll forget it. So try augmentin whenever you have time.<br>
|
||||
I hope you will put your new augmenting skills to good use.<br>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Was it hard? Try augmenting with an <font color="LEVEL">Augmentation Practice Weapon</font>, an <font color="LEVEL">Augmentation Practice Spirit Stone(46)</font>, and an <font color="LEVEL">Augmentation Practice Gemstone (R-grade)</font>. Try augmenting as I taught you. If you succeed, you will get an augmented <font color="LEVEL">Augmentation Practice Weapon</font>.<br>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Hey, let nature take its course. It's not good for us to go against it.<br>
|
||||
(Only characters who have the quest "Best Choice" in progress, can play this quest.)
|
||||
</body></html>
|
@@ -0,0 +1,172 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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.Q10577_TemperARustingBlade;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.QuestType;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.Containers;
|
||||
import org.l2jmobius.gameserver.model.events.EventType;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerAugment;
|
||||
import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import org.l2jmobius.gameserver.model.quest.State;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
|
||||
|
||||
import quests.Q10566_BestChoice.Q10566_BestChoice;
|
||||
|
||||
/**
|
||||
* Temper a Rusting Blade (10577)
|
||||
* @URL https://l2wiki.com/Temper_a_Rusting_Blade
|
||||
* @author NightBR
|
||||
* @html by Werum
|
||||
*/
|
||||
public final class Q10577_TemperARustingBlade extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int FLUTTER = 30677;
|
||||
// Item
|
||||
private static final int AUGMENTATION_PRACTICE_STORMBRINGER = 36717;
|
||||
private static final int AUGMENTATION_PRACTICE_SPIRIT_STONE = 36718;
|
||||
private static final int AUGMENTATION_PRACTICE_GEMSTONE = 36719;
|
||||
// Rewards
|
||||
private static final long XP = 597699960;
|
||||
private static final int SP = 597690;
|
||||
private static final int CERTIFICATE_FROM_FLUTTER = 48175;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 95;
|
||||
|
||||
public Q10577_TemperARustingBlade()
|
||||
{
|
||||
super(10577);
|
||||
addStartNpc(FLUTTER);
|
||||
addTalkId(FLUTTER);
|
||||
addCondMinLevel(MIN_LEVEL, "noLevel.html");
|
||||
registerQuestItems(AUGMENTATION_PRACTICE_STORMBRINGER, AUGMENTATION_PRACTICE_SPIRIT_STONE, AUGMENTATION_PRACTICE_GEMSTONE);
|
||||
addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "30677-99.html");
|
||||
Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_PLAYER_AUGMENT, (OnPlayerAugment event) -> OnPlayerAugment(event), this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "30677-02.htm":
|
||||
case "30677-05.html":
|
||||
case "30677-07.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30677-03.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30677-04.html":
|
||||
{
|
||||
// show Service/Help/Private Store page
|
||||
player.sendPacket(new ExTutorialShowId(57));
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30677-06.html":
|
||||
{
|
||||
// show Service/Help/Augmentation page
|
||||
player.sendPacket(new ExTutorialShowId(39));
|
||||
giveItems(player, AUGMENTATION_PRACTICE_STORMBRINGER, 1);
|
||||
giveItems(player, AUGMENTATION_PRACTICE_SPIRIT_STONE, 1);
|
||||
giveItems(player, AUGMENTATION_PRACTICE_GEMSTONE, 20);
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30677-08.html":
|
||||
{
|
||||
addExpAndSp(player, XP, SP);
|
||||
giveItems(player, CERTIFICATE_FROM_FLUTTER, 1);
|
||||
qs.exitQuest(QuestType.ONE_TIME, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "30677-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "30677-03.html";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "30677-09.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30677-07.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public void OnPlayerAugment(OnPlayerAugment event)
|
||||
{
|
||||
final PlayerInstance player = event.getPlayer();
|
||||
if ((player == null) || (event.getItem().getId() != AUGMENTATION_PRACTICE_STORMBRINGER))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
// Check if weapon has been augmented to complete the quest
|
||||
if ((qs != null) && qs.isCond(2) && (player.getInventory().getItemByItemId(AUGMENTATION_PRACTICE_STORMBRINGER).isAugmented()))
|
||||
{
|
||||
qs.setCond(3, true);
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.<br>
|
||||
(Only characters with Lv. 95 or above may undertake this quest.)
|
||||
</body></html>
|
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm
vendored
Normal file
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Hello. Are you here to learn about <font color="LEVEL">Soul Crystals</font>?<br>
|
||||
Well, you've come to the right place. And you are also ready to learn about them. Should we get started?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-02.htm">"Go on."</button>
|
||||
</body></html>
|
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm
vendored
Normal file
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Let me offer a proposal. I'm confident that this will be very useful to you. I'll give you the items needed for experiencing Soul Crystals and I'll also teach you how. You just need to do as I tell you and try Soul Crystal. If you succeed in this, I'll give you a little reward.<br>
|
||||
So, what do you think? Isn't it a nice opportunity?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-03.htm">"Yes, indeed."</button>
|
||||
</body></html>
|
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm
vendored
Normal file
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Good. Now, I'll give you information on <font color="LEVEL">Soul Crystals</font>. Originally, Soul Crystals <font color="LEVEL">give a special ability to weapon by using the spirit of monster</font>. Especially, in the past, you had to have a Soul Crystal when defeating monsters to raise the level of the Soul Crystal. This wasn't an easy task but, those who desired to become stronger spared no effort.<br>
|
||||
But at some point, it became impossible to experience the Soul Crystal that way. Well... there are lots of strange things taking place nowadays, so stuff like this is not unthinkable.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-04.html">"Is there a solution?"</button>
|
||||
</body></html>
|
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html
vendored
Normal file
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Fortunately, there was a solution. Magisters, Maestros, and even scholars have helped find something that can replace the old Soul Crystals. The new Soul Crystals can be upgraded by combining them.<br>
|
||||
Surprisingly, the Soul Crystals can be just simply upgraded via <font color="LEVEL">combination</font>. And one more thing. The method of granting Soul Crystal effects through Blacksmiths is slightly different now. This is what I want to talk to you about.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-05.html">"Go on."</button>
|
||||
</body></html>
|
6
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html
vendored
Normal file
6
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
First off, you can't use old Soul Crystals anymore. To bestow the new special abilities, you need the new Soul Crystals. You can get them by defeating bosses or raid monsters.<br>
|
||||
When you get the Soul Crystals, then you can combine them to make an upgraded Soul Crystal. For combination, you need two Soul Crystals of the same type and the same stage. However, there is a chance of failure. If the combination fails, one of the two Soul Crystals will disappear.<br>
|
||||
In any case, by doing this, you can get your desired Soul Crystal class and then give the ability to a weapon.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-06.html">"Tell me about practice."</button>
|
||||
</body></html>
|
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html
vendored
Normal file
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Well, it's better to just try it for yourself. Here's a <font color="LEVEL">Practice StormBringer</font> and a <font color="LEVEL">Practice Soul Crystal-Stage 1</font>. You'll need to have a Gemstone that is appropriate for the level of the Soul Crystal. Now, I'll give you a <font color="LEVEL"></font>Practice Soul Crystal Gemstone, but next time, you'll have to obtain the Gemstone yourself.<br>
|
||||
You can purchase Gemstones from the <font color="LEVEL">Traders</font> at the <font color="LEVEL">Store</font> in the Village. There are various Stores in the village and each trader sells different items. It'll be good to know about their items.<br>
|
||||
If you want to try a Soul Crystal ability with other weapons, you can always try it out.<br>
|
||||
</body></html>
|
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html
vendored
Normal file
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Oh, you succeeded? Got it now?<br>
|
||||
It's easier than it sounds, right?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-08.html">"Yes, indeed."</button>
|
||||
</body></html>
|
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html
vendored
Normal file
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Good. Remenber what I've taught you next time you need to use Soul Crystals.<br>
|
||||
Oh, right. You can bestow up to 3 special abilities to new Soul Crystals! Don't forget all the effort we've put into this!<br>
|
||||
</body></html>
|
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html
vendored
Normal file
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Now, I'll tell you about <font color="LEVEL">Soul Crystals</font>. Originally, Soul Crystals <font color="LEVEL">give a special ability to weapon by using the spirit of monster</font>. Especially, in the past, you had to have a Soul Crystal when defeating monsters to raise the level of the Soul Crystal. This wasn't an easy task but, those who desired to become stronger spared no effort.<br>
|
||||
But at some point, it became impossible to experience the Soul Crystal that way. Well... there are lots of strange things taking place nowadays, so stuff like this is not unthinkable.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-04.html">"Is there a solution?"</button>
|
||||
</body></html>
|
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html
vendored
Normal file
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Hm? It looks like you didn't succeed yet. Do you need anything?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-11.html">"Tell me about Soul Crystals."</button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-06.html">"Give me the items needed for Soul Crystals."</button>
|
||||
</body></html>
|
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html
vendored
Normal file
5
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Alright. you can <font color="LEVEL">use a Soul Crystal to bestow a special ability onto weapons</font>. There have been some changes to the Soul Crystals, and now you can upgrade them by <font color="LEVEL">combining</font> them. That's why we have new Soul Crystals now.<br>
|
||||
The Soul Crystals from before cannot be used anymore. You can get the new Soul Crystals by defeating boss monsters, so remember that.<br>
|
||||
If you need more information, check the instructions.<br>
|
||||
</body></html>
|
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html
vendored
Normal file
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
I've already given you all the necessary items, I can't give you anymore.<br>
|
||||
</body></html>
|
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html
vendored
Normal file
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Hey, let nature take its course. It's not good for us to go against it.<br>
|
||||
(Only characters who have the quest "Best Choice" in progress, can play this quest.)
|
||||
</body></html>
|
@@ -0,0 +1,183 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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.Q10578_TheSoulOfASword;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.QuestType;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.Containers;
|
||||
import org.l2jmobius.gameserver.model.events.EventType;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd;
|
||||
import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import org.l2jmobius.gameserver.model.quest.State;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
|
||||
|
||||
import quests.Q10566_BestChoice.Q10566_BestChoice;
|
||||
|
||||
/**
|
||||
* The Soul of a Sword (10578)
|
||||
* @URL https://l2wiki.com/The_Soul_of_a_Sword
|
||||
* @author NightBR
|
||||
* @html by Werum
|
||||
*/
|
||||
public final class Q10578_TheSoulOfASword extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int VINCENZ = 31316;
|
||||
// Items
|
||||
private static final int PRACTICE_STORMBRINGER = 46629;
|
||||
private static final int PRACTICE_SOUL_CRYSTAL_STAGE1 = 46526;
|
||||
private static final int SOUL_CRYSTAL_PRACTICE_GEMSTONE = 36722;
|
||||
// Rewards
|
||||
private static final long XP = 597699960;
|
||||
private static final int SP = 597690;
|
||||
private static final int CERTIFICATE_FROM_VINCENZ = 48176;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 95;
|
||||
|
||||
public Q10578_TheSoulOfASword()
|
||||
{
|
||||
super(10578);
|
||||
addStartNpc(VINCENZ);
|
||||
addTalkId(VINCENZ);
|
||||
addCondMinLevel(MIN_LEVEL, "noLevel.html");
|
||||
registerQuestItems(PRACTICE_STORMBRINGER, PRACTICE_SOUL_CRYSTAL_STAGE1, SOUL_CRYSTAL_PRACTICE_GEMSTONE);
|
||||
addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "31316-99.html");
|
||||
Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_ITEM_SOUL_CRYSTAL_ADD, (OnItemSoulCrystalAdd event) -> OnItemSoulCrystalAdd(event), this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "31316-02.htm":
|
||||
case "31316-04.html":
|
||||
case "31316-07.html":
|
||||
case "31316-11.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31316-03.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31316-05.html":
|
||||
{
|
||||
// show Service/Help/Soul Crystal Enhancement page
|
||||
player.sendPacket(new ExTutorialShowId(40));
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31316-06.html":
|
||||
{
|
||||
// show Service/Help/Buy Item page
|
||||
player.sendPacket(new ExTutorialShowId(36));
|
||||
// TODO: check if player already have quest items
|
||||
if (hasQuestItems(player, PRACTICE_STORMBRINGER, PRACTICE_SOUL_CRYSTAL_STAGE1, SOUL_CRYSTAL_PRACTICE_GEMSTONE))
|
||||
{
|
||||
htmltext = "31316-12.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
// To make sure player does not have them already
|
||||
removeRegisteredQuestItems(player);
|
||||
giveItems(player, PRACTICE_STORMBRINGER, 1);
|
||||
giveItems(player, PRACTICE_SOUL_CRYSTAL_STAGE1, 1);
|
||||
giveItems(player, SOUL_CRYSTAL_PRACTICE_GEMSTONE, 10);
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31316-08.html":
|
||||
{
|
||||
addExpAndSp(player, XP, SP);
|
||||
giveItems(player, CERTIFICATE_FROM_VINCENZ, 1);
|
||||
qs.exitQuest(QuestType.ONE_TIME, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "31316-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "31316-09.html";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "31316-10.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31316-07.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public void OnItemSoulCrystalAdd(OnItemSoulCrystalAdd event)
|
||||
{
|
||||
final PlayerInstance player = event.getPlayer();
|
||||
if ((player == null) || (event.getItem().getId() != PRACTICE_STORMBRINGER))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
// Check if weapon has been augmented to complete the quest
|
||||
if ((qs != null) && qs.isCond(2) && (!player.getInventory().getItemByItemId(PRACTICE_STORMBRINGER).getSpecialAbilities().isEmpty()))
|
||||
{
|
||||
qs.setCond(3, true);
|
||||
}
|
||||
}
|
||||
}
|
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html
vendored
Normal file
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/noLevel.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.<br>
|
||||
(Only characters with Lv. 95 or above may undertake this quest.)
|
||||
</body></html>
|
@@ -310,6 +310,8 @@ import quests.Q10561_AcrossTheDeathLine.Q10561_AcrossTheDeathLine;
|
||||
import quests.Q10562_TakeUpArms.Q10562_TakeUpArms;
|
||||
import quests.Q10566_BestChoice.Q10566_BestChoice;
|
||||
import quests.Q10575_LetsGoFishing.Q10575_LetsGoFishing;
|
||||
import quests.Q10577_TemperARustingBlade.Q10577_TemperARustingBlade;
|
||||
import quests.Q10578_TheSoulOfASword.Q10578_TheSoulOfASword;
|
||||
import quests.Q10579_ContainingTheAttributePower.Q10579_ContainingTheAttributePower;
|
||||
import quests.Q10658_MakkumInTheDimension.Q10658_MakkumInTheDimension;
|
||||
import quests.Q10701_TheRoadToDestruction.Q10701_TheRoadToDestruction;
|
||||
@@ -826,8 +828,8 @@ public class QuestMasterHandler
|
||||
Q10574_SpecialMissionFortuna.class, // TODO: Not done.
|
||||
Q10575_LetsGoFishing.class,
|
||||
Q10576_GlitteringWeapons.class, // TODO: Not done.
|
||||
Q10577_TemperARustingBlade.class, // TODO: Not done.
|
||||
Q10578_TheSoulOfASword.class, // TODO: Not done.
|
||||
Q10577_TemperARustingBlade.class,
|
||||
Q10578_TheSoulOfASword.class,
|
||||
Q10579_ContainingTheAttributePower.class,
|
||||
Q10580_SpecialMissionDefeatSpezion.class, // TODO: Not done.
|
||||
Q10594_FergasonsScheme.class, // TODO: Not done.
|
||||
|
@@ -1,36 +0,0 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10577_TemperARustingBlade extends Quest
|
||||
{
|
||||
private static final int START_NPC = 30677;
|
||||
|
||||
public Q10577_TemperARustingBlade()
|
||||
{
|
||||
super(10577);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@@ -1,36 +0,0 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10578_TheSoulOfASword extends Quest
|
||||
{
|
||||
private static final int START_NPC = 31316;
|
||||
|
||||
public Q10578_TheSoulOfASword()
|
||||
{
|
||||
super(10578);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@@ -8073,6 +8073,7 @@
|
||||
</itemGroup>
|
||||
<!--[r] -->
|
||||
<itemGroup id="15">
|
||||
<item id="46629" /> <!-- Practice Stormbringer -->
|
||||
<item id="17290" /> <!-- Requiem Shaper -->
|
||||
<item id="17291" /> <!-- Requiem Cutter -->
|
||||
<item id="17292" /> <!-- Requiem Slasher -->
|
||||
@@ -8660,6 +8661,7 @@
|
||||
</itemGroup>
|
||||
<!--[r95] -->
|
||||
<itemGroup id="16">
|
||||
<item id="46629" /> <!-- Practice Stormbringer -->
|
||||
<item id="17382" /> <!-- Specter Shaper -->
|
||||
<item id="17383" /> <!-- Specter Cutter -->
|
||||
<item id="17384" /> <!-- Specter Slasher -->
|
||||
@@ -8953,6 +8955,7 @@
|
||||
</itemGroup>
|
||||
<!--[r99] -->
|
||||
<itemGroup id="17">
|
||||
<item id="46629" /> <!-- Practice Stormbringer -->
|
||||
<item id="17416" /> <!-- Helios Shaper -->
|
||||
<item id="17417" /> <!-- Helios Cutter -->
|
||||
<item id="17418" /> <!-- Helios Slasher -->
|
||||
@@ -10417,6 +10420,7 @@
|
||||
</itemGroup>
|
||||
<!-- Life Stone Instilled with Giants -->
|
||||
<itemGroup id="36">
|
||||
<item id="46629" /> <!-- Practice Stormbringer -->
|
||||
<item id="17290" /> <!-- Requiem Shaper -->
|
||||
<item id="17291" /> <!-- Requiem Cutter -->
|
||||
<item id="17292" /> <!-- Requiem Slasher -->
|
||||
@@ -14329,6 +14333,7 @@
|
||||
</itemGroup>
|
||||
<!-- [r_new] -->
|
||||
<itemGroup id="52">
|
||||
<item id="46629" /> <!-- Practice Stormbringer -->
|
||||
<item id="17290" /> <!-- Requiem Shaper -->
|
||||
<item id="17291" /> <!-- Requiem Cutter -->
|
||||
<item id="17292" /> <!-- Requiem Slasher -->
|
||||
|
@@ -291,7 +291,7 @@
|
||||
<set name="default_action" val="EQUIP" />
|
||||
<set name="bodypart" val="rhand" />
|
||||
<set name="weapon_type" val="SWORD" />
|
||||
<set name="crystal_type" val="C" />
|
||||
<set name="crystal_type" val="R" />
|
||||
<set name="is_clan_depositable" val="false" />
|
||||
<set name="is_mailable" val="false" />
|
||||
<set name="is_tradable" val="false" />
|
||||
|
@@ -334,18 +334,16 @@
|
||||
<!-- Temporary practice weapon for learning about the Soul Crystal system. Very inefficient as a weapon. -->
|
||||
<set name="icon" val="icon.weapon_stormbringer_i00" />
|
||||
<set name="default_action" val="EQUIP" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="bodypart" val="rhand" />
|
||||
<set name="weapon_type" val="SWORD" />
|
||||
<set name="crystal_type" val="C" />
|
||||
<set name="weight" val="1420" />
|
||||
<set name="soulshots" val="2" />
|
||||
<set name="bodypart" val="rhand" />
|
||||
<set name="spiritshots" val="2" />
|
||||
<set name="is_tradable" val="false" />
|
||||
<set name="is_dropable" val="false" />
|
||||
<set name="is_destroyable" val="false" />
|
||||
<set name="is_private_storeable" val="false" />
|
||||
<set name="is_sellable" val="false" />
|
||||
<set name="crystal_count" val="3274" />
|
||||
<set name="weight" val="1520" />
|
||||
<set name="enchant_enabled" val="1" />
|
||||
<set name="element_enabled" val="true" />
|
||||
<set name="isAppearanceable" val="true" />
|
||||
<set name="immediate_effect" val="true" />
|
||||
<set name="commissionItemType" val="ONE_HAND_SWORD" />
|
||||
<stats>
|
||||
<stat type="pAtk">107.0</stat>
|
||||
<stat type="mAtk">68.0</stat>
|
||||
|
@@ -123,6 +123,7 @@ import org.l2jmobius.gameserver.model.events.impl.instance.OnInstanceStatusChang
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemAttributeAdd;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemBypassEvent;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemCreate;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemTalk;
|
||||
import org.l2jmobius.gameserver.model.events.impl.olympiad.OnOlympiadMatchResult;
|
||||
import org.l2jmobius.gameserver.model.events.impl.server.OnPacketReceived;
|
||||
@@ -183,6 +184,7 @@ public enum EventType
|
||||
ON_ITEM_CREATE(OnItemCreate.class, void.class),
|
||||
ON_ITEM_TALK(OnItemTalk.class, void.class),
|
||||
ON_ITEM_ATTRIBUTE_ADD(OnItemAttributeAdd.class, void.class),
|
||||
ON_ITEM_SOUL_CRYSTAL_ADD(OnItemSoulCrystalAdd.class, void.class),
|
||||
|
||||
// NPC events
|
||||
ON_NPC_CAN_BE_SEEN(OnNpcCanBeSeen.class, void.class, TerminateReturn.class),
|
||||
|
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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 org.l2jmobius.gameserver.model.events.impl.item;
|
||||
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.EventType;
|
||||
import org.l2jmobius.gameserver.model.events.impl.IBaseEvent;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
|
||||
/**
|
||||
* @author NightBR
|
||||
*/
|
||||
public class OnItemSoulCrystalAdd implements IBaseEvent
|
||||
{
|
||||
private final PlayerInstance _player;
|
||||
private final ItemInstance _item;
|
||||
|
||||
public OnItemSoulCrystalAdd(PlayerInstance player, ItemInstance item)
|
||||
{
|
||||
_player = player;
|
||||
_item = item;
|
||||
}
|
||||
|
||||
public PlayerInstance getPlayer()
|
||||
{
|
||||
return _player;
|
||||
}
|
||||
|
||||
public ItemInstance getItem()
|
||||
{
|
||||
return _item;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventType getType()
|
||||
{
|
||||
return EventType.ON_ITEM_SOUL_CRYSTAL_ADD;
|
||||
}
|
||||
}
|
@@ -69,6 +69,7 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemDr
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerItemPickup;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemAttributeAdd;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemBypassEvent;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemSoulCrystalAdd;
|
||||
import org.l2jmobius.gameserver.model.events.impl.item.OnItemTalk;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.model.items.Armor;
|
||||
@@ -2207,6 +2208,9 @@ public final class ItemInstance extends WorldObject
|
||||
{
|
||||
updateSpecialAbilities();
|
||||
}
|
||||
|
||||
// Notify to Scripts
|
||||
EventDispatcher.getInstance().notifyEventAsync(new OnItemSoulCrystalAdd(getActingPlayer(), this));
|
||||
}
|
||||
|
||||
public void removeSpecialAbility(int position, int type)
|
||||
|
@@ -202,8 +202,6 @@
|
||||
10571 Strategic Reconciliation
|
||||
10572 To Expel the Embryo's Forces
|
||||
10576 Glittering Weapons
|
||||
10577 Temper a Rusting Blade
|
||||
10578 The Soul of a Sword
|
||||
10580 Special Mission: Defeat Spezion
|
||||
10588 Special Mission: Defeat Baylor
|
||||
10594 Fergason's Scheme
|
||||
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Do you know what <font color="LEVEL">augmenting</font> is? Your weapon sure doesen't look it.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-02.htm">"What is augmenting?"</button>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
See? I was right! Only when your weapons are reliable, can you be confident about your skills.<br>
|
||||
Now, pay attention. I will teach you to maximize the hidden potential.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-03.htm">"Yes, indeed."</button>
|
||||
</body></html>
|
@@ -0,0 +1,6 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
First, you must understand augmenting. It <font color="LEVEL">provides items with additional options</font>, separately from <font color="LEVEL">enchanting</font>, <font color="LEVEL">soul crystal enhancement</font> or <font color="LEVEL">attributes</font> that you will learn later.<br>
|
||||
For augmenting, you have to get all the required <font color="LEVEL">material</font> and ask <font color="LEVEL">any village's blacksmith</font> to make an item. Keep in mind that you can have accessories and hair accessories augmented but not armor.<br>
|
||||
So far so good, huh?
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-04.html">"Yes, indeed."</button>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
I told you about the items needed, right? Well, of course you need items for augmenting too. First, you need equipment you want to augment. It can be a <font color="LEVEL">weapon, accessory, or a hair accessory</font>. You also need <font color="LEVEL">Spirit Stones</font>. And you need Gemstones to pay the fee for augmenting, and the amount depends on the weapon grade.<br>
|
||||
A good way to get the items I mentioned is by using the <font color="LEVEL">private store</font>. There are many merchants who buy and sell items in the village, and you can get the items you want without having to pay fees and stuff. There's some legwork... but it can be fun too!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-05.html">"Alright."</button>
|
||||
</body></html>
|
@@ -0,0 +1,6 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Now, assuming tha you have all the necessary items, let's talk about augmentation. There are only two things you need to know. First, <font color="LEVEL">augmentation options are just random</font>. Sometimes, you need to release and repeat the augmentation to gain your desired option.<br>
|
||||
Second, <font color="LEVEL">the augmented items cannot be exchanged or traded</font>. In order to exchange the augmented item, you'll have to release the augmentation first.<br>
|
||||
That should be everithig I need to explain. Let's get practicing now!<nr>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-06.html">"Tell me about practice."</button>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Since this is your first time, I'll provide the materials. Here are an <font color="LEVEL">Augmentation Practice Weapon</font>, an <font color="LEVEL">Augmentation Practice Spirit Stone(46)</font>, and an <font color="LEVEL">Augmentation Practice Gemstone(R-grade)</font>. Try augmenting as I taught you. If you succeed, you will get an augmented <font color="LEVEL">Augmentation Practice Weapon</font>.<br>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Congratulations. Feel free to toss this practice weapon, if you don't like the result. That's what practice is for. In the real world, if you don't like the final version, you can <font color="LEVEL">remove augmentation</font> with some Adena. Keep that in mind.<br>
|
||||
Anyway, you did a good job following my instructions.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10577_TemperARustingBlade 30677-08.html">"It wasn't that difficult."</button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Oh yeah? Hahaha. Anyway, I'll give you the certificate as a Reward. If you don't practice what you've learned, you'll forget it. So try augmentin whenever you have time.<br>
|
||||
I hope you will put your new augmenting skills to good use.<br>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Was it hard? Try augmenting with an <font color="LEVEL">Augmentation Practice Weapon</font>, an <font color="LEVEL">Augmentation Practice Spirit Stone(46)</font>, and an <font color="LEVEL">Augmentation Practice Gemstone (R-grade)</font>. Try augmenting as I taught you. If you succeed, you will get an augmented <font color="LEVEL">Augmentation Practice Weapon</font>.<br>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Hey, let nature take its course. It's not good for us to go against it.<br>
|
||||
(Only characters who have the quest "Best Choice" in progress, can play this quest.)
|
||||
</body></html>
|
@@ -0,0 +1,172 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program 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.
|
||||
*
|
||||
* This program 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.Q10577_TemperARustingBlade;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.QuestType;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.Containers;
|
||||
import org.l2jmobius.gameserver.model.events.EventType;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerAugment;
|
||||
import org.l2jmobius.gameserver.model.events.listeners.ConsumerEventListener;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import org.l2jmobius.gameserver.model.quest.State;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
|
||||
|
||||
import quests.Q10566_BestChoice.Q10566_BestChoice;
|
||||
|
||||
/**
|
||||
* Temper a Rusting Blade (10577)
|
||||
* @URL https://l2wiki.com/Temper_a_Rusting_Blade
|
||||
* @author NightBR
|
||||
* @html by Werum
|
||||
*/
|
||||
public final class Q10577_TemperARustingBlade extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int FLUTTER = 30677;
|
||||
// Item
|
||||
private static final int AUGMENTATION_PRACTICE_STORMBRINGER = 36717;
|
||||
private static final int AUGMENTATION_PRACTICE_SPIRIT_STONE = 36718;
|
||||
private static final int AUGMENTATION_PRACTICE_GEMSTONE = 36719;
|
||||
// Rewards
|
||||
private static final long XP = 597699960;
|
||||
private static final int SP = 597690;
|
||||
private static final int CERTIFICATE_FROM_FLUTTER = 48175;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 95;
|
||||
|
||||
public Q10577_TemperARustingBlade()
|
||||
{
|
||||
super(10577);
|
||||
addStartNpc(FLUTTER);
|
||||
addTalkId(FLUTTER);
|
||||
addCondMinLevel(MIN_LEVEL, "noLevel.html");
|
||||
registerQuestItems(AUGMENTATION_PRACTICE_STORMBRINGER, AUGMENTATION_PRACTICE_SPIRIT_STONE, AUGMENTATION_PRACTICE_GEMSTONE);
|
||||
addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "30677-99.html");
|
||||
Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_PLAYER_AUGMENT, (OnPlayerAugment event) -> OnPlayerAugment(event), this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "30677-02.htm":
|
||||
case "30677-05.html":
|
||||
case "30677-07.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30677-03.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30677-04.html":
|
||||
{
|
||||
// show Service/Help/Private Store page
|
||||
player.sendPacket(new ExTutorialShowId(57));
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30677-06.html":
|
||||
{
|
||||
// show Service/Help/Augmentation page
|
||||
player.sendPacket(new ExTutorialShowId(39));
|
||||
giveItems(player, AUGMENTATION_PRACTICE_STORMBRINGER, 1);
|
||||
giveItems(player, AUGMENTATION_PRACTICE_SPIRIT_STONE, 1);
|
||||
giveItems(player, AUGMENTATION_PRACTICE_GEMSTONE, 20);
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30677-08.html":
|
||||
{
|
||||
addExpAndSp(player, XP, SP);
|
||||
giveItems(player, CERTIFICATE_FROM_FLUTTER, 1);
|
||||
qs.exitQuest(QuestType.ONE_TIME, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "30677-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "30677-03.html";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "30677-09.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30677-07.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public void OnPlayerAugment(OnPlayerAugment event)
|
||||
{
|
||||
final PlayerInstance player = event.getPlayer();
|
||||
if ((player == null) || (event.getItem().getId() != AUGMENTATION_PRACTICE_STORMBRINGER))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
// Check if weapon has been augmented to complete the quest
|
||||
if ((qs != null) && qs.isCond(2) && (player.getInventory().getItemByItemId(AUGMENTATION_PRACTICE_STORMBRINGER).isAugmented()))
|
||||
{
|
||||
qs.setCond(3, true);
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Blacksmith Flutter:<br>
|
||||
Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.<br>
|
||||
(Only characters with Lv. 95 or above may undertake this quest.)
|
||||
</body></html>
|
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm
vendored
Normal file
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-01.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Hello. Are you here to learn about <font color="LEVEL">Soul Crystals</font>?<br>
|
||||
Well, you've come to the right place. And you are also ready to learn about them. Should we get started?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-02.htm">"Go on."</button>
|
||||
</body></html>
|
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm
vendored
Normal file
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-02.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Let me offer a proposal. I'm confident that this will be very useful to you. I'll give you the items needed for experiencing Soul Crystals and I'll also teach you how. You just need to do as I tell you and try Soul Crystal. If you succeed in this, I'll give you a little reward.<br>
|
||||
So, what do you think? Isn't it a nice opportunity?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-03.htm">"Yes, indeed."</button>
|
||||
</body></html>
|
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm
vendored
Normal file
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-03.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Good. Now, I'll give you information on <font color="LEVEL">Soul Crystals</font>. Originally, Soul Crystals <font color="LEVEL">give a special ability to weapon by using the spirit of monster</font>. Especially, in the past, you had to have a Soul Crystal when defeating monsters to raise the level of the Soul Crystal. This wasn't an easy task but, those who desired to become stronger spared no effort.<br>
|
||||
But at some point, it became impossible to experience the Soul Crystal that way. Well... there are lots of strange things taking place nowadays, so stuff like this is not unthinkable.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-04.html">"Is there a solution?"</button>
|
||||
</body></html>
|
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html
vendored
Normal file
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-04.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Fortunately, there was a solution. Magisters, Maestros, and even scholars have helped find something that can replace the old Soul Crystals. The new Soul Crystals can be upgraded by combining them.<br>
|
||||
Surprisingly, the Soul Crystals can be just simply upgraded via <font color="LEVEL">combination</font>. And one more thing. The method of granting Soul Crystal effects through Blacksmiths is slightly different now. This is what I want to talk to you about.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-05.html">"Go on."</button>
|
||||
</body></html>
|
6
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html
vendored
Normal file
6
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-05.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
First off, you can't use old Soul Crystals anymore. To bestow the new special abilities, you need the new Soul Crystals. You can get them by defeating bosses or raid monsters.<br>
|
||||
When you get the Soul Crystals, then you can combine them to make an upgraded Soul Crystal. For combination, you need two Soul Crystals of the same type and the same stage. However, there is a chance of failure. If the combination fails, one of the two Soul Crystals will disappear.<br>
|
||||
In any case, by doing this, you can get your desired Soul Crystal class and then give the ability to a weapon.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-06.html">"Tell me about practice."</button>
|
||||
</body></html>
|
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html
vendored
Normal file
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-06.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Well, it's better to just try it for yourself. Here's a <font color="LEVEL">Practice StormBringer</font> and a <font color="LEVEL">Practice Soul Crystal-Stage 1</font>. You'll need to have a Gemstone that is appropriate for the level of the Soul Crystal. Now, I'll give you a <font color="LEVEL"></font>Practice Soul Crystal Gemstone, but next time, you'll have to obtain the Gemstone yourself.<br>
|
||||
You can purchase Gemstones from the <font color="LEVEL">Traders</font> at the <font color="LEVEL">Store</font> in the Village. There are various Stores in the village and each trader sells different items. It'll be good to know about their items.<br>
|
||||
If you want to try a Soul Crystal ability with other weapons, you can always try it out.<br>
|
||||
</body></html>
|
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html
vendored
Normal file
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-07.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Oh, you succeeded? Got it now?<br>
|
||||
It's easier than it sounds, right?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-08.html">"Yes, indeed."</button>
|
||||
</body></html>
|
4
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html
vendored
Normal file
4
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-08.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Good. Remenber what I've taught you next time you need to use Soul Crystals.<br>
|
||||
Oh, right. You can bestow up to 3 special abilities to new Soul Crystals! Don't forget all the effort we've put into this!<br>
|
||||
</body></html>
|
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html
vendored
Normal file
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-09.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Now, I'll tell you about <font color="LEVEL">Soul Crystals</font>. Originally, Soul Crystals <font color="LEVEL">give a special ability to weapon by using the spirit of monster</font>. Especially, in the past, you had to have a Soul Crystal when defeating monsters to raise the level of the Soul Crystal. This wasn't an easy task but, those who desired to become stronger spared no effort.<br>
|
||||
But at some point, it became impossible to experience the Soul Crystal that way. Well... there are lots of strange things taking place nowadays, so stuff like this is not unthinkable.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-04.html">"Is there a solution?"</button>
|
||||
</body></html>
|
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html
vendored
Normal file
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-10.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Hm? It looks like you didn't succeed yet. Do you need anything?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-11.html">"Tell me about Soul Crystals."</button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10578_TheSoulOfASword 31316-06.html">"Give me the items needed for Soul Crystals."</button>
|
||||
</body></html>
|
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html
vendored
Normal file
5
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-11.html
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Alright. you can <font color="LEVEL">use a Soul Crystal to bestow a special ability onto weapons</font>. There have been some changes to the Soul Crystals, and now you can upgrade them by <font color="LEVEL">combining</font> them. That's why we have new Soul Crystals now.<br>
|
||||
The Soul Crystals from before cannot be used anymore. You can get the new Soul Crystals by defeating boss monsters, so remember that.<br>
|
||||
If you need more information, check the instructions.<br>
|
||||
</body></html>
|
3
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html
vendored
Normal file
3
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-12.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
I've already given you all the necessary items, I can't give you anymore.<br>
|
||||
</body></html>
|
4
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html
vendored
Normal file
4
L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10578_TheSoulOfASword/31316-99.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Blacksmith Vincenz:<br>
|
||||
Hey, let nature take its course. It's not good for us to go against it.<br>
|
||||
(Only characters who have the quest "Best Choice" in progress, can play this quest.)
|
||||
</body></html>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user