Expand 'checkvending' script
* Added returned values for buying store. * Made returned values as bitmask. &1 - Vending, &2 - Autotrading, &4 - Buyingstore Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
This commit is contained in:
parent
0fd7ba72df
commit
bbe733e236
@ -3567,24 +3567,35 @@ warg and 0 if they don't.
|
||||
---------------------------------------
|
||||
|
||||
*checkvending({"<Player Name>"})
|
||||
*checkchatting({"<Player Name>"})
|
||||
|
||||
Checks if the player is vending or in a chatroom.
|
||||
Checks if the player is vending or has buyingstore.
|
||||
Name is optional, and defaults to the attached player if omitted.
|
||||
|
||||
Return values for 'checkvending' are
|
||||
0 = not vending
|
||||
The returned values are bitmask of.
|
||||
0 = not vending, doesn't have buyingstore, & not autotrading
|
||||
1 = normal vending
|
||||
2 = vending using @autotrade
|
||||
|
||||
'checkchatting' returns 1 if they are in a chat room, 0 if they are not.
|
||||
2 = using @autotrade
|
||||
4 = has buyingstore
|
||||
|
||||
Examples:
|
||||
//This will check if Aaron is vending, and if so, put a message in front
|
||||
//of the attached player saying Aaron is vending.
|
||||
if (checkvending("Aaron"))
|
||||
//This will check if Aaron's state
|
||||
.@state = checkvending("Aaron");
|
||||
if (.@state&1)
|
||||
mes "Aaron is currently vending!";
|
||||
if (.@state&2)
|
||||
mes "Aaron is autotrading!";
|
||||
if (.@state&4)
|
||||
mes "Aaron has buying store!";
|
||||
|
||||
---------------------------------------
|
||||
|
||||
*checkchatting({"<Player Name>"})
|
||||
|
||||
Checks if the player is in a chatroom.
|
||||
Name is optional, and defaults to the attached player if omitted.
|
||||
Returns 1 if they are in a chat room, 0 if they are not.
|
||||
|
||||
Examples:
|
||||
//This will check if the attached player in a chat room or not.
|
||||
if (checkchatting())
|
||||
mes "You are currently in a chat room!";
|
||||
|
@ -15929,19 +15929,37 @@ BUILDIN_FUNC(getmonsterinfo)
|
||||
return SCRIPT_CMD_SUCCESS;
|
||||
}
|
||||
|
||||
BUILDIN_FUNC(checkvending) // check vending [Nab4]
|
||||
{
|
||||
/**
|
||||
* Check player's vending/buyingstore/autotrade state
|
||||
* checkvending({"<Player Name>"})
|
||||
* @author [Nab4]
|
||||
*/
|
||||
BUILDIN_FUNC(checkvending) {
|
||||
TBL_PC *sd = NULL;
|
||||
|
||||
if(script_hasdata(st,2))
|
||||
sd = map_nick2sd(script_getstr(st,2));
|
||||
if (script_hasdata(st,2)) {
|
||||
if (!(sd = map_nick2sd(script_getstr(st,2)))) {
|
||||
ShowError("buildin_checkvending: Player '%s' is not online!\n", script_getstr(st,2));
|
||||
return SCRIPT_CMD_FAILURE;
|
||||
}
|
||||
}
|
||||
else
|
||||
sd = script_rid2sd(st);
|
||||
|
||||
if(sd)
|
||||
script_pushint(st, sd->state.autotrade ? 2 : sd->state.vending);
|
||||
else
|
||||
if (!sd) {
|
||||
script_pushint(st,0);
|
||||
return SCRIPT_CMD_SUCCESS;
|
||||
}
|
||||
else {
|
||||
int8 ret = 0;
|
||||
if (sd->state.vending)
|
||||
ret |= 1;
|
||||
if (sd->state.autotrade)
|
||||
ret |= 2;
|
||||
if (sd->state.buyingstore)
|
||||
ret |= 4;
|
||||
script_pushint(st, ret);
|
||||
}
|
||||
return SCRIPT_CMD_SUCCESS;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user