Noticias:

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

Menú Principal

Bonificar los pvp entre razas

Iniciado por Swarlog, Ago 12, 2022, 02:12 AM

Tema anterior - Siguiente tema

Swarlog

Este codigo lo que hace es bonificar los pvp entre razas.
Creditos: Kimeraweb

### Eclipse Workspace Patch 1.0
#P L2J_Server
Index: java/com/l2jserver/Config.java
===================================================================
--- java/com/l2jserver/Config.java   (revision 6245)
+++ java/com/l2jserver/Config.java   (working copy)
@@ -103,6 +103,7 @@
    public static final String SECURITY_CONFIG_FILE = "./config/Security.properties";
    public static final String EMAIL_CONFIG_FILE = "./config/Email.properties";
    public static final String CH_SIEGE_FILE = "./config/ConquerableHallSiege.properties";
+   public static final String L2J_ROL_FILE = "./config/L2JRol.properties";
    // --------------------------------------------------
    // L2J Variable Definitions
    // --------------------------------------------------
@@ -1127,6 +1128,54 @@
    public static int CHS_FAME_AMOUNT;
    public static int CHS_FAME_FREQUENCY;
   
+   // L2J Rol (Nombre del proyecto)
+   // Variables para incrementar el fuerza de ataque de una raza a otra
+   public static boolean POWER_UP_ACTIVATED; // Activa o desactiva el incrementador de ataque de una raza sobre otra
+   // Razas
+   
+   // Humano
+   public static double POWER_UP_HUMAN_vs_HUMAN;
+   public static double POWER_UP_HUMAN_vs_ELF;
+   public static double POWER_UP_HUMAN_vs_DELF;
+   public static double POWER_UP_HUMAN_vs_ORC;
+   public static double POWER_UP_HUMAN_vs_DWARF;
+   public static double POWER_UP_HUMAN_vs_KAMAEL;
+   // Elfo
+   public static double POWER_UP_ELF_vs_HUMAN;
+   public static double POWER_UP_ELF_vs_ELF;
+   public static double POWER_UP_ELF_vs_DELF;
+   public static double POWER_UP_ELF_vs_ORC;
+   public static double POWER_UP_ELF_vs_DWARF;
+   public static double POWER_UP_ELF_vs_KAMAEL;
+   // Elfo Oscuro
+   public static double POWER_UP_DELF_vs_HUMAN;
+   public static double POWER_UP_DELF_vs_ELF;
+   public static double POWER_UP_DELF_vs_DELF;
+   public static double POWER_UP_DELF_vs_ORC;
+   public static double POWER_UP_DELF_vs_DWARF;
+   public static double POWER_UP_DELF_vs_KAMAEL;
+   // Orco
+   public static double POWER_UP_ORC_vs_HUMAN;
+   public static double POWER_UP_ORC_vs_ELF;
+   public static double POWER_UP_ORC_vs_DELF;
+   public static double POWER_UP_ORC_vs_ORC;
+   public static double POWER_UP_ORC_vs_DWARF;
+   public static double POWER_UP_ORC_vs_KAMAEL;
+   // Enano
+   public static double POWER_UP_DWARF_vs_HUMAN;
+   public static double POWER_UP_DWARF_vs_ELF;
+   public static double POWER_UP_DWARF_vs_DELF;
+   public static double POWER_UP_DWARF_vs_ORC;
+   public static double POWER_UP_DWARF_vs_DWARF;
+   public static double POWER_UP_DWARF_vs_KAMAEL;
+   // Kamael
+   public static double POWER_UP_KAMAEL_vs_HUMAN;
+   public static double POWER_UP_KAMAEL_vs_ELF;
+   public static double POWER_UP_KAMAEL_vs_DELF;
+   public static double POWER_UP_KAMAEL_vs_ORC;
+   public static double POWER_UP_KAMAEL_vs_DWARF;
+   public static double POWER_UP_KAMAEL_vs_KAMAEL;
+   
    /**
     * This class initializes all global variables for configuration.<br>
     * If the key doesn't appear in properties file, a default value is set by this class. {@link #CONFIGURATION_FILE} (properties file) for configuring your server.
@@ -3001,6 +3050,64 @@
          CHS_ENABLE_FAME = Boolean.parseBoolean(ClanHallSiege.getProperty("EnableFame", "false"));
          CHS_FAME_AMOUNT = Integer.parseInt(ClanHallSiege.getProperty("FameAmount", "0"));
          CHS_FAME_FREQUENCY = Integer.parseInt(ClanHallSiege.getProperty("FameFrequency", "0"));
+         
+         // Carga la configuracion de L2J_Rol
+         L2Properties L2JRol_properties = new L2Properties();
+         final File l2jrol = new File(L2J_ROL_FILE);
+         try (InputStream is = new FileInputStream(l2jrol))
+         {
+            L2JRol_properties.load(is);
+            _log.log(Level.INFO, "La bonificacion L2J_ROL ha sido cargada con exito.");
+         }
+         catch (Exception e)
+         {
+            _log.log(Level.SEVERE, L2J_ROL_FILE + ": no ha cargado correctamente!", e);
+         }
+         POWER_UP_ACTIVATED = Boolean.parseBoolean(L2JRol_properties.getProperty("POWER_UP_ACTIVATED", "True"));
+         
+         POWER_UP_HUMAN_vs_HUMAN = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_HUMAN_vs_HUMAN", "1.0"));
+         POWER_UP_HUMAN_vs_ELF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_HUMAN_vs_ELF", "1.0"));
+         POWER_UP_HUMAN_vs_DELF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_HUMAN_vs_DELF", "1.0"));
+         POWER_UP_HUMAN_vs_ORC = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_HUMAN_vs_ORC", "1.0"));
+         POWER_UP_HUMAN_vs_DWARF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_HUMAN_vs_DWARF", "1.0"));
+         POWER_UP_HUMAN_vs_KAMAEL = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_HUMAN_vs_KAMAEL", "1.0"));
+         
+         POWER_UP_ELF_vs_HUMAN = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_ELF_vs_HUMAN", "1.0"));
+         POWER_UP_ELF_vs_ELF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_ELF_vs_ELF", "1.0"));
+         POWER_UP_ELF_vs_DELF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_ELF_vs_DELF", "1.0"));
+         POWER_UP_ELF_vs_ORC = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_ELF_vs_ORC", "1.0"));
+         POWER_UP_ELF_vs_DWARF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_ELF_vs_DWARF", "1.0"));
+         POWER_UP_ELF_vs_KAMAEL = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_ELF_vs_KAMAEL", "1.0"));
+         
+         POWER_UP_DELF_vs_HUMAN = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_DELF_vs_HUMAN", "1.0"));
+         POWER_UP_DELF_vs_ELF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_DELF_vs_ELF", "1.0"));
+         POWER_UP_DELF_vs_DELF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_DELF_vs_DELF", "1.0"));
+         POWER_UP_DELF_vs_ORC = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_DELF_vs_ORC", "1.0"));
+         POWER_UP_DELF_vs_DWARF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_DELF_vs_DWARF", "1.0"));
+         POWER_UP_DELF_vs_KAMAEL = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_DELF_vs_KAMAEL", "1.0"));
+         
+         POWER_UP_ORC_vs_HUMAN = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_ORC_vs_HUMAN", "1.0"));
+         POWER_UP_ORC_vs_ELF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_ORC_vs_ELF", "1.0"));
+         POWER_UP_ORC_vs_DELF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_ORC_vs_DELF", "1.0"));
+         POWER_UP_ORC_vs_ORC = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_ORC_vs_ORC", "1.0"));
+         POWER_UP_ORC_vs_DWARF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_ORC_vs_DWARF", "1.0"));
+         POWER_UP_ORC_vs_KAMAEL = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_ORC_vs_KAMAEL", "1.0"));
+         
+         POWER_UP_DWARF_vs_HUMAN = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_DWARF_vs_HUMAN", "1.0"));
+         POWER_UP_DWARF_vs_ELF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_DWARF_vs_ELF", "1.0"));
+         POWER_UP_DWARF_vs_DELF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_DWARF_vs_DELF", "1.0"));
+         POWER_UP_DWARF_vs_ORC = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_DWARF_vs_ORC", "1.0"));
+         POWER_UP_DWARF_vs_DWARF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_DWARF_vs_DWARF", "1.0"));
+         POWER_UP_DWARF_vs_KAMAEL = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_DWARF_vs_KAMAEL", "1.0"));
+         
+         POWER_UP_KAMAEL_vs_HUMAN = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_KAMAEL_vs_HUMAN", "1.0"));
+         POWER_UP_KAMAEL_vs_ELF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_KAMAEL_vs_ELF", "1.0"));
+         POWER_UP_KAMAEL_vs_DELF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_KAMAEL_vs_DELF", "1.0"));
+         POWER_UP_KAMAEL_vs_ORC = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_KAMAEL_vs_ORC", "1.0"));
+         POWER_UP_KAMAEL_vs_DWARF = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_KAMAEL_vs_DWARF", "1.0"));
+         POWER_UP_KAMAEL_vs_KAMAEL = Double.parseDouble(L2JRol_properties.getProperty("POWER_UP_KAMAEL_vs_KAMAEL", "1.0"));
+         // -- L2J_Rol -- //
+         
       }
       else if (Server.serverMode == Server.MODE_LOGINSERVER)
       {
Index: java/com/l2jrol/Calculadora_L2JRol.java
===================================================================
--- java/com/l2jrol/Calculadora_L2JRol.java   (revision 0)
+++ java/com/l2jrol/Calculadora_L2JRol.java   (working copy)
@@ -0,0 +1,226 @@
+/*
+ * Copyright (C) 2004-2013 L2J Server
+ *
+ * This file is part of L2J Server.
+ *
+ * L2J Server 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.
+ *
+ * L2J Server 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.l2jrol;
+
+import com.l2jserver.Config;
+import com.l2jserver.gameserver.model.actor.L2Character;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.base.Race;
+
+/**
+ * @author Tony
+ */
+public class Calculadora_L2JRol
+{
+   /**
+    * Modifica el daño desde L2JRol.properties.
+    * @param atk
+    * @param vict
+    * @return
+    */
+   public static double getDamage_L2JRol(L2Character atk, L2Character vict)
+   {
+      double damage = 1.0;
+      Race atacante_raza, victima_raza;
+     
+      if (Config.POWER_UP_ACTIVATED)
+      {
+         if ((atk instanceof L2PcInstance) && (vict instanceof L2PcInstance))
+         {
+            L2PcInstance atacante = atk.getActingPlayer();
+            L2PcInstance victima = vict.getActingPlayer();
+            atacante_raza = atacante.getRace();
+            victima_raza = victima.getRace();
+            // System.out.println("A:" + atacante_raza.toString() + " B:" + victima_raza.toString());
+            switch (atacante_raza)
+            {
+               case Human:
+                  switch (victima_raza)
+                  {
+                     case Human:
+                        damage = Config.POWER_UP_HUMAN_vs_HUMAN;
+                        break;
+                     case Elf:
+                        damage = Config.POWER_UP_HUMAN_vs_ELF;
+                        break;
+                     case DarkElf:
+                        damage = Config.POWER_UP_HUMAN_vs_DELF;
+                        break;
+                     case Orc:
+                        damage = Config.POWER_UP_HUMAN_vs_ORC;
+                        System.out.println("CONFIG: " + Config.POWER_UP_HUMAN_vs_ORC);
+                        break;
+                     case Dwarf:
+                        damage = Config.POWER_UP_HUMAN_vs_DWARF;
+                        break;
+                     case Kamael:
+                        damage = Config.POWER_UP_HUMAN_vs_KAMAEL;
+                        break;
+                     default:
+                        System.out.println("La raza " + victima_raza + " no se encuentra.");
+                        break;
+                  }
+                  break;
+               case Elf:
+                  switch (victima_raza)
+                  {
+                     case Human:
+                        damage = Config.POWER_UP_ELF_vs_HUMAN;
+                        break;
+                     case Elf:
+                        damage = Config.POWER_UP_ELF_vs_ELF;
+                        break;
+                     case DarkElf:
+                        damage = Config.POWER_UP_ELF_vs_DELF;
+                        break;
+                     case Orc:
+                        damage = Config.POWER_UP_ELF_vs_ORC;
+                        break;
+                     case Dwarf:
+                        damage = Config.POWER_UP_ELF_vs_DWARF;
+                        break;
+                     case Kamael:
+                        damage = Config.POWER_UP_ELF_vs_KAMAEL;
+                        break;
+                     default:
+                        System.out.println("La raza " + victima_raza + " no se encuentra.");
+                        break;
+                  }
+                  break;
+               case DarkElf:
+                  switch (victima_raza)
+                  {
+                     case Human:
+                        damage = Config.POWER_UP_DELF_vs_HUMAN;
+                        break;
+                     case Elf:
+                        damage = Config.POWER_UP_DELF_vs_ELF;
+                        break;
+                     case DarkElf:
+                        damage = Config.POWER_UP_DELF_vs_DELF;
+                        break;
+                     case Orc:
+                        damage = Config.POWER_UP_DELF_vs_ORC;
+                        break;
+                     case Dwarf:
+                        damage = Config.POWER_UP_DELF_vs_DWARF;
+                        break;
+                     case Kamael:
+                        damage = Config.POWER_UP_DELF_vs_KAMAEL;
+                        break;
+                     default:
+                        System.out.println("La raza " + victima_raza + " no se encuentra.");
+                        break;
+                  }
+                  break;
+               case Orc:
+                  switch (victima_raza)
+                  {
+                     case Human:
+                        damage = Config.POWER_UP_ORC_vs_HUMAN;
+                        break;
+                     case Elf:
+                        damage = Config.POWER_UP_ORC_vs_ELF;
+                        break;
+                     case DarkElf:
+                        damage = Config.POWER_UP_ORC_vs_DELF;
+                        break;
+                     case Orc:
+                        damage = Config.POWER_UP_ORC_vs_ORC;
+                        break;
+                     case Dwarf:
+                        damage = Config.POWER_UP_ORC_vs_DWARF;
+                        break;
+                     case Kamael:
+                        damage = Config.POWER_UP_ORC_vs_KAMAEL;
+                        break;
+                     default:
+                        System.out.println("La raza " + victima_raza + " no se encuentra.");
+                        break;
+                  }
+                  break;
+               case Dwarf:
+                  switch (victima_raza)
+                  {
+                     case Human:
+                        damage = Config.POWER_UP_DWARF_vs_HUMAN;
+                        break;
+                     case Elf:
+                        damage = Config.POWER_UP_DWARF_vs_ELF;
+                        break;
+                     case DarkElf:
+                        damage = Config.POWER_UP_DWARF_vs_DELF;
+                        break;
+                     case Orc:
+                        damage = Config.POWER_UP_DWARF_vs_ORC;
+                        break;
+                     case Dwarf:
+                        damage = Config.POWER_UP_DWARF_vs_DWARF;
+                        break;
+                     case Kamael:
+                        damage = Config.POWER_UP_DWARF_vs_KAMAEL;
+                        break;
+                     default:
+                        System.out.println("La raza " + victima_raza + " no se encuentra.");
+                        break;
+                  }
+                  break;
+               case Kamael:
+                  switch (victima_raza)
+                  {
+                     case Human:
+                        damage = Config.POWER_UP_KAMAEL_vs_HUMAN;
+                        break;
+                     case Elf:
+                        damage = Config.POWER_UP_KAMAEL_vs_ELF;
+                        break;
+                     case DarkElf:
+                        damage = Config.POWER_UP_KAMAEL_vs_DELF;
+                        break;
+                     case Orc:
+                        damage = Config.POWER_UP_KAMAEL_vs_ORC;
+                        break;
+                     case Dwarf:
+                        damage = Config.POWER_UP_KAMAEL_vs_DWARF;
+                        break;
+                     case Kamael:
+                        damage = Config.POWER_UP_KAMAEL_vs_KAMAEL;
+                        break;
+                     default:
+                        System.out.println("La raza " + victima_raza + " no se encuentra.");
+                        break;
+                  }
+                  break;
+               default:
+                  System.out.println("La raza " + victima_raza + " no se encuentra.");
+                  break;
+            }
+         }
+         else
+         {
+            // System.out.println("A:" + atk.getInstanceType().toString() + " V: " + vict.getInstanceType().toString());
+         }
+      }
+      else
+      {
+         // System.out.println("POWERUP esta desactivado.");
+      }
+      return damage;
+   }
+}
Index: dist/game/config/L2JRol.properties
===================================================================
--- dist/game/config/L2JRol.properties   (revision 0)
+++ dist/game/config/L2JRol.properties   (working copy)
@@ -0,0 +1,58 @@
+# En esta configuracion se bonifican o no, el daño en pvp de una raza a otra.
+# False desactiva la bonificacion.
+POWER_UP_ACTIVATED = true
+# La formula es daño = daño * bonificacion
+#
+# Humano
+# En esta configuracion: 10% daño extra a los orcos
+POWER_UP_HUMAN_vs_HUMAN = 1.0
+POWER_UP_HUMAN_vs_ELF = 1.0
+POWER_UP_HUMAN_vs_DELF = 1.0
+POWER_UP_HUMAN_vs_ORC = 1.1
+POWER_UP_HUMAN_vs_DWARF = 1.0
+POWER_UP_HUMAN_vs_KAMAEL 1.0
+
+#Elfo
+# En esta configuracion: 10% daño extra a los elfos oscuros
+POWER_UP_ELF_vs_HUMAN = 1.0
+POWER_UP_ELF_vs_ELF = 1.0
+POWER_UP_ELF_vs_DELF = 1.1
+POWER_UP_ELF_vs_ORC = 1.0
+POWER_UP_ELF_vs_DWARF = 1.0
+POWER_UP_ELF_vs_KAMAEL = 1.0
+
+#Elfo Oscuro
+# En esta configuracion: 10% daño extra a los humanos
+POWER_UP_DELF_vs_HUMAN = 1.1
+POWER_UP_DELF_vs_ELF = 1.0
+POWER_UP_DELF_vs_DELF = 1.0
+POWER_UP_DELF_vs_ORC = 1.0
+POWER_UP_DELF_vs_DWARF = 1.0
+POWER_UP_DELF_vs_KAMAEL = 1.0
+
+# Orco
+# En esta configuracion: 5% daño extra a los enanos
+POWER_UP_ORC_vs_HUMAN = 1.0
+POWER_UP_ORC_vs_ELF = 1.0
+POWER_UP_ORC_vs_DELF = 1.0
+POWER_UP_ORC_vs_ORC = 1.0
+POWER_UP_ORC_vs_DWARF = 1.05
+POWER_UP_ORC_vs_KAMAEL = 1.0
+
+# Enano
+# En esta configuracion: 10% daño extra a los kamael
+POWER_UP_DWARF_vs_HUMAN = 1.0
+POWER_UP_DWARF_vs_ELF = 1.0
+POWER_UP_DWARF_vs_DELF = 1.0
+POWER_UP_DWARF_vs_ORC = 1.0
+POWER_UP_DWARF_vs_DWARF = 1.0
+POWER_UP_DWARF_vs_KAMAEL = 1.1
+
+# Kamael
+# En esta configuracion: 10% daño extra a los elfos blancos
+POWER_UP_KAMAEL_vs_HUMAN = 1.0
+POWER_UP_KAMAEL_vs_ELF = 1.1
+POWER_UP_KAMAEL_vs_DELF = 1.0
+POWER_UP_KAMAEL_vs_ORC = 1.0
+POWER_UP_KAMAEL_vs_DWARF = 1.0
+POWER_UP_KAMAEL_vs_KAMAEL = 1.0
\ No newline at end of file
Index: java/com/l2jserver/gameserver/model/stats/Formulas.java
===================================================================
--- java/com/l2jserver/gameserver/model/stats/Formulas.java   (revision 6245)
+++ java/com/l2jserver/gameserver/model/stats/Formulas.java   (working copy)
@@ -22,6 +22,7 @@
 import java.util.List;
 import java.util.logging.Logger;
 
+import com.l2jrol.Calculadora_L2JRol;
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.SevenSigns;
 import com.l2jserver.gameserver.SevenSignsFestival;
@@ -606,6 +607,7 @@
   
    public static double calcBlowDamage(L2Character attacker, L2Character target, L2Skill skill, byte shld, boolean ss)
    {
+     
       double defence = target.getPDef(attacker);
       
       switch (shld)
@@ -697,6 +699,7 @@
       damage *= calcValakasTrait(attacker, target, skill);
       
       // Def bonuses in PvP fight
+      // TODO: Quizas haya que añadir el modo rol aqui
       if (isPvP)
       {
          if (skill == null)
@@ -955,7 +958,10 @@
             }
          }
       }
-     
+      // System.out.println("Entrada: " + damage);
+      // System.out.println(">>" + Calculadora_L2JRol.getDamage_L2JRol(attacker, target) + "<<");
+      damage = damage * Calculadora_L2JRol.getDamage_L2JRol(attacker, target);
+      // System.out.println("Salida: " + damage);
       return damage;
    }
   
@@ -1084,7 +1090,7 @@
             }
          }
       }
-     
+      damage = damage * Calculadora_L2JRol.getDamage_L2JRol(attacker, target);
       return damage;
    }
   
@@ -1994,7 +2000,7 @@
             }
          }
       }
-     
+      damage = damage * Calculadora_L2JRol.getDamage_L2JRol(attacker, target);
       return damage;
    }