Browse Source

Merge pull request #4 from Sdw-/quest_changes

Adding support for start quest condition
Rumen Nikiforov 10 năm trước cách đây
mục cha
commit
780a195a81
100 tập tin đã thay đổi với 198 bổ sung181 xóa
  1. 94 77
      L2J_DataPack/dist/game/data/scripts/handlers/bypasshandlers/QuestLink.java
  2. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/118_ToLeadAndBeLed/__init__.py
  3. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/120_PavelsResearch/__init__.py
  4. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/123_TheLeaderAndTheFollower/__init__.py
  5. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/171_ActsOfEvil/__init__.py
  6. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/178_IconicTrinity/__init__.py
  7. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/184_Nikolas_Cooperation_Contract/__init__.py
  8. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/185_Nikolas_Cooperation_Consideration/__init__.py
  9. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/216_TrialOfGuildsman/__init__.py
  10. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/220_TestimonyOfGlory/__init__.py
  11. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/222_TestOfDuelist/__init__.py
  12. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/223_TestOfChampion/__init__.py
  13. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/224_TestOfSagittarius/__init__.py
  14. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/225_TestOfSearcher/__init__.py
  15. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/226_TestOfHealer/__init__.py
  16. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/227_TestOfReformer/__init__.py
  17. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/228_TestOfMagus/__init__.py
  18. 4 4
      L2J_DataPack/dist/game/data/scripts/quests/229_TestOfWitchcraft/__init__.py
  19. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/22_TragedyInVonHellmannForest/__init__.py
  20. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/230_TestOfSummoner/__init__.py
  21. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/231_TestOfMaestro/__init__.py
  22. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/232_TestOfLord/__init__.py
  23. 3 3
      L2J_DataPack/dist/game/data/scripts/quests/233_TestOfWarspirit/__init__.py
  24. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/234_FatesWhisper/__init__.py
  25. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/236_SeedsOfChaos/__init__.py
  26. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/23_LidiasHeart/__init__.py
  27. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/255_Tutorial/__init__.py
  28. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/25_HidingBehindTheTruth/__init__.py
  29. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/330_AdeptOfTaste/__init__.py
  30. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/333_BlackLionHunt/__init__.py
  31. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/334_TheWishingPotion/__init__.py
  32. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/335_TheSongOfTheHunter/__init__.py
  33. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/336_CoinOfMagic/__init__.py
  34. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/337_AudienceWithTheLandDragon/__init__.py
  35. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/340_SubjugationOfLizardmen/__init__.py
  36. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/343_UnderTheShadowOfTheIvoryTower/__init__.py
  37. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/348_ArrogantSearch/__init__.py
  38. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/351_BlackSwan/__init__.py
  39. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/372_LegacyOfInsolence/__init__.py
  40. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/__init__.py
  41. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/383_SearchingForTreasure/__init__.py
  42. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/384_WarehouseKeepersPastime/__init__.py
  43. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/386_StolenDignity/__init__.py
  44. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/419_GetAPet/__init__.py
  45. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/422_RepentYourSins/__init__.py
  46. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/426_FishingShot/__init__.py
  47. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/503_PursuitClanAmbition/__init__.py
  48. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/604_DaimontheWhiteEyedPart2/__init__.py
  49. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/60_GoodWorkReward/__init__.py
  50. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/620_FourGoblets/__init__.py
  51. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/65_CertifiedSoulBreaker/__init__.py
  52. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/663_SeductiveWhispers/__init__.py
  53. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/66_CertifiedArbalester/__init__.py
  54. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/AbstractSagaQuest.java
  55. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00001_LettersOfLove/Q00001_LettersOfLove.java
  56. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00002_WhatWomenWant/Q00002_WhatWomenWant.java
  57. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00003_WillTheSealBeBroken/Q00003_WillTheSealBeBroken.java
  58. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00004_LongLiveThePaagrioLord/Q00004_LongLiveThePaagrioLord.java
  59. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00005_MinersFavor/Q00005_MinersFavor.java
  60. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00006_StepIntoTheFuture/Q00006_StepIntoTheFuture.java
  61. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00007_ATripBegins/Q00007_ATripBegins.java
  62. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00008_AnAdventureBegins/Q00008_AnAdventureBegins.java
  63. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00009_IntoTheCityOfHumans/Q00009_IntoTheCityOfHumans.java
  64. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00010_IntoTheWorld/Q00010_IntoTheWorld.java
  65. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/Q00011_SecretMeetingWithKetraOrcs.java
  66. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/Q00012_SecretMeetingWithVarkaSilenos.java
  67. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00013_ParcelDelivery/Q00013_ParcelDelivery.java
  68. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/Q00014_WhereaboutsOfTheArchaeologist.java
  69. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00015_SweetWhispers/Q00015_SweetWhispers.java
  70. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00016_TheComingDarkness/Q00016_TheComingDarkness.java
  71. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00017_LightAndDarkness/Q00017_LightAndDarkness.java
  72. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/Q00018_MeetingWithTheGoldenRam.java
  73. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00019_GoToThePastureland/Q00019_GoToThePastureland.java
  74. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00020_BringUpWithLove/Q00020_BringUpWithLove.java
  75. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00021_HiddenTruth/Q00021_HiddenTruth.java
  76. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/Q00024_InhabitantsOfTheForestOfTheDead.java
  77. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00026_TiredOfWaiting/Q00026_TiredOfWaiting.java
  78. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/Q00027_ChestCaughtWithABaitOfWind.java
  79. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/Q00028_ChestCaughtWithABaitOfIcyAir.java
  80. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/Q00029_ChestCaughtWithABaitOfEarth.java
  81. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/Q00030_ChestCaughtWithABaitOfFire.java
  82. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00031_SecretBuriedInTheSwamp/Q00031_SecretBuriedInTheSwamp.java
  83. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00033_MakeAPairOfDressShoes/Q00033_MakeAPairOfDressShoes.java
  84. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00034_InSearchOfCloth/Q00034_InSearchOfCloth.java
  85. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00035_FindGlitteringJewelry/Q00035_FindGlitteringJewelry.java
  86. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00036_MakeASewingKit/Q00036_MakeASewingKit.java
  87. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00037_MakeFormalWear/Q00037_MakeFormalWear.java
  88. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00040_ASpecialOrder/Q00040_ASpecialOrder.java
  89. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00042_HelpTheUncle/Q00042_HelpTheUncle.java
  90. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00043_HelpTheSister/Q00043_HelpTheSister.java
  91. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00044_HelpTheSon/Q00044_HelpTheSon.java
  92. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00045_ToTalkingIsland/Q00045_ToTalkingIsland.java
  93. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00046_OnceMoreInTheArmsOfTheMotherTree/Q00046_OnceMoreInTheArmsOfTheMotherTree.java
  94. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00047_IntoTheDarkElvenForest/Q00047_IntoTheDarkElvenForest.java
  95. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00048_ToTheImmortalPlateau/Q00048_ToTheImmortalPlateau.java
  96. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00049_TheRoadHome/Q00049_TheRoadHome.java
  97. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/Q00050_LanoscosSpecialBait.java
  98. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/Q00051_OFullesSpecialBait.java
  99. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/Q00052_WilliesSpecialBait.java
  100. 1 1
      L2J_DataPack/dist/game/data/scripts/quests/Q00053_LinnaeusSpecialBait/Q00053_LinnaeusSpecialBait.java

+ 94 - 77
L2J_DataPack/dist/game/data/scripts/handlers/bypasshandlers/QuestLink.java

@@ -18,23 +18,23 @@
  */
 package handlers.bypasshandlers;
 
+import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.logging.Level;
 
-import javolution.util.FastList;
-
-import com.l2jserver.Config;
-import com.l2jserver.gameserver.cache.HtmCache;
+import com.l2jserver.gameserver.datatables.NpcData;
 import com.l2jserver.gameserver.handler.IBypassHandler;
 import com.l2jserver.gameserver.instancemanager.QuestManager;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.events.EventType;
 import com.l2jserver.gameserver.model.events.listeners.AbstractEventListener;
 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.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
@@ -89,37 +89,49 @@ public class QuestLink implements IBypassHandler
 	{
 		final StringBuilder sb = StringUtil.startAppend(150, "<html><body>");
 		String state = "";
+		String color = "";
 		int questId = -1;
-		for (Quest q : quests)
+		for (Quest quest : quests)
 		{
-			if (q == null)
+			if (quest == null)
 			{
 				continue;
 			}
 			
-			StringUtil.append(sb, "<a action=\"bypass -h npc_", String.valueOf(npc.getObjectId()), "_Quest ", q.getName(), "\">[");
-			final QuestState qs = player.getQuestState(q.getScriptName());
+			final QuestState qs = player.getQuestState(quest.getScriptName());
 			if ((qs == null) || qs.isCreated())
 			{
-				state = q.isCustomQuest() ? "" : "01";
+				state = quest.isCustomQuest() ? "" : "01";
+				if (quest.canStartQuest(player))
+				{
+					color = "bbaa88";
+				}
+				else
+				{
+					color = "a62f31";
+				}
 			}
 			else if (qs.isStarted())
 			{
-				state = q.isCustomQuest() ? " (In Progress)" : "02";
+				state = quest.isCustomQuest() ? " (In Progress)" : "02";
+				color = "ffdd66";
 			}
 			else if (qs.isCompleted())
 			{
-				state = q.isCustomQuest() ? " (Done)" : "03";
+				state = quest.isCustomQuest() ? " (Done)" : "03";
+				color = "787878";
 			}
+			StringUtil.append(sb, "<a action=\"bypass -h npc_", String.valueOf(npc.getObjectId()), "_Quest ", quest.getName(), "\">[");
+			StringUtil.append(sb, "<font color=\"" + color + "\">");
 			
-			if (q.isCustomQuest())
+			if (quest.isCustomQuest())
 			{
-				StringUtil.append(sb, q.getDescr(), state);
+				StringUtil.append(sb, quest.getDescr(), state);
 			}
 			else
 			{
-				questId = q.getId();
-				if (q.getId() > 10000)
+				questId = quest.getId();
+				if (quest.getId() > 10000)
 				{
 					questId -= 5000;
 				}
@@ -129,7 +141,7 @@ public class QuestLink implements IBypassHandler
 				}
 				StringUtil.append(sb, "<fstring>", String.valueOf(questId), state, "</fstring>");
 			}
-			sb.append("]</a><br>");
+			sb.append("]</font></a><br>");
 		}
 		sb.append("</body></html>");
 		
@@ -153,10 +165,10 @@ public class QuestLink implements IBypassHandler
 	{
 		String content = null;
 		
-		Quest q = QuestManager.getInstance().getQuest(questId);
+		final Quest q = QuestManager.getInstance().getQuest(questId);
 		
 		// Get the state of the selected quest
-		QuestState qs = player.getQuestState(questId);
+		final QuestState qs = player.getQuestState(questId);
 		
 		if (q != null)
 		{
@@ -179,52 +191,15 @@ public class QuestLink implements IBypassHandler
 						return;
 					}
 				}
-				// check for start point
-				for (AbstractEventListener listener : npc.getListeners(EventType.ON_NPC_QUEST_START))
-				{
-					if (listener.getOwner() instanceof Quest)
-					{
-						final Quest quest = (Quest) listener.getOwner();
-						if (quest == q)
-						{
-							qs = q.newQuestState(player);
-							break;
-						}
-					}
-				}
 			}
+			
+			q.notifyTalk(npc, player);
 		}
 		else
 		{
 			content = Quest.getNoQuestMsg(player); // no quests found
 		}
 		
-		if ((q != null) && (qs != null))
-		{
-			// If the quest is already started, no need to show a window
-			if (!q.notifyTalk(npc, player))
-			{
-				return;
-			}
-			
-			questId = q.getName();
-			String stateId = State.getStateName(qs.getState());
-			String path = "data/scripts/quests/" + questId + "/" + stateId + ".htm";
-			content = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), path); // TODO path for quests html
-			
-			if (Config.DEBUG)
-			{
-				if (content != null)
-				{
-					_log.fine("Showing quest window for quest " + questId + " html path: " + path);
-				}
-				else
-				{
-					_log.fine("File not exists for quest " + questId + " html path: " + path);
-				}
-			}
-		}
-		
 		// Send a Server->Client packet NpcHtmlMessage to the L2PcInstance in order to display the message of the L2NpcInstance
 		if (content != null)
 		{
@@ -235,6 +210,43 @@ public class QuestLink implements IBypassHandler
 		player.sendPacket(ActionFailed.STATIC_PACKET);
 	}
 	
+	/**
+	 * @param player
+	 * @param npcId The Identifier of the NPC
+	 * @return a table containing all QuestState from the table _quests in which the L2PcInstance must talk to the NPC.
+	 */
+	private static List<QuestState> getQuestsForTalk(final L2PcInstance player, int npcId)
+	{
+		// Create a QuestState table that will contain all QuestState to modify
+		final List<QuestState> states = new ArrayList<>();
+		
+		final L2NpcTemplate template = NpcData.getInstance().getTemplate(npcId);
+		if (template == null)
+		{
+			_log.log(Level.WARNING, QuestLink.class.getSimpleName() + ": " + player.getName() + " requested quests for talk on non existing npc " + npcId);
+			return states;
+		}
+		
+		// Go through the QuestState of the L2PcInstance quests
+		for (AbstractEventListener listener : template.getListeners(EventType.ON_NPC_TALK))
+		{
+			if (listener.getOwner() instanceof Quest)
+			{
+				final Quest quest = (Quest) listener.getOwner();
+				
+				// Copy the current L2PcInstance QuestState in the QuestState table
+				final QuestState st = player.getQuestState(quest.getName());
+				if (st != null)
+				{
+					states.add(st);
+				}
+			}
+		}
+		
+		// Return a table containing all QuestState to modify
+		return states;
+	}
+	
 	/**
 	 * Collect awaiting quests/start points and display a QuestChooseWindow (if several available) or QuestWindow.
 	 * @param player the L2PcInstance that talk with the {@code npc}.
@@ -242,28 +254,26 @@ public class QuestLink implements IBypassHandler
 	 */
 	public static void showQuestWindow(L2PcInstance player, L2Npc npc)
 	{
+		boolean conditionMeet = false;
 		// collect awaiting quests and start points
-		List<Quest> options = new FastList<>();
-		
-		QuestState[] awaits = player.getQuestsForTalk(npc.getTemplate().getId());
+		final Set<Quest> options = new HashSet<>();
 		
 		// Quests are limited between 1 and 999 because those are the quests that are supported by the client.
 		// By limiting them there, we are allowed to create custom quests at higher IDs without interfering
-		if (awaits != null)
+		for (QuestState state : getQuestsForTalk(player, npc.getId()))
 		{
-			for (QuestState state : awaits)
+			final Quest quest = state.getQuest();
+			if (quest == null)
 			{
-				if (state.getQuest() == null)
-				{
-					_log.log(Level.WARNING, player + " Requested incorrect quest state for non existing quest: " + state.getQuestName());
-					continue;
-				}
-				if (!options.contains(state.getQuest()))
+				_log.log(Level.WARNING, player + " Requested incorrect quest state for non existing quest: " + state.getQuestName());
+				continue;
+			}
+			if ((quest.getId() > 0) && (quest.getId() < 20000))
+			{
+				options.add(quest);
+				if (quest.canStartQuest(player))
 				{
-					if ((state.getQuest().getId() > 0) && (state.getQuest().getId() < 20000))
-					{
-						options.add(state.getQuest());
-					}
+					conditionMeet = true;
 				}
 			}
 		}
@@ -273,21 +283,28 @@ public class QuestLink implements IBypassHandler
 			if (listener.getOwner() instanceof Quest)
 			{
 				final Quest quest = (Quest) listener.getOwner();
-				if (!options.contains(quest) && (quest.getId() > 0) && (quest.getId() < 20000))
+				if ((quest.getId() > 0) && (quest.getId() < 20000))
 				{
 					options.add(quest);
+					if (quest.canStartQuest(player))
+					{
+						conditionMeet = true;
+					}
 				}
 			}
 		}
 		
-		// Display a QuestChooseWindow (if several quests are available) or QuestWindow
-		if (options.size() > 1)
+		if (!conditionMeet)
+		{
+			showQuestWindow(player, npc, "");
+		}
+		else if (options.size() > 1)
 		{
 			showQuestChooseWindow(player, npc, options.toArray(new Quest[options.size()]));
 		}
 		else if (options.size() == 1)
 		{
-			showQuestWindow(player, npc, options.get(0).getName());
+			showQuestWindow(player, npc, options.stream().findFirst().get().getName());
 		}
 		else
 		{

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/118_ToLeadAndBeLed/__init__.py

@@ -87,7 +87,7 @@ class Quest (JQuest) :
  def onTalk (self,npc,player):
    npcId = npc.getId()
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    id = st.getState()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/120_PavelsResearch/__init__.py

@@ -213,7 +213,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
     htmltext = Quest.getNoQuestMsg(player)
-    st = player.getQuestState(qn)
+    st = self.getQuestState(player, true)
     if not st : return htmltext
     state = st.getState()
     npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/123_TheLeaderAndTheFollower/__init__.py

@@ -80,7 +80,7 @@ class Quest (JQuest) :
  def onTalk (self,npc,player):
    npcId = npc.getId()
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    id = st.getState()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/171_ActsOfEvil/__init__.py

@@ -60,7 +60,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
      htmltext = Quest.getNoQuestMsg(player)
-     st = player.getQuestState(qn)
+     st = self.getQuestState(player, true)
      if not st : return htmltext
 
      npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/178_IconicTrinity/__init__.py

@@ -100,7 +100,7 @@ class Quest (JQuest) :
  def onTalk (self,npc,player):
      npcId = npc.getId()
      htmltext = Quest.getNoQuestMsg(player)
-     st = player.getQuestState(qn)
+     st = self.getQuestState(player, true)
      if not st : return htmltext
      id = st.getState()
      cond = st.getInt("cond")

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/184_Nikolas_Cooperation_Contract/__init__.py

@@ -112,7 +112,7 @@ class Quest (JQuest) :
 
     def onTalk (self,npc,player):
         htmltext = Quest.getNoQuestMsg(player)
-        st = player.getQuestState(qn)
+        st = self.getQuestState(player, true)
         if not st : return htmltext
         npcId = npc.getId()
         id = st.getState()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/185_Nikolas_Cooperation_Consideration/__init__.py

@@ -112,7 +112,7 @@ class Quest (JQuest) :
 
     def onTalk (self,npc,player):
         htmltext = Quest.getNoQuestMsg(player)
-        st = player.getQuestState(qn)
+        st = self.getQuestState(player, true)
         if not st : return htmltext
         npcId = npc.getId()
         id = st.getState()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/216_TrialOfGuildsman/__init__.py

@@ -137,7 +137,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
    npcId = npc.getId()
    id = st.getState()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/220_TestimonyOfGlory/__init__.py

@@ -186,7 +186,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/222_TestOfDuelist/__init__.py

@@ -88,7 +88,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/223_TestOfChampion/__init__.py

@@ -112,7 +112,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
    npcId = npc.getId()
    id = st.getState()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/224_TestOfSagittarius/__init__.py

@@ -128,7 +128,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/225_TestOfSearcher/__init__.py

@@ -85,7 +85,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
    cond = st.getInt("cond")
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/226_TestOfHealer/__init__.py

@@ -141,7 +141,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/227_TestOfReformer/__init__.py

@@ -83,7 +83,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/228_TestOfMagus/__init__.py

@@ -110,7 +110,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 4 - 4
L2J_DataPack/dist/game/data/scripts/quests/229_TestOfWitchcraft/__init__.py

@@ -66,8 +66,8 @@ DROPLIST={
 
 class Quest (JQuest) :
 
-  def __init__(self,id,name,descr):
-    JQuest.__init__(self,id,name,descr)
+  def __init__(self,id,name,descr):
+    JQuest.__init__(self,id,name,descr)
     self.questItemIds = range(3308,3336)+[3029]
 
   def onEvent (self,event,st) :
@@ -193,7 +193,7 @@ class Quest (JQuest) :
   def onTalk (self,npc,player):
     htmltext = Quest.getNoQuestMsg(player)
     
-    st = player.getQuestState(qn)
+    st = self.getQuestState(player, true)
     if not st : return htmltext
 
     npcId = npc.getId()
@@ -219,7 +219,7 @@ class Quest (JQuest) :
       return htmltext
     # already done
     elif id == State.COMPLETED:
-      return Quest.getAlreadyCompletedMsg(player)
+      return Quest.getAlreadyCompletedMsg(player)
 
     # in progress, player is working on the quest
     else:

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/22_TragedyInVonHellmannForest/__init__.py

@@ -155,7 +155,7 @@ class Quest (JQuest) :
    return htmltext 
 
  def onTalk (self,npc,player):
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    htmltext = Quest.getNoQuestMsg(player) 
    if not st: return htmltext
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/230_TestOfSummoner/__init__.py

@@ -195,7 +195,7 @@ class Quest (JQuest) :
 
    def onTalk (self,npc,player):
       htmltext = Quest.getNoQuestMsg(player)
-      st = player.getQuestState(qn)
+      st = self.getQuestState(player, true)
       if not st : return htmltext
 
       npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/231_TestOfMaestro/__init__.py

@@ -94,7 +94,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/232_TestOfLord/__init__.py

@@ -155,7 +155,7 @@ class Quest (JQuest) :
     
   def onTalk (self,npc,player):
     htmltext = Quest.getNoQuestMsg(player)
-    st = player.getQuestState(qn)
+    st = self.getQuestState(player, true)
     if not st : return htmltext
 
     npcId = npc.getId()

+ 3 - 3
L2J_DataPack/dist/game/data/scripts/quests/233_TestOfWarspirit/__init__.py

@@ -143,7 +143,7 @@ class Quest (JQuest) :
 
   def onTalk (self,npc,player):
     htmltext = Quest.getNoQuestMsg(player)
-    st = player.getQuestState(qn)
+    st = self.getQuestState(player, true)
     if not st : return htmltext
 
     npcId = npc.getId()
@@ -350,9 +350,9 @@ class Quest (JQuest) :
           count = st.getQuestItemsCount(item)
           if count >= maxcount : continue
           st.giveItems(item,1)
-          if st.getInt(var) < 9:
+          if st.getInt(var) < 9:
             isValue = isValue + 1
-            st.set(var,str(isValue))
+            st.set(var,str(isValue))
           if st.getQuestItemsCount(KIRUNAS_SKULL) and st.getInt(var)==9:
             st.set(var,"10")
             st.playSound("ItemSound.quest_middle")

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/234_FatesWhisper/__init__.py

@@ -138,7 +138,7 @@ class Quest (JQuest) :
 
   def onTalk (self,npc,player):
     htmltext = Quest.getNoQuestMsg(player)
-    st = player.getQuestState(qn)
+    st = self.getQuestState(player, true)
     if not st : return htmltext
 
     npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/236_SeedsOfChaos/__init__.py

@@ -143,7 +143,7 @@ class Quest (JQuest) :
  
  def onTalk (self,npc,player):
     htmltext = Quest.getNoQuestMsg(player)
-    st = player.getQuestState(qn)
+    st = self.getQuestState(player, true)
     if not st : return htmltext
     npcId = npc.getId()
     id = st.getState()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/23_LidiasHeart/__init__.py

@@ -81,7 +81,7 @@ class Quest (JQuest) :
 
     def onTalk (self,npc,player):
         htmltext = Quest.getNoQuestMsg(player)
-        st = player.getQuestState(qn)
+        st = self.getQuestState(player, true)
         if not st : return htmltext
         state = st.getState()
         if state == State.COMPLETED :

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/255_Tutorial/__init__.py

@@ -131,7 +131,7 @@ class Quest (JQuest) :
     def onAdvEvent(self,event,npc,player):
         if Config.DISABLE_TUTORIAL :
             return
-        st = player.getQuestState(qn)
+        st = self.getQuestState(player, true)
         classId = int(st.getPlayer().getClassId().getId())
         string = event[0:2]
         htmltext = ""

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/25_HidingBehindTheTruth/__init__.py

@@ -126,7 +126,7 @@ class Quest (JQuest) :
 
     def onTalk (self,npc,player):
         htmltext = Quest.getNoQuestMsg(player)
-        st = player.getQuestState(qn)
+        st = self.getQuestState(player, true)
         if not st : return htmltext
         npcId = npc.getId()
         id = st.getState()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/330_AdeptOfTaste/__init__.py

@@ -109,7 +109,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/333_BlackLionHunt/__init__.py

@@ -462,7 +462,7 @@ class Quest (JQuest) :
     
   def onTalk (self,npc,player):
     htmltext = Quest.getNoQuestMsg(player)
-    st = player.getQuestState(qn)
+    st = self.getQuestState(player, true)
     if not st : return htmltext
 
     npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/334_TheWishingPotion/__init__.py

@@ -228,7 +228,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
    npcId = npc.getId()
    cond = st.getInt("cond")

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/335_TheSongOfTheHunter/__init__.py

@@ -398,7 +398,7 @@ class Quest (JQuest) :
 
     def onTalk (self,npc,player):
         htmltext = Quest.getNoQuestMsg(player)
-        st = player.getQuestState(qn)
+        st = self.getQuestState(player, true)
         if not st : return htmltext
         npcId = npc.getId()
         cond = st.getInt("cond")

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/336_CoinOfMagic/__init__.py

@@ -292,7 +292,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/337_AudienceWithTheLandDragon/__init__.py

@@ -102,7 +102,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
     htmltext = Quest.getNoQuestMsg(player)
-    st = player.getQuestState(qn)
+    st = self.getQuestState(player, true)
     if not st : return htmltext
     npcId = npc.getId()
     cond = st.getInt("cond")

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/340_SubjugationOfLizardmen/__init__.py

@@ -64,7 +64,7 @@ class Quest (JQuest) :
  def onTalk (self,npc,player):
      npcId = npc.getId()
      htmltext = Quest.getNoQuestMsg(player)
-     st = player.getQuestState(qn)
+     st = self.getQuestState(player, true)
      if not st : return htmltext
      id = st.getState()
      cond = st.getInt("cond")

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/343_UnderTheShadowOfTheIvoryTower/__init__.py

@@ -149,7 +149,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
      htmltext = Quest.getNoQuestMsg(player)
-     st = player.getQuestState(qn)
+     st = self.getQuestState(player, true)
      if not st : return htmltext
 
      npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/348_ArrogantSearch/__init__.py

@@ -192,7 +192,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
     htmltext = Quest.getNoQuestMsg(player)
-    st = player.getQuestState(qn)
+    st = self.getQuestState(player, true)
     if not st : return htmltext
 
     npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/351_BlackSwan/__init__.py

@@ -52,7 +52,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
      htmltext = Quest.getNoQuestMsg(player)
-     st = player.getQuestState(qn)
+     st = self.getQuestState(player, true)
      if not st : return htmltext
      npcId = npc.getId()
      id = st.getState()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/372_LegacyOfInsolence/__init__.py

@@ -133,7 +133,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/373_SupplierOfReagents/__init__.py

@@ -251,7 +251,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/383_SearchingForTreasure/__init__.py

@@ -67,7 +67,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
      htmltext = Quest.getNoQuestMsg(player)
-     st = player.getQuestState(qn)
+     st = self.getQuestState(player, true)
      if not st : return htmltext
 
      npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/384_WarehouseKeepersPastime/__init__.py

@@ -213,7 +213,7 @@ class Quest (JQuest) :
    return htmltext
 
  def onTalk (self,npc,player) :
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    htmltext = Quest.getNoQuestMsg(player) 
    if not st: return htmltext
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/386_StolenDignity/__init__.py

@@ -175,7 +175,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/419_GetAPet/__init__.py

@@ -180,7 +180,7 @@ class Quest (JQuest):
 
   def onTalk (self,npc,player):
     htmltext = Quest.getNoQuestMsg(player)
-    st = player.getQuestState(qn)
+    st = self.getQuestState(player, true)
     if not st : return htmltext
 
     npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/422_RepentYourSins/__init__.py

@@ -128,7 +128,7 @@ class Quest (JQuest) :
 
  def onTalk (Self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
    condition = st.getInt("cond")
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/426_FishingShot/__init__.py

@@ -79,7 +79,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/503_PursuitClanAmbition/__init__.py

@@ -296,7 +296,7 @@ class Quest (JQuest) :
 
   def onTalk (self,npc,player):
     htmltext = Quest.getNoQuestMsg(player)
-    st = player.getQuestState(qn)
+    st = self.getQuestState(player, true)
     if not st : return htmltext
 
     npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/604_DaimontheWhiteEyedPart2/__init__.py

@@ -90,7 +90,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player): 
    htmltext = Quest.getNoQuestMsg(player) 
-   st = player.getQuestState(qn) 
+   st = self.getQuestState(player, true)
    if st : 
      npcId = npc.getId() 
      id = st.getState() 

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/60_GoodWorkReward/__init__.py

@@ -149,7 +149,7 @@ class Quest (JQuest) :
 
  def onTalk (self,npc,player):
    htmltext = Quest.getNoQuestMsg(player)
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    if not st : return htmltext
 
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/620_FourGoblets/__init__.py

@@ -39,7 +39,7 @@ class Quest (JQuest) :
 
   def onTalk (Self,npc,player) :
     htmltext = Quest.getNoQuestMsg(player)
-    st = player.getQuestState(qn)
+    st = self.getQuestState(player, true)
     id = st.getState()
     if id == State.CREATED :
       st.set("cond","0")

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/65_CertifiedSoulBreaker/__init__.py

@@ -113,7 +113,7 @@ class Quest (JQuest) :
 
     def onTalk (self,npc,player):
         htmltext = Quest.getNoQuestMsg(player)
-        st = player.getQuestState(qn)
+        st = self.getQuestState(player, true)
         if not st : return htmltext
         npcId = npc.getId()
         id = st.getState()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/663_SeductiveWhispers/__init__.py

@@ -152,7 +152,7 @@ class Quest (JQuest) :
    return htmltext
 
  def onTalk (self,npc,player):
-   st = player.getQuestState(qn)
+   st = self.getQuestState(player, true)
    htmltext = Quest.getNoQuestMsg(player)
    if not st : return htmltext
    npcId = npc.getId()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/66_CertifiedArbalester/__init__.py

@@ -96,7 +96,7 @@ class Quest (JQuest) :
 
     def onTalk (self,npc,player):
         htmltext = Quest.getNoQuestMsg(player)
-        st = player.getQuestState(qn)
+        st = self.getQuestState(player, true)
         if not st : return htmltext
         npcId = npc.getId()
         id = st.getState()

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/AbstractSagaQuest.java

@@ -745,7 +745,7 @@ public abstract class AbstractSagaQuest extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st != null)
 		{
 			int npcId = npc.getId();

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00001_LettersOfLove/Q00001_LettersOfLove.java

@@ -88,7 +88,7 @@ public class Q00001_LettersOfLove extends Quest
 	@Override
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return getNoQuestMsg(player);

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00002_WhatWomenWant/Q00002_WhatWomenWant.java

@@ -97,7 +97,7 @@ public class Q00002_WhatWomenWant extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00003_WillTheSealBeBroken/Q00003_WillTheSealBeBroken.java

@@ -113,7 +113,7 @@ public class Q00003_WillTheSealBeBroken extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00004_LongLiveThePaagrioLord/Q00004_LongLiveThePaagrioLord.java

@@ -88,7 +88,7 @@ public class Q00004_LongLiveThePaagrioLord extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00005_MinersFavor/Q00005_MinersFavor.java

@@ -96,7 +96,7 @@ public class Q00005_MinersFavor extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00006_StepIntoTheFuture/Q00006_StepIntoTheFuture.java

@@ -93,7 +93,7 @@ public class Q00006_StepIntoTheFuture extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00007_ATripBegins/Q00007_ATripBegins.java

@@ -93,7 +93,7 @@ public class Q00007_ATripBegins extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00008_AnAdventureBegins/Q00008_AnAdventureBegins.java

@@ -93,7 +93,7 @@ public class Q00008_AnAdventureBegins extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00009_IntoTheCityOfHumans/Q00009_IntoTheCityOfHumans.java

@@ -82,7 +82,7 @@ public class Q00009_IntoTheCityOfHumans extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00010_IntoTheWorld/Q00010_IntoTheWorld.java

@@ -96,7 +96,7 @@ public class Q00010_IntoTheWorld extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00011_SecretMeetingWithKetraOrcs/Q00011_SecretMeetingWithKetraOrcs.java

@@ -87,7 +87,7 @@ public class Q00011_SecretMeetingWithKetraOrcs extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00012_SecretMeetingWithVarkaSilenos/Q00012_SecretMeetingWithVarkaSilenos.java

@@ -87,7 +87,7 @@ public class Q00012_SecretMeetingWithVarkaSilenos extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00013_ParcelDelivery/Q00013_ParcelDelivery.java

@@ -81,7 +81,7 @@ public class Q00013_ParcelDelivery extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00014_WhereaboutsOfTheArchaeologist/Q00014_WhereaboutsOfTheArchaeologist.java

@@ -81,7 +81,7 @@ public class Q00014_WhereaboutsOfTheArchaeologist extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00015_SweetWhispers/Q00015_SweetWhispers.java

@@ -79,7 +79,7 @@ public class Q00015_SweetWhispers extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00016_TheComingDarkness/Q00016_TheComingDarkness.java

@@ -89,7 +89,7 @@ public class Q00016_TheComingDarkness extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00017_LightAndDarkness/Q00017_LightAndDarkness.java

@@ -94,7 +94,7 @@ public class Q00017_LightAndDarkness extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00018_MeetingWithTheGoldenRam/Q00018_MeetingWithTheGoldenRam.java

@@ -88,7 +88,7 @@ public class Q00018_MeetingWithTheGoldenRam extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00019_GoToThePastureland/Q00019_GoToThePastureland.java

@@ -90,7 +90,7 @@ public class Q00019_GoToThePastureland extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00020_BringUpWithLove/Q00020_BringUpWithLove.java

@@ -95,7 +95,7 @@ public class Q00020_BringUpWithLove extends Quest
 	@Override
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
-		QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		String htmltext = getNoQuestMsg(player);
 		if (st == null)
 		{

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00021_HiddenTruth/Q00021_HiddenTruth.java

@@ -216,7 +216,7 @@ public class Q00021_HiddenTruth extends Quest
 	@Override
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
-		QuestState st = player.getQuestState(getName());
+		QuestState st = getQuestState(player, true);
 		String htmltext = getNoQuestMsg(player);
 		if (st != null)
 		{

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00024_InhabitantsOfTheForestOfTheDead/Q00024_InhabitantsOfTheForestOfTheDead.java

@@ -220,7 +220,7 @@ public class Q00024_InhabitantsOfTheForestOfTheDead extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		
 		if (st == null)
 		{

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00026_TiredOfWaiting/Q00026_TiredOfWaiting.java

@@ -111,7 +111,7 @@ public final class Q00026_TiredOfWaiting extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00027_ChestCaughtWithABaitOfWind/Q00027_ChestCaughtWithABaitOfWind.java

@@ -90,7 +90,7 @@ public class Q00027_ChestCaughtWithABaitOfWind extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00028_ChestCaughtWithABaitOfIcyAir/Q00028_ChestCaughtWithABaitOfIcyAir.java

@@ -90,7 +90,7 @@ public class Q00028_ChestCaughtWithABaitOfIcyAir extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00029_ChestCaughtWithABaitOfEarth/Q00029_ChestCaughtWithABaitOfEarth.java

@@ -90,7 +90,7 @@ public class Q00029_ChestCaughtWithABaitOfEarth extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00030_ChestCaughtWithABaitOfFire/Q00030_ChestCaughtWithABaitOfFire.java

@@ -89,7 +89,7 @@ public class Q00030_ChestCaughtWithABaitOfFire extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00031_SecretBuriedInTheSwamp/Q00031_SecretBuriedInTheSwamp.java

@@ -127,7 +127,7 @@ public final class Q00031_SecretBuriedInTheSwamp extends Quest
 	@Override
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		String htmltext = getNoQuestMsg(player);
 		if (st == null)
 		{

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00033_MakeAPairOfDressShoes/Q00033_MakeAPairOfDressShoes.java

@@ -111,7 +111,7 @@ public class Q00033_MakeAPairOfDressShoes extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00034_InSearchOfCloth/Q00034_InSearchOfCloth.java

@@ -140,7 +140,7 @@ public class Q00034_InSearchOfCloth extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00035_FindGlitteringJewelry/Q00035_FindGlitteringJewelry.java

@@ -132,7 +132,7 @@ public class Q00035_FindGlitteringJewelry extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00036_MakeASewingKit/Q00036_MakeASewingKit.java

@@ -124,7 +124,7 @@ public class Q00036_MakeASewingKit extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00037_MakeFormalWear/Q00037_MakeFormalWear.java

@@ -128,7 +128,7 @@ public class Q00037_MakeFormalWear extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00040_ASpecialOrder/Q00040_ASpecialOrder.java

@@ -134,7 +134,7 @@ public final class Q00040_ASpecialOrder extends Quest
 	@Override
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		String htmltext = getNoQuestMsg(player);
 		if (st == null)
 		{

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00042_HelpTheUncle/Q00042_HelpTheUncle.java

@@ -134,7 +134,7 @@ public class Q00042_HelpTheUncle extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00043_HelpTheSister/Q00043_HelpTheSister.java

@@ -134,7 +134,7 @@ public class Q00043_HelpTheSister extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00044_HelpTheSon/Q00044_HelpTheSon.java

@@ -135,7 +135,7 @@ public class Q00044_HelpTheSon extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00045_ToTalkingIsland/Q00045_ToTalkingIsland.java

@@ -188,7 +188,7 @@ public final class Q00045_ToTalkingIsland extends Quest
 	@Override
 	public String onTalk(L2Npc npc, L2PcInstance talker)
 	{
-		QuestState st = talker.getQuestState(getName());
+		QuestState st = getQuestState(talker, true);
 		String htmltext = getNoQuestMsg(talker);
 		if (st == null)
 		{

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00046_OnceMoreInTheArmsOfTheMotherTree/Q00046_OnceMoreInTheArmsOfTheMotherTree.java

@@ -188,7 +188,7 @@ public final class Q00046_OnceMoreInTheArmsOfTheMotherTree extends Quest
 	@Override
 	public String onTalk(L2Npc npc, L2PcInstance talker)
 	{
-		QuestState st = talker.getQuestState(getName());
+		QuestState st = getQuestState(talker, true);
 		String htmltext = getNoQuestMsg(talker);
 		if (st == null)
 		{

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00047_IntoTheDarkElvenForest/Q00047_IntoTheDarkElvenForest.java

@@ -188,7 +188,7 @@ public final class Q00047_IntoTheDarkElvenForest extends Quest
 	@Override
 	public String onTalk(L2Npc npc, L2PcInstance talker)
 	{
-		QuestState st = talker.getQuestState(getName());
+		QuestState st = getQuestState(talker, true);
 		String htmltext = getNoQuestMsg(talker);
 		if (st == null)
 		{

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00048_ToTheImmortalPlateau/Q00048_ToTheImmortalPlateau.java

@@ -188,7 +188,7 @@ public final class Q00048_ToTheImmortalPlateau extends Quest
 	@Override
 	public String onTalk(L2Npc npc, L2PcInstance talker)
 	{
-		QuestState st = talker.getQuestState(getName());
+		QuestState st = getQuestState(talker, true);
 		String htmltext = getNoQuestMsg(talker);
 		if (st == null)
 		{

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00049_TheRoadHome/Q00049_TheRoadHome.java

@@ -188,7 +188,7 @@ public final class Q00049_TheRoadHome extends Quest
 	@Override
 	public String onTalk(L2Npc npc, L2PcInstance talker)
 	{
-		QuestState st = talker.getQuestState(getName());
+		QuestState st = getQuestState(talker, true);
 		String htmltext = getNoQuestMsg(talker);
 		if (st == null)
 		{

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00050_LanoscosSpecialBait/Q00050_LanoscosSpecialBait.java

@@ -111,7 +111,7 @@ public class Q00050_LanoscosSpecialBait extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00051_OFullesSpecialBait/Q00051_OFullesSpecialBait.java

@@ -107,7 +107,7 @@ public class Q00051_OFullesSpecialBait extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00052_WilliesSpecialBait/Q00052_WilliesSpecialBait.java

@@ -107,7 +107,7 @@ public class Q00052_WilliesSpecialBait extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

+ 1 - 1
L2J_DataPack/dist/game/data/scripts/quests/Q00053_LinnaeusSpecialBait/Q00053_LinnaeusSpecialBait.java

@@ -119,7 +119,7 @@ public class Q00053_LinnaeusSpecialBait extends Quest
 	public String onTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = getNoQuestMsg(player);
-		final QuestState st = player.getQuestState(getName());
+		final QuestState st = getQuestState(player, true);
 		if (st == null)
 		{
 			return htmltext;

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác