|
@@ -1637,6 +1637,9 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
|
case NPC_BLEEDING:
|
|
case NPC_BLEEDING:
|
|
sc_start(src,bl,SC_BLEEDING,(20*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
sc_start(src,bl,SC_BLEEDING,(20*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
break;
|
|
break;
|
|
|
|
+ case NPC_BLEEDING2:
|
|
|
|
+ sc_start(src,bl,SC_BLEEDING,(50+10*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
|
|
+ break;
|
|
case NPC_CHANGEUNDEAD:
|
|
case NPC_CHANGEUNDEAD:
|
|
sc_start(src, bl, SC_CHANGEUNDEAD, (10 * skill_lv), skill_lv, skill_get_time2(skill_id, skill_lv));
|
|
sc_start(src, bl, SC_CHANGEUNDEAD, (10 * skill_lv), skill_lv, skill_get_time2(skill_id, skill_lv));
|
|
break;
|
|
break;
|
|
@@ -1646,6 +1649,9 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
|
case NPC_ICEBREATH:
|
|
case NPC_ICEBREATH:
|
|
sc_start(src,bl,SC_FREEZE,70,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
sc_start(src,bl,SC_FREEZE,70,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
break;
|
|
break;
|
|
|
|
+ case NPC_ICEBREATH2:
|
|
|
|
+ sc_start(src,bl,SC_FREEZE,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
|
|
+ break;
|
|
case NPC_MENTALBREAKER:
|
|
case NPC_MENTALBREAKER:
|
|
{ //Based on observations by Tharis, Mental Breaker should do SP damage
|
|
{ //Based on observations by Tharis, Mental Breaker should do SP damage
|
|
//equal to Matk*skLevel.
|
|
//equal to Matk*skLevel.
|
|
@@ -1775,6 +1781,28 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
|
case NPC_HELLJUDGEMENT:
|
|
case NPC_HELLJUDGEMENT:
|
|
sc_start(src,bl,SC_CURSE,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
sc_start(src,bl,SC_CURSE,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
break;
|
|
break;
|
|
|
|
+ case NPC_HELLJUDGEMENT2:
|
|
|
|
+ switch(rnd()%6) {
|
|
|
|
+ case 0:
|
|
|
|
+ sc_start(src,bl,SC_SLEEP,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
|
|
+ break;
|
|
|
|
+ case 1:
|
|
|
|
+ sc_start(src,bl,SC_CONFUSION,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ sc_start(src,bl,SC_HALLUCINATION,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ sc_start(src,bl,SC_STUN,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ sc_start(src,bl,SC_FEAR,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ sc_start(src,bl,SC_CURSE,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
case NPC_CRITICALWOUND:
|
|
case NPC_CRITICALWOUND:
|
|
sc_start(src,bl,SC_CRITICALWOUND,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
sc_start(src,bl,SC_CRITICALWOUND,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
|
break;
|
|
break;
|
|
@@ -5130,6 +5158,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|
case HFLI_MOON: //[orn]
|
|
case HFLI_MOON: //[orn]
|
|
case HFLI_SBR44: //[orn]
|
|
case HFLI_SBR44: //[orn]
|
|
case NPC_BLEEDING:
|
|
case NPC_BLEEDING:
|
|
|
|
+ case NPC_BLEEDING2:
|
|
case NPC_CRITICALWOUND:
|
|
case NPC_CRITICALWOUND:
|
|
case NPC_HELLPOWER:
|
|
case NPC_HELLPOWER:
|
|
case RK_SONICWAVE:
|
|
case RK_SONICWAVE:
|
|
@@ -5330,6 +5359,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|
case NPC_DARKNESSBREATH:
|
|
case NPC_DARKNESSBREATH:
|
|
case NPC_FIREBREATH:
|
|
case NPC_FIREBREATH:
|
|
case NPC_ICEBREATH:
|
|
case NPC_ICEBREATH:
|
|
|
|
+ case NPC_ICEBREATH2:
|
|
case NPC_THUNDERBREATH:
|
|
case NPC_THUNDERBREATH:
|
|
case AG_STORM_CANNON:
|
|
case AG_STORM_CANNON:
|
|
case AG_CRIMSON_ARROW:
|
|
case AG_CRIMSON_ARROW:
|
|
@@ -5508,6 +5538,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|
case NPC_PULSESTRIKE:
|
|
case NPC_PULSESTRIKE:
|
|
case NPC_PULSESTRIKE2:
|
|
case NPC_PULSESTRIKE2:
|
|
case NPC_HELLJUDGEMENT:
|
|
case NPC_HELLJUDGEMENT:
|
|
|
|
+ case NPC_HELLJUDGEMENT2:
|
|
case NPC_VAMPIRE_GIFT:
|
|
case NPC_VAMPIRE_GIFT:
|
|
case NPC_MAXPAIN_ATK:
|
|
case NPC_MAXPAIN_ATK:
|
|
case NPC_JACKFROST:
|
|
case NPC_JACKFROST:
|
|
@@ -8477,6 +8508,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
case NC_INFRAREDSCAN:
|
|
case NC_INFRAREDSCAN:
|
|
case NPC_VAMPIRE_GIFT:
|
|
case NPC_VAMPIRE_GIFT:
|
|
case NPC_HELLJUDGEMENT:
|
|
case NPC_HELLJUDGEMENT:
|
|
|
|
+ case NPC_HELLJUDGEMENT2:
|
|
case NPC_PULSESTRIKE:
|
|
case NPC_PULSESTRIKE:
|
|
case LG_MOONSLASHER:
|
|
case LG_MOONSLASHER:
|
|
skill_castend_damage_id(src, src, skill_id, skill_lv, tick, flag);
|
|
skill_castend_damage_id(src, src, skill_id, skill_lv, tick, flag);
|
|
@@ -10445,13 +10477,21 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
case NPC_WIDEBLEEDING:
|
|
case NPC_WIDEBLEEDING:
|
|
|
|
+ case NPC_WIDEBLEEDING2:
|
|
case NPC_WIDECONFUSE:
|
|
case NPC_WIDECONFUSE:
|
|
|
|
+ case NPC_WIDECONFUSE2:
|
|
case NPC_WIDECURSE:
|
|
case NPC_WIDECURSE:
|
|
|
|
+ case NPC_WIDECURSE2:
|
|
case NPC_WIDEFREEZE:
|
|
case NPC_WIDEFREEZE:
|
|
|
|
+ case NPC_WIDEFREEZE2:
|
|
case NPC_WIDESLEEP:
|
|
case NPC_WIDESLEEP:
|
|
|
|
+ case NPC_WIDESLEEP2:
|
|
case NPC_WIDESILENCE:
|
|
case NPC_WIDESILENCE:
|
|
|
|
+ case NPC_WIDESILENCE2:
|
|
case NPC_WIDESTONE:
|
|
case NPC_WIDESTONE:
|
|
|
|
+ case NPC_WIDESTONE2:
|
|
case NPC_WIDESTUN:
|
|
case NPC_WIDESTUN:
|
|
|
|
+ case NPC_WIDESTUN2:
|
|
case NPC_SLOWCAST:
|
|
case NPC_SLOWCAST:
|
|
case NPC_WIDEHELLDIGNITY:
|
|
case NPC_WIDEHELLDIGNITY:
|
|
case NPC_WIDEHEALTHFEAR:
|
|
case NPC_WIDEHEALTHFEAR:
|
|
@@ -19425,6 +19465,7 @@ int skill_attack_area(struct block_list *bl, va_list ap)
|
|
case NPC_DARKNESSBREATH:
|
|
case NPC_DARKNESSBREATH:
|
|
case NPC_FIREBREATH:
|
|
case NPC_FIREBREATH:
|
|
case NPC_ICEBREATH:
|
|
case NPC_ICEBREATH:
|
|
|
|
+ case NPC_ICEBREATH2:
|
|
case NPC_THUNDERBREATH:
|
|
case NPC_THUNDERBREATH:
|
|
return (int)skill_attack(atk_type,src,dsrc,bl,skill_id,skill_lv,tick,flag);
|
|
return (int)skill_attack(atk_type,src,dsrc,bl,skill_id,skill_lv,tick,flag);
|
|
default:
|
|
default:
|