瀏覽代碼

BETA: Refactoring the custom NoHq zone into retail HQ Zone.

Rumen Nikiforov 13 年之前
父節點
當前提交
6bc6de7669

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java

@@ -199,7 +199,7 @@ public abstract class L2Character extends L2Object
 	public static final byte ZONE_NOSTORE = 14;
 	public static final byte ZONE_NOSTORE = 14;
 	public static final byte ZONE_TOWN = 15;
 	public static final byte ZONE_TOWN = 15;
 	public static final byte ZONE_SCRIPT = 16;
 	public static final byte ZONE_SCRIPT = 16;
-	public static final byte ZONE_NOHQ = 17;
+	public static final byte ZONE_HQ = 17;
 	public static final byte ZONE_DANGERAREA = 18;
 	public static final byte ZONE_DANGERAREA = 18;
 	public static final byte ZONE_ALTERED = 19;
 	public static final byte ZONE_ALTERED = 19;
 	public static final byte ZONE_NOBOOKMARK = 20;
 	public static final byte ZONE_NOBOOKMARK = 20;

+ 12 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2NoHqZone.java → L2J_Server_BETA/java/com/l2jserver/gameserver/model/zone/type/L2HqZone.java

@@ -19,29 +19,35 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 
 
 /**
 /**
- * Zone where 'Build Headquarters' is not allowed.
+ * Zone where 'Build Headquarters' is allowed.
  * 
  * 
- * @author Gnat
+ * @author Gnacik
  */
  */
-public class L2NoHqZone extends L2ZoneType
+public class L2HqZone extends L2ZoneType
 {
 {
-	public L2NoHqZone(final int id)
+	public L2HqZone(final int id)
 	{
 	{
 		super(id);
 		super(id);
 	}
 	}
 	
 	
+	@Override
+	public void setParameter(String name, String value)
+	{
+		
+	}
+	
 	@Override
 	@Override
 	protected void onEnter(final L2Character character)
 	protected void onEnter(final L2Character character)
 	{
 	{
 		if (character instanceof L2PcInstance)
 		if (character instanceof L2PcInstance)
-			character.setInsideZone(L2Character.ZONE_NOHQ, true);
+			character.setInsideZone(L2Character.ZONE_HQ, true);
 	}
 	}
 	
 	
 	@Override
 	@Override
 	protected void onExit(final L2Character character)
 	protected void onExit(final L2Character character)
 	{
 	{
 		if (character instanceof L2PcInstance)
 		if (character instanceof L2PcInstance)
-			character.setInsideZone(L2Character.ZONE_NOHQ, false);
+			character.setInsideZone(L2Character.ZONE_HQ, false);
 	}
 	}
 	
 	
 	@Override
 	@Override

+ 22 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/skills/l2skills/L2SkillSiegeFlag.java

@@ -33,6 +33,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2SiegeFlagInstance;
 import com.l2jserver.gameserver.model.entity.Castle;
 import com.l2jserver.gameserver.model.entity.Castle;
 import com.l2jserver.gameserver.model.entity.Fort;
 import com.l2jserver.gameserver.model.entity.Fort;
 import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
 import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
+import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.templates.StatsSet;
 import com.l2jserver.gameserver.templates.StatsSet;
 
 
 public class L2SkillSiegeFlag extends L2Skill
 public class L2SkillSiegeFlag extends L2Skill
@@ -146,6 +147,7 @@ public class L2SkillSiegeFlag extends L2Skill
 	 * @param castle
 	 * @param castle
 	 * @param isCheckOnly
 	 * @param isCheckOnly
 	 * @return
 	 * @return
+	 * TODO: Replace strings with system messages!
 	 */
 	 */
 	public static boolean checkIfOkToPlaceFlag(L2Character activeChar, Castle castle, boolean isCheckOnly)
 	public static boolean checkIfOkToPlaceFlag(L2Character activeChar, Castle castle, boolean isCheckOnly)
 	{
 	{
@@ -165,8 +167,8 @@ public class L2SkillSiegeFlag extends L2Skill
 			text = "You must be a clan leader to place a flag.";
 			text = "You must be a clan leader to place a flag.";
 		else if (castle.getSiege().getAttackerClan(player.getClan()).getNumFlags() >= SiegeManager.getInstance().getFlagMaxCount())
 		else if (castle.getSiege().getAttackerClan(player.getClan()).getNumFlags() >= SiegeManager.getInstance().getFlagMaxCount())
 			text = "You have already placed the maximum number of flags possible.";
 			text = "You have already placed the maximum number of flags possible.";
-		else if (player.isInsideZone(L2Character.ZONE_NOHQ))
-			text = "You cannot place flag here.";
+		else if (!player.isInsideZone(L2Character.ZONE_HQ))
+			player.sendPacket(SystemMessageId.NOT_SET_UP_BASE_HERE);
 		else
 		else
 			return true;
 			return true;
 		
 		
@@ -181,6 +183,7 @@ public class L2SkillSiegeFlag extends L2Skill
 	 * @param fort
 	 * @param fort
 	 * @param isCheckOnly
 	 * @param isCheckOnly
 	 * @return
 	 * @return
+	 * TODO: Replace strings with system messages!
 	 */
 	 */
 	public static boolean checkIfOkToPlaceFlag(L2Character activeChar, Fort fort, boolean isCheckOnly)
 	public static boolean checkIfOkToPlaceFlag(L2Character activeChar, Fort fort, boolean isCheckOnly)
 	{
 	{
@@ -200,8 +203,8 @@ public class L2SkillSiegeFlag extends L2Skill
 			text = "You must be a clan leader to place a flag.";
 			text = "You must be a clan leader to place a flag.";
 		else if (fort.getSiege().getAttackerClan(player.getClan()).getNumFlags() >= FortSiegeManager.getInstance().getFlagMaxCount())
 		else if (fort.getSiege().getAttackerClan(player.getClan()).getNumFlags() >= FortSiegeManager.getInstance().getFlagMaxCount())
 			text = "You have already placed the maximum number of flags possible.";
 			text = "You have already placed the maximum number of flags possible.";
-		else if (player.isInsideZone(L2Character.ZONE_NOHQ))
-			text = "You cannot place flag here.";
+		else if (!player.isInsideZone(L2Character.ZONE_HQ))
+			player.sendPacket(SystemMessageId.NOT_SET_UP_BASE_HERE);
 		else
 		else
 			return true;
 			return true;
 		
 		
@@ -210,6 +213,14 @@ public class L2SkillSiegeFlag extends L2Skill
 		return false;
 		return false;
 	}
 	}
 	
 	
+	/**
+	 * 
+	 * @param activeChar
+	 * @param hall
+	 * @param isCheckOnly
+	 * @return
+	 * TODO: Replace strings with system messages!
+	 */
 	public static boolean checkIfOkToPlaceFlag(L2Character activeChar, SiegableHall hall, boolean isCheckOnly)
 	public static boolean checkIfOkToPlaceFlag(L2Character activeChar, SiegableHall hall, boolean isCheckOnly)
 	{
 	{
 		if (!(activeChar instanceof L2PcInstance))
 		if (!(activeChar instanceof L2PcInstance))
@@ -229,8 +240,8 @@ public class L2SkillSiegeFlag extends L2Skill
 			text = "You must be an attacker to place a flag.";
 			text = "You must be an attacker to place a flag.";
 		else if (hall.getSiege().getAttackerClan(player.getClan()).getNumFlags() > Config.CHS_MAX_FLAGS_PER_CLAN)
 		else if (hall.getSiege().getAttackerClan(player.getClan()).getNumFlags() > Config.CHS_MAX_FLAGS_PER_CLAN)
 			text = "You have already placed the maximum number of flags possible.";
 			text = "You have already placed the maximum number of flags possible.";
-		else if (player.isInsideZone(L2Character.ZONE_NOHQ))
-			text = "You cannot place flag here.";
+		else if (!player.isInsideZone(L2Character.ZONE_HQ))
+			player.sendPacket(SystemMessageId.NOT_SET_UP_BASE_HERE);
 		else
 		else
 			return true;
 			return true;
 		
 		
@@ -245,6 +256,7 @@ public class L2SkillSiegeFlag extends L2Skill
 	 * @param activeChar The L2Character of the character placing the flag
 	 * @param activeChar The L2Character of the character placing the flag
 	 * @param isCheckOnly if false, it will send a notification to the player telling him
 	 * @param isCheckOnly if false, it will send a notification to the player telling him
 	 * why it failed
 	 * why it failed
+	 * TODO: Replace strings with system messages!
 	 */
 	 */
 	public static boolean checkIfOkToPlaceHQ(L2Character activeChar, boolean isCheckOnly, boolean isOutPost)
 	public static boolean checkIfOkToPlaceHQ(L2Character activeChar, boolean isCheckOnly, boolean isOutPost)
 	{
 	{
@@ -264,11 +276,11 @@ public class L2SkillSiegeFlag extends L2Skill
 		else if (!player.isClanLeader())
 		else if (!player.isClanLeader())
 			text = "You must be a clan leader to construct an outpost or flag.";
 			text = "You must be a clan leader to construct an outpost or flag.";
 		else if (TerritoryWarManager.getInstance().getHQForClan(player.getClan()) != null && isOutPost)
 		else if (TerritoryWarManager.getInstance().getHQForClan(player.getClan()) != null && isOutPost)
-			text = "You can have only one outpost.";
+			player.sendPacket(SystemMessageId.NOT_ANOTHER_HEADQUARTERS);
 		else if (TerritoryWarManager.getInstance().getFlagForClan(player.getClan()) != null && !isOutPost)
 		else if (TerritoryWarManager.getInstance().getFlagForClan(player.getClan()) != null && !isOutPost)
-			text = "You can have only one flag.";
-		else if (player.isInsideZone(L2Character.ZONE_NOHQ))
-			text = "You cannot construct outpost or flag here.";
+			player.sendPacket(SystemMessageId.A_FLAG_IS_ALREADY_BEING_DISPLAYED_ANOTHER_FLAG_CANNOT_BE_DISPLAYED);
+		else if (!player.isInsideZone(L2Character.ZONE_HQ))
+			player.sendPacket(SystemMessageId.NOT_SET_UP_BASE_HERE);
 		else
 		else
 			return true;
 			return true;