summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgepard1984 <gepard1984@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-01-24 16:43:51 +0000
committergepard1984 <gepard1984@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-01-24 16:43:51 +0000
commit84e37548b93c3364ee5c07c40d962ce15f7fef49 (patch)
tree0ef5158dd48980c411077fc98800dd680633ab21
parent17a5ff052ebc90f7a7df0fb60f9364ef52a0209d (diff)
downloadhercules-84e37548b93c3364ee5c07c40d962ce15f7fef49.tar.gz
hercules-84e37548b93c3364ee5c07c40d962ce15f7fef49.tar.bz2
hercules-84e37548b93c3364ee5c07c40d962ce15f7fef49.tar.xz
hercules-84e37548b93c3364ee5c07c40d962ce15f7fef49.zip
Fixed Divest status changes not loading properly on login with `debuff_on_logout: 0` (bugreport:1331).
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15513 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--src/map/status.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/map/status.c b/src/map/status.c
index b2088ebe0..c2264717f 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -5600,7 +5600,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
break;
//Strip skills, need to divest something or it fails.
case SC_STRIPWEAPON:
- if (sd) {
+ if (sd && !(flag&4)) { //apply sc anyway if loading saved sc_data
int i;
opt_flag = 0; //Reuse to check success condition.
if(sd->unstripable_equip&EQP_WEAPON)
@@ -5627,7 +5627,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
case SC_STRIPSHIELD:
if( val2 == 1 ) val2 = 0; //GX effect. Do not take shield off..
else
- if (sd) {
+ if (sd && !(flag&4)) {
int i;
if(sd->unstripable_equip&EQP_SHIELD)
return 0;
@@ -5640,7 +5640,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
if (tick == 1) return 1; //Minimal duration: Only strip without causing the SC
break;
case SC_STRIPARMOR:
- if (sd) {
+ if (sd && !(flag&4)) {
int i;
if(sd->unstripable_equip&EQP_ARMOR)
return 0;
@@ -5652,7 +5652,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
if (tick == 1) return 1; //Minimal duration: Only strip without causing the SC
break;
case SC_STRIPHELM:
- if (sd) {
+ if (sd && !(flag&4)) {
int i;
if(sd->unstripable_equip&EQP_HELM)
return 0;