summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLemongrass3110 <lemongrass@kstp.at>2016-12-01 13:28:34 +0100
committerLemongrass3110 <lemongrass@kstp.at>2016-12-01 14:09:05 +0100
commit9c2d186e524e436aa6e26bc6358dfaf67e038119 (patch)
tree72b45abcaf3105ff3b6705bc19ce63251e5c70a9
parentcadfd69b1f8199d11eed5d303880cd847ad736da (diff)
downloadhercules-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
-rw-r--r--src/map/script.c5
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 {