diff options
-rw-r--r-- | Changelog-Trunk.txt | 8 | ||||
-rw-r--r-- | db/skill_cast_db.txt | 8 | ||||
-rw-r--r-- | db/skill_db.txt | 2 | ||||
-rw-r--r-- | db/skill_unit_db.txt | 128 | ||||
-rw-r--r-- | src/map/skill.c | 169 |
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) |