From 6f2b524a4f1349a588bd5db4526b485eda7a6d2d Mon Sep 17 00:00:00 2001 From: Haru Date: Sat, 16 May 2015 16:22:15 +0200 Subject: Added charid2rid script command - Returns the account ID (RID) for the given character ID. - As per Streusel's request. Signed-off-by: Haru --- doc/script_commands.txt | 8 ++++++++ src/map/script.c | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) 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() + +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() 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] -- cgit v1.2.3-70-g09d2