diff options
-rw-r--r-- | doc/script_commands.txt | 7 | ||||
-rw-r--r-- | src/map/script.c | 17 |
2 files changed, 22 insertions, 2 deletions
diff --git a/doc/script_commands.txt b/doc/script_commands.txt index 9d3673490..146e58a45 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -6798,7 +6798,8 @@ if any. The valid information types are: - 0 - Number of users currently chatting. + 0 - Number of users currently in the waiting room + $@chatmembers[] - list of user account_id 1 - Maximum number of users allowed. 2 - Will return 1 if the waiting room has a trigger set. 0 otherwise. @@ -6811,6 +6812,10 @@ The valid information types are: 32 - Whether or not the waiting room is full. 33 - Whether the amount of users in the waiting room is higher than the trigger number. + 34 - Minimum Base Level to enter waiting room. + 35 - Maximum Base Level to enter waiting room. + 36 - Minimum Zeny to enter waiting room. + --------------------------------------- diff --git a/src/map/script.c b/src/map/script.c index 23cf034b8..3e6fb2c47 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -11420,6 +11420,10 @@ BUILDIN(disablewaitingroomevent) { /// <type>=16 : the name of the waiting room event /// <type>=32 : if the waiting room is full /// <type>=33 : if there are enough users to trigger the event +/// -- Custom Added +/// <type>=34 : minimum player of waiting room +/// <type>=35 : maximum player of waiting room +/// <type>=36 : minimum zeny required /// /// getwaitingroomstate(<type>,"<npc_name>") -> <info> /// getwaitingroomstate(<type>) -> <info> @@ -11427,6 +11431,7 @@ BUILDIN(getwaitingroomstate) { struct npc_data *nd; struct chat_data *cd; int type; + int i; type = script_getnum(st,2); if( script_hasdata(st,3) ) @@ -11440,7 +11445,13 @@ BUILDIN(getwaitingroomstate) { } switch(type) { - case 0: script_pushint(st, cd->users); break; + case 0: + for (i = 0; i < cd->users; i++) { + struct map_session_data *sd = cd->usersd[i]; + mapreg->setreg(reference_uid(script->add_str("$@chatmembers"), i), sd->bl.id); + } + script_pushint(st, cd->users); + break; case 1: script_pushint(st, cd->limit); break; case 2: script_pushint(st, cd->trigger&0x7f); break; case 3: script_pushint(st, ((cd->trigger&0x80)!=0)); break; @@ -11449,6 +11460,10 @@ BUILDIN(getwaitingroomstate) { case 16: script_pushstrcopy(st, cd->npc_event);break; case 32: script_pushint(st, (cd->users >= cd->limit)); break; case 33: script_pushint(st, (cd->users >= cd->trigger)); break; + + case 34: script_pushint(st, cd->minLvl); break; + case 35: script_pushint(st, cd->maxLvl); break; + case 36: script_pushint(st, cd->zeny); break; default: script_pushint(st, -1); break; } return true; |