Add channel_join script command (#7970)
This commit is contained in:
@@ -24656,6 +24656,37 @@ BUILDIN_FUNC(channel_create) {
|
||||
return SCRIPT_CMD_SUCCESS;
|
||||
}
|
||||
|
||||
// ===================================
|
||||
// *channel_join "<channel_name>"{, <char_id>};
|
||||
// Join an existing channel.
|
||||
// The command returns 0 upon success, and these values upon failure:
|
||||
// -1 : Invalid channel or player
|
||||
// -2 : Player already in channel
|
||||
// -3 : Player banned
|
||||
// -4 : Reached max limit
|
||||
// ===================================
|
||||
BUILDIN_FUNC(channel_join) {
|
||||
map_session_data *sd = nullptr;
|
||||
|
||||
if (!script_charid2sd(3, sd)) {
|
||||
script_pushint(st, -1);
|
||||
return SCRIPT_CMD_FAILURE;
|
||||
}
|
||||
|
||||
struct Channel *channel = nullptr;
|
||||
const char *chname = script_getstr(st, 2);
|
||||
|
||||
if (!(channel = channel_name2channel((char *)chname, nullptr, 0))) {
|
||||
ShowError("buildin_channel_join: Channel name '%s' is invalid.\n", chname);
|
||||
script_pushint(st, -1);
|
||||
return SCRIPT_CMD_FAILURE;
|
||||
}
|
||||
|
||||
script_pushint(st, channel_join(channel, sd));
|
||||
|
||||
return SCRIPT_CMD_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set channel option
|
||||
* channel_setopt "<chname>",<option>,<value>;
|
||||
@@ -27634,6 +27665,7 @@ struct script_function buildin_func[] = {
|
||||
|
||||
// Channel System
|
||||
BUILDIN_DEF(channel_create,"ss?????"),
|
||||
BUILDIN_DEF(channel_join, "s?"),
|
||||
BUILDIN_DEF(channel_setopt,"sii"),
|
||||
BUILDIN_DEF(channel_getopt,"si"),
|
||||
BUILDIN_DEF(channel_setcolor,"si"),
|
||||
|
||||
Reference in New Issue
Block a user