Browse Source

Follow-up to r17408 fixing Cloaking again that I broke - Fixes bugreport:7821

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17412 54d463be-8e91-2dee-dedb-b68131a5f0ec
akinari1087 12 years ago
parent
commit
7072dd267d
2 changed files with 3 additions and 3 deletions
  1. 1 1
      src/map/map.c
  2. 2 2
      src/map/skill.c

+ 1 - 1
src/map/map.c

@@ -425,7 +425,7 @@ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick)
 			if (sc->data[SC_DANCING])
 			if (sc->data[SC_DANCING])
 				skill_unit_move_unit_group(skill_id2group(sc->data[SC_DANCING]->val2), bl->m, x1-x0, y1-y0);
 				skill_unit_move_unit_group(skill_id2group(sc->data[SC_DANCING]->val2), bl->m, x1-x0, y1-y0);
 			else {
 			else {
-				if (sc->data[SC_CLOAKING] && !skill_check_cloaking(bl, NULL))
+				if (sc->data[SC_CLOAKING] && sc->data[SC_CLOAKING]->val1 < 3 && !skill_check_cloaking(bl, NULL))
 					status_change_end(bl, SC_CLOAKING, INVALID_TIMER);
 					status_change_end(bl, SC_CLOAKING, INVALID_TIMER);
 				if (sc->data[SC_WARM])
 				if (sc->data[SC_WARM])
 					skill_unit_move_unit_group(skill_id2group(sc->data[SC_WARM]->val4), bl->m, x1-x0, y1-y0);
 					skill_unit_move_unit_group(skill_id2group(sc->data[SC_WARM]->val4), bl->m, x1-x0, y1-y0);

+ 2 - 2
src/map/skill.c

@@ -12896,8 +12896,8 @@ int skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_id
 			static int dx[] = { 0, 1, 0, -1, -1,  1, 1, -1};
 			static int dx[] = { 0, 1, 0, -1, -1,  1, 1, -1};
 			static int dy[] = {-1, 0, 1,  0, -1, -1, 1,  1};
 			static int dy[] = {-1, 0, 1,  0, -1, -1, 1,  1};
 
 
-			if( (sd->bl.type == BL_PC && battle_config.pc_cloak_check_type&1)
-			||	(sd->bl.type != BL_PC && battle_config.monster_cloak_check_type&1) ) { //Check for walls.
+			if( skill_lv < 3 && ((sd->bl.type == BL_PC && battle_config.pc_cloak_check_type&1)
+			||	(sd->bl.type != BL_PC && battle_config.monster_cloak_check_type&1) )) { //Check for walls.
 				int i;
 				int i;
 				ARR_FIND( 0, 8, i, map_getcell(sd->bl.m, sd->bl.x+dx[i], sd->bl.y+dy[i], CELL_CHKNOPASS) != 0 );
 				ARR_FIND( 0, 8, i, map_getcell(sd->bl.m, sd->bl.x+dx[i], sd->bl.y+dy[i], CELL_CHKNOPASS) != 0 );
 				if( i == 8 ) {
 				if( i == 8 ) {