summaryrefslogtreecommitdiff
path: root/src/map/script.c
diff options
context:
space:
mode:
authorAnnieRuru <jeankofannie2@gmail.com>2019-03-02 17:34:11 +0800
committerAnnieRuru <jeankofannie2@gmail.com>2019-03-02 17:34:11 +0800
commit433fd264ece900b8c563946737bbd4a73933c50a (patch)
treefa5d25e0a91e313c432418ac4b878cd4dff3d641 /src/map/script.c
parent1ac84c2dd856087a4a72fec95b3322137187637a (diff)
downloadhercules-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.c29
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?????"),