diff options
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); +} |