diff options
-rw-r--r-- | doc/script_commands.txt | 8 | ||||
-rw-r--r-- | src/map/script.c | 18 |
2 files changed, 26 insertions, 0 deletions
diff --git a/doc/script_commands.txt b/doc/script_commands.txt index 0eb383c0a..779589281 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -2322,6 +2322,14 @@ Whatever it returns is determined by type. --------------------------------------- +*charid2sd(<char id>) + +This function returns the RID of the character with the given character ID. + +If the character is offline or doesn't exist, 0 is returned. + +--------------------------------------- + *getarraysize(<array name>) This function returns highest index of the array that is filled. diff --git a/src/map/script.c b/src/map/script.c index 99d6f9088..898d341ed 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -8105,6 +8105,23 @@ BUILDIN(strnpcinfo) { return true; } +/** + * charid2rid: Returns the RID associated to the given character ID + */ +BUILDIN(charid2rid) +{ + int cid = script_getnum(st, 2); + TBL_PC *sd = map->charid2sd(cid); + + if (sd == NULL) { + script_pushint(st, 0); + return true; + } + + script_pushint(st, sd->status.account_id); + return true; +} + /*========================================== * GetEquipID(Pos); Pos: 1-SCRIPT_EQUIP_TABLE_SIZE *------------------------------------------*/ @@ -19827,6 +19844,7 @@ void script_parse_builtin(void) { BUILDIN_DEF(getguildmember,"i?"), BUILDIN_DEF(strcharinfo,"i"), BUILDIN_DEF(strnpcinfo,"i"), + BUILDIN_DEF(charid2rid,"i"), BUILDIN_DEF(getequipid,"i"), BUILDIN_DEF(getequipname,"i"), BUILDIN_DEF(getbrokenid,"i"), // [Valaris] |