summaryrefslogtreecommitdiff
path: root/src/emap/send.c
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-10-16 00:01:32 +0300
committerAndrei Karas <akaras@inbox.ru>2015-10-16 00:02:53 +0300
commit42cd207c4c5f0be387f85f4c89bdcf21929a7f84 (patch)
tree59c38e8d75180a252419af867d747191faa361a2 /src/emap/send.c
parentab731862f899dd87b84613ebf12a82cdc73e094f (diff)
downloadevol-hercules-42cd207c4c5f0be387f85f4c89bdcf21929a7f84.tar.gz
evol-hercules-42cd207c4c5f0be387f85f4c89bdcf21929a7f84.tar.bz2
evol-hercules-42cd207c4c5f0be387f85f4c89bdcf21929a7f84.tar.xz
evol-hercules-42cd207c4c5f0be387f85f4c89bdcf21929a7f84.zip
Add script function and packet to set group of cells to given mask (gat value)
New script function: setcells "map name", x1, y1, x2, y2, mask, "wall name"
Diffstat (limited to 'src/emap/send.c')
-rw-r--r--src/emap/send.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/emap/send.c b/src/emap/send.c
index 29e5d86..ccd4214 100644
--- a/src/emap/send.c
+++ b/src/emap/send.c
@@ -397,3 +397,40 @@ void send_changelook2(struct map_session_data* sd, struct block_list *bl, int id
}
clif->send(buf, 19, bl, target);
}
+
+void send_setwall(int m, int x1, int y1, int x2, int y2, int mask, enum send_target target)
+{
+ unsigned char buf[50];
+
+ WBUFW(buf, 0) = 0xb1b;
+ WBUFW(buf, 2) = x1;
+ WBUFW(buf, 4) = y1;
+ WBUFW(buf, 6) = x2;
+ WBUFW(buf, 8) = y2;
+ WBUFL(buf, 10) = mask;
+ mapindex->getmapname_ext(map->list[m].custom_name ? map->list[map->list[m].instance_src_map].name : map->list[m].name,(char*)WBUFP(buf, 14));
+
+ struct block_list dummy_bl;
+ dummy_bl.type = BL_NUL;
+ dummy_bl.x = x1;
+ dummy_bl.y = y1;
+ dummy_bl.m = m;
+ clif->send(buf, 30, &dummy_bl, target);
+}
+
+void send_setwall_single(int fd, int m, int x1, int y1, int x2, int y2, int mask)
+{
+ struct SessionExt *data = session_get(fd);
+ if (!data || data->clientVersion < 14)
+ return;
+
+ WFIFOHEAD (fd, 28);
+ WFIFOW(fd, 0) = 0xb1b;
+ WFIFOW(fd, 2) = x1;
+ WFIFOW(fd, 4) = y1;
+ WFIFOW(fd, 6) = x2;
+ WFIFOW(fd, 8) = y2;
+ WFIFOL(fd, 10) = mask;
+ mapindex->getmapname_ext(map->list[m].custom_name ? map->list[map->list[m].instance_src_map].name : map->list[m].name,(char*)WFIFOP(fd, 14));
+ WFIFOSET(fd, 30);
+}