Fixed Divest status changes not loading properly on login with debuff_on_logout: 0 (bugreport:1331).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15513 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
gepard1984 2012-01-24 16:43:51 +00:00
parent 361a3ea771
commit cb96c947f7

View File

@ -5600,7 +5600,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
break; break;
//Strip skills, need to divest something or it fails. //Strip skills, need to divest something or it fails.
case SC_STRIPWEAPON: case SC_STRIPWEAPON:
if (sd) { if (sd && !(flag&4)) { //apply sc anyway if loading saved sc_data
int i; int i;
opt_flag = 0; //Reuse to check success condition. opt_flag = 0; //Reuse to check success condition.
if(sd->unstripable_equip&EQP_WEAPON) 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: case SC_STRIPSHIELD:
if( val2 == 1 ) val2 = 0; //GX effect. Do not take shield off.. if( val2 == 1 ) val2 = 0; //GX effect. Do not take shield off..
else else
if (sd) { if (sd && !(flag&4)) {
int i; int i;
if(sd->unstripable_equip&EQP_SHIELD) if(sd->unstripable_equip&EQP_SHIELD)
return 0; 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 if (tick == 1) return 1; //Minimal duration: Only strip without causing the SC
break; break;
case SC_STRIPARMOR: case SC_STRIPARMOR:
if (sd) { if (sd && !(flag&4)) {
int i; int i;
if(sd->unstripable_equip&EQP_ARMOR) if(sd->unstripable_equip&EQP_ARMOR)
return 0; 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 if (tick == 1) return 1; //Minimal duration: Only strip without causing the SC
break; break;
case SC_STRIPHELM: case SC_STRIPHELM:
if (sd) { if (sd && !(flag&4)) {
int i; int i;
if(sd->unstripable_equip&EQP_HELM) if(sd->unstripable_equip&EQP_HELM)
return 0; return 0;