Addition of not done quests.

This commit is contained in:
MobiusDevelopment
2022-12-09 05:37:10 +00:00
parent 69178eba2d
commit fdeb9fcd36
96 changed files with 3084 additions and 566 deletions

View File

@@ -1,17 +1,19 @@
201 Tutorial: Blue Gemstones
202 Tutorial: Blue Gemstones
203 Tutorial: Blue Gemstones
204 Tutorial: Blue Gemstones
205 Tutorial: Blue Gemstones
206 Tutorial: Blue Gemstones
937 Deton's First Request
938 Deton's Second Request
939 Deton's Third Request
940 Deton's Fourth Request
941 Deton's Fifth Request
942 Deton's Sixth Request
943 Deton's Seventh Request
944 Deton's Eighth Request
945 Deton's Ninth Request
946 Deton's Tenth Request
10960 Tutorial: Blue Gemstones
201 Tutorial: Blue Gemstones
202 Tutorial: Blue Gemstones
203 Tutorial: Blue Gemstones
204 Tutorial: Blue Gemstones
206 Tutorial: Blue Gemstones
937 Deton's First Request
938 Deton's Second Request
939 Deton's Third Request
940 Deton's Fourth Request
941 Deton's Fifth Request
942 Deton's Sixth Request
943 Deton's Seventh Request
944 Deton's Eighth Request
945 Deton's Ninth Request
946 Deton's Tenth Request
10308 Training for the Future
10309 Dreamland's Mysteries
10310 Victory in Balok Battleground
10960 Tutorial: Blue Gemstones

View File

@@ -1,7 +0,0 @@
<html><body>Captain Bathis:<br>
Its you- The one who made Maraku Werevolves shiver...<br>
I was worrived about what they were up to, but thanks to you, I am relived.<br>
What?<br1>
You look curious. But Im sorry. I don't think I can tell you. I will give you a reward instead.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10988_Conspiracy reward">Receive reward.</Button>
</body></html>

View File

@@ -1,4 +0,0 @@
<html><body>Trader Uska:<br>
I heard that the Maraku Werewolves are raising spiders to do something. We better give them a warning. Defeating 30 of them should be good enough of a warning. Will you go?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10988_Conspiracy TELEPORT_TO_HUNTING_GROUND">Go to the hunting ground.</Button>
</body></html>

View File

@@ -1,6 +0,0 @@
<html><body>Trader Uska:<br>
You want to know what counts as a warning?<br>
Lets me see... Defeat 30 of Maraku Werewolfs, and that should do the trick.<br>
Will you do it?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10988_Conspiracy 30560-01.html">"I will do it."</Button>
</body></html>

View File

@@ -1,239 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package quests.Q10988_Conspiracy;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.CategoryData;
import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.classchange.ExClassChangeSetAlarm;
/**
* Conspiracy (10988)
* @author RobikBobik, Mobius
*/
public class Q10988_Conspiracy extends Quest
{
// NPCs
private static final int USKA = 30560;
private static final int CAPTAIN_BATHIS = 30332;
// Monsters
private static final int KASHA_SPIDER = 20474;
private static final int KASHA_BLADE_SPIDER = 20478;
private static final int MARAKU_WEREVOLF_CHIEFTAIN = 20364;
private static final int EVIL_EYE_PATROL = 20428;
// Items
private static final ItemHolder SOE_TO_CAPTAIN_BATHIS = new ItemHolder(91651, 1);
private static final ItemHolder SOE_NOVICE = new ItemHolder(10650, 20);
private static final ItemHolder SPIRIT_ORE = new ItemHolder(3031, 50);
private static final ItemHolder HP_POTS = new ItemHolder(91912, 50);
private static final ItemHolder XP_GROWTH_SCROLL = new ItemHolder(49674, 1);
// Misc
private static final int MAX_LEVEL = 20;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10988_Conspiracy()
{
super(10988);
addStartNpc(USKA);
addTalkId(USKA, CAPTAIN_BATHIS);
addKillId(KASHA_SPIDER, KASHA_BLADE_SPIDER, MARAKU_WEREVOLF_CHIEFTAIN, EVIL_EYE_PATROL);
addCondMaxLevel(MAX_LEVEL, "no_lvl.html");
registerQuestItems(SOE_TO_CAPTAIN_BATHIS.getId());
setQuestNameNpcStringId(NpcStringId.LV_15_20_CONSPIRACY);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30560-01.html":
{
qs.startQuest();
htmltext = event;
break;
}
case "30332.html":
{
htmltext = event;
break;
}
case "TELEPORT_TO_HUNTING_GROUND":
{
giveStoryBuffReward(npc, player);
player.teleToLocation(13136, -131688, -1312);
break;
}
case "NEXT_QUEST":
{
htmltext = "30560.htm";
break;
}
case "reward":
{
if (qs.isStarted())
{
addExpAndSp(player, 600000, 13500);
giveItems(player, SOE_NOVICE);
giveItems(player, SPIRIT_ORE);
giveItems(player, HP_POTS);
giveItems(player, XP_GROWTH_SCROLL);
giveStoryBuffReward(npc, player);
if (CategoryData.getInstance().isInCategory(CategoryType.FIRST_CLASS_GROUP, player.getClassId().getId()))
{
showOnScreenMsg(player, NpcStringId.YOU_VE_FINISHED_THE_TUTORIAL_TAKE_YOUR_1ST_CLASS_TRANSFER_AND_COMPLETE_YOUR_TRAINING_WITH_BATHIS_TO_BECOME_STRONGER, ExShowScreenMessage.TOP_CENTER, 10000);
player.sendPacket(ExClassChangeSetAlarm.STATIC_PACKET);
}
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 30)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
qs.unset(KILL_COUNT_VAR);
giveItems(killer, SOE_TO_CAPTAIN_BATHIS);
showOnScreenMsg(killer, NpcStringId.YOU_VE_KILLED_ALL_THE_MONSTERS_USE_THE_SCROLL_OF_ESCAPE_IN_YOUR_INVENTORY_TO_RETURN_TO_CAPTAIN_BATHIS_IN_GLUDIO, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.EXPOSE_A_PLOT_OF_MARAKU_WEREWOLVES.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30560.htm";
}
else if (qs.isStarted())
{
switch (npc.getId())
{
case USKA:
{
if (qs.isCond(1))
{
htmltext = "30560-01.html";
}
break;
}
case CAPTAIN_BATHIS:
{
if (qs.isCond(2))
{
htmltext = "30332.html";
}
break;
}
}
}
else if (qs.isCompleted())
{
if (npc.getId() == USKA)
{
htmltext = getAlreadyCompletedMsg(player);
}
}
return htmltext;
}
@RegisterEvent(EventType.ON_PLAYER_LOGIN)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void onPlayerLogin(OnPlayerLogin event)
{
final Player player = event.getPlayer();
if (player == null)
{
return;
}
if (!CategoryData.getInstance().isInCategory(CategoryType.FIRST_CLASS_GROUP, player.getClassId().getId()))
{
return;
}
final QuestState qs = getQuestState(player, false);
if (Config.DISABLE_TUTORIAL || ((qs != null) && qs.isCompleted()))
{
player.sendPacket(ExClassChangeSetAlarm.STATIC_PACKET);
}
}
}

View File

@@ -1,3 +0,0 @@
<html><body>Trader Vollodov:<br>
You do not meet the requirements of the quest (Quest is only available to 15-20 levels).
</body></html>

View File

@@ -70,9 +70,11 @@ import quests.Q10983_TroubledForest.Q10983_TroubledForest;
import quests.Q10984_CollectSpiderweb.Q10984_CollectSpiderweb;
import quests.Q10985_CleaningUpTheGround.Q10985_CleaningUpTheGround;
import quests.Q10986_SwampMonster.Q10986_SwampMonster;
import quests.Q10988_Conspiracy.Q10988_Conspiracy;
import quests.Q10989_DangerousPredators.Q10989_DangerousPredators;
import quests.Q10990_PoisonExtraction.Q10990_PoisonExtraction;
import quests.not_done.Q10308_TrainingForTheFuture;
import quests.not_done.Q10309_DreamlandsMysteries;
import quests.not_done.Q10310_VictoryInBalokBattleground;
/**
* @author NosBit
@@ -106,6 +108,9 @@ public class QuestMasterHandler
Q10305_DragonsSuspiciousMovements.class,
Q10306_StopSelMahumsTroops.class,
Q10307_TurekOrcsSecret.class,
Q10308_TrainingForTheFuture.class, // TODO: Not done.
Q10309_DreamlandsMysteries.class, // TODO: Not done.
Q10310_VictoryInBalokBattleground.class, // TODO: Not done.
Q10311_BestMedicine.class,
Q10312_GordesLegend.class,
Q10313_CunningMorgos.class,
@@ -128,7 +133,6 @@ public class QuestMasterHandler
Q10984_CollectSpiderweb.class,
Q10985_CleaningUpTheGround.class,
Q10986_SwampMonster.class,
Q10988_Conspiracy.class,
Q10989_DangerousPredators.class,
Q10990_PoisonExtraction.class,
Q10968_ThePowerOfTheMagicLamp.class,

View File

@@ -0,0 +1,36 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package quests.not_done;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.quest.Quest;
/**
* @author Mobius
*/
public class Q10308_TrainingForTheFuture extends Quest
{
private static final int START_NPC = 30857;
public Q10308_TrainingForTheFuture()
{
super(10308);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

View File

@@ -0,0 +1,36 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package quests.not_done;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.quest.Quest;
/**
* @author Mobius
*/
public class Q10309_DreamlandsMysteries extends Quest
{
private static final int START_NPC = 34304;
public Q10309_DreamlandsMysteries()
{
super(10309);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

View File

@@ -0,0 +1,36 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package quests.not_done;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.quest.Quest;
/**
* @author Mobius
*/
public class Q10310_VictoryInBalokBattleground extends Quest
{
private static final int START_NPC = 34330;
public Q10310_VictoryInBalokBattleground()
{
super(10310);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}