瀏覽代碼

- Merged some skill db data of NJ skills, thanks to RockmanEXE
- Cleaned up some of the skill logic, so that skills that are casted on self, but have a unit id (an entry in skill_unit_db) will automatically re-route themself from a targetted-no-damage-skill to a ground-skill. When this happens, the effect packet is clif_skill_nodamage rather than clif_skill_poseffect (this is because that's how the dance/songs/encores behave).


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7538 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 19 年之前
父節點
當前提交
1c16abb254
共有 5 個文件被更改,包括 150 次插入165 次删除
  1. 8 0
      Changelog-Trunk.txt
  2. 4 4
      db/skill_cast_db.txt
  3. 1 1
      db/skill_db.txt
  4. 64 64
      db/skill_unit_db.txt
  5. 73 96
      src/map/skill.c

+ 8 - 0
Changelog-Trunk.txt

@@ -4,6 +4,14 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/07/05
+	* Merged some skill db data of NJ skills, thanks to RockmanEXE [Skotlex]
+	* Cleaned up some of the skill logic, so that skills that are casted on
+	  self, but have a unit id (an entry in skill_unit_db) will automatically
+	  re-route themself from a targetted-no-damage-skill to a ground-skill. When
+	  this happens, the effect packet is clif_skill_nodamage rather than
+	  clif_skill_poseffect (this is because that's how the dance/songs/encores
+	  behave). The repercussion this will have on Grandcross and the
+	  self-targetted Ninja skills have yet to be tested. [Skotlex]
 	* Updated  @refine to take account of MAX_REFINE, thanks to Omega... GM
 	  Designer. [Skotlex]
 	- Also optimized the @refine loop for better performance.

+ 4 - 4
db/skill_cast_db.txt

@@ -897,19 +897,19 @@
 532,0,0,0,60000:80000:100000:120000:140000:160000:180000:200000:220000:240000,0
 
 //-- NJ_KOUENKA
-534,0,0,0,0,0
+534,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,0,0,0,0
 //-- NJ_KAENSIN
 535,0,0,0,20000,0
 //-- NJ_BAKUENRYU
 536,0,0,0,0,0
 //-- NJ_HYOUSENSOU
-537,0,0,0,0,0
+537,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,0,0,0,0
 //-- NJ_SUITON
-538,0,0,0,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000,0
+538,3300:3200:3100:3000:2900:2800:2700:2600:2500:2400:2300,0,0,15000:20000:25000:30000:35000:40000:45000:50000:55000:60000,0
 //-- NJ_HYOUSYOURAKU
 539,0,0,0,0,10000
 //-- NJ_HUUJIN
-540,0,0,0,0,0
+540,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,0,0,0,0
 //-- NJ_RAIGEKISAI
 541,0,0,0,0,0
 //-- NJ_KAMAITACHI

+ 1 - 1
db/skill_db.txt

@@ -559,7 +559,7 @@
 535,0,8,4,3,0,2,10,5:5:6:6:7:7:8:8:9:9,no,0,0,0,magic,0	//NJ_KAENSIN#NJ_KAENSIN#
 536,9,8,1,3,1,2,5,3,no,0,0,0,magic,0	//NJ_BAKUENRYU#NJ_BAKUENRYU#
 537,9,8,1,1,0,0,10,1:2:3:4:5:6:7:7:7:7,no,0,0,0,magic,0	//NJ_HYOUSENSOU#NJ_HYOUSENSOU#
-538,2,6,2,0,1,0,10,1,no,0,0,0,magic,0	//NJ_SUITON#NJ_SUITON#
+538,9,6,2,0,1,0,10,1,no,0,0,0,magic,0	//NJ_SUITON#NJ_SUITON#
 539,0,6,4,1,0,3,5,1,no,0,0,0,magic,0	//NJ_HYOUSYOURAKU#NJ_HYOUSYOURAKU#
 540,9,8,1,4,0,0,10,1:2:2:3:3:4:4:5:5:6,no,0,0,0,magic,0	//NJ_HUUJIN#NJ_HUUJIN#
 541,0,6,4,0,1,0,5,1,no,0,0,0,magic,0	//NJ_RAIGEKISAI#NJ_RAIGEKISAI#

+ 64 - 64
db/skill_unit_db.txt

@@ -23,64 +23,64 @@
 //    u1   u2 lay  r intr target  flag
 //
 
- 12,0x7e,    ,  0, 0,  -1,all,   0x003	//MG_SAFETYWALL#セイフティウォール
- 18,0x7f,    , -1, 0,   1,enemy, 0x008	//MG_FIREWALL#ファイアーウォール
- 21,0x86,    ,  0, 2,1000,enemy, 0x008	//MG_THUNDERSTORM#サンダーストーム
- 25,0x85,    ,  1, 0,  -1,all,   0x003	//AL_PNEUMA#ニューマ
- 27,0x81,0x80,  0, 0,  -1,all,   0x006	//AL_WARP#ワープポータル
+ 12,0x7e,    ,  0, 0,  -1,all,   0x003	//MG_SAFETYWALL
+ 18,0x7f,    , -1, 0,   1,enemy, 0x008	//MG_FIREWALL
+ 21,0x86,    ,  0, 2,1000,enemy, 0x008	//MG_THUNDERSTORM
+ 25,0x85,    ,  1, 0,  -1,all,   0x003	//AL_PNEUMA
+ 27,0x81,0x80,  0, 0,  -1,all,   0x006	//AL_WARP
  47,0x86,    ,  0, 2,1000,enemy, 0x080	//AC_SHOWER
- 70,0x83,    , -1, 1,1000,all,   0x008	//PR_SANCTUARY#サンクチュアリ
- 79,0x84,    , -1, 1,3000,enemy, 0x008	//PR_MAGNUS#マグヌスエクソシズム
- 80,0x87,0x88,  0, 1,2000,enemy, 0x002	//WZ_FIREPILLAR#ファイアーピラー
- 83,0x86,    ,  0, 3,1000,enemy, 0x000	//WZ_METEOR#メテオストーム
- 85,0x86,    ,  0,6:6:6:6:6:6:6:6:6:6:8,1250,enemy, 0x008	//WZ_VERMILION#ロードオブヴァーミリオン
- 87,0x8d,    , -1, 0,  -1,all,   0x000	//WZ_ICEWALL#アイスウォール
- 88,0x86,    ,  0, 2,1000,enemy, 0x000	//WZ_FROSTNOVA#フロストノヴァ
- 89,0x86,    ,  0, 5, 450,enemy, 0x008	//WZ_STORMGUST#ストームガスト
- 91,0x86,    ,  0, 2,1000,enemy, 0x080	//WZ_HEAVENDRIVE#ヘヴンズドライブ
- 92,0x8e,    ,  2, 0,  -1,enemy, 0x000	//WZ_QUAGMIRE#クァグマイア
-115,0x90,    ,  0, 1,1000,enemy, 0x006	//HT_SKIDTRAP#スキッドトラップ
-116,0x93,    ,  0, 1,1000,enemy, 0x006	//HT_LANDMINE#ランドマイン
-117,0x91,    ,  0, 1,1000,enemy, 0x006	//HT_ANKLESNARE#アンクルスネア
-118,0x94,    ,  0, 1,1000,enemy, 0x006	//HT_SHOCKWAVE#ショックウェーブトラップ
-119,0x95,    ,  0, 1,1000,enemy, 0x006	//HT_SANDMAN#サンドマン
-120,0x96,    ,  0, 1,1000,enemy, 0x006	//HT_FLASHER#フラッシャー
-121,0x97,    ,  0, 1,1000,enemy, 0x006	//HT_FREEZINGTRAP#フリージングトラップ
-122,0x8f,    ,  0, 1,1000,enemy, 0x006	//HT_BLASTMINE#ブラストマイン
-123,0x98,    ,  0, 1,1000,enemy, 0x006	//HT_CLAYMORETRAP#クレイモアトラップ
-125,0x99,    ,  0, 1,1000,all,   0x002	//HT_TALKIEBOX#トーキーボックス
-140,0x92,    , -1, 0,1000,enemy, 0x000	//AS_VENOMDUST#ベナムダスト
-220,0xb0,    ,  0, 0,  -1,all,   0x002	//RG_GRAFFITI#グラフィティ
-229,0xb1,    ,  0, 1,1000,enemy, 0x006	//AM_DEMONSTRATION#デモンストレーション
-254,0x86,    , -1, 0, 400,enemy, 0x000	//CR_GRANDCROSS#グランドクロス
-285,0x9a,    ,  3, 0,  -1,all,   0x000	//SA_VOLCANO#ボルケーノ
-286,0x9b,    ,  3, 0,  -1,all,   0x000	//SA_DELUGE#デリュージ
-287,0x9c,    ,  3, 0,  -1,all,   0x000	//SA_VIOLENTGALE#バイオレントゲイル
-288,0x9d,,3:3:4:4:5,0, -1,all,   0x000	//SA_LANDPROTECTOR#ランドプロテクター
-306,0x9e,    ,  4, 0,6000,all,   0x200	//BD_LULLABY#子守歌
-307,0x9f,    ,  4, 0,  -1,enemy, 0x210	//BD_RICHMANKIM#ニヨルドの宴
-308,0xa0,    ,  4, 0,  -1,enemy, 0x200	//BD_ETERNALCHAOS#永遠の混沌
-309,0xa1,    ,  4, 0,  -1,party, 0x200	//BD_DRUMBATTLEFIELD#戦太鼓の響き
-310,0xa2,    ,  4, 0,  -1,party, 0x200	//BD_RINGNIBELUNGEN#ニーベルングの指輪
-311,0xa3,    ,  4, 0,  -1,all,   0x200	//BD_ROKISWEIL#ロキの叫び
-312,0xa4,    ,  4, 0,  -1,party, 0x220	//BD_INTOABYSS#深淵の中に
-313,0xa5,    ,  4, 0,  -1,party, 0x200	//BD_SIEGFRIED#不死身のジークフリード
-317,0xa6,    ,  3, 0,3000,enemy, 0x400	//BA_DISSONANCE#不協和音
-319,0xa7,    ,  3, 0,  -1,all,   0x420	//BA_WHISTLE#口笛
-320,0xa8,    ,  3, 0,  -1,all,   0x420	//BA_ASSASSINCROSS#夕陽のアサシンクロス
-321,0xa9,    ,  3, 0,  -1,all,   0x420	//BA_POEMBRAGI#ブラギの詩
-322,0xaa,    ,  3, 0,6000,all,   0xC20	//BA_APPLEIDUN#イドゥンの林檎
-325,0xab,    ,  3, 0,3000,enemy, 0x100	//DC_UGLYDANCE#自分勝手なダンス
-327,0xac,    ,  3, 0,  -1,all,   0x120	//DC_HUMMING#ハミング
-328,0xad,    ,  3, 0,  -1,enemy, 0x100	//DC_DONTFORGETME#私を忘れないで…
-329,0xae,    ,  3, 0,  -1,all,   0x120	//DC_FORTUNEKISS#幸運のキス
-330,0xaf,    ,  3, 0,  -1,party, 0x100	//DC_SERVICEFORYOU#サービスフォーユー
-336,0xb2,    ,  0,-1,  -1,noone, 0x000	//WE_CALLPARTNER#あなたに逢いたい
-339,0x86,    , -1, 0, 400,enemy, 0x000	//NPC_DARKGRANDCROSS#闇グランドクロス
-362,0xb4,    ,  0, 3,  -1,all,   0x000	//HP_BASILICA#バジリカ
-369,0xb3,    , -1, 0,10000,all,  0x000	//PA_GOSPEL#ゴスペル
-404,0xb6,    , -1, 0,  -1,all,   0x000	//PF_FOGWALL#フォグウォール
-405,0xb7,    ,  0, 1,1000,enemy, 0x000	//PF_SPIDERWEB#スパイダーウェッブ
+ 70,0x83,    , -1, 1,1000,all,   0x008	//PR_SANCTUARY
+ 79,0x84,    , -1, 1,3000,enemy, 0x008	//PR_MAGNUS
+ 80,0x87,0x88,  0, 1,2000,enemy, 0x002	//WZ_FIREPILLAR
+ 83,0x86,    ,  0, 3,1000,enemy, 0x000	//WZ_METEOR
+ 85,0x86,,0,6:6:6:6:6:6:6:6:6:6:8,1250,enemy,0x008	//WZ_VERMILION
+ 87,0x8d,    , -1, 0,  -1,all,   0x000	//WZ_ICEWALL
+ 88,0x86,    ,  0, 2,1000,enemy, 0x000	//WZ_FROSTNOVA
+ 89,0x86,    ,  0, 5, 450,enemy, 0x008	//WZ_STORMGUST
+ 91,0x86,    ,  0, 2,1000,enemy, 0x080	//WZ_HEAVENDRIVE
+ 92,0x8e,    ,  2, 0,  -1,enemy, 0x000	//WZ_QUAGMIRE
+115,0x90,    ,  0, 1,1000,enemy, 0x006	//HT_SKIDTRAP
+116,0x93,    ,  0, 1,1000,enemy, 0x006	//HT_LANDMINE
+117,0x91,    ,  0, 1,1000,enemy, 0x006	//HT_ANKLESNARE
+118,0x94,    ,  0, 1,1000,enemy, 0x006	//HT_SHOCKWAVE
+119,0x95,    ,  0, 1,1000,enemy, 0x006	//HT_SANDMAN
+120,0x96,    ,  0, 1,1000,enemy, 0x006	//HT_FLASHER
+121,0x97,    ,  0, 1,1000,enemy, 0x006	//HT_FREEZINGTRAP
+122,0x8f,    ,  0, 1,1000,enemy, 0x006	//HT_BLASTMINE
+123,0x98,    ,  0, 1,1000,enemy, 0x006	//HT_CLAYMORETRAP
+125,0x99,    ,  0, 1,1000,all,   0x002	//HT_TALKIEBOX
+140,0x92,    , -1, 0,1000,enemy, 0x000	//AS_VENOMDUST
+220,0xb0,    ,  0, 0,  -1,all,   0x002	//RG_GRAFFITI
+229,0xb1,    ,  0, 1,1000,enemy, 0x006	//AM_DEMONSTRATION
+254,0x86,    , -1, 0, 400,enemy, 0x000	//CR_GRANDCROSS
+285,0x9a,    ,  3, 0,  -1,all,   0x000	//SA_VOLCANO
+286,0x9b,    ,  3, 0,  -1,all,   0x000	//SA_DELUGE
+287,0x9c,    ,  3, 0,  -1,all,   0x000	//SA_VIOLENTGALE
+288,0x9d,,3:3:4:4:5,0, -1,all,   0x000	//SA_LANDPROTECTOR
+306,0x9e,    ,  4, 0,6000,all,   0x200	//BD_LULLABY
+307,0x9f,    ,  4, 0,  -1,enemy, 0x210	//BD_RICHMANKIM
+308,0xa0,    ,  4, 0,  -1,enemy, 0x200	//BD_ETERNALCHAOS
+309,0xa1,    ,  4, 0,  -1,party, 0x200	//BD_DRUMBATTLEFIELD
+310,0xa2,    ,  4, 0,  -1,party, 0x200	//BD_RINGNIBELUNGEN
+311,0xa3,    ,  4, 0,  -1,all,   0x200	//BD_ROKISWEIL
+312,0xa4,    ,  4, 0,  -1,party, 0x220	//BD_INTOABYSS
+313,0xa5,    ,  4, 0,  -1,party, 0x200	//BD_SIEGFRIED
+317,0xa6,    ,  3, 0,3000,enemy, 0x400	//BA_DISSONANCE
+319,0xa7,    ,  3, 0,  -1,all,   0x420	//BA_WHISTLE
+320,0xa8,    ,  3, 0,  -1,all,   0x420	//BA_ASSASSINCROSS
+321,0xa9,    ,  3, 0,  -1,all,   0x420	//BA_POEMBRAGI
+322,0xaa,    ,  3, 0,6000,all,   0xC20	//BA_APPLEIDUN
+325,0xab,    ,  3, 0,3000,enemy, 0x100	//DC_UGLYDANCE
+327,0xac,    ,  3, 0,  -1,all,   0x120	//DC_HUMMING
+328,0xad,    ,  3, 0,  -1,enemy, 0x100	//DC_DONTFORGETME
+329,0xae,    ,  3, 0,  -1,all,   0x120	//DC_FORTUNEKISS
+330,0xaf,    ,  3, 0,  -1,party, 0x100	//DC_SERVICEFORYOU
+336,0xb2,    ,  0,-1,  -1,noone, 0x000	//WE_CALLPARTNER
+339,0x86,    , -1, 0, 400,enemy, 0x000	//NPC_DARKGRANDCROSS
+362,0xb4,    ,  0, 3,  -1,all,   0x000	//HP_BASILICA
+369,0xb3,    , -1, 0,10000,all,  0x000	//PA_GOSPEL
+404,0xb6,    , -1, 0,  -1,all,   0x000	//PF_FOGWALL
+405,0xb7,    ,  0, 1,1000,enemy, 0x000	//PF_SPIDERWEB
 409,0xb2,    ,  0,-1,  -1,noone, 0x000	//WE_CALLBABY
 410,0xb2,    ,  0,-1,  -1,noone, 0x000	//WE_CALLPARENT
 428,0x86,    ,  0, 1, 500,enemy, 0x000	//SG_SUN_WARM
@@ -88,10 +88,10 @@
 430,0x86,    ,  0, 1, 500,enemy, 0x000	//SG_STAR_WARM
 484,0xb8,    ,  2, 0,1000,enemy, 0x808	//HW_GRAVITATION
 488,0xb9,    ,  3, 0,  -1,all,   0x200	//CG_HERMODE
-527,0xbc,    , -1, 1,2000,enemy, 0x000	//NJ_TATAMIGAESHI#???_???
-535,0xbd,    ,  2, 0,2000,enemy, 0x000	//NJ_KAENSIN#???(???)
-536,0x86,    ,  2, 0, 300,enemy, 0x000	//NJ_BAKUENRYU#???(???)
-538,0xbb,,1:1:1:2:2:2:3:3:3:4,0, -1,all,0x010	//NJ_SUITON#水遁
-516,0xbc,    ,  0, 3, 100,enemy, 0x000	//GS_DESPERADO#デスペラード
-521,0xc2,    ,  0, 1,1000,enemy, 0x006	//GS_GROUNDDRIFT#グラウンドドリフト
-
+527,0xbc,    , -1, 1,2000,enemy, 0x000	//NJ_TATAMIGAESHI
+535,0xbd,    ,  2, 0,2000,enemy, 0x000	//NJ_KAENSIN
+536,0x86,    ,  2, 0, 300,enemy, 0x000	//NJ_BAKUENRYU
+541,0x86,,0,2:2:3:3:4,1000,enemy,0x000 //NJ_RAIGEKISAI
+538,0xbb,,1:1:1:2:2:2:3:3:3:4,0,-1,all,0x010	//NJ_SUITON
+516,0xbc,    ,  0, 3, 100,enemy, 0x000	//GS_DESPERADO
+521,0xc2,    ,  0, 1,1000,enemy, 0x006	//GS_GROUNDDRIFT

+ 73 - 96
src/map/skill.c

@@ -3051,7 +3051,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
 	case NJ_HYOUSENSOU:
 	case NJ_HYOUSYOURAKU:
 	case NJ_HUUJIN:
-	case NJ_RAIGEKISAI:
 		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
 		break;
 	case NJ_KAMAITACHI:
@@ -3072,7 +3071,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
 	//case NJ_HYOUSENSOU:
 	//case NJ_HYOUSYOURAKU:
 	//case NJ_HUUJIN:
-	//case NJ_RAIGEKISAI:
 	//case NJ_KAMAITACHI:
 	case NJ_ISSEN:
 		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
@@ -3172,14 +3170,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 		case NPC_SMOKING: //Since it is a self skill, this one ends here rather than in damage_id. [Skotlex]
 			return skill_castend_damage_id (src, bl, skillid, skilllv, tick, flag);
 		//These are actually ground placed.
-		case CR_GRANDCROSS:
-		case NPC_GRANDDARKNESS:
-		//Until they're at right position - gs_ground- [Vicious]
-		case GS_DESPERADO:
-		case NJ_KAENSIN:	/*火炎陣*/
-		case NJ_HYOUSYOURAKU:
-		case NJ_RAIGEKISAI:
-			return skill_castend_pos2(src,src->x,src->y,skillid,skilllv,tick,0);
+		case NJ_BAKUENRYU: //Doesn't works on the default because it is enemy-targetted.
+			return skill_castend_pos2(src,bl->x,bl->y,skillid,skilllv,tick,0);
+		default:
+			if (src == bl && skill_get_unit_flag(skillid)) //Skill is actually ground placed.
+				return skill_castend_pos2(src,bl->x,bl->y,skillid,skilllv,tick,0);
 	}
 
 	if (skillid > 0)
@@ -4117,29 +4112,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 			clif_skill_fail(sd,skillid,0,0);
 		break;
 
-	/* 対地スキル */
-	case BD_LULLABY:			/* 子守唄 */
-	case BD_RICHMANKIM:			/* ニヨルドの宴 */
-	case BD_ETERNALCHAOS:		/* 永遠の混沌 */
-	case BD_DRUMBATTLEFIELD:	/* 戦太鼓の響き */
-	case BD_RINGNIBELUNGEN:		/* ニーベルングの指輪 */
-	case BD_ROKISWEIL:			/* ロキの叫び */
-	case BD_INTOABYSS:			/* 深淵の中に */
-	case BD_SIEGFRIED:			/* 不死身のジークフリード */
-	case BA_DISSONANCE:			/* 不協和音 */
-	case BA_POEMBRAGI:			/* ブラギの詩 */
-	case BA_WHISTLE:			/* 口笛 */
-	case BA_ASSASSINCROSS:		/* 夕陽のアサシンクロス */
-	case BA_APPLEIDUN:			/* イドゥンの林檎 */
-	case DC_UGLYDANCE:			/* 自分勝手なダンス */
-	case DC_HUMMING:			/* ハミング */
-	case DC_DONTFORGETME:		/* 私を忘れないで… */
-	case DC_FORTUNEKISS:		/* 幸運のキス */
-	case DC_SERVICEFORYOU:		/* サービスフォーユー */
-		clif_skill_nodamage(src,bl,skillid,skilllv,1);
-		skill_unitsetting(src,skillid,skilllv,src->x,src->y,0);
-		break;
-
 	case HP_BASILICA:			/* バジリカ */
 	case CG_HERMODE:			// Wand of Hermode
 		{
@@ -5471,12 +5443,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 		}
 		break;
 
-	case NJ_BAKUENRYU:   /* ??? */
-		clif_skill_nodamage(src,bl,skillid,skilllv,1);
-		skill_unitsetting(src,skillid,skilllv,bl->x,bl->y,0);
-		flag|=1;
-		break;
-
 	default:
 		ShowWarning("skill_castend_nodamage_id: Unknown skill used:%d\n",skillid);
 		map_freeblock_unlock();
@@ -5790,15 +5756,21 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
 	sc = status_get_sc(src); //Needed for Magic Power checks.
 	if (sc && !sc->count)
 		sc = NULL; //Unneeded.
-	
-	if(skillid != WZ_METEOR &&
-		skillid != MO_BODYRELOCATION &&
-		skillid != CR_CULTIVATION)
-		clif_skill_poseffect(src,skillid,skilllv,x,y,tick);
 
+	switch (skillid) { //Skill effect.
+		case WZ_METEOR:
+		case MO_BODYRELOCATION:
+		case CR_CULTIVATION:
+			break; //Effect is displayed on respective switch case.
+		default:
+			if(skill_get_inf(skillid)&INF_SELF_SKILL)
+				clif_skill_nodamage(src,src,skillid,skilllv,1);
+			else
+				clif_skill_poseffect(src,skillid,skilllv,x,y,tick);
+	}
 	switch(skillid)
 	{
-	case PR_BENEDICTIO:			/* 聖体降福 */
+	case PR_BENEDICTIO:
 		skill_area_temp[1] = src->id;
 		i = skill_get_splash(skillid, skilllv);
 		map_foreachinarea(skill_area_sub, 
@@ -5819,7 +5791,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
 			skill_castend_nodamage_id);
 		break;
 
-	case HT_DETECTING:				/* ディテクティング */
+	case HT_DETECTING:
 		i = skill_get_splash(skillid, skilllv);
 		map_foreachinarea( status_change_timer_sub,
 			src->m, x-i, y-i, x+i,y+i,BL_CHAR,
@@ -5829,39 +5801,66 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
 			src->m, x-i, y-i, x+i,y+i,BL_SKILL);
 		break;
 
-	case MG_SAFETYWALL:			/* セイフティウォール */
-	case MG_FIREWALL:			/* ファイヤーウォール */
-	case MG_THUNDERSTORM:		/* サンダーストーム */
-	case AL_PNEUMA:				/* ニューマ */
-	case WZ_ICEWALL:			/* アイスウォール */
-	case WZ_FIREPILLAR:			/* ファイアピラー */
-	case WZ_QUAGMIRE:			/* クァグマイア */
-	case WZ_VERMILION:			/* ロードオブヴァーミリオン */
-	case WZ_STORMGUST:			/* ストームガスト */
-	case WZ_HEAVENDRIVE:		/* ヘヴンズドライブ */
-	case PR_SANCTUARY:			/* サンクチュアリ */
-	case PR_MAGNUS:				/* マグヌスエクソシズム */
-	case CR_GRANDCROSS:			/* グランドクロス */
-	case NPC_GRANDDARKNESS:		/*闇グランドクロス*/
-	case HT_SKIDTRAP:			/* スキッドトラップ */
-	case HT_LANDMINE:			/* ランドマイン */
-	case HT_ANKLESNARE:			/* アンクルスネア */
-	case HT_SHOCKWAVE:			/* ショックウェーブトラップ */
-	case HT_SANDMAN:			/* サンドマン */
-	case HT_FLASHER:			/* フラッシャー */
-	case HT_FREEZINGTRAP:		/* フリージングトラップ */
-	case HT_BLASTMINE:			/* ブラストマイン */
-	case HT_CLAYMORETRAP:		/* クレイモアートラップ */
-	case AS_VENOMDUST:			/* ベノムダスト */
-	case AM_DEMONSTRATION:			/* デモンストレーション */
-	case PF_FOGWALL:			/* フォグウォール */
-	case PF_SPIDERWEB:			/* スパイダーウェッブ */
-	case HT_TALKIEBOX:			/* トーキーボックス */
+	case MG_SAFETYWALL:
+	case MG_FIREWALL:	
+	case MG_THUNDERSTORM:
+	case AL_PNEUMA:
+	case WZ_ICEWALL:
+	case WZ_FIREPILLAR:
+	case WZ_QUAGMIRE:
+	case WZ_VERMILION:
+	case WZ_STORMGUST:
+	case WZ_HEAVENDRIVE:
+	case PR_SANCTUARY:
+	case PR_MAGNUS:
+	case CR_GRANDCROSS:
+	case NPC_GRANDDARKNESS:
+	case HT_SKIDTRAP:
+	case HT_LANDMINE:
+	case HT_ANKLESNARE:
+	case HT_SHOCKWAVE:
+	case HT_SANDMAN:
+	case HT_FLASHER:
+	case HT_FREEZINGTRAP:
+	case HT_BLASTMINE:
+	case HT_CLAYMORETRAP:
+	case AS_VENOMDUST:
+	case AM_DEMONSTRATION:
+	case PF_FOGWALL:
+	case PF_SPIDERWEB:
+	case HT_TALKIEBOX:
 	case WE_CALLPARTNER:
 	case WE_CALLPARENT:
 	case WE_CALLBABY:
 	case AC_SHOWER:	//Ground-placed skill implementation.
+	case SA_VOLCANO:
+	case SA_DELUGE:
+	case SA_VIOLENTGALE:
+	case SA_LANDPROTECTOR:
+	case BD_LULLABY:
+	case BD_RICHMANKIM:
+	case BD_ETERNALCHAOS:
+	case BD_DRUMBATTLEFIELD:
+	case BD_RINGNIBELUNGEN:
+	case BD_ROKISWEIL:
+	case BD_INTOABYSS:
+	case BD_SIEGFRIED:
+	case BA_DISSONANCE:
+	case BA_POEMBRAGI:
+	case BA_WHISTLE:
+	case BA_ASSASSINCROSS:
+	case BA_APPLEIDUN:
+	case DC_UGLYDANCE:
+	case DC_HUMMING:
+	case DC_DONTFORGETME:
+	case DC_FORTUNEKISS:
+	case DC_SERVICEFORYOU:
 	case GS_DESPERADO:
+	case NJ_SUITON:
+	case NJ_BAKUENRYU:
+	case NJ_KAENSIN:
+	case NJ_HYOUSYOURAKU:
+	case NJ_RAIGEKISAI:
 		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.
 		skill_unitsetting(src,skillid,skilllv,x,y,0);
@@ -5876,14 +5875,6 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
 		i = skill_get_splash(skillid, skilllv);
 		map_foreachinarea(skill_graffitiremover,src->m,x-i,y-i,x+i,y+i,BL_SKILL);
 		break;
-	case SA_VOLCANO:		/* ボルケーノ */
-	case SA_DELUGE:			/* デリュージ */
-	case SA_VIOLENTGALE:	/* バイオレントゲイル */
-	case SA_LANDPROTECTOR:	/* ランドプロテクター */
-	case NJ_SUITON:
-		skill_unitsetting(src,skillid,skilllv,x,y,0);
-		flag|=1;
-		break;
 
 	case WZ_METEOR:				//メテオストーム
 		{
@@ -6041,20 +6032,6 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
 			}
 		}
 		break;
-	
-	//Until they're at right position - gs_unit- [Vicious]
-	case NJ_KAENSIN:
-	case NJ_BAKUENRYU:
-	case NJ_HYOUSYOURAKU:
-		skill_unitsetting(src,skillid,skilllv,x,y,0);
-		flag|=1;
-		break;
-		
-	case NJ_RAIGEKISAI:
-		map_foreachinrange(skill_attack_area, src,
-			skill_get_splash(skillid, skilllv), BL_CHAR,
-			BF_MAGIC, src, src, skillid, skilllv, tick, flag, BCT_ENEMY);
-		break;
 	}
 
 	if (sc && sc->data[SC_MAGICPOWER].timer != -1)