summaryrefslogtreecommitdiff
path: root/src/map/script.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/script.c')
-rw-r--r--src/map/script.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/map/script.c b/src/map/script.c
index 8ddb056bd..533e421d8 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -9967,14 +9967,22 @@ BUILDIN(setgroupid) {
/// Returns the group ID of the player.
///
-/// getgroupid() -> <int>
-BUILDIN(getgroupid)
-{
- struct map_session_data *sd = script->rid2sd(st);
- if (sd == NULL)
+/// getgroupid({<account id>}) -> <int>
+BUILDIN(getgroupid) {
+ struct map_session_data *sd = NULL;
+
+ if (script_hasdata(st, 2)) {
+ sd = map->id2sd(script_getnum(st, 2));
+ } else {
+ sd = script->rid2sd(st);
+ }
+
+ if (sd == NULL) {
+ script_pushint(st, -1);
return true; // no player attached, report source
- script_pushint(st, pc_get_group_id(sd));
+ }
+ script_pushint(st, pc_get_group_id(sd));
return true;
}
@@ -23861,7 +23869,7 @@ void script_parse_builtin(void) {
BUILDIN_DEF(basicskillcheck,""),
BUILDIN_DEF(getgmlevel,""),
BUILDIN_DEF(setgroupid, "i?"),
- BUILDIN_DEF(getgroupid,""),
+ BUILDIN_DEF(getgroupid,"?"),
BUILDIN_DEF(end,""),
BUILDIN_DEF(checkoption,"i?"),
BUILDIN_DEF(setoption,"i??"),