summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog.txt8
-rw-r--r--db/item_db.txt2
-rw-r--r--db/skill_cast_db.txt11
-rw-r--r--db/skill_db.txt18
-rw-r--r--db/skill_tree.txt2
-rw-r--r--src/map/atcommand.c86
-rw-r--r--src/map/skill.c63
-rw-r--r--src/map/skill.h3
8 files changed, 158 insertions, 35 deletions
diff --git a/Changelog.txt b/Changelog.txt
index dc87a7211..a03892315 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -1,6 +1,14 @@
Date Added
12/9
* Adjusted some messages in @marry [MouseJstr]
+ * Skill Updates [celest]
+ - Fixed Auto Spell not working
+ - Fixed skill level check causing Baphomet card not to work at all (possibly
+ other problems too)
+ - Added some new monster skills based on jA mod 1077
+ * Changed @job to accept text job names - For example: @job wizard, @job high
+ priestess, @job super baby [celest]
+
12/8
* Fixed @rings [MouseJstr]
* Added @marry, @divorce, and @rings [MouseJstr]
diff --git a/db/item_db.txt b/db/item_db.txt
index 1e5dc588d..c220d5b48 100644
--- a/db/item_db.txt
+++ b/db/item_db.txt
@@ -1128,7 +1128,7 @@
4126,Minorous_Card,Minorous Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddSize,2,15; bonus bBaseAtk,5; }
4127,Nightmare_Card,Nightmare Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Sleep,10000; bonus bAgi,1; }
4128,Golden_Bug_Card,Golden Bug Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bNoMagicDamage,0; bonus bUseSPrate,100; }
-4129,Baphomet__Card,Baphomet Card,6,20,,10,,,,,,,4,,,,{},{ bonus bHit,-10; bonus bSplashRange,10; }
+4129,Baphomet__Card,Baphomet Jr Card,6,20,,10,,,,,,,4,,,,{},{bonus bAgi,3; bonus bCritical,1; }}
4130,Scorpion_King_Card,Scorpion King Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,9,20; }
4131,Moonlight_Flower_Card,Moonlight Flower Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bSpeedRate,25; }
4132,Mistress_Card,Mistress Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bNoGemStone,0; bonus bUseSPrate,25; }
diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt
index 3ba21845f..d6bfb8606 100644
--- a/db/skill_cast_db.txt
+++ b/db/skill_cast_db.txt
@@ -25,7 +25,7 @@
28,0,1000,0,0 //AL_HEAL#ヒール#
29,1000,1000,60000:80000:100000:120000:140000:160000:180000:200000:220000:240000,0 //AL_INCAGI#速度増加#
30,1000,1000,40000:50000:60000:70000:80000:90000:100000:110000:120000:130000,0 //AL_DECAGI#速度減少#
-31,0,2000,0,0 //AL_HOLYWATER#アクアベネディクタ#
+31,1000,500,0,0 //AL_HOLYWATER#アクアベネディクタ#
32,500,2000,0,0 //AL_CRUCIS#シグナムクルシス#
33,500,3500,30000:60000:90000:120000:150000:180000:210000:240000:270000:300000,0 //AL_ANGELUS#エンジェラス#
34,0,0,60000:80000:100000:120000:140000:160000:180000:200000:220000:240000,0 //AL_BLESSING#ブレッシング#
@@ -174,8 +174,7 @@
276,0,1500,400:600:800:1000:1200,0 //SA_MAGICROD#マジックロッド#
277,700,0,0,0 //SA_SPELLBREAKER#スペルブレイカー#
-//279,3000,0,120000:150000:180000:210000:240000:270000:300000:360000:390000,0 //SA_AUTOSPELL#オートスペル#
-279,3000,0,0,0 //SA_AUTOSPELL#オートスペル#
+279,3000,0,120000:150000:180000:210000:240000:270000:300000:360000:390000,0 //SA_AUTOSPELL#オートスペル#
280,3000,0,1200000,0 //SA_FLAMELAUNCHER#フレイムランチャー#
281,3000,0,1200000,0 //SA_FROSTWEAPON#フロストウェポン#
282,3000,0,1200000,0 //SA_LIGHTNINGLOADER#ライトニングローダー#
@@ -225,15 +224,13 @@
358,0,0,180000,0 //LK_TENSIONRELAX#テンションリラックス#
359,0,0,300000,0 //LK_BERSERK
360,0,0,300000,0 //LK_FURY
-
361,1000:1500:2000:2500:3000,1100:1200:1300:1400:1500,20000:30000:40000:50000:60000,0 //HP_ASSUMPTIO#アスムプティオ#
362,5000:6000:7000:8000:9000,2000:3000:4000:5000:6000,20000:25000:30000:35000:40000,20000:25000:30000:35000:40000 //HP_BASILICA#バジリカ#
365,300,300,0,0 //HW_MAGICCRASHER
-366,700,0,360000,0 //HW_MAGICPOWER#魔法力増幅#
-
+366,700,0,30000,0 //HW_MAGICPOWER#魔法力増幅#
367,2000:2500:3000:3500:4000,2000:3000:4000:5000:6000,0,0 //PA_PRESSURE
-369,0,0,360000,0 //PA_GOSPEL#ゴスペル#
+369,0,0,100000,0 //PA_GOSPEL#ゴスペル#
370,0,300,0,0 //CH_PALMSTRIKE
371,0,0,0,2000:4000:6000:8000:10000 //CH_TIGERFIST#伏虎拳#
372,0,800:800:800:800:800:1000:1000:1000:1000:1000,0,0 //CH_CHAINCRUSH#連柱崩撃#
diff --git a/db/skill_db.txt b/db/skill_db.txt
index 42a9d6ee5..cfdc9ac1b 100644
--- a/db/skill_db.txt
+++ b/db/skill_db.txt
@@ -387,7 +387,23 @@
335,8,6,4,0,1,1,1,yes,0,0,0,magic,0 //WE_FEMALE#あなたに尽くします#
336,8,6,4,0,1,1,1,yes,0,0,1,magic,0 //WE_CALLPARTNER#あなたに逢いたい#
-//338,0,0,0,0,0,0,0,no,0,0,0,none,0 //NPC_DARKCROSS#??ククロス#
+//338 //NPC_DARKCROSS#ダーククロス#
+339,0,6,4,7,0,10,1,no,33,256,0,magic,0 //NPC_DARKGRANDCROSS#闇グランドクロス#
+340,8,8,1,7,0,10,1:1:2:2:3:3:4:4:5:5,yes,0,0,0,magic,0 //NPC_DARKSOULSTRIKE#闇ソウルストライク#
+341,8,8,1,7,0,10,3:4:5:6:7:8:9:10:11:12,yes,0,0,0,magic,2:3:3:4:4:5:5:6:6:7//NPC_DARKJUPITEL#闇ユピテル#
+//342束縛
+//343武器壊し
+//344鎧壊し
+//345兜壊し
+//346盾壊し
+//347不死属性攻撃
+//348攻撃系エフェクト(後退?)
+//349赤爆裂
+//350速度増加エフェクト
+//351攻撃系スキルエフェクト
+//352攻撃系スキルエフェクト
+//353攻撃系スキルエフェクト
+//354攻撃系スキルエフェクト
355,0,6,4,0,1,5,1,no,0,0,0,weapon,0 //LK_AURABLADE#オ?ラブレ?ド#
356,0,6,4,0,1,10,1,no,0,0,0,weapon,0 //LK_PARRYING#パリイング#
diff --git a/db/skill_tree.txt b/db/skill_tree.txt
index 265cddeda..86704eb27 100644
--- a/db/skill_tree.txt
+++ b/db/skill_tree.txt
@@ -895,7 +895,7 @@
4013,376,10,48,5,134,7,0,0,0,0,0,0//ASC_KATAR #基本スキル#
//4013,377,10,49,5,135,5,0,0,0,0,0,0//ASC_HALLUCINATION #基本スキル#
4013,378,10,407,1,0,0,0,0,0,0,0,0//ASC_ENCHANTPOISON #基本スキル#
-4013,379,10,48,5,135,3,138,6,140,5,0,0//ASC_BREAKER #基本スキル#
+4013,379,10,48,5,135,3,138,6,52,5,0,0//ASC_BREAKER #基本スキル#
4013,406,10,132,3,134,5,136,5,379,1,0,0//ASC_METEORASSUALT
4013,407,1,52,10,53,1,138,5,0,0,0,0//ASC_CDP
// Peco Lord Knight
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 503e64e7d..3e6628676 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -1948,8 +1948,90 @@ int atcommand_jobchange(
nullpo_retr(-1, sd);
if (!message || !*message || sscanf(message, "%d %d", &job, &upper) < 1) {
- clif_displaymessage(fd, "Please, enter job ID (usage: @job/@jobchange <job ID>).");
- return -1;
+
+ int i, found = 0;
+ const struct { char name[16]; int id; } jobs[] = {
+ { "novice", 0 },
+ { "swordsman", 1 },
+ { "mage", 2 },
+ { "archer", 3 },
+ { "acolyte", 4 },
+ { "merchant", 5 },
+ { "thief", 6 },
+ { "knight", 7 },
+ { "priest", 8 },
+ { "priestess", 8 },
+ { "wizard", 9 },
+ { "blacksmith", 10 },
+ { "hunter", 11 },
+ { "assassin", 12 },
+ { "crusader", 14 },
+ { "monk", 15 },
+ { "sage", 16 },
+ { "rogue", 17 },
+ { "alchemist", 18 },
+ { "bard", 19 },
+ { "dancer", 20 },
+ { "super novice", 23 },
+ { "supernovice", 23 },
+ { "high novice", 4001 },
+ { "swordsman high", 4002 },
+ { "mage high", 4003 },
+ { "archer high", 4004 },
+ { "acolyte high", 4005 },
+ { "merchant high", 4006 },
+ { "thief high", 4007 },
+ { "lord knight", 4008 },
+ { "high priest", 4009 },
+ { "high priestess", 4009 },
+ { "high wizard", 4010 },
+ { "whitesmith", 4011 },
+ { "sniper", 4012 },
+ { "assassin cross", 4013 },
+ { "paladin", 4015 },
+ { "champion", 4016 },
+ { "professor", 4017 },
+ { "stalker", 4018 },
+ { "creator", 4019 },
+ { "clown", 4020 },
+ { "gypsy", 4021 },
+ { "baby novice", 4023 },
+ { "baby swordsman", 4024 },
+ { "baby mage", 4025 },
+ { "baby archer", 4026 },
+ { "baby acolyte", 4027 },
+ { "baby merchant", 4028 },
+ { "baby thief", 4029 },
+ { "baby knight", 4030 },
+ { "baby priest", 4031 },
+ { "baby priestess", 4031 },
+ { "baby wizard", 4032 },
+ { "baby blacksmith",4033 },
+ { "baby hunter", 4034 },
+ { "baby assassin", 4035 },
+ { "baby crusader", 4037 },
+ { "baby monk", 4038 },
+ { "baby sage", 4039 },
+ { "baby rogue", 4040 },
+ { "baby alchemist", 4041 },
+ { "baby bard", 4042 },
+ { "baby dancer", 4043 },
+ { "super baby", 4045 },
+ };
+
+ for (i=0; i < (int)(sizeof(jobs) / sizeof(jobs[0])); i++) {
+ if (strncmpi(message, jobs[i].name, 16) == 0) {
+ job = jobs[i].id;
+ upper = 0;
+ found = 1;
+ break;
+ }
+ }
+
+ if (!found) {
+ clif_displaymessage(fd, "Please, enter job ID (usage: @job/@jobchange <job ID>).");
+ return -1;
+ }
}
if (job == 37 ||job == 45)
diff --git a/src/map/skill.c b/src/map/skill.c
index 542eb96b4..31464e932 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1,4 +1,4 @@
-// $Id: skill.c,v 1.8 2004/12/7 9:42:00 PM Celestia Exp $
+// $Id: skill.c,v 1.8 2004/12/9 8:14:18 PM Celestia Exp $
/* スキル?係 */
#include <stdio.h>
@@ -920,6 +920,7 @@ int skill_get_unit_id(int id,int flag)
case WZ_FROSTNOVA: return 0x86; /* フロストノヴァ */
case WZ_STORMGUST: return 0x86; /* スト?ムガスト(とりあえずLoVと同じで?理) */
case CR_GRANDCROSS: return 0x86; /* グランドクロス */
+ case NPC_DARKGRANDCROSS: return 0x86; /*闇グランドクロス*/
case WZ_FIREPILLAR: return (flag==0)?0x87:0x88; /* ファイア?ピラ? */
case HT_TALKIEBOX: return 0x99; /* ト?キ?ボックス */
case WZ_ICEWALL: return 0x8d; /* アイスウォ?ル */
@@ -1186,6 +1187,7 @@ int skill_additional_effect( struct block_list* src, struct block_list *bl,int s
break;
case CR_GRANDCROSS: /* グランドクロス */
+ case NPC_DARKGRANDCROSS: /*闇グランドクロス*/
{
int race = battle_get_race(bl);
if( (battle_check_undead(race,battle_get_elem_type(bl)) || race == 6) && rand()%100 < 100000*sc_def_int/100) //?制付?だが完全耐性には無?
@@ -1520,7 +1522,7 @@ int skill_attack( int attack_type, struct block_list* src, struct block_list *ds
struct status_change *sc_data;
int type,lv,damage;
- if(skilllv <= 0) return 0;
+ if(skillid > 0 && skilllv <= 0) return 0;
rdamage = 0;
nullpo_retr(0, src);
@@ -1606,7 +1608,7 @@ int skill_attack( int attack_type, struct block_list* src, struct block_list *ds
if(damage <= 0 || damage < dmg.div_) //吹き飛ばし判定?※
dmg.blewcount = 0;
- if(skillid == CR_GRANDCROSS) {//グランドクロス
+ if(skillid == CR_GRANDCROSS||skillid == NPC_DARKGRANDCROSS) {//グランドクロス
if(battle_config.gx_disptype) dsrc = src; // 敵ダメ?ジ白文字表示
if( src == bl) type = 4; // 反動はダメ?ジモ?ションなし
}
@@ -1983,7 +1985,8 @@ int skill_check_unit_range2(int m,int x,int y,int range)
/* ?象の?をカウントする。(skill_area_temp[0]を初期化しておくこと) */
int skill_area_sub_count(struct block_list *src,struct block_list *target,int skillid,int skilllv,unsigned int tick,int flag)
{
- if(skilllv <= 0) return 0;
+ //if(skilllv <= 0) return 0;
+ if(skillid > 0 && skilllv <= 0) return 0; // celest
if(skill_area_temp[0] < 0xffff)
skill_area_temp[0]++;
return 0;
@@ -2252,7 +2255,7 @@ int skill_castend_damage_id( struct block_list* src, struct block_list *bl,int s
struct status_change *sc_data = battle_get_sc_data(src);
int i;
- if(skilllv <= 0) return 0;
+ if(skillid > 0 && skilllv <= 0) return 0;
nullpo_retr(1, src);
nullpo_retr(1, bl);
@@ -2262,7 +2265,7 @@ int skill_castend_damage_id( struct block_list* src, struct block_list *bl,int s
if(sd && pc_isdead(sd))
return 1;
- if((skillid == WZ_SIGHTRASHER || skillid == CR_GRANDCROSS) && src != bl)
+ if((skillid == WZ_SIGHTRASHER || skillid == CR_GRANDCROSS || skillid == NPC_DARKGRANDCROSS) && src != bl)
bl = src;
if(bl->prev == NULL)
return 1;
@@ -2577,14 +2580,16 @@ int skill_castend_damage_id( struct block_list* src, struct block_list *bl,int s
/* 魔法系スキル */
case MG_SOULSTRIKE: /* ソウルストライク */
- case MG_COLDBOLT: /* コ?ルドボルト */
- case MG_FIREBOLT: /* ファイア?ボルト */
+ case NPC_DARKSOULSTRIKE: /*闇ソウルストライク*/
+ case MG_COLDBOLT: /* コールドボルト */
+ case MG_FIREBOLT: /* ファイアーボルト */
case MG_LIGHTNINGBOLT: /* ライトニングボルト */
- case WZ_EARTHSPIKE: /* ア?ススパイク */
- case AL_HEAL: /* ヒ?ル */
- case AL_HOLYLIGHT: /* ホ?リ?ライト */
- case MG_FROSTDIVER: /* フロストダイバ? */
- case WZ_JUPITEL: /* ユピテルサンダ? */
+ case WZ_EARTHSPIKE: /* アーススパイク */
+ case AL_HEAL: /* ヒール */
+ case AL_HOLYLIGHT: /* ホーリーライト */
+ case MG_FROSTDIVER: /* フロストダイバー */
+ case WZ_JUPITEL: /* ユピテルサンダー */
+ case NPC_DARKJUPITEL: /*闇ユピテル*/
case NPC_MAGICALATTACK: /* MOB:魔法打?攻? */
case PR_ASPERSIO: /* アスペルシオ */
// case HW_NAPALMVULCAN: /* ナパームバルカン */
@@ -2705,6 +2710,7 @@ int skill_castend_damage_id( struct block_list* src, struct block_list *bl,int s
break;
case CR_GRANDCROSS: /* グランドクロス */
+ case NPC_DARKGRANDCROSS: /*闇グランドクロス*/
/* スキルユニット配置 */
skill_castend_pos2(src,bl->x,bl->y,skillid,skilllv,tick,0);
if(sd)
@@ -2832,7 +2838,8 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
,1157,1159,1190,1272,1312,1373,1492};
int poringclass[]={1002};
- if(skilllv <= 0) return 0;
+ //if(skilllv <= 0) return 0;
+ if(skillid > 0 && skilllv <= 0) return 0; // celest
nullpo_retr(1, src);
nullpo_retr(1, bl);
@@ -4327,9 +4334,8 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
case NPC_SUMMONSLAVE: /* 手下召喚 */
case NPC_SUMMONMONSTER: /* MOB召喚 */
- if(md && !md->master_id){
+ if(md)
mob_summonslave(md,mob_db[md->class].skill[md->skillidx].val,skilllv,(skillid==NPC_SUMMONSLAVE)?1:0);
- }
break;
case NPC_TRANSFORMATION:
@@ -4850,7 +4856,8 @@ int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skil
struct map_session_data *sd=NULL;
int i,tmpx = 0,tmpy = 0, x1 = 0, y1 = 0;
- if(skilllv <= 0) return 0;
+ //if(skilllv <= 0) return 0;
+ if(skillid > 0 && skilllv <= 0) return 0; // celest
nullpo_retr(0, src);
@@ -4893,8 +4900,12 @@ int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skil
case HT_DETECTING: /* ディテクティング */
{
const int range=7;
+ if(src->x!=x)
+ x+=(src->x-x>0)?-range:range;
+ if(src->y!=y)
+ y+=(src->y-y>0)?-range:range;
map_foreachinarea( skill_status_change_timer_sub,
- src->m, src->x-range, src->y-range, src->x+range,src->y+range,0,
+ src->m, x-range, y-range, x+range,y+range,0,
src,SC_SIGHT,tick);
}
break;
@@ -4914,6 +4925,7 @@ int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skil
case PR_SANCTUARY: /* サンクチュアリ */
case PR_MAGNUS: /* マグヌスエクソシズム */
case CR_GRANDCROSS: /* グランドクロス */
+ case NPC_DARKGRANDCROSS: /*闇グランドクロス*/
case HT_SKIDTRAP: /* スキッドトラップ */
case HT_LANDMINE: /* ランドマイン */
case HT_ANKLESNARE: /* アンクルスネア */
@@ -5331,6 +5343,7 @@ struct skill_unit_group *skill_unitsetting( struct block_list *src, int skillid,
break;
case CR_GRANDCROSS: /* グランドクロス */
+ case NPC_DARKGRANDCROSS: /*闇グランドクロス*/
count=29;
limit=1000;
interval=300;
@@ -5641,6 +5654,7 @@ struct skill_unit_group *skill_unitsetting( struct block_list *src, int skillid,
break;
case CR_GRANDCROSS: /* グランドクロス */
+ case NPC_DARKGRANDCROSS: /*闇グランドクロス*/
{
static const int dx[]={
0, 0, -1,0,1, -2,-1,0,1,2, -4,-3,-2,-1,0,1,2,3,4, -2,-1,0,1,2, -1,0,1, 0, 0, };
@@ -6786,7 +6800,8 @@ static int skill_check_condition_use_sub(struct block_list *bl,va_list ap)
ss_class = pc_calc_base_job(ssd->status.class);
skillid=ssd->skillid;
skilllv=ssd->skilllv;
- if(skilllv <= 0) return 0;
+ //if(skilllv <= 0) return 0;
+ if(skillid > 0 && skilllv <= 0) return 0; // celest
switch(skillid){
case PR_BENEDICTIO: /* 聖?降福 */
if(sd != ssd && (s_class.job == 4 || s_class.job == 8 || s_class.job == 15) &&
@@ -8284,7 +8299,8 @@ int skill_attack_area(struct block_list *bl,va_list ap)
return 0;
skillid=va_arg(ap,int);
skilllv=va_arg(ap,int);
- if(skilllv <= 0) return 0;
+ //if(skilllv <= 0) return 0;
+ if(skillid > 0 && skilllv <= 0) return 0; // celest
tick=va_arg(ap,unsigned int);
flag=va_arg(ap,int);
type=va_arg(ap,int);
@@ -8818,6 +8834,7 @@ int skill_status_change_timer(int tid, unsigned int tick, int id, int data)
if(sc_data[type].timer != tid) {
if(battle_config.error_log)
printf("skill_status_change_timer %d != %d\n",tid,sc_data[type].timer);
+ return 0;
}
switch(type){ /* 特殊な?理になる場合 */
@@ -9096,7 +9113,7 @@ int skill_status_change_timer(int tid, unsigned int tick, int id, int data)
case SC_MEMORIZE: /* メモライズ */
case SC_BROKNWEAPON:
case SC_BROKNARMOR:
- if(sc_data[type].timer==tid)
+// if(sc_data[type].timer==tid)
sc_data[type].timer=add_timer( 1000*600+tick,skill_status_change_timer, bl->id, data );
return 0;
@@ -9373,7 +9390,7 @@ int skill_status_change_start(struct block_list *bl, int type, int val1, int val
type != SC_SPEEDPOTION0 && type != SC_SPEEDPOTION1 && type != SC_SPEEDPOTION2
&& type != SC_ATKPOT && type != SC_MATKPOT) // added atk and matk potions [Valaris]
return 0;
- if(type >=SC_STAN && type <= SC_BLIND)
+ if ((type >=SC_STAN && type <= SC_BLIND) || type == SC_DPOISON)
return 0;/* ?ぎ足しができない?態異常である時は?態異常を行わない */
if(type == SC_GRAFFITI){ //異常中にもう一度?態異常になった時に解除してから再度かかる
skill_status_change_end(bl,type,-1);
@@ -9941,11 +9958,11 @@ int skill_status_change_start(struct block_list *bl, int type, int val1, int val
case SC_BERSERK:
calc_flag=1;
break;
+*/
case SC_ASSUMPTIO:
if(sc_data[SC_KYRIE].timer!=-1 )
skill_status_change_end(bl,SC_KYRIE,-1);
break;
-*/
case SC_WINDWALK: /* ウインドウォ?ク */
calc_flag = 1;
val2 = (val1 / 2); //Flee上昇率
diff --git a/src/map/skill.h b/src/map/skill.h
index ebca40b34..57cc1f084 100644
--- a/src/map/skill.h
+++ b/src/map/skill.h
@@ -738,6 +738,9 @@ enum {
NPC_SELFDESTRUCTION2 = 331,
ITM_TOMAHAWK = 337,
NPC_DARKCROSS = 338,
+ NPC_DARKGRANDCROSS,
+ NPC_DARKSOULSTRIKE,
+ NPC_DARKJUPITEL,
LK_AURABLADE = 355,
LK_PARRYING,