浏览代码

4th Improvement - Elemental Master (#7707)

munkrej 2 年之前
父节点
当前提交
741dfe37ae
共有 3 个文件被更改,包括 48 次插入33 次删除
  1. 17 17
      db/re/skill_db.yml
  2. 30 15
      src/map/battle.cpp
  3. 1 1
      src/map/skill.cpp

+ 17 - 17
db/re/skill_db.yml

@@ -40699,7 +40699,7 @@ Body:
     CastCancel: true
     CastTime: 2000
     AfterCastActDelay: 500
-    Cooldown: 5000
+    Cooldown: 2500
     FixedCastTime: 1000
     Requires:
       SpCost:
@@ -40724,13 +40724,13 @@ Body:
     Hit: Multi_Hit
     HitCount: -5
     Element: Water
-    GiveAp: 4
+    GiveAp: 5
     CastCancel: true
     CastTime: 4000
     AfterCastActDelay: 500
     Duration1: 100
     Duration2: 10000
-    Cooldown: 4000
+    Cooldown: 2000
     FixedCastTime: 1000
     Requires:
       SpCost:
@@ -40762,13 +40762,13 @@ Body:
     Hit: Single
     HitCount: 1
     Element: Wind
-    GiveAp: 4
+    GiveAp: 5
     CastCancel: true
     CastTime: 4000
     AfterCastActDelay: 500
-    Duration1: 4000
+    Duration1: 3000
     Duration2: 10000
-    Cooldown: 4000
+    Cooldown: 2000
     FixedCastTime: 1000
     Requires:
       SpCost:
@@ -40785,7 +40785,7 @@ Body:
     Unit:
       Id: Lightning_Land
       Range: 4
-      Interval: 500
+      Interval: 300
       Target: Enemy
       Flag:
         NoOverlap: true
@@ -40801,13 +40801,13 @@ Body:
     Hit: Single
     HitCount: 1
     Element: Poison
-    GiveAp: 4
+    GiveAp: 5
     CastCancel: true
     CastTime: 4000
     AfterCastActDelay: 500
-    Duration1: 4000
+    Duration1: 3000
     Duration2: 20000
-    Cooldown: 4000
+    Cooldown: 2000
     FixedCastTime: 1000
     Requires:
       SpCost:
@@ -40824,7 +40824,7 @@ Body:
     Unit:
       Id: Venom_Swamp
       Range: 4
-      Interval: 500
+      Interval: 300
       Target: Enemy
       Flag:
         NoOverlap: true
@@ -40840,13 +40840,13 @@ Body:
     Hit: Single
     HitCount: 1
     Element: Fire
-    GiveAp: 4
+    GiveAp: 5
     CastCancel: true
     CastTime: 4000
     AfterCastActDelay: 500
-    Duration1: 4000
+    Duration1: 3000
     Duration2: 20000
-    Cooldown: 4000
+    Cooldown: 2000
     FixedCastTime: 1000
     Requires:
       SpCost:
@@ -40863,7 +40863,7 @@ Body:
     Unit:
       Id: Conflagration
       Range: 4
-      Interval: 500
+      Interval: 300
       Target: Enemy
       Flag:
         NoOverlap: true
@@ -40879,13 +40879,13 @@ Body:
     Hit: Multi_Hit
     HitCount: -5
     Element: Earth
-    GiveAp: 4
+    GiveAp: 5
     CastCancel: true
     CastTime: 4000
     AfterCastActDelay: 500
     Duration1: 100
     Duration2: 10000
-    Cooldown: 4000
+    Cooldown: 2000
     FixedCastTime: 1000
     Requires:
       SpCost:

+ 30 - 15
src/map/battle.cpp

@@ -7920,34 +7920,49 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
 						}
 						break;
 					case EM_DIAMOND_STORM:
-						skillratio += -100 + 700 * skill_lv + 5 * sstatus->spl;
+						skillratio += -100 + 1250 * skill_lv + 5 * sstatus->spl;
+
+						if( sc != nullptr && sc->getSCE( SC_SUMMON_ELEMENTAL_DILUVIO ) ){
+							skillratio += 3500 + 500 * skill_lv;
+						}
+
 						RE_LVL_DMOD(100);
-						if (sc && sc->getSCE(SC_SUMMON_ELEMENTAL_DILUVIO))
-							skillratio += skillratio * 30 / 100;
 						break;
 					case EM_LIGHTNING_LAND:
-						skillratio += -100 + 150 * skill_lv + 5 * sstatus->spl;
+						skillratio += -100 + 400 * skill_lv + 5 * sstatus->spl;
+
+						if( sc != nullptr && sc->getSCE( SC_SUMMON_ELEMENTAL_PROCELLA ) ){
+							skillratio += 400 * skill_lv;
+						}
+
 						RE_LVL_DMOD(100);
-						if (sc && sc->getSCE(SC_SUMMON_ELEMENTAL_PROCELLA))
-							skillratio += skillratio * 30 / 100;
 						break;
 					case EM_VENOM_SWAMP:
-						skillratio += -100 + 150 * skill_lv + 5 * sstatus->spl;
+						skillratio += -100 + 400 * skill_lv + 5 * sstatus->spl;
+
+						if( sc && sc->getSCE( SC_SUMMON_ELEMENTAL_SERPENS ) ){
+							skillratio += 400 * skill_lv;
+						}
+
 						RE_LVL_DMOD(100);
-						if (sc && sc->getSCE(SC_SUMMON_ELEMENTAL_SERPENS))
-							skillratio += skillratio * 30 / 100;
 						break;
 					case EM_CONFLAGRATION:
-						skillratio += -100 + 150 * skill_lv + 5 * sstatus->spl;
+						skillratio += -100 + 400 * skill_lv + 5 * sstatus->spl;
+
+						if( sc != nullptr && sc->getSCE( SC_SUMMON_ELEMENTAL_ARDOR ) ){
+							skillratio += 400 * skill_lv;
+						}
+
 						RE_LVL_DMOD(100);
-						if (sc && sc->getSCE(SC_SUMMON_ELEMENTAL_ARDOR))
-							skillratio += skillratio * 30 / 100;
 						break;
 					case EM_TERRA_DRIVE:
-						skillratio += -100 + 700 * skill_lv + 5 * sstatus->spl;
+						skillratio += -100 + 1250 * skill_lv + 5 * sstatus->spl;
+
+						if( sc != nullptr && sc->getSCE( SC_SUMMON_ELEMENTAL_TERREMOTUS ) ){
+							skillratio += 3500 + 500 * skill_lv;
+						}
+
 						RE_LVL_DMOD(100);
-						if (sc && sc->getSCE(SC_SUMMON_ELEMENTAL_TERREMOTUS))
-							skillratio += skillratio * 30 / 100;
 						break;
 					case ABC_FROM_THE_ABYSS_ATK:
 						skillratio += 50 + 70 * skill_lv + 5 * sstatus->spl;

+ 1 - 1
src/map/skill.cpp

@@ -8009,7 +8009,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 	case EM_INCREASING_ACTIVITY:
 		if (bl->type == BL_PC) {
 			clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
-			status_heal(bl, 0, 0, 20 + 5 * skill_lv, 0);
+			status_heal(bl, 0, 0, 10 * skill_lv, 0);
 		} else
 			clif_skill_fail(sd, skill_id, USESKILL_FAIL, 0);
 		break;