Addition of quests 10355, 10356, 10373 and 10535.
Contributed by Sero.
This commit is contained in:
parent
dd9611da9c
commit
6a0c709977
@ -49,7 +49,6 @@
|
|||||||
940 Hunter Guild Request - Atelia Fortress
|
940 Hunter Guild Request - Atelia Fortress
|
||||||
10298 Wasteland Queen
|
10298 Wasteland Queen
|
||||||
10357 Altar of Blood that Awakens Destruction
|
10357 Altar of Blood that Awakens Destruction
|
||||||
10373 Exploring the Dimension - Sealing the Dimension
|
|
||||||
10396 Witch of Spores
|
10396 Witch of Spores
|
||||||
10506 Diana's Request
|
10506 Diana's Request
|
||||||
10712 The Minstrel's Song, Part 1
|
10712 The Minstrel's Song, Part 1
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Beola:<br>
|
||||||
|
You have completed the quest.<br>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Beola:<br>
|
||||||
|
It's a fortunate thing that such a skilled adventurer as yourself has committed to making yourself available to the cause. Here is your mission.
|
||||||
|
</body></html>
|
@ -0,0 +1,5 @@
|
|||||||
|
<html><body>Beloa:<br>
|
||||||
|
You need 30 of the Renants of the Rift item in order to seal the Dimensional Rift..<br>
|
||||||
|
Are you strong enough to collect 30 Remnant of the Rift for me?<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10373_ExploringTheDimensionSealingTheDimension 34227-04.htm">"Yes I'm."</Button>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Beola:<br>
|
||||||
|
Not done yet.
|
||||||
|
</body></html>
|
@ -0,0 +1,107 @@
|
|||||||
|
/*
|
||||||
|
* 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.Q10373_ExploringTheDimensionSealingTheDimension;
|
||||||
|
|
||||||
|
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.quest.Quest;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.State;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Sero
|
||||||
|
*/
|
||||||
|
public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest
|
||||||
|
{
|
||||||
|
private static final int BELOA = 34227;
|
||||||
|
private static final int RUNE_STONE = 39738;
|
||||||
|
private static final int COMMANDO_BELT = 47044;
|
||||||
|
private static final int REMNANT_OF_THE_RIFT = 46787;
|
||||||
|
private static final int ZODIAC_AGATHION = 45577;
|
||||||
|
private static final int MIN_LEVEL = 95;
|
||||||
|
|
||||||
|
public Q10373_ExploringTheDimensionSealingTheDimension()
|
||||||
|
{
|
||||||
|
super(10373);
|
||||||
|
addStartNpc(BELOA);
|
||||||
|
addTalkId(BELOA);
|
||||||
|
addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
String htmltext = null;
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if (qs == null)
|
||||||
|
{
|
||||||
|
return getNoQuestMsg(player);
|
||||||
|
}
|
||||||
|
if (event.equals("34227-04.htm"))
|
||||||
|
{
|
||||||
|
qs.startQuest();
|
||||||
|
htmltext = event;
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onTalk(Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, true);
|
||||||
|
String htmltext = getNoQuestMsg(player);
|
||||||
|
if (npc.getId() == BELOA)
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.CREATED:
|
||||||
|
{
|
||||||
|
htmltext = "34227-05.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (getQuestItemsCount(player, REMNANT_OF_THE_RIFT) >= 30)
|
||||||
|
{
|
||||||
|
takeItems(player, REMNANT_OF_THE_RIFT, -1);
|
||||||
|
giveItems(player, COMMANDO_BELT, 1);
|
||||||
|
giveItems(player, ZODIAC_AGATHION, 1);
|
||||||
|
giveItems(player, RUNE_STONE, 1);
|
||||||
|
addExpAndSp(player, 12113489880L, 12113460);
|
||||||
|
qs.exitQuest(QuestType.ONE_TIME);
|
||||||
|
htmltext = "30756-09.html";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "34227-05a.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
}
|
@ -283,6 +283,7 @@ import quests.Q10369_NoblesseSoulTesting.Q10369_NoblesseSoulTesting;
|
|||||||
import quests.Q10370_MenacingTimes.Q10370_MenacingTimes;
|
import quests.Q10370_MenacingTimes.Q10370_MenacingTimes;
|
||||||
import quests.Q10371_GraspThyPower.Q10371_GraspThyPower;
|
import quests.Q10371_GraspThyPower.Q10371_GraspThyPower;
|
||||||
import quests.Q10372_PurgatoryVolvere.Q10372_PurgatoryVolvere;
|
import quests.Q10372_PurgatoryVolvere.Q10372_PurgatoryVolvere;
|
||||||
|
import quests.Q10373_ExploringTheDimensionSealingTheDimension.Q10373_ExploringTheDimensionSealingTheDimension;
|
||||||
import quests.Q10374_ThatPlaceSuccubus.Q10374_ThatPlaceSuccubus;
|
import quests.Q10374_ThatPlaceSuccubus.Q10374_ThatPlaceSuccubus;
|
||||||
import quests.Q10375_SuccubusDisciples.Q10375_SuccubusDisciples;
|
import quests.Q10375_SuccubusDisciples.Q10375_SuccubusDisciples;
|
||||||
import quests.Q10376_BloodyGoodTime.Q10376_BloodyGoodTime;
|
import quests.Q10376_BloodyGoodTime.Q10376_BloodyGoodTime;
|
||||||
@ -518,7 +519,6 @@ import quests.not_done.Q00929_SeekerRescue;
|
|||||||
import quests.not_done.Q00938_TheFishermansOtherHobby;
|
import quests.not_done.Q00938_TheFishermansOtherHobby;
|
||||||
import quests.not_done.Q10298_WastelandQueen;
|
import quests.not_done.Q10298_WastelandQueen;
|
||||||
import quests.not_done.Q10357_AltarOfBloodThatAwakensDestruction;
|
import quests.not_done.Q10357_AltarOfBloodThatAwakensDestruction;
|
||||||
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
|
|
||||||
import quests.not_done.Q10396_WitchOfSpores;
|
import quests.not_done.Q10396_WitchOfSpores;
|
||||||
import quests.not_done.Q10506_DianasRequest;
|
import quests.not_done.Q10506_DianasRequest;
|
||||||
import quests.not_done.Q10748_MysteriousSuggestion1;
|
import quests.not_done.Q10748_MysteriousSuggestion1;
|
||||||
@ -835,7 +835,7 @@ public class QuestMasterHandler
|
|||||||
Q10370_MenacingTimes.class,
|
Q10370_MenacingTimes.class,
|
||||||
Q10371_GraspThyPower.class,
|
Q10371_GraspThyPower.class,
|
||||||
Q10372_PurgatoryVolvere.class,
|
Q10372_PurgatoryVolvere.class,
|
||||||
Q10373_ExploringTheDimensionSealingTheDimension.class, // TODO: Not done.
|
Q10373_ExploringTheDimensionSealingTheDimension.class,
|
||||||
Q10374_ThatPlaceSuccubus.class,
|
Q10374_ThatPlaceSuccubus.class,
|
||||||
Q10375_SuccubusDisciples.class,
|
Q10375_SuccubusDisciples.class,
|
||||||
Q10376_BloodyGoodTime.class,
|
Q10376_BloodyGoodTime.class,
|
||||||
|
@ -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 Q10373_ExploringTheDimensionSealingTheDimension extends Quest
|
|
||||||
{
|
|
||||||
private static final int START_NPC = 34227;
|
|
||||||
|
|
||||||
public Q10373_ExploringTheDimensionSealingTheDimension()
|
|
||||||
{
|
|
||||||
super(10373);
|
|
||||||
addStartNpc(START_NPC);
|
|
||||||
addTalkId(START_NPC);
|
|
||||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,4 +1,3 @@
|
|||||||
504 Competition for the Bandit Stronghold
|
|
||||||
655 A Grand Plan for Taming Wild Beasts
|
655 A Grand Plan for Taming Wild Beasts
|
||||||
667 How to Cover Shilen's Eyes
|
667 How to Cover Shilen's Eyes
|
||||||
690 |Attack| Begin Alliance Base Defense - 1
|
690 |Attack| Begin Alliance Base Defense - 1
|
||||||
@ -104,13 +103,9 @@
|
|||||||
988 Adventure Guild's Special Request - Lv. 4
|
988 Adventure Guild's Special Request - Lv. 4
|
||||||
989 Adventure Guild's Special Request - Lv. 5
|
989 Adventure Guild's Special Request - Lv. 5
|
||||||
10298 Wasteland Queen
|
10298 Wasteland Queen
|
||||||
10355 Blacksmith's Soul-awakening Weapon - 1
|
|
||||||
10356 Blacksmith's Soul-awakening Weapon - 2
|
|
||||||
10373 Exploring the Dimension - Sealing the Dimension
|
|
||||||
10396 Witch of Spores
|
10396 Witch of Spores
|
||||||
10423 Embryo Stronghold Ambush
|
10423 Embryo Stronghold Ambush
|
||||||
10506 Diana's Request
|
10506 Diana's Request
|
||||||
10535 Blacksmith's Soul-awakening Weapon - 3
|
|
||||||
10712 The Minstrel's Song, Part 1
|
10712 The Minstrel's Song, Part 1
|
||||||
10717 The Minstrel's Song, Part 2
|
10717 The Minstrel's Song, Part 2
|
||||||
10720 The Minstrel's Song, Part 3
|
10720 The Minstrel's Song, Part 3
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Taboy:<br>
|
||||||
|
Hello now Go ahead and talk with <font color="LEVEL">Legendary Blacksmith Shadai</font> in <font color="LEVEL">Heine</font>!<br>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You have made a great work now you go to <font color="LEVEL">Nightmare Kamaloka</font> and defeat 5 of <font color="LEVEL">Dark Rider</font> then go to <font color="LEVEL">Command Post</font> and defeat 5 of <font color="LEVEL"> Burnstein (Command Post)</font><br>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You have made a great work now you go to <font color="LEVEL"> Enchanted Valley</font> and defeat 3000 of them.
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You need to defeat 5 of <font color="LEVEL">Dark Rider</font> then go to <font color="LEVEL">Command Post</font> and defeat 5 of <font color="LEVEL"> Burnstein (Command Post)</font> and bring me 5 <font color="LEVEL"> Shadow ingot</font>.
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Congratulations you have complate the challenge now you're able to take the next challenge <font color="LEVEL"> Blacksmiths Soul part 2 </font> and bring me 5 Shadow ingot.<br>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Shadai:<br>
|
||||||
|
Hello now go ahead and talk with <font color="LEVEL">Maestro Ishuma</font> at <font color="LEVEL">Wharf of Gludio Airships</font>!<br>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Shadai:<br>
|
||||||
|
Hello now Go ahead and talk with <font color="LEVEL">Blacksmith of Mammon</font> at <font color="LEVEL">Aden</font> or <font color="LEVEL">Giran</font>!<br>
|
||||||
|
</body></html>
|
@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Neti:<br>
|
||||||
|
This will be long way !<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10355_BlacksmithsSoul1 34095-01.htm">"Okay."</Button>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Neti:<br>
|
||||||
|
Great you choose to take the challenge Go ahead and talk with <font color="LEVEL">Head Blacksmith Tapoy</font> in <font color="LEVEL">Gludin </font>!<br>
|
||||||
|
</body></html>
|
@ -0,0 +1,320 @@
|
|||||||
|
/*
|
||||||
|
* 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.Q10355_BlacksmithsSoul1;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.enums.QuestSound;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||||
|
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.NpcStringId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Sero
|
||||||
|
*/
|
||||||
|
public class Q10355_BlacksmithsSoul1 extends Quest
|
||||||
|
{
|
||||||
|
// NPC
|
||||||
|
private static final int NETI = 34095;
|
||||||
|
private static final int TAPOY = 30499;
|
||||||
|
private static final int SHADAI = 32347;
|
||||||
|
private static final int ISHUMA = 32615;
|
||||||
|
private static final int MERCHANT_OF_MAMMON = 31126;
|
||||||
|
// Items
|
||||||
|
private static final int SHADOW_INGOT = 46395;
|
||||||
|
|
||||||
|
// Monsters
|
||||||
|
private static final int BURNSTEIN = 23587;
|
||||||
|
private static final int DARK_RIDER = 26102;
|
||||||
|
private static final int[] NYMPH_MONSTERS =
|
||||||
|
{
|
||||||
|
23569, // Nymph Lily
|
||||||
|
23583, // Nymph Lily big
|
||||||
|
23573, // Nymph Cosmos
|
||||||
|
23567, // Nymph Rose
|
||||||
|
23578, // Nymph Guardian
|
||||||
|
23570, // Nymph Tulip
|
||||||
|
19600, // Flower Bud
|
||||||
|
23581, // Apherus
|
||||||
|
};
|
||||||
|
// Misc
|
||||||
|
private static final int MIN_LEVEL = 99;
|
||||||
|
private static final String KILL_COUNT_VAR = "KillCount";
|
||||||
|
|
||||||
|
public Q10355_BlacksmithsSoul1()
|
||||||
|
{
|
||||||
|
super(10355);
|
||||||
|
addStartNpc(NETI);
|
||||||
|
addTalkId(NETI, TAPOY, SHADAI, ISHUMA, MERCHANT_OF_MAMMON);
|
||||||
|
registerQuestItems(SHADOW_INGOT);
|
||||||
|
addKillId(DARK_RIDER);
|
||||||
|
addKillId(BURNSTEIN);
|
||||||
|
addKillId(NYMPH_MONSTERS);
|
||||||
|
addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
String htmltext = null;
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if (qs == null)
|
||||||
|
{
|
||||||
|
return getNoQuestMsg(player);
|
||||||
|
}
|
||||||
|
if (event.equals("34095-01.htm"))
|
||||||
|
{
|
||||||
|
qs.startQuest();
|
||||||
|
htmltext = event;
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onTalk(Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, true);
|
||||||
|
String htmltext = getNoQuestMsg(player);
|
||||||
|
switch (npc.getId())
|
||||||
|
{
|
||||||
|
case NETI:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.CREATED:
|
||||||
|
{
|
||||||
|
htmltext = "34095-00.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
htmltext = "30756-09.html";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TAPOY:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(1))
|
||||||
|
{
|
||||||
|
htmltext = "30499-00.htm";
|
||||||
|
qs.setCond(2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "30499-00.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SHADAI:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(2))
|
||||||
|
{
|
||||||
|
htmltext = "32347-00.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "32347-00.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ISHUMA:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(3))
|
||||||
|
{
|
||||||
|
htmltext = "32615-00.htm";
|
||||||
|
qs.setCond(4);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "32615-00.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case MERCHANT_OF_MAMMON:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(4))
|
||||||
|
{
|
||||||
|
htmltext = "31126-00.htm";
|
||||||
|
qs.setCond(5);
|
||||||
|
}
|
||||||
|
else if (qs.isCond(5))
|
||||||
|
{
|
||||||
|
htmltext = "31126-00.htm";
|
||||||
|
}
|
||||||
|
else if (qs.isCond(6) && (getQuestItemsCount(player, SHADOW_INGOT) >= 5))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_INGOT, 5);
|
||||||
|
htmltext = "31126-01.htm";
|
||||||
|
qs.setCond(7);
|
||||||
|
}
|
||||||
|
else if (qs.isCond(8))
|
||||||
|
{
|
||||||
|
htmltext = "31126-03.htm";
|
||||||
|
addExpAndSp(player, 26918866543L, 24226979);
|
||||||
|
qs.exitQuest(false, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "31126-02.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if ((qs != null) && qs.isCond(5))
|
||||||
|
{
|
||||||
|
final int killedCount = qs.getInt(Integer.toString(npc.getId()));
|
||||||
|
if (killedCount < 5)
|
||||||
|
{
|
||||||
|
qs.set(Integer.toString(npc.getId()), killedCount + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
final int killedRessurected = qs.getInt(Integer.toString(DARK_RIDER));
|
||||||
|
final int killedLunatic = qs.getInt(Integer.toString(BURNSTEIN));
|
||||||
|
if ((killedLunatic == 5) && (killedRessurected == 5))
|
||||||
|
{
|
||||||
|
qs.setCond(6, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ((qs != null) && qs.isCond(7))
|
||||||
|
{
|
||||||
|
int count = qs.getInt(KILL_COUNT_VAR);
|
||||||
|
qs.set(KILL_COUNT_VAR, ++count);
|
||||||
|
if (count >= 3000)
|
||||||
|
{
|
||||||
|
qs.setCond(8, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
|
||||||
|
{
|
||||||
|
executeForEachPlayer(player, npc, isSummon, true, false);
|
||||||
|
return super.onKill(npc, player, isSummon);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if ((qs != null) && qs.isCond(5))
|
||||||
|
{
|
||||||
|
final Set<NpcLogListHolder> npcLogList = new HashSet<>(2);
|
||||||
|
npcLogList.add(new NpcLogListHolder(DARK_RIDER, false, qs.getInt(Integer.toString(DARK_RIDER))));
|
||||||
|
npcLogList.add(new NpcLogListHolder(NpcStringId.DEFEAT_COMMANDER_BURNSTEIN_2, qs.getInt(Integer.toString(BURNSTEIN))));
|
||||||
|
return npcLogList;
|
||||||
|
}
|
||||||
|
else if ((qs != null) && qs.isCond(7))
|
||||||
|
{
|
||||||
|
final int killCount = qs.getInt(KILL_COUNT_VAR);
|
||||||
|
if (killCount > 0)
|
||||||
|
{
|
||||||
|
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||||
|
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_ENCHANTED_VALLEY_2, killCount));
|
||||||
|
return holder;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.getNpcLogList(player);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Now the next part of your challenge is to bring me <font color="LEVEL">Improved Shadow Ingot</font>.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 31126-01.htm">"Okay Let's go."</Button>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
When you have <font color="LEVEL">Improved Shadow Ingot</font> come back to me.
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You need to complete Blacksmiths Soul - Part 1 first.
|
||||||
|
</body></html>
|
@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Do you have the <font color="LEVEL">Improved Shadow Ingot</font>?<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 31126-04.htm">"Yes take it."</Button>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Do you have the <font color="LEVEL">Improved Shadow Ingot</font>?
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Good job now bring me a Shadow weapon that you don't want so I can make my research.
|
||||||
|
</body></html>
|
13
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm
vendored
Normal file
13
L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Choose the weapon that you don't need to I can make my research on it "Warning! The weapon will not be returned to you" <br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_1">"Shadow Shaper."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_2">"Shadow Cutter."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_3">"Shadow Slasher."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_4">"Shadow Fighter."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_5">"Shadow Stormer."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_6">"Shadow Thrower."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_7">"Shadow Shooter."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_8">"Shadow Buster."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_9">"Shadow Retributer."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_10">"Shadow Dual Sword."</Button>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Great work! Now take this weapon, upgrade it to +7 and bring it back to me.
|
||||||
|
</body></html>
|
@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Nice now hand me the weapon let me do my research.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 RESEARCH_Shadow_WEAPON7">"Take it."</Button>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
It's hard work but please enchant my the weapon to +7.
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You have done good so far now you can take your reward and be ready for the next challenge. Have a great day.
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Shadai:<br>
|
||||||
|
I agreed to take a part in the research.
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Ishuma:<br>
|
||||||
|
I agreed to take a part in the research.
|
||||||
|
</body></html>
|
@ -0,0 +1,371 @@
|
|||||||
|
/*
|
||||||
|
* 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.Q10356_BlacksmithsSoul2;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||||
|
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.NpcStringId;
|
||||||
|
|
||||||
|
import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Sero
|
||||||
|
*/
|
||||||
|
public class Q10356_BlacksmithsSoul2 extends Quest
|
||||||
|
{
|
||||||
|
// NPCs
|
||||||
|
private static final int BLACKSMITH_MAMMON = 31126;
|
||||||
|
private static final int SHADAI = 32347;
|
||||||
|
private static final int ISHUMA = 32615;
|
||||||
|
// Items
|
||||||
|
private static final int Improved_SHADOW_Ingot = 47896;
|
||||||
|
private static final int RESEARCH_SHADOW_WEAPON = 47890;
|
||||||
|
private static final int SHADOW_WEAPON_1 = 46317;
|
||||||
|
private static final int SHADOW_WEAPON_2 = 46318;
|
||||||
|
private static final int SHADOW_WEAPON_3 = 46319;
|
||||||
|
private static final int SHADOW_WEAPON_4 = 46320;
|
||||||
|
private static final int SHADOW_WEAPON_5 = 46321;
|
||||||
|
private static final int SHADOW_WEAPON_6 = 46322;
|
||||||
|
private static final int SHADOW_WEAPON_7 = 46323;
|
||||||
|
private static final int SHADOW_WEAPON_8 = 46324;
|
||||||
|
private static final int SHADOW_WEAPON_9 = 46325;
|
||||||
|
private static final int SHADOW_WEAPON_10 = 46326;
|
||||||
|
private static final int SHADOW_CRYSTAL = 47899;
|
||||||
|
private static final int MAIN_LEVEL = 99;
|
||||||
|
|
||||||
|
public Q10356_BlacksmithsSoul2()
|
||||||
|
{
|
||||||
|
super(10356);
|
||||||
|
addStartNpc(BLACKSMITH_MAMMON);
|
||||||
|
addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA);
|
||||||
|
addCondCompletedQuest(Q10355_BlacksmithsSoul1.class.getSimpleName(), "31126-02.htm");
|
||||||
|
addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null));
|
||||||
|
registerQuestItems(Improved_SHADOW_Ingot, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10, RESEARCH_SHADOW_WEAPON);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
String htmltext = null;
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if (qs == null)
|
||||||
|
{
|
||||||
|
return getNoQuestMsg(player);
|
||||||
|
}
|
||||||
|
switch (event)
|
||||||
|
{
|
||||||
|
case "31126-01.htm":
|
||||||
|
{
|
||||||
|
qs.startQuest();
|
||||||
|
htmltext = event;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "31126-04.htm":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, Improved_SHADOW_Ingot))
|
||||||
|
{
|
||||||
|
takeItems(player, Improved_SHADOW_Ingot, 1);
|
||||||
|
qs.setCond(2);
|
||||||
|
htmltext = event;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "31126-03r.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_1":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_1))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_1, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_2":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_2))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_2, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_3":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_3))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_3, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_4":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_4))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_4, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_5":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_5))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_5, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_6":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_6))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_6, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
htmltext = event;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_7":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_7))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_7, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_8":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_8))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_8, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_9":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_9))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_9, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_10":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_10))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_10, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "RESEARCH_SHADOW_WEAPON7":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON) && (getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7))
|
||||||
|
{
|
||||||
|
takeItems(player, RESEARCH_SHADOW_WEAPON, -1);
|
||||||
|
giveItems(player, SHADOW_CRYSTAL, 2);
|
||||||
|
qs.setCond(5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onTalk(Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, true);
|
||||||
|
String htmltext = getNoQuestMsg(player);
|
||||||
|
switch (npc.getId())
|
||||||
|
{
|
||||||
|
case BLACKSMITH_MAMMON:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.CREATED:
|
||||||
|
{
|
||||||
|
htmltext = "31126-00.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(1))
|
||||||
|
{
|
||||||
|
htmltext = "31126-03.htm";
|
||||||
|
}
|
||||||
|
else if (qs.isCond(2))
|
||||||
|
{
|
||||||
|
htmltext = "31126-05.htm";
|
||||||
|
}
|
||||||
|
else if (qs.isCond(3))
|
||||||
|
{
|
||||||
|
htmltext = "31126-08.htm";
|
||||||
|
qs.setCond(4);
|
||||||
|
}
|
||||||
|
else if (qs.isCond(4))
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON))
|
||||||
|
{
|
||||||
|
htmltext = "31126-07.htm";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (qs.isCond(6))
|
||||||
|
{
|
||||||
|
htmltext = "31126-09.htm";
|
||||||
|
addExpAndSp(player, 32958000000L, 29662200);
|
||||||
|
qs.exitQuest(false, true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "31126-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SHADAI:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL))
|
||||||
|
{
|
||||||
|
htmltext = "32347-00.htm";
|
||||||
|
takeItems(player, SHADOW_CRYSTAL, -1);
|
||||||
|
qs.setCond(6);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "31126-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ISHUMA:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL))
|
||||||
|
{
|
||||||
|
htmltext = "32615-00.htm";
|
||||||
|
takeItems(player, SHADOW_CRYSTAL, -1);
|
||||||
|
qs.setCond(6);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "31126-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
|
||||||
|
{
|
||||||
|
executeForEachPlayer(player, npc, isSummon, true, false);
|
||||||
|
return super.onKill(npc, player, isSummon);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if ((qs != null) && qs.isCond(2))
|
||||||
|
{
|
||||||
|
if (hasAtLeastOneQuestItem(player, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10))
|
||||||
|
{
|
||||||
|
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||||
|
holder.add(new NpcLogListHolder(NpcStringId.BRING_SHADOW_WEAPON, 1));
|
||||||
|
return holder;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if ((qs != null) && qs.isCond(4))
|
||||||
|
{
|
||||||
|
if ((getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7))
|
||||||
|
{
|
||||||
|
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||||
|
holder.add(new NpcLogListHolder(NpcStringId.ENCHANT_THE_RESEARCH_WEAPON, 1));
|
||||||
|
return holder;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return super.getNpcLogList(player);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Beola:<br>
|
||||||
|
You have completed the quest.<br>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Beola:<br>
|
||||||
|
It's a fortunate thing that such a skilled adventurer as yourself has committed to making yourself available to the cause. Here is your mission.
|
||||||
|
</body></html>
|
@ -0,0 +1,5 @@
|
|||||||
|
<html><body>Beloa:<br>
|
||||||
|
You need 30 of the Renants of the Rift item in order to seal the Dimensional Rift..<br>
|
||||||
|
Are you strong enough to collect 30 Remnant of the Rift for me?<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10373_ExploringTheDimensionSealingTheDimension 34227-04.htm">"Yes I'm."</Button>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Beola:<br>
|
||||||
|
Not done yet.
|
||||||
|
</body></html>
|
@ -0,0 +1,107 @@
|
|||||||
|
/*
|
||||||
|
* 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.Q10373_ExploringTheDimensionSealingTheDimension;
|
||||||
|
|
||||||
|
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.quest.Quest;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.State;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Sero
|
||||||
|
*/
|
||||||
|
public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest
|
||||||
|
{
|
||||||
|
private static final int BELOA = 34227;
|
||||||
|
private static final int RUNE_STONE = 39738;
|
||||||
|
private static final int COMMANDO_BELT = 47044;
|
||||||
|
private static final int REMNANT_OF_THE_RIFT = 46787;
|
||||||
|
private static final int ZODIAC_AGATHION = 45577;
|
||||||
|
private static final int MIN_LEVEL = 95;
|
||||||
|
|
||||||
|
public Q10373_ExploringTheDimensionSealingTheDimension()
|
||||||
|
{
|
||||||
|
super(10373);
|
||||||
|
addStartNpc(BELOA);
|
||||||
|
addTalkId(BELOA);
|
||||||
|
addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
String htmltext = null;
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if (qs == null)
|
||||||
|
{
|
||||||
|
return getNoQuestMsg(player);
|
||||||
|
}
|
||||||
|
if (event.equals("34227-04.htm"))
|
||||||
|
{
|
||||||
|
qs.startQuest();
|
||||||
|
htmltext = event;
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onTalk(Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, true);
|
||||||
|
String htmltext = getNoQuestMsg(player);
|
||||||
|
if (npc.getId() == BELOA)
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.CREATED:
|
||||||
|
{
|
||||||
|
htmltext = "34227-05.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (getQuestItemsCount(player, REMNANT_OF_THE_RIFT) >= 30)
|
||||||
|
{
|
||||||
|
takeItems(player, REMNANT_OF_THE_RIFT, -1);
|
||||||
|
giveItems(player, COMMANDO_BELT, 1);
|
||||||
|
giveItems(player, ZODIAC_AGATHION, 1);
|
||||||
|
giveItems(player, RUNE_STONE, 1);
|
||||||
|
addExpAndSp(player, 12113489880L, 12113460);
|
||||||
|
qs.exitQuest(QuestType.ONE_TIME);
|
||||||
|
htmltext = "30756-09.html";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "34227-05a.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
This the <font color="LEVEL">Last challenge</font> Defeat monster in Giant's Cave and Hellbound collect Ore with Giant's Energy and Crystal with Magical Power Crystal with Magical Power then take them to Shadai and Ishuma.
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Congratulations you have completed the challenge you deserve your reward warrior!
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Shadai:<br>
|
||||||
|
Thank you for your hard work.
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Ishuma:<br>
|
||||||
|
Thank you for your hard work.
|
||||||
|
</body></html>
|
@ -0,0 +1,238 @@
|
|||||||
|
/*
|
||||||
|
* 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.Q10535_BlacksmithsSoul3;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.l2jmobius.commons.util.CommonUtil;
|
||||||
|
import org.l2jmobius.gameserver.enums.QuestSound;
|
||||||
|
import org.l2jmobius.gameserver.model.Party;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.State;
|
||||||
|
|
||||||
|
import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Sero
|
||||||
|
*/
|
||||||
|
public class Q10535_BlacksmithsSoul3 extends Quest
|
||||||
|
{
|
||||||
|
// NPCs
|
||||||
|
private static final int BLACKSMITH_MAMMON = 31126;
|
||||||
|
private static final int SHADAI = 32347;
|
||||||
|
private static final int ISHUMA = 32615;
|
||||||
|
// Monsters
|
||||||
|
private static final int[] HELL_MONSTERS =
|
||||||
|
{
|
||||||
|
23386, // Jabberwok
|
||||||
|
23387, // Kanzaroth
|
||||||
|
23388, // Kandiloth
|
||||||
|
23384, // Smaug
|
||||||
|
23385, // Lunatikan
|
||||||
|
23399, // Bend Beetle
|
||||||
|
23398, // Koraza
|
||||||
|
23397, // Desert Wendigo
|
||||||
|
23395, // Garion
|
||||||
|
23396, // Garion neti
|
||||||
|
};
|
||||||
|
private static final int[] CAVE_MONSTERS =
|
||||||
|
{
|
||||||
|
23727, // Shaqrima Bathus
|
||||||
|
23728, // Shaqrima Carcass
|
||||||
|
23729, // Kshana
|
||||||
|
};
|
||||||
|
// Items
|
||||||
|
private static final int OREWITH_GIANTS_ENERGY = 47892;
|
||||||
|
private static final int CRYSTAL_WITH_MAGOCAL_POWER = 47891;
|
||||||
|
private static final int ENCHANTED_SHADOW_INGOT = 47886;
|
||||||
|
// Misc
|
||||||
|
private static final int MAIN_LEVEL = 99;
|
||||||
|
|
||||||
|
public Q10535_BlacksmithsSoul3()
|
||||||
|
{
|
||||||
|
super(10535);
|
||||||
|
addStartNpc(BLACKSMITH_MAMMON);
|
||||||
|
addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA);
|
||||||
|
addKillId(HELL_MONSTERS);
|
||||||
|
addKillId(CAVE_MONSTERS);
|
||||||
|
addCondCompletedQuest(Q10356_BlacksmithsSoul2.class.getSimpleName(), "31126-02.htm");
|
||||||
|
addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onTalk(Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, true);
|
||||||
|
String htmltext = getNoQuestMsg(player);
|
||||||
|
switch (npc.getId())
|
||||||
|
{
|
||||||
|
case BLACKSMITH_MAMMON:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.CREATED:
|
||||||
|
{
|
||||||
|
htmltext = "31126-00.htm";
|
||||||
|
qs.startQuest();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(9))
|
||||||
|
{
|
||||||
|
htmltext = "31126-01.htm";
|
||||||
|
addExpAndSp(player, 40346120829L, 36311508);
|
||||||
|
giveItems(player, ENCHANTED_SHADOW_INGOT, 1);
|
||||||
|
qs.exitQuest(false, true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "31126-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SHADAI:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(7) && (getQuestItemsCount(player, CRYSTAL_WITH_MAGOCAL_POWER) >= 500) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500))
|
||||||
|
{
|
||||||
|
htmltext = "32347-00.htm";
|
||||||
|
takeItems(player, CRYSTAL_WITH_MAGOCAL_POWER, -1);
|
||||||
|
qs.setCond(8);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "31126-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ISHUMA:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(8) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500))
|
||||||
|
{
|
||||||
|
htmltext = "32615-00.htm";
|
||||||
|
takeItems(player, OREWITH_GIANTS_ENERGY, -1);
|
||||||
|
qs.setCond(9);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "31126-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||||
|
{
|
||||||
|
if (killer.isInParty())
|
||||||
|
{
|
||||||
|
final Party party = killer.getParty();
|
||||||
|
final List<PlayerInstance> partyMember = party.getMembers();
|
||||||
|
for (PlayerInstance singleMember : partyMember)
|
||||||
|
{
|
||||||
|
final QuestState qsPartyMember = getQuestState(singleMember, false);
|
||||||
|
final double distance = npc.calculateDistance3D(singleMember);
|
||||||
|
if ((qsPartyMember != null) && (distance <= 1000))
|
||||||
|
{
|
||||||
|
if (qsPartyMember.isCond(1))
|
||||||
|
{
|
||||||
|
if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) < 500))
|
||||||
|
{
|
||||||
|
giveItems(singleMember, CRYSTAL_WITH_MAGOCAL_POWER, 1);
|
||||||
|
playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (qsPartyMember.isCond(1))
|
||||||
|
{
|
||||||
|
if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) < 500))
|
||||||
|
{
|
||||||
|
giveItems(singleMember, OREWITH_GIANTS_ENERGY, 1);
|
||||||
|
playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (qsPartyMember.isCond(1) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) >= 500))
|
||||||
|
{
|
||||||
|
qsPartyMember.setCond(7);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
|
||||||
|
if (qs != null)
|
||||||
|
{
|
||||||
|
if (qs.isCond(1))
|
||||||
|
{
|
||||||
|
if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) < 500))
|
||||||
|
{
|
||||||
|
giveItems(killer, CRYSTAL_WITH_MAGOCAL_POWER, 1);
|
||||||
|
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (qs.isCond(1))
|
||||||
|
{
|
||||||
|
if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) < 500))
|
||||||
|
{
|
||||||
|
giveItems(killer, OREWITH_GIANTS_ENERGY, 1);
|
||||||
|
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (qs.isCond(1) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) >= 500))
|
||||||
|
{
|
||||||
|
qs.setCond(7);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.onKill(npc, killer, isSummon);
|
||||||
|
}
|
||||||
|
}
|
@ -277,6 +277,8 @@ import quests.Q10346_DayOfDestinyKamaelsFate.Q10346_DayOfDestinyKamaelsFate;
|
|||||||
import quests.Q10351_OwnerOfHall.Q10351_OwnerOfHall;
|
import quests.Q10351_OwnerOfHall.Q10351_OwnerOfHall;
|
||||||
import quests.Q10353_CertificationOfValue.Q10353_CertificationOfValue;
|
import quests.Q10353_CertificationOfValue.Q10353_CertificationOfValue;
|
||||||
import quests.Q10354_ResurrectedOwnerOfHall.Q10354_ResurrectedOwnerOfHall;
|
import quests.Q10354_ResurrectedOwnerOfHall.Q10354_ResurrectedOwnerOfHall;
|
||||||
|
import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1;
|
||||||
|
import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2;
|
||||||
import quests.Q10358_DividedSakumPoslof.Q10358_DividedSakumPoslof;
|
import quests.Q10358_DividedSakumPoslof.Q10358_DividedSakumPoslof;
|
||||||
import quests.Q10359_TracesOfEvil.Q10359_TracesOfEvil;
|
import quests.Q10359_TracesOfEvil.Q10359_TracesOfEvil;
|
||||||
import quests.Q10360_CertificationOfFate.Q10360_CertificationOfFate;
|
import quests.Q10360_CertificationOfFate.Q10360_CertificationOfFate;
|
||||||
@ -375,6 +377,7 @@ import quests.Q10530_KekropusLetterTheDragonsTransition.Q10530_KekropusLetterThe
|
|||||||
import quests.Q10531_OddHappeningsAtDragonValley.Q10531_OddHappeningsAtDragonValley;
|
import quests.Q10531_OddHappeningsAtDragonValley.Q10531_OddHappeningsAtDragonValley;
|
||||||
import quests.Q10532_UncoveringTheConspiracy.Q10532_UncoveringTheConspiracy;
|
import quests.Q10532_UncoveringTheConspiracy.Q10532_UncoveringTheConspiracy;
|
||||||
import quests.Q10534_HatchlingResearch.Q10534_HatchlingResearch;
|
import quests.Q10534_HatchlingResearch.Q10534_HatchlingResearch;
|
||||||
|
import quests.Q10535_BlacksmithsSoul3.Q10535_BlacksmithsSoul3;
|
||||||
import quests.Q10537_KamaelDisarray.Q10537_KamaelDisarray;
|
import quests.Q10537_KamaelDisarray.Q10537_KamaelDisarray;
|
||||||
import quests.Q10538_GiantsEvolution.Q10538_GiantsEvolution;
|
import quests.Q10538_GiantsEvolution.Q10538_GiantsEvolution;
|
||||||
import quests.Q10539_EnergySupplyCutoffPlan.Q10539_EnergySupplyCutoffPlan;
|
import quests.Q10539_EnergySupplyCutoffPlan.Q10539_EnergySupplyCutoffPlan;
|
||||||
@ -527,13 +530,9 @@ import quests.not_done.Q00987_AdventureGuildsSpecialRequestLv3;
|
|||||||
import quests.not_done.Q00988_AdventureGuildsSpecialRequestLv4;
|
import quests.not_done.Q00988_AdventureGuildsSpecialRequestLv4;
|
||||||
import quests.not_done.Q00989_AdventureGuildsSpecialRequestLv5;
|
import quests.not_done.Q00989_AdventureGuildsSpecialRequestLv5;
|
||||||
import quests.not_done.Q10298_WastelandQueen;
|
import quests.not_done.Q10298_WastelandQueen;
|
||||||
import quests.not_done.Q10355_BlacksmithsSoulAwakeningWeapon1;
|
|
||||||
import quests.not_done.Q10356_BlacksmithsSoulAwakeningWeapon2;
|
|
||||||
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
|
|
||||||
import quests.not_done.Q10396_WitchOfSpores;
|
import quests.not_done.Q10396_WitchOfSpores;
|
||||||
import quests.not_done.Q10423_EmbryoStrongholdAmbush;
|
import quests.not_done.Q10423_EmbryoStrongholdAmbush;
|
||||||
import quests.not_done.Q10506_DianasRequest;
|
import quests.not_done.Q10506_DianasRequest;
|
||||||
import quests.not_done.Q10535_BlacksmithsSoulAwakeningWeapon3;
|
|
||||||
import quests.not_done.Q10748_MysteriousSuggestion1;
|
import quests.not_done.Q10748_MysteriousSuggestion1;
|
||||||
import quests.not_done.Q10749_MysteriousSuggestion2;
|
import quests.not_done.Q10749_MysteriousSuggestion2;
|
||||||
import quests.not_done.Q10845_BloodyBattleRescueTheSmiths;
|
import quests.not_done.Q10845_BloodyBattleRescueTheSmiths;
|
||||||
@ -847,8 +846,8 @@ public class QuestMasterHandler
|
|||||||
Q10351_OwnerOfHall.class,
|
Q10351_OwnerOfHall.class,
|
||||||
Q10353_CertificationOfValue.class,
|
Q10353_CertificationOfValue.class,
|
||||||
Q10354_ResurrectedOwnerOfHall.class,
|
Q10354_ResurrectedOwnerOfHall.class,
|
||||||
Q10355_BlacksmithsSoulAwakeningWeapon1.class, // TODO: Not done.
|
Q10355_BlacksmithsSoul1.class,
|
||||||
Q10356_BlacksmithsSoulAwakeningWeapon2.class, // TODO: Not done.
|
Q10356_BlacksmithsSoul2.class,
|
||||||
Q10358_DividedSakumPoslof.class,
|
Q10358_DividedSakumPoslof.class,
|
||||||
Q10359_TracesOfEvil.class,
|
Q10359_TracesOfEvil.class,
|
||||||
Q10360_CertificationOfFate.class,
|
Q10360_CertificationOfFate.class,
|
||||||
@ -861,7 +860,6 @@ public class QuestMasterHandler
|
|||||||
Q10370_MenacingTimes.class,
|
Q10370_MenacingTimes.class,
|
||||||
Q10371_GraspThyPower.class,
|
Q10371_GraspThyPower.class,
|
||||||
Q10372_PurgatoryVolvere.class,
|
Q10372_PurgatoryVolvere.class,
|
||||||
Q10373_ExploringTheDimensionSealingTheDimension.class, // TODO: Not done.
|
|
||||||
Q10374_ThatPlaceSuccubus.class,
|
Q10374_ThatPlaceSuccubus.class,
|
||||||
Q10375_SuccubusDisciples.class,
|
Q10375_SuccubusDisciples.class,
|
||||||
Q10376_BloodyGoodTime.class,
|
Q10376_BloodyGoodTime.class,
|
||||||
@ -951,7 +949,7 @@ public class QuestMasterHandler
|
|||||||
Q10531_OddHappeningsAtDragonValley.class,
|
Q10531_OddHappeningsAtDragonValley.class,
|
||||||
Q10532_UncoveringTheConspiracy.class,
|
Q10532_UncoveringTheConspiracy.class,
|
||||||
Q10534_HatchlingResearch.class,
|
Q10534_HatchlingResearch.class,
|
||||||
Q10535_BlacksmithsSoulAwakeningWeapon3.class, // TODO: Not done.
|
Q10535_BlacksmithsSoul3.class,
|
||||||
Q10537_KamaelDisarray.class,
|
Q10537_KamaelDisarray.class,
|
||||||
Q10538_GiantsEvolution.class,
|
Q10538_GiantsEvolution.class,
|
||||||
Q10539_EnergySupplyCutoffPlan.class,
|
Q10539_EnergySupplyCutoffPlan.class,
|
||||||
|
@ -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 Q10355_BlacksmithsSoulAwakeningWeapon1 extends Quest
|
|
||||||
{
|
|
||||||
private static final int START_NPC = 34095;
|
|
||||||
|
|
||||||
public Q10355_BlacksmithsSoulAwakeningWeapon1()
|
|
||||||
{
|
|
||||||
super(10355);
|
|
||||||
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 Q10356_BlacksmithsSoulAwakeningWeapon2 extends Quest
|
|
||||||
{
|
|
||||||
private static final int START_NPC = 31126;
|
|
||||||
|
|
||||||
public Q10356_BlacksmithsSoulAwakeningWeapon2()
|
|
||||||
{
|
|
||||||
super(10356);
|
|
||||||
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 Q10373_ExploringTheDimensionSealingTheDimension extends Quest
|
|
||||||
{
|
|
||||||
private static final int START_NPC = 34227;
|
|
||||||
|
|
||||||
public Q10373_ExploringTheDimensionSealingTheDimension()
|
|
||||||
{
|
|
||||||
super(10373);
|
|
||||||
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 Q10535_BlacksmithsSoulAwakeningWeapon3 extends Quest
|
|
||||||
{
|
|
||||||
private static final int START_NPC = 31126;
|
|
||||||
|
|
||||||
public Q10535_BlacksmithsSoulAwakeningWeapon3()
|
|
||||||
{
|
|
||||||
super(10535);
|
|
||||||
addStartNpc(START_NPC);
|
|
||||||
addTalkId(START_NPC);
|
|
||||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
|
||||||
}
|
|
||||||
}
|
|
@ -109,13 +109,9 @@
|
|||||||
988 Adventure Guild's Special Request - Lv. 4
|
988 Adventure Guild's Special Request - Lv. 4
|
||||||
989 Adventure Guild's Special Request - Lv. 5
|
989 Adventure Guild's Special Request - Lv. 5
|
||||||
10298 Wasteland Queen
|
10298 Wasteland Queen
|
||||||
10355 Blacksmith's Soul-awakening Weapon - 1
|
|
||||||
10356 Blacksmith's Soul-awakening Weapon - 2
|
|
||||||
10373 Exploring the Dimension - Sealing the Dimension
|
|
||||||
10396 Witch of Spores
|
10396 Witch of Spores
|
||||||
10423 Embryo Stronghold Ambush
|
10423 Embryo Stronghold Ambush
|
||||||
10506 Diana's Request
|
10506 Diana's Request
|
||||||
10535 Blacksmith's Soul-awakening Weapon - 3
|
|
||||||
10552 Challenge! Balthus Knight!
|
10552 Challenge! Balthus Knight!
|
||||||
10553 What Matters More Than Ability
|
10553 What Matters More Than Ability
|
||||||
10554 Gift for You
|
10554 Gift for You
|
||||||
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Taboy:<br>
|
||||||
|
Hello now Go ahead and talk with <font color="LEVEL">Legendary Blacksmith Shadai</font> in <font color="LEVEL">Heine</font>!<br>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You have made a great work now you go to <font color="LEVEL">Nightmare Kamaloka</font> and defeat 5 of <font color="LEVEL">Dark Rider</font> then go to <font color="LEVEL">Command Post</font> and defeat 5 of <font color="LEVEL"> Burnstein (Command Post)</font><br>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You have made a great work now you go to <font color="LEVEL"> Enchanted Valley</font> and defeat 3000 of them.
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You need to defeat 5 of <font color="LEVEL">Dark Rider</font> then go to <font color="LEVEL">Command Post</font> and defeat 5 of <font color="LEVEL"> Burnstein (Command Post)</font> and bring me 5 <font color="LEVEL"> Shadow ingot</font>.
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Congratulations you have complate the challenge now you're able to take the next challenge <font color="LEVEL"> Blacksmiths Soul part 2 </font> and bring me 5 Shadow ingot.<br>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Shadai:<br>
|
||||||
|
Hello now go ahead and talk with <font color="LEVEL">Maestro Ishuma</font> at <font color="LEVEL">Wharf of Gludio Airships</font>!<br>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Shadai:<br>
|
||||||
|
Hello now Go ahead and talk with <font color="LEVEL">Blacksmith of Mammon</font> at <font color="LEVEL">Aden</font> or <font color="LEVEL">Giran</font>!<br>
|
||||||
|
</body></html>
|
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm
vendored
Normal file
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Neti:<br>
|
||||||
|
This will be long way !<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10355_BlacksmithsSoul1 34095-01.htm">"Okay."</Button>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Neti:<br>
|
||||||
|
Great you choose to take the challenge Go ahead and talk with <font color="LEVEL">Head Blacksmith Tapoy</font> in <font color="LEVEL">Gludin </font>!<br>
|
||||||
|
</body></html>
|
@ -0,0 +1,320 @@
|
|||||||
|
/*
|
||||||
|
* 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.Q10355_BlacksmithsSoul1;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.enums.QuestSound;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||||
|
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.NpcStringId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Sero
|
||||||
|
*/
|
||||||
|
public class Q10355_BlacksmithsSoul1 extends Quest
|
||||||
|
{
|
||||||
|
// NPC
|
||||||
|
private static final int NETI = 34095;
|
||||||
|
private static final int TAPOY = 30499;
|
||||||
|
private static final int SHADAI = 32347;
|
||||||
|
private static final int ISHUMA = 32615;
|
||||||
|
private static final int MERCHANT_OF_MAMMON = 31126;
|
||||||
|
// Items
|
||||||
|
private static final int SHADOW_INGOT = 46395;
|
||||||
|
|
||||||
|
// Monsters
|
||||||
|
private static final int BURNSTEIN = 23587;
|
||||||
|
private static final int DARK_RIDER = 26102;
|
||||||
|
private static final int[] NYMPH_MONSTERS =
|
||||||
|
{
|
||||||
|
23569, // Nymph Lily
|
||||||
|
23583, // Nymph Lily big
|
||||||
|
23573, // Nymph Cosmos
|
||||||
|
23567, // Nymph Rose
|
||||||
|
23578, // Nymph Guardian
|
||||||
|
23570, // Nymph Tulip
|
||||||
|
19600, // Flower Bud
|
||||||
|
23581, // Apherus
|
||||||
|
};
|
||||||
|
// Misc
|
||||||
|
private static final int MIN_LEVEL = 99;
|
||||||
|
private static final String KILL_COUNT_VAR = "KillCount";
|
||||||
|
|
||||||
|
public Q10355_BlacksmithsSoul1()
|
||||||
|
{
|
||||||
|
super(10355);
|
||||||
|
addStartNpc(NETI);
|
||||||
|
addTalkId(NETI, TAPOY, SHADAI, ISHUMA, MERCHANT_OF_MAMMON);
|
||||||
|
registerQuestItems(SHADOW_INGOT);
|
||||||
|
addKillId(DARK_RIDER);
|
||||||
|
addKillId(BURNSTEIN);
|
||||||
|
addKillId(NYMPH_MONSTERS);
|
||||||
|
addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
String htmltext = null;
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if (qs == null)
|
||||||
|
{
|
||||||
|
return getNoQuestMsg(player);
|
||||||
|
}
|
||||||
|
if (event.equals("34095-01.htm"))
|
||||||
|
{
|
||||||
|
qs.startQuest();
|
||||||
|
htmltext = event;
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onTalk(Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, true);
|
||||||
|
String htmltext = getNoQuestMsg(player);
|
||||||
|
switch (npc.getId())
|
||||||
|
{
|
||||||
|
case NETI:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.CREATED:
|
||||||
|
{
|
||||||
|
htmltext = "34095-00.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
htmltext = "30756-09.html";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TAPOY:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(1))
|
||||||
|
{
|
||||||
|
htmltext = "30499-00.htm";
|
||||||
|
qs.setCond(2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "30499-00.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SHADAI:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(2))
|
||||||
|
{
|
||||||
|
htmltext = "32347-00.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "32347-00.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ISHUMA:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(3))
|
||||||
|
{
|
||||||
|
htmltext = "32615-00.htm";
|
||||||
|
qs.setCond(4);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "32615-00.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case MERCHANT_OF_MAMMON:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(4))
|
||||||
|
{
|
||||||
|
htmltext = "31126-00.htm";
|
||||||
|
qs.setCond(5);
|
||||||
|
}
|
||||||
|
else if (qs.isCond(5))
|
||||||
|
{
|
||||||
|
htmltext = "31126-00.htm";
|
||||||
|
}
|
||||||
|
else if (qs.isCond(6) && (getQuestItemsCount(player, SHADOW_INGOT) >= 5))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_INGOT, 5);
|
||||||
|
htmltext = "31126-01.htm";
|
||||||
|
qs.setCond(7);
|
||||||
|
}
|
||||||
|
else if (qs.isCond(8))
|
||||||
|
{
|
||||||
|
htmltext = "31126-03.htm";
|
||||||
|
addExpAndSp(player, 26918866543L, 24226979);
|
||||||
|
qs.exitQuest(false, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "31126-02.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if ((qs != null) && qs.isCond(5))
|
||||||
|
{
|
||||||
|
final int killedCount = qs.getInt(Integer.toString(npc.getId()));
|
||||||
|
if (killedCount < 5)
|
||||||
|
{
|
||||||
|
qs.set(Integer.toString(npc.getId()), killedCount + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
final int killedRessurected = qs.getInt(Integer.toString(DARK_RIDER));
|
||||||
|
final int killedLunatic = qs.getInt(Integer.toString(BURNSTEIN));
|
||||||
|
if ((killedLunatic == 5) && (killedRessurected == 5))
|
||||||
|
{
|
||||||
|
qs.setCond(6, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ((qs != null) && qs.isCond(7))
|
||||||
|
{
|
||||||
|
int count = qs.getInt(KILL_COUNT_VAR);
|
||||||
|
qs.set(KILL_COUNT_VAR, ++count);
|
||||||
|
if (count >= 3000)
|
||||||
|
{
|
||||||
|
qs.setCond(8, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
|
||||||
|
{
|
||||||
|
executeForEachPlayer(player, npc, isSummon, true, false);
|
||||||
|
return super.onKill(npc, player, isSummon);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if ((qs != null) && qs.isCond(5))
|
||||||
|
{
|
||||||
|
final Set<NpcLogListHolder> npcLogList = new HashSet<>(2);
|
||||||
|
npcLogList.add(new NpcLogListHolder(DARK_RIDER, false, qs.getInt(Integer.toString(DARK_RIDER))));
|
||||||
|
npcLogList.add(new NpcLogListHolder(NpcStringId.DEFEAT_COMMANDER_BURNSTEIN_2, qs.getInt(Integer.toString(BURNSTEIN))));
|
||||||
|
return npcLogList;
|
||||||
|
}
|
||||||
|
else if ((qs != null) && qs.isCond(7))
|
||||||
|
{
|
||||||
|
final int killCount = qs.getInt(KILL_COUNT_VAR);
|
||||||
|
if (killCount > 0)
|
||||||
|
{
|
||||||
|
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||||
|
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_ENCHANTED_VALLEY_2, killCount));
|
||||||
|
return holder;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.getNpcLogList(player);
|
||||||
|
}
|
||||||
|
}
|
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm
vendored
Normal file
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Now the next part of your challenge is to bring me <font color="LEVEL">Improved Shadow Ingot</font>.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 31126-01.htm">"Okay Let's go."</Button>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
When you have <font color="LEVEL">Improved Shadow Ingot</font> come back to me.
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You need to complete Blacksmiths Soul - Part 1 first.
|
||||||
|
</body></html>
|
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm
vendored
Normal file
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Do you have the <font color="LEVEL">Improved Shadow Ingot</font>?<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 31126-04.htm">"Yes take it."</Button>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Do you have the <font color="LEVEL">Improved Shadow Ingot</font>?
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Good job now bring me a Shadow weapon that you don't want so I can make my research.
|
||||||
|
</body></html>
|
13
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm
vendored
Normal file
13
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Choose the weapon that you don't need to I can make my research on it "Warning! The weapon will not be returned to you" <br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_1">"Shadow Shaper."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_2">"Shadow Cutter."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_3">"Shadow Slasher."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_4">"Shadow Fighter."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_5">"Shadow Stormer."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_6">"Shadow Thrower."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_7">"Shadow Shooter."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_8">"Shadow Buster."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_9">"Shadow Retributer."</Button>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 SHADOW_WEAPON_10">"Shadow Dual Sword."</Button>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Great work! Now take this weapon, upgrade it to +7 and bring it back to me.
|
||||||
|
</body></html>
|
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm
vendored
Normal file
4
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Nice now hand me the weapon let me do my research.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 RESEARCH_Shadow_WEAPON7">"Take it."</Button>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
It's hard work but please enchant my the weapon to +7.
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You have done good so far now you can take your reward and be ready for the next challenge. Have a great day.
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Shadai:<br>
|
||||||
|
I agreed to take a part in the research.
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Ishuma:<br>
|
||||||
|
I agreed to take a part in the research.
|
||||||
|
</body></html>
|
@ -0,0 +1,371 @@
|
|||||||
|
/*
|
||||||
|
* 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.Q10356_BlacksmithsSoul2;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||||
|
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.NpcStringId;
|
||||||
|
|
||||||
|
import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Sero
|
||||||
|
*/
|
||||||
|
public class Q10356_BlacksmithsSoul2 extends Quest
|
||||||
|
{
|
||||||
|
// NPCs
|
||||||
|
private static final int BLACKSMITH_MAMMON = 31126;
|
||||||
|
private static final int SHADAI = 32347;
|
||||||
|
private static final int ISHUMA = 32615;
|
||||||
|
// Items
|
||||||
|
private static final int Improved_SHADOW_Ingot = 47896;
|
||||||
|
private static final int RESEARCH_SHADOW_WEAPON = 47890;
|
||||||
|
private static final int SHADOW_WEAPON_1 = 46317;
|
||||||
|
private static final int SHADOW_WEAPON_2 = 46318;
|
||||||
|
private static final int SHADOW_WEAPON_3 = 46319;
|
||||||
|
private static final int SHADOW_WEAPON_4 = 46320;
|
||||||
|
private static final int SHADOW_WEAPON_5 = 46321;
|
||||||
|
private static final int SHADOW_WEAPON_6 = 46322;
|
||||||
|
private static final int SHADOW_WEAPON_7 = 46323;
|
||||||
|
private static final int SHADOW_WEAPON_8 = 46324;
|
||||||
|
private static final int SHADOW_WEAPON_9 = 46325;
|
||||||
|
private static final int SHADOW_WEAPON_10 = 46326;
|
||||||
|
private static final int SHADOW_CRYSTAL = 47899;
|
||||||
|
private static final int MAIN_LEVEL = 99;
|
||||||
|
|
||||||
|
public Q10356_BlacksmithsSoul2()
|
||||||
|
{
|
||||||
|
super(10356);
|
||||||
|
addStartNpc(BLACKSMITH_MAMMON);
|
||||||
|
addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA);
|
||||||
|
addCondCompletedQuest(Q10355_BlacksmithsSoul1.class.getSimpleName(), "31126-02.htm");
|
||||||
|
addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null));
|
||||||
|
registerQuestItems(Improved_SHADOW_Ingot, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10, RESEARCH_SHADOW_WEAPON);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
String htmltext = null;
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if (qs == null)
|
||||||
|
{
|
||||||
|
return getNoQuestMsg(player);
|
||||||
|
}
|
||||||
|
switch (event)
|
||||||
|
{
|
||||||
|
case "31126-01.htm":
|
||||||
|
{
|
||||||
|
qs.startQuest();
|
||||||
|
htmltext = event;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "31126-04.htm":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, Improved_SHADOW_Ingot))
|
||||||
|
{
|
||||||
|
takeItems(player, Improved_SHADOW_Ingot, 1);
|
||||||
|
qs.setCond(2);
|
||||||
|
htmltext = event;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "31126-03r.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_1":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_1))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_1, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_2":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_2))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_2, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_3":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_3))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_3, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_4":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_4))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_4, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_5":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_5))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_5, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_6":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_6))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_6, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
htmltext = event;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_7":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_7))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_7, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_8":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_8))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_8, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_9":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_9))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_9, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "SHADOW_WEAPON_10":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, SHADOW_WEAPON_10))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_WEAPON_10, 1);
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "RESEARCH_SHADOW_WEAPON7":
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON) && (getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7))
|
||||||
|
{
|
||||||
|
takeItems(player, RESEARCH_SHADOW_WEAPON, -1);
|
||||||
|
giveItems(player, SHADOW_CRYSTAL, 2);
|
||||||
|
qs.setCond(5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onTalk(Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, true);
|
||||||
|
String htmltext = getNoQuestMsg(player);
|
||||||
|
switch (npc.getId())
|
||||||
|
{
|
||||||
|
case BLACKSMITH_MAMMON:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.CREATED:
|
||||||
|
{
|
||||||
|
htmltext = "31126-00.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(1))
|
||||||
|
{
|
||||||
|
htmltext = "31126-03.htm";
|
||||||
|
}
|
||||||
|
else if (qs.isCond(2))
|
||||||
|
{
|
||||||
|
htmltext = "31126-05.htm";
|
||||||
|
}
|
||||||
|
else if (qs.isCond(3))
|
||||||
|
{
|
||||||
|
htmltext = "31126-08.htm";
|
||||||
|
qs.setCond(4);
|
||||||
|
}
|
||||||
|
else if (qs.isCond(4))
|
||||||
|
{
|
||||||
|
if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON))
|
||||||
|
{
|
||||||
|
htmltext = "31126-07.htm";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
giveItems(player, RESEARCH_SHADOW_WEAPON, 1);
|
||||||
|
htmltext = "31126-06.htm";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (qs.isCond(6))
|
||||||
|
{
|
||||||
|
htmltext = "31126-09.htm";
|
||||||
|
addExpAndSp(player, 32958000000L, 29662200);
|
||||||
|
qs.exitQuest(false, true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "31126-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SHADAI:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL))
|
||||||
|
{
|
||||||
|
htmltext = "32347-00.htm";
|
||||||
|
takeItems(player, SHADOW_CRYSTAL, -1);
|
||||||
|
qs.setCond(6);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "31126-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ISHUMA:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL))
|
||||||
|
{
|
||||||
|
htmltext = "32615-00.htm";
|
||||||
|
takeItems(player, SHADOW_CRYSTAL, -1);
|
||||||
|
qs.setCond(6);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "31126-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
|
||||||
|
{
|
||||||
|
executeForEachPlayer(player, npc, isSummon, true, false);
|
||||||
|
return super.onKill(npc, player, isSummon);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if ((qs != null) && qs.isCond(2))
|
||||||
|
{
|
||||||
|
if (hasAtLeastOneQuestItem(player, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10))
|
||||||
|
{
|
||||||
|
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||||
|
holder.add(new NpcLogListHolder(NpcStringId.BRING_SHADOW_WEAPON, 1));
|
||||||
|
return holder;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if ((qs != null) && qs.isCond(4))
|
||||||
|
{
|
||||||
|
if ((getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7))
|
||||||
|
{
|
||||||
|
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||||
|
holder.add(new NpcLogListHolder(NpcStringId.ENCHANT_THE_RESEARCH_WEAPON, 1));
|
||||||
|
return holder;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return super.getNpcLogList(player);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Beola:<br>
|
||||||
|
You have completed the quest.<br>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Beola:<br>
|
||||||
|
It's a fortunate thing that such a skilled adventurer as yourself has committed to making yourself available to the cause. Here is your mission.
|
||||||
|
</body></html>
|
@ -0,0 +1,5 @@
|
|||||||
|
<html><body>Beloa:<br>
|
||||||
|
You need 30 of the Renants of the Rift item in order to seal the Dimensional Rift..<br>
|
||||||
|
Are you strong enough to collect 30 Remnant of the Rift for me?<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10373_ExploringTheDimensionSealingTheDimension 34227-04.htm">"Yes I'm."</Button>
|
||||||
|
</body></html>
|
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Beola:<br>
|
||||||
|
Not done yet.
|
||||||
|
</body></html>
|
@ -0,0 +1,107 @@
|
|||||||
|
/*
|
||||||
|
* 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.Q10373_ExploringTheDimensionSealingTheDimension;
|
||||||
|
|
||||||
|
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.quest.Quest;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.State;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Sero
|
||||||
|
*/
|
||||||
|
public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest
|
||||||
|
{
|
||||||
|
private static final int BELOA = 34227;
|
||||||
|
private static final int RUNE_STONE = 39738;
|
||||||
|
private static final int COMMANDO_BELT = 47044;
|
||||||
|
private static final int REMNANT_OF_THE_RIFT = 46787;
|
||||||
|
private static final int ZODIAC_AGATHION = 45577;
|
||||||
|
private static final int MIN_LEVEL = 95;
|
||||||
|
|
||||||
|
public Q10373_ExploringTheDimensionSealingTheDimension()
|
||||||
|
{
|
||||||
|
super(10373);
|
||||||
|
addStartNpc(BELOA);
|
||||||
|
addTalkId(BELOA);
|
||||||
|
addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
String htmltext = null;
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if (qs == null)
|
||||||
|
{
|
||||||
|
return getNoQuestMsg(player);
|
||||||
|
}
|
||||||
|
if (event.equals("34227-04.htm"))
|
||||||
|
{
|
||||||
|
qs.startQuest();
|
||||||
|
htmltext = event;
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onTalk(Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, true);
|
||||||
|
String htmltext = getNoQuestMsg(player);
|
||||||
|
if (npc.getId() == BELOA)
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.CREATED:
|
||||||
|
{
|
||||||
|
htmltext = "34227-05.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (getQuestItemsCount(player, REMNANT_OF_THE_RIFT) >= 30)
|
||||||
|
{
|
||||||
|
takeItems(player, REMNANT_OF_THE_RIFT, -1);
|
||||||
|
giveItems(player, COMMANDO_BELT, 1);
|
||||||
|
giveItems(player, ZODIAC_AGATHION, 1);
|
||||||
|
giveItems(player, RUNE_STONE, 1);
|
||||||
|
addExpAndSp(player, 12113489880L, 12113460);
|
||||||
|
qs.exitQuest(QuestType.ONE_TIME);
|
||||||
|
htmltext = "30756-09.html";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "34227-05a.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
}
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
This the <font color="LEVEL">Last challenge</font> Defeat monster in Giant's Cave and Hellbound collect Ore with Giant's Energy and Crystal with Magical Power Crystal with Magical Power then take them to Shadai and Ishuma.
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Congratulations you have completed the challenge you deserve your reward warrior!
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Shadai:<br>
|
||||||
|
Thank you for your hard work.
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm
vendored
Normal file
3
L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Ishuma:<br>
|
||||||
|
Thank you for your hard work.
|
||||||
|
</body></html>
|
@ -0,0 +1,238 @@
|
|||||||
|
/*
|
||||||
|
* 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.Q10535_BlacksmithsSoul3;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.l2jmobius.commons.util.CommonUtil;
|
||||||
|
import org.l2jmobius.gameserver.enums.QuestSound;
|
||||||
|
import org.l2jmobius.gameserver.model.Party;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||||
|
import org.l2jmobius.gameserver.model.quest.State;
|
||||||
|
|
||||||
|
import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Sero
|
||||||
|
*/
|
||||||
|
public class Q10535_BlacksmithsSoul3 extends Quest
|
||||||
|
{
|
||||||
|
// NPCs
|
||||||
|
private static final int BLACKSMITH_MAMMON = 31126;
|
||||||
|
private static final int SHADAI = 32347;
|
||||||
|
private static final int ISHUMA = 32615;
|
||||||
|
// Monsters
|
||||||
|
private static final int[] HELL_MONSTERS =
|
||||||
|
{
|
||||||
|
23386, // Jabberwok
|
||||||
|
23387, // Kanzaroth
|
||||||
|
23388, // Kandiloth
|
||||||
|
23384, // Smaug
|
||||||
|
23385, // Lunatikan
|
||||||
|
23399, // Bend Beetle
|
||||||
|
23398, // Koraza
|
||||||
|
23397, // Desert Wendigo
|
||||||
|
23395, // Garion
|
||||||
|
23396, // Garion neti
|
||||||
|
};
|
||||||
|
private static final int[] CAVE_MONSTERS =
|
||||||
|
{
|
||||||
|
23727, // Shaqrima Bathus
|
||||||
|
23728, // Shaqrima Carcass
|
||||||
|
23729, // Kshana
|
||||||
|
};
|
||||||
|
// Items
|
||||||
|
private static final int OREWITH_GIANTS_ENERGY = 47892;
|
||||||
|
private static final int CRYSTAL_WITH_MAGOCAL_POWER = 47891;
|
||||||
|
private static final int ENCHANTED_SHADOW_INGOT = 47886;
|
||||||
|
// Misc
|
||||||
|
private static final int MAIN_LEVEL = 99;
|
||||||
|
|
||||||
|
public Q10535_BlacksmithsSoul3()
|
||||||
|
{
|
||||||
|
super(10535);
|
||||||
|
addStartNpc(BLACKSMITH_MAMMON);
|
||||||
|
addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA);
|
||||||
|
addKillId(HELL_MONSTERS);
|
||||||
|
addKillId(CAVE_MONSTERS);
|
||||||
|
addCondCompletedQuest(Q10356_BlacksmithsSoul2.class.getSimpleName(), "31126-02.htm");
|
||||||
|
addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onTalk(Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, true);
|
||||||
|
String htmltext = getNoQuestMsg(player);
|
||||||
|
switch (npc.getId())
|
||||||
|
{
|
||||||
|
case BLACKSMITH_MAMMON:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.CREATED:
|
||||||
|
{
|
||||||
|
htmltext = "31126-00.htm";
|
||||||
|
qs.startQuest();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(9))
|
||||||
|
{
|
||||||
|
htmltext = "31126-01.htm";
|
||||||
|
addExpAndSp(player, 40346120829L, 36311508);
|
||||||
|
giveItems(player, ENCHANTED_SHADOW_INGOT, 1);
|
||||||
|
qs.exitQuest(false, true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "31126-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SHADAI:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(7) && (getQuestItemsCount(player, CRYSTAL_WITH_MAGOCAL_POWER) >= 500) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500))
|
||||||
|
{
|
||||||
|
htmltext = "32347-00.htm";
|
||||||
|
takeItems(player, CRYSTAL_WITH_MAGOCAL_POWER, -1);
|
||||||
|
qs.setCond(8);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "31126-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ISHUMA:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(8) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500))
|
||||||
|
{
|
||||||
|
htmltext = "32615-00.htm";
|
||||||
|
takeItems(player, OREWITH_GIANTS_ENERGY, -1);
|
||||||
|
qs.setCond(9);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "31126-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||||
|
{
|
||||||
|
if (killer.isInParty())
|
||||||
|
{
|
||||||
|
final Party party = killer.getParty();
|
||||||
|
final List<PlayerInstance> partyMember = party.getMembers();
|
||||||
|
for (PlayerInstance singleMember : partyMember)
|
||||||
|
{
|
||||||
|
final QuestState qsPartyMember = getQuestState(singleMember, false);
|
||||||
|
final double distance = npc.calculateDistance3D(singleMember);
|
||||||
|
if ((qsPartyMember != null) && (distance <= 1000))
|
||||||
|
{
|
||||||
|
if (qsPartyMember.isCond(1))
|
||||||
|
{
|
||||||
|
if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) < 500))
|
||||||
|
{
|
||||||
|
giveItems(singleMember, CRYSTAL_WITH_MAGOCAL_POWER, 1);
|
||||||
|
playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (qsPartyMember.isCond(1))
|
||||||
|
{
|
||||||
|
if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) < 500))
|
||||||
|
{
|
||||||
|
giveItems(singleMember, OREWITH_GIANTS_ENERGY, 1);
|
||||||
|
playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (qsPartyMember.isCond(1) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) >= 500))
|
||||||
|
{
|
||||||
|
qsPartyMember.setCond(7);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
|
||||||
|
if (qs != null)
|
||||||
|
{
|
||||||
|
if (qs.isCond(1))
|
||||||
|
{
|
||||||
|
if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) < 500))
|
||||||
|
{
|
||||||
|
giveItems(killer, CRYSTAL_WITH_MAGOCAL_POWER, 1);
|
||||||
|
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (qs.isCond(1))
|
||||||
|
{
|
||||||
|
if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) < 500))
|
||||||
|
{
|
||||||
|
giveItems(killer, OREWITH_GIANTS_ENERGY, 1);
|
||||||
|
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (qs.isCond(1) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) >= 500))
|
||||||
|
{
|
||||||
|
qs.setCond(7);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.onKill(npc, killer, isSummon);
|
||||||
|
}
|
||||||
|
}
|
@ -297,6 +297,8 @@ import quests.Q10346_DayOfDestinyKamaelsFate.Q10346_DayOfDestinyKamaelsFate;
|
|||||||
import quests.Q10351_OwnerOfHall.Q10351_OwnerOfHall;
|
import quests.Q10351_OwnerOfHall.Q10351_OwnerOfHall;
|
||||||
import quests.Q10353_CertificationOfValue.Q10353_CertificationOfValue;
|
import quests.Q10353_CertificationOfValue.Q10353_CertificationOfValue;
|
||||||
import quests.Q10354_ResurrectedOwnerOfHall.Q10354_ResurrectedOwnerOfHall;
|
import quests.Q10354_ResurrectedOwnerOfHall.Q10354_ResurrectedOwnerOfHall;
|
||||||
|
import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1;
|
||||||
|
import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2;
|
||||||
import quests.Q10358_DividedSakumPoslof.Q10358_DividedSakumPoslof;
|
import quests.Q10358_DividedSakumPoslof.Q10358_DividedSakumPoslof;
|
||||||
import quests.Q10359_TracesOfEvil.Q10359_TracesOfEvil;
|
import quests.Q10359_TracesOfEvil.Q10359_TracesOfEvil;
|
||||||
import quests.Q10360_CertificationOfFate.Q10360_CertificationOfFate;
|
import quests.Q10360_CertificationOfFate.Q10360_CertificationOfFate;
|
||||||
@ -309,6 +311,7 @@ import quests.Q10369_NoblesseSoulTesting.Q10369_NoblesseSoulTesting;
|
|||||||
import quests.Q10370_MenacingTimes.Q10370_MenacingTimes;
|
import quests.Q10370_MenacingTimes.Q10370_MenacingTimes;
|
||||||
import quests.Q10371_GraspThyPower.Q10371_GraspThyPower;
|
import quests.Q10371_GraspThyPower.Q10371_GraspThyPower;
|
||||||
import quests.Q10372_PurgatoryVolvere.Q10372_PurgatoryVolvere;
|
import quests.Q10372_PurgatoryVolvere.Q10372_PurgatoryVolvere;
|
||||||
|
import quests.Q10373_ExploringTheDimensionSealingTheDimension.Q10373_ExploringTheDimensionSealingTheDimension;
|
||||||
import quests.Q10374_ThatPlaceSuccubus.Q10374_ThatPlaceSuccubus;
|
import quests.Q10374_ThatPlaceSuccubus.Q10374_ThatPlaceSuccubus;
|
||||||
import quests.Q10375_SuccubusDisciples.Q10375_SuccubusDisciples;
|
import quests.Q10375_SuccubusDisciples.Q10375_SuccubusDisciples;
|
||||||
import quests.Q10376_BloodyGoodTime.Q10376_BloodyGoodTime;
|
import quests.Q10376_BloodyGoodTime.Q10376_BloodyGoodTime;
|
||||||
@ -393,6 +396,7 @@ import quests.Q10530_KekropusLetterTheDragonsTransition.Q10530_KekropusLetterThe
|
|||||||
import quests.Q10531_OddHappeningsAtDragonValley.Q10531_OddHappeningsAtDragonValley;
|
import quests.Q10531_OddHappeningsAtDragonValley.Q10531_OddHappeningsAtDragonValley;
|
||||||
import quests.Q10532_UncoveringTheConspiracy.Q10532_UncoveringTheConspiracy;
|
import quests.Q10532_UncoveringTheConspiracy.Q10532_UncoveringTheConspiracy;
|
||||||
import quests.Q10534_HatchlingResearch.Q10534_HatchlingResearch;
|
import quests.Q10534_HatchlingResearch.Q10534_HatchlingResearch;
|
||||||
|
import quests.Q10535_BlacksmithsSoul3.Q10535_BlacksmithsSoul3;
|
||||||
import quests.Q10537_KamaelDisarray.Q10537_KamaelDisarray;
|
import quests.Q10537_KamaelDisarray.Q10537_KamaelDisarray;
|
||||||
import quests.Q10538_GiantsEvolution.Q10538_GiantsEvolution;
|
import quests.Q10538_GiantsEvolution.Q10538_GiantsEvolution;
|
||||||
import quests.Q10539_EnergySupplyCutoffPlan.Q10539_EnergySupplyCutoffPlan;
|
import quests.Q10539_EnergySupplyCutoffPlan.Q10539_EnergySupplyCutoffPlan;
|
||||||
@ -562,12 +566,8 @@ import quests.not_done.Q00987_AdventureGuildsSpecialRequestLv3;
|
|||||||
import quests.not_done.Q00988_AdventureGuildsSpecialRequestLv4;
|
import quests.not_done.Q00988_AdventureGuildsSpecialRequestLv4;
|
||||||
import quests.not_done.Q00989_AdventureGuildsSpecialRequestLv5;
|
import quests.not_done.Q00989_AdventureGuildsSpecialRequestLv5;
|
||||||
import quests.not_done.Q10298_WastelandQueen;
|
import quests.not_done.Q10298_WastelandQueen;
|
||||||
import quests.not_done.Q10355_BlacksmithsSoul1;
|
|
||||||
import quests.not_done.Q10356_BlacksmithsSoul2;
|
|
||||||
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
|
|
||||||
import quests.not_done.Q10396_WitchOfSpores;
|
import quests.not_done.Q10396_WitchOfSpores;
|
||||||
import quests.not_done.Q10506_DianasRequest;
|
import quests.not_done.Q10506_DianasRequest;
|
||||||
import quests.not_done.Q10535_BlacksmithsSoul3;
|
|
||||||
import quests.not_done.Q10552_ChallengeBalthusKnight;
|
import quests.not_done.Q10552_ChallengeBalthusKnight;
|
||||||
import quests.not_done.Q10553_WhatMattersMoreThanAbility;
|
import quests.not_done.Q10553_WhatMattersMoreThanAbility;
|
||||||
import quests.not_done.Q10554_GiftForYou;
|
import quests.not_done.Q10554_GiftForYou;
|
||||||
@ -920,8 +920,8 @@ public class QuestMasterHandler
|
|||||||
Q10351_OwnerOfHall.class,
|
Q10351_OwnerOfHall.class,
|
||||||
Q10353_CertificationOfValue.class,
|
Q10353_CertificationOfValue.class,
|
||||||
Q10354_ResurrectedOwnerOfHall.class,
|
Q10354_ResurrectedOwnerOfHall.class,
|
||||||
Q10355_BlacksmithsSoul1.class, // TODO: Not done.
|
Q10355_BlacksmithsSoul1.class,
|
||||||
Q10356_BlacksmithsSoul2.class, // TODO: Not done.
|
Q10356_BlacksmithsSoul2.class,
|
||||||
Q10358_DividedSakumPoslof.class,
|
Q10358_DividedSakumPoslof.class,
|
||||||
Q10359_TracesOfEvil.class,
|
Q10359_TracesOfEvil.class,
|
||||||
Q10360_CertificationOfFate.class,
|
Q10360_CertificationOfFate.class,
|
||||||
@ -934,7 +934,7 @@ public class QuestMasterHandler
|
|||||||
Q10370_MenacingTimes.class,
|
Q10370_MenacingTimes.class,
|
||||||
Q10371_GraspThyPower.class,
|
Q10371_GraspThyPower.class,
|
||||||
Q10372_PurgatoryVolvere.class,
|
Q10372_PurgatoryVolvere.class,
|
||||||
Q10373_ExploringTheDimensionSealingTheDimension.class, // TODO: Not done.
|
Q10373_ExploringTheDimensionSealingTheDimension.class,
|
||||||
Q10374_ThatPlaceSuccubus.class,
|
Q10374_ThatPlaceSuccubus.class,
|
||||||
Q10375_SuccubusDisciples.class,
|
Q10375_SuccubusDisciples.class,
|
||||||
Q10376_BloodyGoodTime.class,
|
Q10376_BloodyGoodTime.class,
|
||||||
@ -1021,7 +1021,7 @@ public class QuestMasterHandler
|
|||||||
Q10531_OddHappeningsAtDragonValley.class,
|
Q10531_OddHappeningsAtDragonValley.class,
|
||||||
Q10532_UncoveringTheConspiracy.class,
|
Q10532_UncoveringTheConspiracy.class,
|
||||||
Q10534_HatchlingResearch.class,
|
Q10534_HatchlingResearch.class,
|
||||||
Q10535_BlacksmithsSoul3.class, // TODO: Not done.
|
Q10535_BlacksmithsSoul3.class,
|
||||||
Q10537_KamaelDisarray.class,
|
Q10537_KamaelDisarray.class,
|
||||||
Q10538_GiantsEvolution.class,
|
Q10538_GiantsEvolution.class,
|
||||||
Q10539_EnergySupplyCutoffPlan.class,
|
Q10539_EnergySupplyCutoffPlan.class,
|
||||||
|
@ -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 Q10355_BlacksmithsSoul1 extends Quest
|
|
||||||
{
|
|
||||||
private static final int START_NPC = 34095;
|
|
||||||
|
|
||||||
public Q10355_BlacksmithsSoul1()
|
|
||||||
{
|
|
||||||
super(10355);
|
|
||||||
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 Q10356_BlacksmithsSoul2 extends Quest
|
|
||||||
{
|
|
||||||
private static final int START_NPC = 31126;
|
|
||||||
|
|
||||||
public Q10356_BlacksmithsSoul2()
|
|
||||||
{
|
|
||||||
super(10356);
|
|
||||||
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 Q10373_ExploringTheDimensionSealingTheDimension extends Quest
|
|
||||||
{
|
|
||||||
private static final int START_NPC = 34227;
|
|
||||||
|
|
||||||
public Q10373_ExploringTheDimensionSealingTheDimension()
|
|
||||||
{
|
|
||||||
super(10373);
|
|
||||||
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 Q10535_BlacksmithsSoul3 extends Quest
|
|
||||||
{
|
|
||||||
private static final int START_NPC = 31126;
|
|
||||||
|
|
||||||
public Q10535_BlacksmithsSoul3()
|
|
||||||
{
|
|
||||||
super(10535);
|
|
||||||
addStartNpc(START_NPC);
|
|
||||||
addTalkId(START_NPC);
|
|
||||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
|
||||||
}
|
|
||||||
}
|
|
@ -117,14 +117,10 @@
|
|||||||
988 Adventure Guild's Special Request - Lv. 4
|
988 Adventure Guild's Special Request - Lv. 4
|
||||||
989 Adventure Guild's Special Request - Lv. 5
|
989 Adventure Guild's Special Request - Lv. 5
|
||||||
10298 Wasteland Queen
|
10298 Wasteland Queen
|
||||||
10355 Blacksmith's Soul-awakening Weapon - 1
|
|
||||||
10356 Blacksmith's Soul-awakening Weapon - 2
|
|
||||||
10373 Exploring the Dimension - Sealing the Dimension
|
|
||||||
10423 Embryo Stronghold Ambush
|
10423 Embryo Stronghold Ambush
|
||||||
10506 Diana's Request
|
10506 Diana's Request
|
||||||
10529 Ivory Tower's Research - Sea of Spores Journal
|
10529 Ivory Tower's Research - Sea of Spores Journal
|
||||||
10533 Orfen's Ambition
|
10533 Orfen's Ambition
|
||||||
10535 Blacksmith's Soul-awakening Weapon - 3
|
|
||||||
10552 Challenge! Balthus Knight!
|
10552 Challenge! Balthus Knight!
|
||||||
10553 What Matters More Than Ability
|
10553 What Matters More Than Ability
|
||||||
10554 Gift for You
|
10554 Gift for You
|
||||||
|
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm
vendored
Normal file
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Taboy:<br>
|
||||||
|
Hello now Go ahead and talk with <font color="LEVEL">Legendary Blacksmith Shadai</font> in <font color="LEVEL">Heine</font>!<br>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm
vendored
Normal file
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You have made a great work now you go to <font color="LEVEL">Nightmare Kamaloka</font> and defeat 5 of <font color="LEVEL">Dark Rider</font> then go to <font color="LEVEL">Command Post</font> and defeat 5 of <font color="LEVEL"> Burnstein (Command Post)</font><br>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm
vendored
Normal file
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You have made a great work now you go to <font color="LEVEL"> Enchanted Valley</font> and defeat 3000 of them.
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm
vendored
Normal file
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
You need to defeat 5 of <font color="LEVEL">Dark Rider</font> then go to <font color="LEVEL">Command Post</font> and defeat 5 of <font color="LEVEL"> Burnstein (Command Post)</font> and bring me 5 <font color="LEVEL"> Shadow ingot</font>.
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm
vendored
Normal file
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Congratulations you have complate the challenge now you're able to take the next challenge <font color="LEVEL"> Blacksmiths Soul part 2 </font> and bring me 5 Shadow ingot.<br>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm
vendored
Normal file
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Shadai:<br>
|
||||||
|
Hello now go ahead and talk with <font color="LEVEL">Maestro Ishuma</font> at <font color="LEVEL">Wharf of Gludio Airships</font>!<br>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm
vendored
Normal file
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Shadai:<br>
|
||||||
|
Hello now Go ahead and talk with <font color="LEVEL">Blacksmith of Mammon</font> at <font color="LEVEL">Aden</font> or <font color="LEVEL">Giran</font>!<br>
|
||||||
|
</body></html>
|
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm
vendored
Normal file
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Neti:<br>
|
||||||
|
This will be long way !<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10355_BlacksmithsSoul1 34095-01.htm">"Okay."</Button>
|
||||||
|
</body></html>
|
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm
vendored
Normal file
3
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Neti:<br>
|
||||||
|
Great you choose to take the challenge Go ahead and talk with <font color="LEVEL">Head Blacksmith Tapoy</font> in <font color="LEVEL">Gludin </font>!<br>
|
||||||
|
</body></html>
|
@ -0,0 +1,320 @@
|
|||||||
|
/*
|
||||||
|
* 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.Q10355_BlacksmithsSoul1;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.l2jmobius.gameserver.enums.QuestSound;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||||
|
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.NpcStringId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Sero
|
||||||
|
*/
|
||||||
|
public class Q10355_BlacksmithsSoul1 extends Quest
|
||||||
|
{
|
||||||
|
// NPC
|
||||||
|
private static final int NETI = 34095;
|
||||||
|
private static final int TAPOY = 30499;
|
||||||
|
private static final int SHADAI = 32347;
|
||||||
|
private static final int ISHUMA = 32615;
|
||||||
|
private static final int MERCHANT_OF_MAMMON = 31126;
|
||||||
|
// Items
|
||||||
|
private static final int SHADOW_INGOT = 46395;
|
||||||
|
|
||||||
|
// Monsters
|
||||||
|
private static final int BURNSTEIN = 23587;
|
||||||
|
private static final int DARK_RIDER = 26102;
|
||||||
|
private static final int[] NYMPH_MONSTERS =
|
||||||
|
{
|
||||||
|
23569, // Nymph Lily
|
||||||
|
23583, // Nymph Lily big
|
||||||
|
23573, // Nymph Cosmos
|
||||||
|
23567, // Nymph Rose
|
||||||
|
23578, // Nymph Guardian
|
||||||
|
23570, // Nymph Tulip
|
||||||
|
19600, // Flower Bud
|
||||||
|
23581, // Apherus
|
||||||
|
};
|
||||||
|
// Misc
|
||||||
|
private static final int MIN_LEVEL = 99;
|
||||||
|
private static final String KILL_COUNT_VAR = "KillCount";
|
||||||
|
|
||||||
|
public Q10355_BlacksmithsSoul1()
|
||||||
|
{
|
||||||
|
super(10355);
|
||||||
|
addStartNpc(NETI);
|
||||||
|
addTalkId(NETI, TAPOY, SHADAI, ISHUMA, MERCHANT_OF_MAMMON);
|
||||||
|
registerQuestItems(SHADOW_INGOT);
|
||||||
|
addKillId(DARK_RIDER);
|
||||||
|
addKillId(BURNSTEIN);
|
||||||
|
addKillId(NYMPH_MONSTERS);
|
||||||
|
addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
String htmltext = null;
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if (qs == null)
|
||||||
|
{
|
||||||
|
return getNoQuestMsg(player);
|
||||||
|
}
|
||||||
|
if (event.equals("34095-01.htm"))
|
||||||
|
{
|
||||||
|
qs.startQuest();
|
||||||
|
htmltext = event;
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onTalk(Npc npc, PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, true);
|
||||||
|
String htmltext = getNoQuestMsg(player);
|
||||||
|
switch (npc.getId())
|
||||||
|
{
|
||||||
|
case NETI:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.CREATED:
|
||||||
|
{
|
||||||
|
htmltext = "34095-00.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
htmltext = "30756-09.html";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TAPOY:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(1))
|
||||||
|
{
|
||||||
|
htmltext = "30499-00.htm";
|
||||||
|
qs.setCond(2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "30499-00.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SHADAI:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(2))
|
||||||
|
{
|
||||||
|
htmltext = "32347-00.htm";
|
||||||
|
qs.setCond(3);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "32347-00.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ISHUMA:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(3))
|
||||||
|
{
|
||||||
|
htmltext = "32615-00.htm";
|
||||||
|
qs.setCond(4);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "32615-00.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case MERCHANT_OF_MAMMON:
|
||||||
|
{
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
if (qs.isCond(4))
|
||||||
|
{
|
||||||
|
htmltext = "31126-00.htm";
|
||||||
|
qs.setCond(5);
|
||||||
|
}
|
||||||
|
else if (qs.isCond(5))
|
||||||
|
{
|
||||||
|
htmltext = "31126-00.htm";
|
||||||
|
}
|
||||||
|
else if (qs.isCond(6) && (getQuestItemsCount(player, SHADOW_INGOT) >= 5))
|
||||||
|
{
|
||||||
|
takeItems(player, SHADOW_INGOT, 5);
|
||||||
|
htmltext = "31126-01.htm";
|
||||||
|
qs.setCond(7);
|
||||||
|
}
|
||||||
|
else if (qs.isCond(8))
|
||||||
|
{
|
||||||
|
htmltext = "31126-03.htm";
|
||||||
|
addExpAndSp(player, 26918866543L, 24226979);
|
||||||
|
qs.exitQuest(false, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
htmltext = "31126-02.htm";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.COMPLETED:
|
||||||
|
{
|
||||||
|
if (!qs.isNowAvailable())
|
||||||
|
{
|
||||||
|
htmltext = "34227-00a.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if ((qs != null) && qs.isCond(5))
|
||||||
|
{
|
||||||
|
final int killedCount = qs.getInt(Integer.toString(npc.getId()));
|
||||||
|
if (killedCount < 5)
|
||||||
|
{
|
||||||
|
qs.set(Integer.toString(npc.getId()), killedCount + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
final int killedRessurected = qs.getInt(Integer.toString(DARK_RIDER));
|
||||||
|
final int killedLunatic = qs.getInt(Integer.toString(BURNSTEIN));
|
||||||
|
if ((killedLunatic == 5) && (killedRessurected == 5))
|
||||||
|
{
|
||||||
|
qs.setCond(6, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ((qs != null) && qs.isCond(7))
|
||||||
|
{
|
||||||
|
int count = qs.getInt(KILL_COUNT_VAR);
|
||||||
|
qs.set(KILL_COUNT_VAR, ++count);
|
||||||
|
if (count >= 3000)
|
||||||
|
{
|
||||||
|
qs.setCond(8, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
|
||||||
|
{
|
||||||
|
executeForEachPlayer(player, npc, isSummon, true, false);
|
||||||
|
return super.onKill(npc, player, isSummon);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, false);
|
||||||
|
if ((qs != null) && qs.isCond(5))
|
||||||
|
{
|
||||||
|
final Set<NpcLogListHolder> npcLogList = new HashSet<>(2);
|
||||||
|
npcLogList.add(new NpcLogListHolder(DARK_RIDER, false, qs.getInt(Integer.toString(DARK_RIDER))));
|
||||||
|
npcLogList.add(new NpcLogListHolder(NpcStringId.DEFEAT_COMMANDER_BURNSTEIN_2, qs.getInt(Integer.toString(BURNSTEIN))));
|
||||||
|
return npcLogList;
|
||||||
|
}
|
||||||
|
else if ((qs != null) && qs.isCond(7))
|
||||||
|
{
|
||||||
|
final int killCount = qs.getInt(KILL_COUNT_VAR);
|
||||||
|
if (killCount > 0)
|
||||||
|
{
|
||||||
|
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||||
|
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_ENCHANTED_VALLEY_2, killCount));
|
||||||
|
return holder;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.getNpcLogList(player);
|
||||||
|
}
|
||||||
|
}
|
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm
vendored
Normal file
4
L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Mammon:<br>
|
||||||
|
Now the next part of your challenge is to bring me <font color="LEVEL">Improved Shadow Ingot</font>.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10356_BlacksmithsSoul2 31126-01.htm">"Okay Let's go."</Button>
|
||||||
|
</body></html>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user