diff options
author | shennetsind <ind@henn.et> | 2013-07-26 17:47:07 -0300 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-07-26 17:47:07 -0300 |
commit | 2eab181cece04d8c6a79f9d1a3ff74343cd3ae76 (patch) | |
tree | 698cd7504ea1da3a571987384cb0752473ee74c5 /src/map/status.c | |
parent | 21b13ae7ef4747caf52784f4fb753e9a98ff2bd8 (diff) | |
download | hercules-2eab181cece04d8c6a79f9d1a3ff74343cd3ae76.tar.gz hercules-2eab181cece04d8c6a79f9d1a3ff74343cd3ae76.tar.bz2 hercules-2eab181cece04d8c6a79f9d1a3ff74343cd3ae76.tar.xz hercules-2eab181cece04d8c6a79f9d1a3ff74343cd3ae76.zip |
Follow up 144a9d0843dfe47e0b58c8857762f58ae70543c8
It will no longer block the equipping of items, instead it will delay (if applicable) the item's effect until it is no longer capable of affecting the skills under the timer.
Special Thanks to kyeme for the information.
Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/map/status.c b/src/map/status.c index 2f1950c47..4c5b5c7c2 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -3929,19 +3929,24 @@ void status_calc_bl_(struct block_list* bl, enum scb_flag flag, bool first) struct status_data b_status; // previous battle status struct status_data* status; // pointer to current battle status + if( bl->type == BL_PC && ((TBL_PC*)bl)->delayed_damage != 0 ) { + ((TBL_PC*)bl)->state.hold_recalc = 1; + return; + } + // remember previous values status = iStatus->get_status_data(bl); memcpy(&b_status, status, sizeof(struct status_data)); if( flag&SCB_BASE ) {// calculate the object's base status too switch( bl->type ) { - case BL_PC: iStatus->calc_pc_(BL_CAST(BL_PC,bl), first); break; - case BL_MOB: iStatus->calc_mob_(BL_CAST(BL_MOB,bl), first); break; - case BL_PET: iStatus->calc_pet_(BL_CAST(BL_PET,bl), first); break; - case BL_HOM: iStatus->calc_homunculus_(BL_CAST(BL_HOM,bl), first); break; - case BL_MER: iStatus->calc_mercenary_(BL_CAST(BL_MER,bl), first); break; - case BL_ELEM: iStatus->calc_elemental_(BL_CAST(BL_ELEM,bl), first); break; - case BL_NPC: status_calc_npc_(BL_CAST(BL_NPC,bl), first); break; + case BL_PC: iStatus->calc_pc_(BL_CAST(BL_PC,bl), first); break; + case BL_MOB: iStatus->calc_mob_(BL_CAST(BL_MOB,bl), first); break; + case BL_PET: iStatus->calc_pet_(BL_CAST(BL_PET,bl), first); break; + case BL_HOM: iStatus->calc_homunculus_(BL_CAST(BL_HOM,bl), first); break; + case BL_MER: iStatus->calc_mercenary_(BL_CAST(BL_MER,bl), first); break; + case BL_ELEM: iStatus->calc_elemental_(BL_CAST(BL_ELEM,bl), first); break; + case BL_NPC: status_calc_npc_(BL_CAST(BL_NPC,bl), first); break; } } |