From f170e1cbb556b491a7ba7a74a26d19ab174752f0 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Fri, 5 Apr 2019 19:12:18 +0000 Subject: Implement sendMapMask() which sends a custom map mask only to a specified user. Remember to use getmapmask() before! --- src/emap/init.c | 1 + src/emap/script_buildins.c | 26 ++++++++++++++++++++++++++ src/emap/script_buildins.h | 1 + 3 files changed, 28 insertions(+) diff --git a/src/emap/init.c b/src/emap/init.c index 31656ef..d8a6d12 100644 --- a/src/emap/init.c +++ b/src/emap/init.c @@ -153,6 +153,7 @@ HPExport void plugin_init (void) addScriptCommand("npcwalkto", "ii", npcWalkTo); addScriptCommand("rif", "is*", rif); addScriptCommand("setmapmask", "si", setMapMask); + addScriptCommand("sendmapmask", "i*", sendMapMask); addScriptCommand("addmapmask", "si", addMapMask); addScriptCommand("removemapmask", "si", removeMapMask); addScriptCommand("getmapmask", "s", getMapMask); diff --git a/src/emap/script_buildins.c b/src/emap/script_buildins.c index e1c9123..93e9388 100644 --- a/src/emap/script_buildins.c +++ b/src/emap/script_buildins.c @@ -730,6 +730,32 @@ BUILDIN(setMapMask) return true; } +// sendMapMask(mask{, "player name"}) +BUILDIN(sendMapMask) +{ + const int val = script_getnum(st, 2); + + struct map_session_data *sd = NULL; + if (script_hasdata(st, 3) && script_isstringtype(st, 3)) + { + sd = script->nick2sd(st, script_getstr(st, 3)); + } + else + { + sd = script->rid2sd(st); + } + + if (sd == NULL) + { + ShowWarning("player not attached\n"); + script->reportsrc(st); + return false; + } + + send_mapmask(sd->fd, val); + return true; +} + BUILDIN(getMapMask) { const char *const mapName = script_getstr(st, 2); diff --git a/src/emap/script_buildins.h b/src/emap/script_buildins.h index a72a035..fab271e 100644 --- a/src/emap/script_buildins.h +++ b/src/emap/script_buildins.h @@ -29,6 +29,7 @@ BUILDIN(setq); BUILDIN(setNpcDir); BUILDIN(rif); BUILDIN(setMapMask); +BUILDIN(sendMapMask); BUILDIN(getMapMask); BUILDIN(addMapMask); BUILDIN(removeMapMask); -- cgit v1.2.3-60-g2f50