diff options
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 467b07fa3..1274feae7 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -4501,6 +4501,11 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int return 1; } + if( sc && sc->data[SC_CURSEDCIRCLE_ATKER] ) { //Should only remove after the skill has been casted. + sc->data[SC_CURSEDCIRCLE_ATKER]->val3 = 1; + status_change_end(src,SC_CURSEDCIRCLE_ATKER,INVALID_TIMER); + } + map_freeblock_unlock(); if( sd && !(flag&1) ) @@ -8585,6 +8590,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in return 1; } + if(skillid != SR_CURSEDCIRCLE){ + struct status_change *sc = status_get_sc(src); + if( sc && sc->data[SC_CURSEDCIRCLE_ATKER] ) { //Should only remove after the skill had been casted. + sc->data[SC_CURSEDCIRCLE_ATKER]->val3 = 1; + status_change_end(src,SC_CURSEDCIRCLE_ATKER,INVALID_TIMER); + } + } + if (dstmd) { //Mob skill event for no damage skills (damage ones are handled in battle_calc_damage) [Skotlex] mob_log_damage(dstmd, src, 0); //Log interaction (counts as 'attacker' for the exp bonus) mobskill_event(dstmd, src, tick, MSC_SKILLUSED|(skillid<<16)); @@ -9708,6 +9721,11 @@ int skill_castend_pos2(struct block_list* src, int x, int y, int skillid, int sk return 1; } + if( sc && sc->data[SC_CURSEDCIRCLE_ATKER] ) { //Should only remove after the skill has been casted. + sc->data[SC_CURSEDCIRCLE_ATKER]->val3 = 1; + status_change_end(src,SC_CURSEDCIRCLE_ATKER,INVALID_TIMER); + } + if( sd ) {// ensure that the skill last-cast tick is recorded sd->canskill_tick = gettick(); @@ -11863,7 +11881,7 @@ int skill_check_condition_castbegin(struct map_session_data* sd, short skill, sh case MO_EXTREMITYFIST: // if(sc && sc->data[SC_EXTREMITYFIST]) //To disable Asura during the 5 min skill block uncomment this... // return 0; - if( sc && sc->data[SC_BLADESTOP] ) + if( sc && (sc->data[SC_BLADESTOP] || sc->data[SC_CURSEDCIRCLE_ATKER]) ) break; if( sc && sc->data[SC_COMBO] ) { |