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
10807 The Dimensional Warp, Part 7
10809 The Hero's Journey: Blazing Swamp
10839 Blackbird's Name Value
10840 Time to Recover
10841 Deep Inside Atelia Fortress
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.Q10837_LookingForTheBlackbirdClanMember.Q10837_LookingForTheBlackbirdClanMember;
import quests.Q10838_TheReasonForNotBeingAbleToGetOut.Q10838_TheReasonForNotBeingAbleToGetOut;
import quests.Q10839_BlackbirdsNameValue.Q10839_BlackbirdsNameValue;
/**
* @author NosBit
@ -822,7 +823,8 @@ public class QuestMasterHandler
Q10833_PutTheQueenOfSpiritsToSleep.class,
Q10836_DisappearedClanMember.class,
Q10837_LookingForTheBlackbirdClanMember.class,
Q10838_TheReasonForNotBeingAbleToGetOut.class
Q10838_TheReasonForNotBeingAbleToGetOut.class,
Q10839_BlackbirdsNameValue.class
};
public static void main(String[] args)