diff options
-rw-r--r-- | src/emap/init.c | 1 | ||||
-rw-r--r-- | src/emap/script_buildins.c | 26 | ||||
-rw-r--r-- | src/emap/script_buildins.h | 1 |
3 files changed, 28 insertions, 0 deletions
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); |