Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Clan War Zone

Iniciado por Swarlog, Ago 19, 2022, 12:50 AM

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)