Implemented missing skills (#7552)
* Implemented NPC_BLEEDING2 Copy from NPC_BLEEDING for now except * element always Neutral * differents rates * Implemented NPC_HELLJUDGEMENT2 Copy from NPC_HELLJUDGEMENT except * element neutral * skills inflicts a random status effect * Implemented NPC_WIDEFREEZE2 Copy from NPC_WIDEFREEZE * Implemented NPC_ICEBREATH2 Copy from NPC_ICEBREATH except * Chance 100% instead of 70% * Splash area 4 instead of 3 * Implemented NPC_WIDEBLEEDING2 Copy from NPC_WIDEBLEEDING * Implemented NPC_WIDECONFUSE2 Copy from NPC_WIDECONFUSE * Implemented NPC_WIDESILENCE2 Copy from NPC_WIDESILENCE * Implemented NPC_WIDESTUN2 Copy from NPC_WIDESTUN * Implemented NPC_WIDESILENCE2 Copy from NPC_WIDESILENCE * Implemented NPC_WIDESLEEP2 Copy from NPC_WIDESLEEP * Implemented NPC_WIDECURSE2 Copy from NPC_WIDECURSE * Implemented NPC_WIDESTONE2 Copy from NPC_WIDESTONE Thanks to @OptimusM, @Lemongrass3110, @aleos89 !
This commit is contained in:
@@ -1637,6 +1637,9 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
||||
case NPC_BLEEDING:
|
||||
sc_start(src,bl,SC_BLEEDING,(20*skill_lv),skill_lv,skill_get_time2(skill_id,skill_lv));
|
||||
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:
|
||||
sc_start(src, bl, SC_CHANGEUNDEAD, (10 * skill_lv), skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||
break;
|
||||
@@ -1646,6 +1649,9 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
||||
case NPC_ICEBREATH:
|
||||
sc_start(src,bl,SC_FREEZE,70,skill_lv,skill_get_time2(skill_id,skill_lv));
|
||||
break;
|
||||
case NPC_ICEBREATH2:
|
||||
sc_start(src,bl,SC_FREEZE,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
||||
break;
|
||||
case NPC_MENTALBREAKER:
|
||||
{ //Based on observations by Tharis, Mental Breaker should do SP damage
|
||||
//equal to Matk*skLevel.
|
||||
@@ -1775,6 +1781,28 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
||||
case NPC_HELLJUDGEMENT:
|
||||
sc_start(src,bl,SC_CURSE,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
||||
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:
|
||||
sc_start(src,bl,SC_CRITICALWOUND,100,skill_lv,skill_get_time2(skill_id,skill_lv));
|
||||
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_SBR44: //[orn]
|
||||
case NPC_BLEEDING:
|
||||
case NPC_BLEEDING2:
|
||||
case NPC_CRITICALWOUND:
|
||||
case NPC_HELLPOWER:
|
||||
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_FIREBREATH:
|
||||
case NPC_ICEBREATH:
|
||||
case NPC_ICEBREATH2:
|
||||
case NPC_THUNDERBREATH:
|
||||
case AG_STORM_CANNON:
|
||||
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_PULSESTRIKE2:
|
||||
case NPC_HELLJUDGEMENT:
|
||||
case NPC_HELLJUDGEMENT2:
|
||||
case NPC_VAMPIRE_GIFT:
|
||||
case NPC_MAXPAIN_ATK:
|
||||
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 NPC_VAMPIRE_GIFT:
|
||||
case NPC_HELLJUDGEMENT:
|
||||
case NPC_HELLJUDGEMENT2:
|
||||
case NPC_PULSESTRIKE:
|
||||
case LG_MOONSLASHER:
|
||||
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;
|
||||
}
|
||||
case NPC_WIDEBLEEDING:
|
||||
case NPC_WIDEBLEEDING2:
|
||||
case NPC_WIDECONFUSE:
|
||||
case NPC_WIDECONFUSE2:
|
||||
case NPC_WIDECURSE:
|
||||
case NPC_WIDECURSE2:
|
||||
case NPC_WIDEFREEZE:
|
||||
case NPC_WIDEFREEZE2:
|
||||
case NPC_WIDESLEEP:
|
||||
case NPC_WIDESLEEP2:
|
||||
case NPC_WIDESILENCE:
|
||||
case NPC_WIDESILENCE2:
|
||||
case NPC_WIDESTONE:
|
||||
case NPC_WIDESTONE2:
|
||||
case NPC_WIDESTUN:
|
||||
case NPC_WIDESTUN2:
|
||||
case NPC_SLOWCAST:
|
||||
case NPC_WIDEHELLDIGNITY:
|
||||
case NPC_WIDEHEALTHFEAR:
|
||||
@@ -19425,6 +19465,7 @@ int skill_attack_area(struct block_list *bl, va_list ap)
|
||||
case NPC_DARKNESSBREATH:
|
||||
case NPC_FIREBREATH:
|
||||
case NPC_ICEBREATH:
|
||||
case NPC_ICEBREATH2:
|
||||
case NPC_THUNDERBREATH:
|
||||
return (int)skill_attack(atk_type,src,dsrc,bl,skill_id,skill_lv,tick,flag);
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user