refine game info messages
This commit is contained in:
@@ -201,6 +201,7 @@ Client::Client(
|
|||||||
card_battle_table_number(-1),
|
card_battle_table_number(-1),
|
||||||
card_battle_table_seat_number(0),
|
card_battle_table_seat_number(0),
|
||||||
card_battle_table_seat_state(0),
|
card_battle_table_seat_state(0),
|
||||||
|
last_game_info_requested(0),
|
||||||
should_update_play_time(false),
|
should_update_play_time(false),
|
||||||
bb_character_index(-1),
|
bb_character_index(-1),
|
||||||
next_exp_value(0),
|
next_exp_value(0),
|
||||||
|
|||||||
@@ -219,6 +219,7 @@ public:
|
|||||||
std::weak_ptr<Episode3::Tournament::Team> ep3_tournament_team;
|
std::weak_ptr<Episode3::Tournament::Team> ep3_tournament_team;
|
||||||
std::shared_ptr<Episode3::BattleRecord> ep3_prev_battle_record;
|
std::shared_ptr<Episode3::BattleRecord> ep3_prev_battle_record;
|
||||||
std::shared_ptr<const Menu> last_menu_sent;
|
std::shared_ptr<const Menu> last_menu_sent;
|
||||||
|
uint32_t last_game_info_requested;
|
||||||
struct JoinCommand {
|
struct JoinCommand {
|
||||||
uint16_t command;
|
uint16_t command;
|
||||||
uint32_t flag;
|
uint32_t flag;
|
||||||
|
|||||||
+89
-100
@@ -1720,7 +1720,7 @@ static void on_CA_Ep3(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (s->ep3_behavior_flags & Episode3::BehaviorFlag::ENABLE_STATUS_MESSAGES) {
|
if (s->ep3_behavior_flags & Episode3::BehaviorFlag::ENABLE_STATUS_MESSAGES) {
|
||||||
send_text_message(l, "$C6Recording enabled");
|
send_text_message(l, "$C7Recording enabled");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1795,10 +1795,10 @@ static void on_E2_Ep3(shared_ptr<Client> c, uint16_t, uint32_t flag, string&) {
|
|||||||
if (tourn) {
|
if (tourn) {
|
||||||
send_ep3_tournament_entry_list(c, tourn, false);
|
send_ep3_tournament_entry_list(c, tourn, false);
|
||||||
} else {
|
} else {
|
||||||
send_lobby_message_box(c, "$C6The tournament\nhas concluded.");
|
send_lobby_message_box(c, "$C7The tournament\nhas concluded.");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
send_lobby_message_box(c, "$C6You are not\nregistered in a\ntournament.");
|
send_lobby_message_box(c, "$C7You are not\nregistered in a\ntournament.");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1822,7 +1822,7 @@ static void on_E2_Ep3(shared_ptr<Client> c, uint16_t, uint32_t flag, string&) {
|
|||||||
}
|
}
|
||||||
case 0x03: // Create tournament spectator team (get battle list)
|
case 0x03: // Create tournament spectator team (get battle list)
|
||||||
case 0x04: // Join tournament spectator team (get team list)
|
case 0x04: // Join tournament spectator team (get team list)
|
||||||
send_lobby_message_box(c, "$C6Use View Regular\nBattle for this");
|
send_lobby_message_box(c, "$C7Use View Regular\nBattle for this");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw runtime_error("invalid tournament operation");
|
throw runtime_error("invalid tournament operation");
|
||||||
@@ -1857,7 +1857,7 @@ static void on_09(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
bool is_download_quest = !c->lobby.lock();
|
bool is_download_quest = !c->lobby.lock();
|
||||||
auto quest_index = s->quest_index(c->version());
|
auto quest_index = s->quest_index(c->version());
|
||||||
if (!quest_index) {
|
if (!quest_index) {
|
||||||
send_quest_info(c, "$C6Quests are not available.", is_download_quest);
|
send_quest_info(c, "$C7Quests are not available.", is_download_quest);
|
||||||
} else {
|
} else {
|
||||||
auto q = quest_index->get(cmd.item_id);
|
auto q = quest_index->get(cmd.item_id);
|
||||||
if (!q) {
|
if (!q) {
|
||||||
@@ -1889,72 +1889,43 @@ static void on_09(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
string info;
|
string info;
|
||||||
for (size_t x = 0; x < game->max_clients; x++) {
|
if (c->last_game_info_requested != game->lobby_id) {
|
||||||
const auto& game_c = game->clients[x];
|
// Send page 1 (players)
|
||||||
if (game_c.get()) {
|
c->last_game_info_requested = game->lobby_id;
|
||||||
auto player = game_c->character();
|
for (size_t x = 0; x < game->max_clients; x++) {
|
||||||
string name = escape_player_name(player->disp.name.decode(game_c->language()));
|
const auto& game_c = game->clients[x];
|
||||||
if (game->is_ep3()) {
|
if (game_c.get()) {
|
||||||
info += string_printf("%zu: $C6%s$C7 L%" PRIu32 "\n",
|
auto player = game_c->character();
|
||||||
x + 1, name.c_str(), player->disp.stats.level + 1);
|
string name = escape_player_name(player->disp.name.decode(game_c->language()));
|
||||||
} else {
|
info += string_printf("%s\n %s Lv%" PRIu32 " %c\n",
|
||||||
info += string_printf("%zu: $C6%s$C7 %s L%" PRIu32 "\n",
|
name.c_str(),
|
||||||
x + 1, name.c_str(),
|
name_for_char_class(player->disp.visual.char_class),
|
||||||
abbreviation_for_char_class(player->disp.visual.char_class),
|
player->disp.stats.level + 1,
|
||||||
player->disp.stats.level + 1);
|
char_for_language_code(game_c->language()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
info += string_printf("%s %c %s %s\n",
|
// If page 1 is blank (there are no players) or we sent page 1 last
|
||||||
abbreviation_for_episode(game->episode),
|
// time, send page 2 (extended info)
|
||||||
abbreviation_for_difficulty(game->difficulty),
|
if (info.empty()) {
|
||||||
abbreviation_for_mode(game->mode),
|
c->last_game_info_requested = 0;
|
||||||
abbreviation_for_section_id(game->effective_section_id()));
|
info += string_printf("Section ID: %s\n", name_for_section_id(game->effective_section_id()));
|
||||||
|
if (game->max_level != 0xFFFFFFFF) {
|
||||||
|
info += string_printf("Req. level: %" PRIu32 "-%" PRIu32 "\n", game->min_level + 1, game->max_level + 1);
|
||||||
|
} else if (game->min_level != 0) {
|
||||||
|
info += string_printf("Req. level: %" PRIu32 "+\n", game->min_level + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (c->config.check_flag(Client::Flag::DEBUG_ENABLED)) {
|
||||||
|
info += string_printf("%s\n", name_for_enum(game->base_version));
|
||||||
|
}
|
||||||
|
|
||||||
if (c->config.check_flag(Client::Flag::DEBUG_ENABLED)) {
|
|
||||||
vector<const char*> flags_tokens;
|
|
||||||
string quest_name;
|
|
||||||
if (game->check_flag(Lobby::Flag::CHEATS_ENABLED)) {
|
if (game->check_flag(Lobby::Flag::CHEATS_ENABLED)) {
|
||||||
flags_tokens.emplace_back("$C6C$C7");
|
info += "$C6Cheats enabled$C7\n";
|
||||||
}
|
}
|
||||||
if (game->check_flag(Lobby::Flag::PERSISTENT)) {
|
if (game->check_flag(Lobby::Flag::PERSISTENT)) {
|
||||||
flags_tokens.emplace_back("$C6P$C7");
|
info += "$C6Persistence enabled$C7\n";
|
||||||
}
|
|
||||||
if (!game->password.empty()) {
|
|
||||||
flags_tokens.emplace_back("$C4L$C7");
|
|
||||||
}
|
|
||||||
if (game->check_flag(Lobby::Flag::IS_SPECTATOR_TEAM)) {
|
|
||||||
flags_tokens.emplace_back("$C8ST$C7");
|
|
||||||
}
|
|
||||||
if (game->check_flag(Lobby::Flag::SPECTATORS_FORBIDDEN)) {
|
|
||||||
flags_tokens.emplace_back("$C8NS$C7");
|
|
||||||
}
|
|
||||||
if (game->quest) {
|
|
||||||
flags_tokens.emplace_back(game->check_flag(Lobby::Flag::JOINABLE_QUEST_IN_PROGRESS) ? "$C3JQ$C7" : "$C3Q$C7");
|
|
||||||
quest_name = remove_color(game->quest->name);
|
|
||||||
} else if (game->check_flag(Lobby::Flag::JOINABLE_QUEST_IN_PROGRESS)) {
|
|
||||||
flags_tokens.emplace_back("$C3JQ$C7");
|
|
||||||
} else if (game->check_flag(Lobby::Flag::QUEST_IN_PROGRESS)) {
|
|
||||||
flags_tokens.emplace_back("$C3Q$C7");
|
|
||||||
} else if (game->check_flag(Lobby::Flag::BATTLE_IN_PROGRESS)) {
|
|
||||||
flags_tokens.emplace_back("$C3B$C7");
|
|
||||||
}
|
|
||||||
info += ("Flags: " + join(flags_tokens, ",") + "\n");
|
|
||||||
if (!quest_name.empty()) {
|
|
||||||
info += ("Q: $C6" + quest_name + "$C7\n");
|
|
||||||
}
|
|
||||||
info += string_printf("Version: %s\n", name_for_enum(game->base_version));
|
|
||||||
|
|
||||||
} else {
|
|
||||||
bool cheats_enabled = game->check_flag(Lobby::Flag::CHEATS_ENABLED);
|
|
||||||
bool locked = !game->password.empty();
|
|
||||||
if (cheats_enabled && locked) {
|
|
||||||
info += "$C4Locked$C7, $C6cheats on$C7\n";
|
|
||||||
} else if (cheats_enabled) {
|
|
||||||
info += "$C6Cheats on$C7\n";
|
|
||||||
} else if (locked) {
|
|
||||||
info += "$C4Locked$C7\n";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (game->quest) {
|
if (game->quest) {
|
||||||
@@ -1965,15 +1936,26 @@ static void on_09(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
info += "$C6Quest in progress\n";
|
info += "$C6Quest in progress\n";
|
||||||
} else if (game->check_flag(Lobby::Flag::QUEST_IN_PROGRESS)) {
|
} else if (game->check_flag(Lobby::Flag::QUEST_IN_PROGRESS)) {
|
||||||
info += "$C4Quest in progress\n";
|
info += "$C4Quest in progress\n";
|
||||||
} else if (game->check_flag(Lobby::Flag::BATTLE_IN_PROGRESS)) {
|
|
||||||
info += "$C4Battle in progress\n";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (game->check_flag(Lobby::Flag::SPECTATORS_FORBIDDEN)) {
|
switch (game->drop_mode) {
|
||||||
info += "$C4View Battle forbidden\n";
|
case Lobby::DropMode::DISABLED:
|
||||||
|
info += "$C6Drops disabled$C7\n";
|
||||||
|
break;
|
||||||
|
case Lobby::DropMode::CLIENT:
|
||||||
|
info += "$C6Client drops$C7\n";
|
||||||
|
break;
|
||||||
|
case Lobby::DropMode::SERVER_SHARED:
|
||||||
|
info += "$C6Server drops$C7\n";
|
||||||
|
break;
|
||||||
|
case Lobby::DropMode::SERVER_PRIVATE:
|
||||||
|
info += "$C6Private drops$C7\n";
|
||||||
|
break;
|
||||||
|
case Lobby::DropMode::SERVER_DUPLICATE:
|
||||||
|
info += "$C6Duplicate drops$C7\n";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
strip_trailing_whitespace(info);
|
strip_trailing_whitespace(info);
|
||||||
send_ship_info(c, info);
|
send_ship_info(c, info);
|
||||||
}
|
}
|
||||||
@@ -2500,7 +2482,7 @@ static void on_10(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
auto s = c->require_server_state();
|
auto s = c->require_server_state();
|
||||||
auto game = s->find_lobby(item_id);
|
auto game = s->find_lobby(item_id);
|
||||||
if (!game) {
|
if (!game) {
|
||||||
send_lobby_message_box(c, "$C6You cannot join this\ngame because it no\nlonger exists.");
|
send_lobby_message_box(c, "$C7You cannot join this\ngame because it no\nlonger exists.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
switch (game->join_error_for_client(c, &password)) {
|
switch (game->join_error_for_client(c, &password)) {
|
||||||
@@ -2522,37 +2504,43 @@ static void on_10(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Lobby::JoinError::FULL:
|
case Lobby::JoinError::FULL:
|
||||||
send_lobby_message_box(c, "$C6You cannot join this\ngame because it is\nfull.");
|
send_lobby_message_box(c, "$C7You cannot join this\ngame because it is\nfull.");
|
||||||
break;
|
break;
|
||||||
case Lobby::JoinError::VERSION_CONFLICT:
|
case Lobby::JoinError::VERSION_CONFLICT:
|
||||||
send_lobby_message_box(c, "$C6You cannot join this\ngame because it is\nfor a different\nversion of PSO.");
|
send_lobby_message_box(c, "$C7You cannot join this\ngame because it is\nfor a different\nversion of PSO.");
|
||||||
break;
|
break;
|
||||||
case Lobby::JoinError::QUEST_IN_PROGRESS:
|
case Lobby::JoinError::QUEST_IN_PROGRESS:
|
||||||
send_lobby_message_box(c, "$C6You cannot join this\ngame because a\nquest is already\nin progress.");
|
send_lobby_message_box(c, "$C7You cannot join this\ngame because a\nquest is already\nin progress.");
|
||||||
break;
|
break;
|
||||||
case Lobby::JoinError::BATTLE_IN_PROGRESS:
|
case Lobby::JoinError::BATTLE_IN_PROGRESS:
|
||||||
send_lobby_message_box(c, "$C6You cannot join this\ngame because a\nbattle is already\nin progress.");
|
send_lobby_message_box(c, "$C7You cannot join this\ngame because a\nbattle is already\nin progress.");
|
||||||
break;
|
break;
|
||||||
case Lobby::JoinError::LOADING:
|
case Lobby::JoinError::LOADING:
|
||||||
send_lobby_message_box(c, "$C6You cannot join this\ngame because\nanother player is\ncurrently loading.\nTry again soon.");
|
send_lobby_message_box(c, "$C7You cannot join this\ngame because\nanother player is\ncurrently loading.\nTry again soon.");
|
||||||
break;
|
break;
|
||||||
case Lobby::JoinError::SOLO:
|
case Lobby::JoinError::SOLO:
|
||||||
send_lobby_message_box(c, "$C6You cannot join this\ngame because it is\na Solo Mode game.");
|
send_lobby_message_box(c, "$C7You cannot join this\ngame because it is\na Solo Mode game.");
|
||||||
break;
|
break;
|
||||||
case Lobby::JoinError::INCORRECT_PASSWORD:
|
case Lobby::JoinError::INCORRECT_PASSWORD:
|
||||||
send_lobby_message_box(c, "$C6Incorrect password.");
|
send_lobby_message_box(c, "$C7Incorrect password.");
|
||||||
break;
|
break;
|
||||||
case Lobby::JoinError::LEVEL_TOO_LOW:
|
case Lobby::JoinError::LEVEL_TOO_LOW: {
|
||||||
send_lobby_message_box(c, "$C6Your level is too\nlow to join this\ngame.");
|
string msg = string_printf("$C7You must be level\n%zu or above to\njoin this game.",
|
||||||
|
static_cast<size_t>(game->min_level + 1));
|
||||||
|
send_lobby_message_box(c, msg);
|
||||||
break;
|
break;
|
||||||
case Lobby::JoinError::LEVEL_TOO_HIGH:
|
}
|
||||||
send_lobby_message_box(c, "$C6Your level is too\nhigh to join this\ngame.");
|
case Lobby::JoinError::LEVEL_TOO_HIGH: {
|
||||||
|
string msg = string_printf("$C7You must be level\n%zu or below to\njoin this game.",
|
||||||
|
static_cast<size_t>(game->max_level + 1));
|
||||||
|
send_lobby_message_box(c, msg);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case Lobby::JoinError::NO_ACCESS_TO_QUEST:
|
case Lobby::JoinError::NO_ACCESS_TO_QUEST:
|
||||||
send_lobby_message_box(c, "$C6You don't have access\nto the quest in progress\nin this game, or there\nis no space for another\nplayer in the quest.");
|
send_lobby_message_box(c, "$C7You don't have access\nto the quest in progress\nin this game, or there\nis no space for another\nplayer in the quest.");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
send_lobby_message_box(c, "$C6You cannot join this\ngame.");
|
send_lobby_message_box(c, "$C7You cannot join this\ngame.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -2562,7 +2550,7 @@ static void on_10(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
auto s = c->require_server_state();
|
auto s = c->require_server_state();
|
||||||
auto quest_index = s->quest_index(c->version());
|
auto quest_index = s->quest_index(c->version());
|
||||||
if (!quest_index) {
|
if (!quest_index) {
|
||||||
send_lobby_message_box(c, "$C6Quests are not available.");
|
send_lobby_message_box(c, "$C7Quests are not available.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2583,12 +2571,12 @@ static void on_10(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
auto s = c->require_server_state();
|
auto s = c->require_server_state();
|
||||||
auto quest_index = s->quest_index(c->version());
|
auto quest_index = s->quest_index(c->version());
|
||||||
if (!quest_index) {
|
if (!quest_index) {
|
||||||
send_lobby_message_box(c, "$C6Quests are not\navailable.");
|
send_lobby_message_box(c, "$C7Quests are not\navailable.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
auto q = quest_index->get(item_id);
|
auto q = quest_index->get(item_id);
|
||||||
if (!q) {
|
if (!q) {
|
||||||
send_lobby_message_box(c, "$C6Quest does not exist.");
|
send_lobby_message_box(c, "$C7Quest does not exist.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2596,21 +2584,21 @@ static void on_10(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
// Otherwise, they must be in a game to load a quest.
|
// Otherwise, they must be in a game to load a quest.
|
||||||
auto l = c->lobby.lock();
|
auto l = c->lobby.lock();
|
||||||
if (l && !l->is_game()) {
|
if (l && !l->is_game()) {
|
||||||
send_lobby_message_box(c, "$C6Quests cannot be\nloaded in lobbies.");
|
send_lobby_message_box(c, "$C7Quests cannot be\nloaded in lobbies.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (l) {
|
if (l) {
|
||||||
if (q->episode == Episode::EP3) {
|
if (q->episode == Episode::EP3) {
|
||||||
send_lobby_message_box(c, "$C6Episode 3 quests\ncannot be loaded\nvia this interface.");
|
send_lobby_message_box(c, "$C7Episode 3 quests\ncannot be loaded\nvia this interface.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (l->quest) {
|
if (l->quest) {
|
||||||
send_lobby_message_box(c, "$C6A quest is already\nin progress.");
|
send_lobby_message_box(c, "$C7A quest is already\nin progress.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (l->quest_include_condition()(q) != QuestIndex::IncludeState::AVAILABLE) {
|
if (l->quest_include_condition()(q) != QuestIndex::IncludeState::AVAILABLE) {
|
||||||
send_lobby_message_box(c, "$C6This quest has not\nbeen unlocked for\nall players in this\ngame.");
|
send_lobby_message_box(c, "$C7This quest has not\nbeen unlocked for\nall players in this\ngame.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
set_lobby_quest(l, q);
|
set_lobby_quest(l, q);
|
||||||
@@ -2618,7 +2606,7 @@ static void on_10(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
} else {
|
} else {
|
||||||
auto vq = q->version(c->version(), c->language());
|
auto vq = q->version(c->version(), c->language());
|
||||||
if (!vq) {
|
if (!vq) {
|
||||||
send_lobby_message_box(c, "$C6Quest does not exist\nfor this game version.");
|
send_lobby_message_box(c, "$C7Quest does not exist\nfor this game version.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Episode 3 uses the download quest commands (A6/A7) but does not
|
// Episode 3 uses the download quest commands (A6/A7) but does not
|
||||||
@@ -2699,7 +2687,7 @@ static void on_10(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
throw runtime_error("non-Episode 3 client attempted to join tournament");
|
throw runtime_error("non-Episode 3 client attempted to join tournament");
|
||||||
}
|
}
|
||||||
if (c->ep3_tournament_team.lock()) {
|
if (c->ep3_tournament_team.lock()) {
|
||||||
send_lobby_message_box(c, "$C6You are registered\nin a different\ntournament already");
|
send_lobby_message_box(c, "$C7You are registered\nin a different\ntournament already");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (team_name.empty()) {
|
if (team_name.empty()) {
|
||||||
@@ -2899,14 +2887,14 @@ static void on_A2(shared_ptr<Client> c, uint16_t, uint32_t flag, string& data) {
|
|||||||
|
|
||||||
auto l = c->lobby.lock();
|
auto l = c->lobby.lock();
|
||||||
if (!l || !l->is_game()) {
|
if (!l || !l->is_game()) {
|
||||||
send_lobby_message_box(c, "$C6Quests are not available\nin lobbies.");
|
send_lobby_message_box(c, "$C7Quests are not available\nin lobbies.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// In Episode 3, there are no quest categories, so skip directly to the quest
|
// In Episode 3, there are no quest categories, so skip directly to the quest
|
||||||
// filter menu.
|
// filter menu.
|
||||||
if (is_ep3(c->version())) {
|
if (is_ep3(c->version())) {
|
||||||
send_lobby_message_box(c, "$C6Episode 3 does not\nprovide online quests\nvia this interface.");
|
send_lobby_message_box(c, "$C7Episode 3 does not\nprovide online quests\nvia this interface.");
|
||||||
} else {
|
} else {
|
||||||
QuestMenuType menu_type;
|
QuestMenuType menu_type;
|
||||||
if ((c->version() == Version::BB_V4) && flag) {
|
if ((c->version() == Version::BB_V4) && flag) {
|
||||||
@@ -3288,7 +3276,7 @@ static void on_61_98(shared_ptr<Client> c, uint16_t command, uint32_t flag, stri
|
|||||||
bb_player->choice_search_config = player->choice_search_config;
|
bb_player->choice_search_config = player->choice_search_config;
|
||||||
try {
|
try {
|
||||||
Client::save_character_file(filename, c->system_file(), bb_player);
|
Client::save_character_file(filename, c->system_file(), bb_player);
|
||||||
send_text_message(c, "$C6Character data saved");
|
send_text_message(c, "$C7Character data saved");
|
||||||
} catch (const exception& e) {
|
} catch (const exception& e) {
|
||||||
send_text_message_printf(c, "$C6Character data could\nnot be saved:\n%s", e.what());
|
send_text_message_printf(c, "$C6Character data could\nnot be saved:\n%s", e.what());
|
||||||
}
|
}
|
||||||
@@ -4107,7 +4095,8 @@ shared_ptr<Lobby> create_game_generic(
|
|||||||
if (!c->license->check_flag(License::Flag::FREE_JOIN_GAMES) && (min_level > p->disp.stats.level)) {
|
if (!c->license->check_flag(License::Flag::FREE_JOIN_GAMES) && (min_level > p->disp.stats.level)) {
|
||||||
// Note: We don't throw here because this is a situation players might
|
// Note: We don't throw here because this is a situation players might
|
||||||
// actually encounter while playing the game normally
|
// actually encounter while playing the game normally
|
||||||
send_lobby_message_box(c, "Your level is too\nlow for this\ndifficulty");
|
string msg = string_printf("You must be level %zu\nor above to play\nthis difficulty.", static_cast<size_t>(min_level + 1));
|
||||||
|
send_lobby_message_box(c, msg);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4389,11 +4378,11 @@ static void on_0C_C1_E7_EC(shared_ptr<Client> c, uint16_t command, uint32_t, str
|
|||||||
}
|
}
|
||||||
watched_lobby = s->find_lobby(cmd.item_id);
|
watched_lobby = s->find_lobby(cmd.item_id);
|
||||||
if (!watched_lobby) {
|
if (!watched_lobby) {
|
||||||
send_lobby_message_box(c, "$C6This game no longer\nexists");
|
send_lobby_message_box(c, "$C7This game no longer\nexists");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (watched_lobby->check_flag(Lobby::Flag::SPECTATORS_FORBIDDEN)) {
|
if (watched_lobby->check_flag(Lobby::Flag::SPECTATORS_FORBIDDEN)) {
|
||||||
send_lobby_message_box(c, "$C6This game does not\nallow spectators");
|
send_lobby_message_box(c, "$C7This game does not\nallow spectators");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4451,11 +4440,11 @@ static void on_C1_BB(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
|
|||||||
episode = Episode::EP4;
|
episode = Episode::EP4;
|
||||||
// Disallow battle/challenge in Ep4
|
// Disallow battle/challenge in Ep4
|
||||||
if (mode == GameMode::BATTLE) {
|
if (mode == GameMode::BATTLE) {
|
||||||
send_lobby_message_box(c, "$C6Episode 4 does not\nsupport Battle Mode.");
|
send_lobby_message_box(c, "$C7Episode 4 does not\nsupport Battle Mode.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mode == GameMode::CHALLENGE) {
|
if (mode == GameMode::CHALLENGE) {
|
||||||
send_lobby_message_box(c, "$C6Episode 4 does not\nsupport Challenge Mode.");
|
send_lobby_message_box(c, "$C7Episode 4 does not\nsupport Challenge Mode.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -4515,7 +4504,7 @@ static void on_6F(shared_ptr<Client> c, uint16_t command, uint32_t, string& data
|
|||||||
if (c) {
|
if (c) {
|
||||||
c->ep3_prev_battle_record = l->battle_record;
|
c->ep3_prev_battle_record = l->battle_record;
|
||||||
if ((s->ep3_behavior_flags & Episode3::BehaviorFlag::ENABLE_STATUS_MESSAGES)) {
|
if ((s->ep3_behavior_flags & Episode3::BehaviorFlag::ENABLE_STATUS_MESSAGES)) {
|
||||||
send_text_message(l, "$C6Recording complete");
|
send_text_message(l, "$C7Recording complete");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1251,10 +1251,9 @@ I 91446 2023-12-31 21:06:28 - [Commands] Sending to C-4 (BBBBBBBBBBBB) (version=
|
|||||||
I 91446 2023-12-31 21:06:30 - [Commands] Received from C-4 (BBBBBBBBBBBB) (version=DC_NTE command=09 flag=00)
|
I 91446 2023-12-31 21:06:30 - [Commands] Received from C-4 (BBBBBBBBBBBB) (version=DC_NTE command=09 flag=00)
|
||||||
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
||||||
I 91446 2023-12-31 21:06:30 - [Commands] Sending to C-4 (BBBBBBBBBBBB) (version=DC_NTE command=11 flag=00)
|
I 91446 2023-12-31 21:06:30 - [Commands] Sending to C-4 (BBBBBBBBBBBB) (version=DC_NTE command=11 flag=00)
|
||||||
0000 | 11 00 3C 00 00 00 00 00 00 00 00 00 31 3A 20 41 | < 1: A
|
0000 | 11 00 28 00 00 00 00 00 00 00 00 00 41 42 43 44 | ( ABCD
|
||||||
0010 | 42 43 44 45 46 47 48 49 4A 4B 4C 20 52 41 63 74 | BCDEFGHIJKL RAct
|
0010 | 45 46 47 48 49 4A 4B 4C 0A 20 20 52 41 63 61 73 | EFGHIJKL RAcas
|
||||||
0020 | 20 4C 31 0A 45 70 31 20 4E 20 4E 6D 6C 20 52 65 | L1 Ep1 N Nml Re
|
0020 | 74 20 4C 76 31 20 4A 00 | t Lv1 J
|
||||||
0030 | 64 0A 43 68 65 61 74 73 20 6F 6E 00 | d Cheats on
|
|
||||||
I 91446 2023-12-31 21:06:36 - [Commands] Received from C-2 (ABCDEFGHIJKL) (version=DC_NTE command=60 flag=00)
|
I 91446 2023-12-31 21:06:36 - [Commands] Received from C-2 (ABCDEFGHIJKL) (version=DC_NTE command=60 flag=00)
|
||||||
0000 | 60 00 1C 00 36 06 00 00 00 00 00 00 00 00 00 00 | ` 6
|
0000 | 60 00 1C 00 36 06 00 00 00 00 00 00 00 00 00 00 | ` 6
|
||||||
0010 | 5C 0F C6 43 00 00 00 00 C3 75 95 42 | \ C u B
|
0010 | 5C 0F C6 43 00 00 00 00 C3 75 95 42 | \ C u B
|
||||||
|
|||||||
@@ -1170,19 +1170,17 @@ I 94381 2023-12-29 15:36:34 - [Commands] Sending to C-5 (Jonah) (version=GC_V3 c
|
|||||||
I 94381 2023-12-29 15:36:34 - [Commands] Received from C-5 (Jonah) (version=GC_V3 command=09 flag=00)
|
I 94381 2023-12-29 15:36:34 - [Commands] Received from C-5 (Jonah) (version=GC_V3 command=09 flag=00)
|
||||||
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
||||||
I 94381 2023-12-29 15:36:34 - [Commands] Sending to C-5 (Jonah) (version=GC_V3 command=11 flag=00)
|
I 94381 2023-12-29 15:36:34 - [Commands] Sending to C-5 (Jonah) (version=GC_V3 command=11 flag=00)
|
||||||
0000 | 11 00 44 00 00 00 00 00 00 00 00 00 31 3A 20 09 | D 1:
|
0000 | 11 00 24 00 00 00 00 00 00 00 00 00 4A 65 73 73 | $ Jess
|
||||||
0010 | 43 36 4A 65 73 73 09 43 37 20 52 41 6D 6C 20 4C | C6Jess C7 RAml L
|
0010 | 0A 20 20 52 41 6D 61 72 6C 20 4C 76 32 39 20 45 | RAmarl Lv29 E
|
||||||
0020 | 32 39 0A 45 70 32 20 4E 20 4E 6D 6C 20 50 6E 6B | 29 Ep2 N Nml Pnk
|
0020 | 00 00 00 00 |
|
||||||
0030 | 0A 09 43 36 43 68 65 61 74 73 20 6F 6E 09 43 37 | C6Cheats on C7
|
|
||||||
0040 | 00 00 00 00 |
|
|
||||||
I 94381 2023-12-29 15:36:36 - [Commands] Received from C-5 (Jonah) (version=GC_V3 command=09 flag=00)
|
I 94381 2023-12-29 15:36:36 - [Commands] Received from C-5 (Jonah) (version=GC_V3 command=09 flag=00)
|
||||||
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
||||||
I 94381 2023-12-29 15:36:36 - [Commands] Sending to C-5 (Jonah) (version=GC_V3 command=11 flag=00)
|
I 94381 2023-12-29 15:36:36 - [Commands] Sending to C-5 (Jonah) (version=GC_V3 command=11 flag=00)
|
||||||
0000 | 11 00 44 00 00 00 00 00 00 00 00 00 31 3A 20 09 | D 1:
|
0000 | 11 00 48 00 00 00 00 00 00 00 00 00 53 65 63 74 | H Sect
|
||||||
0010 | 43 36 4A 65 73 73 09 43 37 20 52 41 6D 6C 20 4C | C6Jess C7 RAml L
|
0010 | 69 6F 6E 20 49 44 3A 20 50 69 6E 6B 61 6C 0A 09 | ion ID: Pinkal
|
||||||
0020 | 32 39 0A 45 70 32 20 4E 20 4E 6D 6C 20 50 6E 6B | 29 Ep2 N Nml Pnk
|
0020 | 43 36 43 68 65 61 74 73 20 65 6E 61 62 6C 65 64 | C6Cheats enabled
|
||||||
0030 | 0A 09 43 36 43 68 65 61 74 73 20 6F 6E 09 43 37 | C6Cheats on C7
|
0030 | 09 43 37 0A 09 43 36 43 6C 69 65 6E 74 20 64 72 | C7 C6Client dr
|
||||||
0040 | 00 00 00 00 |
|
0040 | 6F 70 73 09 43 37 00 00 | ops C7
|
||||||
I 94381 2023-12-29 15:36:44 - [Commands] Received from C-2 (Jess) (version=GC_V3 command=60 flag=00)
|
I 94381 2023-12-29 15:36:44 - [Commands] Received from C-2 (Jess) (version=GC_V3 command=60 flag=00)
|
||||||
0000 | 60 00 1C 00 3F 06 00 00 00 00 00 80 0F 00 00 00 | ` ?
|
0000 | 60 00 1C 00 3F 06 00 00 00 00 00 80 0F 00 00 00 | ` ?
|
||||||
0010 | 00 00 20 41 00 00 00 00 00 00 70 43 | A pC
|
0010 | 00 00 20 41 00 00 00 00 00 00 70 43 | A pC
|
||||||
@@ -1198,11 +1196,9 @@ I 94381 2023-12-29 15:36:44 - [Commands] Sending to C-2 (Jess) (version=GC_V3 co
|
|||||||
I 94381 2023-12-29 15:36:45 - [Commands] Received from C-5 (Jonah) (version=GC_V3 command=09 flag=00)
|
I 94381 2023-12-29 15:36:45 - [Commands] Received from C-5 (Jonah) (version=GC_V3 command=09 flag=00)
|
||||||
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
||||||
I 94381 2023-12-29 15:36:45 - [Commands] Sending to C-5 (Jonah) (version=GC_V3 command=11 flag=00)
|
I 94381 2023-12-29 15:36:45 - [Commands] Sending to C-5 (Jonah) (version=GC_V3 command=11 flag=00)
|
||||||
0000 | 11 00 44 00 00 00 00 00 00 00 00 00 31 3A 20 09 | D 1:
|
0000 | 11 00 24 00 00 00 00 00 00 00 00 00 4A 65 73 73 | $ Jess
|
||||||
0010 | 43 36 4A 65 73 73 09 43 37 20 52 41 6D 6C 20 4C | C6Jess C7 RAml L
|
0010 | 0A 20 20 52 41 6D 61 72 6C 20 4C 76 32 39 20 45 | RAmarl Lv29 E
|
||||||
0020 | 32 39 0A 45 70 32 20 4E 20 4E 6D 6C 20 50 6E 6B | 29 Ep2 N Nml Pnk
|
0020 | 00 00 00 00 |
|
||||||
0030 | 0A 09 43 36 43 68 65 61 74 73 20 6F 6E 09 43 37 | C6Cheats on C7
|
|
||||||
0040 | 00 00 00 00 |
|
|
||||||
I 94381 2023-12-29 15:36:45 - [Commands] Received from C-2 (Jess) (version=GC_V3 command=99 flag=00)
|
I 94381 2023-12-29 15:36:45 - [Commands] Received from C-2 (Jess) (version=GC_V3 command=99 flag=00)
|
||||||
0000 | 99 00 04 00 |
|
0000 | 99 00 04 00 |
|
||||||
I 94381 2023-12-29 15:36:49 - [Commands] Received from C-5 (Jonah) (version=GC_V3 command=10 flag=00)
|
I 94381 2023-12-29 15:36:49 - [Commands] Received from C-5 (Jonah) (version=GC_V3 command=10 flag=00)
|
||||||
@@ -7967,11 +7963,11 @@ I 94381 2023-12-29 15:42:16 - [Commands] Sending to C-5 (Jonah) (version=GC_V3 c
|
|||||||
I 94381 2023-12-29 15:42:16 - [Commands] Received from C-5 (Jonah) (version=GC_V3 command=09 flag=00)
|
I 94381 2023-12-29 15:42:16 - [Commands] Received from C-5 (Jonah) (version=GC_V3 command=09 flag=00)
|
||||||
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
||||||
I 94381 2023-12-29 15:42:16 - [Commands] Sending to C-5 (Jonah) (version=GC_V3 command=11 flag=00)
|
I 94381 2023-12-29 15:42:16 - [Commands] Sending to C-5 (Jonah) (version=GC_V3 command=11 flag=00)
|
||||||
0000 | 11 00 44 00 00 00 00 00 00 00 00 00 31 3A 20 09 | D 1:
|
0000 | 11 00 48 00 00 00 00 00 00 00 00 00 53 65 63 74 | H Sect
|
||||||
0010 | 43 36 4A 65 73 73 09 43 37 20 52 41 6D 6C 20 4C | C6Jess C7 RAml L
|
0010 | 69 6F 6E 20 49 44 3A 20 50 69 6E 6B 61 6C 0A 09 | ion ID: Pinkal
|
||||||
0020 | 32 39 0A 45 70 32 20 4E 20 4E 6D 6C 20 50 6E 6B | 29 Ep2 N Nml Pnk
|
0020 | 43 36 43 68 65 61 74 73 20 65 6E 61 62 6C 65 64 | C6Cheats enabled
|
||||||
0030 | 0A 09 43 36 43 68 65 61 74 73 20 6F 6E 09 43 37 | C6Cheats on C7
|
0030 | 09 43 37 0A 09 43 36 50 72 69 76 61 74 65 20 64 | C7 C6Private d
|
||||||
0040 | 00 00 00 00 |
|
0040 | 72 6F 70 73 09 43 37 00 | rops C7
|
||||||
I 94381 2023-12-29 15:42:18 - [Commands] Received from C-5 (Jonah) (version=GC_V3 command=10 flag=00)
|
I 94381 2023-12-29 15:42:18 - [Commands] Received from C-5 (Jonah) (version=GC_V3 command=10 flag=00)
|
||||||
0000 | 10 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
0000 | 10 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
||||||
I 94381 2023-12-29 15:42:18 - [C-5] Assigned inventory item IDs
|
I 94381 2023-12-29 15:42:18 - [C-5] Assigned inventory item IDs
|
||||||
|
|||||||
@@ -4023,7 +4023,7 @@ I 16332 2023-09-17 10:14:46 - [Commands] Sending to C-2 (Tali) (version=GC comma
|
|||||||
0010 | 20 63 6C 69 65 6E 74 20 49 44 3A 20 09 43 36 30 | client ID: C60
|
0010 | 20 63 6C 69 65 6E 74 20 49 44 3A 20 09 43 36 30 | client ID: C60
|
||||||
0020 | 00 00 00 00 |
|
0020 | 00 00 00 00 |
|
||||||
I 16332 2023-09-17 10:14:46 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
I 16332 2023-09-17 10:14:46 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
||||||
0000 | B0 00 24 00 00 00 00 00 00 00 00 00 09 43 36 52 | $ C6R
|
0000 | B0 00 24 00 00 00 00 00 00 00 00 00 09 43 37 52 | $ C7R
|
||||||
0010 | 65 63 6F 72 64 69 6E 67 20 65 6E 61 62 6C 65 64 | ecording enabled
|
0010 | 65 63 6F 72 64 69 6E 67 20 65 6E 61 62 6C 65 64 | ecording enabled
|
||||||
0020 | 00 00 00 00 |
|
0020 | 00 00 00 00 |
|
||||||
I 16332 2023-09-17 10:14:46 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
I 16332 2023-09-17 10:14:46 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
||||||
@@ -30338,7 +30338,7 @@ I 16332 2023-09-17 10:22:26 - [Commands] Received from C-2 (Tali) (version=GC co
|
|||||||
I 16332 2023-09-17 10:22:26 - [Commands] Received from C-2 (Tali) (version=GC command=6F flag=00)
|
I 16332 2023-09-17 10:22:26 - [Commands] Received from C-2 (Tali) (version=GC command=6F flag=00)
|
||||||
0000 | 6F 00 04 00 | o
|
0000 | 6F 00 04 00 | o
|
||||||
I 16332 2023-09-17 10:22:26 - [Commands] Sending to C-2 (Tali) (version=GC command=B1 flag=00)
|
I 16332 2023-09-17 10:22:26 - [Commands] Sending to C-2 (Tali) (version=GC command=B1 flag=00)
|
||||||
0000 | B0 00 24 00 00 00 00 00 00 00 00 00 09 43 36 52 | $ C6R
|
0000 | B0 00 24 00 00 00 00 00 00 00 00 00 09 43 37 52 | $ C7R
|
||||||
0010 | 65 63 6F 72 64 69 6E 67 20 63 6F 6D 70 6C 65 74 | ecording complet
|
0010 | 65 63 6F 72 64 69 6E 67 20 63 6F 6D 70 6C 65 74 | ecording complet
|
||||||
0020 | 65 00 00 00 | e
|
0020 | 65 00 00 00 | e
|
||||||
I 16332 2023-09-17 10:22:26 - [Commands] Sending to C-2 (Tali) (version=GC command=B1 flag=00)
|
I 16332 2023-09-17 10:22:26 - [Commands] Sending to C-2 (Tali) (version=GC command=B1 flag=00)
|
||||||
@@ -30424,7 +30424,7 @@ I 16332 2023-09-17 10:22:26 - [Commands] Sending to C-2 (Tali) (version=GC comma
|
|||||||
0010 | 20 63 6C 69 65 6E 74 20 49 44 3A 20 09 43 36 30 | client ID: C60
|
0010 | 20 63 6C 69 65 6E 74 20 49 44 3A 20 09 43 36 30 | client ID: C60
|
||||||
0020 | 00 00 00 00 |
|
0020 | 00 00 00 00 |
|
||||||
I 16332 2023-09-17 10:22:26 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
I 16332 2023-09-17 10:22:26 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
||||||
0000 | B0 00 24 00 00 00 00 00 00 00 00 00 09 43 36 52 | $ C6R
|
0000 | B0 00 24 00 00 00 00 00 00 00 00 00 09 43 37 52 | $ C7R
|
||||||
0010 | 65 63 6F 72 64 69 6E 67 20 65 6E 61 62 6C 65 64 | ecording enabled
|
0010 | 65 63 6F 72 64 69 6E 67 20 65 6E 61 62 6C 65 64 | ecording enabled
|
||||||
0020 | 00 00 00 00 |
|
0020 | 00 00 00 00 |
|
||||||
I 16332 2023-09-17 10:22:26 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
I 16332 2023-09-17 10:22:26 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
||||||
|
|||||||
@@ -4023,7 +4023,7 @@ I 17097 2023-09-19 21:52:59 - [Commands] Sending to C-2 (Tali) (version=GC comma
|
|||||||
0010 | 20 63 6C 69 65 6E 74 20 49 44 3A 20 09 43 36 30 | client ID: C60
|
0010 | 20 63 6C 69 65 6E 74 20 49 44 3A 20 09 43 36 30 | client ID: C60
|
||||||
0020 | 00 00 00 00 |
|
0020 | 00 00 00 00 |
|
||||||
I 17097 2023-09-19 21:52:59 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
I 17097 2023-09-19 21:52:59 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
||||||
0000 | B0 00 24 00 00 00 00 00 00 00 00 00 09 43 36 52 | $ C6R
|
0000 | B0 00 24 00 00 00 00 00 00 00 00 00 09 43 37 52 | $ C7R
|
||||||
0010 | 65 63 6F 72 64 69 6E 67 20 65 6E 61 62 6C 65 64 | ecording enabled
|
0010 | 65 63 6F 72 64 69 6E 67 20 65 6E 61 62 6C 65 64 | ecording enabled
|
||||||
0020 | 00 00 00 00 |
|
0020 | 00 00 00 00 |
|
||||||
I 17097 2023-09-19 21:52:59 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
I 17097 2023-09-19 21:52:59 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
||||||
@@ -77175,7 +77175,7 @@ I 17097 2023-09-19 22:11:24 - [Commands] Received from C-2 (Tali) (version=GC co
|
|||||||
I 17097 2023-09-19 22:11:24 - [Commands] Received from C-2 (Tali) (version=GC command=6F flag=00)
|
I 17097 2023-09-19 22:11:24 - [Commands] Received from C-2 (Tali) (version=GC command=6F flag=00)
|
||||||
0000 | 6F 00 04 00 | o
|
0000 | 6F 00 04 00 | o
|
||||||
I 17097 2023-09-19 22:11:24 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
I 17097 2023-09-19 22:11:24 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
||||||
0000 | B0 00 24 00 00 00 00 00 00 00 00 00 09 43 36 52 | $ C6R
|
0000 | B0 00 24 00 00 00 00 00 00 00 00 00 09 43 37 52 | $ C7R
|
||||||
0010 | 65 63 6F 72 64 69 6E 67 20 63 6F 6D 70 6C 65 74 | ecording complet
|
0010 | 65 63 6F 72 64 69 6E 67 20 63 6F 6D 70 6C 65 74 | ecording complet
|
||||||
0020 | 65 00 00 00 | e
|
0020 | 65 00 00 00 | e
|
||||||
I 17097 2023-09-19 22:11:24 - [Commands] Sending to C-2 (Tali) (version=GC command=B1 flag=00)
|
I 17097 2023-09-19 22:11:24 - [Commands] Sending to C-2 (Tali) (version=GC command=B1 flag=00)
|
||||||
@@ -77261,7 +77261,7 @@ I 17097 2023-09-19 22:11:24 - [Commands] Sending to C-2 (Tali) (version=GC comma
|
|||||||
0010 | 20 63 6C 69 65 6E 74 20 49 44 3A 20 09 43 36 30 | client ID: C60
|
0010 | 20 63 6C 69 65 6E 74 20 49 44 3A 20 09 43 36 30 | client ID: C60
|
||||||
0020 | 00 00 00 00 |
|
0020 | 00 00 00 00 |
|
||||||
I 17097 2023-09-19 22:11:24 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
I 17097 2023-09-19 22:11:24 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
||||||
0000 | B0 00 24 00 00 00 00 00 00 00 00 00 09 43 36 52 | $ C6R
|
0000 | B0 00 24 00 00 00 00 00 00 00 00 00 09 43 37 52 | $ C7R
|
||||||
0010 | 65 63 6F 72 64 69 6E 67 20 65 6E 61 62 6C 65 64 | ecording enabled
|
0010 | 65 63 6F 72 64 69 6E 67 20 65 6E 61 62 6C 65 64 | ecording enabled
|
||||||
0020 | 00 00 00 00 |
|
0020 | 00 00 00 00 |
|
||||||
I 17097 2023-09-19 22:11:24 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
I 17097 2023-09-19 22:11:24 - [Commands] Sending to C-2 (Tali) (version=GC command=B0 flag=00)
|
||||||
|
|||||||
@@ -5281,9 +5281,13 @@ I 23921 2024-03-03 21:21:17 - [Commands] Received from C-2 (Jess) (version=GC_V3
|
|||||||
I 23921 2024-03-03 21:21:19 - [Commands] Received from C-2 (Jess) (version=GC_V3 command=09 flag=00)
|
I 23921 2024-03-03 21:21:19 - [Commands] Received from C-2 (Jess) (version=GC_V3 command=09 flag=00)
|
||||||
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
||||||
I 23921 2024-03-03 21:21:19 - [Commands] Sending to C-2 (Jess) (version=GC_V3 command=11 flag=00)
|
I 23921 2024-03-03 21:21:19 - [Commands] Sending to C-2 (Jess) (version=GC_V3 command=11 flag=00)
|
||||||
0000 | 11 00 2C 00 00 00 00 00 00 00 00 00 45 70 32 20 | , Ep2
|
0000 | 11 00 64 00 00 00 00 00 00 00 00 00 53 65 63 74 | d Sect
|
||||||
0010 | 4E 20 4E 6D 6C 20 56 69 72 0A 09 43 36 43 68 65 | N Nml Vir C6Che
|
0010 | 69 6F 6E 20 49 44 3A 20 56 69 72 69 64 69 61 0A | ion ID: Viridia
|
||||||
0020 | 61 74 73 20 6F 6E 09 43 37 00 00 00 | ats on C7
|
0020 | 09 43 36 43 68 65 61 74 73 20 65 6E 61 62 6C 65 | C6Cheats enable
|
||||||
|
0030 | 64 09 43 37 0A 09 43 36 50 65 72 73 69 73 74 65 | d C7 C6Persiste
|
||||||
|
0040 | 6E 63 65 20 65 6E 61 62 6C 65 64 09 43 37 0A 09 | nce enabled C7
|
||||||
|
0050 | 43 36 43 6C 69 65 6E 74 20 64 72 6F 70 73 09 43 | C6Client drops C
|
||||||
|
0060 | 37 00 00 00 | 7
|
||||||
I 23921 2024-03-03 21:21:22 - [Commands] Received from C-2 (Jess) (version=GC_V3 command=60 flag=00)
|
I 23921 2024-03-03 21:21:22 - [Commands] Received from C-2 (Jess) (version=GC_V3 command=60 flag=00)
|
||||||
0000 | 60 00 10 00 52 03 00 00 00 00 00 00 00 80 FF FF | ` R
|
0000 | 60 00 10 00 52 03 00 00 00 00 00 00 00 80 FF FF | ` R
|
||||||
I 23921 2024-03-03 21:21:22 - [Commands] Received from C-2 (Jess) (version=GC_V3 command=60 flag=00)
|
I 23921 2024-03-03 21:21:22 - [Commands] Received from C-2 (Jess) (version=GC_V3 command=60 flag=00)
|
||||||
|
|||||||
@@ -839,11 +839,9 @@ I 97037 2023-12-29 15:57:03 - [Commands] Sending to C-5 (88888888) (version=DC_V
|
|||||||
I 97037 2023-12-29 15:57:05 - [Commands] Received from C-5 (88888888) (version=DC_V1 command=09 flag=00)
|
I 97037 2023-12-29 15:57:05 - [Commands] Received from C-5 (88888888) (version=DC_V1 command=09 flag=00)
|
||||||
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
0000 | 09 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
||||||
I 97037 2023-12-29 15:57:05 - [Commands] Sending to C-5 (88888888) (version=DC_V1 command=11 flag=00)
|
I 97037 2023-12-29 15:57:05 - [Commands] Sending to C-5 (88888888) (version=DC_V1 command=11 flag=00)
|
||||||
0000 | 11 00 44 00 00 00 00 00 00 00 00 00 31 3A 20 09 | D 1:
|
0000 | 11 00 24 00 00 00 00 00 00 00 00 00 54 61 6C 69 | $ Tali
|
||||||
0010 | 43 36 54 61 6C 69 09 43 37 20 52 41 63 6C 20 4C | C6Tali C7 RAcl L
|
0010 | 0A 20 20 52 41 63 61 73 65 61 6C 20 4C 76 31 38 | RAcaseal Lv18
|
||||||
0020 | 31 38 35 0A 45 70 31 20 4E 20 4E 6D 6C 20 50 72 | 185 Ep1 N Nml Pr
|
0020 | 35 20 45 00 | 5 E
|
||||||
0030 | 70 0A 09 43 36 43 68 65 61 74 73 20 6F 6E 09 43 | p C6Cheats on C
|
|
||||||
0040 | 37 00 00 00 | 7
|
|
||||||
I 97037 2023-12-29 15:57:06 - [Commands] Received from C-5 (88888888) (version=DC_V1 command=10 flag=00)
|
I 97037 2023-12-29 15:57:06 - [Commands] Received from C-5 (88888888) (version=DC_V1 command=10 flag=00)
|
||||||
0000 | 10 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
0000 | 10 00 0C 00 44 00 00 44 15 00 00 00 | D D
|
||||||
I 97037 2023-12-29 15:57:06 - [C-5] Assigned inventory item IDs
|
I 97037 2023-12-29 15:57:06 - [C-5] Assigned inventory item IDs
|
||||||
|
|||||||
Reference in New Issue
Block a user