Noticias:

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

Menú Principal

Coliseum disablers

Iniciado por Swarlog, Ago 19, 2022, 01:31 AM

Tema anterior - Siguiente tema

Swarlog

Mi nueva acción incluye disablers para el Área Coliseo.
Con este parche se puede desactivar Resurrección habilidad, Pergamino de Resurrección y pociones en la zona de Coliseo.

Index: config/functions/l2jfrozen.properties
===================================================================
--- config/functions/l2jfrozen.properties   (revision 948)
+++ config/functions/l2jfrozen.properties   (working copy)
@@ -280,4 +280,15 @@
 ProtectorSkillLevel = 13
 ProtectorSkillTime = 600
 # Npc Protector Message
-ProtectorMessage = Hey You!, Never Kill On This Area, Go Read The Rules!
\ No newline at end of file
+ProtectorMessage = Hey You!, Never Kill On This Area, Go Read The Rules!
+
+#-----------------------------------------------
+# Coliseum Settings By Lekino
+#-----------------------------------------------
+#Allow using skill of resurrection and scroll of ressurection in coliseum?
+#Default: True
+AllowResColiseum = True
+
+#Allow using potions use in coliseum?
+#Default: True
+AllowPotionsColiseum = True
\ No newline at end of file
Index: head-src/com/l2jfrozen/Config.java
===================================================================
--- head-src/com/l2jfrozen/Config.java   (revision 948)
+++ head-src/com/l2jfrozen/Config.java   (working copy)
@@ -2378,6 +2378,8 @@
    public static String FARM2_CUSTOM_MESSAGE;
    public static String PVP1_CUSTOM_MESSAGE;
    public static String PVP2_CUSTOM_MESSAGE;
+   public static boolean ALLOW_COLISEUM_RES;
+   public static boolean ALLOW_COLISEUM_POT;     
 
    //============================================================
    public static void loadL2JFrozenConfig()
@@ -2497,6 +2499,8 @@
          FARM2_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("Farm2CustomMeesage", "You have been teleported to Farm Zone 2!");
          PVP1_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("PvP1CustomMeesage", "You have been teleported to PvP Zone 1!");
          PVP2_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("PvP2CustomMeesage", "You have been teleported to PvP Zone 2!");
+         ALLOW_COLISEUM_RES = Boolean.parseBoolean(L2JFrozenSettings.getProperty("AllowResColiseum", "True"));
+         ALLOW_COLISEUM_POT = Boolean.parseBoolean(L2JFrozenSettings.getProperty("AllowPotionsColiseum", "True"));
       }
       catch(Exception e)
       {
Index: head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/datatables/xml/ZoneData.java   (revision 948)
+++ 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.L2ColiseumZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2CustomZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2DamageZone;
 import com.l2jfrozen.gameserver.model.zone.type.L2DerbyTrackZone;
@@ -240,6 +241,10 @@
                         {
                            temp = new L2NoHqZone(zoneId);
                         }
+                        else if(zoneType.equals("ColiseumArea"))
+                        {
+                           temp = new L2ColiseumZone(zoneId);
+                        }                       
                         else if(zoneType.equals("BossZone"))
                         {
                            int boss_id = -1;
Index: head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Potions.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Potions.java   (revision 948)
+++ head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Potions.java   (working copy)
@@ -28,6 +28,7 @@
 import com.l2jfrozen.Config;
 import com.l2jfrozen.gameserver.datatables.SkillTable;
 import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Character;
 import com.l2jfrozen.gameserver.model.L2Effect;
 import com.l2jfrozen.gameserver.model.L2Effect.EffectType;
 import com.l2jfrozen.gameserver.model.L2Skill;
@@ -241,6 +242,13 @@
          return;
       }
 
+      //Check if Character is in coliseum
+      if(activeChar.isInsideZone(L2Character.ZONE_COLISEUM) && !Config.ALLOW_COLISEUM_POT)
+      {
+         activeChar.sendPacket(ActionFailed.STATIC_PACKET);
+         return;
+      }     
+
       //if(activeChar._inEventCTF && CTF._started && !Config.CTF_ALLOW_POTIONS)
       if(activeChar._inEventCTF && CTF.is_started() && !Config.CTF_ALLOW_POTIONS)
       {
Index: head-src/com/l2jfrozen/gameserver/handler/itemhandlers/ScrollOfResurrection.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/itemhandlers/ScrollOfResurrection.java   (revision 948)
+++ head-src/com/l2jfrozen/gameserver/handler/itemhandlers/ScrollOfResurrection.java   (working copy)
@@ -18,6 +18,7 @@
  */
 package com.l2jfrozen.gameserver.handler.itemhandlers;
 
+import com.l2jfrozen.Config;
 import com.l2jfrozen.gameserver.datatables.SkillTable;
 import com.l2jfrozen.gameserver.handler.IItemHandler;
 import com.l2jfrozen.gameserver.managers.CastleManager;
@@ -66,7 +67,12 @@
       {
          activeChar.sendMessage("This Item Cannot Be Used On Olympiad Games.");
       }
-
+     
+      if(activeChar.isInsideZone(L2Character.ZONE_COLISEUM) && !Config.ALLOW_COLISEUM_RES)
+      {
+         activeChar.sendMessage("This item cannot be used on Coliseum");
+      }
+     
       if(activeChar.isMovementDisabled())
          return;
 
Index: head-src/com/l2jfrozen/gameserver/handler/skillhandlers/Resurrect.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/handler/skillhandlers/Resurrect.java   (revision 948)
+++ head-src/com/l2jfrozen/gameserver/handler/skillhandlers/Resurrect.java   (working copy)
@@ -22,6 +22,7 @@
 
 import javolution.util.FastList;
 
+import com.l2jfrozen.Config;
 import com.l2jfrozen.gameserver.handler.ISkillHandler;
 import com.l2jfrozen.gameserver.model.L2Character;
 import com.l2jfrozen.gameserver.model.L2Object;
@@ -56,6 +57,12 @@
       L2Character target = null;
       L2PcInstance targetPlayer;
       List<L2Character> targetToRes = new FastList<L2Character>();
+     
+      if(activeChar.isInsideZone(L2Character.ZONE_COLISEUM) && !Config.ALLOW_COLISEUM_RES)
+      {
+         activeChar.sendPacket(SystemMessage.sendString("You can't use resurrect skill in coliseum!"));
+         return;
+      }   
 
       for(L2Object target2 : targets)
       {
Index: head-src/com/l2jfrozen/gameserver/model/L2Character.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/L2Character.java   (revision 948)
+++ head-src/com/l2jfrozen/gameserver/model/L2Character.java   (working copy)
@@ -339,6 +339,9 @@
   
    /** The Constant ZONE_DANGERAREA. */
    public static final int ZONE_DANGERAREA = 16384;
+   
+   /** The Constant ZONE_COLISEUM. */
+   public static final int ZONE_COLISEUM = 16385;   
 
    /** The _current zones. */
    private int _currentZones = 0;
Index: head-src/com/l2jfrozen/gameserver/model/zone/type/L2ColiseumZone.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/zone/type/L2ColiseumZone.java   (revision 0)
+++ head-src/com/l2jfrozen/gameserver/model/zone/type/L2ColiseumZone.java   (revision 0)
@@ -0,0 +1,69 @@
+/* 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 2, 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+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.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.zone.L2ZoneType;
+import com.l2jfrozen.gameserver.network.SystemMessageId;
+import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage;
+/**
+ *
+ * @author Leki
+ */
+public class L2ColiseumZone extends L2ZoneType
+{
+   public L2ColiseumZone(int id)
+   {
+      super(id);
+   }
+
+   @Override
+   protected void onEnter(L2Character character)
+   {
+      character.setInsideZone(L2Character.ZONE_PVP, true);
+      character.setInsideZone(L2Character.ZONE_COLISEUM, true);
+      if(character instanceof L2PcInstance)
+      {
+         ((L2PcInstance) character).sendPacket(new SystemMessage(SystemMessageId.ENTERED_COMBAT_ZONE));
+      }
+   }
+
+   @Override
+   protected void onExit(L2Character character)
+   {
+      character.setInsideZone(L2Character.ZONE_PVP, false);
+      character.setInsideZone(L2Character.ZONE_COLISEUM, false);
+     
+      if(character instanceof L2PcInstance)
+      {
+         
+         ((L2PcInstance) character).sendPacket(new SystemMessage(SystemMessageId.LEFT_COMBAT_ZONE));
+      }
+   }
+
+   @Override
+   public void onDieInside(L2Character character)
+   {}
+
+   @Override
+   public void onReviveInside(L2Character character)
+   {}
+}[/font]

Index: zone.xml
===================================================================
--- zone.xml   (revision 948)
+++ zone.xml   (working copy)
@@ -17,7 +17,7 @@
       <stat name='spawnY' val='142402'/>
       <stat name='spawnZ' val='-3643'/>
    </zone>
-   <zone id='11012' type='Arena' shape='NPoly' minZ='-3500' maxZ='-3300'>
+   <zone id='11012' type='ColiseumArea' shape='NPoly' minZ='-3500' maxZ='-3300'>
       <stat name='name' val='Coliseum'/>
       <stat name='spawnX' val='147451'/>
       <stat name='spawnY' val='46728'/>

Creditos: Leki (autor), CaFi (posteo)