summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorcsnv <ctt@csnv.es>2015-07-05 20:35:59 +0200
committercsnv <ctt@csnv.es>2015-07-05 20:35:59 +0200
commit5c3c0e2ea9f74fc07ba3446e95cdd2869b5599c1 (patch)
tree196cb7a5fb61ad13d18bc5aad229e5964c329147 /src/map/skill.c
parent0177783215ae97d08109f7af91a20b78b6a0df90 (diff)
downloadhercules-5c3c0e2ea9f74fc07ba3446e95cdd2869b5599c1.tar.gz
hercules-5c3c0e2ea9f74fc07ba3446e95cdd2869b5599c1.tar.bz2
hercules-5c3c0e2ea9f74fc07ba3446e95cdd2869b5599c1.tar.xz
hercules-5c3c0e2ea9f74fc07ba3446e95cdd2869b5599c1.zip
Fixes skill blocks overiding larger blocks
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index c6233c31d..666af315a 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -17905,6 +17905,9 @@ int skill_blockpc_start_(struct map_session_data *sd, uint16 skill_id, int tick)
}
if( i != cd->cursor ) {/* duplicate, update necessary */
+ // Don't do anything if there's already a tick longer than the incoming one
+ if (DIFF_TICK32(cd->entry[i]->started + cd->entry[i]->duration, now) > tick)
+ return 0;
cd->entry[i]->duration = tick;
#if PACKETVER >= 20120604
cd->entry[i]->total = tick;