Addition of Dimensional Warp quests (2 to 7).
This commit is contained in:
parent
981bcabcb0
commit
8fdd568087
@ -46,10 +46,4 @@
|
||||
10747 The Hero's Journey: Pagan Temple
|
||||
10748 Mysterious Suggestion - 1
|
||||
10749 Mysterious Suggestion - 2
|
||||
10802 The Dimensional Warp, Part 2
|
||||
10803 The Dimensional Warp, Part 3
|
||||
10804 The Dimensional Warp, Part 4
|
||||
10805 The Dimensional Warp, Part 5
|
||||
10806 The Dimensional Warp, Part 6
|
||||
10807 The Dimensional Warp, Part 7
|
||||
10809 The Hero's Journey: Blazing Swamp
|
@ -41,7 +41,7 @@ public class Q10801_TheDimensionalWarpPart1 extends Quest
|
||||
private static final int RESED = 33974;
|
||||
// Monsters
|
||||
private static final int DIMENSIONAL_BUGBEAR = 23465;
|
||||
// other
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int DIMENSIONAL_BRACELET_STAGE_1 = 39747;
|
||||
private static final int WARP_CRYSTAL = 39597;
|
||||
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Are you trying to enter the Dimensional Warp? It's not a place for people like you.<br>
|
||||
(Only characters Lv. 99 or above may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.<br>
|
||||
I know it won't be easy, but can you do me a favor?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10802_TheDimensionalWarpPart2 33974-02.htm">"What is it?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
In the early stages of a Dimensional Warp, <font color="LEVEL">Dimensional Binders</font> come out.<br>
|
||||
But we still don't have enough information about them. I need more information about them because people run into them the most.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10802_TheDimensionalWarpPart2 33974-03.htm">"How many do you need?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Can we start with 100?<br>
|
||||
They come out often, so it won't be too hard. Thank you!<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10802_TheDimensionalWarpPart2 33974-04.htm">"I didn't say yes yet..."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
Kill 100 <font color="LEVEL">Dimensional Binders</font> and come back to me.
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
We still don't have enough information. That's not enough.<br>
|
||||
Go kill more <font color="LEVEL">Dimensional Binders</font>.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Thank you. This will be enough.<br>
|
||||
Can You give me the information now?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10802_TheDimensionalWarpPart2 33974-07.html">"Yup"</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Good work. You're almost at the finish line.<br>
|
||||
The reward is better than the last time. Take it.
|
||||
</body></html>
|
@ -0,0 +1,179 @@
|
||||
/*
|
||||
* 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.Q10802_TheDimensionalWarpPart2;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
import com.l2jmobius.gameserver.model.L2Party;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
|
||||
|
||||
/**
|
||||
* The Dimensional Warp, Part 2 (10802)
|
||||
* @URL https://l2wiki.com/The_Dimensional_Warp,_Part_2
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10802_TheDimensionalWarpPart2 extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int RESED = 33974;
|
||||
// Monsters
|
||||
private static final int DIMENSIONAL_BINDER = 23467;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int WARP_CRYSTAL = 39597;
|
||||
|
||||
public Q10802_TheDimensionalWarpPart2()
|
||||
{
|
||||
super(10802);
|
||||
addStartNpc(RESED);
|
||||
addTalkId(RESED);
|
||||
addKillId(DIMENSIONAL_BINDER);
|
||||
addCondMinLevel(MIN_LEVEL, "33974-00.htm");
|
||||
addCondCompletedQuest(Q10801_TheDimensionalWarpPart1.class.getSimpleName(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33974-02.htm":
|
||||
case "33974-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-07.html":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
if (player.getLevel() >= MIN_LEVEL)
|
||||
{
|
||||
addExpAndSp(player, 49380951086L, 0);
|
||||
giveItems(player, WARP_CRYSTAL, 300);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getNoQuestLevelRewardMsg(player);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33974-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
L2Party party = killer.getParty();
|
||||
if (party != null)
|
||||
{
|
||||
party.getMembers().forEach(p -> onKill(npc, p));
|
||||
}
|
||||
else
|
||||
{
|
||||
onKill(npc, killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void onKill(L2Npc npc, L2PcInstance killer)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int killedBugbear = qs.getInt("killed_" + DIMENSIONAL_BINDER);
|
||||
if (killedBugbear < 100)
|
||||
{
|
||||
qs.set("killed_" + DIMENSIONAL_BINDER, ++killedBugbear);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
if (killedBugbear >= 100)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(DIMENSIONAL_BINDER, false, qs.getInt("killed_" + DIMENSIONAL_BINDER)));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Are you trying to enter the Dimensional Warp? It's not a place for people like you.<br>
|
||||
(Only characters Lv. 99 or above may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.<br>
|
||||
I know it won't be easy, but can you do me a favor?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10803_TheDimensionalWarpPart3 33974-02.htm">"What is it?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
In the early stages of a Dimensional Warp, <font color="LEVEL">Unworldly Etins</font> come out.<br>
|
||||
But we still don't have enough information about them. I need more information about them because people run into them the most.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10803_TheDimensionalWarpPart3 33974-03.htm">"How many do you need?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Can we start with 100?<br>
|
||||
They come out often, so it won't be too hard. Thank you!<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10803_TheDimensionalWarpPart3 33974-04.htm">"I didn't say yes yet..."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
Kill 100 <font color="LEVEL">Unworldly Etins</font> and come back to me.
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
We still don't have enough information. That's not enough.<br>
|
||||
Go kill more <font color="LEVEL">Unworldly Etins</font>.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Thank you. This will be enough.<br>
|
||||
Can You give me the information now?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10803_TheDimensionalWarpPart3 33974-07.html">"Yup"</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Good work. You're almost at the finish line.<br>
|
||||
The reward is better than the last time. Take it.
|
||||
</body></html>
|
@ -0,0 +1,181 @@
|
||||
/*
|
||||
* 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.Q10803_TheDimensionalWarpPart3;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
import com.l2jmobius.gameserver.model.L2Party;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
|
||||
|
||||
/**
|
||||
* The Dimensional Warp, Part 3 (10803)
|
||||
* @URL https://l2wiki.com/The_Dimensional_Warp,_Part_3
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10803_TheDimensionalWarpPart3 extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int RESED = 33974;
|
||||
// Monsters
|
||||
private static final int UNWORDLY_ETIN = 23471;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int BLOODY_ETERNAL_ENHANCEMENT_STONE = 3556;
|
||||
private static final int WARP_CRYSTAL = 39597;
|
||||
|
||||
public Q10803_TheDimensionalWarpPart3()
|
||||
{
|
||||
super(10803);
|
||||
addStartNpc(RESED);
|
||||
addTalkId(RESED);
|
||||
addKillId(UNWORDLY_ETIN);
|
||||
addCondMinLevel(MIN_LEVEL, "33974-00.htm");
|
||||
addCondCompletedQuest(Q10802_TheDimensionalWarpPart2.class.getSimpleName(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33974-02.htm":
|
||||
case "33974-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-07.html":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
if (player.getLevel() >= MIN_LEVEL)
|
||||
{
|
||||
addExpAndSp(player, 54383249571L, 0);
|
||||
giveItems(player, BLOODY_ETERNAL_ENHANCEMENT_STONE, 1);
|
||||
giveItems(player, WARP_CRYSTAL, 300);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getNoQuestLevelRewardMsg(player);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33974-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
L2Party party = killer.getParty();
|
||||
if (party != null)
|
||||
{
|
||||
party.getMembers().forEach(p -> onKill(npc, p));
|
||||
}
|
||||
else
|
||||
{
|
||||
onKill(npc, killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void onKill(L2Npc npc, L2PcInstance killer)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int killedBugbear = qs.getInt("killed_" + UNWORDLY_ETIN);
|
||||
if (killedBugbear < 100)
|
||||
{
|
||||
qs.set("killed_" + UNWORDLY_ETIN, ++killedBugbear);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
if (killedBugbear >= 100)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(UNWORDLY_ETIN, false, qs.getInt("killed_" + UNWORDLY_ETIN)));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Are you trying to enter the Dimensional Warp? It's not a place for people like you.<br>
|
||||
(Only characters Lv. 99 or above may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.<br>
|
||||
I know it won't be easy, but can you do me a favor?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10804_TheDimensionalWarpPart4 33974-02.htm">"What is it?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
In the early stages of a Dimensional Warp, <font color="LEVEL">Unworldly Golems</font> come out.<br>
|
||||
But we still don't have enough information about them. I need more information about them because people run into them the most.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10804_TheDimensionalWarpPart4 33974-03.htm">"How many do you need?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Can we start with 100?<br>
|
||||
They come out often, so it won't be too hard. Thank you!<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10804_TheDimensionalWarpPart4 33974-04.htm">"I didn't say yes yet..."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
Kill 100 <font color="LEVEL">Unworldly Golems</font> and come back to me.
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
We still don't have enough information. That's not enough.<br>
|
||||
Go kill more <font color="LEVEL">Unworldly Golems</font>.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Thank you. This will be enough.<br>
|
||||
Can You give me the information now?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10804_TheDimensionalWarpPart4 33974-07.html">"Yup"</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Good work. You're almost at the finish line.<br>
|
||||
The reward is better than the last time. Take it.
|
||||
</body></html>
|
@ -0,0 +1,181 @@
|
||||
/*
|
||||
* 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.Q10804_TheDimensionalWarpPart4;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
import com.l2jmobius.gameserver.model.L2Party;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
|
||||
|
||||
/**
|
||||
* The Dimensional Warp, Part 4 (10804)
|
||||
* @URL https://l2wiki.com/The_Dimensional_Warp,_Part_4
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10804_TheDimensionalWarpPart4 extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int RESED = 33974;
|
||||
// Monsters
|
||||
private static final int UNWORLDLY_GOLEM = 23474;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
|
||||
private static final int WARP_CRYSTAL = 39597;
|
||||
|
||||
public Q10804_TheDimensionalWarpPart4()
|
||||
{
|
||||
super(10804);
|
||||
addStartNpc(RESED);
|
||||
addTalkId(RESED);
|
||||
addKillId(UNWORLDLY_GOLEM);
|
||||
addCondMinLevel(MIN_LEVEL, "33974-00.htm");
|
||||
addCondCompletedQuest(Q10803_TheDimensionalWarpPart3.class.getSimpleName(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33974-02.htm":
|
||||
case "33974-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-07.html":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
if (player.getLevel() >= MIN_LEVEL)
|
||||
{
|
||||
addExpAndSp(player, 60425832857L, 0);
|
||||
giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
|
||||
giveItems(player, WARP_CRYSTAL, 300);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getNoQuestLevelRewardMsg(player);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33974-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
L2Party party = killer.getParty();
|
||||
if (party != null)
|
||||
{
|
||||
party.getMembers().forEach(p -> onKill(npc, p));
|
||||
}
|
||||
else
|
||||
{
|
||||
onKill(npc, killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void onKill(L2Npc npc, L2PcInstance killer)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int killedBugbear = qs.getInt("killed_" + UNWORLDLY_GOLEM);
|
||||
if (killedBugbear < 100)
|
||||
{
|
||||
qs.set("killed_" + UNWORLDLY_GOLEM, ++killedBugbear);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
if (killedBugbear >= 100)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(UNWORLDLY_GOLEM, false, qs.getInt("killed_" + UNWORLDLY_GOLEM)));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Are you trying to enter the Dimensional Warp? It's not a place for people like you.<br>
|
||||
(Only characters Lv. 99 or above may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.<br>
|
||||
I know it won't be easy, but can you do me a favor?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10805_TheDimensionalWarpPart5 33974-02.htm">"What is it?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
In the early stages of a Dimensional Warp, <font color="LEVEL">Abyssal Golems</font> come out.<br>
|
||||
But we still don't have enough information about them. I need more information about them because people run into them the most.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10805_TheDimensionalWarpPart5 33974-03.htm">"How many do you need?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Can we start with 100?<br>
|
||||
They come out often, so it won't be too hard. Thank you!<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10805_TheDimensionalWarpPart5 33974-04.htm">"I didn't say yes yet..."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
Kill 100 <font color="LEVEL">Abyssal Golems</font> and come back to me.
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
We still don't have enough information. That's not enough.<br>
|
||||
Go kill more <font color="LEVEL">Abyssal Golems</font>.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Thank you. This will be enough.<br>
|
||||
Can You give me the information now?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10805_TheDimensionalWarpPart5 33974-07.html">"Yup"</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Good work. You're almost at the finish line.<br>
|
||||
The reward is better than the last time. Take it.
|
||||
</body></html>
|
@ -0,0 +1,181 @@
|
||||
/*
|
||||
* 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.Q10805_TheDimensionalWarpPart5;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
import com.l2jmobius.gameserver.model.L2Party;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
|
||||
|
||||
/**
|
||||
* The Dimensional Warp, Part 5 (10805)
|
||||
* @URL https://l2wiki.com/The_Dimensional_Warp,_Part_5
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10805_TheDimensionalWarpPart5 extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int RESED = 33974;
|
||||
// Monsters
|
||||
private static final int ABYSSAL_GOLEM = 23483;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
|
||||
private static final int WARP_CRYSTAL = 39597;
|
||||
|
||||
public Q10805_TheDimensionalWarpPart5()
|
||||
{
|
||||
super(10805);
|
||||
addStartNpc(RESED);
|
||||
addTalkId(RESED);
|
||||
addKillId(ABYSSAL_GOLEM);
|
||||
addCondMinLevel(MIN_LEVEL, "33974-00.htm");
|
||||
addCondCompletedQuest(Q10804_TheDimensionalWarpPart4.class.getSimpleName(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33974-02.htm":
|
||||
case "33974-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-07.html":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
if (player.getLevel() >= MIN_LEVEL)
|
||||
{
|
||||
addExpAndSp(player, 66530730240L, 0);
|
||||
giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
|
||||
giveItems(player, WARP_CRYSTAL, 300);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getNoQuestLevelRewardMsg(player);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33974-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
L2Party party = killer.getParty();
|
||||
if (party != null)
|
||||
{
|
||||
party.getMembers().forEach(p -> onKill(npc, p));
|
||||
}
|
||||
else
|
||||
{
|
||||
onKill(npc, killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void onKill(L2Npc npc, L2PcInstance killer)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int killedBugbear = qs.getInt("killed_" + ABYSSAL_GOLEM);
|
||||
if (killedBugbear < 100)
|
||||
{
|
||||
qs.set("killed_" + ABYSSAL_GOLEM, ++killedBugbear);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
if (killedBugbear >= 100)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(ABYSSAL_GOLEM, false, qs.getInt("killed_" + ABYSSAL_GOLEM)));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Are you trying to enter the Dimensional Warp? It's not a place for people like you.<br>
|
||||
(Only characters Lv. 99 or above may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.<br>
|
||||
I know it won't be easy, but can you do me a favor?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10806_TheDimensionalWarpPart6 33974-02.htm">"What is it?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
In the early stages of a Dimensional Warp, <font color="LEVEL">Abyssal Berserkers</font> come out.<br>
|
||||
But we still don't have enough information about them. I need more information about them because people run into them the most.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10806_TheDimensionalWarpPart6 33974-03.htm">"How many do you need?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Can we start with 100?<br>
|
||||
They come out often, so it won't be too hard. Thank you!<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10806_TheDimensionalWarpPart6 33974-04.htm">"I didn't say yes yet..."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
Kill 100 <font color="LEVEL">Abyssal Berserkers</font> and come back to me.
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
We still don't have enough information. That's not enough.<br>
|
||||
Go kill more <font color="LEVEL">Abyssal Berserkers</font>.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Thank you. This will be enough.<br>
|
||||
Can You give me the information now?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10806_TheDimensionalWarpPart6 33974-07.html">"Yup"</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Good work. You're almost at the finish line.<br>
|
||||
The reward is better than the last time. Take it.
|
||||
</body></html>
|
@ -0,0 +1,179 @@
|
||||
/*
|
||||
* 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.Q10806_TheDimensionalWarpPart6;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
import com.l2jmobius.gameserver.model.L2Party;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
import quests.Q10805_TheDimensionalWarpPart5.Q10805_TheDimensionalWarpPart5;
|
||||
|
||||
/**
|
||||
* The Dimensional Warp, Part 6 (10806)
|
||||
* @URL https://l2wiki.com/The_Dimensional_Warp,_Part_6
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10806_TheDimensionalWarpPart6 extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int RESED = 33974;
|
||||
// Monsters
|
||||
private static final int ABYSSAL_BERSERKER = 23478;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int WARP_CRYSTAL = 39597;
|
||||
|
||||
public Q10806_TheDimensionalWarpPart6()
|
||||
{
|
||||
super(10806);
|
||||
addStartNpc(RESED);
|
||||
addTalkId(RESED);
|
||||
addKillId(ABYSSAL_BERSERKER);
|
||||
addCondMinLevel(MIN_LEVEL, "33974-00.htm");
|
||||
addCondCompletedQuest(Q10805_TheDimensionalWarpPart5.class.getSimpleName(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33974-02.htm":
|
||||
case "33974-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-07.html":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
if (player.getLevel() >= MIN_LEVEL)
|
||||
{
|
||||
addExpAndSp(player, 73923033600L, 0);
|
||||
giveItems(player, WARP_CRYSTAL, 300);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getNoQuestLevelRewardMsg(player);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33974-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
L2Party party = killer.getParty();
|
||||
if (party != null)
|
||||
{
|
||||
party.getMembers().forEach(p -> onKill(npc, p));
|
||||
}
|
||||
else
|
||||
{
|
||||
onKill(npc, killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void onKill(L2Npc npc, L2PcInstance killer)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int killedBugbear = qs.getInt("killed_" + ABYSSAL_BERSERKER);
|
||||
if (killedBugbear < 100)
|
||||
{
|
||||
qs.set("killed_" + ABYSSAL_BERSERKER, ++killedBugbear);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
if (killedBugbear >= 100)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(ABYSSAL_BERSERKER, false, qs.getInt("killed_" + ABYSSAL_BERSERKER)));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Are you trying to enter the Dimensional Warp? It's not a place for people like you.<br>
|
||||
(Only characters Lv. 99 or above may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.<br>
|
||||
I know it won't be easy, but can you do me a favor?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10807_TheDimensionalWarpPart7 33974-02.htm">"What is it?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
In the early stages of a Dimensional Warp, <font color="LEVEL">Abyssal Binders</font> come out.<br>
|
||||
But we still don't have enough information about them. I need more information about them because people run into them the most.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10807_TheDimensionalWarpPart7 33974-03.htm">"How many do you need?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Can we start with 100?<br>
|
||||
They come out often, so it won't be too hard. Thank you!<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10807_TheDimensionalWarpPart7 33974-04.htm">"I didn't say yes yet..."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
Kill 100 <font color="LEVEL">Abyssal Binders</font> and come back to me.
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
We still don't have enough information. That's not enough.<br>
|
||||
Go kill more <font color="LEVEL">Abyssal Binders</font>.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Thank you. This will be enough.<br>
|
||||
Can You give me the information now?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10807_TheDimensionalWarpPart7 33974-07.html">"Yup"</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Good work. You're almost at the finish line.<br>
|
||||
The reward is better than the last time. Take it.
|
||||
</body></html>
|
@ -0,0 +1,179 @@
|
||||
/*
|
||||
* 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.Q10807_TheDimensionalWarpPart7;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
import com.l2jmobius.gameserver.model.L2Party;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
import quests.Q10806_TheDimensionalWarpPart6.Q10806_TheDimensionalWarpPart6;
|
||||
|
||||
/**
|
||||
* The Dimensional Warp, Part 7 (10807)
|
||||
* @URL https://l2wiki.com/The_Dimensional_Warp,_Part_7
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10807_TheDimensionalWarpPart7 extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int RESED = 33974;
|
||||
// Monsters
|
||||
private static final int ABYSSAL_BINDER = 23481;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int WARP_CRYSTAL = 39597;
|
||||
|
||||
public Q10807_TheDimensionalWarpPart7()
|
||||
{
|
||||
super(10807);
|
||||
addStartNpc(RESED);
|
||||
addTalkId(RESED);
|
||||
addKillId(ABYSSAL_BINDER);
|
||||
addCondMinLevel(MIN_LEVEL, "33974-00.htm");
|
||||
addCondCompletedQuest(Q10806_TheDimensionalWarpPart6.class.getSimpleName(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33974-02.htm":
|
||||
case "33974-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-07.html":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
if (player.getLevel() >= MIN_LEVEL)
|
||||
{
|
||||
addExpAndSp(player, 90422325000L, 0);
|
||||
giveItems(player, WARP_CRYSTAL, 300);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getNoQuestLevelRewardMsg(player);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33974-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
L2Party party = killer.getParty();
|
||||
if (party != null)
|
||||
{
|
||||
party.getMembers().forEach(p -> onKill(npc, p));
|
||||
}
|
||||
else
|
||||
{
|
||||
onKill(npc, killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void onKill(L2Npc npc, L2PcInstance killer)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int killedBugbear = qs.getInt("killed_" + ABYSSAL_BINDER);
|
||||
if (killedBugbear < 100)
|
||||
{
|
||||
qs.set("killed_" + ABYSSAL_BINDER, ++killedBugbear);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
if (killedBugbear >= 100)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(ABYSSAL_BINDER, false, qs.getInt("killed_" + ABYSSAL_BINDER)));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -53,12 +53,6 @@
|
||||
10747 The Hero's Journey: Pagan Temple
|
||||
10748 Mysterious Suggestion - 1
|
||||
10749 Mysterious Suggestion - 2
|
||||
10802 The Dimensional Warp, Part 2
|
||||
10803 The Dimensional Warp, Part 3
|
||||
10804 The Dimensional Warp, Part 4
|
||||
10805 The Dimensional Warp, Part 5
|
||||
10806 The Dimensional Warp, Part 6
|
||||
10807 The Dimensional Warp, Part 7
|
||||
10809 The Hero's Journey: Blazing Swamp
|
||||
10844 Bloody Battle - Seizing Supplies
|
||||
10845 Bloody Battle - Rescue the Smiths
|
||||
|
@ -41,7 +41,7 @@ public class Q10801_TheDimensionalWarpPart1 extends Quest
|
||||
private static final int RESED = 33974;
|
||||
// Monsters
|
||||
private static final int DIMENSIONAL_BUGBEAR = 23465;
|
||||
// other
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int DIMENSIONAL_BRACELET_STAGE_1 = 39747;
|
||||
private static final int WARP_CRYSTAL = 39597;
|
||||
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Are you trying to enter the Dimensional Warp? It's not a place for people like you.<br>
|
||||
(Only characters Lv. 99 or above may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.<br>
|
||||
I know it won't be easy, but can you do me a favor?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10802_TheDimensionalWarpPart2 33974-02.htm">"What is it?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
In the early stages of a Dimensional Warp, <font color="LEVEL">Dimensional Binders</font> come out.<br>
|
||||
But we still don't have enough information about them. I need more information about them because people run into them the most.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10802_TheDimensionalWarpPart2 33974-03.htm">"How many do you need?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Can we start with 100?<br>
|
||||
They come out often, so it won't be too hard. Thank you!<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10802_TheDimensionalWarpPart2 33974-04.htm">"I didn't say yes yet..."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
Kill 100 <font color="LEVEL">Dimensional Binders</font> and come back to me.
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
We still don't have enough information. That's not enough.<br>
|
||||
Go kill more <font color="LEVEL">Dimensional Binders</font>.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Thank you. This will be enough.<br>
|
||||
Can You give me the information now?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10802_TheDimensionalWarpPart2 33974-07.html">"Yup"</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Good work. You're almost at the finish line.<br>
|
||||
The reward is better than the last time. Take it.
|
||||
</body></html>
|
@ -0,0 +1,179 @@
|
||||
/*
|
||||
* 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.Q10802_TheDimensionalWarpPart2;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
import com.l2jmobius.gameserver.model.L2Party;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
|
||||
|
||||
/**
|
||||
* The Dimensional Warp, Part 2 (10802)
|
||||
* @URL https://l2wiki.com/The_Dimensional_Warp,_Part_2
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10802_TheDimensionalWarpPart2 extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int RESED = 33974;
|
||||
// Monsters
|
||||
private static final int DIMENSIONAL_BINDER = 23467;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int WARP_CRYSTAL = 39597;
|
||||
|
||||
public Q10802_TheDimensionalWarpPart2()
|
||||
{
|
||||
super(10802);
|
||||
addStartNpc(RESED);
|
||||
addTalkId(RESED);
|
||||
addKillId(DIMENSIONAL_BINDER);
|
||||
addCondMinLevel(MIN_LEVEL, "33974-00.htm");
|
||||
addCondCompletedQuest(Q10801_TheDimensionalWarpPart1.class.getSimpleName(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33974-02.htm":
|
||||
case "33974-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-07.html":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
if (player.getLevel() >= MIN_LEVEL)
|
||||
{
|
||||
addExpAndSp(player, 49380951086L, 0);
|
||||
giveItems(player, WARP_CRYSTAL, 300);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getNoQuestLevelRewardMsg(player);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33974-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
L2Party party = killer.getParty();
|
||||
if (party != null)
|
||||
{
|
||||
party.getMembers().forEach(p -> onKill(npc, p));
|
||||
}
|
||||
else
|
||||
{
|
||||
onKill(npc, killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void onKill(L2Npc npc, L2PcInstance killer)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int killedBugbear = qs.getInt("killed_" + DIMENSIONAL_BINDER);
|
||||
if (killedBugbear < 100)
|
||||
{
|
||||
qs.set("killed_" + DIMENSIONAL_BINDER, ++killedBugbear);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
if (killedBugbear >= 100)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(DIMENSIONAL_BINDER, false, qs.getInt("killed_" + DIMENSIONAL_BINDER)));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Are you trying to enter the Dimensional Warp? It's not a place for people like you.<br>
|
||||
(Only characters Lv. 99 or above may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.<br>
|
||||
I know it won't be easy, but can you do me a favor?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10803_TheDimensionalWarpPart3 33974-02.htm">"What is it?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
In the early stages of a Dimensional Warp, <font color="LEVEL">Unworldly Etins</font> come out.<br>
|
||||
But we still don't have enough information about them. I need more information about them because people run into them the most.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10803_TheDimensionalWarpPart3 33974-03.htm">"How many do you need?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Can we start with 100?<br>
|
||||
They come out often, so it won't be too hard. Thank you!<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10803_TheDimensionalWarpPart3 33974-04.htm">"I didn't say yes yet..."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
Kill 100 <font color="LEVEL">Unworldly Etins</font> and come back to me.
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
We still don't have enough information. That's not enough.<br>
|
||||
Go kill more <font color="LEVEL">Unworldly Etins</font>.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Thank you. This will be enough.<br>
|
||||
Can You give me the information now?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10803_TheDimensionalWarpPart3 33974-07.html">"Yup"</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Good work. You're almost at the finish line.<br>
|
||||
The reward is better than the last time. Take it.
|
||||
</body></html>
|
@ -0,0 +1,181 @@
|
||||
/*
|
||||
* 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.Q10803_TheDimensionalWarpPart3;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
import com.l2jmobius.gameserver.model.L2Party;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
|
||||
|
||||
/**
|
||||
* The Dimensional Warp, Part 3 (10803)
|
||||
* @URL https://l2wiki.com/The_Dimensional_Warp,_Part_3
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10803_TheDimensionalWarpPart3 extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int RESED = 33974;
|
||||
// Monsters
|
||||
private static final int UNWORDLY_ETIN = 23471;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int BLOODY_ETERNAL_ENHANCEMENT_STONE = 3556;
|
||||
private static final int WARP_CRYSTAL = 39597;
|
||||
|
||||
public Q10803_TheDimensionalWarpPart3()
|
||||
{
|
||||
super(10803);
|
||||
addStartNpc(RESED);
|
||||
addTalkId(RESED);
|
||||
addKillId(UNWORDLY_ETIN);
|
||||
addCondMinLevel(MIN_LEVEL, "33974-00.htm");
|
||||
addCondCompletedQuest(Q10802_TheDimensionalWarpPart2.class.getSimpleName(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33974-02.htm":
|
||||
case "33974-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-07.html":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
if (player.getLevel() >= MIN_LEVEL)
|
||||
{
|
||||
addExpAndSp(player, 54383249571L, 0);
|
||||
giveItems(player, BLOODY_ETERNAL_ENHANCEMENT_STONE, 1);
|
||||
giveItems(player, WARP_CRYSTAL, 300);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getNoQuestLevelRewardMsg(player);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33974-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
L2Party party = killer.getParty();
|
||||
if (party != null)
|
||||
{
|
||||
party.getMembers().forEach(p -> onKill(npc, p));
|
||||
}
|
||||
else
|
||||
{
|
||||
onKill(npc, killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void onKill(L2Npc npc, L2PcInstance killer)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int killedBugbear = qs.getInt("killed_" + UNWORDLY_ETIN);
|
||||
if (killedBugbear < 100)
|
||||
{
|
||||
qs.set("killed_" + UNWORDLY_ETIN, ++killedBugbear);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
if (killedBugbear >= 100)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(UNWORDLY_ETIN, false, qs.getInt("killed_" + UNWORDLY_ETIN)));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Are you trying to enter the Dimensional Warp? It's not a place for people like you.<br>
|
||||
(Only characters Lv. 99 or above may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.<br>
|
||||
I know it won't be easy, but can you do me a favor?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10804_TheDimensionalWarpPart4 33974-02.htm">"What is it?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
In the early stages of a Dimensional Warp, <font color="LEVEL">Unworldly Golems</font> come out.<br>
|
||||
But we still don't have enough information about them. I need more information about them because people run into them the most.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10804_TheDimensionalWarpPart4 33974-03.htm">"How many do you need?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Can we start with 100?<br>
|
||||
They come out often, so it won't be too hard. Thank you!<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10804_TheDimensionalWarpPart4 33974-04.htm">"I didn't say yes yet..."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
Kill 100 <font color="LEVEL">Unworldly Golems</font> and come back to me.
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
We still don't have enough information. That's not enough.<br>
|
||||
Go kill more <font color="LEVEL">Unworldly Golems</font>.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Thank you. This will be enough.<br>
|
||||
Can You give me the information now?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10804_TheDimensionalWarpPart4 33974-07.html">"Yup"</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Good work. You're almost at the finish line.<br>
|
||||
The reward is better than the last time. Take it.
|
||||
</body></html>
|
@ -0,0 +1,181 @@
|
||||
/*
|
||||
* 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.Q10804_TheDimensionalWarpPart4;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
import com.l2jmobius.gameserver.model.L2Party;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
|
||||
|
||||
/**
|
||||
* The Dimensional Warp, Part 4 (10804)
|
||||
* @URL https://l2wiki.com/The_Dimensional_Warp,_Part_4
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10804_TheDimensionalWarpPart4 extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int RESED = 33974;
|
||||
// Monsters
|
||||
private static final int UNWORLDLY_GOLEM = 23474;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
|
||||
private static final int WARP_CRYSTAL = 39597;
|
||||
|
||||
public Q10804_TheDimensionalWarpPart4()
|
||||
{
|
||||
super(10804);
|
||||
addStartNpc(RESED);
|
||||
addTalkId(RESED);
|
||||
addKillId(UNWORLDLY_GOLEM);
|
||||
addCondMinLevel(MIN_LEVEL, "33974-00.htm");
|
||||
addCondCompletedQuest(Q10803_TheDimensionalWarpPart3.class.getSimpleName(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33974-02.htm":
|
||||
case "33974-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-07.html":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
if (player.getLevel() >= MIN_LEVEL)
|
||||
{
|
||||
addExpAndSp(player, 60425832857L, 0);
|
||||
giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
|
||||
giveItems(player, WARP_CRYSTAL, 300);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getNoQuestLevelRewardMsg(player);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33974-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
L2Party party = killer.getParty();
|
||||
if (party != null)
|
||||
{
|
||||
party.getMembers().forEach(p -> onKill(npc, p));
|
||||
}
|
||||
else
|
||||
{
|
||||
onKill(npc, killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void onKill(L2Npc npc, L2PcInstance killer)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int killedBugbear = qs.getInt("killed_" + UNWORLDLY_GOLEM);
|
||||
if (killedBugbear < 100)
|
||||
{
|
||||
qs.set("killed_" + UNWORLDLY_GOLEM, ++killedBugbear);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
if (killedBugbear >= 100)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(UNWORLDLY_GOLEM, false, qs.getInt("killed_" + UNWORLDLY_GOLEM)));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Are you trying to enter the Dimensional Warp? It's not a place for people like you.<br>
|
||||
(Only characters Lv. 99 or above may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.<br>
|
||||
I know it won't be easy, but can you do me a favor?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10805_TheDimensionalWarpPart5 33974-02.htm">"What is it?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
In the early stages of a Dimensional Warp, <font color="LEVEL">Abyssal Golems</font> come out.<br>
|
||||
But we still don't have enough information about them. I need more information about them because people run into them the most.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10805_TheDimensionalWarpPart5 33974-03.htm">"How many do you need?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Can we start with 100?<br>
|
||||
They come out often, so it won't be too hard. Thank you!<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10805_TheDimensionalWarpPart5 33974-04.htm">"I didn't say yes yet..."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
Kill 100 <font color="LEVEL">Abyssal Golems</font> and come back to me.
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
We still don't have enough information. That's not enough.<br>
|
||||
Go kill more <font color="LEVEL">Abyssal Golems</font>.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Thank you. This will be enough.<br>
|
||||
Can You give me the information now?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10805_TheDimensionalWarpPart5 33974-07.html">"Yup"</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Good work. You're almost at the finish line.<br>
|
||||
The reward is better than the last time. Take it.
|
||||
</body></html>
|
@ -0,0 +1,181 @@
|
||||
/*
|
||||
* 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.Q10805_TheDimensionalWarpPart5;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
import com.l2jmobius.gameserver.model.L2Party;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
|
||||
|
||||
/**
|
||||
* The Dimensional Warp, Part 5 (10805)
|
||||
* @URL https://l2wiki.com/The_Dimensional_Warp,_Part_5
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q10805_TheDimensionalWarpPart5 extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int RESED = 33974;
|
||||
// Monsters
|
||||
private static final int ABYSSAL_GOLEM = 23483;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
|
||||
private static final int WARP_CRYSTAL = 39597;
|
||||
|
||||
public Q10805_TheDimensionalWarpPart5()
|
||||
{
|
||||
super(10805);
|
||||
addStartNpc(RESED);
|
||||
addTalkId(RESED);
|
||||
addKillId(ABYSSAL_GOLEM);
|
||||
addCondMinLevel(MIN_LEVEL, "33974-00.htm");
|
||||
addCondCompletedQuest(Q10804_TheDimensionalWarpPart4.class.getSimpleName(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33974-02.htm":
|
||||
case "33974-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33974-07.html":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
if (player.getLevel() >= MIN_LEVEL)
|
||||
{
|
||||
addExpAndSp(player, 66530730240L, 0);
|
||||
giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
|
||||
giveItems(player, WARP_CRYSTAL, 300);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getNoQuestLevelRewardMsg(player);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33974-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
L2Party party = killer.getParty();
|
||||
if (party != null)
|
||||
{
|
||||
party.getMembers().forEach(p -> onKill(npc, p));
|
||||
}
|
||||
else
|
||||
{
|
||||
onKill(npc, killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
private void onKill(L2Npc npc, L2PcInstance killer)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
|
||||
if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int killedBugbear = qs.getInt("killed_" + ABYSSAL_GOLEM);
|
||||
if (killedBugbear < 100)
|
||||
{
|
||||
qs.set("killed_" + ABYSSAL_GOLEM, ++killedBugbear);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
if (killedBugbear >= 100)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(ABYSSAL_GOLEM, false, qs.getInt("killed_" + ABYSSAL_GOLEM)));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
Are you trying to enter the Dimensional Warp? It's not a place for people like you.<br>
|
||||
(Only characters Lv. 99 or above may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.<br>
|
||||
I know it won't be easy, but can you do me a favor?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10806_TheDimensionalWarpPart6 33974-02.htm">"What is it?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
In the early stages of a Dimensional Warp, <font color="LEVEL">Abyssal Berserkers</font> come out.<br>
|
||||
But we still don't have enough information about them. I need more information about them because people run into them the most.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10806_TheDimensionalWarpPart6 33974-03.htm">"How many do you need?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Resed:<br>
|
||||
Can we start with 100?<br>
|
||||
They come out often, so it won't be too hard. Thank you!<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10806_TheDimensionalWarpPart6 33974-04.htm">"I didn't say yes yet..."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Resed:<br>
|
||||
Kill 100 <font color="LEVEL">Abyssal Berserkers</font> and come back to me.
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Resed:<br>
|
||||
We still don't have enough information. That's not enough.<br>
|
||||
Go kill more <font color="LEVEL">Abyssal Berserkers</font>.
|
||||
</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