Tutorial quest adjustments.

Contributed by gigilo1968.
This commit is contained in:
MobiusDevelopment
2019-08-22 21:29:20 +00:00
parent 9d6167f52d
commit bafd639c8f
48 changed files with 477 additions and 117 deletions

View File

@@ -26,7 +26,7 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.base.AcquireSkillType; import org.l2jmobius.gameserver.model.base.AcquireSkillType;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExAcquirableSkillListByClass; import org.l2jmobius.gameserver.network.serverpackets.ExAcquirableSkillListByClass;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import ai.AbstractNpcAI; import ai.AbstractNpcAI;
@@ -42,8 +42,6 @@ public class AlchemistManager extends AbstractNpcAI
33978, // Zephyra 33978, // Zephyra
33977, // Veruti 33977, // Veruti
}; };
// Misc
private static final String TUTORIAL_LINK = "..\\L2text\\QT_026_alchemy_01.htm";
private AlchemistManager() private AlchemistManager()
{ {
@@ -66,7 +64,7 @@ public class AlchemistManager extends AbstractNpcAI
} }
case "open_tutorial": case "open_tutorial":
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), TUTORIAL_LINK, TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(26));
htmltext = npc.getId() + "-1.html"; htmltext = npc.getId() + "-1.html";
break; break;
} }

View File

@@ -0,0 +1,112 @@
/*
* 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 ai.others.Tutorial;
import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
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.OnPlayerBypass;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerCreate;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.TutorialCloseHtml;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml;
import ai.AbstractNpcAI;
/**
* Tutorial
* @author Gigi
* @date 2019-08-21 - [21:06:44]
*/
public class Tutorial extends AbstractNpcAI
{
// Misc
private static final String TUTORIAL_VAR = "TUTORIAL";
private Tutorial()
{
}
@RegisterEvent(EventType.ON_PLAYER_LOGIN)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void onPlayerLogin(OnPlayerLogin event)
{
final PlayerInstance player = event.getPlayer();
if (player.getVariables().getInt(TUTORIAL_VAR, 0) == 0)
{
if (player.getRace() == Race.ERTHEIA)
{
ThreadPool.schedule(() ->
{
final String html = getHtm(player, "tutorial_01_ertheia.html");
player.sendPacket(new TutorialShowHtml(html));
player.sendPacket(new ExTutorialShowId(5));
}, 26000);
}
else
{
ThreadPool.schedule(() ->
{
final String html = getHtm(player, "tutorial_01.html");
player.sendPacket(new TutorialShowHtml(html));
player.sendPacket(new ExTutorialShowId(5));
}, 26000);
}
}
}
@RegisterEvent(EventType.ON_PLAYER_BYPASS)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void OnPlayerBypass(OnPlayerBypass event)
{
final PlayerInstance player = event.getPlayer();
if (event.getCommand().equals("chat_window"))
{
ThreadPool.schedule(() ->
{
player.sendPacket(new ExTutorialShowId(1));
player.sendPacket(new PlaySound(2, "tutorial_voice_006", 0, 0, 0, 0, 0));
}, 500);
player.getVariables().set(TUTORIAL_VAR, 1);
player.sendPacket(TutorialCloseHtml.STATIC_PACKET);
}
}
@RegisterEvent(EventType.ON_PLAYER_CREATE)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void OnPlayerCreate(OnPlayerCreate event)
{
final PlayerInstance player = event.getPlayer();
if (Config.DISABLE_TUTORIAL)
{
return;
}
player.getVariables().set(TUTORIAL_VAR, 0);
}
public static void main(String[] args)
{
new Tutorial();
}
}

View File

@@ -0,0 +1,4 @@
<html><title>Tutorial</title><body><br>
We are inside the museum in Talking Island Village. It seems that curator Pantheon would like to speak with you. I will tell you <font color="LEVEL">how to use the mouse to move</font> to Pantheon and speak with him.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h chat_window">Talk with Pantheon</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><title>Tutorial</title><body><br>
This is Faeron Village. Queen Navari has something to say. Please pay attention to the instructions on <font color="LEVEL">using the mouse</font> in order to <font color="LEVEL">move</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h chat_window">"Talk with Queen Navari"</Button>
</body></html>

View File

@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import instances.AbstractInstance; import instances.AbstractInstance;
import quests.Q10735_ASpecialPower.Q10735_ASpecialPower; import quests.Q10735_ASpecialPower.Q10735_ASpecialPower;
@@ -164,14 +164,14 @@ public class FaeronTrainingGrounds1 extends AbstractInstance
qs.set("ss", 1); qs.set("ss", 1);
giveItems(player, SPIRITSHOTS_TRAINING); giveItems(player, SPIRITSHOTS_TRAINING);
showOnScreenMsg(player, NpcStringId.AUTOMATE_SPIRITSHOT_AS_SHOWN_IN_THE_TUTORIAL, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.AUTOMATE_SPIRITSHOT_AS_SHOWN_IN_THE_TUTORIAL, ExShowScreenMessage.TOP_CENTER, 10000);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_003_bullet_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(14));
htmltext = "33944-04.html"; htmltext = "33944-04.html";
} }
break; break;
} }
case 5: case 5:
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_004_skill_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(15));
htmltext = "33944-06.html"; htmltext = "33944-06.html";
break; break;
} }

View File

@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import instances.AbstractInstance; import instances.AbstractInstance;
import quests.Q10736_ASpecialPower.Q10736_ASpecialPower; import quests.Q10736_ASpecialPower.Q10736_ASpecialPower;
@@ -161,14 +161,14 @@ public class FaeronTrainingGrounds2 extends AbstractInstance
qs.set("ss", 1); qs.set("ss", 1);
giveItems(player, SOULSHOTS_TRAINING); giveItems(player, SOULSHOTS_TRAINING);
showOnScreenMsg(player, NpcStringId.AUTOMATE_SOULSHOT_AS_SHOWN_IN_THE_TUTORIAL, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.AUTOMATE_SOULSHOT_AS_SHOWN_IN_THE_TUTORIAL, ExShowScreenMessage.TOP_CENTER, 10000);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_003_bullet_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(14));
htmltext = "33945-04.html"; htmltext = "33945-04.html";
} }
break; break;
} }
case 5: case 5:
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_004_skill_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(15));
htmltext = "33945-06.html"; htmltext = "33945-06.html";
break; break;
} }

View File

@@ -30,7 +30,7 @@ import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
/** /**
* Let's Go To The Central Square (10320) * Let's Go To The Central Square (10320)
@@ -74,7 +74,7 @@ public class Q10320_LetsGoToTheCentralSquare extends Quest
qs.startQuest(); qs.startQuest();
qs.setCond(2); // arrow hack qs.setCond(2); // arrow hack
qs.setCond(1); qs.setCond(1);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_001_Radar_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(9));
htmltext = event; htmltext = event;
break; break;
} }
@@ -87,7 +87,7 @@ public class Q10320_LetsGoToTheCentralSquare extends Quest
{ {
if (qs.isStarted()) if (qs.isStarted())
{ {
addExpAndSp(player, 70, 5); addExpAndSp(player, 84, 5);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = event; htmltext = event;
} }

View File

@@ -21,7 +21,7 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10320_LetsGoToTheCentralSquare.Q10320_LetsGoToTheCentralSquare; import quests.Q10320_LetsGoToTheCentralSquare.Q10320_LetsGoToTheCentralSquare;
@@ -63,7 +63,7 @@ public class Q10321_QualificationsOfTheSeeker extends Quest
qs.startQuest(); qs.startQuest();
qs.setCond(2); // arrow hack qs.setCond(2); // arrow hack
qs.setCond(1); qs.setCond(1);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_027_Quest_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(11));
htmltext = event; htmltext = event;
break; break;
} }
@@ -76,7 +76,7 @@ public class Q10321_QualificationsOfTheSeeker extends Quest
{ {
if (qs.isStarted()) if (qs.isStarted())
{ {
addExpAndSp(player, 300, 6); addExpAndSp(player, 360, 6);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = event; htmltext = event;
} }

View File

@@ -32,7 +32,7 @@ import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList; import org.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10321_QualificationsOfTheSeeker.Q10321_QualificationsOfTheSeeker; import quests.Q10321_QualificationsOfTheSeeker.Q10321_QualificationsOfTheSeeker;
@@ -96,7 +96,7 @@ public class Q10541_TrainLikeTheRealThing extends Quest
} }
case "32981-03.html": case "32981-03.html":
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_002_Guide_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(25));
htmltext = event; htmltext = event;
break; break;
} }

View File

@@ -29,7 +29,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10541_TrainLikeTheRealThing.Q10541_TrainLikeTheRealThing; import quests.Q10541_TrainLikeTheRealThing.Q10541_TrainLikeTheRealThing;
@@ -169,7 +169,7 @@ public class Q10542_SearchingForNewPower extends Quest
{ {
htmltext = "33004-01.html"; htmltext = "33004-01.html";
qs.setCond(3, true); qs.setCond(3, true);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2text\\QT_004_skill_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(15));
htmltext = "33004-01.html"; htmltext = "33004-01.html";
NpcStringId npcStringId = null; NpcStringId npcStringId = null;

View File

@@ -24,7 +24,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10542_SearchingForNewPower.Q10542_SearchingForNewPower; import quests.Q10542_SearchingForNewPower.Q10542_SearchingForNewPower;
@@ -39,7 +39,7 @@ public class Q10543_SheddingWeight extends Quest
private static final int SHANNON = 32974; private static final int SHANNON = 32974;
private static final int WILFORD = 30005; private static final int WILFORD = 30005;
// Items // Items
// private static final int NOVICE_TRAINING_LOG = 1835; // TODO Find item ID private static final int NOVICE_TRAINING_LOG = 47601;
private static final int APPRENTICE_ADVENTURERS_STAFF = 7816; private static final int APPRENTICE_ADVENTURERS_STAFF = 7816;
private static final int APPRENTICE_ADVENTURERS_BONE_CLUB = 7817; private static final int APPRENTICE_ADVENTURERS_BONE_CLUB = 7817;
private static final int APPRENTICE_ADVENTURERS_KNIFE = 7818; private static final int APPRENTICE_ADVENTURERS_KNIFE = 7818;
@@ -54,7 +54,7 @@ public class Q10543_SheddingWeight extends Quest
super(10543); super(10543);
addStartNpc(SHANNON); addStartNpc(SHANNON);
addTalkId(SHANNON, WILFORD); addTalkId(SHANNON, WILFORD);
// registerQuestItems(NOVICE_TRAINING_LOG); registerQuestItems(NOVICE_TRAINING_LOG);
addCondNotRace(Race.ERTHEIA, "noRace.html"); addCondNotRace(Race.ERTHEIA, "noRace.html");
addCondMaxLevel(MAX_LEVEL, "noLevel.html"); addCondMaxLevel(MAX_LEVEL, "noLevel.html");
addCondCompletedQuest(Q10542_SearchingForNewPower.class.getSimpleName(), "noLevel.html"); addCondCompletedQuest(Q10542_SearchingForNewPower.class.getSimpleName(), "noLevel.html");
@@ -83,7 +83,7 @@ public class Q10543_SheddingWeight extends Quest
qs.startQuest(); qs.startQuest();
qs.setCond(2); // arrow hack qs.setCond(2); // arrow hack
qs.setCond(1); qs.setCond(1);
// giveItems(player, NOVICE_TRAINING_LOG, 1); giveItems(player, NOVICE_TRAINING_LOG, 1);
htmltext = event; htmltext = event;
break; break;
} }
@@ -95,9 +95,9 @@ public class Q10543_SheddingWeight extends Quest
giveItems(player, APPRENTICE_ADVENTURERS_CESTUS, 1); giveItems(player, APPRENTICE_ADVENTURERS_CESTUS, 1);
giveItems(player, APPRENTICE_ADVENTURERS_BOW, 1); giveItems(player, APPRENTICE_ADVENTURERS_BOW, 1);
giveItems(player, APPRENTICE_ADVENTURERS_LONG_SWORD, 1); giveItems(player, APPRENTICE_ADVENTURERS_LONG_SWORD, 1);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_007_post_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(24));
showOnScreenMsg(player, NpcStringId.WEAPONS_HAVE_BEEN_ADDED_TO_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.WEAPONS_HAVE_BEEN_ADDED_TO_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000);
addExpAndSp(player, 2630, 9); addExpAndSp(player, 3156, 9);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = event; htmltext = event;
break; break;

View File

@@ -22,7 +22,7 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.serverpackets.ExShowUsm; import org.l2jmobius.gameserver.network.serverpackets.ExShowUsm;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
/** /**
* A Foreign Land (10732) * A Foreign Land (10732)
@@ -73,8 +73,8 @@ public class Q10732_AForeignLand extends Quest
{ {
if (qs.isStarted()) if (qs.isStarted())
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_001_Radar_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(9));
addExpAndSp(player, 75, 2); addExpAndSp(player, 90, 2);
qs.exitQuest(false, true); qs.exitQuest(false, true);
} }
break; break;

View File

@@ -20,12 +20,13 @@ import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10732_AForeignLand.Q10732_AForeignLand; import quests.Q10732_AForeignLand.Q10732_AForeignLand;
/** /**
* The Test For Survival (10733) * The Test For Survival (10733)
* @URL https://l2wiki.com/The_Test_for_Survival
* @author Sdw * @author Sdw
*/ */
public class Q10733_TheTestForSurvival extends Quest public class Q10733_TheTestForSurvival extends Quest
@@ -69,7 +70,7 @@ public class Q10733_TheTestForSurvival extends Quest
case "33932-02.htm": case "33932-02.htm":
{ {
qs.startQuest(); qs.startQuest();
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_027_Quest_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(11));
giveItems(player, GERETH_RECOMMENDATION, 1); giveItems(player, GERETH_RECOMMENDATION, 1);
break; break;
} }

View File

@@ -25,7 +25,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10733_TheTestForSurvival.Q10733_TheTestForSurvival; import quests.Q10733_TheTestForSurvival.Q10733_TheTestForSurvival;
@@ -94,7 +94,7 @@ public class Q10734_DoOrDie extends Quest
{ {
castBuffs(npc, player, "33950-06.html", "33950-04.html"); castBuffs(npc, player, "33950-06.html", "33950-04.html");
htmltext = (player.isMageClass()) ? "33950-03.html" : "33950-05.html"; htmltext = (player.isMageClass()) ? "33950-03.html" : "33950-05.html";
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_002_Guide_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(25));
break; break;
} }
case "buffs": case "buffs":
@@ -159,7 +159,7 @@ public class Q10734_DoOrDie extends Quest
} }
case 8: case 8:
{ {
addExpAndSp(player, 805, 2); addExpAndSp(player, 966, 2);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = "33943-07.html"; htmltext = "33943-07.html";
break; break;
@@ -212,7 +212,7 @@ public class Q10734_DoOrDie extends Quest
} }
case 7: case 7:
{ {
addExpAndSp(player, 805, 2); addExpAndSp(player, 966, 2);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = "33942-07.html"; htmltext = "33942-07.html";
break; break;

View File

@@ -24,13 +24,14 @@ import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10735_ASpecialPower.Q10735_ASpecialPower; import quests.Q10735_ASpecialPower.Q10735_ASpecialPower;
import quests.Q10736_ASpecialPower.Q10736_ASpecialPower; import quests.Q10736_ASpecialPower.Q10736_ASpecialPower;
/** /**
* Grakons Warehouse (10737) * Grakons Warehouse (10737)
* @URL https://l2wiki.com/Grakon%27s_Warehouse
* @author Sdw * @author Sdw
*/ */
public class Q10737_GrakonsWarehouse extends Quest public class Q10737_GrakonsWarehouse extends Quest
@@ -89,7 +90,7 @@ public class Q10737_GrakonsWarehouse extends Quest
{ {
if (qs.isStarted()) if (qs.isStarted())
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2text\\QT_007_post_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(24));
showOnScreenMsg(player, NpcStringId.WEAPONS_HAVE_BEEN_ADDED_TO_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.WEAPONS_HAVE_BEEN_ADDED_TO_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000);
if (player.isMageClass()) if (player.isMageClass())
{ {

View File

@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.model.events.impl.item.OnItemCreate;
import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
/** /**
* A New Craft (10766) * A New Craft (10766)
@@ -98,7 +98,7 @@ public class Q10766_ANewCraft extends Quest
case "33978-03.html": case "33978-03.html":
{ {
qs.setCond(2, true); qs.setCond(2, true);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_026_alchemy_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(26));
htmltext = event; htmltext = event;
break; break;
} }

View File

@@ -26,7 +26,7 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.base.AcquireSkillType; import org.l2jmobius.gameserver.model.base.AcquireSkillType;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExAcquirableSkillListByClass; import org.l2jmobius.gameserver.network.serverpackets.ExAcquirableSkillListByClass;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import ai.AbstractNpcAI; import ai.AbstractNpcAI;
@@ -42,8 +42,6 @@ public class AlchemistManager extends AbstractNpcAI
33978, // Zephyra 33978, // Zephyra
33977, // Veruti 33977, // Veruti
}; };
// Misc
private static final String TUTORIAL_LINK = "..\\L2text\\QT_026_alchemy_01.htm";
private AlchemistManager() private AlchemistManager()
{ {
@@ -66,7 +64,7 @@ public class AlchemistManager extends AbstractNpcAI
} }
case "open_tutorial": case "open_tutorial":
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), TUTORIAL_LINK, TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(26));
htmltext = npc.getId() + "-1.html"; htmltext = npc.getId() + "-1.html";
break; break;
} }

View File

@@ -0,0 +1,112 @@
/*
* 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 ai.others.Tutorial;
import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
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.OnPlayerBypass;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerCreate;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.TutorialCloseHtml;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml;
import ai.AbstractNpcAI;
/**
* Tutorial
* @author Gigi
* @date 2019-08-21 - [21:06:44]
*/
public class Tutorial extends AbstractNpcAI
{
// Misc
private static final String TUTORIAL_VAR = "TUTORIAL";
private Tutorial()
{
}
@RegisterEvent(EventType.ON_PLAYER_LOGIN)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void onPlayerLogin(OnPlayerLogin event)
{
final PlayerInstance player = event.getPlayer();
if (player.getVariables().getInt(TUTORIAL_VAR, 0) == 0)
{
if (player.getRace() == Race.ERTHEIA)
{
ThreadPool.schedule(() ->
{
final String html = getHtm(player, "tutorial_01_ertheia.html");
player.sendPacket(new TutorialShowHtml(html));
player.sendPacket(new ExTutorialShowId(5));
}, 26000);
}
else
{
ThreadPool.schedule(() ->
{
final String html = getHtm(player, "tutorial_01.html");
player.sendPacket(new TutorialShowHtml(html));
player.sendPacket(new ExTutorialShowId(5));
}, 26000);
}
}
}
@RegisterEvent(EventType.ON_PLAYER_BYPASS)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void OnPlayerBypass(OnPlayerBypass event)
{
final PlayerInstance player = event.getPlayer();
if (event.getCommand().equals("chat_window"))
{
ThreadPool.schedule(() ->
{
player.sendPacket(new ExTutorialShowId(1));
player.sendPacket(new PlaySound(2, "tutorial_voice_006", 0, 0, 0, 0, 0));
}, 500);
player.getVariables().set(TUTORIAL_VAR, 1);
player.sendPacket(TutorialCloseHtml.STATIC_PACKET);
}
}
@RegisterEvent(EventType.ON_PLAYER_CREATE)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void OnPlayerCreate(OnPlayerCreate event)
{
final PlayerInstance player = event.getPlayer();
if (Config.DISABLE_TUTORIAL)
{
return;
}
player.getVariables().set(TUTORIAL_VAR, 0);
}
public static void main(String[] args)
{
new Tutorial();
}
}

View File

@@ -0,0 +1,4 @@
<html><title>Tutorial</title><body><br>
We are inside the museum in Talking Island Village. It seems that curator Pantheon would like to speak with you. I will tell you <font color="LEVEL">how to use the mouse to move</font> to Pantheon and speak with him.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h chat_window">Talk with Pantheon</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><title>Tutorial</title><body><br>
This is Faeron Village. Queen Navari has something to say. Please pay attention to the instructions on <font color="LEVEL">using the mouse</font> in order to <font color="LEVEL">move</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h chat_window">"Talk with Queen Navari"</Button>
</body></html>

View File

@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import instances.AbstractInstance; import instances.AbstractInstance;
import quests.Q10735_ASpecialPower.Q10735_ASpecialPower; import quests.Q10735_ASpecialPower.Q10735_ASpecialPower;
@@ -164,14 +164,14 @@ public class FaeronTrainingGrounds1 extends AbstractInstance
qs.set("ss", 1); qs.set("ss", 1);
giveItems(player, SPIRITSHOTS_TRAINING); giveItems(player, SPIRITSHOTS_TRAINING);
showOnScreenMsg(player, NpcStringId.AUTOMATE_SPIRITSHOT_AS_SHOWN_IN_THE_TUTORIAL, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.AUTOMATE_SPIRITSHOT_AS_SHOWN_IN_THE_TUTORIAL, ExShowScreenMessage.TOP_CENTER, 10000);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_003_bullet_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(14));
htmltext = "33944-04.html"; htmltext = "33944-04.html";
} }
break; break;
} }
case 5: case 5:
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_004_skill_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(15));
htmltext = "33944-06.html"; htmltext = "33944-06.html";
break; break;
} }

View File

@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import instances.AbstractInstance; import instances.AbstractInstance;
import quests.Q10736_ASpecialPower.Q10736_ASpecialPower; import quests.Q10736_ASpecialPower.Q10736_ASpecialPower;
@@ -161,14 +161,14 @@ public class FaeronTrainingGrounds2 extends AbstractInstance
qs.set("ss", 1); qs.set("ss", 1);
giveItems(player, SOULSHOTS_TRAINING); giveItems(player, SOULSHOTS_TRAINING);
showOnScreenMsg(player, NpcStringId.AUTOMATE_SOULSHOT_AS_SHOWN_IN_THE_TUTORIAL, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.AUTOMATE_SOULSHOT_AS_SHOWN_IN_THE_TUTORIAL, ExShowScreenMessage.TOP_CENTER, 10000);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_003_bullet_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(14));
htmltext = "33945-04.html"; htmltext = "33945-04.html";
} }
break; break;
} }
case 5: case 5:
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_004_skill_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(15));
htmltext = "33945-06.html"; htmltext = "33945-06.html";
break; break;
} }

View File

@@ -30,7 +30,7 @@ import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
/** /**
* Let's Go To The Central Square (10320) * Let's Go To The Central Square (10320)
@@ -74,7 +74,7 @@ public class Q10320_LetsGoToTheCentralSquare extends Quest
qs.startQuest(); qs.startQuest();
qs.setCond(2); // arrow hack qs.setCond(2); // arrow hack
qs.setCond(1); qs.setCond(1);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_001_Radar_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(9));
htmltext = event; htmltext = event;
break; break;
} }
@@ -87,7 +87,7 @@ public class Q10320_LetsGoToTheCentralSquare extends Quest
{ {
if (qs.isStarted()) if (qs.isStarted())
{ {
addExpAndSp(player, 70, 5); addExpAndSp(player, 84, 5);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = event; htmltext = event;
} }

View File

@@ -21,7 +21,7 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10320_LetsGoToTheCentralSquare.Q10320_LetsGoToTheCentralSquare; import quests.Q10320_LetsGoToTheCentralSquare.Q10320_LetsGoToTheCentralSquare;
@@ -63,7 +63,7 @@ public class Q10321_QualificationsOfTheSeeker extends Quest
qs.startQuest(); qs.startQuest();
qs.setCond(2); // arrow hack qs.setCond(2); // arrow hack
qs.setCond(1); qs.setCond(1);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_027_Quest_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(11));
htmltext = event; htmltext = event;
break; break;
} }
@@ -76,7 +76,7 @@ public class Q10321_QualificationsOfTheSeeker extends Quest
{ {
if (qs.isStarted()) if (qs.isStarted())
{ {
addExpAndSp(player, 300, 6); addExpAndSp(player, 360, 6);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = event; htmltext = event;
} }

View File

@@ -32,7 +32,7 @@ import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList; import org.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10321_QualificationsOfTheSeeker.Q10321_QualificationsOfTheSeeker; import quests.Q10321_QualificationsOfTheSeeker.Q10321_QualificationsOfTheSeeker;
@@ -96,7 +96,7 @@ public class Q10541_TrainLikeTheRealThing extends Quest
} }
case "32981-03.html": case "32981-03.html":
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_002_Guide_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(25));
htmltext = event; htmltext = event;
break; break;
} }

View File

@@ -29,7 +29,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10541_TrainLikeTheRealThing.Q10541_TrainLikeTheRealThing; import quests.Q10541_TrainLikeTheRealThing.Q10541_TrainLikeTheRealThing;
@@ -169,7 +169,7 @@ public class Q10542_SearchingForNewPower extends Quest
{ {
htmltext = "33004-01.html"; htmltext = "33004-01.html";
qs.setCond(3, true); qs.setCond(3, true);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2text\\QT_004_skill_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(15));
htmltext = "33004-01.html"; htmltext = "33004-01.html";
NpcStringId npcStringId = null; NpcStringId npcStringId = null;

View File

@@ -24,7 +24,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10542_SearchingForNewPower.Q10542_SearchingForNewPower; import quests.Q10542_SearchingForNewPower.Q10542_SearchingForNewPower;
@@ -39,7 +39,7 @@ public class Q10543_SheddingWeight extends Quest
private static final int SHANNON = 32974; private static final int SHANNON = 32974;
private static final int WILFORD = 30005; private static final int WILFORD = 30005;
// Items // Items
// private static final int NOVICE_TRAINING_LOG = 1835; // TODO Find item ID private static final int NOVICE_TRAINING_LOG = 47601;
private static final int APPRENTICE_ADVENTURERS_STAFF = 7816; private static final int APPRENTICE_ADVENTURERS_STAFF = 7816;
private static final int APPRENTICE_ADVENTURERS_BONE_CLUB = 7817; private static final int APPRENTICE_ADVENTURERS_BONE_CLUB = 7817;
private static final int APPRENTICE_ADVENTURERS_KNIFE = 7818; private static final int APPRENTICE_ADVENTURERS_KNIFE = 7818;
@@ -54,7 +54,7 @@ public class Q10543_SheddingWeight extends Quest
super(10543); super(10543);
addStartNpc(SHANNON); addStartNpc(SHANNON);
addTalkId(SHANNON, WILFORD); addTalkId(SHANNON, WILFORD);
// registerQuestItems(NOVICE_TRAINING_LOG); registerQuestItems(NOVICE_TRAINING_LOG);
addCondNotRace(Race.ERTHEIA, "noRace.html"); addCondNotRace(Race.ERTHEIA, "noRace.html");
addCondMaxLevel(MAX_LEVEL, "noLevel.html"); addCondMaxLevel(MAX_LEVEL, "noLevel.html");
addCondCompletedQuest(Q10542_SearchingForNewPower.class.getSimpleName(), "noLevel.html"); addCondCompletedQuest(Q10542_SearchingForNewPower.class.getSimpleName(), "noLevel.html");
@@ -83,7 +83,7 @@ public class Q10543_SheddingWeight extends Quest
qs.startQuest(); qs.startQuest();
qs.setCond(2); // arrow hack qs.setCond(2); // arrow hack
qs.setCond(1); qs.setCond(1);
// giveItems(player, NOVICE_TRAINING_LOG, 1); giveItems(player, NOVICE_TRAINING_LOG, 1);
htmltext = event; htmltext = event;
break; break;
} }
@@ -95,9 +95,9 @@ public class Q10543_SheddingWeight extends Quest
giveItems(player, APPRENTICE_ADVENTURERS_CESTUS, 1); giveItems(player, APPRENTICE_ADVENTURERS_CESTUS, 1);
giveItems(player, APPRENTICE_ADVENTURERS_BOW, 1); giveItems(player, APPRENTICE_ADVENTURERS_BOW, 1);
giveItems(player, APPRENTICE_ADVENTURERS_LONG_SWORD, 1); giveItems(player, APPRENTICE_ADVENTURERS_LONG_SWORD, 1);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_007_post_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(24));
showOnScreenMsg(player, NpcStringId.WEAPONS_HAVE_BEEN_ADDED_TO_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.WEAPONS_HAVE_BEEN_ADDED_TO_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000);
addExpAndSp(player, 2630, 9); addExpAndSp(player, 3156, 9);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = event; htmltext = event;
break; break;

View File

@@ -22,7 +22,7 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.serverpackets.ExShowUsm; import org.l2jmobius.gameserver.network.serverpackets.ExShowUsm;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
/** /**
* A Foreign Land (10732) * A Foreign Land (10732)
@@ -73,8 +73,8 @@ public class Q10732_AForeignLand extends Quest
{ {
if (qs.isStarted()) if (qs.isStarted())
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_001_Radar_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(9));
addExpAndSp(player, 75, 2); addExpAndSp(player, 90, 2);
qs.exitQuest(false, true); qs.exitQuest(false, true);
} }
break; break;

View File

@@ -20,12 +20,13 @@ import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10732_AForeignLand.Q10732_AForeignLand; import quests.Q10732_AForeignLand.Q10732_AForeignLand;
/** /**
* The Test For Survival (10733) * The Test For Survival (10733)
* @URL https://l2wiki.com/The_Test_for_Survival
* @author Sdw * @author Sdw
*/ */
public class Q10733_TheTestForSurvival extends Quest public class Q10733_TheTestForSurvival extends Quest
@@ -69,7 +70,7 @@ public class Q10733_TheTestForSurvival extends Quest
case "33932-02.htm": case "33932-02.htm":
{ {
qs.startQuest(); qs.startQuest();
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_027_Quest_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(11));
giveItems(player, GERETH_RECOMMENDATION, 1); giveItems(player, GERETH_RECOMMENDATION, 1);
break; break;
} }

View File

@@ -25,7 +25,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10733_TheTestForSurvival.Q10733_TheTestForSurvival; import quests.Q10733_TheTestForSurvival.Q10733_TheTestForSurvival;
@@ -94,7 +94,7 @@ public class Q10734_DoOrDie extends Quest
{ {
castBuffs(npc, player, "33950-06.html", "33950-04.html"); castBuffs(npc, player, "33950-06.html", "33950-04.html");
htmltext = (player.isMageClass()) ? "33950-03.html" : "33950-05.html"; htmltext = (player.isMageClass()) ? "33950-03.html" : "33950-05.html";
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_002_Guide_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(25));
break; break;
} }
case "buffs": case "buffs":
@@ -159,7 +159,7 @@ public class Q10734_DoOrDie extends Quest
} }
case 8: case 8:
{ {
addExpAndSp(player, 805, 2); addExpAndSp(player, 966, 2);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = "33943-07.html"; htmltext = "33943-07.html";
break; break;
@@ -212,7 +212,7 @@ public class Q10734_DoOrDie extends Quest
} }
case 7: case 7:
{ {
addExpAndSp(player, 805, 2); addExpAndSp(player, 966, 2);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = "33942-07.html"; htmltext = "33942-07.html";
break; break;

View File

@@ -24,13 +24,14 @@ import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10735_ASpecialPower.Q10735_ASpecialPower; import quests.Q10735_ASpecialPower.Q10735_ASpecialPower;
import quests.Q10736_ASpecialPower.Q10736_ASpecialPower; import quests.Q10736_ASpecialPower.Q10736_ASpecialPower;
/** /**
* Grakons Warehouse (10737) * Grakons Warehouse (10737)
* @URL https://l2wiki.com/Grakon%27s_Warehouse
* @author Sdw * @author Sdw
*/ */
public class Q10737_GrakonsWarehouse extends Quest public class Q10737_GrakonsWarehouse extends Quest
@@ -89,7 +90,7 @@ public class Q10737_GrakonsWarehouse extends Quest
{ {
if (qs.isStarted()) if (qs.isStarted())
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2text\\QT_007_post_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(24));
showOnScreenMsg(player, NpcStringId.WEAPONS_HAVE_BEEN_ADDED_TO_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.WEAPONS_HAVE_BEEN_ADDED_TO_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000);
if (player.isMageClass()) if (player.isMageClass())
{ {

View File

@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.model.events.impl.item.OnItemCreate;
import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
/** /**
* A New Craft (10766) * A New Craft (10766)
@@ -98,7 +98,7 @@ public class Q10766_ANewCraft extends Quest
case "33978-03.html": case "33978-03.html":
{ {
qs.setCond(2, true); qs.setCond(2, true);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_026_alchemy_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(26));
htmltext = event; htmltext = event;
break; break;
} }

View File

@@ -26,7 +26,7 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.base.AcquireSkillType; import org.l2jmobius.gameserver.model.base.AcquireSkillType;
import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExAcquirableSkillListByClass; import org.l2jmobius.gameserver.network.serverpackets.ExAcquirableSkillListByClass;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import ai.AbstractNpcAI; import ai.AbstractNpcAI;
@@ -42,8 +42,6 @@ public class AlchemistManager extends AbstractNpcAI
33978, // Zephyra 33978, // Zephyra
33977, // Veruti 33977, // Veruti
}; };
// Misc
private static final String TUTORIAL_LINK = "..\\L2text\\QT_026_alchemy_01.htm";
private AlchemistManager() private AlchemistManager()
{ {
@@ -66,7 +64,7 @@ public class AlchemistManager extends AbstractNpcAI
} }
case "open_tutorial": case "open_tutorial":
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), TUTORIAL_LINK, TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(26));
htmltext = npc.getId() + "-1.html"; htmltext = npc.getId() + "-1.html";
break; break;
} }

View File

@@ -0,0 +1,112 @@
/*
* 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 ai.others.Tutorial;
import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
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.OnPlayerBypass;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerCreate;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import org.l2jmobius.gameserver.network.serverpackets.PlaySound;
import org.l2jmobius.gameserver.network.serverpackets.TutorialCloseHtml;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml;
import ai.AbstractNpcAI;
/**
* Tutorial
* @author Gigi
* @date 2019-08-21 - [21:06:44]
*/
public class Tutorial extends AbstractNpcAI
{
// Misc
private static final String TUTORIAL_VAR = "TUTORIAL";
private Tutorial()
{
}
@RegisterEvent(EventType.ON_PLAYER_LOGIN)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void onPlayerLogin(OnPlayerLogin event)
{
final PlayerInstance player = event.getPlayer();
if (player.getVariables().getInt(TUTORIAL_VAR, 0) == 0)
{
if (player.getRace() == Race.ERTHEIA)
{
ThreadPool.schedule(() ->
{
final String html = getHtm(player, "tutorial_01_ertheia.html");
player.sendPacket(new TutorialShowHtml(html));
player.sendPacket(new ExTutorialShowId(5));
}, 26000);
}
else
{
ThreadPool.schedule(() ->
{
final String html = getHtm(player, "tutorial_01.html");
player.sendPacket(new TutorialShowHtml(html));
player.sendPacket(new ExTutorialShowId(5));
}, 26000);
}
}
}
@RegisterEvent(EventType.ON_PLAYER_BYPASS)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void OnPlayerBypass(OnPlayerBypass event)
{
final PlayerInstance player = event.getPlayer();
if (event.getCommand().equals("chat_window"))
{
ThreadPool.schedule(() ->
{
player.sendPacket(new ExTutorialShowId(1));
player.sendPacket(new PlaySound(2, "tutorial_voice_006", 0, 0, 0, 0, 0));
}, 500);
player.getVariables().set(TUTORIAL_VAR, 1);
player.sendPacket(TutorialCloseHtml.STATIC_PACKET);
}
}
@RegisterEvent(EventType.ON_PLAYER_CREATE)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void OnPlayerCreate(OnPlayerCreate event)
{
final PlayerInstance player = event.getPlayer();
if (Config.DISABLE_TUTORIAL)
{
return;
}
player.getVariables().set(TUTORIAL_VAR, 0);
}
public static void main(String[] args)
{
new Tutorial();
}
}

View File

@@ -0,0 +1,4 @@
<html><title>Tutorial</title><body><br>
We are inside the museum in Talking Island Village. It seems that curator Pantheon would like to speak with you. I will tell you <font color="LEVEL">how to use the mouse to move</font> to Pantheon and speak with him.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h chat_window">Talk with Pantheon</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><title>Tutorial</title><body><br>
This is Faeron Village. Queen Navari has something to say. Please pay attention to the instructions on <font color="LEVEL">using the mouse</font> in order to <font color="LEVEL">move</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h chat_window">"Talk with Queen Navari"</Button>
</body></html>

View File

@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import instances.AbstractInstance; import instances.AbstractInstance;
import quests.Q10735_ASpecialPower.Q10735_ASpecialPower; import quests.Q10735_ASpecialPower.Q10735_ASpecialPower;
@@ -164,14 +164,14 @@ public class FaeronTrainingGrounds1 extends AbstractInstance
qs.set("ss", 1); qs.set("ss", 1);
giveItems(player, SPIRITSHOTS_TRAINING); giveItems(player, SPIRITSHOTS_TRAINING);
showOnScreenMsg(player, NpcStringId.AUTOMATE_SPIRITSHOT_AS_SHOWN_IN_THE_TUTORIAL, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.AUTOMATE_SPIRITSHOT_AS_SHOWN_IN_THE_TUTORIAL, ExShowScreenMessage.TOP_CENTER, 10000);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_003_bullet_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(14));
htmltext = "33944-04.html"; htmltext = "33944-04.html";
} }
break; break;
} }
case 5: case 5:
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_004_skill_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(15));
htmltext = "33944-06.html"; htmltext = "33944-06.html";
break; break;
} }

View File

@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import instances.AbstractInstance; import instances.AbstractInstance;
import quests.Q10736_ASpecialPower.Q10736_ASpecialPower; import quests.Q10736_ASpecialPower.Q10736_ASpecialPower;
@@ -161,14 +161,14 @@ public class FaeronTrainingGrounds2 extends AbstractInstance
qs.set("ss", 1); qs.set("ss", 1);
giveItems(player, SOULSHOTS_TRAINING); giveItems(player, SOULSHOTS_TRAINING);
showOnScreenMsg(player, NpcStringId.AUTOMATE_SOULSHOT_AS_SHOWN_IN_THE_TUTORIAL, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.AUTOMATE_SOULSHOT_AS_SHOWN_IN_THE_TUTORIAL, ExShowScreenMessage.TOP_CENTER, 10000);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_003_bullet_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(14));
htmltext = "33945-04.html"; htmltext = "33945-04.html";
} }
break; break;
} }
case 5: case 5:
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_004_skill_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(15));
htmltext = "33945-06.html"; htmltext = "33945-06.html";
break; break;
} }

View File

@@ -30,7 +30,7 @@ import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
/** /**
* Let's Go To The Central Square (10320) * Let's Go To The Central Square (10320)
@@ -74,7 +74,7 @@ public class Q10320_LetsGoToTheCentralSquare extends Quest
qs.startQuest(); qs.startQuest();
qs.setCond(2); // arrow hack qs.setCond(2); // arrow hack
qs.setCond(1); qs.setCond(1);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_001_Radar_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(9));
htmltext = event; htmltext = event;
break; break;
} }
@@ -87,7 +87,7 @@ public class Q10320_LetsGoToTheCentralSquare extends Quest
{ {
if (qs.isStarted()) if (qs.isStarted())
{ {
addExpAndSp(player, 70, 5); addExpAndSp(player, 84, 5);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = event; htmltext = event;
} }

View File

@@ -21,7 +21,7 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10320_LetsGoToTheCentralSquare.Q10320_LetsGoToTheCentralSquare; import quests.Q10320_LetsGoToTheCentralSquare.Q10320_LetsGoToTheCentralSquare;
@@ -63,7 +63,7 @@ public class Q10321_QualificationsOfTheSeeker extends Quest
qs.startQuest(); qs.startQuest();
qs.setCond(2); // arrow hack qs.setCond(2); // arrow hack
qs.setCond(1); qs.setCond(1);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_027_Quest_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(11));
htmltext = event; htmltext = event;
break; break;
} }
@@ -76,7 +76,7 @@ public class Q10321_QualificationsOfTheSeeker extends Quest
{ {
if (qs.isStarted()) if (qs.isStarted())
{ {
addExpAndSp(player, 300, 6); addExpAndSp(player, 360, 6);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = event; htmltext = event;
} }

View File

@@ -32,7 +32,7 @@ import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList; import org.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10321_QualificationsOfTheSeeker.Q10321_QualificationsOfTheSeeker; import quests.Q10321_QualificationsOfTheSeeker.Q10321_QualificationsOfTheSeeker;
@@ -96,7 +96,7 @@ public class Q10541_TrainLikeTheRealThing extends Quest
} }
case "32981-03.html": case "32981-03.html":
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_002_Guide_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(25));
htmltext = event; htmltext = event;
break; break;
} }

View File

@@ -29,7 +29,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10541_TrainLikeTheRealThing.Q10541_TrainLikeTheRealThing; import quests.Q10541_TrainLikeTheRealThing.Q10541_TrainLikeTheRealThing;
@@ -169,7 +169,7 @@ public class Q10542_SearchingForNewPower extends Quest
{ {
htmltext = "33004-01.html"; htmltext = "33004-01.html";
qs.setCond(3, true); qs.setCond(3, true);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2text\\QT_004_skill_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(15));
htmltext = "33004-01.html"; htmltext = "33004-01.html";
NpcStringId npcStringId = null; NpcStringId npcStringId = null;

View File

@@ -24,7 +24,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10542_SearchingForNewPower.Q10542_SearchingForNewPower; import quests.Q10542_SearchingForNewPower.Q10542_SearchingForNewPower;
@@ -39,7 +39,7 @@ public class Q10543_SheddingWeight extends Quest
private static final int SHANNON = 32974; private static final int SHANNON = 32974;
private static final int WILFORD = 30005; private static final int WILFORD = 30005;
// Items // Items
// private static final int NOVICE_TRAINING_LOG = 1835; // TODO Find item ID private static final int NOVICE_TRAINING_LOG = 47601;
private static final int APPRENTICE_ADVENTURERS_STAFF = 7816; private static final int APPRENTICE_ADVENTURERS_STAFF = 7816;
private static final int APPRENTICE_ADVENTURERS_BONE_CLUB = 7817; private static final int APPRENTICE_ADVENTURERS_BONE_CLUB = 7817;
private static final int APPRENTICE_ADVENTURERS_KNIFE = 7818; private static final int APPRENTICE_ADVENTURERS_KNIFE = 7818;
@@ -54,7 +54,7 @@ public class Q10543_SheddingWeight extends Quest
super(10543); super(10543);
addStartNpc(SHANNON); addStartNpc(SHANNON);
addTalkId(SHANNON, WILFORD); addTalkId(SHANNON, WILFORD);
// registerQuestItems(NOVICE_TRAINING_LOG); registerQuestItems(NOVICE_TRAINING_LOG);
addCondNotRace(Race.ERTHEIA, "noRace.html"); addCondNotRace(Race.ERTHEIA, "noRace.html");
addCondMaxLevel(MAX_LEVEL, "noLevel.html"); addCondMaxLevel(MAX_LEVEL, "noLevel.html");
addCondCompletedQuest(Q10542_SearchingForNewPower.class.getSimpleName(), "noLevel.html"); addCondCompletedQuest(Q10542_SearchingForNewPower.class.getSimpleName(), "noLevel.html");
@@ -83,7 +83,7 @@ public class Q10543_SheddingWeight extends Quest
qs.startQuest(); qs.startQuest();
qs.setCond(2); // arrow hack qs.setCond(2); // arrow hack
qs.setCond(1); qs.setCond(1);
// giveItems(player, NOVICE_TRAINING_LOG, 1); giveItems(player, NOVICE_TRAINING_LOG, 1);
htmltext = event; htmltext = event;
break; break;
} }
@@ -95,9 +95,9 @@ public class Q10543_SheddingWeight extends Quest
giveItems(player, APPRENTICE_ADVENTURERS_CESTUS, 1); giveItems(player, APPRENTICE_ADVENTURERS_CESTUS, 1);
giveItems(player, APPRENTICE_ADVENTURERS_BOW, 1); giveItems(player, APPRENTICE_ADVENTURERS_BOW, 1);
giveItems(player, APPRENTICE_ADVENTURERS_LONG_SWORD, 1); giveItems(player, APPRENTICE_ADVENTURERS_LONG_SWORD, 1);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_007_post_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(24));
showOnScreenMsg(player, NpcStringId.WEAPONS_HAVE_BEEN_ADDED_TO_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.WEAPONS_HAVE_BEEN_ADDED_TO_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000);
addExpAndSp(player, 2630, 9); addExpAndSp(player, 3156, 9);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = event; htmltext = event;
break; break;

View File

@@ -22,7 +22,7 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.serverpackets.ExShowUsm; import org.l2jmobius.gameserver.network.serverpackets.ExShowUsm;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
/** /**
* A Foreign Land (10732) * A Foreign Land (10732)
@@ -73,8 +73,8 @@ public class Q10732_AForeignLand extends Quest
{ {
if (qs.isStarted()) if (qs.isStarted())
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_001_Radar_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(9));
addExpAndSp(player, 75, 2); addExpAndSp(player, 90, 2);
qs.exitQuest(false, true); qs.exitQuest(false, true);
} }
break; break;

View File

@@ -20,12 +20,13 @@ import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10732_AForeignLand.Q10732_AForeignLand; import quests.Q10732_AForeignLand.Q10732_AForeignLand;
/** /**
* The Test For Survival (10733) * The Test For Survival (10733)
* @URL https://l2wiki.com/The_Test_for_Survival
* @author Sdw * @author Sdw
*/ */
public class Q10733_TheTestForSurvival extends Quest public class Q10733_TheTestForSurvival extends Quest
@@ -69,7 +70,7 @@ public class Q10733_TheTestForSurvival extends Quest
case "33932-02.htm": case "33932-02.htm":
{ {
qs.startQuest(); qs.startQuest();
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_027_Quest_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(11));
giveItems(player, GERETH_RECOMMENDATION, 1); giveItems(player, GERETH_RECOMMENDATION, 1);
break; break;
} }

View File

@@ -25,7 +25,7 @@ import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State; import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10733_TheTestForSurvival.Q10733_TheTestForSurvival; import quests.Q10733_TheTestForSurvival.Q10733_TheTestForSurvival;
@@ -94,7 +94,7 @@ public class Q10734_DoOrDie extends Quest
{ {
castBuffs(npc, player, "33950-06.html", "33950-04.html"); castBuffs(npc, player, "33950-06.html", "33950-04.html");
htmltext = (player.isMageClass()) ? "33950-03.html" : "33950-05.html"; htmltext = (player.isMageClass()) ? "33950-03.html" : "33950-05.html";
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_002_Guide_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(25));
break; break;
} }
case "buffs": case "buffs":
@@ -159,7 +159,7 @@ public class Q10734_DoOrDie extends Quest
} }
case 8: case 8:
{ {
addExpAndSp(player, 805, 2); addExpAndSp(player, 966, 2);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = "33943-07.html"; htmltext = "33943-07.html";
break; break;
@@ -212,7 +212,7 @@ public class Q10734_DoOrDie extends Quest
} }
case 7: case 7:
{ {
addExpAndSp(player, 805, 2); addExpAndSp(player, 966, 2);
qs.exitQuest(false, true); qs.exitQuest(false, true);
htmltext = "33942-07.html"; htmltext = "33942-07.html";
break; break;

View File

@@ -24,13 +24,14 @@ import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import quests.Q10735_ASpecialPower.Q10735_ASpecialPower; import quests.Q10735_ASpecialPower.Q10735_ASpecialPower;
import quests.Q10736_ASpecialPower.Q10736_ASpecialPower; import quests.Q10736_ASpecialPower.Q10736_ASpecialPower;
/** /**
* Grakons Warehouse (10737) * Grakons Warehouse (10737)
* @URL https://l2wiki.com/Grakon%27s_Warehouse
* @author Sdw * @author Sdw
*/ */
public class Q10737_GrakonsWarehouse extends Quest public class Q10737_GrakonsWarehouse extends Quest
@@ -89,7 +90,7 @@ public class Q10737_GrakonsWarehouse extends Quest
{ {
if (qs.isStarted()) if (qs.isStarted())
{ {
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2text\\QT_007_post_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(24));
showOnScreenMsg(player, NpcStringId.WEAPONS_HAVE_BEEN_ADDED_TO_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.WEAPONS_HAVE_BEEN_ADDED_TO_YOUR_INVENTORY, ExShowScreenMessage.TOP_CENTER, 10000);
if (player.isMageClass()) if (player.isMageClass())
{ {

View File

@@ -28,7 +28,7 @@ import org.l2jmobius.gameserver.model.events.impl.item.OnItemCreate;
import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState; import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml; import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
/** /**
* A New Craft (10766) * A New Craft (10766)
@@ -98,7 +98,7 @@ public class Q10766_ANewCraft extends Quest
case "33978-03.html": case "33978-03.html":
{ {
qs.setCond(2, true); qs.setCond(2, true);
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_026_alchemy_01.htm", TutorialShowHtml.LARGE_WINDOW)); player.sendPacket(new ExTutorialShowId(26));
htmltext = event; htmltext = event;
break; break;
} }