Hello! I found this code in my pc & I decided to share this.
Description : You can enter this zone ONLY if you are clan member, else you will be teleported at the nearest town. For every kill that you take from an enemy clan, your clan gets as reward X reputation points.
### 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))
{
Have fun,
`Romeo
Credits: Thanks Elfocrash for the code! :)