From 6a33d1fae1de9ee0eddfeb6d5541d31aa31dbfc0 Mon Sep 17 00:00:00 2001
From: Zoey76 <zoey_76@msn.com>
Date: Fri, 11 Dec 2015 00:00:28 -0200
Subject: [PATCH] New parameters for instances

---
 .../OracleTeleport/OracleTeleport.java        |  8 +++----
 .../admincommandhandlers/AdminShowQuests.java | 21 ++++++++++++-------
 .../handlers/bypasshandlers/QuestLink.java    |  3 ++-
 dist/game/data/xsd/instance.xsd               |  2 ++
 4 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/dist/game/data/scripts/ai/npc/Teleports/OracleTeleport/OracleTeleport.java b/dist/game/data/scripts/ai/npc/Teleports/OracleTeleport/OracleTeleport.java
index c6fcf9b939..a63a82ccc0 100644
--- a/dist/game/data/scripts/ai/npc/Teleports/OracleTeleport/OracleTeleport.java
+++ b/dist/game/data/scripts/ai/npc/Teleports/OracleTeleport/OracleTeleport.java
@@ -18,8 +18,6 @@
  */
 package ai.npc.Teleports.OracleTeleport;
 
-import ai.npc.AbstractNpcAI;
-
 import com.l2jserver.gameserver.enums.QuestSound;
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Npc;
@@ -30,6 +28,8 @@ import com.l2jserver.gameserver.model.quest.State;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.util.Util;
 
+import ai.npc.AbstractNpcAI;
+
 /**
  * Oracle teleport AI.
  * @author Charus
@@ -322,7 +322,7 @@ public final class OracleTeleport extends AbstractNpcAI
 				htmltext = "1.htm";
 				st.exitQuest(true);
 			}
-			else if (player.getAllActiveQuests().length > 23)
+			else if (player.getAllActiveQuests().size() > 23)
 			{
 				htmltext = "1a.htm";
 				st.exitQuest(true);
@@ -345,7 +345,7 @@ public final class OracleTeleport extends AbstractNpcAI
 				htmltext = "ziggurat_lowlevel.htm";
 				st.exitQuest(true);
 			}
-			else if (player.getAllActiveQuests().length > 40)
+			else if (player.getAllActiveQuests().size() > 40)
 			{
 				player.sendPacket(SystemMessageId.TOO_MANY_QUESTS);
 				st.exitQuest(true);
diff --git a/dist/game/data/scripts/handlers/admincommandhandlers/AdminShowQuests.java b/dist/game/data/scripts/handlers/admincommandhandlers/AdminShowQuests.java
index 8b2a3991f5..8fb376f603 100644
--- a/dist/game/data/scripts/handlers/admincommandhandlers/AdminShowQuests.java
+++ b/dist/game/data/scripts/handlers/admincommandhandlers/AdminShowQuests.java
@@ -156,7 +156,8 @@ public class AdminShowQuests implements IAdminCommandHandler
 	
 	private static void showFirstQuestMenu(L2PcInstance target, L2PcInstance actor)
 	{
-		StringBuilder replyMSG = new StringBuilder("<html><body><table width=270><tr><td width=45><button value=\"Main\" action=\"bypass -h admin_admin\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td width=180><center>Player: " + target.getName() + "</center></td><td width=45><button value=\"Back\" action=\"bypass -h admin_admin6\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr></table>");
+		StringBuilder replyMSG = new StringBuilder("<html><body><table width=270><tr><td width=45><button value=\"Main\" action=\"bypass -h admin_admin\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td width=180><center>Player: " + target.getName()
+			+ "</center></td><td width=45><button value=\"Back\" action=\"bypass -h admin_admin6\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr></table>");
 		final NpcHtmlMessage adminReply = new NpcHtmlMessage();
 		int ID = target.getObjectId();
 		
@@ -215,12 +216,15 @@ public class AdminShowQuests implements IAdminCommandHandler
 						{
 							continue;
 						}
-						replyMSG.append("<tr><td>" + var_name + "</td><td>" + rs.getString(2) + "</td><td><edit var=\"var" + var_name + "\" width=80 height=15></td><td><button value=\"Set\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + val[1] + " " + var_name + " $var" + var_name + "\" width=30 height=15 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td><button value=\"Del\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + val[1] + " " + var_name + " delete\" width=30 height=15 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>");
+						replyMSG.append("<tr><td>" + var_name + "</td><td>" + rs.getString(2) + "</td><td><edit var=\"var" + var_name + "\" width=80 height=15></td><td><button value=\"Set\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + val[1] + " " + var_name + " $var"
+							+ var_name + "\" width=30 height=15 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td><button value=\"Del\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + val[1] + " " + var_name
+							+ " delete\" width=30 height=15 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>");
 					}
 					replyMSG.append("</table><br><br><table width=250><tr><td>Repeatable quest:</td><td>Unrepeatable quest:</td></tr>");
 					replyMSG.append("<tr><td><button value=\"Quest Complete\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + val[1] + " state COMPLETED 1\" width=120 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
 					replyMSG.append("<td><button value=\"Quest Complete\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + val[1] + " state COMPLETED 0\" width=120 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>");
-					replyMSG.append("</table><br><br><font color=\"ff0000\">Delete Quest from DB:</font><br><button value=\"Quest Delete\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + val[1] + " state DELETE\" width=120 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">");
+					replyMSG.append("</table><br><br><font color=\"ff0000\">Delete Quest from DB:</font><br><button value=\"Quest Delete\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + val[1]
+						+ " state DELETE\" width=120 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">");
 					replyMSG.append("</center></body></html>");
 					break;
 				}
@@ -284,12 +288,15 @@ public class AdminShowQuests implements IAdminCommandHandler
 								{
 									continue;
 								}
-								replyMSG.append("<tr><td>" + var_name + "</td><td>" + rs.getString(2) + "</td><td><edit var=\"var" + var_name + "\" width=80 height=15></td><td><button value=\"Set\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + qname + " " + var_name + " $var" + var_name + "\" width=30 height=15 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td><button value=\"Del\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + qname + " " + var_name + " delete\" width=30 height=15 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>");
+								replyMSG.append("<tr><td>" + var_name + "</td><td>" + rs.getString(2) + "</td><td><edit var=\"var" + var_name + "\" width=80 height=15></td><td><button value=\"Set\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + qname + " " + var_name + " $var"
+									+ var_name + "\" width=30 height=15 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td><button value=\"Del\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + qname + " " + var_name
+									+ " delete\" width=30 height=15 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>");
 							}
 							replyMSG.append("</table><br><br><table width=250><tr><td>Repeatable quest:</td><td>Unrepeatable quest:</td></tr>");
 							replyMSG.append("<tr><td><button value=\"Quest Complete\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + qname + " state COMPLETED 1\" width=100 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
 							replyMSG.append("<td><button value=\"Quest Complete\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + qname + " state COMPLETED 0\" width=100 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>");
-							replyMSG.append("</table><br><br><font color=\"ff0000\">Delete Quest from DB:</font><br><button value=\"Quest Delete\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + qname + " state DELETE\" width=100 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">");
+							replyMSG.append("</table><br><br><font color=\"ff0000\">Delete Quest from DB:</font><br><button value=\"Quest Delete\" action=\"bypass -h admin_setcharquest " + target.getName() + " " + qname
+								+ " state DELETE\" width=100 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">");
 							replyMSG.append("</center></body></html>");
 						}
 						else
@@ -324,13 +331,13 @@ public class AdminShowQuests implements IAdminCommandHandler
 		QuestState qs = target.getQuestState(val[0]);
 		String[] outval = new String[3];
 		
-		if (val[1].equals("state"))
+		if ("state".equals(val[1]))
 		{
 			switch (val[2])
 			{
 				case "COMPLETED":
 				{
-					qs.exitQuest((val[3].equals("1")) ? true : false);
+					qs.exitQuest("1".equals(val[3]));
 					break;
 				}
 				case "DELETE":
diff --git a/dist/game/data/scripts/handlers/bypasshandlers/QuestLink.java b/dist/game/data/scripts/handlers/bypasshandlers/QuestLink.java
index d0159d3a6c..4b90e9cbd7 100644
--- a/dist/game/data/scripts/handlers/bypasshandlers/QuestLink.java
+++ b/dist/game/data/scripts/handlers/bypasshandlers/QuestLink.java
@@ -43,6 +43,7 @@ import com.l2jserver.util.StringUtil;
 
 public class QuestLink implements IBypassHandler
 {
+	private static final int MAX_QUEST_COUNT = 40;
 	private static final int TO_LEAD_AND_BE_LED = 118;
 	private static final int THE_LEADER_AND_THE_FOLLOWER = 123;
 	private static final String[] COMMANDS =
@@ -199,7 +200,7 @@ public class QuestLink implements IBypassHandler
 				if ((q.getId() >= 1) && (q.getId() < 20000))
 				{
 					// Too many ongoing quests.
-					if (player.getAllActiveQuests().length > 40)
+					if (player.getAllActiveQuests().size() >= MAX_QUEST_COUNT)
 					{
 						final NpcHtmlMessage html = new NpcHtmlMessage(npc.getObjectId());
 						html.setFile(player.getHtmlPrefix(), "data/html/fullquest.html");
diff --git a/dist/game/data/xsd/instance.xsd b/dist/game/data/xsd/instance.xsd
index e66672854e..2b2b1b3eca 100644
--- a/dist/game/data/xsd/instance.xsd
+++ b/dist/game/data/xsd/instance.xsd
@@ -165,6 +165,8 @@
 												<xs:attribute name="x" type="xs:integer" use="required" />
 												<xs:attribute name="y" type="xs:integer" use="required" />
 												<xs:attribute name="z" type="xs:integer" use="required" />
+												<xs:attribute name="areaName" type="xs:normalizedString" />
+												<xs:attribute name="globalMapId" type="xs:positiveInteger" />
 											</xs:complexType>
 										</xs:element>
 									</xs:sequence>
-- 
GitLab