浏览代码

Fixed all sniper traps (except ankle snare) from working on their owner; bugreport:1154
Also fixed a gcc warning in status.c

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15231 54d463be-8e91-2dee-dedb-b68131a5f0ec

shennetsind 13 年之前
父节点
当前提交
44895043e6
共有 2 个文件被更改,包括 8 次插入2 次删除
  1. 5 0
      src/map/skill.c
  2. 3 2
      src/map/status.c

+ 5 - 0
src/map/skill.c

@@ -9185,6 +9185,11 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns
 		case UNT_VERDURETRAP:
 		case UNT_FIRINGTRAP:
 		case UNT_ICEBOUNDTRAP:
+			/**
+			 * The owner of these traps (all but ankle snare) cannot be affected by it
+			 **/
+			if (sg->src_id == bl->id)
+				break;
 			map_foreachinrange(skill_trap_splash,&src->bl, skill_get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &src->bl,tick);
 			if (sg->unit_id != UNT_FIREPILLAR_ACTIVE)
 				clif_changetraplook(&src->bl, sg->unit_id==UNT_LANDMINE?UNT_FIREPILLAR_ACTIVE:UNT_USED_TRAPS);

+ 3 - 2
src/map/status.c

@@ -8357,8 +8357,9 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
 			if (!sc->data[SC_SLOWPOISON]) {
 				map_freeblock_lock();
 				status_zap(bl, sce->val4, 0);
-				if (sc->data[type]) // Check if the status still last ( can be dead since then ).
-					sc_timer_next(1000 + tick, status_change_timer, bl->id, data ); 
+				if (sc->data[type]) { // Check if the status still last ( can be dead since then ).
+					sc_timer_next(1000 + tick, status_change_timer, bl->id, data );
+				}
 				map_freeblock_unlock();
 			}
 			return 0;