Ver Fonte

Implemented some NPC skills (#6343)

* Implemented NPC_CHEAL
* NPC_MILLENNIUMSHIELD
* NPC_STORMGUST2
* NPC_ARROWSTORM
* NPC_DRAGONBREATH
* NPC_WIDEWEB
* NPC_REVERBERATION
* NPC_COMET
* NPC_VENOMIMPRESS
* NPC_SR_CURSEDCIRCLE
* NPC_DARKPIERCING
* NPC_FATALMENACE
* NPC_PSYCHIC_WAVE
* NPC_DRAGONBREATH
* NPC_MAGMA_ERUPTION
* NPC_RAYOFGENESIS
* Uncommented NPC_LEX_AETERNA skills in mob_skill_db.txt
* NPC_MANDRAGORA
* NPC_DANCINGBLADE
* Uncommented NPC_DARKPIERCING
* NPC_PULSESTRIKE2

Thanks to @attackjom and @Lemongrass3110 !
Atemo há 3 anos atrás
pai
commit
424e05d8f7
6 ficheiros alterados com 708 adições e 99 exclusões
  1. 60 0
      db/pre-re/skill_db.yml
  2. 81 81
      db/re/mob_skill_db.txt
  3. 382 10
      db/re/skill_db.yml
  4. 28 3
      src/map/battle.cpp
  5. 150 4
      src/map/skill.cpp
  6. 7 1
      src/map/status.cpp

+ 60 - 0
db/pre-re/skill_db.yml

@@ -16297,12 +16297,28 @@ Body:
       Flag:
         NoOverlap: true
         PathCheck: true
+  - Id: 707
+    Name: NPC_MILLENNIUMSHIELD
+    Description: Millenium Shield 2
+    MaxLevel: 1
   - Id: 708
     Name: NPC_COMET
     Description: Comet 2
     MaxLevel: 1
     Flags:
       ShowScale: true
+  - Id: 712
+    Name: NPC_PULSESTRIKE2
+    Description: Pulse Strike 2
+    MaxLevel: 1
+  - Id: 713
+    Name: NPC_DANCINGBLADE
+    Description: Dancing Blade
+    MaxLevel: 1
+  - Id: 714
+    Name: NPC_DANCINGBLADE_ATK
+    Description: Dancing Blade Attack
+    MaxLevel: 1
   - Id: 716
     Name: NPC_MAXPAIN
     Description: Max Pain
@@ -16344,6 +16360,10 @@ Body:
     Name: NPC_WIDESUCK
     Description: Wide Suck
     MaxLevel: 1
+  - Id: 723
+    Name: NPC_STORMGUST2
+    Description: Storm Gust 2
+    MaxLevel: 1
   - Id: 724
     Name: NPC_FIRESTORM
     Description: Fire Storm
@@ -16407,6 +16427,46 @@ Body:
     Name: NPC_ARROWSTORM
     Description: NPC Arrow Storm
     MaxLevel: 1
+  - Id: 729
+    Name: NPC_CHEAL
+    Description: NPC Coluceo Heal
+    MaxLevel: 1
+  - Id: 730
+    Name: NPC_SR_CURSEDCIRCLE
+    Description: Cursed Circle
+    MaxLevel: 1
+  - Id: 731
+    Name: NPC_DRAGONBREATH
+    Description: NPC Dragon Breath
+    MaxLevel: 1
+  - Id: 732
+    Name: NPC_FATALMENACE
+    Description: Fatal Menace
+    MaxLevel: 1
+  - Id: 733
+    Name: NPC_MAGMA_ERUPTION
+    Description: NPC Magma Eruption
+    MaxLevel: 1
+  - Id: 734
+    Name: NPC_MAGMA_ERUPTION_DOTDAMAGE
+    Description: NPC Magma Eruption Dot Damage
+    MaxLevel: 1
+  - Id: 735
+    Name: NPC_MANDRAGORA
+    Description: NPC Howling of Mandragora
+    MaxLevel: 1
+  - Id: 736
+    Name: NPC_PSYCHIC_WAVE
+    Description: Psychic Wave
+    MaxLevel: 1
+  - Id: 737
+    Name: NPC_RAYOFGENESIS
+    Description: NPC Ray of Genesis
+    MaxLevel: 1
+  - Id: 738
+    Name: NPC_VENOMIMPRESS
+    Description: NPC Venom Impress
+    MaxLevel: 1
   - Id: 739
     Name: NPC_CLOUD_KILL
     Description: Cloud Kill

+ 81 - 81
db/re/mob_skill_db.txt

@@ -8888,8 +8888,8 @@
 2529,Faceworm Queen@AS_VENOMDUST,idle,140,5,10000,1000,5000,no,target,always,,,,,,,,
 2529,Faceworm Queen@NPC_EARTHQUAKE,attack,653,1,10000,5000,10000,no,self,always,,,,,,,,
 2529,Faceworm Queen@RG_CLOSECONFINE,chase,1005,1,10000,1000,10000,no,target,always,,,,,,,9,
-//2529,Faceworm Queen@NPC_DRAGONFEAR,attack,659,5,10000,1000,5000,no,self,always,,,,,,,9,
-//2529,Faceworm Queen@NPC_DRAGONFEAR,chase,659,5,10000,1000,5000,no,self,always,,,,,,,9,
+2529,Faceworm Queen@NPC_DRAGONFEAR,attack,659,5,10000,1000,5000,no,self,always,,,,,,,9,
+2529,Faceworm Queen@NPC_DRAGONFEAR,chase,659,5,10000,1000,5000,no,self,always,,,,,,,9,
 2529,Faceworm Queen@NPC_ACIDBREATH,chase,657,10,10000,5000,10000,no,target,always,,,,,,,,
 2529,Faceworm Queen@KN_PIERCE,chase,56,10,10000,500,0,yes,target,always,,,,,,,9,
 2529,Faceworm Queen@KN_PIERCE,attack,56,10,10000,500,0,yes,target,always,,,,,,,9,
@@ -8898,8 +8898,8 @@
 2530,Faceworm Dark@AS_VENOMDUST,idle,140,3,10000,1000,10000,yes,target,always,,,,,,,,
 2530,Faceworm Dark@AS_VENOMDUST,attack,140,3,10000,1000,10000,yes,target,always,,,,,,,,
 2530,Faceworm Dark@AS_VENOMDUST,chase,140,3,10000,1000,10000,yes,target,always,,,,,,,,
-//2530,Faceworm Dark@NPC_DRAGONFEAR,attack,659,3,10000,1000,0,yes,self,always,,,,,,,9,
-//2530,Faceworm Dark@NPC_DRAGONFEAR,chase,659,3,10000,1000,0,yes,self,always,,,,,,,9,
+2530,Faceworm Dark@NPC_DRAGONFEAR,attack,659,3,10000,1000,0,yes,self,always,,,,,,,9,
+2530,Faceworm Dark@NPC_DRAGONFEAR,chase,659,3,10000,1000,0,yes,self,always,,,,,,,9,
 2530,Faceworm Dark@NPC_ACIDBREATH,chase,657,5,10000,5000,0,yes,target,always,,,,,,,,
 2530,Faceworm Dark@KN_PIERCE,chase,56,5,10000,500,0,yes,target,always,,,,,,,9,
 2530,Faceworm Dark@KN_PIERCE,attack,56,5,10000,500,0,yes,target,always,,,,,,,9,
@@ -8964,9 +8964,9 @@
 
 // Heroes' Trail Part 1 - Sara's Memory
 // Not Yet Implemented skill
-//2542,Irene Elder@NPC_MILLENNIUMSHIELD,idle,707,1,5000,1000,30000,no,self,always,0,,,,,,,
-//2542,Irene Elder@NPC_MILLENNIUMSHIELD,attack,707,1,5000,1000,30000,no,self,always,0,,,,,,,
-//2542,Irene Elder@NPC_MILLENNIUMSHIELD,chase,707,1,5000,1000,30000,no,self,always,0,,,,,,,
+2542,Irene Elder@NPC_MILLENNIUMSHIELD,idle,707,1,5000,1000,30000,no,self,always,0,,,,,,,
+2542,Irene Elder@NPC_MILLENNIUMSHIELD,attack,707,1,5000,1000,30000,no,self,always,0,,,,,,,
+2542,Irene Elder@NPC_MILLENNIUMSHIELD,chase,707,1,5000,1000,30000,no,self,always,0,,,,,,,
 
 //Geffen Magic Tournament
 2549,Arhi@MG_FIREBOLT,attack,19,5,3000,1000,3000,yes,target,always,0,,,,,,,
@@ -8996,7 +8996,7 @@
 2558,Ifodes@LK_SPIRALPIERCE,attack,397,5,3000,1000,10000,yes,target,always,0,,,,,,,
 2558,Ifodes@SM_ENDURE,attack,8,10,3000,0,10000,yes,self,always,0,,,,,,,
 2558,Ifodes@SM_MAGNUM,attack,7,25,3000,500,5000,yes,self,always,0,,,,,,,
-//2558,Ifodes@NPC_MILLENNIUMSHIELD,attack,707,1,3000,1000,10000,yes,self,always,0,,,,,,,
+2558,Ifodes@NPC_MILLENNIUMSHIELD,attack,707,1,3000,1000,10000,yes,self,always,0,,,,,,,
 2559,Licheniyes@NPC_HOLYATTACK,attack,189,10,3000,500,5000,yes,target,always,0,,,,,,,
 2559,Licheniyes@AL_HEAL,attack,28,8,3000,0,5000,yes,self,always,0,,,,,,,
 2559,Licheniyes@AL_PNEUMA,attack,25,1,3000,1000,10000,yes,self,always,0,,,,,,,
@@ -9019,7 +9019,7 @@
 2563,Fei Kanabian@AM_POTIONPITCHER,attack,231,4,3000,1000,10000,yes,self,always,0,,,,,,,
 2564,Geffen Fenrir@NPC_SHIELDBRAKE,attack,346,10,3000,1000,10000,yes,target,always,0,,,,,,,
 2564,Geffen Fenrir@WL_EARTHSTRAIN,attack,2216,5,3000,3000,30000,yes,target,always,0,,,,,,,
-//2564,Geffen Fenrir@NPC_COMET,attack,708,5,2000,5000,30000,yes,self,always,0,,,,,,,
+2564,Geffen Fenrir@NPC_COMET,attack,708,5,2000,5000,30000,yes,self,always,0,,,,,,,
 2564,Geffen Fenrir@WL_TETRAVORTEX,attack,2217,5,1000,5000,30000,yes,target,always,0,,,,,,,
 2565,Alphonse@SM_BASH,attack,5,5,1000,500,10000,yes,target,always,0,,,,,,,
 2566,Alphonse Jr@PR_LEXDIVINA,attack,76,1,1000,2000,60000,yes,target,always,0,,,,,,,
@@ -11010,9 +11010,9 @@
 // 2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,30,,,,,,,42
 // 2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,20,,,,,,,42
 // 2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,10,,,,,,,42
-// 2942,Evil Fanatics@NPC_DANCINGBLADE,attack,713,1,1000,0,15000,yes,self,always,0,,,,,,,
-// 2942,Evil Fanatics@NPC_PULSESTRIKE2,attack,712,1,800,0,15000,yes,self,always,0,,,,,,,
-// 2942,Evil Fanatics@NPC_DARKPIERCING,attack,715,1,2500,0,60000,yes,self,always,0,,,,,,,
+2942,Evil Fanatics@NPC_DANCINGBLADE,attack,713,1,1000,0,15000,yes,self,always,0,,,,,,,
+2942,Evil Fanatics@NPC_PULSESTRIKE2,attack,712,1,800,0,15000,yes,self,always,0,,,,,,,
+2942,Evil Fanatics@NPC_DARKPIERCING,attack,715,1,2500,0,60000,yes,self,always,0,,,,,,,
 2943,Icemine@NPC_INVISIBLE,idle,353,1,10000,0,300000,no,self,always,0,,,,,,,
 2943,Icemine@NPC_ICEMINE,idle,709,1,10000,0,300000,no,self,always,,,,,,,,
 2960,Flamecross@NPC_INVISIBLE,idle,353,1,10000,0,300000,no,self,always,0,,,,,,,
@@ -11363,7 +11363,7 @@
 3208,V_EREMES@AS_VENOMDUST,attack,140,1,200,0,50000,yes,target,always,,,,,,,29,
 3208,V_EREMES@NPC_MAXPAIN,attack,716,5,300,1000,60000,no,self,always,,,,,,,,
 3208,V_EREMES@NPC_POISONATTACK,attack,188,5,100,0,10000,yes,target,always,,,,,,,,
-// 3208,V_EREMES@NPC_VENOMIMPRESS,attack,738,1,200,0,30000,yes,target,always,,,,,,,,
+3208,V_EREMES@NPC_VENOMIMPRESS,attack,738,1,200,0,30000,yes,target,always,,,,,,,,
 3208,V_EREMES@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,1645,,,,,,
 3208,V_EREMES@NPC_STOP,attack,342,1,100,0,10000,yes,target,always,,,,,,,,
 3209,V_MAGALETA@HP_ASSUMPTIO,idle,361,5,1000,1000,10000,no,self,myhpltmaxrate,99,,,,,,,
@@ -11371,7 +11371,7 @@
 3209,V_MAGALETA@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
 3209,V_MAGALETA@AL_PNEUMA,idle,25,1,1000,0,0,yes,self,longrangeattacked,,,,,,,,
 3209,V_MAGALETA@PR_LEXDIVINA,idle,76,10,1000,0,10000,yes,target,casttargeted,,,,,,,18,
-// 3209,V_MAGALETA@NPC_CHEAL,idle,729,5,300,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+3209,V_MAGALETA@NPC_CHEAL,idle,729,5,300,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
 3209,V_MAGALETA@AL_HEAL,idle,28,9,300,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
 3209,V_MAGALETA@HP_ASSUMPTIO,chase,361,5,1000,1000,10000,no,self,myhpltmaxrate,99,,,,,,,
 3209,V_MAGALETA@HP_ASSUMPTIO,chase,361,5,1000,1000,10000,no,friend,friendhpltmaxrate,99,,,,,,,
@@ -11386,10 +11386,10 @@
 3209,V_MAGALETA@MG_SAFETYWALL,attack,12,10,100,0,10000,yes,self,always,,,,,,,,
 3209,V_MAGALETA@PR_LEXAETERNA,attack,78,1,100,0,10000,yes,target,always,,,,,,,29,
 3209,V_MAGALETA@NPC_HOLYATTACK,attack,189,10,100,0,10000,yes,target,always,,,,,,,,
-// 3209,V_MAGALETA@NPC_CHEAL,attack,729,5,200,0,3000,yes,friend,friendhpltmaxrate,99,,,,,,3,
-// 3209,V_MAGALETA@NPC_CHEAL,attack,729,5,200,0,3000,yes,self,myhpltmaxrate,99,,,,,,3,
+3209,V_MAGALETA@NPC_CHEAL,attack,729,5,200,0,3000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+3209,V_MAGALETA@NPC_CHEAL,attack,729,5,200,0,3000,yes,self,myhpltmaxrate,99,,,,,,3,
 3209,V_MAGALETA@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,1640,,,,,,
-// 3209,V_MAGALETA@NPC_LEX_AETERNA,attack,727,2,300,500,5000,no,target,always,,,,,,,,
+3209,V_MAGALETA@NPC_LEX_AETERNA,attack,727,2,300,500,5000,no,target,always,,,,,,,,
 3209,V_MAGALETA@NPC_WIDESILENCE,attack,663,2,300,500,5000,no,self,always,,,,,,,,
 3210,V_KATRINN@MG_SIGHT,idle,10,1,200,0,10000,yes,self,always,,,,,,,,
 3210,V_KATRINN@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
@@ -11424,7 +11424,7 @@
 3211,V_SHECIL@NPC_BLEEDING,attack,660,5,50,0,10000,yes,target,always,,,,,,,,
 3211,V_SHECIL@NPC_WIDECURSE,attack,677,3,100,0,10000,yes,self,always,,,,,,,,
 3211,V_SHECIL@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,1642,,,,,,
-// 3211,V_SHECIL@NPC_ARROWSTORM,attack,728,3,300,500,7000,no,target,always,,,,,,,,
+3211,V_SHECIL@NPC_ARROWSTORM,attack,728,3,300,500,7000,no,target,always,,,,,,,,
 3212,V_HARWORD@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
 3212,V_HARWORD@NPC_EARTHQUAKE,chase,653,5,500,500,10000,no,self,always,,,,,,,,
 3212,V_HARWORD@BS_ADRENALINE,attack,111,10,200,0,150000,yes,self,always,,,,,,,,
@@ -11436,7 +11436,7 @@
 3212,V_HARWORD@NPC_ARMORBRAKE,attack,344,10,100,0,10000,yes,target,always,,,,,,,19,
 3212,V_HARWORD@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,1644,,,,,,
 3212,V_HARWORD@NPC_WIDESTUN,attack,678,2,100,1000,10000,no,self,always,,,,,,,,
-// 3212,V_HARWORD@NPC_MAGMA_ERUPTION,attack,733,3,500,1000,10000,no,target,always,,,,,,,,
+3212,V_HARWORD@NPC_MAGMA_ERUPTION,attack,733,3,500,1000,10000,no,target,always,,,,,,,,
 3213,V_SEYREN@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
 3213,V_SEYREN@SM_PROVOKE,chase,6,10,100,0,10000,yes,target,always,,,,,,,29,
 3213,V_SEYREN@KN_SPEARBOOMERANG,chase,59,5,500,0,0,yes,target,longrangeattacked,,,,,,,6,
@@ -11447,8 +11447,8 @@
 3213,V_SEYREN@LK_SPIRALPIERCE,attack,397,5,200,0,10000,yes,target,always,,,,,,,,
 3213,V_SEYREN@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,1643,,,,,,
 3213,V_SEYREN@NPC_CRITICALWOUND,attack,673,2,200,0,10000,no,target,always,,,,,,,5,
-// 3213,V_SEYREN@NPC_DRAGONBREATH,attack,731,8,400,500,5000,no,target,always,,,,,,,,
-// 3213,V_SEYREN@NPC_DRAGONBREATH,attack,731,3,400,500,5000,no,target,always,,,,,,,,
+3213,V_SEYREN@NPC_DRAGONBREATH,attack,731,8,400,500,5000,no,target,always,,,,,,,,
+3213,V_SEYREN@NPC_DRAGONBREATH,attack,731,3,400,500,5000,no,target,always,,,,,,,,
 3213,V_SEYREN@NPC_MAXPAIN,attack,716,5,100,1000,60000,no,self,always,,,,,,,,
 3213,V_SEYREN@NPC_EARTHQUAKE,attack,653,5,500,1000,6000,no,self,always,,,,,,,,
 3213,V_SEYREN@NPC_WIDEBLEEDING,attack,665,2,100,1000,10000,no,self,always,,,,,,,,
@@ -11466,14 +11466,14 @@
 3214,V_G_EREMES@NPC_MAXPAIN,attack,716,7,300,1000,30000,no,self,always,,,,,,,,
 3214,V_G_EREMES@NPC_DRAGONFEAR,attack,659,1,100,0,10000,yes,self,always,,,,,,,,
 3214,V_G_EREMES@NPC_VENOMFOG,attack,706,2,100,2000,30000,no,self,always,,,,,,,,
-// 3214,V_G_EREMES@NPC_VENOMIMPRESS,attack,738,4,100,0,30000,yes,target,always,,,,,,,,
+3214,V_G_EREMES@NPC_VENOMIMPRESS,attack,738,4,100,0,30000,yes,target,always,,,,,,,,
 3215,V_G_MAGALETA@HP_ASSUMPTIO,idle,361,5,1000,1000,10000,no,self,myhpltmaxrate,99,,,,,,,
 3215,V_G_MAGALETA@HP_ASSUMPTIO,idle,361,5,1000,1000,10000,no,friend,friendhpltmaxrate,99,,,,,,,
 3215,V_G_MAGALETA@AL_PNEUMA,idle,25,1,1000,0,0,yes,self,longrangeattacked,,,,,,,,
 3215,V_G_MAGALETA@PR_LEXDIVINA,idle,76,10,1000,0,10000,yes,target,casttargeted,,,,,,,18,
-// 3215,V_G_MAGALETA@NPC_CHEAL,idle,729,5,300,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-// 3215,V_G_MAGALETA@NPC_CHEAL,idle,729,5,300,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
-// 3215,V_G_MAGALETA@NPC_LEX_AETERNA,chase,727,3,100,3000,10000,no,target,always,,,,,,,29,
+3215,V_G_MAGALETA@NPC_CHEAL,idle,729,5,300,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+3215,V_G_MAGALETA@NPC_CHEAL,idle,729,5,300,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+3215,V_G_MAGALETA@NPC_LEX_AETERNA,chase,727,3,100,3000,10000,no,target,always,,,,,,,29,
 3215,V_G_MAGALETA@HP_ASSUMPTIO,chase,361,5,1000,1000,10000,no,self,myhpltmaxrate,99,,,,,,,
 3215,V_G_MAGALETA@HP_ASSUMPTIO,chase,361,5,1000,1000,10000,no,friend,friendhpltmaxrate,99,,,,,,,
 3215,V_G_MAGALETA@AL_INCAGI,chase,29,10,200,0,240000,yes,self,always,,,,,,,2,
@@ -11486,22 +11486,22 @@
 3215,V_G_MAGALETA@MG_SAFETYWALL,attack,12,10,100,0,10000,yes,self,always,,,,,,,,
 3215,V_G_MAGALETA@AL_PNEUMA,attack,25,1,500,0,10000,yes,self,longrangeattacked,,,,,,,19,
 3215,V_G_MAGALETA@NPC_WIDESILENCE,attack,663,5,500,1000,6000,no,target,casttargeted,,,,,,,18,
-// 3215,V_G_MAGALETA@NPC_LEX_AETERNA,attack,727,5,300,1000,6000,no,target,always,,,,,,,29,
-// 3215,V_G_MAGALETA@NPC_CHEAL,attack,729,5,100,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-// 3215,V_G_MAGALETA@NPC_CHEAL,attack,729,5,100,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+3215,V_G_MAGALETA@NPC_LEX_AETERNA,attack,727,5,300,1000,6000,no,target,always,,,,,,,29,
+3215,V_G_MAGALETA@NPC_CHEAL,attack,729,5,100,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+3215,V_G_MAGALETA@NPC_CHEAL,attack,729,5,100,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
 3215,V_G_MAGALETA@NPC_MAXPAIN,attack,716,7,300,1000,30000,no,self,always,,,,,,,,
 3215,V_G_MAGALETA@NPC_ALLHEAL,attack,687,1,100,3000,60000000,no,self,myhpltmaxrate,10,,,,,,,
 3215,V_G_MAGALETA@NPC_SLOWCAST,attack,672,5,100,0,240000,yes,self,always,,,,,,,,
-// 3216,V_G_KATRINN@NPC_STORMGUST2,idle,723,3,100,3000,10000,no,target,always,,,,,,,,
+3216,V_G_KATRINN@NPC_STORMGUST2,idle,723,3,100,3000,10000,no,target,always,,,,,,,,
 3216,V_G_KATRINN@MG_SIGHT,idle,10,1,50,0,10000,yes,self,always,,,,,,,,
 3216,V_G_KATRINN@MG_SIGHT,idle,10,1,1000,0,10000,yes,self,skillused,137,,,,,,,
 3216,V_G_KATRINN@NPC_WIDEFREEZE,chase,664,5,300,3000,10000,no,self,always,,,,,,,,
 3216,V_G_KATRINN@HW_NAPALMVULCAN,chase,400,5,200,1000,2000,no,target,always,,,,,,,,
-// 3216,V_G_KATRINN@NPC_STORMGUST2,chase,723,3,300,1000,10000,no,target,always,,,,,,,,
+3216,V_G_KATRINN@NPC_STORMGUST2,chase,723,3,300,1000,10000,no,target,always,,,,,,,,
 3216,V_G_KATRINN@WZ_VERMILION,chase,85,10,300,1000,10000,no,target,always,,,,,,,,
 3216,V_G_KATRINN@WZ_METEOR,chase,83,10,300,1000,10000,no,target,always,,,,,,,,
 3216,V_G_KATRINN@NPC_COMET,attack,708,5,300,1000,7000,no,self,always,,,,,,,,
-// 3216,V_G_KATRINN@NPC_STORMGUST2,attack,723,3,200,1000,10000,no,target,always,,,,,,,,
+3216,V_G_KATRINN@NPC_STORMGUST2,attack,723,3,200,1000,10000,no,target,always,,,,,,,,
 3216,V_G_KATRINN@NPC_WIDESTONE,attack,666,1,200,1000,10000,no,self,always,,,,,,,,
 3216,V_G_KATRINN@HW_GANBANTEIN,attack,483,1,300,500,10000,no,target,always,,,,,,,,
 3216,V_G_KATRINN@WL_EARTHSTRAIN,attack,2216,5,300,1000,7000,no,target,always,,,,,,,,
@@ -11518,7 +11518,7 @@
 3217,V_G_SHECIL@NPC_CRITICALWOUND,attack,673,1,100,0,10000,no,target,always,,,,,,,5,
 3217,V_G_SHECIL@SN_SHARPSHOOTING,attack,382,5,300,500,1500,no,target,always,,,,,,,,
 3217,V_G_SHECIL@NPC_WIDECONFUSE,attack,667,5,1000,1000,20000,no,target,myhpltmaxrate,30,,,,,,,
-// 3217,V_G_SHECIL@NPC_ARROWSTORM,attack,728,5,300,500,7000,no,target,always,,,,,,,,
+3217,V_G_SHECIL@NPC_ARROWSTORM,attack,728,5,300,500,7000,no,target,always,,,,,,,,
 3218,V_G_HARWORD@NPC_SELFDESTRUCTION,attack,173,1,200,2000,0,no,self,myhpltmaxrate,10,,,,,,,
 3218,V_G_HARWORD@BS_ADRENALINE,attack,111,10,200,0,150000,yes,self,always,,,,,,,,
 3218,V_G_HARWORD@BS_MAXIMIZE,attack,114,1,100,0,60000,yes,self,always,,,,,,,,
@@ -11531,16 +11531,16 @@
 3218,V_G_HARWORD@NPC_WIDESTUN,attack,678,4,100,1000,20000,no,self,always,,,,,,,,
 3218,V_G_HARWORD@NPC_PULSESTRIKE,attack,661,5,100,1000,1000,no,self,always,,,,,,,,
 3218,V_G_HARWORD@NPC_MAXPAIN,attack,716,7,300,1000,30000,no,self,always,,,,,,,,
-// 3218,V_G_HARWORD@NPC_MAGMA_ERUPTION,attack,733,5,500,1000,10000,no,target,always,,,,,,,,
+3218,V_G_HARWORD@NPC_MAGMA_ERUPTION,attack,733,5,500,1000,10000,no,target,always,,,,,,,,
 3219,V_G_SEYREN@KN_SPEARBOOMERANG,chase,59,5,1000,0,0,yes,target,skillused,18,,,,,,6,
 3219,V_G_SEYREN@SM_PROVOKE,chase,6,10,100,0,10000,yes,target,always,,,,,,,29,
 3219,V_G_SEYREN@SM_ENDURE,chase,8,10,500,0,30000,yes,self,longrangeattacked,,,,,,,6,
-// 3219,V_G_SEYREN@NPC_DARKPIERCING,chase,715,1,100,0,10000,yes,target,always,,,,,,,,
+3219,V_G_SEYREN@NPC_DARKPIERCING,chase,715,1,100,0,10000,yes,target,always,,,,,,,,
 3219,V_G_SEYREN@KN_TWOHANDQUICKEN,attack,60,10,1000,0,300000,yes,self,always,,,,,,,2,
 3219,V_G_SEYREN@LK_SPIRALPIERCE,attack,397,5,200,0,10000,yes,target,always,,,,,,,,
 3219,V_G_SEYREN@NPC_POWERUP,attack,349,5,200,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-// 3219,V_G_SEYREN@NPC_DRAGONBREATH,attack,731,5,300,500,10000,no,target,always,,,,,,,,
-// 3219,V_G_SEYREN@NPC_DRAGONBREATH,attack,731,10,300,500,10000,no,target,always,,,,,,,,
+3219,V_G_SEYREN@NPC_DRAGONBREATH,attack,731,5,300,500,10000,no,target,always,,,,,,,,
+3219,V_G_SEYREN@NPC_DRAGONBREATH,attack,731,10,300,500,10000,no,target,always,,,,,,,,
 3219,V_G_SEYREN@NPC_PULSESTRIKE,attack,661,5,200,1000,30000,no,self,always,,,,,,,,
 3219,V_G_SEYREN@NPC_MAXPAIN,attack,716,7,300,1000,30000,no,self,always,,,,,,,,
 3219,V_G_SEYREN@NPC_EARTHQUAKE,attack,653,10,500,0,6000,yes,self,rudeattacked,,,,,,,,
@@ -11564,7 +11564,7 @@
 3220,V_B_EREMES@ASC_METEORASSAULT,attack,406,10,200,2000,10000,no,self,always,,,,,,,,
 3220,V_B_EREMES@NPC_POISONATTACK,attack,188,10,100,0,10000,yes,target,always,,,,,,,,
 3220,V_B_EREMES@NPC_MAXPAIN,attack,716,9,300,1000,30000,no,self,always,,,,,,,,
-// 3220,V_B_EREMES@NPC_VENOMIMPRESS,attack,738,5,100,0,10000,yes,target,always,,,,,,,,
+3220,V_B_EREMES@NPC_VENOMIMPRESS,attack,738,5,100,0,10000,yes,target,always,,,,,,,,
 3220,V_B_EREMES@NPC_PULSESTRIKE,attack,661,5,100,2000,30000,no,self,always,,,,,,,,
 3220,V_B_EREMES@NPC_DRAGONFEAR,attack,659,5,100,2000,30000,no,self,always,,,,,,,,
 3220,V_B_EREMES@NPC_VENOMFOG,attack,706,5,100,2000,30000,no,self,always,,,,,,,,
@@ -11572,13 +11572,13 @@
 3221,V_B_MAGALETA@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
 3221,V_B_MAGALETA@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
 3221,V_B_MAGALETA@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3219,3214,3218,3216,3217,,
-// 3221,V_B_MAGALETA@NPC_CHEAL,idle,729,5,300,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-// 3221,V_B_MAGALETA@NPC_CHEAL,idle,729,5,300,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+3221,V_B_MAGALETA@NPC_CHEAL,idle,729,5,300,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+3221,V_B_MAGALETA@NPC_CHEAL,idle,729,5,300,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
 3221,V_B_MAGALETA@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
-// 3221,V_B_MAGALETA@NPC_CHEAL,chase,729,5,300,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-// 3221,V_B_MAGALETA@NPC_CHEAL,chase,729,5,300,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+3221,V_B_MAGALETA@NPC_CHEAL,chase,729,5,300,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+3221,V_B_MAGALETA@NPC_CHEAL,chase,729,5,300,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
 3221,V_B_MAGALETA@NPC_WIDESILENCE,chase,663,5,500,1000,30000,no,target,always,,,,,,,18,
-// 3221,V_B_MAGALETA@NPC_LEX_AETERNA,chase,727,5,100,0,10000,yes,target,always,,,,,,,29,
+3221,V_B_MAGALETA@NPC_LEX_AETERNA,chase,727,5,100,0,10000,yes,target,always,,,,,,,29,
 3221,V_B_MAGALETA@NPC_MAXPAIN,chase,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
 3221,V_B_MAGALETA@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
 3221,V_B_MAGALETA@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
@@ -11587,13 +11587,13 @@
 3221,V_B_MAGALETA@AL_INCAGI,attack,29,10,200,0,240000,yes,self,always,,,,,,,2,
 3221,V_B_MAGALETA@MG_SAFETYWALL,attack,12,10,100,0,10000,yes,self,always,,,,,,,,
 3221,V_B_MAGALETA@AL_PNEUMA,attack,25,1,500,0,10000,yes,self,longrangeattacked,,,,,,,19,
-// 3221,V_B_MAGALETA@NPC_CHEAL,attack,729,5,100,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
-// 3221,V_B_MAGALETA@NPC_CHEAL,attack,729,5,100,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+3221,V_B_MAGALETA@NPC_CHEAL,attack,729,5,100,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+3221,V_B_MAGALETA@NPC_CHEAL,attack,729,5,100,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
 3221,V_B_MAGALETA@NPC_MAXPAIN,attack,716,10,300,1000,30000,no,self,always,,,,,,,,
 3221,V_B_MAGALETA@NPC_ALLHEAL,attack,687,1,100,3000,60000000,no,self,myhpltmaxrate,10,,,,,,,
 3221,V_B_MAGALETA@NPC_SLOWCAST,attack,672,5,100,0,240000,yes,self,always,,,,,,,,
 3221,V_B_MAGALETA@NPC_WIDESILENCE,attack,663,5,500,1000,6000,no,target,casttargeted,,,,,,,18,
-// 3221,V_B_MAGALETA@NPC_LEX_AETERNA,attack,727,5,300,1000,6000,no,target,always,,,,,,,29,
+3221,V_B_MAGALETA@NPC_LEX_AETERNA,attack,727,5,300,1000,6000,no,target,always,,,,,,,29,
 3221,V_B_MAGALETA@NPC_WIDECONFUSE,attack,667,5,200,1000,60000,no,target,always,,,,,,,,
 3222,V_B_SHECIL@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
 3222,V_B_SHECIL@NPC_AGIUP,idle,350,5,200,0,60000,yes,self,always,,,,,,,,
@@ -11606,7 +11606,7 @@
 3222,V_B_SHECIL@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
 3222,V_B_SHECIL@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3219,3214,3218,3215,3216,,
 3222,V_B_SHECIL@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,no,self,myhpltmaxrate,30,3219,3214,3218,3215,3216,,
-// 3222,V_B_SHECIL@NPC_ARROWSTORM,attack,728,5,200,0,3000,yes,target,always,,,,,,,6,
+3222,V_B_SHECIL@NPC_ARROWSTORM,attack,728,5,200,0,3000,yes,target,always,,,,,,,6,
 3222,V_B_SHECIL@NPC_POWERUP,attack,349,5,200,0,20000,yes,self,always,,,,,,,,
 3222,V_B_SHECIL@NPC_AGIUP,attack,350,5,200,0,20000,yes,self,always,,,,,,,,
 3222,V_B_SHECIL@AC_DOUBLE,attack,46,10,200,0,10000,yes,target,always,,,,,,,,
@@ -11632,7 +11632,7 @@
 3223,V_B_HARWORD@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
 3223,V_B_HARWORD@NPC_MAXPAIN,attack,716,10,500,1000,10000,no,self,always,,,,,,,19,
 3223,V_B_HARWORD@NPC_WATERATTACK,attack,184,10,100,0,10000,yes,target,always,,,,,,,,
-// 3223,V_B_HARWORD@NPC_MAGMA_ERUPTION,attack,733,5,500,0,10000,yes,target,always,,,,,,,,
+3223,V_B_HARWORD@NPC_MAGMA_ERUPTION,attack,733,5,500,0,10000,yes,target,always,,,,,,,,
 3223,V_B_HARWORD@NPC_WIDESTUN,attack,678,5,200,2000,10000,no,self,always,,,,,,,,
 3223,V_B_HARWORD@NPC_PULSESTRIKE,attack,661,5,200,1000,30000,no,self,always,,,,,,,,
 3223,V_B_HARWORD@NPC_EARTHQUAKE,attack,653,10,1000,4000,60000000,yes,self,myhpltmaxrate,30,,,,,,,
@@ -11645,7 +11645,7 @@
 3224,V_B_KATRINN@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3219,3214,3218,3215,3217,,
 3224,V_B_KATRINN@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,no,self,myhpltmaxrate,30,3219,3214,3218,3215,3217,,
 3224,V_B_KATRINN@NPC_COMET,attack,708,5,300,1000,7000,no,self,always,,,,,,,,
-// 3224,V_B_KATRINN@NPC_STORMGUST2,attack,723,3,200,1000,10000,no,target,always,,,,,,,,
+3224,V_B_KATRINN@NPC_STORMGUST2,attack,723,3,200,1000,10000,no,target,always,,,,,,,,
 3224,V_B_KATRINN@NPC_WIDESTONE,attack,666,1,200,1000,10000,no,self,always,,,,,,,,
 3224,V_B_KATRINN@HW_GANBANTEIN,attack,483,1,300,500,10000,no,target,always,,,,,,,,
 3224,V_B_KATRINN@WL_EARTHSTRAIN,attack,2216,5,300,1000,7000,no,target,always,,,,,,,,
@@ -11665,8 +11665,8 @@
 3225,V_B_SEYREN@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3214,3218,3215,3216,3217,,
 3225,V_B_SEYREN@KN_TWOHANDQUICKEN,attack,60,10,1000,0,300000,yes,self,always,,,,,,,2,
 3225,V_B_SEYREN@LK_SPIRALPIERCE,attack,397,5,200,0,10000,yes,target,always,,,,,,,,
-// 3225,V_B_SEYREN@NPC_DRAGONBREATH,attack,731,10,300,500,10000,no,target,always,,,,,,,,
-// 3225,V_B_SEYREN@NPC_DRAGONBREATH,attack,731,5,300,500,10000,no,target,always,,,,,,,,
+3225,V_B_SEYREN@NPC_DRAGONBREATH,attack,731,10,300,500,10000,no,target,always,,,,,,,,
+3225,V_B_SEYREN@NPC_DRAGONBREATH,attack,731,5,300,500,10000,no,target,always,,,,,,,,
 3225,V_B_SEYREN@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
 3225,V_B_SEYREN@NPC_CRITICALSLASH,attack,170,1,100,0,10000,yes,target,always,,,,,,,,
 3225,V_B_SEYREN@NPC_COMBOATTACK,attack,171,5,100,0,10000,yes,target,always,,,,,,,,
@@ -11687,7 +11687,7 @@
 3226,V_RANDEL@NPC_DEFENDER,attack,205,5,500,0,10000,yes,self,longrangeattacked,,,,,,,,
 3226,V_RANDEL@NPC_POWERUP,attack,349,1,200,0,100000,yes,self,always,,,,,,,,
 3226,V_RANDEL@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2232,,,,,,
-// 3226,V_RANDEL@NPC_RAYOFGENESIS,attack,737,3,200,500,10000,yes,target,always,,,,,,,9,
+3226,V_RANDEL@NPC_RAYOFGENESIS,attack,737,3,200,500,10000,yes,target,always,,,,,,,9,
 3227,V_FLAMEL@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
 3227,V_FLAMEL@AM_POTIONPITCHER,idle,231,4,1000,0,10000,yes,friend,friendhpltmaxrate,60,,,,,,5,
 3227,V_FLAMEL@AM_POTIONPITCHER,idle,231,4,1000,0,10000,yes,self,myhpltmaxrate,30,,,,,,5,
@@ -11699,7 +11699,7 @@
 3227,V_FLAMEL@AM_DEMONSTRATION,attack,229,1,200,500,10000,no,target,always,,,,,,,,
 3227,V_FLAMEL@NPC_AGIUP,attack,350,1,200,0,100000,yes,self,always,,,,,,,,
 3227,V_FLAMEL@AM_POTIONPITCHER,attack,231,5,500,0,10000,yes,friend,friendhpltmaxrate,60,,,,,,5,
-// 3227,V_FLAMEL@NPC_MANDRAGORA,attack,735,3,500,500,10000,no,self,always,,,,,,,,
+3227,V_FLAMEL@NPC_MANDRAGORA,attack,735,3,500,500,10000,no,self,always,,,,,,,,
 3227,V_FLAMEL@AM_POTIONPITCHER,attack,231,5,500,0,10000,yes,self,myhpltmaxrate,30,,,,,,5,
 3227,V_FLAMEL@NPC_WIDESLEEP,attack,668,3,300,1000,10000,no,self,always,,,,,,,,
 3227,V_FLAMEL@NPC_MAXPAIN,attack,716,5,300,1000,60000,no,self,always,,,,,,,,
@@ -11709,17 +11709,17 @@
 3228,V_CELIA@MG_SIGHT,idle,10,1,1000,0,10000,yes,self,skillused,137,,,,,,,
 3228,V_CELIA@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
 3228,V_CELIA@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
-// 3228,V_CELIA@NPC_WIDEWEB,chase,721,1,500,1000,10000,no,self,always,,,,,,,,
-// 3228,V_CELIA@NPC_PSYCHIC_WAVE,chase,736,1,500,0,10000,no,target,always,,,,,,,,
+3228,V_CELIA@NPC_WIDEWEB,chase,721,1,500,1000,10000,no,self,always,,,,,,,,
+3228,V_CELIA@NPC_PSYCHIC_WAVE,chase,736,1,500,0,10000,no,target,always,,,,,,,,
 3228,V_CELIA@SA_DISPELL,chase,289,5,50,0,10000,yes,target,always,,,,,,,,
 3228,V_CELIA@MG_THUNDERSTORM,chase,21,10,300,500,10000,no,target,always,,,,,,,,
 3228,V_CELIA@NPC_WIDESOULDRAIN,chase,680,4,300,0,10000,no,self,always,,,,,,,,
 3228,V_CELIA@NPC_MENTALBREAKER,attack,159,3,50,800,10000,no,target,always,,,,,,,,
 3228,V_CELIA@SA_DISPELL,attack,289,5,300,0,10000,yes,target,always,,,,,,,,
-// 3228,V_CELIA@NPC_PSYCHIC_WAVE,attack,736,4,500,1000,7000,no,target,always,,,,,,,,
+3228,V_CELIA@NPC_PSYCHIC_WAVE,attack,736,4,500,1000,7000,no,target,always,,,,,,,,
 3228,V_CELIA@MG_SAFETYWALL,attack,12,10,100,0,10000,yes,self,always,,,,,,,,
 3228,V_CELIA@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2231,,,,,,
-// 3228,V_CELIA@NPC_WIDEWEB,attack,721,1,300,0,7000,no,self,always,,,,,,,,
+3228,V_CELIA@NPC_WIDEWEB,attack,721,1,300,0,7000,no,self,always,,,,,,,,
 3228,V_CELIA@NPC_WIDESTONE,attack,666,5,100,1000,10000,no,self,always,,,,,,,,
 3228,V_CELIA@NPC_WIDESOULDRAIN,attack,680,2,100,500,10000,no,self,always,,,,,,,,
 3229,V_CHEN@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
@@ -11730,7 +11730,7 @@
 3229,V_CHEN@MO_EXTREMITYFIST,attack,271,1,500,1000,6000,no,target,always,,,,,,,,
 3229,V_CHEN@NPC_CRITICALSLASH,attack,170,1,100,0,10000,yes,target,always,,,,,,,,
 3229,V_CHEN@NPC_CHANGEUNDEAD,attack,348,3,100,0,10000,yes,target,always,,,,,,,,
-// 3229,V_CHEN@NPC_CURSEDCIRCLE,attack,730,2,300,0,5000,yes,self,always,,,,,,,3,
+3229,V_CHEN@NPC_SR_CURSEDCIRCLE,attack,730,2,300,0,5000,yes,self,always,,,,,,,3,
 3229,V_CHEN@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2229,,,,,,
 3229,V_CHEN@NPC_WIDEBLEEDING,attack,665,4,300,1000,10000,yes,self,always,,,,,,,,
 3230,V_GERTIE@AS_CLOAKING,attack,135,1,200,200,10000,yes,self,always,,,,,,,,
@@ -11742,7 +11742,7 @@
 3230,V_GERTIE@NPC_PULSESTRIKE,attack,661,2,200,0,10000,yes,self,always,,,,,,,,
 3230,V_GERTIE@NPC_CRITICALSLASH,attack,170,1,300,0,5000,yes,target,always,,,,,,,,
 3230,V_GERTIE@NPC_WIDECONFUSE,attack,667,3,100,1000,10000,yes,target,always,,,,,,,,
-// 3230,V_GERTIE@NPC_FATALMENACE,attack,732,3,300,0,7000,,no,target,always,,,,,,,43,
+3230,V_GERTIE@NPC_FATALMENACE,attack,732,3,300,0,7000,no,target,always,,,,,,,43,
 3230,V_GERTIE@NPC_VENOMFOG,attack,706,1,100,0,10000,yes,self,always,,,,,,,,
 3230,V_GERTIE@NPC_AGIUP,attack,350,1,200,0,100000,yes,self,always,,,,,,,,
 3230,V_GERTIE@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2228,,,,,,
@@ -11753,15 +11753,15 @@
 3231,V_ALPHOCCIO@NPC_PULSESTRIKE,attack,661,3,100,1000,10000,no,self,always,,,,,,,,
 3231,V_ALPHOCCIO@NPC_WIDEFREEZE,attack,664,3,200,1000,10000,no,self,always,,,,,,,,
 3231,V_ALPHOCCIO@NPC_SLOWCAST,attack,672,1,200,800,30000,no,self,always,,,,,,,36,
-// 3231,V_ALPHOCCIO@NPC_REVERBERATION,attack,725,3,100,0,10000,yes,target,always,,,,,,,,
+3231,V_ALPHOCCIO@NPC_REVERBERATION,attack,725,3,100,0,10000,yes,target,always,,,,,,,,
 3231,V_ALPHOCCIO@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2234,,,,,,
-// 3231,V_ALPHOCCIO@NPC_DANCINGBLADE,attack,713,1,100,0,10000,yes,target,always,,,,,,,,
+3231,V_ALPHOCCIO@NPC_DANCINGBLADE,attack,713,1,100,0,10000,yes,target,always,,,,,,,,
 3232,V_TRENTINI@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
 3232,V_TRENTINI@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
 // 3232,V_TRENTINI@NPC_UGLYDANCE,attack,2541,5,100,1000,100000,no,self,always,,,,,,,,
 3232,V_TRENTINI@NPC_AGIUP,attack,350,1,200,0,100000,yes,self,always,,,,,,,,
 3232,V_TRENTINI@NPC_CRITICALSLASH,attack,170,1,100,0,10000,yes,target,always,,,,,,,,
-// 3232,V_TRENTINI@NPC_REVERBERATION,attack,725,1,100,0,10000,yes,target,always,,,,,,,,
+3232,V_TRENTINI@NPC_REVERBERATION,attack,725,1,100,0,10000,yes,target,always,,,,,,,,
 3232,V_TRENTINI@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2233,,,,,,
 // 3232,V_TRENTINI@NPC_DISSONANCE,attack,2540,3,100,1000,30000,no,self,always,,,,,,,,
 3233,V_G_RANDEL@NPC_DEFENDER,attack,205,5,500,0,10000,yes,self,longrangeattacked,,,,,,,,
@@ -11773,7 +11773,7 @@
 3233,V_G_RANDEL@NPC_GRANDDARKNESS,attack,339,10,200,500,10000,no,self,attackpcge,2,,,,,,,
 3233,V_G_RANDEL@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
 3233,V_G_RANDEL@NPC_POWERUP,attack,349,5,500,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-// 3233,V_G_RANDEL@NPC_RAYOFGENESIS,attack,737,7,200,500,10000,yes,target,always,,,,,,,9,
+3233,V_G_RANDEL@NPC_RAYOFGENESIS,attack,737,7,200,500,10000,yes,target,always,,,,,,,9,
 3233,V_G_RANDEL@NPC_WIDESLEEP,attack,668,5,200,1000,10000,no,self,always,,,,,,,,
 3233,V_G_RANDEL@NPC_WIDESILENCE,attack,663,5,200,1000,10000,no,self,always,,,,,,,,
 3234,V_G_FLAMEL@AM_POTIONPITCHER,idle,231,5,1000,500,10000,yes,friend,friendhpltmaxrate,60,,,,,,5,
@@ -11790,23 +11790,23 @@
 3234,V_G_FLAMEL@CR_ACIDDEMONSTRATION,attack,490,3,100,1000,300000,no,target,always,,,,,,,,
 3234,V_G_FLAMEL@AM_DEMONSTRATION,attack,229,5,200,0,10000,yes,target,always,,,,,,,,
 3234,V_G_FLAMEL@NPC_CRITICALWOUND,attack,673,3,100,0,30000,no,target,always,,,,,,,,
-// 3234,V_G_FLAMEL@NPC_MANDRAGORA,attack,735,3,500,500,10000,no,self,always,,,,,,,,
+3234,V_G_FLAMEL@NPC_MANDRAGORA,attack,735,3,500,500,10000,no,self,always,,,,,,,,
 3234,V_G_FLAMEL@NPC_WIDESLEEP,attack,668,5,300,1000,10000,no,self,always,,,,,,,,
 3234,V_G_FLAMEL@NPC_WIDESTUN,attack,678,5,300,1000,10000,no,self,always,,,,,,,,
 3235,V_G_CELIA@MG_FIREBOLT,chase,19,10,300,0,10000,yes,target,always,,,,,,,,
 3235,V_G_CELIA@SA_DISPELL,chase,289,5,50,0,10000,yes,target,always,,,,,,,,
 3235,V_G_CELIA@NPC_WIDESOULDRAIN,attack,680,5,200,1000,10000,no,self,always,,,,,,,,
 3235,V_G_CELIA@NPC_MENTALBREAKER,attack,159,3,50,800,10000,no,target,always,,,,,,,,
-// 3235,V_G_CELIA@NPC_PSYCHIC_WAVE,attack,736,5,300,500,5000,no,target,always,,,,,,,,
+3235,V_G_CELIA@NPC_PSYCHIC_WAVE,attack,736,5,300,500,5000,no,target,always,,,,,,,,
 3235,V_G_CELIA@SA_DISPELL,attack,289,5,50,0,30000,yes,target,always,,,,,,,,
 3235,V_G_CELIA@SA_LANDPROTECTOR,attack,288,5,300,1000,10000,no,target,always,,,,,,,,
-// 3235,V_G_CELIA@NPC_WIDEWEB,attack,721,1,500,0,7000,yes,self,always,,,,,,,,
+3235,V_G_CELIA@NPC_WIDEWEB,attack,721,1,500,0,7000,yes,self,always,,,,,,,,
 3235,V_G_CELIA@NPC_WIDESTONE,attack,666,5,100,1000,10000,no,self,always,,,,,,,,
 3235,V_G_CELIA@NPC_WIDESOULDRAIN,attack,680,4,100,1000,10000,no,self,always,,,,,,,,
-// 3235,V_G_CELIA@NPC_PSYCHIC_WAVE,attack,736,5,300,1000,5000,no,target,always,,,,,,,,
+3235,V_G_CELIA@NPC_PSYCHIC_WAVE,attack,736,5,300,1000,5000,no,target,always,,,,,,,,
 3235,V_G_CELIA@NPC_WIDECONFUSE,attack,667,3,300,1000,10000,no,target,always,,,,,,,,
 3235,V_G_CELIA@NPC_MAXPAIN,attack,716,7,300,1000,30000,yes,self,always,,,,,,,,
-// 3235,V_G_CELIA@NPC_PSYCHIC_WAVE,attack,736,7,300,3000,30000,no,target,always,,,,,,,,
+3235,V_G_CELIA@NPC_PSYCHIC_WAVE,attack,736,7,300,3000,30000,no,target,always,,,,,,,,
 3236,V_G_CHEN@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
 3236,V_G_CHEN@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
 3236,V_G_CHEN@NPC_WIDEBLEEDING,attack,665,5,300,1000,10000,yes,self,always,,,,,,,,
@@ -11816,13 +11816,13 @@
 3236,V_G_CHEN@NPC_CRITICALSLASH,attack,170,1,100,0,10000,yes,target,always,,,,,,,,
 3236,V_G_CHEN@NPC_ARMORBRAKE,attack,344,1,100,0,10000,yes,target,always,,,,,,,,
 3236,V_G_CHEN@NPC_PULSESTRIKE,attack,661,5,100,0,10000,yes,self,always,,,,,,,,
-// 3236,V_G_CHEN@NPC_CURSEDCIRCLE,attack,730,4,100,0,5000,yes,self,always,,,,,,,,
-// 3236,V_G_CHEN@NPC_DARKPIERCING,attack,715,1,100,0,10000,yes,target,always,,,,,,,,
+3236,V_G_CHEN@NPC_SR_CURSEDCIRCLE,attack,730,4,100,0,5000,yes,self,always,,,,,,,,
+3236,V_G_CHEN@NPC_DARKPIERCING,attack,715,1,100,0,10000,yes,target,always,,,,,,,,
 3237,V_G_GERTIE@NPC_PULSESTRIKE,attack,661,5,200,0,10000,yes,self,always,,,,,,,,
 3237,V_G_GERTIE@NPC_CRITICALSLASH,attack,170,1,300,0,5000,yes,target,always,,,,,,,,
 3237,V_G_GERTIE@NPC_AGIUP,attack,350,1,300,0,300000,yes,self,always,,,,,,,,
 3237,V_G_GERTIE@ST_FULLSTRIP,attack,476,5,50,0,30000,yes,target,myhpltmaxrate,30,,,,,,,
-// 3237,V_G_GERTIE@NPC_FATALMENACE,attack,732,5,300,0,20000,no,target,always,,,,,,,34,
+3237,V_G_GERTIE@NPC_FATALMENACE,attack,732,5,300,0,20000,no,target,always,,,,,,,34,
 3237,V_G_GERTIE@NPC_WIDECONFUSE,attack,667,5,100,1000,30000,no,target,always,,,,,,,,
 3237,V_G_GERTIE@RG_CLOSECONFINE,attack,1005,1,100,0,30000,yes,target,always,,,,,,,,
 3237,V_G_GERTIE@NPC_VENOMFOG,attack,706,3,200,0,30000,yes,self,always,,,,,,,,
@@ -11830,7 +11830,7 @@
 3237,V_G_GERTIE@NPC_INVISIBLE,attack,353,1,100,200,30000,yes,self,always,,,,,,,,
 // 3238,V_G_ALPHOCCIO@NPC_DISSONANCE,attack,2540,3,100,1000,120000,no,self,always,,,,,,,,
 3238,V_G_ALPHOCCIO@NPC_PULSESTRIKE,attack,661,5,100,1000,10000,no,self,always,,,,,,,,
-// 3238,V_G_ALPHOCCIO@NPC_REVERBERATION,attack,725,3,100,0,10000,yes,target,always,,,,,,,,
+3238,V_G_ALPHOCCIO@NPC_REVERBERATION,attack,725,3,100,0,10000,yes,target,always,,,,,,,,
 3238,V_G_ALPHOCCIO@NPC_WIDESLEEP,attack,668,5,100,1000,10000,no,self,always,,,,,,,,
 3238,V_G_ALPHOCCIO@NPC_WIDEFREEZE,attack,664,5,100,1000,10000,no,self,always,,,,,,,,
 3238,V_G_ALPHOCCIO@NPC_SLOWCAST,attack,672,3,100,1000,10000,no,self,always,,,,,,,36,
@@ -11860,7 +11860,7 @@
 3240,V_B_RANDEL@NPC_GRANDDARKNESS,attack,339,10,200,500,10000,no,self,always,,,,,,,,
 3240,V_B_RANDEL@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
 3240,V_B_RANDEL@NPC_POWERUP,attack,349,5,200,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
-// 3240,V_B_RANDEL@NPC_RAYOFGENESIS,attack,737,10,200,500,7000,yes,target,always,,,,,,,9,
+3240,V_B_RANDEL@NPC_RAYOFGENESIS,attack,737,10,200,500,7000,yes,target,always,,,,,,,9,
 3240,V_B_RANDEL@NPC_HELLJUDGEMENT,attack,662,10,100,1000,30000,no,self,always,,,,,,,,
 3240,V_B_RANDEL@NPC_WIDESILENCE,attack,663,5,100,1000,10000,no,self,always,,,,,,,,
 3240,V_B_RANDEL@NPC_WIDESLEEP,attack,668,5,100,1000,10000,no,self,always,,,,,,,,
@@ -11881,7 +11881,7 @@
 3241,V_B_FLAMEL@NPC_AGIUP,attack,350,5,200,0,100000,yes,self,always,,,,,,,,
 3241,V_B_FLAMEL@NPC_MAGICMIRROR,attack,671,10,200,0,100000,yes,self,always,,,,,,,,
 3241,V_B_FLAMEL@AM_DEMONSTRATION,attack,229,5,200,0,10000,yes,target,always,,,,,,,,
-// 3241,V_B_FLAMEL@NPC_MANDRAGORA,attack,735,5,500,500,10000,no,self,always,,,,,,,,
+3241,V_B_FLAMEL@NPC_MANDRAGORA,attack,735,5,500,500,10000,no,self,always,,,,,,,,
 3241,V_B_FLAMEL@NPC_WIDESLEEP,attack,668,5,300,1000,10000,no,self,always,,,,,,,,
 3241,V_B_FLAMEL@NPC_WIDESTUN,attack,678,5,300,1000,10000,no,self,always,,,,,,,,
 3242,V_B_CELIA@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
@@ -11903,11 +11903,11 @@
 3242,V_B_CELIA@SA_DISPELL,attack,289,5,1000,0,30000,yes,target,always,,,,,,,,
 3242,V_B_CELIA@NPC_DARKTHUNDER,attack,341,10,300,1000,10000,no,target,always,,,,,,,,
 3242,V_B_CELIA@MG_SAFETYWALL,attack,12,10,300,0,10000,yes,self,always,,,,,,,,
-// 3242,V_B_CELIA@NPC_WIDEWEB,attack,721,1,500,0,7000,yes,self,always,,,,,,,,
+3242,V_B_CELIA@NPC_WIDEWEB,attack,721,1,500,0,7000,yes,self,always,,,,,,,,
 3242,V_B_CELIA@NPC_WIDESTONE,attack,666,5,100,1000,10000,no,self,always,,,,,,,,
 3242,V_B_CELIA@NPC_WIDESOULDRAIN,attack,680,5,100,2000,10000,no,self,always,,,,,,,,
-// 3242,V_B_CELIA@NPC_PSYCHIC_WAVE,attack,736,7,500,500,5000,no,target,always,,,,,,,,
-// 3242,V_B_CELIA@NPC_PSYCHIC_WAVE,attack,736,10,300,3000,10000,no,target,always,,,,,,,9,
+3242,V_B_CELIA@NPC_PSYCHIC_WAVE,attack,736,7,500,500,5000,no,target,always,,,,,,,,
+3242,V_B_CELIA@NPC_PSYCHIC_WAVE,attack,736,10,300,3000,10000,no,target,always,,,,,,,9,
 3243,V_B_CHEN@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
 3243,V_B_CHEN@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3233,3234,3235,3237,3238,3239,
 3243,V_B_CHEN@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
@@ -11923,7 +11923,7 @@
 3243,V_B_CHEN@NPC_AGIUP,attack,350,5,200,0,100000,yes,self,always,,,,,,,,
 3243,V_B_CHEN@NPC_AGIUP,attack,350,5,200,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
 3243,V_B_CHEN@NPC_MAXPAIN,attack,716,10,300,1000,20000,no,self,always,,,,,,,,
-// 3243,V_B_CHEN@NPC_DARKPIERCING,attack,715,1,100,0,10000,yes,target,always,,,,,,,,
+3243,V_B_CHEN@NPC_DARKPIERCING,attack,715,1,100,0,10000,yes,target,always,,,,,,,,
 3243,V_B_CHEN@NPC_PULSESTRIKE,attack,661,5,100,0,10000,yes,self,always,,,,,,,,
 3243,V_B_CHEN@NPC_WIDEBLEEDING,attack,665,5,100,1000,10000,no,self,always,,,,,,,,
 3243,V_B_CHEN@NPC_WIDESILENCE,attack,663,5,100,1000,10000,no,self,always,,,,,,,,
@@ -11945,7 +11945,7 @@
 3244,V_B_GERTIE@ST_FULLSTRIP,attack,476,5,50,0,20000,yes,target,myhpltmaxrate,30,,,,,,,
 3244,V_B_GERTIE@NPC_PULSESTRIKE,attack,661,5,200,0,7000,yes,self,always,,,,,,,,
 3244,V_B_GERTIE@NPC_CRITICALSLASH,attack,170,1,300,0,5000,yes,target,always,,,,,,,,
-// 3244,V_B_GERTIE@NPC_FATALMENACE,attack,732,5,100,0,30000,,no,target,always,,,,,,,37,
+3244,V_B_GERTIE@NPC_FATALMENACE,attack,732,5,100,0,30000,no,target,always,,,,,,,37,
 3244,V_B_GERTIE@NPC_HELLJUDGEMENT,attack,662,10,100,1000,30000,no,self,always,,,,,,,,
 3244,V_B_GERTIE@NPC_WIDESLEEP,attack,668,10,100,1000,30000,no,self,always,,,,,,,,
 3245,V_B_ALPHOCCIO@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
@@ -12127,15 +12127,15 @@
 3489,IMMORTAL_CORPS3@NPC_POWERUP,attack,349,3,10000,0,20000,yes,self,myhpltmaxrate,50,,,,,,,
 3489,IMMORTAL_CORPS3@NPC_EARTHQUAKE,attack,653,1,10000,2000,60000,no,self,myhpltmaxrate,25,,,,,,6,
 3490,IMMORTAL_CO_CMDER@NPC_SUMMONSLAVE,idle,196,1,10000,500,60000,no,self,slavele,0,3487,3488,3489,,,,
-// 3490,IMMORTAL_CO_CMDER@NPC_CHEAL,idle,729,5,3000,0,5000,yes,self,friendhpltmaxrate,80,,,,,,,
+3490,IMMORTAL_CO_CMDER@NPC_CHEAL,idle,729,5,3000,0,5000,yes,self,friendhpltmaxrate,80,,,,,,,
 3490,IMMORTAL_CO_CMDER@AB_CHEAL,idle,2043,5,3000,0,5000,yes,self,friendhpltmaxrate,80,,,,,,,
 3490,IMMORTAL_CO_CMDER@MG_SIGHT,idle,10,1,500,100,10000,yes,self,always,0,,,,,,,
 3490,IMMORTAL_CO_CMDER@MG_SIGHT,chase,10,1,500,100,10000,yes,self,always,0,,,,,,,
 3490,IMMORTAL_CO_CMDER@NPC_SUMMONSLAVE,attack,196,1,10000,700,60000,no,self,slavele,0,3487,3488,3489,,,,
-// 3490,IMMORTAL_CO_CMDER@NPC_CHEAL,attack,729,5,3000,0,5000,yes,self,friendhpltmaxrate,80,,,,,,,
+3490,IMMORTAL_CO_CMDER@NPC_CHEAL,attack,729,5,3000,0,5000,yes,self,friendhpltmaxrate,80,,,,,,,
 3490,IMMORTAL_CO_CMDER@AB_CHEAL,attack,2043,5,3000,0,5000,yes,self,friendhpltmaxrate,80,,,,,,,
 3490,IMMORTAL_CO_CMDER@NPC_BLOODDRAIN,attack,199,1,3000,0,4000,no,target,always,0,,,,,,,
-// 3490,IMMORTAL_CO_CMDER@NPC_CHEAL,chase,729,5,3000,0,5000,yes,self,friendhpltmaxrate,80,,,,,,,
+3490,IMMORTAL_CO_CMDER@NPC_CHEAL,chase,729,5,3000,0,5000,yes,self,friendhpltmaxrate,80,,,,,,,
 3490,IMMORTAL_CO_CMDER@AB_CHEAL,chase,2043,5,3000,0,5000,yes,self,friendhpltmaxrate,80,,,,,,,
 3490,IMMORTAL_CO_CMDER@NPC_HELLJUDGEMENT,attack,662,3,1000,2000,30000,yes,self,myhpltmaxrate,50,,,,,,7,
 3490,IMMORTAL_CO_CMDER@NPC_ALLHEAL,attack,687,9,500,2000,100000,yes,self,myhpltmaxrate,15,,,,,,52,

+ 382 - 10
db/re/skill_db.yml

@@ -16702,6 +16702,19 @@ Body:
       Flag:
         NoOverlap: true
         PathCheck: true
+  - Id: 707
+    Name: NPC_MILLENNIUMSHIELD
+    Description: Millenium Shield 2
+    MaxLevel: 1
+    TargetType: Self
+    DamageFlags:
+      NoDamage: true
+    Flags:
+      IsNpc: true
+    Range: 1   # (skillinfolist.lua)
+    Hit: Single
+    HitCount: 1
+    Duration1: 900000   # skill duration (unknown value)
   - Id: 708
     Name: NPC_COMET
     Description: Comet 2
@@ -16776,6 +16789,54 @@ Body:
         NoOverlap: true
         PathCheck: true
         RemovedByFireRain: true
+  - Id: 712
+    Name: NPC_PULSESTRIKE2
+    Description: Pulse Strike 2
+    MaxLevel: 1
+    Type: Magic
+    TargetType: Self
+    DamageFlags:
+      NoDamage: true
+      Splash: true
+    Flags:
+      IsNpc: true
+      TargetTrap: true
+      ShowScale: true
+    Range: 1
+    Hit: Single
+    HitCount: 1
+    Element: Dark
+    SplashArea: 5
+    Knockback: 3
+    Duration1: 1000
+  - Id: 713
+    Name: NPC_DANCINGBLADE
+    Description: Dancing Blade
+    MaxLevel: 1
+    Type: None
+    TargetType: Attack
+    DamageFlags:
+      NoDamage: true
+    Flags:
+      IsNpc: true
+    Range: 10
+    Hit: Single
+    HitCount: 1
+    CastTime: 3500
+    AfterCastActDelay: 3000
+    Duration1: 100
+    FixedCastTime: 1000
+  - Id: 714
+    Name: NPC_DANCINGBLADE_ATK
+    Description: Dancing Blade Attack
+    MaxLevel: 1
+    Type: Weapon
+    TargetType: Attack
+    Flags:
+      IsNpc: true
+    Range: 10
+    Hit: Single
+    HitCount: 1
   - Id: 715
     Name: NPC_DARKPIERCING
     Description: Dark Piercing
@@ -16920,6 +16981,30 @@ Body:
     HitCount: 1
     SplashArea: 13
     Duration1: 3000
+  - Id: 723
+    Name: NPC_STORMGUST2
+    Description: Storm Gust 2
+    MaxLevel: 3
+    Type: Magic
+    TargetType: Ground
+    Flags:
+      IsNpc: true
+      ShowScale: true
+    Range: 9
+    Hit: Single
+    HitCount: 1
+    Element: Water
+    Duration1: 4500
+    Duration2: 30000
+    Unit:
+      Id: Dummyskill
+      Layout: 5
+      Range: 1
+      Interval: 450
+      Target: Enemy
+      Flag:
+        NoOverlap: true
+        PathCheck: true
   - Id: 724
     Name: NPC_FIRESTORM
     Description: Fire Storm
@@ -17022,40 +17107,327 @@ Body:
   - Id: 728
     Name: NPC_ARROWSTORM
     Description: NPC Arrow Storm
-    MaxLevel: 10
+    MaxLevel: 5
     Type: Weapon
     TargetType: Attack
     DamageFlags:
       Splash: true
     Flags:
       IsNpc: true
-      AlterRangeVulture: true
     Range: 9
     Hit: Multi_Hit
     HitCount: -3
-    Element: Weapon
     SplashArea:
       - Level: 1
         Area: 3
       - Level: 2
-        Area: 3
+        Area: 5
       - Level: 3
-        Area: 3
+        Area: 7
       - Level: 4
+        Area: 11
+      - Level: 5
+        Area: 13
+  - Id: 729
+    Name: NPC_CHEAL
+    Description: NPC Coluceo Heal
+    MaxLevel: 5
+    Type: Magic
+    TargetType: Self
+    DamageFlags:
+      NoDamage: true
+      Splash: true
+    Flags:
+      IsNpc: true
+      ShowScale: true
+    Hit: Single
+    HitCount: 1
+    Element: Holy
+    SplashArea:
+      - Level: 1
         Area: 3
+      - Level: 2
+        Area: 5
+      - Level: 3
+        Area: 7
+      - Level: 4
+        Area: 9
       - Level: 5
+        Area: 11
+  - Id: 730
+    Name: NPC_SR_CURSEDCIRCLE
+    Description: Cursed Circle
+    MaxLevel: 5
+    TargetType: Self
+    DamageFlags:
+      NoDamage: true
+      Splash: true
+    Flags:
+      IsNpc: true
+      ShowScale: true
+    Range: 1
+    Hit: Single
+    HitCount: 1
+    SplashArea:
+      - Level: 1
+        Area: 1
+      - Level: 2
+        Area: 2
+      - Level: 3
         Area: 3
-      - Level: 6
+      - Level: 4
         Area: 4
+      - Level: 5
+        Area: 5
+    Duration1: 7000
+  - Id: 731
+    Name: NPC_DRAGONBREATH
+    Description: NPC Dragon Breath
+    MaxLevel: 10
+    Type: Weapon
+    TargetType: Ground
+    DamageFlags:
+      Splash: true
+      IgnoreFlee: true
+    Flags:
+      IsNpc: true
+      ShowScale: true
+    Range: 3
+    Hit: Single
+    HitCount: 1
+    Element:
+      - Level: 1
+        Element: Fire
+      - Level: 2
+        Element: Fire
+      - Level: 3
+        Element: Fire
+      - Level: 4
+        Element: Fire
+      - Level: 5
+        Element: Fire
+      - Level: 6
+        Element: Water
       - Level: 7
-        Area: 4
+        Element: Water
       - Level: 8
-        Area: 4
+        Element: Water
       - Level: 9
-        Area: 4
+        Element: Water
       - Level: 10
+        Element: Water
+    SplashArea: 4
+    Duration1: 10000
+  - Id: 732
+    Name: NPC_FATALMENACE
+    Description: Fatal Menace
+    MaxLevel: 5
+    Type: Weapon
+    TargetType: Attack
+    DamageFlags:
+      Splash: true
+    Flags:
+      IsNpc: true
+    Range: 1
+    Hit: Single
+    HitCount: 1
+    SplashArea:
+      - Level: 1
+        Area: 1
+      - Level: 2
+        Area: 2
+      - Level: 3
+        Area: 3
+      - Level: 4
+        Area: 4
+      - Level: 5
         Area: 5
-    CastCancel: true
+  - Id: 733
+    Name: NPC_MAGMA_ERUPTION
+    Description: NPC Magma Eruption
+    MaxLevel: 5
+    Type: Weapon
+    TargetType: Ground
+    DamageFlags:
+      Splash: true
+    Flags:
+      IsNpc: true
+      ShowScale: true
+    Range: 1
+    Hit: Single
+    HitCount: 1
+    Element: Fire
+    SplashArea: 3
+    ActiveInstance: 3
+    Duration1: 3000
+    Unit:
+      Id: Magma_Eruption
+      Range: 3
+      Interval: 500
+      Target: Enemy
+      Flag:
+        NoOverlap: true
+        PathCheck: true
+  - Id: 734
+    Name: NPC_MAGMA_ERUPTION_DOTDAMAGE
+    Description: NPC Magma Eruption Dot Damage
+    MaxLevel: 5
+    Type: Misc
+    TargetType: Attack
+    DamageFlags:
+      IgnoreFlee: true
+      IgnoreDefCard: true
+    Flags:
+      IsNpc: true
+    Range: 1
+    Hit: Single
+    HitCount: 1
+  - Id: 735
+    Name: NPC_MANDRAGORA
+    Description: NPC Howling of Mandragora
+    MaxLevel: 5
+    TargetType: Self
+    DamageFlags:
+      NoDamage: true
+      Splash: true
+    Flags:
+      IsNpc: true
+      ShowScale: true
+    Range: 1
+    Hit: Single
+    HitCount: 1
+    SplashArea:
+      - Level: 1
+        Area: 5
+      - Level: 2
+        Area: 6
+      - Level: 3
+        Area: 7
+      - Level: 4
+        Area: 8
+      - Level: 5
+        Area: 9
+    Duration1:
+      - Level: 1
+        Time: 10000
+      - Level: 2
+        Time: 15000
+      - Level: 3
+        Time: 20000
+      - Level: 4
+        Time: 25000
+      - Level: 5
+        Time: 30000
+  - Id: 736
+    Name: NPC_PSYCHIC_WAVE
+    Description: Psychic Wave
+    MaxLevel: 10
+    Type: Magic
+    TargetType: Ground
+    Range: 9
+    Flags:
+      IsNpc: true
+      ShowScale: true
+    Hit: Single
+    HitCount: 1
+    Element: Fire
+    Duration1: 3200
+    Unit:
+      Id: Psychic_Wave
+      Range:
+        - Level: 1
+          Size: 3
+        - Level: 2
+          Size: 4
+        - Level: 3
+          Size: 5
+        - Level: 4
+          Size: 5
+        - Level: 5
+          Size: 5
+        - Level: 6
+          Size: 5
+        - Level: 7
+          Size: 5
+        - Level: 8
+          Size: 5
+        - Level: 9
+          Size: 5
+        - Level: 10
+          Size: 5
+      Interval: 500
+      Target: Enemy
+      Flag:
+        NoOverlap: true
+        PathCheck: true
+  - Id: 737
+    Name: NPC_RAYOFGENESIS
+    Description: NPC Ray of Genesis
+    MaxLevel: 10
+    Type: Magic
+    TargetType: Self
+    DamageFlags:
+      Splash: true
+    Flags:
+      IsNpc: true
+      ShowScale: true
+    Range: 1
+    Hit: Multi_Hit
+    HitCount: -7
+    Element: Holy
+    SplashArea:
+      - Level: 1
+        Area: 5
+      - Level: 2
+        Area: 5
+      - Level: 3
+        Area: 8
+      - Level: 4
+        Area: 8
+      - Level: 5
+        Area: 11
+      - Level: 6
+        Area: 11
+      - Level: 7
+        Area: 13
+      - Level: 8
+        Area: 13
+      - Level: 9
+        Area: 13
+      - Level: 10
+        Area: 13
+    Duration1: 10000
+  - Id: 738
+    Name: NPC_VENOMIMPRESS
+    Description: NPC Venom Impress
+    MaxLevel: 5
+    TargetType: Attack
+    Flags:
+      IsNpc: true
+    Range:
+      - Level: 1
+        Size: 2
+      - Level: 2
+        Size: 3
+      - Level: 3
+        Size: 4
+      - Level: 4
+        Size: 5
+      - Level: 5
+        Size: 6
+    Hit: Single
+    HitCount: 1
+    Duration1:
+      - Level: 1
+        Time: 10000
+      - Level: 2
+        Time: 20000
+      - Level: 3
+        Time: 30000
+      - Level: 4
+        Time: 40000
+      - Level: 5
+        Time: 50000
   - Id: 739
     Name: NPC_CLOUD_KILL
     Description: Cloud Kill

+ 28 - 3
src/map/battle.cpp

@@ -1528,7 +1528,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
 		if(sc->data[SC_ADJUSTMENT] && (flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON))
 			damage -= damage * 20 / 100;
 
-		if(sc->data[SC_FOGWALL] && skill_id != RK_DRAGONBREATH && skill_id != RK_DRAGONBREATH_WATER) {
+		if(sc->data[SC_FOGWALL] && skill_id != RK_DRAGONBREATH && skill_id != RK_DRAGONBREATH_WATER && skill_id != NPC_DRAGONBREATH) {
 			if(flag&BF_SKILL) //25% reduction
 				damage -= damage * 25 / 100;
 			else if ((flag&(BF_LONG|BF_WEAPON)) == (BF_LONG|BF_WEAPON))
@@ -3824,7 +3824,7 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
 			skillratio += 200;
 		if (sc && sc->data[SC_TRUESIGHT])
 			skillratio += 2 * sc->data[SC_TRUESIGHT]->val1;
-		if (sc->data[SC_CONCENTRATION] && (skill_id != RK_DRAGONBREATH && skill_id != RK_DRAGONBREATH_WATER))
+		if (sc->data[SC_CONCENTRATION] && (skill_id != RK_DRAGONBREATH && skill_id != RK_DRAGONBREATH_WATER && skill_id != NPC_DRAGONBREATH))
 			skillratio += sc->data[SC_CONCENTRATION]->val2;
 #endif
 		if (!skill_id || skill_id == KN_AUTOCOUNTER) {
@@ -4415,7 +4415,16 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
 			skillratio += 50 + 15 * skill_lv;
 			break;
 		case NPC_ARROWSTORM:
-			skillratio += 900 + 80 * skill_lv;
+			if (skill_lv > 4)
+				skillratio += 1900;
+			else
+				skillratio += 900;
+			break;
+		case NPC_DRAGONBREATH:
+			if (skill_lv > 5)
+				skillratio += 500 + 500 * (skill_lv - 5);	// Level 6-10 is using water element, like RK_DRAGONBREATH_WATER
+			else
+				skillratio += 500 + 500 * skill_lv;	// Level 1-5 is using fire element, like RK_DRAGONBREATH
 			break;
 		case RA_ARROWSTORM:
 			if (sc && sc->data[SC_FEARBREEZE])
@@ -6246,6 +6255,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
 			if (sd)
 				s_ele = sd->bonus.arrow_ele;
 			break;
+		case NPC_PSYCHIC_WAVE:
 		case SO_PSYCHIC_WAVE:
 			if (sd && (sd->weapontype1 == W_STAFF || sd->weapontype1 == W_2HSTAFF || sd->weapontype1 == W_BOOK))
 				ad.div_ = 2;
@@ -6655,6 +6665,9 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
 							skillratio += 70 * skill_lv;
 						RE_LVL_DMOD(100);
 						break;
+					case NPC_RAYOFGENESIS:
+						skillratio += -100 + 200 * skill_lv;
+						break;
 					case WM_METALICSOUND:
 						skillratio += -100 + 120 * skill_lv + 60 * ((sd) ? pc_checkskill(sd, WM_LESSON) : 1);
 						if (tsc && tsc->data[SC_SLEEP])
@@ -6712,6 +6725,9 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
 							sc->data[SC_BLAST_OPTION] || sc->data[SC_CURSED_SOIL_OPTION]))
 							skillratio += 20;
 						break;
+					case NPC_PSYCHIC_WAVE:
+						skillratio += -100 + 500 * skill_lv;
+						break;
 					case SO_CLOUD_KILL:
 						skillratio += -100 + 40 * skill_lv;
 						RE_LVL_DMOD(100);
@@ -6792,6 +6808,9 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
 					case NPC_HELLBURNING:
 						skillratio += 900;
 						break;
+					case NPC_PULSESTRIKE2:
+						skillratio += 100;
+						break;
 					case SP_CURSEEXPLOSION:
 						if (tsc && tsc->data[SC_SOULCURSE])
 							skillratio += 1400 + 200 * skill_lv;
@@ -6809,6 +6828,9 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
 						skillratio += 1000 + 200 * skill_lv;
 						RE_LVL_DMOD(100);
 						break;
+					case NPC_STORMGUST2:
+						skillratio += 200 * skill_lv;
+						break;
 				}
 
 				if (sc) {// Insignia's increases the damage of offensive magic by a fixed percentage depending on the element.
@@ -7207,6 +7229,9 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
 		case NC_MAGMA_ERUPTION_DOTDAMAGE: // 'Eruption' damage
 			md.damage = 800 + 200 * skill_lv;
 			break;
+		case NPC_MAGMA_ERUPTION_DOTDAMAGE:
+			md.damage = 1000 * skill_lv;
+			break;
 		case GN_THORNS_TRAP:
 			md.damage = 100 + 200 * skill_lv + status_get_int(src);
 			break;

+ 150 - 4
src/map/skill.cpp

@@ -452,6 +452,10 @@ unsigned short skill_dummy2skill_id(unsigned short skill_id) {
 			return SU_LUNATICCARROTBEAT;
 		case NPC_REVERBERATION_ATK:
 			return NPC_REVERBERATION;
+		case NPC_MAGMA_ERUPTION_DOTDAMAGE:
+			return NPC_MAGMA_ERUPTION;
+		case NPC_DANCINGBLADE_ATK:
+			return NPC_DANCINGBLADE;
 	}
 	return skill_id;
 }
@@ -631,7 +635,7 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk
 #endif
 
 	if (sc && sc->count) {
-		if (sc->data[SC_OFFERTORIUM] && (skill_id == AB_HIGHNESSHEAL || skill_id == AB_CHEAL || skill_id == PR_SANCTUARY || skill_id == AL_HEAL))
+		if (sc->data[SC_OFFERTORIUM] && (skill_id == AB_HIGHNESSHEAL || skill_id == AB_CHEAL || skill_id == NPC_CHEAL || skill_id == PR_SANCTUARY || skill_id == AL_HEAL))
 #ifdef RENEWAL
 			hp_bonus += sc->data[SC_OFFERTORIUM]->val2;
 #else
@@ -858,6 +862,7 @@ bool skill_isNotOk(uint16 skill_id, struct map_session_data *sd)
 			}
 			return false;
 		case AL_TELEPORT:
+		case NPC_FATALMENACE:
 		case SC_DIMENSIONDOOR:
 		case ALL_ODINS_RECALL:
 		case WE_CALLALLFAMILY:
@@ -1394,6 +1399,15 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
 #endif
 		break;
 
+	case NPC_STORMGUST2:
+		if (skill_lv == 1)
+			sc_start(src,bl,SC_FREEZE,10,skill_lv,skill_get_time2(skill_id,skill_lv));
+		else if (skill_lv == 2)
+			sc_start(src,bl,SC_FREEZE,7,skill_lv,skill_get_time2(skill_id,skill_lv));
+		else
+			sc_start(src,bl,SC_FREEZE,3,skill_lv,skill_get_time2(skill_id,skill_lv));
+		break;
+
 	case WZ_METEOR:
 		sc_start(src,bl,SC_STUN,3*skill_lv,skill_lv,skill_get_time2(skill_id,skill_lv));
 		break;
@@ -1693,6 +1707,12 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
 	case RK_DRAGONBREATH_WATER:
 		sc_start(src,bl,SC_FREEZING,15,skill_lv,skill_get_time(skill_id,skill_lv));
 		break;
+	case NPC_DRAGONBREATH:
+		if (skill_lv > 5)
+			sc_start4(src,bl,SC_FREEZING,50,skill_lv,1000,src->id,0,skill_get_time(skill_id,skill_lv));
+		else
+			sc_start4(src,bl,SC_BURNING,50,skill_lv,1000,src->id,0,skill_get_time(skill_id,skill_lv));
+		break;
 	case AB_ADORAMUS:
 		sc_start(src,bl, SC_ADORAMUS, skill_lv * 4 + (sd ? sd->status.job_level : 50) / 2, skill_lv, skill_get_time2(skill_id, skill_lv));
 		break;
@@ -1781,6 +1801,12 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
 		if ( battle_check_undead(tstatus->race, tstatus->def_ele) || tstatus->race == RC_DEMON )
 			sc_start(src,bl, SC_BLIND, 50, skill_lv, skill_get_time(skill_id,skill_lv));
 		break;
+	case NPC_RAYOFGENESIS:
+		if (skill_lv < 8)
+			sc_start(src,bl, SC_BLIND, 50, skill_lv, skill_get_time(skill_id,skill_lv));
+		else
+			sc_start(src,bl, SC_BLIND, 100, skill_lv, skill_get_time(skill_id,skill_lv));
+		break;
 	case LG_HESPERUSLIT:
 		if( pc_checkskill(sd,LG_PINPOINTATTACK) > 0 && sc && sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 5 )
 			skill_castend_damage_id(src,bl,LG_PINPOINTATTACK,rnd_value(1, pc_checkskill(sd,LG_PINPOINTATTACK)),tick,0);
@@ -1893,6 +1919,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
 	case MH_XENO_SLASHER:
 		sc_start4(src, bl, SC_BLEEDING, skill_lv, skill_lv, src->id, 0, 0, skill_get_time2(skill_id, skill_lv));
 		break;
+	case NPC_MAGMA_ERUPTION:
 	case NC_MAGMA_ERUPTION: // Stun effect from 'slam'
 		sc_start(src, bl, SC_STUN, 90, skill_lv, skill_get_time2(skill_id, skill_lv));
 		break;
@@ -3210,6 +3237,7 @@ void skill_attack_blow(struct block_list *src, struct block_list *dsrc, struct b
 			dir = unit_getdir(target); // Backwards
 			break;
 		// This ensures the storm randomly pushes instead of exactly a cell backwards per official mechanics.
+		case NPC_STORMGUST2:
 		case WZ_STORMGUST:
 			if(!battle_config.stormgust_knockback)
 				dir = rnd()%8;
@@ -3753,6 +3781,11 @@ int64 skill_attack (int attack_type, struct block_list* src, struct block_list *
 			rate = rate + (status_get_lv(src) - status_get_lv(bl));
 			if(rnd()%100 < rate)
 				skill_addtimerskill(src,tick + 800,bl->id,0,0,skill_id,skill_lv,0,flag);
+		} else if( skill_id == NPC_FATALMENACE ) {
+			int16 x = skill_area_temp[4], y = skill_area_temp[5];
+
+			map_search_freecell(nullptr, bl->m, &x, &y, 2, 2, 1);
+			skill_addtimerskill(bl,tick + 800,bl->id,x,y,skill_id,skill_lv,0,flag);
 		}
 	}
 
@@ -4170,7 +4203,7 @@ static TIMER_FUNC(skill_timerskill){
 			break; // Source not on Map
 		if(skl->target_id) {
 			target = map_id2bl(skl->target_id);
-			if( ( skl->skill_id == RG_INTIMIDATE ) && (!target || target->prev == NULL || !check_distance_bl(src,target,AREA_SIZE)) )
+			if( ( skl->skill_id == RG_INTIMIDATE || skl->skill_id == NPC_FATALMENACE ) && (!target || target->prev == NULL || !check_distance_bl(src,target,AREA_SIZE)) )
 				target = src; //Required since it has to warp.
 
 			if (skl->skill_id == SR_SKYNETBLOW) {
@@ -4199,6 +4232,7 @@ static TIMER_FUNC(skill_timerskill){
 					case SR_DRAGONCOMBO:
 					case SR_FALLENEMPIRE:
 					case SR_TIGERCANNON:
+					case NPC_DANCINGBLADE_ATK:
 						if (src->type != BL_PC)
 							continue;
 						break; // Exceptions
@@ -4275,6 +4309,15 @@ static TIMER_FUNC(skill_timerskill){
 						}
 					}
 					break;
+				case NPC_DANCINGBLADE_ATK:
+					skill_attack(BF_WEAPON,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
+					if (skl->type < 4) {
+						struct block_list *nbl = NULL;
+
+						nbl = battle_getenemyarea(src, target->x, target->y, 5, splash_target(src), src->id);
+						skill_addtimerskill(src, tick + 650, (nbl?nbl:target)->id, skl->x, 0, NPC_DANCINGBLADE_ATK, skl->skill_lv, skl->type + 1, 0);
+					}
+					break;
 				case WL_CHAINLIGHTNING_ATK: {
 #ifndef RENEWAL
 						skill_toggle_magicpower(src, skl->skill_id); // Only the first hit will be amplified
@@ -4321,6 +4364,9 @@ static TIMER_FUNC(skill_timerskill){
 				case NPC_REVERBERATION_ATK:
 					skill_castend_damage_id(src,target,skl->skill_id,skl->skill_lv,tick,skl->flag|SD_LEVEL|SD_ANIMATION);
 					break;
+				case NPC_FATALMENACE:
+					unit_warp(src, -1, skl->x, skl->y, CLR_TELEPORT);
+					break;
 				case SR_WINDMILL:
 					if( target->type == BL_PC ) {
 						struct map_session_data *tsd = NULL;
@@ -4367,6 +4413,9 @@ static TIMER_FUNC(skill_timerskill){
 						}
 					}
 					break;
+				case NPC_PULSESTRIKE2:
+					skill_castend_damage_id(src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
+					break;
 				default:
 					skill_attack(skl->type,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
 					break;
@@ -4393,6 +4442,7 @@ static TIMER_FUNC(skill_timerskill){
 						skill_unitsetting(src,skl->skill_id,skl->skill_lv,skl->x,skl->y,0);
 					}
 					break;
+				case NPC_MAGMA_ERUPTION:
 				case NC_MAGMA_ERUPTION:
 					skill_unitsetting(src,skl->skill_id,skl->skill_lv,skl->x,skl->y,0);
 					break;
@@ -4800,6 +4850,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 	case NC_PILEBUNKER:
 	case NC_AXEBOOMERANG:
 	case NC_POWERSWING:
+	case NPC_MAGMA_ERUPTION:
 	case NC_MAGMA_ERUPTION:
 	case GC_WEAPONCRUSH:
 	case GC_VENOMPRESSURE:
@@ -5082,6 +5133,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 	case ASC_METEORASSAULT:
 	case GS_SPREADATTACK:
 	case NPC_PULSESTRIKE:
+	case NPC_PULSESTRIKE2:
 	case NPC_HELLJUDGEMENT:
 	case NPC_VAMPIRE_GIFT:
 	case NPC_MAXPAIN_ATK:
@@ -5108,6 +5160,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 	case LG_OVERBRAND:
 	case LG_MOONSLASHER:
 	case LG_RAYOFGENESIS:
+	case NPC_RAYOFGENESIS:
 	case LG_EARTHDRIVE:
 	case SR_RAMPAGEBLASTER:
 	case SR_SKYNETBLOW:
@@ -5558,6 +5611,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 #endif
 	case RK_DRAGONBREATH_WATER:
 	case RK_DRAGONBREATH:
+	case NPC_DRAGONBREATH:
 		if( tsc && tsc->data[SC_HIDING] )
 			clif_skill_nodamage(src,src,skill_id,skill_lv,1);
 		else {
@@ -5942,6 +5996,22 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 			clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skill_id,skill_lv,DMG_SINGLE);
 		}
 		break;
+	
+	case NPC_FATALMENACE:	// todo should it teleport the target ?
+		if( flag&1 )
+			skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
+		else {
+			short x, y;
+			map_search_freecell(src, 0, &x, &y, -1, -1, 0);
+			// Destination area
+			skill_area_temp[4] = x;
+			skill_area_temp[5] = y;
+			map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), splash_target(src), src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_damage_id);
+			skill_addtimerskill(src,tick + 800,src->id,x,y,skill_id,skill_lv,0,flag); // To teleport Self
+			clif_skill_damage(src,src,tick,status_get_amotion(src),0,-30000,1,skill_id,skill_lv,DMG_SINGLE);
+		}
+		break;
+	
 	case LG_PINPOINTATTACK:
 		if (skill_check_unit_movepos(5, src, bl->x, bl->y, 1, 1))
 			clif_blown(src);
@@ -6305,6 +6375,11 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 		}
 		break;
 
+	case NPC_VENOMIMPRESS:
+		if (skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag))
+			sc_start(src, bl, SC_VENOMIMPRESS, 100, skill_lv, skill_get_time(skill_id,skill_lv));
+		break;
+
 	default:
 		ShowWarning("skill_castend_damage_id: Unknown skill used:%d\n",skill_id);
 		clif_skill_damage(src, bl, tick, status_get_amotion(src), tstatus->dmotion,
@@ -7500,6 +7575,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 	case SR_HOWLINGOFLION:
 	case LG_CANNONSPEAR:
 	case LG_OVERBRAND:
+	case NPC_RAYOFGENESIS:
 	case LG_RAYOFGENESIS:
 	case KO_HAPPOKUNAI:
 	case RL_FIREDANCE:
@@ -9752,6 +9828,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
  		}
  		break;
 
+	case NPC_MILLENNIUMSHIELD:
+		if (sc_start(src, bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)))
+			clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
+ 		break;
+
 	case RK_FIGHTINGSPIRIT: {
 			uint8 runemastery_skill_lv = (sd ? pc_checkskill(sd, RK_RUNEMASTERY) : skill_get_max(RK_RUNEMASTERY));
 
@@ -9892,6 +9973,25 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 			party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id);
 		break;
 
+	case NPC_CHEAL:
+		if( flag&1 ) {
+			if( tstatus && !battle_check_undead(tstatus->race, tstatus->def_ele) && !tsc->data[SC_BERSERK] ) {
+				i = skill_calc_heal(src, bl, AL_HEAL, 10, true);
+				if (status_isimmune(bl))
+					i = 0;
+				clif_skill_nodamage(src, bl, skill_id, i, 1);
+				if( tsc && tsc->data[SC_AKAITSUKI] && i )
+					i = ~i + 1;
+				status_heal(bl, i, 0, 0);
+			}
+		}
+		else {
+			map_foreachinallrange(skill_area_sub, src, skill_get_splash(skill_id, skill_lv), BL_MOB,
+				src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id);
+			clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
+		}
+		break;
+
 	case AB_ORATIO:
 		if( flag&1 )
 			sc_start(src,bl, type, 40 + 5 * skill_lv, skill_lv, skill_get_time(skill_id, skill_lv));
@@ -10084,6 +10184,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		}
 		break;
 
+	case NPC_DANCINGBLADE:
+		skill_addtimerskill(src, tick + status_get_amotion(src), bl->id, 0, 0, NPC_DANCINGBLADE_ATK, skill_lv, 0, 0);
+		break;
+
 	case WL_CHAINLIGHTNING:
 		skill_addtimerskill(src, tick + status_get_amotion(src), bl->id, 0, 0, WL_CHAINLIGHTNING_ATK, skill_lv, 0, 0);
 		break;
@@ -10479,6 +10583,28 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		}
 		break;
 
+	case NPC_SR_CURSEDCIRCLE:
+		if( flag&1 ) {
+			if( status_get_class_(bl) == CLASS_BOSS )
+				break;
+			if( sc_start2(src,bl, type, 50, skill_lv, src->id, skill_get_time(skill_id, skill_lv))) {
+				if( bl->type == BL_MOB )
+					mob_unlocktarget((TBL_MOB*)bl,gettick());
+				clif_bladestop(src, bl->id, 1);
+				map_freeblock_unlock();
+				return 1;
+			}
+		} else {
+			int count = 0;
+			clif_skill_damage(src, bl, tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, DMG_SINGLE);
+			count = map_forcountinrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv), (sd)?sd->spiritball_old:15, // Assume 15 spiritballs in non-charactors
+				BL_CHAR, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id);
+			if( sd ) pc_delspiritball(sd, count, 0);
+			clif_skill_nodamage(src, src, skill_id, skill_lv,
+				sc_start2(src,src, SC_CURSEDCIRCLE_ATKER, 50, skill_lv, count, skill_get_time(skill_id,skill_lv)));
+		}
+		break;
+
 	case SR_RAISINGDRAGON:
 		if( sd ) {
 			short max = 5 + skill_lv;
@@ -10911,9 +11037,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		}
 		break;
 
+	case NPC_MANDRAGORA:
 	case GN_MANDRAGORA:
 		if( flag&1 ) {
-			int rate = 25 + (10 * skill_lv) - (tstatus->vit + tstatus->luk) / 5;
+			int rate;
+			if (skill_id == NPC_MANDRAGORA)
+				rate = (20 * skill_lv) - (tstatus->vit + tstatus->luk) / 5;
+			else
+				rate = 25 + (10 * skill_lv) - (tstatus->vit + tstatus->luk) / 5;
 
 			if (rate < 10)
 				rate = 10;
@@ -11511,6 +11642,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 				clif_skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
 		}
 		break;
+
+	case NPC_PULSESTRIKE2:
+		for (int i = 0; i < 3; i++)
+			skill_addtimerskill(src, tick + (t_tick)skill_get_time(skill_id, skill_lv) * i, bl->id, 0, 0, skill_id, skill_lv, skill_get_type(skill_id), flag);
+		break;
+
 	default:
 		ShowWarning("skill_castend_nodamage_id: Unknown skill used:%d\n",skill_id);
 		clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
@@ -11518,7 +11655,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		return 1;
 	}
 
-	if (skill_id != SR_CURSEDCIRCLE) {
+	if (skill_id != SR_CURSEDCIRCLE && skill_id != NPC_SR_CURSEDCIRCLE) {
 		struct status_change *sc = status_get_sc(src);
 
 		if (sc && sc->data[SC_CURSEDCIRCLE_ATKER]) // Should only remove after the skill had been casted.
@@ -12337,6 +12474,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
 	case SC_BLOODYLUST:
 	case WM_POEMOFNETHERWORLD:
 	case SO_PSYCHIC_WAVE:
+	case NPC_PSYCHIC_WAVE:
 	case SO_VACUUM_EXTREME:
 	case GN_THORNS_TRAP:
 	case SO_EARTHGRAVE:
@@ -12354,6 +12492,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
 	case LG_KINGS_GRACE:
 	case SJ_BOOKOFCREATINGSTAR:
 	case RL_B_TRAP:
+	case NPC_STORMGUST2:
 		flag|=1;//Set flag to 1 to prevent deleting ammo (it will be deleted on group-delete).
 	case GS_GROUNDDRIFT: //Ammo should be deleted right away.
 	case GN_WALLOFTHORN:
@@ -12665,6 +12804,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
 	case NC_COLDSLOWER:
 	case RK_DRAGONBREATH:
 	case RK_DRAGONBREATH_WATER:
+	case NPC_DRAGONBREATH:
 	case WL_FROSTMISTY:
 	case RL_HAMMER_OF_GOD:
 		// Cast center might be relevant later (e.g. for knockback direction)
@@ -12927,6 +13067,7 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui
 		}
 		break;
 
+	case NPC_MAGMA_ERUPTION:
 	case NC_MAGMA_ERUPTION:
 		// 1st, AoE 'slam' damage
 		i = skill_get_splash(skill_id, skill_lv);
@@ -14841,6 +14982,10 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, t_t
 
 		case UNT_MAGMA_ERUPTION:
 			skill_attack(skill_get_type(NC_MAGMA_ERUPTION_DOTDAMAGE), ss, &unit->bl, bl, NC_MAGMA_ERUPTION_DOTDAMAGE, sg->skill_lv, tick, 0);
+			if (sg->skill_id == NC_MAGMA_ERUPTION)
+				skill_attack(skill_get_type(NC_MAGMA_ERUPTION_DOTDAMAGE), ss, &unit->bl, bl, NC_MAGMA_ERUPTION_DOTDAMAGE, sg->skill_lv, tick, 0);
+			else
+				skill_attack(skill_get_type(NPC_MAGMA_ERUPTION_DOTDAMAGE), ss, &unit->bl, bl, NPC_MAGMA_ERUPTION_DOTDAMAGE, sg->skill_lv, tick, 0);
 			break;
 	}
 
@@ -17025,6 +17170,7 @@ struct s_skill_condition skill_get_requirement(struct map_session_data* sd, uint
 					req.sp -= req.sp * (5 + 5 * spirit_sympathy) / 100;
 			}
 			break;
+		case NPC_PSYCHIC_WAVE:
 		case SO_PSYCHIC_WAVE:
 			if( sc && (sc->data[SC_HEATER_OPTION] || sc->data[SC_COOLER_OPTION] || sc->data[SC_CURSED_SOIL_OPTION] || sc->data[SC_BLAST_OPTION]) )
 				req.sp += req.sp / 2; // 1.5x SP cost

+ 7 - 1
src/map/status.cpp

@@ -1038,8 +1038,10 @@ void initChangeTables(void)
 	set_sc( NPC_WIDEHELLDIGNITY	, SC_HELLPOWER		, EFST_HELLPOWER		, SCB_NONE );
 	set_sc( NPC_INVINCIBLE		, SC_INVINCIBLE		, EFST_INVINCIBLE		, SCB_SPEED );
 	set_sc( NPC_INVINCIBLEOFF	, SC_INVINCIBLEOFF	, EFST_BLANK		, SCB_SPEED );
+	add_sc( NPC_MILLENNIUMSHIELD	, SC_MILLENNIUMSHIELD		  );
 	set_sc( NPC_COMET			, SC_BURNING		, EFST_BURNT		, SCB_MDEF );
 	set_sc_with_vfx( NPC_MAXPAIN	,	 SC_MAXPAIN	, EFST_MAXPAIN	, SCB_NONE );
+	add_sc( NPC_STORMGUST2		, SC_FREEZE		);
 	add_sc( NPC_JACKFROST        , SC_FREEZE		  );
 	add_sc( NPC_ELECTRICWALK	, SC_PROPERTYWALK		);
 	add_sc( NPC_FIREWALK		, SC_PROPERTYWALK		);
@@ -1047,6 +1049,10 @@ void initChangeTables(void)
 	set_sc( NPC_HALLUCINATIONWALK	, SC_NPC_HALLUCINATIONWALK	, EFST_NPC_HALLUCINATIONWALK	, SCB_FLEE );
 	set_sc( NPC_WIDEWEB           , SC_WIDEWEB           , EFST_WIDEWEB               , SCB_FLEE );
 	set_sc_with_vfx( NPC_FIRESTORM, SC_BURNT             , EFST_BURNT                 , SCB_NONE );
+	add_sc( NPC_SR_CURSEDCIRCLE	, SC_CURSEDCIRCLE_TARGET		);
+	add_sc( NPC_MAGMA_ERUPTION	, SC_STUN			);
+	// add_sc( NPC_MAGMA_ERUPTION_DOTDAMAGE, SC_BURNING	);	// No data. Hidden status ?
+	set_sc( NPC_MANDRAGORA			, SC_MANDRAGORA		, EFST_MANDRAGORA			, SCB_INT );
 
 	set_sc( CASH_BLESSING		, SC_BLESSING		, EFST_BLESSING		, SCB_STR|SCB_INT|SCB_DEX );
 	set_sc( CASH_INCAGI		, SC_INCREASEAGI	, EFST_INC_AGI, SCB_AGI|SCB_SPEED );
@@ -2900,7 +2906,7 @@ bool status_check_skilluse(struct block_list *src, struct block_list *target, ui
 			return false;
 		if(!skill_id && tsc->data[SC_TRICKDEAD])
 			return false;
-		if((skill_id == WZ_STORMGUST || skill_id == WZ_FROSTNOVA || skill_id == NJ_HYOUSYOURAKU)
+		if((skill_id == WZ_STORMGUST || skill_id == WZ_FROSTNOVA || skill_id == NJ_HYOUSYOURAKU || skill_id == NPC_STORMGUST2)
 			&& tsc->data[SC_FREEZE])
 			return false;
 		if(skill_id == PR_LEXAETERNA && (tsc->data[SC_FREEZE] || (tsc->data[SC_STONE] && tsc->opt1 == OPT1_STONE)))