From 42cd207c4c5f0be387f85f4c89bdcf21929a7f84 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 16 Oct 2015 00:01:32 +0300 Subject: 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" --- src/emap/clif.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/emap/clif.c') diff --git a/src/emap/clif.c b/src/emap/clif.c index 4eec6a6..5618848 100644 --- a/src/emap/clif.c +++ b/src/emap/clif.c @@ -412,6 +412,17 @@ int eclif_send_actual(int *fd, void *buf, int *len) return 0; } } + if (packet == 0xb1b) + { + struct SessionExt *data = session_get(*fd); + if (!data) + return 0; + if (data->clientVersion < 14) + { // not sending new packets to old clients + hookStop(); + return 0; + } + } } return 0; } @@ -450,10 +461,22 @@ void eclif_move(struct unit_data *ud) send_advmoving(ud, false, ud->bl, AREA_WOS); } +bool tempChangeMap; + void eclif_parse_LoadEndAck_pre(int *fdPtr __attribute__ ((unused)), struct map_session_data *sd) { sd->state.warp_clean = 0; + tempChangeMap = sd->state.changemap; +} + +void eclif_parse_LoadEndAck_post(int *fdPtr __attribute__ ((unused)), + struct map_session_data *sd) +{ + if (!tempChangeMap) + { // some messages not sent if map not changed + map->iwall_get(sd); + } } void eclif_changelook2(struct block_list *bl, int type, int val, -- cgit v1.2.3-60-g2f50