summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/init.c1
-rw-r--r--src/map/script.c28
-rw-r--r--src/map/script.h1
3 files changed, 30 insertions, 0 deletions
diff --git a/src/map/init.c b/src/map/init.c
index e22bcba..519ca02 100644
--- a/src/map/init.c
+++ b/src/map/init.c
@@ -78,6 +78,7 @@ HPExport void plugin_init (void)
addScriptCommand("addmapmask", "si", addMapMask);
addScriptCommand("removemapmask", "si", removeMapMask);
addScriptCommand("getmapmask", "s", getMapMask);
+ addScriptCommand("getnpcclass", "*", getNpcClass);
do_init_langs();
diff --git a/src/map/script.c b/src/map/script.c
index 676d598..8b8cbfe 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -506,3 +506,31 @@ BUILDIN(removeMapMask)
send_mapmask_brodcast(m, mapData->mask);
return true;
}
+
+BUILDIN(getNpcClass)
+{
+ struct npc_data *nd = 0;
+
+ if (script_hasdata(st, 2))
+ {
+ nd = npc->name2id (script_getstr(st, 2));
+ }
+ if (!nd && !st->oid)
+ {
+ script_pushint(st, -1);
+ return false;
+ }
+
+ if (!nd)
+ nd = (struct npc_data *) map->id2bl(st->oid);
+
+ if (!nd)
+ {
+ script_pushint(st, -1);
+ return false;
+ }
+
+ script_pushint(st, (int)nd->class_);
+
+ return true;
+}
diff --git a/src/map/script.h b/src/map/script.h
index 3210cca..36e8150 100644
--- a/src/map/script.h
+++ b/src/map/script.h
@@ -24,5 +24,6 @@ BUILDIN(setMapMask);
BUILDIN(getMapMask);
BUILDIN(addMapMask);
BUILDIN(removeMapMask);
+BUILDIN(getNpcClass);
#endif // EVOL_MAP_SCRIPT