diff options
author | Lemongrass3110 <lemongrass@kstp.at> | 2016-12-01 13:28:34 +0100 |
---|---|---|
committer | Lemongrass3110 <lemongrass@kstp.at> | 2016-12-01 14:09:05 +0100 |
commit | 9c2d186e524e436aa6e26bc6358dfaf67e038119 (patch) | |
tree | 72b45abcaf3105ff3b6705bc19ce63251e5c70a9 /src/map/script.c | |
parent | cadfd69b1f8199d11eed5d303880cd847ad736da (diff) | |
download | hercules-9c2d186e524e436aa6e26bc6358dfaf67e038119.tar.gz hercules-9c2d186e524e436aa6e26bc6358dfaf67e038119.tar.bz2 hercules-9c2d186e524e436aa6e26bc6358dfaf67e038119.tar.xz hercules-9c2d186e524e436aa6e26bc6358dfaf67e038119.zip |
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.
Original commit: rathena/rathena@ac2ba09
Diffstat (limited to 'src/map/script.c')
-rw-r--r-- | src/map/script.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/map/script.c b/src/map/script.c index 5ebbf2100..3a81c8075 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -6391,6 +6391,9 @@ int buildin_areawarp_sub(struct block_list *bl, va_list ap) pc->randomwarp(sd, CLR_TELEPORT); } else if (x3 != 0 && y3 != 0) { 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 ) @@ -6401,7 +6404,7 @@ 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, bl, tx, ty, CELL_CHKNOPASS) && j < max); + } while (map->getcell(m, bl, tx, ty, CELL_CHKNOPASS) && j < max); pc->setpos(sd, index, tx, ty, CLR_OUTSIGHT); } else { |