diff options
author | AnnieRuru <jeankofannie2@gmail.com> | 2019-03-02 17:34:11 +0800 |
---|---|---|
committer | AnnieRuru <jeankofannie2@gmail.com> | 2019-03-02 17:34:11 +0800 |
commit | 433fd264ece900b8c563946737bbd4a73933c50a (patch) | |
tree | fa5d25e0a91e313c432418ac4b878cd4dff3d641 /src/map/script.c | |
parent | 1ac84c2dd856087a4a72fec95b3322137187637a (diff) | |
download | hercules-433fd264ece900b8c563946737bbd4a73933c50a.tar.gz hercules-433fd264ece900b8c563946737bbd4a73933c50a.tar.bz2 hercules-433fd264ece900b8c563946737bbd4a73933c50a.tar.xz hercules-433fd264ece900b8c563946737bbd4a73933c50a.zip |
* Add *mobattached and *killmonstergid script command
also fix quests_rachel, now support with *unitemote
Diffstat (limited to 'src/map/script.c')
-rw-r--r-- | src/map/script.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/map/script.c b/src/map/script.c index 7e6e06376..736b442cc 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -11095,6 +11095,21 @@ static BUILDIN(killmonsterall) return true; } +static BUILDIN(killmonstergid) +{ + int mobgid = script_getnum(st, 2); + struct mob_data *md = map->id2md(mobgid); + + if (md == NULL) { + ShowWarning("buildin_killmonstergid: Error in finding monster GID '%d' or the target is not a monster.\n", mobgid); + return false; + } + + md->state.npc_killmonster = 1; + status_kill(&md->bl); + return true; +} + /*========================================== * Creates a clone of a player. * clone map, x, y, event, char_id, master_id, mode, flag, duration @@ -11730,6 +11745,18 @@ static BUILDIN(playerattached) } /*========================================== + * Used by OnTouchNPC: label to return monster GID + *------------------------------------------*/ +static BUILDIN(mobattached) +{ + if (st->rid == 0 || map->id2md(st->rid) == NULL) + script_pushint(st, 0); + else + script_pushint(st, st->rid); + return true; +} + +/*========================================== *------------------------------------------*/ static BUILDIN(announce) { @@ -25338,6 +25365,7 @@ static void script_parse_builtin(void) BUILDIN_DEF(areamonster,"siiiisii???"), BUILDIN_DEF(killmonster,"ss?"), BUILDIN_DEF(killmonsterall,"s?"), + BUILDIN_DEF(killmonstergid, "i"), BUILDIN_DEF(clone,"siisi????"), BUILDIN_DEF(doevent,"s"), BUILDIN_DEF(donpcevent,"s"), @@ -25354,6 +25382,7 @@ static void script_parse_builtin(void) BUILDIN_DEF(attachnpctimer,"?"), // attached the player id to the npc timer [Celest] BUILDIN_DEF(detachnpctimer,"?"), // detached the player id from the npc timer [Celest] BUILDIN_DEF(playerattached,""), // returns id of the current attached player. [Skotlex] + BUILDIN_DEF(mobattached, ""), BUILDIN_DEF(announce,"si?????"), BUILDIN_DEF(mapannounce,"ssi?????"), BUILDIN_DEF(areaannounce,"siiiisi?????"), |