[Classic] Custom tutorial quest.

This commit is contained in:
MobiusDev
2015-05-06 22:28:42 +00:00
parent bd54172313
commit e86a852905
32 changed files with 496 additions and 3 deletions

View File

@ -260,6 +260,7 @@ public final class Config
public static int PARTY_XP_CUTOFF_LEVEL;
public static int[][] PARTY_XP_CUTOFF_GAPS;
public static int[] PARTY_XP_CUTOFF_GAP_PERCENTS;
public static boolean DISABLE_TUTORIAL;
public static boolean EXPERTISE_PENALTY;
public static boolean STORE_RECIPE_SHOPLIST;
public static boolean STORE_UI_SETTINGS;
@ -1734,6 +1735,7 @@ public final class Config
{
PARTY_XP_CUTOFF_GAP_PERCENTS[i] = Integer.parseInt(percents[i]);
}
DISABLE_TUTORIAL = Character.getBoolean("DisableTutorial", false);
EXPERTISE_PENALTY = Character.getBoolean("ExpertisePenalty", true);
STORE_RECIPE_SHOPLIST = Character.getBoolean("StoreRecipeShopList", false);
STORE_UI_SETTINGS = Character.getBoolean("StoreCharUiSettings", false);

View File

@ -1472,7 +1472,11 @@ public final class L2PcInstance extends L2Playable
return;
}
if (getLastQuestNpcObject() > 0)
if (quest.getId() == 255)
{
quest.notifyEvent(event, null, this);
}
else if (getLastQuestNpcObject() > 0)
{
final L2Object object = L2World.getInstance().findObject(getLastQuestNpcObject());
if (object.isNpc() && isInsideRadius(object, L2Npc.INTERACTION_DISTANCE, false, false))

View File

@ -42,6 +42,7 @@ import com.l2jserver.gameserver.network.NpcStringId;
import com.l2jserver.gameserver.network.serverpackets.ExShowQuestMark;
import com.l2jserver.gameserver.network.serverpackets.PlaySound;
import com.l2jserver.gameserver.network.serverpackets.QuestList;
import com.l2jserver.gameserver.network.serverpackets.TutorialEnableClientEvent;
import com.l2jserver.gameserver.network.serverpackets.TutorialShowQuestionMark;
import com.l2jserver.gameserver.util.Util;
@ -1261,4 +1262,9 @@ public final class QuestState
{
unset("LOCATION_ID");
}
public void onTutorialClientEvent(int number)
{
getPlayer().sendPacket(new TutorialEnableClientEvent(number));
}
}

View File

@ -18,6 +18,8 @@
*/
package com.l2jserver.gameserver.network.clientpackets;
import quests.Q00255_Tutorial.Q00255_Tutorial;
import com.l2jserver.Config;
import com.l2jserver.gameserver.LoginServerThread;
import com.l2jserver.gameserver.cache.HtmCache;
@ -38,6 +40,7 @@ import com.l2jserver.gameserver.instancemanager.FortSiegeManager;
import com.l2jserver.gameserver.instancemanager.InstanceManager;
import com.l2jserver.gameserver.instancemanager.MailManager;
import com.l2jserver.gameserver.instancemanager.PetitionManager;
import com.l2jserver.gameserver.instancemanager.QuestManager;
import com.l2jserver.gameserver.instancemanager.SiegeManager;
import com.l2jserver.gameserver.model.L2Clan;
import com.l2jserver.gameserver.model.L2Object;
@ -57,6 +60,8 @@ import com.l2jserver.gameserver.model.entity.clanhall.AuctionableHall;
import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
import com.l2jserver.gameserver.model.zone.ZoneId;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.AcquireSkillList;
@ -426,6 +431,11 @@ public class EnterWorld extends L2GameClientPacket
}
}
if (Config.SERVER_CLASSIC_SUPPORT)
{
loadTutorial(activeChar);
}
if (Config.PLAYER_SPAWN_PROTECTION > 0)
{
activeChar.setProtection(true);
@ -741,6 +751,22 @@ public class EnterWorld extends L2GameClientPacket
}
}
private void loadTutorial(L2PcInstance player)
{
if (Config.DISABLE_TUTORIAL)
{
return;
}
QuestState qs = player.getQuestState(Q00255_Tutorial.class.getSimpleName());
if (qs == null)
{
qs = QuestManager.getInstance().getQuest(Q00255_Tutorial.class.getSimpleName()).newQuestState(player);
qs.setState(State.STARTED);
}
qs.getQuest().notifyEvent("user_connected", null, player);
}
@Override
public String getType()
{

View File

@ -18,6 +18,8 @@
*/
package com.l2jserver.gameserver.network.clientpackets;
import quests.Q00255_Tutorial.Q00255_Tutorial;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.QuestState;
@ -43,7 +45,7 @@ public class RequestTutorialClientEvent extends L2GameClientPacket
return;
}
QuestState qs = player.getQuestState("255_Tutorial");
QuestState qs = player.getQuestState(Q00255_Tutorial.class.getSimpleName());
if (qs != null)
{
qs.getQuest().notifyEvent("CE" + eventId + "", null, player);