|
@@ -4931,18 +4931,25 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
|
|
|
case SC_STRIPWEAPON:
|
|
|
if (sd) {
|
|
|
int i;
|
|
|
+ opt_flag = 0; //Reuse to check success condition.
|
|
|
if(sd->unstripable_equip&EQP_WEAPON)
|
|
|
return 0;
|
|
|
i = sd->equip_index[EQI_HAND_L];
|
|
|
if (i>=0 && sd->inventory_data[i] &&
|
|
|
sd->inventory_data[i]->type == IT_WEAPON)
|
|
|
+ {
|
|
|
+ opt_flag|=1;
|
|
|
pc_unequipitem(sd,i,3); //L-hand weapon
|
|
|
+ }
|
|
|
|
|
|
i = sd->equip_index[EQI_HAND_R];
|
|
|
- if (i<0 || !sd->inventory_data[i] ||
|
|
|
- sd->inventory_data[i]->type != IT_WEAPON)
|
|
|
- return 0;
|
|
|
- pc_unequipitem(sd,i,3);
|
|
|
+ if (i>=0 && sd->inventory_data[i] &&
|
|
|
+ sd->inventory_data[i]->type == IT_WEAPON)
|
|
|
+ {
|
|
|
+ opt_flag|=2;
|
|
|
+ pc_unequipitem(sd,i,3);
|
|
|
+ }
|
|
|
+ if (!opt_flag) return 0;
|
|
|
} else //Watk reduction
|
|
|
val2 = 5*val1;
|
|
|
break;
|