diff options
author | Kenpachi Developer <Kenpachi.Developer@gmx.de> | 2020-02-09 07:00:14 +0100 |
---|---|---|
committer | Kenpachi Developer <Kenpachi.Developer@gmx.de> | 2020-02-11 10:24:21 +0100 |
commit | 1a410d241918f85010c59827dfd2fa3b1952d238 (patch) | |
tree | 56bcbb30a18d135d2f63b41d08e4e35043eb124d /src/map/script.c | |
parent | c03722679a01e5f181c2138565e95a6b0981a124 (diff) | |
download | hercules-1a410d241918f85010c59827dfd2fa3b1952d238.tar.gz hercules-1a410d241918f85010c59827dfd2fa3b1952d238.tar.bz2 hercules-1a410d241918f85010c59827dfd2fa3b1952d238.tar.xz hercules-1a410d241918f85010c59827dfd2fa3b1952d238.zip |
Add unitiswalking() script command
Diffstat (limited to 'src/map/script.c')
-rw-r--r-- | src/map/script.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/map/script.c b/src/map/script.c index 26bd678fe..755a099ec 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -21025,6 +21025,38 @@ static BUILDIN(unitwalk) return true; } +/** + * Checks if a unit is walking. + * + * Returns 1 if unit is walking, 0 if unit is not walking and -1 on error. + * + * @code{.herc} + * unitiswalking({<GID>}); + * @endcode + * + **/ +static BUILDIN(unitiswalking) +{ + int gid = script_hasdata(st, 2) ? script_getnum(st, 2) : st->rid; + struct block_list *bl = map->id2bl(gid); + + if (bl == NULL) { + ShowWarning("buildin_unitiswalking: Error in finding object for GID %d!\n", gid); + script_pushint(st, -1); + return false; + } + + if (unit->bl2ud(bl) == NULL) { + ShowWarning("buildin_unitiswalking: Error in finding unit_data for GID %d!\n", gid); + script_pushint(st, -1); + return false; + } + + script_pushint(st, unit->is_walking(bl)); + + return true; +} + /// Kills the unit /// /// unitkill <unit_id>; @@ -26635,6 +26667,7 @@ static void script_parse_builtin(void) BUILDIN_DEF(getunittitle,"i"), BUILDIN_DEF(setunittitle,"is"), BUILDIN_DEF(unitwalk,"ii?"), + BUILDIN_DEF(unitiswalking, "?"), BUILDIN_DEF(unitkill,"i"), BUILDIN_DEF(unitwarp,"isii"), BUILDIN_DEF(unitattack,"iv?"), |