diff options
author | rud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-06-04 17:11:22 +0000 |
---|---|---|
committer | rud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-06-04 17:11:22 +0000 |
commit | 9479293df183202eec534ec3c5fd4ecba94fae41 (patch) | |
tree | 35c13c523fc208f7c2b3df5f7392099b60bf374e /src/map/skill.c | |
parent | 47408b74369ba8f49f7b1d2caa453557b66ede0f (diff) | |
download | hercules-9479293df183202eec534ec3c5fd4ecba94fae41.tar.gz hercules-9479293df183202eec534ec3c5fd4ecba94fae41.tar.bz2 hercules-9479293df183202eec534ec3c5fd4ecba94fae41.tar.xz hercules-9479293df183202eec534ec3c5fd4ecba94fae41.zip |
Fixed bugreport:5919 RK_ENCHANTBLADE bonus damage at any level should now work properly.
Fixed bugreport:5914 SC_MANHOLE duration at level 2 is now 10 seconds.
Fixed bugreport:5928 SR_CURSEDCIRCLE should now work properly(castable with other skills & should end after the execution of a skill)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16233 54d463be-8e91-2dee-dedb-b68131a5f0ec
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] ) { |