From 2eab181cece04d8c6a79f9d1a3ff74343cd3ae76 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Fri, 26 Jul 2013 17:47:07 -0300 Subject: 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 --- src/map/status.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/map/status.c') 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; } } -- cgit v1.2.3-60-g2f50