summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/script_commands.txt13
-rw-r--r--src/map/script.c16
2 files changed, 26 insertions, 3 deletions
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index e2a0af548..50f5d5dfe 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -2671,9 +2671,9 @@ Notice that NPC objects disabled with 'disablenpc' will still be located.
*getgmlevel()
-This function will return the GM level of the account to which the invoking
-character belongs. If this is somehow executed from a console command, 99 will
-be returned, and 0 will be returned if the account has no GM level.
+This function will return the (GM) level of player group the account to which the
+invoking character belongs. If this is somehow executed from a console command,
+99 will be returned, and 0 will be returned if the account has no GM level.
This allows you to make NPC's only accessible for certain GM levels, or behave
specially when talked to by GMs.
@@ -2683,6 +2683,13 @@ specially when talked to by GMs.
---------------------------------------
+*getgroupid()
+
+This function will return the id of player group the account to which the
+invoking player belongs.
+
+---------------------------------------
+
*gettimetick(<tick type>)
This function will return the system time in UNIX epoch time (if tick type is 2)
diff --git a/src/map/script.c b/src/map/script.c
index 14c3ae6d9..8fdefe2c2 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -7350,6 +7350,21 @@ BUILDIN_FUNC(getgmlevel)
return 0;
}
+/// Returns the group ID of the player.
+///
+/// getgroupid() -> <int>
+BUILDIN_FUNC(getgroupid)
+{
+ TBL_PC* sd;
+
+ sd = script_rid2sd(st);
+ if (sd == NULL)
+ return 1; // no player attached, report source
+ script_pushint(st, pc_get_group_id(sd));
+
+ return 0;
+}
+
/// Terminates the execution of this script instance.
///
/// end
@@ -15978,6 +15993,7 @@ struct script_function buildin_func[] = {
BUILDIN_DEF(getgdskilllv,"iv"),
BUILDIN_DEF(basicskillcheck,""),
BUILDIN_DEF(getgmlevel,""),
+ BUILDIN_DEF(getgroupid,""),
BUILDIN_DEF(end,""),
BUILDIN_DEF(checkoption,"i"),
BUILDIN_DEF(setoption,"i?"),