add Ep3 $inftime command
This commit is contained in:
@@ -308,9 +308,12 @@ Some commands only work on the game server and not on the proxy server. The chat
|
|||||||
* `$maxlevel <level>`: Sets the maximum level for players to join the current game. (This only applies when joining; if a player joins and then levels up past this level during the game, they are not kicked out, but won't be able to rejoin if they leave.)
|
* `$maxlevel <level>`: Sets the maximum level for players to join the current game. (This only applies when joining; if a player joins and then levels up past this level during the game, they are not kicked out, but won't be able to rejoin if they leave.)
|
||||||
* `$minlevel <level>`: Sets the minimum level for players to join the current game.
|
* `$minlevel <level>`: Sets the minimum level for players to join the current game.
|
||||||
* `$password <password>`: Sets the game's join password. To unlock the game, run `$password` with nothing after it.
|
* `$password <password>`: Sets the game's join password. To unlock the game, run `$password` with nothing after it.
|
||||||
|
|
||||||
|
* Episode 3 commands (game server only)
|
||||||
* `$spec`: Toggles the allow spectators flag for Episode 3 games. If any players are spectating when this flag is disabled, they will be sent back to the lobby.
|
* `$spec`: Toggles the allow spectators flag for Episode 3 games. If any players are spectating when this flag is disabled, they will be sent back to the lobby.
|
||||||
* `$surrender`: Causes your team to immediately lose the current battle. (Episode 3 only)
|
* `$inftime`: Toggles infinite-time mode. Must be used before starting a battle. If infinite-time mode is enabled, the overall and per-phase time limits will be disabled regardless of the values chosen during battle setup. After completing a battle, infinite-time mode is reset to the server's default value (which can be set in Episode3BehaviorFlags in config.json).
|
||||||
* `$saverec <name>`: Saves the recording of the last Episode 3 battle.
|
* `$surrender`: Causes your team to immediately lose the current battle.
|
||||||
|
* `$saverec <name>`: Saves the recording of the last battle.
|
||||||
* `$playrec <name>`: Plays a battle recording. This command creates a spectator team and replays the specified battle log within it. There is a known issue which causes spectators to crash in some cases, so use of this command is currently not recommended.
|
* `$playrec <name>`: Plays a battle recording. This command creates a spectator team and replays the specified battle log within it. There is a known issue which causes spectators to crash in some cases, so use of this command is currently not recommended.
|
||||||
|
|
||||||
* Cheat mode commands
|
* Cheat mode commands
|
||||||
|
|||||||
+31
-2
@@ -1242,12 +1242,12 @@ static void server_command_enable_ep3_battle_debug_menu(
|
|||||||
}
|
}
|
||||||
auto base = l->ep3_server_base;
|
auto base = l->ep3_server_base;
|
||||||
if (!base) {
|
if (!base) {
|
||||||
send_text_message(l, u"$C6Episode 3 server\nis not initialized");
|
send_text_message(c, u"$C6Episode 3 server\nis not initialized");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto server = base->server;
|
auto server = base->server;
|
||||||
if (!server) {
|
if (!server) {
|
||||||
send_text_message(l, u"$C6Episode 3 server\nis not initialized");
|
send_text_message(c, u"$C6Episode 3 server\nis not initialized");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1263,6 +1263,34 @@ static void server_command_enable_ep3_battle_debug_menu(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void server_command_ep3_infinite_time(
|
||||||
|
shared_ptr<ServerState>, shared_ptr<Lobby> l, shared_ptr<Client> c, const std::u16string&) {
|
||||||
|
check_is_game(l, true);
|
||||||
|
check_is_ep3(c, true);
|
||||||
|
check_is_leader(l, c);
|
||||||
|
if (l->episode != Episode::EP3) {
|
||||||
|
throw logic_error("non-Ep3 client in Ep3 game");
|
||||||
|
}
|
||||||
|
auto base = l->ep3_server_base;
|
||||||
|
if (!base) {
|
||||||
|
send_text_message(c, u"$C6Episode 3 server\nis not initialized");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
auto server = base->server;
|
||||||
|
if (!server) {
|
||||||
|
send_text_message(c, u"$C6Episode 3 server\nis not initialized");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (server->setup_phase != Episode3::SetupPhase::REGISTRATION) {
|
||||||
|
send_text_message(c, u"$C6Battle is already\nin progress");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
base->behavior_flags ^= Episode3::BehaviorFlag::DISABLE_TIME_LIMITS;
|
||||||
|
bool infinite_time_enabled = (base->behavior_flags & Episode3::BehaviorFlag::DISABLE_TIME_LIMITS);
|
||||||
|
send_text_message(l, infinite_time_enabled ? u"$C6Infinite time enabled" : u"$C6Infinite time disabled");
|
||||||
|
}
|
||||||
|
|
||||||
static void server_command_surrender(
|
static void server_command_surrender(
|
||||||
shared_ptr<ServerState>, shared_ptr<Lobby> l, shared_ptr<Client> c, const std::u16string&) {
|
shared_ptr<ServerState>, shared_ptr<Lobby> l, shared_ptr<Client> c, const std::u16string&) {
|
||||||
check_is_game(l, true);
|
check_is_game(l, true);
|
||||||
@@ -1316,6 +1344,7 @@ static const unordered_map<u16string, ChatCommandDefinition> chat_commands({
|
|||||||
{u"$exit", {server_command_exit, proxy_command_exit}},
|
{u"$exit", {server_command_exit, proxy_command_exit}},
|
||||||
{u"$gc", {server_command_get_self_card, proxy_command_get_player_card}},
|
{u"$gc", {server_command_get_self_card, proxy_command_get_player_card}},
|
||||||
{u"$infhp", {server_command_infinite_hp, proxy_command_infinite_hp}},
|
{u"$infhp", {server_command_infinite_hp, proxy_command_infinite_hp}},
|
||||||
|
{u"$inftime", {server_command_ep3_infinite_time, nullptr}},
|
||||||
{u"$inftp", {server_command_infinite_tp, proxy_command_infinite_tp}},
|
{u"$inftp", {server_command_infinite_tp, proxy_command_infinite_tp}},
|
||||||
{u"$item", {server_command_item, proxy_command_item}},
|
{u"$item", {server_command_item, proxy_command_item}},
|
||||||
{u"$i", {server_command_item, proxy_command_item}},
|
{u"$i", {server_command_item, proxy_command_item}},
|
||||||
|
|||||||
Reference in New Issue
Block a user