Noticias:

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

Menú Principal

Evento Town War Interlude

Iniciado por Swarlog, Jun 29, 2025, 12:04 AM

Tema anterior - Siguiente tema

Swarlog

Index: java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminTownWar.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminTownWar.java	(revision 0)
+++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminTownWar.java	(revision 0)
@@ -0,0 +1,185 @@
+
+package net.sf.l2j.gameserver.handler.admincommandhandlers;
+
+import java.util.Collection;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.Announcements;
+import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
+import net.sf.l2j.gameserver.instancemanager.TownManager;
+import net.sf.l2j.gameserver.model.L2Object;
+import net.sf.l2j.gameserver.model.L2World;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.model.zone.type.L2TownZone;
+
+public class AdminTownWar implements IAdminCommandHandler
+{
+	private static final String[] ADMIN_COMMANDS =
+	{
+		"admin_townwar_start",
+		"admin_townwar_end"
+	};
+     private L2Object _activeObject;
+     public final L2Object getActiveObject()
+    {
+        return _activeObject;
+    }
+	public boolean useAdminCommand(String command, L2PcInstance activeChar)
+	{
+		if (command.startsWith("admin_townwar_start"))
+		{
+			startTW(activeChar);
+		}
+		if (command.startsWith("admin_townwar_end"))
+		{
+			endTW(activeChar);
+		}
+		return true;
+	}
+	@SuppressWarnings("deprecation")
+	private void startTW(L2PcInstance activeChar)
+	{
+		if (Config.TW_ALL_TOWNS)
+		{
+			TownManager.getTown(1).setParameter("isPeaceZone", "false");
+			TownManager.getTown(2).setParameter("isPeaceZone", "false");
+			TownManager.getTown(3).setParameter("isPeaceZone", "false");
+			TownManager.getTown(4).setParameter("isPeaceZone", "false");
+			TownManager.getTown(5).setParameter("isPeaceZone", "false");
+			TownManager.getTown(6).setParameter("isPeaceZone", "false");
+			TownManager.getTown(7).setParameter("isPeaceZone", "false");
+			TownManager.getTown(8).setParameter("isPeaceZone", "false");
+			TownManager.getTown(9).setParameter("isPeaceZone", "false");
+			TownManager.getTown(10).setParameter("isPeaceZone", "false");
+			TownManager.getTown(11).setParameter("isPeaceZone", "false");
+			TownManager.getTown(12).setParameter("isPeaceZone", "false");
+			TownManager.getTown(13).setParameter("isPeaceZone", "false");
+			TownManager.getTown(14).setParameter("isPeaceZone", "false");
+			TownManager.getTown(15).setParameter("isPeaceZone", "false");
+			TownManager.getTown(16).setParameter("isPeaceZone", "false");
+			TownManager.getTown(17).setParameter("isPeaceZone", "false");
+			TownManager.getTown(19).setParameter("isPeaceZone", "false");
+			TownManager.getTown(20).setParameter("isPeaceZone", "false");	
+		}
+		if (!Config.TW_ALL_TOWNS && Config.TW_TOWN_ID != 18 && Config.TW_TOWN_ID != 21 && Config.TW_TOWN_ID != 22)
+		{
+		TownManager.getTown(Config.TW_TOWN_ID).setParameter("isPeaceZone", "false");
+		}
+		
+		Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
+		{
+            int x,y,z;
+            L2TownZone Town;
+            byte zonaPaz = 1;
+            
+          	for (L2PcInstance onlinePlayer : pls)
+               if (onlinePlayer.isOnline() == 1 )
+                  {
+                  	x = onlinePlayer.getX();
+                  	y = onlinePlayer.getY();
+                  	z = onlinePlayer.getZ();
+                  
+                  	Town = TownManager.getTown(x, y, z);
+                  	if (Town != null)
+                  	{
+                  		if(Town.getTownId() == Config.TW_TOWN_ID && !Config.TW_ALL_TOWNS)
+                  		{
+                  			onlinePlayer.setInsideZone(zonaPaz, false);
+                          		onlinePlayer.revalidateZone(true);
+                  		}
+                  		else if (Config.TW_ALL_TOWNS)
+                  		{
+                  			onlinePlayer.setInsideZone(zonaPaz, false);
+                          		onlinePlayer.revalidateZone(true);
+                  		}
+                  	}
+                  	onlinePlayer.setInTownWar(true);
+                   }	
+		}
+		
+		if (Config.TW_ALL_TOWNS)
+		{
+			Announcements.getInstance().announceToAll("All towns have been set war zone by " + activeChar.getName() + ".");
+		}
+		if (!Config.TW_ALL_TOWNS) 
+		{
+			Announcements.getInstance().announceToAll(TownManager.getTown(Config.TW_TOWN_ID).getName() + " has been set war zone by " + activeChar.getName() + ".");
+		}
+	}
+	
+	
+	@SuppressWarnings("deprecation")
+	private void endTW(L2PcInstance activeChar)
+	{
+		if (Config.TW_ALL_TOWNS)
+		{
+			TownManager.getTown(1).setParameter("isPeaceZone", "true");
+			TownManager.getTown(2).setParameter("isPeaceZone", "true");
+			TownManager.getTown(3).setParameter("isPeaceZone", "true");
+			TownManager.getTown(4).setParameter("isPeaceZone", "true");
+			TownManager.getTown(5).setParameter("isPeaceZone", "true");
+			TownManager.getTown(6).setParameter("isPeaceZone", "true");
+			TownManager.getTown(7).setParameter("isPeaceZone", "true");
+			TownManager.getTown(8).setParameter("isPeaceZone", "true");
+			TownManager.getTown(9).setParameter("isPeaceZone", "true");
+			TownManager.getTown(10).setParameter("isPeaceZone", "true");
+			TownManager.getTown(11).setParameter("isPeaceZone", "true");
+			TownManager.getTown(12).setParameter("isPeaceZone", "true");
+			TownManager.getTown(13).setParameter("isPeaceZone", "true");
+			TownManager.getTown(14).setParameter("isPeaceZone", "true");
+			TownManager.getTown(15).setParameter("isPeaceZone", "true");
+			TownManager.getTown(16).setParameter("isPeaceZone", "true");
+			TownManager.getTown(17).setParameter("isPeaceZone", "true");
+			TownManager.getTown(19).setParameter("isPeaceZone", "true");
+			TownManager.getTown(20).setParameter("isPeaceZone", "true");
+		}
+		if (!Config.TW_ALL_TOWNS && Config.TW_TOWN_ID != 18 && Config.TW_TOWN_ID != 21 && Config.TW_TOWN_ID != 22)
+		{
+		TownManager.getTown(Config.TW_TOWN_ID).setParameter("isPeaceZone", "true");
+		}
+		
+		Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();
+		{
+             int xx,yy,zz;
+             L2TownZone Town;
+             byte zonaPaz = 1;
+
+            for (L2PcInstance onlinePlayer : pls)
+              if (onlinePlayer.isOnline() == 1 )
+                  {
+                  	xx = onlinePlayer.getX();
+                  	yy = onlinePlayer.getY();
+                  	zz = onlinePlayer.getZ();
+                  
+                  	Town = TownManager.getTown(xx,yy,zz);
+                  	if (Town != null)
+                  	{
+                  		if(Town.getTownId() == Config.TW_TOWN_ID && !Config.TW_ALL_TOWNS)
+                  		{
+                  			onlinePlayer.setInsideZone(zonaPaz, true);
+                          		onlinePlayer.revalidateZone(true);
+                  		}
+                  		else if (Config.TW_ALL_TOWNS)
+                  		{
+                  			onlinePlayer.setInsideZone(zonaPaz, true);
+                          		onlinePlayer.revalidateZone(true);
+                  		}
+                  	}
+             	    onlinePlayer.setInTownWar(false);
+                  }		
+            }
+		if (Config.TW_ALL_TOWNS)
+		{
+			Announcements.getInstance().announceToAll("All towns have been set back to normal by " + activeChar.getName() + ".");	
+		}
+		if (!Config.TW_ALL_TOWNS)
+		{
+			Announcements.getInstance().announceToAll(TownManager.getTown(Config.TW_TOWN_ID).getName() + " has been set back to normal by " + activeChar.getName() + ".");
+		}
+	}
+	
+	public String[] getAdminCommandList()
+	{
+		return ADMIN_COMMANDS;
+	}
+}\ No newline at end of file
Index: java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java	(revision 2797)
+++ java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java	(working copy)
@@ -105,6 +105,7 @@
 		registerAdminCommandHandler(new AdminTvTEvent());
 		registerAdminCommandHandler(new AdminUnblockIp());
 		registerAdminCommandHandler(new AdminZone());
+		registerAdminCommandHandler(new AdminTownWar());
 		_log.config("AdminCommandHandler: Loaded " + _datatable.size() + " handlers.");
 	}
 	
Index: java/net/sf/l2j/gameserver/model/L2Character.java
===================================================================
--- java/net/sf/l2j/gameserver/model/L2Character.java	(revision 2797)
+++ java/net/sf/l2j/gameserver/model/L2Character.java	(working copy)
@@ -75,6 +75,7 @@
 import net.sf.l2j.gameserver.model.itemcontainer.Inventory;
 import net.sf.l2j.gameserver.model.quest.Quest;
 import net.sf.l2j.gameserver.model.quest.QuestState;
+import net.sf.l2j.gameserver.model.zone.type.L2TownZone;
 import net.sf.l2j.gameserver.network.SystemMessageId;
 import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
 import net.sf.l2j.gameserver.network.serverpackets.Attack;
@@ -559,8 +566,31 @@
 	 * <li>Modify the position of the pet if necessary</li><BR><BR>
 	 *
 	 */
+	    private boolean _inTownWar;
+		public final boolean isinTownWar() { return _inTownWar; }
+		public final void setInTownWar(boolean value) { _inTownWar = value; }
 	public void teleToLocation(int x, int y, int z, boolean allowRandomOffset)
 	{
+		 if(Config.TW_DISABLE_GK)
+		 {
+			 int x1,y1,z1;
+			 x1 = getX();
+			 y1 = getY();
+			 z1 = getZ();
+			 L2TownZone Town;
+			 Town = TownManager.getTown(x1,y1,z1);
+			 if (Town != null && isinTownWar() )
+			 {
+	      			if (Town.getTownId() == Config.TW_TOWN_ID && !Config.TW_ALL_TOWNS)
+	    		    	{
+	      					return;
+	    		    	}
+	    	    	else if (Config.TW_ALL_TOWNS)
+	    	    		{
+			    			return;
+	    	    		}
+			 }
+		 }
 		// Stop movement
 		stopMove(null, false);
 		abortAttack();
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java	(revision 2797)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -81,6 +81,7 @@
 import net.sf.l2j.gameserver.instancemanager.ItemsOnGroundManager;
 import net.sf.l2j.gameserver.instancemanager.QuestManager;
 import net.sf.l2j.gameserver.instancemanager.SiegeManager;
+import net.sf.l2j.gameserver.instancemanager.TownManager;
 import net.sf.l2j.gameserver.model.BlockList;
 import net.sf.l2j.gameserver.model.FishData;
 import net.sf.l2j.gameserver.model.L2AccessLevel;
@@ -139,6 +140,7 @@
 import net.sf.l2j.gameserver.model.quest.Quest;
 import net.sf.l2j.gameserver.model.quest.QuestState;
 import net.sf.l2j.gameserver.model.quest.State;
+import net.sf.l2j.gameserver.model.zone.type.L2TownZone;
 import net.sf.l2j.gameserver.network.L2GameClient;
 import net.sf.l2j.gameserver.network.SystemMessageId;
 import net.sf.l2j.gameserver.network.serverpackets.AbnormalStatusUpdate;

@@ -4950,6 +4952,26 @@
 	@Override
 	public boolean doDie(L2Character killer)
 	{
+	if (Config.TW_RESS_ON_DIE)
+	{
+		int x1,y1,z1;
+		x1 = getX();
+		y1 = getY();
+		z1 = getZ();
+		L2TownZone Town;
+		Town = TownManager.getTown(x1,y1,z1);
+		if (Town != null && isinTownWar())
+		{
+			if (Town.getTownId() == Config.TW_TOWN_ID && !Config.TW_ALL_TOWNS)
+			{
+				reviveRequest(this, null, false);
+			}
+			else if (Config.TW_ALL_TOWNS)
+			{
+				reviveRequest(this, null, false);
+			}
+		}
+	}
 		// Kill the L2PcInstance
 		if (!super.doDie(killer))
 			return false;
@@ -5283,6 +5285,25 @@
      */
     public void increasePvpKills()
     {
+      	int x,y,z;
+    	x = getX();
+      	y = getY();
+      	z = getZ();
+        L2TownZone Town;
+      	Town = TownManager.getTown(x,y,z);
+      	if (Town != null && isinTownWar())
+      	{
+      			if (Town.getTownId() == Config.TW_TOWN_ID && !Config.TW_ALL_TOWNS)
+    		    	{
+    		    		getInventory().addItem("TownWar", Config.TW_ITEM_ID, Config.TW_ITEM_AMOUNT, this, this);
+    		    		sendMessage("You received your prize for a town war kill!");
+    		    	}
+    	    		else if (Config.TW_ALL_TOWNS)
+    	    		{
+		    			getInventory().addItem("TownWar", Config.TW_ITEM_ID, Config.TW_ITEM_AMOUNT, this, this);
+		    			sendMessage("You received your prize for a town war kill!");
+   	    		}
+      	}
         // Add karma to attacker and increase its PK counter
         setPvpKills(getPvpKills() + 1);
@@ -5334,8 +5355,42 @@
             newKarma = Integer.MAX_VALUE - getKarma();
 
         // Add karma to attacker and increase its PK counter
+        int x,y,z;
+    	x = getX();
+      	y = getY();
+      	z = getZ();
+        L2TownZone Town;
+      	Town = TownManager.getTown(x,y,z);
+      	
         setPkKills(getPkKills() + 1);
-        setKarma(getKarma() + newKarma);
+         if (Town != null && isinTownWar())
+         { 
+	        //nothing
+         }
+         else if (Town != null && !isinTownWar())
+         {
+        	 setKarma(getKarma() + newKarma);
+         }
+         else if (Town == null)
+         {
+        	 setKarma(getKarma() + newKarma);
+         }
+      	
+         
+         if (Town != null && isinTownWar())
+      	 {
+      			if (Town.getTownId() == Config.TW_TOWN_ID && !Config.TW_ALL_TOWNS)
+    		    	{
+    		    		getInventory().addItem("TownWar", Config.TW_ITEM_ID, Config.TW_ITEM_AMOUNT, this, this);
+    		    		sendMessage("You received your prize for a town war kill!");
+    		    	}
+    	    		else if (Config.TW_ALL_TOWNS && Town.getTownId() != 0)
+    	    		{
+		    			getInventory().addItem("TownWar", Config.TW_ITEM_ID, Config.TW_ITEM_AMOUNT, this, this);
+		    			sendMessage("You received your prize for a town war kill!");
+    	    		}
+      	 }
+               
 
         // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
         sendPacket(new UserInfo(this));

@@ -11945,30 +12084,51 @@
     	}
     	super.setIsCastingNow(value);
     }
-    public void checkItemRestriction()
-    {
-    	for (int i = 0; i < Inventory.PAPERDOLL_TOTALSLOTS; i++)
+
+	/**
+	 * @param b
+	 */
+    private boolean isintwtown = false;
+    
+    public boolean isInsideTWTown()
+	{
+    	if (isintwtown)
     	{
-    		L2ItemInstance equippedItem = getInventory().getPaperdollItem(i);
-    		if (equippedItem != null && !equippedItem.getItem().checkCondition(this, this))
-    		{
-				getInventory().unEquipItemInSlotAndRecord(i);
-				if (equippedItem.isWear())
-					continue;
-				SystemMessage sm = null;
-				if (equippedItem.getEnchantLevel() > 0)
-				{
-					sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED);
-					sm.addNumber(equippedItem.getEnchantLevel());
-					sm.addItemName(equippedItem);
-				}
-				else
-				{
-					sm = new SystemMessage(SystemMessageId.S1_DISARMED);
-					sm.addItemName(equippedItem);
-				}
-				sendPacket(sm);
-    		}
+    		return true;
     	}
-    }
+		else 
+			return false;
+
+	}
+   
+	public void setInsideTWTown(boolean b)
+	{
+		isintwtown = true;
+	}
+	    public void checkItemRestriction()
+	    {
+	    	for (int i = 0; i < Inventory.PAPERDOLL_TOTALSLOTS; i++)
+	    	{
+	    		L2ItemInstance equippedItem = getInventory().getPaperdollItem(i);
+	    		if (equippedItem != null && !equippedItem.getItem().checkCondition(this, this))
+	    		{
+					getInventory().unEquipItemInSlotAndRecord(i);
+					if (equippedItem.isWear())
+					continue;
+					SystemMessage sm = null;
+					if (equippedItem.getEnchantLevel() > 0)
+					{
+						sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED);
+						sm.addNumber(equippedItem.getEnchantLevel());
+						sm.addItemName(equippedItem);
+					}
+					else
+					{
+						sm = new SystemMessage(SystemMessageId.S1_DISARMED);
+						sm.addItemName(equippedItem);
+					}
+					sendPacket(sm);
+	    		}
+	    	}
+	   }
 }
Index: java/net/sf/l2j/gameserver/instancemanager/TownManager.java
===================================================================
--- java/net/sf/l2j/gameserver/instancemanager/TownManager.java	(revision 2797)
+++ java/net/sf/l2j/gameserver/instancemanager/TownManager.java	(working copy)
@@ -14,12 +14,14 @@
  */
 package net.sf.l2j.gameserver.instancemanager;
 
+import java.util.logging.Logger;
+
+import javolution.util.FastList;
 import net.sf.l2j.gameserver.datatables.MapRegionTable;
 import net.sf.l2j.gameserver.model.L2Object;
 import net.sf.l2j.gameserver.model.entity.Castle;
+import net.sf.l2j.gameserver.model.zone.type.L2TownZone;
 import net.sf.l2j.gameserver.model.zone.L2ZoneType;
-import net.sf.l2j.gameserver.model.zone.type.L2TownZone;
-
 public class TownManager
 {
     //private static final Logger _log = Logger.getLogger(TownManager.class.getName());
@@ -167,12 +169,11 @@
 
     public final static L2TownZone getTown(int townId)
     {
-    	for (L2ZoneType temp : ZoneManager.getInstance().getAllZones())
-    	{
-        	if (temp instanceof L2TownZone && ((L2TownZone) temp).getTownId() == townId)
-        		return (L2TownZone) temp;
-    	}
-        return null;
+    	    	for (L2ZoneType temp : ZoneManager.getInstance().getAllZones())
+    		    	{
+    		        	if (temp instanceof L2TownZone && ((L2TownZone) temp).getTownId() == townId)
+    		        		return (L2TownZone) temp;
+    		    	}        return null;
     }
 
     /**
@@ -184,11 +185,10 @@
      */
     public final static L2TownZone getTown(int x, int y, int z)
     {
-        for (L2ZoneType temp : ZoneManager.getInstance().getZones(x, y, z))
-        {
-        	if (temp instanceof L2TownZone)
-        		return (L2TownZone) temp;
-        }
-        return null;
+    	        for (L2ZoneType temp : ZoneManager.getInstance().getZones(x, y, z))
+    		        {
+    		        	if (temp instanceof L2TownZone)
+    		        		return (L2TownZone) temp;
+    		        }        return null;
     }
 }
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java	(revision 2797)
+++ java/net/sf/l2j/Config.java	(working copy)
@@ -109,6 +109,7 @@
     public static Map<Integer, Integer> SKILL_REUSE_LIST;
     public static boolean	AUTO_LEARN_SKILLS;
     public static boolean	AUTO_LOOT_HERBS;
+    public static boolean	AUTO_LOOT_RAID;
     public static byte		BUFFS_MAX_AMOUNT;
     public static byte		DANCES_MAX_AMOUNT;
     public static boolean	AUTO_LEARN_DIVINE_INSPIRATION;
@@ -395,6 +396,7 @@
     public static int		MIN_MONSTER_ANIMATION;
     public static int		MAX_MONSTER_ANIMATION;
     public static int		COORD_SYNCHRONIZE;
+    public static int		MULTISELL_MAX_AMOUNT;
     public static boolean	GRIDS_ALWAYS_ON;
     public static int		GRID_NEIGHBOR_TURNON_TIME;
     public static int		GRID_NEIGHBOR_TURNOFF_TIME;
@@ -560,7 +562,12 @@
     public static boolean	L2JMOD_ENABLE_WAREHOUSESORTING_CLAN;
     public static boolean	L2JMOD_ENABLE_WAREHOUSESORTING_PRIVATE;
     public static boolean	L2JMOD_ENABLE_WAREHOUSESORTING_FREIGHT;
-    
+    public static int		TW_TOWN_ID;
+    public static boolean 	TW_ALL_TOWNS;
+    public static int		TW_ITEM_ID;
+    public static int		TW_ITEM_AMOUNT;
+    public static boolean 	TW_ALLOW_KARMA;
+    public static boolean 	TW_DISABLE_GK;
+    public static boolean 	TW_RESS_ON_DIE;
     /** ************************************************** **/
 	/** L2JMods Settings -End                              **/
 	/** ************************************************** **/
@@ -1344,6 +1351,7 @@
 	                ALT_PARTY_RANGE2					= Integer.parseInt(Character.getProperty("AltPartyRange2", "1400"));
 	                STARTING_ADENA						= Integer.parseInt(Character.getProperty("StartingAdena", "100"));
 	                AUTO_LOOT							= Boolean.parseBoolean(Character.getProperty("AutoLoot", "true"));
+	                AUTO_LOOT_RAID						= Boolean.parseBoolean(Character.getProperty("AutoLootRaid", "true"));
 	                UNSTUCK_INTERVAL					= Integer.parseInt(Character.getProperty("UnstuckInterval", "300"));
 	                PLAYER_SPAWN_PROTECTION				= Integer.parseInt(Character.getProperty("PlayerSpawnProtection", "0"));
 	                RESPAWN_RANDOM_ENABLED				= Boolean.parseBoolean(Character.getProperty("RespawnRandomInTown", "False"));
@@ -1512,6 +1520,7 @@
 	                MIN_MONSTER_ANIMATION						= Integer.parseInt(General.getProperty("MinMonsterAnimation", "5"));
 	                MAX_MONSTER_ANIMATION						= Integer.parseInt(General.getProperty("MaxMonsterAnimation", "20"));
 	                COORD_SYNCHRONIZE							= Integer.parseInt(General.getProperty("CoordSynchronize", "-1"));
+	                MULTISELL_MAX_AMOUNT     					= Integer.parseInt(General.getProperty("MaxAmountBuy", "5000"));
 	                GRIDS_ALWAYS_ON								= Boolean.parseBoolean(General.getProperty("GridsAlwaysOn", "False"));
 	                GRID_NEIGHBOR_TURNON_TIME					= Integer.parseInt(General.getProperty("GridNeighborTurnOnTime", "1"));
 	                GRID_NEIGHBOR_TURNOFF_TIME					= Integer.parseInt(General.getProperty("GridNeighborTurnOffTime", "90"));
@@ -1767,7 +1776,15 @@
 	                L2JMOD_ENABLE_WAREHOUSESORTING_CLAN     = Boolean.valueOf(L2JModSettings.getProperty("EnableWarehouseSortingClan", "False"));
 	                L2JMOD_ENABLE_WAREHOUSESORTING_PRIVATE  = Boolean.valueOf(L2JModSettings.getProperty("EnableWarehouseSortingPrivate", "False"));
 	                L2JMOD_ENABLE_WAREHOUSESORTING_FREIGHT  = Boolean.valueOf(L2JModSettings.getProperty("EnableWarehouseSortingFreight", "False"));
-	
+	                
+	                TW_TOWN_ID                    = Integer.parseInt(L2JModSettings.getProperty("TWTownId", "9"));	                
+	                TW_ALL_TOWNS				  			= Boolean.parseBoolean(L2JModSettings.getProperty("TWAllTowns", "False"));
+	                TW_ITEM_ID                    = Integer.parseInt(L2JModSettings.getProperty("TownWarItemId", "57"));
+	                TW_ITEM_AMOUNT                    = Integer.parseInt(L2JModSettings.getProperty("TownWarItemAmount", "5000"));
+	                TW_ALLOW_KARMA				  			= Boolean.parseBoolean(L2JModSettings.getProperty("AllowKarma", "False"));
+	                TW_DISABLE_GK				  			= Boolean.parseBoolean(L2JModSettings.getProperty("DisableGK", "True"));
+	                TW_RESS_ON_DIE				  			= Boolean.parseBoolean(L2JModSettings.getProperty("SendRessOnDeath", "False"));
+
+	                
 	                if (TVT_EVENT_PARTICIPATION_NPC_ID == 0)
 	                {
 	                    TVT_EVENT_ENABLED = false;
@@ -2104,6 +2121,7 @@
         else if (pName.equalsIgnoreCase("PreciseDropCalculation")) PRECISE_DROP_CALCULATION = Boolean.parseBoolean(pValue);
         else if (pName.equalsIgnoreCase("MultipleItemDrop")) MULTIPLE_ITEM_DROP = Boolean.parseBoolean(pValue);
         else if (pName.equalsIgnoreCase("CoordSynchronize")) COORD_SYNCHRONIZE = Integer.parseInt(pValue);
+        else if (pName.equalsIgnoreCase("MaxAmountBuy")) MULTISELL_MAX_AMOUNT = Integer.parseInt(pValue);
         else if (pName.equalsIgnoreCase("DeleteCharAfterDays")) DELETE_DAYS = Integer.parseInt(pValue);
 
         else if (pName.equalsIgnoreCase("AllowDiscardItem")) ALLOW_DISCARDITEM = Boolean.parseBoolean(pValue);
@@ -2249,6 +2267,7 @@
         else if (pName.equalsIgnoreCase("LifeCrystalNeeded")) LIFE_CRYSTAL_NEEDED = Boolean.parseBoolean(pValue);
         else if (pName.equalsIgnoreCase("SpBookNeeded")) SP_BOOK_NEEDED = Boolean.parseBoolean(pValue);
         else if (pName.equalsIgnoreCase("AutoLoot")) AUTO_LOOT = Boolean.parseBoolean(pValue);
+        else if (pName.equalsIgnoreCase("AutoLootRaid")) AUTO_LOOT_RAID = Boolean.parseBoolean(pValue);
         else if (pName.equalsIgnoreCase("AutoLootHerbs")) AUTO_LOOT_HERBS = Boolean.parseBoolean(pValue);
 
         else if (pName.equalsIgnoreCase("AltKarmaPlayerCanBeKilledInPeaceZone")) ALT_GAME_KARMA_PLAYER_CAN_BE_KILLED_IN_PEACEZONE = Boolean.parseBoolean(pValue);
@@ -2298,7 +2317,14 @@
         else if (pName.equalsIgnoreCase("TvTEventParticipationTime")) TVT_EVENT_PARTICIPATION_TIME = Integer.parseInt(pValue);
         else if (pName.equalsIgnoreCase("TvTEventRunningTime")) TVT_EVENT_RUNNING_TIME = Integer.parseInt(pValue);
         else if (pName.equalsIgnoreCase("TvTEventParticipationNpcId")) TVT_EVENT_PARTICIPATION_NPC_ID = Integer.parseInt(pValue);
-        
+
+        else if (pName.equalsIgnoreCase("TownWarItemId")) TW_ITEM_ID = Integer.parseInt(pValue);
+        else if (pName.equalsIgnoreCase("TownWarItemAmount")) TW_ITEM_AMOUNT = Integer.parseInt(pValue);
+        else if (pName.equalsIgnoreCase("AllowKarma")) TW_ALLOW_KARMA = Boolean.parseBoolean(pValue);
+        else if (pName.equalsIgnoreCase("DisableGK")) TW_DISABLE_GK = Boolean.parseBoolean(pValue);
+        else if (pName.equalsIgnoreCase("TWTownId")) TW_TOWN_ID = Integer.parseInt(pValue);
+        else if (pName.equalsIgnoreCase("TWAllTowns")) TW_ALL_TOWNS = Boolean.parseBoolean(pValue);
+        else if (pName.equalsIgnoreCase("SendRessOnDeath")) TW_RESS_ON_DIE = Boolean.parseBoolean(pValue);
+
         // L2JMOD Warehouse Sorting
         else if (pName.equalsIgnoreCase("EnableWarehouseSortingClan")) L2JMOD_ENABLE_WAREHOUSESORTING_CLAN = Boolean.parseBoolean(pValue);
         else if (pName.equalsIgnoreCase("EnableWarehouseSortingPrivate")) L2JMOD_ENABLE_WAREHOUSESORTING_PRIVATE = Boolean.parseBoolean(pValue);
Index: java/config/l2jmods.properties
===================================================================
--- java/config/l2jmods.properties	(revision 2797)
+++ java/config/l2jmods.properties	(working copy)
@@ -161,4 +161,51 @@
 #----------------------------------
 EnableWarehouseSortingClan = False
 EnableWarehouseSortingPrivate = False
-EnableWarehouseSortingFreight = False
\ No newline at end of file
+EnableWarehouseSortingFreight = False
+
+#----------------------------------
+#Town War
+#----------------------------------
+# //townwar_start - Starts town war in Giran
+# //townwar_end - Ends townwar in Giran
+# Town id
+#2: // Talking Island
+#3: // Elven village
+#1: // Dark elf village
+#4: // Orc village
+#6: // Dwarven village
+#7: // Gludio
+#5: // Gludin
+#8: // Dion
+#9: // Giran
+#10: // Oren
+#12: // Aden
+#11: // Hunters village
+#9: // Giran Harbour
+#15: // Heine
+#14: // Rune
+#13: // Goddard
+#17: // Schuttgart
+#16: // Floran
+#20: //Kamael Village
+TWTownId = 9
+
+#Set all towns?
+TWAllTowns = False
+
+#Reward for each kill:
+
+TownWarItemId = 57
+TownWarItemAmount = 5000
+
+# Give PKers karma during townwar?
+AllowKarma = False
+
+# Disable GK while in event?
+DisableGK = True
+
+# If yes it will send a ressurect ask on death.
+# If no when you die youll be there dead until the event ends.
+# Set to false if you want KOTH town.
+SendRessOnDeath = false
+