Fixed areawarp cell check

The script command areawarp has been checking the wrong target map for ages. It has been checking the mapindex rather than the mapid and therefore returned a wrong result.
This commit is contained in:
Lemongrass3110 2016-12-01 13:06:54 +01:00
parent d7e5f1b5d9
commit ac2ba09415

View File

@ -5501,6 +5501,9 @@ static int buildin_areawarp_sub(struct block_list *bl,va_list ap)
pc_randomwarp((TBL_PC *)bl,CLR_TELEPORT);
else if(x3 && y3) {
int max, tx, ty, j = 0;
int16 m;
m = map_mapindex2mapid(index);
// choose a suitable max number of attempts
if( (max = (y3-y2+1)*(x3-x2+1)*3) > 1000 )
@ -5511,7 +5514,7 @@ static int buildin_areawarp_sub(struct block_list *bl,va_list ap)
tx = rnd()%(x3-x2+1)+x2;
ty = rnd()%(y3-y2+1)+y2;
j++;
} while( map_getcell(index,tx,ty,CELL_CHKNOPASS) && j < max );
} while( map_getcell(m,tx,ty,CELL_CHKNOPASS) && j < max );
pc_setpos((TBL_PC *)bl,index,tx,ty,CLR_OUTSIGHT);
}