From ac2ba094158e7e44f392399001fc1f43b12fded9 Mon Sep 17 00:00:00 2001 From: Lemongrass3110 Date: Thu, 1 Dec 2016 13:06:54 +0100 Subject: [PATCH] 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. --- src/map/script.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/map/script.c b/src/map/script.c index 1efcbdf555..750ee63e73 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -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); }