diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-11-27 10:08:22 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-11-27 10:08:22 +0000 |
commit | 0ccaa850059dc60f52896ee86935f02e6d087780 (patch) | |
tree | 5fa23d6dd4468010d9321b3ba612c6b6f9cf2ed2 /src | |
parent | c20592155c15b1cd60c0ba13c3f4a2f142fbe2cf (diff) | |
download | hercules-0ccaa850059dc60f52896ee86935f02e6d087780.tar.gz hercules-0ccaa850059dc60f52896ee86935f02e6d087780.tar.bz2 hercules-0ccaa850059dc60f52896ee86935f02e6d087780.tar.xz hercules-0ccaa850059dc60f52896ee86935f02e6d087780.zip |
- Cleaned some more the sc_end check so it is more generic and not so limited just to infinite endure.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11821 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/map/script.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/map/script.c b/src/map/script.c index 3ee1f04c1..4e81e752e 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -8120,20 +8120,18 @@ BUILDIN_FUNC(sc_end) bl = map_id2bl(potion_target); } - if( bl ) - { - if( type == SC_ENDURE ) - { //Required to terminate properly infinite endure. - struct status_change *sc = status_get_sc(bl); - struct status_change_entry *sce = sc?sc->data[type]:NULL; - if (sce) sce->val4 = 0; - } - if( type >= 0 ) - status_change_end(bl, type, INVALID_TIMER); - else - status_change_clear(bl, 2);// remove all effects - } + if( !bl ) return 0l; + if( type >= 0 && type < SC_MAX ) + { + struct status_change *sc = status_get_sc(bl); + struct status_change_entry *sce = sc?sc->data[type]:NULL; + if (!sce) return 0; + //This should help status_change_end force disabling the SC in case it has no limit. + sce->val1 = sce->val2 = sce->val3 = sce->val4 = 0; + status_change_end(bl, type, INVALID_TIMER); + } else + status_change_clear(bl, 2);// remove all effects return 0; } |