diff --git a/src/map/skill.c b/src/map/skill.c index d03162b169..b9408ca8b8 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -902,7 +902,7 @@ struct s_skill_nounit_layout* skill_get_nounit_layout(uint16 skill_id, uint16 sk /*========================================== * Add effect to skill when hit succesfully target *------------------------------------------*/ -int skill_additional_effect(struct block_list* src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int attack_type, int dmg_lv, unsigned int tick) +int skill_additional_effect(struct block_list* src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int attack_type, enum damage_lv dmg_lv, unsigned int tick) { struct map_session_data *sd, *dstsd; struct mob_data *md, *dstmd; @@ -1425,11 +1425,13 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1 break; case WL_EARTHSTRAIN: { - int i; + uint16 i; const int pos[5] = { EQP_WEAPON, EQP_HELM, EQP_SHIELD, EQP_ARMOR, EQP_ACC }; - for( i = 0; i < skill_lv; i++ ) - skill_strip_equip(src,bl,pos[i],5 * skill_lv,skill_lv,skill_get_time2(skill_id,skill_lv)); + if (dmg_lv != ATK_DEF) // Only strip if we make a successful hit. + break; + for (i = 0; i < skill_lv; i++) + skill_strip_equip(src, bl, pos[i], 5 * skill_lv, skill_lv, skill_get_time2(skill_id, skill_lv)); } break; case WL_JACKFROST: diff --git a/src/map/skill.h b/src/map/skill.h index 964b21325a..9f3adafe41 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -420,7 +420,7 @@ int skill_cleartimerskill(struct block_list *src); int skill_addtimerskill(struct block_list *src,unsigned int tick,int target,int x,int y,uint16 skill_id,uint16 skill_lv,int type,int flag); // Results? Added -int skill_additional_effect( struct block_list* src, struct block_list *bl,uint16 skill_id,uint16 skill_lv,int attack_type,int dmg_lv,unsigned int tick); +int skill_additional_effect( struct block_list* src, struct block_list *bl,uint16 skill_id,uint16 skill_lv,int attack_type,enum damage_lv dmg_lv,unsigned int tick); int skill_counter_additional_effect( struct block_list* src, struct block_list *bl,uint16 skill_id,uint16 skill_lv,int attack_type,unsigned int tick); short skill_blown(struct block_list* src, struct block_list* target, char count, int8 dir, unsigned char flag); int skill_break_equip(struct block_list *src,struct block_list *bl, unsigned short where, int rate, int flag);