diff options
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 6e387c533..fda276c5b 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1358,6 +1358,12 @@ int skill_break_equip (struct block_list *bl, unsigned short where, int rate, in (where&EQP_WEAPON && sd->inventory_data[j]->type == IT_WEAPON) || (where&EQP_SHIELD && sd->inventory_data[j]->type == IT_ARMOR)); break; + case EQI_SHOES: + flag = (where&EQP_SHOES); + break; + case EQI_GARMENT: + flag = (where&EQP_GARMENT); + break; default: continue; } @@ -5255,10 +5261,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in break; case 3: // 1000 damage, random armor destroyed { - int where[] = { EQP_ARMOR, EQP_SHIELD, EQP_HELM }; + int where[] = { EQP_ARMOR, EQP_SHIELD, EQP_HELM, EQP_SHOES, EQP_GARMENT }; status_fix_damage(src, bl, 1000, 0); clif_damage(src,bl,tick,0,0,1000,0,0,0); - skill_break_equip(bl, where[rand()%3], 10000, BCT_ENEMY); + if( !status_isdead(bl) ) + skill_break_equip(bl, where[rand()%5], 10000, BCT_ENEMY); } break; case 4: // atk halved |