Noticias:

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Menú Principal

Clan War Zone

Iniciado por Swarlog, Jul 25, 2025, 11:57 PM

Tema anterior - Siguiente tema

Swarlog

### Eclipse Workspace Patch 1.0
#P L2jFrozen_GameServer
Index: head-src/com/l2jfrozen/gameserver/model/zone/type/L2ClanWarZone.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/zone/type/L2ClanWarZone.java	(revision 0)
+++ head-src/com/l2jfrozen/gameserver/model/zone/type/L2ClanWarZone.java	(working copy)
@@ -0,0 +1,78 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jfrozen.gameserver.model.zone.type;
+
+import com.l2jfrozen.gameserver.datatables.csv.MapRegionTable;
+import com.l2jfrozen.gameserver.model.L2Character;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.zone.L2ZoneType;
+
+public class L2ClanWarZone extends L2ZoneType
+{
+
+   /**
+	 * @param id
+	 */
+	public L2ClanWarZone(int id)
+	{
+		super(id);
+	}
+
+   
+   @Override
+   protected void onEnter(L2Character character)
+   {
+       if (character instanceof L2PcInstance)
+       {
+    	   if(((L2PcInstance) character).getClan() != null)
+    	   {
+	    	   ((L2PcInstance) character).setIsInsideClanwarZone(true);
+	    	   ((L2PcInstance) character).sendMessage("You have entered a Clan War Zone. Prepare for fight.");
+    	   }
+    	   else
+    	   {
+    		   ((L2PcInstance) character).sendMessage("This is strict area for clan members ONLY. You will be teleported at the nearest town.");
+    		   ((L2PcInstance) character).teleToLocation(MapRegionTable.TeleportWhereType.Town);
+    	   }
+       }
+   }
+   
+   @Override
+   protected void onExit(L2Character character)
+   {
+       if (character instanceof L2PcInstance)
+       {
+    	   ((L2PcInstance) character).setIsInsideClanwarZone(false);
+       }
+   }
+   
+   
+  @Override
+   public void onDieInside(L2Character character)
+   {
+     
+   }
+   
+   @Override
+   public void onReviveInside(L2Character character)
+   {
+       onEnter(character);
+   }
+}
\ No newline at end of file
Index: head-src/com/l2jfrozen/gameserver/model/L2Character.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/L2Character.java	(revision 949)
+++ head-src/com/l2jfrozen/gameserver/model/L2Character.java	(working copy)
@@ -175,6 +175,8 @@
 	/** The _is buff protected. */
 	private boolean _isBuffProtected = false; //Protect From Debuffs
 	
+	private boolean _isInsideClanwarZone = false;
+	
 	/** The _is afraid. */
 	private boolean _isAfraid = false; // Flee in a random direction
 	
@@ -11241,4 +11243,20 @@
 	{
 		return _triggeredSkills;
 	}
+
+	/**
+	 * @return the _isInsideClanwarZone
+	 */
+	public boolean isInsideClanwarZone()
+	{
+		return _isInsideClanwarZone;
+	}
+
+	/**
+	 * @param _isInsideClanwarZone the _isInsideClanwarZone to set
+	 */
+	public void setIsInsideClanwarZone(boolean _isInsideClanwarZone)
+	{
+		this._isInsideClanwarZone = _isInsideClanwarZone;
+	}
 }
Index: head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java	(revision 949)
+++ head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java	(working copy)
@@ -50,6 +50,7 @@
 import com.l2jfrozen.gameserver.model.zone.type.L2CastleTeleportZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2CastleZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2ClanHallZone;
+import com.l2jfrozen.gameserver.model.zone.type.L2ClanWarZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2CustomZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2DamageZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2DerbyTrackZone;
@@ -278,6 +279,10 @@
 								{
 									temp = new L2SwampZone(zoneId);
 								}
+								else if(zoneType.equals("FlagZone"))
+								{
+									temp = new L2ClanWarZone(zoneId);
+								}
 
 								// Check for unknown type
 								if(temp == null)
Index: head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java	(revision 949)
+++ head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -7715,6 +7716,12 @@
 		if(!checkAntiFarm(targetPlayer))
 			return;
 			
+		if(isInsideClanwarZone() && targetPlayer.isInsideClanwarZone() && (getClan() != null) && (targetPlayer.getClan() != null) && (getClanId() != targetPlayer.getClanId()))
+		{
+			getClan().setReputationScore(getClan().getReputationScore() + 100, true);
+			sendMessage("You killed someone from an enemy clan. Your clan gets rewarded with 100 rep points!");
+		}
+		
 		// Check if it's pvp
 		if(checkIfPvP(target) && targetPlayer.getPvpFlag() != 0 || isInsideZone(ZONE_PVP) && targetPlayer.isInsideZone(ZONE_PVP))
 		{
 

Reparacion de un bug encontrado, by Wrath:

Index: head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java      (revision 949)
+++ head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java      (working copy)
@@ -50,6 +50,7 @@
 import com.l2jfrozen.gameserver.model.zone.type.L2CastleTeleportZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2CastleZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2ClanHallZone;
+import com.l2jfrozen.gameserver.model.zone.type.L2ClanWarZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2CustomZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2DamageZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2DerbyTrackZone;
@@ -278,6 +279,10 @@
                                                                {
                                                                        temp = new L2SwampZone(zoneId);
                                                                }
+                                                               if(zoneType.equals("ClanwarZone"))
+                                                               {
+                                                                       temp = new L2ClanWarZone(zoneId);
+                                                               }
 
                                                                // Check for unknown type
                                                                if(temp == null)