summaryrefslogtreecommitdiff
path: root/src/map/chrif.c
diff options
context:
space:
mode:
authorMichieru <Michieru@users.noreply.github.com>2014-10-26 22:28:30 +0100
committerMichieru <Michieru@users.noreply.github.com>2014-10-26 22:28:30 +0100
commit3904b3a935395d9f0d9ac2864e6fa34863c630c2 (patch)
tree331327722be106086f91ef266d630df53ccefee5 /src/map/chrif.c
parent468e13d4d12dadc9b2a1666f6d2303e30cf93d82 (diff)
downloadhercules-3904b3a935395d9f0d9ac2864e6fa34863c630c2.tar.gz
hercules-3904b3a935395d9f0d9ac2864e6fa34863c630c2.tar.bz2
hercules-3904b3a935395d9f0d9ac2864e6fa34863c630c2.tar.xz
hercules-3904b3a935395d9f0d9ac2864e6fa34863c630c2.zip
- Can't cast icewall more than once on the same center cell. Special thanks to Ind
- Service for you now work properly on all skill level. - Fixed a problem that sometimes randomly a status change was removed on logout although it shouldn't. Special thanks to Playtester
Diffstat (limited to 'src/map/chrif.c')
-rw-r--r--src/map/chrif.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/map/chrif.c b/src/map/chrif.c
index 34e92bee0..1ba89f8c0 100644
--- a/src/map/chrif.c
+++ b/src/map/chrif.c
@@ -1125,9 +1125,12 @@ bool chrif_save_scdata(struct map_session_data *sd) { //parses the sc_data of th
continue;
if (sc->data[i]->timer != INVALID_TIMER) {
td = timer->get(sc->data[i]->timer);
- if (td == NULL || td->func != status->change_timer || DIFF_TICK(td->tick,tick) < 0)
+ if (td == NULL || td->func != status->change_timer)
continue;
- data.tick = DIFF_TICK32(td->tick,tick); //Duration that is left before ending.
+ if (DIFF_TICK32(td->tick,tick) > 0)
+ data.tick = DIFF_TICK32(td->tick,tick); //Duration that is left before ending.
+ else
+ data.tick = 0; //Negative tick does not necessarily mean that sc has expired
} else
data.tick = -1; //Infinite duration
data.type = i;