|
@@ -9968,15 +9968,17 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
case SL_STAR:
|
|
case SL_STAR:
|
|
case SL_SUPERNOVICE:
|
|
case SL_SUPERNOVICE:
|
|
case SL_WIZARD:
|
|
case SL_WIZARD:
|
|
- if (skill_id == SL_SUPERNOVICE && dstsd && dstsd->die_counter && !(rnd()%100))
|
|
|
|
- { //Erase death count 1% of the casts
|
|
|
|
- pc_setparam(dstsd, SP_PCDIECOUNTER, 0);
|
|
|
|
- clif_specialeffect(bl, EF_ANGEL2, AREA);
|
|
|
|
- //SC_SPIRIT invokes status_calc_pc for us.
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ case SL_HIGH:
|
|
if( sc_start2( src, bl, type, 100, skill_lv, skill_id, skill_get_time( skill_id, skill_lv ) ) ){
|
|
if( sc_start2( src, bl, type, 100, skill_lv, skill_id, skill_get_time( skill_id, skill_lv ) ) ){
|
|
clif_skill_nodamage( src, bl, skill_id, skill_lv, 1 );
|
|
clif_skill_nodamage( src, bl, skill_id, skill_lv, 1 );
|
|
|
|
+
|
|
|
|
+ // 1% chance to erase death count on successful cast
|
|
|
|
+ if( skill_id == SL_SUPERNOVICE && dstsd && dstsd->die_counter && rnd_chance( 1, 100 ) ){
|
|
|
|
+ pc_setparam( dstsd, SP_PCDIECOUNTER, 0 );
|
|
|
|
+ clif_specialeffect( bl, EF_ANGEL2, AREA );
|
|
|
|
+ status_calc_pc( dstsd, SCO_NONE );
|
|
|
|
+ }
|
|
|
|
+
|
|
sc_start( src, src, SC_SMA, 100, skill_lv, skill_get_time( SL_SMA, skill_lv ) );
|
|
sc_start( src, src, SC_SMA, 100, skill_lv, skill_get_time( SL_SMA, skill_lv ) );
|
|
}else{
|
|
}else{
|
|
if( sd ){
|
|
if( sd ){
|
|
@@ -9984,19 +9986,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
- case SL_HIGH:
|
|
|
|
- if (sd && tsc && (tsc->data[SC_SOULGOLEM] || tsc->data[SC_SOULSHADOW] || tsc->data[SC_SOULFALCON] || tsc->data[SC_SOULFAIRY])) { // Soul links from Soul Linker and Soul Reaper skills don't stack.
|
|
|
|
- clif_skill_fail(sd, skill_id, USESKILL_FAIL,0);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- if (sd && !(dstsd && (dstsd->class_&JOBL_UPPER) && !(dstsd->class_&JOBL_2) && dstsd->status.base_level < 70)) {
|
|
|
|
- clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- clif_skill_nodamage(src,bl,skill_id,skill_lv,
|
|
|
|
- sc_start4(src,bl,type,100,skill_lv,skill_id,0,0,skill_get_time(skill_id,skill_lv)));
|
|
|
|
- sc_start(src,src,SC_SMA,100,skill_lv,skill_get_time(SL_SMA,skill_lv));
|
|
|
|
- break;
|
|
|
|
case SP_SOULGOLEM:
|
|
case SP_SOULGOLEM:
|
|
case SP_SOULSHADOW:
|
|
case SP_SOULSHADOW:
|
|
case SP_SOULFALCON:
|
|
case SP_SOULFALCON:
|