summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
authorshennetsind <ind@henn.et>2013-07-26 17:47:07 -0300
committershennetsind <ind@henn.et>2013-07-26 17:47:07 -0300
commit2eab181cece04d8c6a79f9d1a3ff74343cd3ae76 (patch)
tree698cd7504ea1da3a571987384cb0752473ee74c5 /src/map/status.c
parent21b13ae7ef4747caf52784f4fb753e9a98ff2bd8 (diff)
downloadhercules-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.c19
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;
}
}