Merged with released L2J-Unity files.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<html><body>Captain Bathis:<br>
|
||||
Did Guard Babenco send you?<br>
|
||||
Hmm... You don't have very good armor, do you? Oh well, I do have to commend you for your bravery!<br>
|
||||
This is a critical and potentially very dangerous mission! You must listen carefully!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00039_RedEyedInvaders 30332-02.html">"I'm listening."</Button>
|
||||
<html><body>Captain Bathis:<br>
|
||||
Did Guard Babenco send you?<br>
|
||||
Hmm... You don't have very good armor, do you? Oh well, I do have to commend you for your bravery!<br>
|
||||
This is a critical and potentially very dangerous mission! You must listen carefully!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00039_RedEyedInvaders 30332-02.html"> "I'm listening."</Button>
|
||||
</body></html>
|
@@ -1,8 +1,8 @@
|
||||
<html><body>Captain Bathis:<br>
|
||||
The mission is simple:<br>
|
||||
Find the Maille Lizardmen on the plains west of the village and kill them!<br>
|
||||
Their advance unit consists of <font color="LEVEL">Maille Lizardmen, Maille Lizardman Scouts, and Maille Lizardman Guards</font>. You must destroy them and stop their advance.<br>
|
||||
All Maille Lizardman wear a <font color="LEVEL">Bone Totem Necklace</font> into battle. Bring me these Necklaces and I'll reward you based how many you bring back. You'll find <font color="LEVEL">Black Bone Totem Necklaces</font> and <font color="LEVEL">Red Bone Totem Necklaces</font>. Bring me <font color="LEVEL">One-hundred</font> of each.<br>
|
||||
Compared with other tribes, the Maille Lizardmen are physically weak. But this is more than made up for by their superior intelligence. When attacking them, you mustn't let them surround you! I've heard they have giant spiders fighting alongside them, so watch out for them!<br>
|
||||
As I said, you'll find them on the <font color="LEVEL">plains west of the village</font>. Good hunting!
|
||||
<html><body>Captain Bathis:<br>
|
||||
The mission is simple:<br>
|
||||
Find the Maille Lizardmen on the plains west of the village and kill them! <br>
|
||||
Their advance unit consists of <font color="LEVEL">Maille Lizardmen, Maille Lizardman Scouts, and Maille Lizardman Guards</font>. You must destroy them and stop their advance.<br>
|
||||
All Maille Lizardman wear a <font color="LEVEL">Bone Totem Necklace</font> into battle. Bring me these Necklaces and I'll reward you based how many you bring back. You'll find <font color="LEVEL">Black Bone Totem Necklaces</font> and <font color="LEVEL">Red Bone Totem Necklaces</font>. Bring me <font color="LEVEL">One-hundred</font> of each.<br>
|
||||
Compared with other tribes, the Maille Lizardmen are physically weak. But this is more than made up for by their superior intelligence. When attacking them, you mustn't let them surround you! I've heard they have giant spiders fighting alongside them, so watch out for them!<br>
|
||||
As I said, you'll find them on the <font color="LEVEL">plains west of the village</font>. Good hunting!<br>
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><body>Captain Bathis:<br>
|
||||
The battle continues! The lizardmen may attack at any moment! Drop off your delivery and return to the battlefield immediately!<br>
|
||||
Don't forget to bring back some war trophies! I need <font color="LEVEL">100 Red Totem Necklaces</font> and <font color="LEVEL">100 black Totem Necklaces</font>. The Maille Lizardmen can be found on the plains west of the village.
|
||||
<html><body>Captain Bathis:<br>
|
||||
The battle continues! The lizardmen may attack at any moment! Drop off your delivery and return to the battlefield immediately!<br>
|
||||
Don't forget to bring back some war trophies! I need <font color="LEVEL">100 Red Totem Necklaces</font> and <font color="LEVEL">100 black Totem Necklaces</font>. The Maille Lizardmen can be found on the plains west of the village.<br>
|
||||
</body></html>
|
@@ -1,5 +1,5 @@
|
||||
<html><body>Captain Bathis:<br>
|
||||
Good job! We won't have to worry about them for a while!<br>
|
||||
We were successful that time, but reports from the battlefield of giant, deadly arachnids are reason for concern... Would you help us get rid of these horrible spiders?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00039_RedEyedInvaders 30332-05.html">"Well, I suppose I'll do it."</Button>
|
||||
<html><body>Captain Bathis:<br>
|
||||
Good job! We won't have to worry about them for a while!<br>
|
||||
We were successful that time, but reports from the battlefield of giant, deadly arachnids are reason for concern... Would you help us get rid of these horrible spiders?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00039_RedEyedInvaders 30332-05.html">"Well, I suppose I'll do it."</Button>
|
||||
</body></html>
|
@@ -1,5 +1,5 @@
|
||||
<html><body>Captain Bathis:<br>
|
||||
I realize you just completed a difficult task, but we still need your help!<br>
|
||||
We must discover the <font color="LEVEL">connection between Maille Lizardmen and the Araneids</font>. They've been fighting alongside the lizardmen! This is unheard of!<br>
|
||||
Return to the <font color="LEVEL">Maille Lizardman Barracks</font> and investigate this unholy alliance! You should be able to find out more if you kill <font color="LEVEL">Maille Lizardman Scouts and Guards</font> and the <font color="LEVEL"> Giant Araneids</font>.
|
||||
<html><body>Captain Bathis:<br>
|
||||
I realize you just completed a difficult task, but we still need your help!<br>
|
||||
We must discover the <font color="LEVEL">connection between Maille Lizardmen and the Araneids</font>. They've been fighting alongside the lizardmen! This is unheard of!<br>
|
||||
Return to the <font color="LEVEL">Maille Lizardman Barracks</font> and investigate this unholy alliance! You should be able to find out more if you kill <font color="LEVEL">Maille Lizardman Scouts and Guards</font> and the <font color="LEVEL"> Giant Araneids</font>.
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><body>Captain Bathis:<br>
|
||||
The battle continues! The lizardmen may attack at any moment! Drop off your delivery and return to the battlefield immediately!<br>
|
||||
Don't forget to bring back some war trophies! I need <font color="LEVEL">100 Red Totem Necklaces</font> and <font color="LEVEL">100 black Totem Necklaces</font>. The Maille Lizardmen can be found on the plains west of the village.
|
||||
<html><body>Captain Bathis:<br>
|
||||
The battle continues! The lizardmen may attack at any moment! Drop off your delivery and return to the battlefield immediately!<br>
|
||||
Don't forget to bring back some war trophies! I need <font color="LEVEL">100 Red Totem Necklaces</font> and <font color="LEVEL">100 black Totem Necklaces</font>. The Maille Lizardmen can be found on the plains west of the village.
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><body>Captain Bathis:<br>
|
||||
Thank you for your hard work, but we still need more items to fully investigate this matter.<br>
|
||||
I need <font color="LEVEL">30 mysterious Incense Pouches</font> and <font color="LEVEL">30 five-colored beads</font>. Don't let me down!
|
||||
<html><body>Captain Bathis:<br>
|
||||
Thank you for your hard work, but we still need more items to fully investigate this matter.<br>
|
||||
I need <font color="LEVEL">30 mysterious Incense Pouches</font> and <font color="LEVEL">30 five-colored beads</font>. Don't let me down!
|
||||
</body></html>
|
@@ -1,5 +1,5 @@
|
||||
<html><body>Captain Bathis:<br>
|
||||
You've proven the conspiracy between the Maille Lizardmen and the giant spiders! Magister Rohmer attributes it to the lizardmen's magic. This matter must be investigated further!<br>
|
||||
We'll get to the bottom of this eventually!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00039_RedEyedInvaders 30332-09.html">"Is my mission over?"</Button>
|
||||
<html><body>Captain Bathis:<br>
|
||||
You've proven the conspiracy between the Maille Lizardmen and the giant spiders! Magister Rohmer attributes it to the lizardmen's magic. This matter must be investigated further!<br>
|
||||
We'll get to the bottom of this eventually!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00039_RedEyedInvaders 30332-09.html">"Is my mission over?"</Button>
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><body>Captain Bathis:<br>
|
||||
Thank you very much! Now we have enough ingredients for Magister Rohmer to determine the roots of this conspiracy! We couldn't have done it without you!<br>
|
||||
The future of Gludio is secure in the hands of noble warriors like you. Please accept this humble reward as a token of our appreciation!<br>
|
||||
<html><body>Captain Bathis:<br>
|
||||
Thank you very much! Now we have enough ingredients for Magister Rohmer to determine the roots of this conspiracy! We couldn't have done it without you!<br>
|
||||
The future of Gludio is secure in the hands of noble warriors like you. Please accept this humble reward as a token of our appreciation!<br>
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><body>Captain Bathis:<br>
|
||||
Thank you for your hard work, but we still need some more items to fully investigate this matter.<br>
|
||||
Bring me <font color="LEVEL">30 mysterious Incense Pouches</font> and <font color="LEVEL">30 five-colored beads</font>. I'm counting on you!
|
||||
<html><body>Captain Bathis:<br>
|
||||
Thank you for your hard work, but we still need some more items to fully investigate this matter.<br>
|
||||
Bring me <font color="LEVEL">30 mysterious Incense Pouches</font> and <font color="LEVEL">30 five-colored beads</font>. I'm counting on you!
|
||||
</body></html>
|
@@ -1,5 +1,6 @@
|
||||
<html><body>Guard Babenco:<br>
|
||||
I just received a report that a large army of savage <font color="LEVEL">Maille Lizardmen</font> is gathering in the western section of the Town of Gludio. They're not satisfied staying on the plains.<br><font color="LEVEL">Captain Bathis</font> is recruiting militiamen in Gludio, and we need all the help we can get.<br>
|
||||
You seem worthy. Would you join us?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00039_RedEyedInvaders 30334-03.htm">"I'll help!"</Button>
|
||||
<html><<body>Guard Babenco:<br>
|
||||
I just received a report that a large army of savage <font color="LEVEL">Maille Lizardmen</font> is gathering in the western section of the Town of Gludio. They're not satisfied staying on the plains.<br>
|
||||
<font color="LEVEL">Captain Bathis</font> is recruiting militiamen in Gludio, and we need all the help we can get.<br>
|
||||
You seem worthy. Would you join us?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00039_RedEyedInvaders 30334-03.htm">"I'll help!"</Button>
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><body>Guard Babenco:<br>
|
||||
I just received a report that a large army of savage <font color="LEVEL">Maille Lizardmen</font> is gathering in the western section of the Town of Gludio. They're not satisfied staying on the plains.<br><font color="LEVEL">Captain Bathis</font> is recruiting militiamen in Gludio, and we need help, but this is too dangerous for beginners.<br>
|
||||
(Only a character of level 20 or above can undertake this quest.)
|
||||
<html><body>Guard Babenco:<br>
|
||||
I just received a report that a large army of savage <font color="LEVEL">Maille Lizardmen</font> is gathering in the western section of the Town of Gludio. They're not satisfied staying on the plains.<br><font color="LEVEL">Captain Bathis</font> is recruiting militiamen in Gludio, and we need help, but this is too dangerous for beginners.<br>
|
||||
(Only a character of level 20 or above can undertake this quest.)
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><body>Guard Babenco:<br>
|
||||
Thanks for your help. I'm honored.<br>
|
||||
Report to <font color="LEVEL">Captain Bathis</font> for your orders. He's at the <font color="LEVEL">northern entrance of the Town of Gludio</font>.
|
||||
<html><body>Guard Babenco:<br>
|
||||
Thanks for your help. I'm honored.<br>
|
||||
Report to <font color="LEVEL">Captain Bathis</font> for your orders. He's at the <font color="LEVEL">northern entrance of the Town of Gludio</font>.
|
||||
</body></html>
|
@@ -1,3 +1,3 @@
|
||||
<html><body>Guard Babenco:<br>
|
||||
Report to <font color="LEVEL">Captain Bathis</font> for your orders. He's at the <font color="LEVEL">northern entrance of the Town of Gludio</font>.
|
||||
<html><body>Guard Babenco:<br>
|
||||
Report to <font color="LEVEL">Captain Bathis</font> for your orders. He's at the <font color="LEVEL">northern entrance of the Town of Gludio</font>.
|
||||
</body></html>
|
@@ -1,255 +1,272 @@
|
||||
/*
|
||||
* 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.Q00039_RedEyedInvaders;
|
||||
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
|
||||
/**
|
||||
* Red-eyed Invaders (39)
|
||||
* @author janiko
|
||||
*/
|
||||
public final class Q00039_RedEyedInvaders extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int CAPTAIN_BATHIA = 30332;
|
||||
private static final int GUARD_BABENCO = 30334;
|
||||
// Monsters
|
||||
private static final int MALE_LIZARDMAN = 20919;
|
||||
private static final int MALE_LIZARDMAN_SCOUT = 20920;
|
||||
private static final int MALE_LIZARDMAN_GUARD = 20921;
|
||||
private static final int GIANT_ARANE = 20925;
|
||||
// Items
|
||||
private static final ItemHolder LIZ_NECKLACE_A = new ItemHolder(7178, 100);
|
||||
private static final ItemHolder LIZ_NECKLACE_B = new ItemHolder(7179, 100);
|
||||
private static final ItemHolder LIZ_PERFUME = new ItemHolder(7180, 30);
|
||||
private static final ItemHolder LIZ_GEM = new ItemHolder(7181, 30);
|
||||
// Rewards
|
||||
private static final ItemHolder GREEN_HIGH_LURE = new ItemHolder(6521, 60);
|
||||
private static final ItemHolder BABYDUCK_ROD = new ItemHolder(6529, 1);
|
||||
private static final ItemHolder FISHING_SHOT_NONE = new ItemHolder(6535, 500);
|
||||
// Misc
|
||||
private static final int MIN_LVL = 20;
|
||||
|
||||
public Q00039_RedEyedInvaders()
|
||||
{
|
||||
super(39, Q00039_RedEyedInvaders.class.getSimpleName(), "Red-eyed Invaders");
|
||||
addStartNpc(GUARD_BABENCO);
|
||||
addTalkId(GUARD_BABENCO, CAPTAIN_BATHIA);
|
||||
addKillId(MALE_LIZARDMAN_GUARD, MALE_LIZARDMAN_SCOUT, MALE_LIZARDMAN, GIANT_ARANE);
|
||||
registerQuestItems(LIZ_NECKLACE_A.getId(), LIZ_NECKLACE_B.getId(), LIZ_PERFUME.getId(), LIZ_GEM.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
String htmltext = null;
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
switch (event)
|
||||
{
|
||||
case "30334-03.htm":
|
||||
{
|
||||
if (qs.isCreated())
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30332-02.html":
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30332-05.html":
|
||||
{
|
||||
if (qs.isCond(3))
|
||||
{
|
||||
if (hasAllItems(player, true, LIZ_NECKLACE_A, LIZ_NECKLACE_B))
|
||||
{
|
||||
qs.setCond(4, true);
|
||||
takeAllItems(player, LIZ_NECKLACE_A, LIZ_NECKLACE_B);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30332-06.html";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30332-09.html":
|
||||
{
|
||||
if (qs.isCond(5))
|
||||
{
|
||||
if (hasAllItems(player, true, LIZ_PERFUME, LIZ_GEM))
|
||||
{
|
||||
rewardItems(player, GREEN_HIGH_LURE);
|
||||
rewardItems(player, BABYDUCK_ROD);
|
||||
rewardItems(player, FISHING_SHOT_NONE);
|
||||
addExpAndSp(player, 62366, 2783);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30332-10.html";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
final QuestState qs = getQuestState(talker, true);
|
||||
String htmltext = getNoQuestMsg(talker);
|
||||
switch (npc.getId())
|
||||
{
|
||||
case CAPTAIN_BATHIA:
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
htmltext = "30332-01.html";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
htmltext = "30332-03.html";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
htmltext = "30332-04.html";
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
htmltext = "30332-07.html";
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
htmltext = "30332-08.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case GUARD_BABENCO:
|
||||
{
|
||||
if (qs.isCreated())
|
||||
{
|
||||
htmltext = (talker.getLevel() >= MIN_LVL) ? "30334-01.htm" : "30334-02.htm";
|
||||
}
|
||||
else if (qs.isStarted() && qs.isCond(1))
|
||||
{
|
||||
htmltext = "30334-04.html";
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(talker);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case MALE_LIZARDMAN:
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, 2, 3, npc);
|
||||
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, LIZ_NECKLACE_A.getId(), 1, LIZ_NECKLACE_A.getCount(), 0.5, true) && hasItem(qs.getPlayer(), LIZ_NECKLACE_B))
|
||||
{
|
||||
qs.setCond(3);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MALE_LIZARDMAN_SCOUT:
|
||||
{
|
||||
if (getRandomBoolean())
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, 2, 3, npc);
|
||||
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, LIZ_NECKLACE_A.getId(), 1, LIZ_NECKLACE_A.getCount(), 0.5, true) && hasItem(qs.getPlayer(), LIZ_NECKLACE_B))
|
||||
{
|
||||
qs.setCond(3);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, 4, 3, npc);
|
||||
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, LIZ_PERFUME.getId(), 1, LIZ_PERFUME.getCount(), 0.25, true) && hasItem(qs.getPlayer(), LIZ_GEM))
|
||||
{
|
||||
qs.setCond(5);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MALE_LIZARDMAN_GUARD:
|
||||
{
|
||||
if (getRandomBoolean())
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, 2, 3, npc);
|
||||
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, LIZ_NECKLACE_B.getId(), 1, LIZ_NECKLACE_B.getCount(), 0.5, true) && hasItem(qs.getPlayer(), LIZ_NECKLACE_A))
|
||||
{
|
||||
qs.setCond(3);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, 4, 3, npc);
|
||||
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, LIZ_PERFUME.getId(), 1, LIZ_PERFUME.getCount(), 0.3, true) && hasItem(qs.getPlayer(), LIZ_GEM))
|
||||
{
|
||||
qs.setCond(5);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case GIANT_ARANE:
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, 4, 3, npc);
|
||||
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, LIZ_GEM.getId(), 1, LIZ_GEM.getCount(), 0.3, true) && hasItem(qs.getPlayer(), LIZ_PERFUME))
|
||||
{
|
||||
qs.setCond(5);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
/*
|
||||
* 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.Q00039_RedEyedInvaders;
|
||||
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
|
||||
/**
|
||||
* Red-eyed Invaders (39)
|
||||
* @author janiko
|
||||
*/
|
||||
public final class Q00039_RedEyedInvaders extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int CAPTAIN_BATHIS = 30332;
|
||||
private static final int GUARD_BABENCO = 30334;
|
||||
// Monsters
|
||||
private static final int MALE_LIZARDMAN = 20919;
|
||||
private static final int MALE_LIZARDMAN_SCOUT = 20920;
|
||||
private static final int MALE_LIZARDMAN_GUARD = 20921;
|
||||
private static final int GIANT_ARANE = 20925;
|
||||
// Items
|
||||
private static final ItemHolder LIZ_NECKLACE_A = new ItemHolder(7178, 100);
|
||||
private static final ItemHolder LIZ_NECKLACE_B = new ItemHolder(7179, 100);
|
||||
private static final ItemHolder LIZ_PERFUME = new ItemHolder(7180, 30);
|
||||
private static final ItemHolder LIZ_GEM = new ItemHolder(7181, 30);
|
||||
// Rewards
|
||||
private static final ItemHolder CORRODED_GREEN_BAIT = new ItemHolder(6521, 60);
|
||||
private static final ItemHolder CORRODED_BABYDUCK_ROD = new ItemHolder(6529, 1);
|
||||
private static final ItemHolder CORRODED_FISHING_SHOT = new ItemHolder(6535, 500);
|
||||
// Misc
|
||||
private static final int MIN_LVL = 20;
|
||||
|
||||
public Q00039_RedEyedInvaders()
|
||||
{
|
||||
super(39);
|
||||
addStartNpc(GUARD_BABENCO);
|
||||
addTalkId(GUARD_BABENCO, CAPTAIN_BATHIS);
|
||||
addKillId(MALE_LIZARDMAN_GUARD, MALE_LIZARDMAN_SCOUT, MALE_LIZARDMAN, GIANT_ARANE);
|
||||
registerQuestItems(LIZ_NECKLACE_A.getId(), LIZ_NECKLACE_B.getId(), LIZ_PERFUME.getId(), LIZ_GEM.getId());
|
||||
addCondMinLevel(MIN_LVL, "30334-02.htm");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
String htmltext = null;
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "30334-03.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30332-02.html":
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30332-05.html":
|
||||
{
|
||||
if (qs.isCond(3))
|
||||
{
|
||||
if (hasAllItems(player, true, LIZ_NECKLACE_A, LIZ_NECKLACE_B))
|
||||
{
|
||||
qs.setCond(4, true);
|
||||
takeAllItems(player, LIZ_NECKLACE_A, LIZ_NECKLACE_B);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30332-06.html";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30332-09.html":
|
||||
{
|
||||
if (qs.isCond(5))
|
||||
{
|
||||
if (hasAllItems(player, true, LIZ_PERFUME, LIZ_GEM))
|
||||
{
|
||||
rewardItems(player, CORRODED_GREEN_BAIT);
|
||||
rewardItems(player, CORRODED_BABYDUCK_ROD);
|
||||
rewardItems(player, CORRODED_FISHING_SHOT);
|
||||
addExpAndSp(player, 62366, 14);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30332-10.html";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
final QuestState qs = getQuestState(talker, true);
|
||||
String htmltext = getNoQuestMsg(talker);
|
||||
switch (npc.getId())
|
||||
{
|
||||
case CAPTAIN_BATHIS:
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
htmltext = "30332-01.html";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
htmltext = "30332-03.html";
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
htmltext = "30332-04.html";
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
htmltext = "30332-07.html";
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
htmltext = "30332-08.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case GUARD_BABENCO:
|
||||
{
|
||||
if (qs.isCreated())
|
||||
{
|
||||
htmltext = "30334-01.htm";
|
||||
}
|
||||
else if (qs.isStarted() && qs.isCond(1))
|
||||
{
|
||||
htmltext = "30334-04.html";
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(talker);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case MALE_LIZARDMAN:
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, 2, 3, npc);
|
||||
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, LIZ_NECKLACE_A.getId(), 1, LIZ_NECKLACE_A.getCount(), 0.5, true))
|
||||
{
|
||||
if (hasItem(qs.getPlayer(), LIZ_NECKLACE_B))
|
||||
{
|
||||
qs.setCond(3);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MALE_LIZARDMAN_SCOUT:
|
||||
{
|
||||
if (getRandomBoolean())
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, 2, 3, npc);
|
||||
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, LIZ_NECKLACE_A.getId(), 1, LIZ_NECKLACE_A.getCount(), 0.5, true))
|
||||
{
|
||||
if (hasItem(qs.getPlayer(), LIZ_NECKLACE_B))
|
||||
{
|
||||
qs.setCond(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, 4, 3, npc);
|
||||
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, LIZ_PERFUME.getId(), 1, LIZ_PERFUME.getCount(), 0.25, true))
|
||||
{
|
||||
if (hasItem(qs.getPlayer(), LIZ_GEM))
|
||||
{
|
||||
qs.setCond(5);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MALE_LIZARDMAN_GUARD:
|
||||
{
|
||||
if (getRandomBoolean())
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, 2, 3, npc);
|
||||
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, LIZ_NECKLACE_B.getId(), 1, LIZ_NECKLACE_B.getCount(), 0.5, true))
|
||||
{
|
||||
if (hasItem(qs.getPlayer(), LIZ_NECKLACE_A))
|
||||
{
|
||||
qs.setCond(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, 4, 3, npc);
|
||||
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, LIZ_PERFUME.getId(), 1, LIZ_PERFUME.getCount(), 0.3, true))
|
||||
{
|
||||
if (hasItem(qs.getPlayer(), LIZ_GEM))
|
||||
{
|
||||
qs.setCond(5);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case GIANT_ARANE:
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, 4, 3, npc);
|
||||
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, LIZ_GEM.getId(), 1, LIZ_GEM.getCount(), 0.3, true))
|
||||
{
|
||||
if (hasItem(qs.getPlayer(), LIZ_PERFUME))
|
||||
{
|
||||
qs.setCond(5);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user