diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-10-16 00:01:32 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-10-16 00:02:53 +0300 |
commit | 42cd207c4c5f0be387f85f4c89bdcf21929a7f84 (patch) | |
tree | 59c38e8d75180a252419af867d747191faa361a2 /src/emap/send.c | |
parent | ab731862f899dd87b84613ebf12a82cdc73e094f (diff) | |
download | evol-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.c | 37 |
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); +} |