Переглянути джерело

Merge pull request #4 from Sdw-/quest_changes

Adding support for start quest condition
Rumen Nikiforov 10 роки тому
батько
коміт
780a195a81
100 змінених файлів з 198 додано та 181 видалено
  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;

Деякі файли не було показано, через те що забагато файлів було змінено