Quest Blackbird's Name Value (10839).

Contributed by gigilo1968.
This commit is contained in:
MobiusDev
2017-01-06 10:25:23 +00:00
parent 277fc0df3c
commit 1c8f1e2148
13 changed files with 227 additions and 2 deletions

View File

@@ -122,7 +122,6 @@
10806 The Dimensional Warp, Part 6 10806 The Dimensional Warp, Part 6
10807 The Dimensional Warp, Part 7 10807 The Dimensional Warp, Part 7
10809 The Hero's Journey: Blazing Swamp 10809 The Hero's Journey: Blazing Swamp
10839 Blackbird's Name Value
10840 Time to Recover 10840 Time to Recover
10841 Deep Inside Atelia Fortress 10841 Deep Inside Atelia Fortress
10843 Anomaly in the Enchanted Valley 10843 Anomaly in the Enchanted Valley

View File

@@ -0,0 +1,5 @@
<html><body>Blackbird Clan Member Laffian:<br>
What brings you to such a dangerous place?<br>
You shouldn't be here. Go back.<br>
(Only characters above Lv. 101.)
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Blackbird Clan Member Laffian:<br>
Huh? Are you an ally?<br>
That seal... Isn't it Elikia's? Well I guess you are an ally.<br>
Did Elikia send you?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10839_BlackbirdsNameValue 34065-02.htm">"Yes."</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Blackbird Clan Member Laffian:<br>
Elikia must have been in a hurry. <br>
Well, I'm doing fine. Of course I didn't completly recover from my time with the Embryo, but I should be able to carry out my revenge soon.<br>
Elise is pretty talented. I was able to recover thanks to her.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10839_BlackbirdsNameValue 34065-04.htm">"Revenge?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Blackbird Clan Member Laffian:<br>
Why are you talking to me?<br>
I don't know you... Don't you even try to trick me.<br>
(Quest may only be undertaken by characters with the Blackbird Seal.)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Blackbird Clan Member Laffian:<br>
We have to get our revenge!<br>
They dared set up a trap for me, and made me rely on Elise! Unforgivable!<br>
Won't you help me get my revenge?<br><Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10839_BlackbirdsNameValue 34065-05.htm">"How can I help?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Blackbird Clan Member Laffian:<br>
As long as you have the Blackbird Seal, you are part of us. We have to honor that name!<br>
Let's make them tremble at the mere mention of the Blackbird clan's name.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10839_BlackbirdsNameValue 34065-06.htm">"What should we do?"</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Blackbird Clan Member Laffian:<br>
Good that you can make quick decisions. No wonder Elikia trusts you.<br>
Let's get rid of the Embryo here. Alright? Kill <font color="LEVEL">200 Atelia Passionate Soldiers, Atelia Elite Captains, Atelia High Pirests, and Fortress Dark Wizards</font>. That should be enough.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Blackbird Clan Member Laffian:<br>
Not enough. You think this is enough to honor our name?<br>
Kill <font color="LEVEL">200 Atelia Passionate Soldiers, Atelia Elite Captains, Atelia High Pirests, and Fortress Dark Wizards</font>.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Blackbird Clan Member Laffian:<br>
Already done? Great!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10839_BlackbirdsNameValue 34065-09.html">"I know."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Blackbird Clan Member Laffian:<br>
Great! No wonder Elikia sent you here.<br>
But this isn't enough. I'll stay here until I'm satisfied. Elikia and Leona might be worried about me, so can you tell them I'm alright? Here's a letter. They'll know I'm safe with this.
</body></html>

View File

@@ -0,0 +1,176 @@
/*
* 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.Q10839_BlackbirdsNameValue;
import java.util.HashSet;
import java.util.Set;
import com.l2jmobius.gameserver.enums.QuestSound;
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 com.l2jmobius.gameserver.network.NpcStringId;
/**
* Blackbird's Name Value (10839)
* @URL https://l2wiki.com/Blackbird%27s_Name_Value
* @author Gigi
*/
public final class Q10839_BlackbirdsNameValue extends Quest
{
// NPC
private static final int LAFFIAN = 34065;
private static final int[] MONSTERS =
{
23512, // Atelia High Priest
23509, // Fortress Dark Wizard
23507, // Atelia Passionate Soldier
23508 // Atelia Elite Captain
};
// Items
private static final int BLACKBIRD_REPORT_LAFFIAN = 46136;
private static final int BLACKBIRD_SEAL = 46132;
// Misc
private static final int MIN_LEVEL = 101;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10839_BlackbirdsNameValue()
{
super(10839);
addStartNpc(LAFFIAN);
addTalkId(LAFFIAN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "34065-00.htm");
}
@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 "34065-02.htm":
case "34065-04.htm":
case "34065-05.htm":
{
htmltext = event;
break;
}
case "34065-06.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "34065-09.html":
{
giveItems(player, BLACKBIRD_REPORT_LAFFIAN, 1);
addExpAndSp(player, 12103836150L, 2904900);
qs.exitQuest(false, true);
htmltext = event;
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:
{
if (!hasQuestItems(player, BLACKBIRD_SEAL))
{
htmltext = "34065-03.htm";
break;
}
htmltext = "34065-01.htm";
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "34065-07.html";
}
else
{
htmltext = "34065-08.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
int count = qs.getInt(KILL_COUNT_VAR);
qs.set(KILL_COUNT_VAR, ++count);
if (count >= 200)
{
qs.setCond(2, true);
}
else
{
sendNpcLogList(killer);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR);
if (killCount > 0)
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_THE_EMBRYO2, killCount));
return holder;
}
}
return super.getNpcLogList(player);
}
}

View File

@@ -416,6 +416,7 @@ import quests.Q10833_PutTheQueenOfSpiritsToSleep.Q10833_PutTheQueenOfSpiritsToSl
import quests.Q10836_DisappearedClanMember.Q10836_DisappearedClanMember; import quests.Q10836_DisappearedClanMember.Q10836_DisappearedClanMember;
import quests.Q10837_LookingForTheBlackbirdClanMember.Q10837_LookingForTheBlackbirdClanMember; import quests.Q10837_LookingForTheBlackbirdClanMember.Q10837_LookingForTheBlackbirdClanMember;
import quests.Q10838_TheReasonForNotBeingAbleToGetOut.Q10838_TheReasonForNotBeingAbleToGetOut; import quests.Q10838_TheReasonForNotBeingAbleToGetOut.Q10838_TheReasonForNotBeingAbleToGetOut;
import quests.Q10839_BlackbirdsNameValue.Q10839_BlackbirdsNameValue;
/** /**
* @author NosBit * @author NosBit
@@ -822,7 +823,8 @@ public class QuestMasterHandler
Q10833_PutTheQueenOfSpiritsToSleep.class, Q10833_PutTheQueenOfSpiritsToSleep.class,
Q10836_DisappearedClanMember.class, Q10836_DisappearedClanMember.class,
Q10837_LookingForTheBlackbirdClanMember.class, Q10837_LookingForTheBlackbirdClanMember.class,
Q10838_TheReasonForNotBeingAbleToGetOut.class Q10838_TheReasonForNotBeingAbleToGetOut.class,
Q10839_BlackbirdsNameValue.class
}; };
public static void main(String[] args) public static void main(String[] args)