summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-07-05 16:05:59 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-07-05 16:05:59 +0000
commite6d6ac529697433258a6bfa4d8819b371dfd85cb (patch)
treebcaadbcfc7339e304cf7165999aff2fb7befa5ca
parentc4da477460bb8efa6ff288d999692c17833dd5f3 (diff)
downloadhercules-e6d6ac529697433258a6bfa4d8819b371dfd85cb.tar.gz
hercules-e6d6ac529697433258a6bfa4d8819b371dfd85cb.tar.bz2
hercules-e6d6ac529697433258a6bfa4d8819b371dfd85cb.tar.xz
hercules-e6d6ac529697433258a6bfa4d8819b371dfd85cb.zip
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7538 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--Changelog-Trunk.txt8
-rw-r--r--db/skill_cast_db.txt8
-rw-r--r--db/skill_db.txt2
-rw-r--r--db/skill_unit_db.txt128
-rw-r--r--src/map/skill.c169
5 files changed, 150 insertions, 165 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 27a3b9677..053c85662 100644
--- a/Changelog-Trunk.txt
+++ b/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.
diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt
index 922d474e7..77d3c5058 100644
--- a/db/skill_cast_db.txt
+++ b/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
diff --git a/db/skill_db.txt b/db/skill_db.txt
index 1dc4d49d6..640120899 100644
--- a/db/skill_db.txt
+++ b/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#
diff --git a/db/skill_unit_db.txt b/db/skill_unit_db.txt
index f1bcf0083..815cb3554 100644
--- a/db/skill_unit_db.txt
+++ b/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
diff --git a/src/map/skill.c b/src/map/skill.c
index abab719c8..9d45bfd9f 100644
--- a/src/map/skill.c
+++ b/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: /* 遘√r蠢倥l縺ェ縺縺ァ窶ヲ */
- 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)