diff options
author | Michieru <Michieru@users.noreply.github.com> | 2014-10-26 22:28:30 +0100 |
---|---|---|
committer | Michieru <Michieru@users.noreply.github.com> | 2014-10-26 22:28:30 +0100 |
commit | 3904b3a935395d9f0d9ac2864e6fa34863c630c2 (patch) | |
tree | 331327722be106086f91ef266d630df53ccefee5 /src/map/chrif.c | |
parent | 468e13d4d12dadc9b2a1666f6d2303e30cf93d82 (diff) | |
download | hercules-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.c | 7 |
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; |