add wchat shell command
This commit is contained in:
@@ -201,6 +201,8 @@ Proxy session commands:\n\
|
|||||||
c TEXT\n\
|
c TEXT\n\
|
||||||
chat TEXT\n\
|
chat TEXT\n\
|
||||||
Send a chat message to the server.\n\
|
Send a chat message to the server.\n\
|
||||||
|
wchat DATA\n\
|
||||||
|
Send a chat message with private_flags on Episode 3.\n\
|
||||||
dchat DATA\n\
|
dchat DATA\n\
|
||||||
Send a chat message to the server with arbitrary data in it.\n\
|
Send a chat message to the server with arbitrary data in it.\n\
|
||||||
info-board TEXT\n\
|
info-board TEXT\n\
|
||||||
@@ -672,6 +674,21 @@ Proxy session commands:\n\
|
|||||||
session->server_channel.send(0x06, 0x00, data);
|
session->server_channel.send(0x06, 0x00, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else if ((command_name == "wc") || (command_name == "wchat")) {
|
||||||
|
auto session = this->get_proxy_session(session_name);
|
||||||
|
if ((session->version != GameVersion::GC) ||
|
||||||
|
!(session->newserv_client_config.cfg.flags & Client::Flag::IS_EPISODE_3)) {
|
||||||
|
throw runtime_error("wchat can only be used on Episode 3");
|
||||||
|
}
|
||||||
|
string data(8, '\0');
|
||||||
|
data.push_back('\x40'); // private_flags: visible to all
|
||||||
|
data.push_back('\x09');
|
||||||
|
data.push_back('E');
|
||||||
|
data += command_args;
|
||||||
|
data.push_back('\0');
|
||||||
|
data.resize((data.size() + 3) & (~3));
|
||||||
|
session->server_channel.send(0x06, 0x00, data);
|
||||||
|
|
||||||
} else if (command_name == "marker") {
|
} else if (command_name == "marker") {
|
||||||
auto session = this->get_proxy_session(session_name);
|
auto session = this->get_proxy_session(session_name);
|
||||||
session->server_channel.send(0x89, stoul(command_args));
|
session->server_channel.send(0x89, stoul(command_args));
|
||||||
|
|||||||
Reference in New Issue
Block a user