From 8de5e363fca358fa0e7c91be83766698a3eebbb5 Mon Sep 17 00:00:00 2001 From: wushin Date: Sun, 27 Sep 2015 22:27:18 -0500 Subject: bl could leave and cause clif_send to look for people on undefined.gat --- src/map/clif.cpp | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/map/clif.cpp b/src/map/clif.cpp index 49089d7..64e9939 100644 --- a/src/map/clif.cpp +++ b/src/map/clif.cpp @@ -324,18 +324,28 @@ int clif_send(const Buffer& buf, dumb_ptr bl, SendWho type, short mi break; case SendWho::AREA: case SendWho::AREA_WOS: - map_foreachinarea(std::bind(clif_send_sub, ph::_1, buf, bl, type, min_version), - bl->bl_m, - bl->bl_x - AREA_SIZE, bl->bl_y - AREA_SIZE, - bl->bl_x + AREA_SIZE, bl->bl_y + AREA_SIZE, - BL::PC); + { + if (bl->bl_m != borrow(undefined_gat)) + { + map_foreachinarea(std::bind(clif_send_sub, ph::_1, buf, bl, type, min_version), + bl->bl_m, + bl->bl_x - AREA_SIZE, bl->bl_y - AREA_SIZE, + bl->bl_x + AREA_SIZE, bl->bl_y + AREA_SIZE, + BL::PC); + } + } break; case SendWho::AREA_CHAT_WOC: - map_foreachinarea(std::bind(clif_send_sub, ph::_1, buf, bl, SendWho::AREA_CHAT_WOC, min_version), - bl->bl_m, - bl->bl_x - (AREA_SIZE), bl->bl_y - (AREA_SIZE), - bl->bl_x + (AREA_SIZE), bl->bl_y + (AREA_SIZE), - BL::PC); + { + if (bl->bl_m != borrow(undefined_gat)) + { + map_foreachinarea(std::bind(clif_send_sub, ph::_1, buf, bl, SendWho::AREA_CHAT_WOC, min_version), + bl->bl_m, + bl->bl_x - (AREA_SIZE), bl->bl_y - (AREA_SIZE), + bl->bl_x + (AREA_SIZE), bl->bl_y + (AREA_SIZE), + BL::PC); + } + } break; case SendWho::PARTY_AREA: // 同じ画面内の全パーティーメンバに送信 -- cgit v1.2.3-60-g2f50