浏览代码

-Upd SC_STONEHARDSKIN to only break weapon from Melee atk and speed up processing

lighta 11 年之前
父节点
当前提交
6a90381808
共有 2 个文件被更改,包括 5 次插入10 次删除
  1. 1 1
      src/common/showmsg.h
  2. 4 9
      src/map/battle.c

+ 1 - 1
src/common/showmsg.h

@@ -4,7 +4,7 @@
 #ifndef _SHOWMSG_H_
 #define _SHOWMSG_H_
 
-#include "libconfig.h"
+#include "../../3rdparty/libconfig/libconfig.h"
 
 // for help with the console colors look here:
 // http://www.edoceo.com/liberum/?doc=printf-with-color

+ 4 - 9
src/map/battle.c

@@ -1067,17 +1067,12 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag
 			skill_castend_damage_id(bl,src,MH_MAGMA_FLOW,sce->val1,gettick(),0);
 		}
 
-		if( (sce = sc->data[SC_STONEHARDSKIN]) && flag&BF_WEAPON && damage > 0 ) {
+		if( damage > 0 && ((flag&(BF_WEAPON|BF_SHORT))==(BF_WEAPON|BF_SHORT)) && (sce = sc->data[SC_STONEHARDSKIN]) ) {
 			sce->val2 -= damage;
-			if( src->type == BL_PC ) {
-				TBL_PC *ssd = BL_CAST(BL_PC, src);
-				if (ssd && ssd->status.weapon != W_BOW)
-					skill_break_equip(src,src, EQP_WEAPON, 3000, BCT_SELF);
-			} else
-				skill_break_equip(src,src, EQP_WEAPON, 3000, BCT_SELF);
-			// 30% chance to reduce monster's ATK by 25% for 10 seconds.
-			if( src->type == BL_MOB )
+			if( src->type == BL_MOB ) //using explicite call instead break_equip for duration
 				sc_start(src,src, SC_STRIPWEAPON, 30, 0, skill_get_time2(RK_STONEHARDSKIN, sce->val1));
+			else
+				skill_break_equip(src,src, EQP_WEAPON, 3000, BCT_SELF);
 			if( sce->val2 <= 0 )
 				status_change_end(bl, SC_STONEHARDSKIN, INVALID_TIMER);
 		}