|
@@ -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);
|
|
|
}
|