Browse Source

BETA: Support for allowStore boolean in zones, thanks Zoey76 for help.

MELERIX 13 years ago
parent
commit
30f8f8358c

+ 15 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/L2ZoneType.java

@@ -58,6 +58,7 @@ public abstract class L2ZoneType
 	private char _classType;
 	private Map<Quest.QuestEventType, FastList<Quest>> _questEvents;
 	private InstanceType _target = InstanceType.L2Character; // default all chars
+	private boolean _allowStore;
 	
 	protected L2ZoneType(int id)
 	{
@@ -71,6 +72,7 @@ public abstract class L2ZoneType
 		
 		_race = null;
 		_class = null;
+		_allowStore = true;
 	}
 	
 	/**
@@ -174,14 +176,19 @@ public abstract class L2ZoneType
 		{
 			_target = Enum.valueOf(InstanceType.class, value);
 		}
+		else if (name.equals("allowStore"))
+		{
+			_allowStore = Boolean.parseBoolean(value);
+		}
 		else
+		{
 			_log.info(getClass().getSimpleName()+": Unknown parameter - "+name+" in zone: "+getId());
+		}
 	}
 	
 	/**
-	 * Checks if the given character is affected by this zone
-	 * @param character
-	 * @return
+	 * @param character the player to verify.
+	 * @return {@code true} if the given character is affected by this zone, {@code false} otherwise.
 	 */
 	private boolean isAffected(L2Character character)
 	{
@@ -529,6 +536,11 @@ public abstract class L2ZoneType
 		_checkAffected = true;
 	}
 	
+	public boolean getAllowStore()
+	{
+		return _allowStore;
+	}
+	
 	@Override
 	public String toString()
 	{

+ 12 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2PeaceZone.java

@@ -53,6 +53,11 @@ public class L2PeaceZone extends L2ZoneType
 		{
 			character.setInsideZone(L2Character.ZONE_PEACE, true);
 		}
+		
+		if (!getAllowStore())
+		{
+			character.setInsideZone(L2Character.ZONE_NOSTORE, true);
+		}
 	}
 	
 	@Override
@@ -62,15 +67,22 @@ public class L2PeaceZone extends L2ZoneType
 		{
 			character.setInsideZone(L2Character.ZONE_PEACE, false);
 		}
+		
+		if (!getAllowStore())
+		{
+			character.setInsideZone(L2Character.ZONE_NOSTORE, false);
+		}
 	}
 	
 	@Override
 	public void onDieInside(L2Character character)
 	{
+		//
 	}
 	
 	@Override
 	public void onReviveInside(L2Character character)
 	{
+		//
 	}
 }