Jump to content
  • 0

[HELP] Balance Formula Damage


Question

Posted

#P L2_GameServer_It
Index: java/net/sf/l2j/gameserver/skills/Formulas.java
===================================================================
--- java/net/sf/l2j/gameserver/skills/Formulas.java	(revision 3695)
+++ java/net/sf/l2j/gameserver/skills/Formulas.java	(working copy)
@@ -1162,6 +1162,104 @@
		{
			defence += target.getShldDef();
		}
+		
+        if (target instanceof L2PcInstance && weapon != null && weapon.getItemType() == L2WeaponType.DAGGER && skill != null)  
+        {  
+                L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();  
+                if (armor != null)
+                {
+                        if (((L2PcInstance) target).isWearingHeavyArmor())
+                                damage /= Config.DAGGER_VS_HEAVY;
+                        if (((L2PcInstance) target).isWearingLightArmor())
+                                damage /= Config.DAGGER_VS_LIGHT;
+                        if (((L2PcInstance) target).isWearingMagicArmor())
+                                damage /= Config.DAGGER_VS_ROBE;
+                }
+        }
+        
+        if (target instanceof L2PcInstance && weapon != null && weapon.getItemType() == L2WeaponType.BOW && skill != null)
+        {
+                L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
+                if (armor != null)
+                {
+                        if (((L2PcInstance) target).isWearingHeavyArmor())
+                                damage /= Config.ARCHER_VS_HEAVY;
+                        if (((L2PcInstance) target).isWearingLightArmor())
+                                damage /= Config.ARCHER_VS_LIGHT;
+                        if (((L2PcInstance) target).isWearingMagicArmor())
+                                damage /= Config.ARCHER_VS_ROBE;
+                }
+        }
+        
+        if (target instanceof L2PcInstance && weapon != null && weapon.getItemType() == L2WeaponType.BLUNT && skill != null)
+        {
+                L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
+                if (armor != null)
+                {
+                        if (((L2PcInstance) target).isWearingHeavyArmor())
+                                damage /= Config.BLUNT_VS_HEAVY;
+                        if (((L2PcInstance) target).isWearingLightArmor())
+                                damage /= Config.BLUNT_VS_LIGHT;
+                        if (((L2PcInstance) target).isWearingMagicArmor())
+                                damage /= Config.BLUNT_VS_ROBE;
+                }
+        }
+        
+        if (target instanceof L2PcInstance && weapon != null && weapon.getItemType() == L2WeaponType.DUALFIST && skill != null)
+        {
+                L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
+                if (armor != null)
+                {
+                        if (((L2PcInstance) target).isWearingHeavyArmor())
+                                damage /= Config.FIST_VS_HEAVY;
+                        if (((L2PcInstance) target).isWearingLightArmor())
+                                damage /= Config.FIST_VS_LIGHT;
+                        if (((L2PcInstance) target).isWearingMagicArmor())
+                                damage /= Config.FIST_VS_ROBE;
+                }
+        }
+        
+        if (target instanceof L2PcInstance && weapon != null && weapon.getItemType() == L2WeaponType.DUAL && skill != null)
+        {
+                L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
+                if (armor != null)
+                {
+                        if (((L2PcInstance) target).isWearingHeavyArmor())
+                                damage /= Config.DUAL_VS_HEAVY;
+                        if (((L2PcInstance) target).isWearingLightArmor())
+                                damage /= Config.DUAL_VS_LIGHT;
+                        if (((L2PcInstance) target).isWearingMagicArmor())
+                                damage /= Config.DUAL_VS_ROBE;
+                }
+        }
+        
+        if (target instanceof L2PcInstance && weapon != null && weapon.getItemType() == L2WeaponType.SWORD && skill != null)
+        {
+                L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
+                if (armor != null)
+                {
+                        if (((L2PcInstance) target).isWearingHeavyArmor())
+                                damage /= Config.SWORD_VS_HEAVY;
+                        if (((L2PcInstance) target).isWearingLightArmor())
+                                damage /= Config.SWORD_VS_LIGHT;
+                        if (((L2PcInstance) target).isWearingMagicArmor())
+                                damage /= Config.SWORD_VS_ROBE;
+                }
+        }
+        
+        if (target instanceof L2PcInstance && weapon != null && weapon.getItemType() == L2WeaponType.POLE && skill != null)
+        {
+                L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
+                if (armor != null)
+                {
+                        if (((L2PcInstance) target).isWearingHeavyArmor())
+                                damage /= Config.POLE_VS_HEAVY;
+                        if (((L2PcInstance) target).isWearingLightArmor())
+                                damage /= Config.POLE_VS_LIGHT;
+                        if (((L2PcInstance) target).isWearingMagicArmor())
+                                damage /= Config.POLE_VS_ROBE;
+                }
+        }
		//if (!(attacker instanceof L2RaidBossInstance) &&
		/*
		if ((attacker instanceof L2NpcInstance || attacker instanceof L2SiegeGuardInstance))
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java	(revision 3695)
+++ java/net/sf/l2j/Config.java	(working copy)
@@ -881,7 +881,30 @@
     public static boolean L2JMOD_WEDDING_SAMESEX;
     public static boolean L2JMOD_WEDDING_FORMALWEAR;
     public static int L2JMOD_WEDDING_DIVORCE_COSTS;
-
+    
+    /** Class Balances                  */
+    public static float			DAGGER_VS_HEAVY;
+    public static float			DAGGER_VS_LIGHT;
+    public static float			DAGGER_VS_ROBE;
+    public static float			ARCHER_VS_HEAVY;
+    public static float			ARCHER_VS_LIGHT;
+    public static float			ARCHER_VS_ROBE;
+    public static float			BLUNT_VS_HEAVY;
+    public static float			BLUNT_VS_LIGHT;
+    public static float			BLUNT_VS_ROBE;
+    public static float			FIST_VS_HEAVY;
+    public static float			FIST_VS_LIGHT;
+    public static float			FIST_VS_ROBE;
+    public static float			DUAL_VS_HEAVY;
+    public static float			DUAL_VS_LIGHT;
+    public static float			DUAL_VS_ROBE;
+    public static float			SWORD_VS_HEAVY;
+    public static float			SWORD_VS_LIGHT;
+    public static float			SWORD_VS_ROBE;
+    public static float			POLE_VS_HEAVY;
+    public static float			POLE_VS_LIGHT;
+    public static float			POLE_VS_ROBE;
+    
     // Packet information
     /** Count the amount of packets per minute ? */
     public static boolean  COUNT_PACKETS           = false;
@@ -1848,6 +1871,34 @@
                 TVT_EVENT_RUNNING_TIME                    = Integer.parseInt(L2JModSettings.getProperty("TvTEventRunningTime", "1800"));
                 TVT_EVENT_PARTICIPATION_NPC_ID            = Integer.parseInt(L2JModSettings.getProperty("TvTEventParticipationNpcId", "0"));

+                DAGGER_VS_HEAVY      = Float.parseFloat(L2JModSettings.getProperty("DaggerVsHeavy", "2.50"));
+                DAGGER_VS_LIGHT      = Float.parseFloat(L2JModSettings.getProperty("DaggerVsHeavy", "2.00"));
+                DAGGER_VS_ROBE       = Float.parseFloat(L2JModSettings.getProperty("DaggerVsHeavy", "1.80"));
+                
+                ARCHER_VS_HEAVY      = Float.parseFloat(L2JModSettings.getProperty("ArcherVsHeavy", "2.50"));
+                ARCHER_VS_LIGHT      = Float.parseFloat(L2JModSettings.getProperty("ArcherVsHeavy", "2.00"));
+                ARCHER_VS_ROBE       = Float.parseFloat(L2JModSettings.getProperty("ArcherVsHeavy", "1.80"));
+                
+                BLUNT_VS_HEAVY      = Float.parseFloat(L2JModSettings.getProperty("BluntVsHeavy", "2.50"));
+                BLUNT_VS_LIGHT      = Float.parseFloat(L2JModSettings.getProperty("BluntVsHeavy", "2.00"));
+                BLUNT_VS_ROBE       = Float.parseFloat(L2JModSettings.getProperty("BluntVsHeavy", "1.80"));
+                
+                FIST_VS_HEAVY      = Float.parseFloat(L2JModSettings.getProperty("FistVsHeavy", "2.50"));
+                FIST_VS_LIGHT      = Float.parseFloat(L2JModSettings.getProperty("FistVsHeavy", "2.00"));
+                FIST_VS_ROBE       = Float.parseFloat(L2JModSettings.getProperty("FistVsHeavy", "1.80"));
+                
+                DUAL_VS_HEAVY      = Float.parseFloat(L2JModSettings.getProperty("DualVsHeavy", "2.50"));
+                DUAL_VS_LIGHT      = Float.parseFloat(L2JModSettings.getProperty("DualVsHeavy", "2.00"));
+                DUAL_VS_ROBE       = Float.parseFloat(L2JModSettings.getProperty("DualVsHeavy", "1.80"));
+                
+                SWORD_VS_HEAVY      = Float.parseFloat(L2JModSettings.getProperty("SwordVsHeavy", "2.50"));
+                SWORD_VS_LIGHT      = Float.parseFloat(L2JModSettings.getProperty("SwordVsHeavy", "2.00"));
+                SWORD_VS_ROBE       = Float.parseFloat(L2JModSettings.getProperty("SwordVsHeavy", "1.80"));
+                
+                POLE_VS_HEAVY      = Float.parseFloat(L2JModSettings.getProperty("PoleVsHeavy", "2.50"));
+                POLE_VS_LIGHT      = Float.parseFloat(L2JModSettings.getProperty("PoleVsHeavy", "2.00"));
+                POLE_VS_ROBE       = Float.parseFloat(L2JModSettings.getProperty("PoleVsHeavy", "1.80"));
+
                 /** L2JMOD Wedding system  */
                 L2JMOD_ALLOW_WEDDING                    = Boolean.valueOf(L2JModSettings.getProperty("AllowWedding", "False"));
                 L2JMOD_WEDDING_PRICE                    = Integer.parseInt(L2JModSettings.getProperty("WeddingPrice", "250000000"));
Index: java/config/l2jmods.properties
===================================================================
--- java/config/l2jmods.properties	(revision 3695)
+++ java/config/l2jmods.properties	(working copy)
@@ -132,3 +132,52 @@
# ex.: 1;2;3;4;5;6
# no ";" at the start or end
TvTEventDoorsCloseOpenOnStartEnd =
+
+#---------------------------------------------
+# Balance Dagger Classes                     -
+#---------------------------------------------
+DaggerVsHeavy = 2.50
+DaggerVsLight = 2.00
+DaggerVsRobe = 1.80
+
+#---------------------------------------------
+# Balance Archer Classes                     -
+#---------------------------------------------
+ArcherVsHeavy = 2.50
+ArcherVsLight = 2.00
+ArcherVsRobe = 1.80
+
+#---------------------------------------------
+# Balance Blunt Classes                     -
+#---------------------------------------------
+BluntVsHeavy = 2.50
+BluntVsLight = 2.00
+BluntVsRobe = 1.80
+
+#---------------------------------------------
+# Balance Dual-Weapon Classes                     -
+#---------------------------------------------
+DualVsHeavy = 2.50
+DualVsLight = 2.00
+DualVsRobe = 1.80
+
+#---------------------------------------------
+# Balance Fist Classes                     -
+#---------------------------------------------
+FistVsHeavy = 2.50
+FistVsLight = 2.00
+FistVsRobe = 1.80
+
+#---------------------------------------------
+# Balance Sword Classes                     -
+#---------------------------------------------
+SwordVsHeavy = 2.50
+SwordVsLight = 2.00
+SwordVsRobe = 1.80
+
+#---------------------------------------------
+# Balance Pole Classes                     -
+#---------------------------------------------
+PoleVsHeavy = 2.50
+PoleVsLight = 2.00
+PoleVsRobe = 1.80

 

ttttttttttjp.th.jpg

 

 

6 answers to this question

Recommended Posts

  • 0
Posted

                TVT_EVENT_RUNNING_TIME                    = Integer.parseInt(L2JModSettings.getProperty("TvTEventRunningTime", "1800"));

                TVT_EVENT_PARTICIPATION_NPC_ID            = Integer.parseInt(L2JModSettings.getProperty("TvTEventParticipationNpcId", "0"));

+                DAGGER_VS_HEAVY      = Float.parseFloat(L2JModSettings.getProperty("DaggerVsHeavy", "2.50"));

  • 0
Posted

+                DAGGER_VS_HEAVY      = Float.parseFloat(L2JModSettings.getProperty("DaggerVsHeavy", "2.50"));

Works. Chackl just delete your 1rst line DAGGER_VS_HEAVY and recplace it with this.
  • 0
Posted

For Crossbow should be like this?:

 

if (target instanceof L2PcInstance && weapon != null && weapon.getItemType() == L2WeaponType.CROSSBOW && skill != null)
+       {
+                L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
+                if (armor != null)
+               {
+                        if (((L2PcInstance) target).isWearingHeavyArmor())
+                                damage /= Config.CROSSBOW_VS_HEAVY;
+                        if (((L2PcInstance) target).isWearingLightArmor())
+                                damage /= Config.CROSSBOW_VS_LIGHT;
+                        if (((L2PcInstance) target).isWearingMagicArmor())
+                                damage /= Config.CROSSBOW_VS_ROBE;
+                           }
+                   }

 

Or crossbow is affected from ARCHER class?

  • 0
Posted

For Crossbow should be like this?:

 

if (target instanceof L2PcInstance && weapon != null && weapon.getItemType() == L2WeaponType.CROSSBOW && skill != null)
+       {
+                L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
+                if (armor != null)
+               {
+                        if (((L2PcInstance) target).isWearingHeavyArmor())
+                                damage /= Config.CROSSBOW_VS_HEAVY;
+                        if (((L2PcInstance) target).isWearingLightArmor())
+                                damage /= Config.CROSSBOW_VS_LIGHT;
+                        if (((L2PcInstance) target).isWearingMagicArmor())
+                                damage /= Config.CROSSBOW_VS_ROBE;
+                           }
+                   }

 

Or crossbow is affected from ARCHER class?

  • 0
Posted

For Crossbow should be like this?:

 

if (target instanceof L2PcInstance && weapon != null && weapon.getItemType() == L2WeaponType.CROSSBOW && skill != null)
+       {
+                L2Armor armor = ((L2PcInstance) target).getActiveChestArmorItem();
+                if (armor != null)
+               {
+                        if (((L2PcInstance) target).isWearingHeavyArmor())
+                                damage /= Config.CROSSBOW_VS_HEAVY;
+                        if (((L2PcInstance) target).isWearingLightArmor())
+                                damage /= Config.CROSSBOW_VS_LIGHT;
+                        if (((L2PcInstance) target).isWearingMagicArmor())
+                                damage /= Config.CROSSBOW_VS_ROBE;
+                           }
+                   }

 

Or crossbow is affected from ARCHER class?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...