summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/sc_config.txt2
-rw-r--r--src/map/script.c12
2 files changed, 11 insertions, 3 deletions
diff --git a/db/sc_config.txt b/db/sc_config.txt
index 38e10e4c2..682fd060c 100644
--- a/db/sc_config.txt
+++ b/db/sc_config.txt
@@ -10,7 +10,7 @@
// 16 - SC considered as buff and be removed by Hermode and etc.
// 32 - SC considered as debuff and be removed by Gospel and etc.
// 64 - SC cannot be reset when MADO Gear is taken off.
-// 128 - SC cannot be reset by sc_end and change clear.
+// 128 - SC cannot be reset by 'sc_end SC_ALL' and status change clear.
//Example:
//SC_ENDURE, 21 //SC_ENDURE: cannot be removed by death and dispell and cosidered as buff. (16 + 4 + 1 = 21)
diff --git a/src/map/script.c b/src/map/script.c
index a3b858131..8d07ca0d1 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -9697,8 +9697,16 @@ BUILDIN(sc_end) {
if (!sce)
return true;
- if( status->get_sc_type(type)&SC_NO_CLEAR )
- return true;
+ /* status that can't be individually removed (TODO sc_config option?) */
+ switch (type) {
+ case SC_WEIGHTOVER50:
+ case SC_WEIGHTOVER90:
+ case SC_NOCHAT:
+ case SC_PUSH_CART:
+ return true;
+ default:
+ break;
+ }
//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;