refine game info messages

This commit is contained in:
Martin Michelsen
2024-03-15 22:19:33 -07:00
parent dc36d2ae8d
commit 31edec701b
9 changed files with 126 additions and 138 deletions
+1
View File
@@ -201,6 +201,7 @@ Client::Client(
card_battle_table_number(-1),
card_battle_table_seat_number(0),
card_battle_table_seat_state(0),
last_game_info_requested(0),
should_update_play_time(false),
bb_character_index(-1),
next_exp_value(0),
+1
View File
@@ -219,6 +219,7 @@ public:
std::weak_ptr<Episode3::Tournament::Team> ep3_tournament_team;
std::shared_ptr<Episode3::BattleRecord> ep3_prev_battle_record;
std::shared_ptr<const Menu> last_menu_sent;
uint32_t last_game_info_requested;
struct JoinCommand {
uint16_t command;
uint32_t flag;
+89 -100
View File
@@ -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) {
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) {
send_ep3_tournament_entry_list(c, tourn, false);
} else {
send_lobby_message_box(c, "$C6The tournament\nhas concluded.");
send_lobby_message_box(c, "$C7The tournament\nhas concluded.");
}
} 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;
}
@@ -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 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;
default:
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();
auto quest_index = s->quest_index(c->version());
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 {
auto q = quest_index->get(cmd.item_id);
if (!q) {
@@ -1889,72 +1889,43 @@ static void on_09(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
} else {
string info;
for (size_t x = 0; x < game->max_clients; x++) {
const auto& game_c = game->clients[x];
if (game_c.get()) {
auto player = game_c->character();
string name = escape_player_name(player->disp.name.decode(game_c->language()));
if (game->is_ep3()) {
info += string_printf("%zu: $C6%s$C7 L%" PRIu32 "\n",
x + 1, name.c_str(), player->disp.stats.level + 1);
} else {
info += string_printf("%zu: $C6%s$C7 %s L%" PRIu32 "\n",
x + 1, name.c_str(),
abbreviation_for_char_class(player->disp.visual.char_class),
player->disp.stats.level + 1);
if (c->last_game_info_requested != game->lobby_id) {
// Send page 1 (players)
c->last_game_info_requested = game->lobby_id;
for (size_t x = 0; x < game->max_clients; x++) {
const auto& game_c = game->clients[x];
if (game_c.get()) {
auto player = game_c->character();
string name = escape_player_name(player->disp.name.decode(game_c->language()));
info += string_printf("%s\n %s Lv%" PRIu32 " %c\n",
name.c_str(),
name_for_char_class(player->disp.visual.char_class),
player->disp.stats.level + 1,
char_for_language_code(game_c->language()));
}
}
}
info += string_printf("%s %c %s %s\n",
abbreviation_for_episode(game->episode),
abbreviation_for_difficulty(game->difficulty),
abbreviation_for_mode(game->mode),
abbreviation_for_section_id(game->effective_section_id()));
// If page 1 is blank (there are no players) or we sent page 1 last
// time, send page 2 (extended info)
if (info.empty()) {
c->last_game_info_requested = 0;
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)) {
flags_tokens.emplace_back("$C6C$C7");
info += "$C6Cheats enabled$C7\n";
}
if (game->check_flag(Lobby::Flag::PERSISTENT)) {
flags_tokens.emplace_back("$C6P$C7");
}
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";
info += "$C6Persistence enabled$C7\n";
}
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";
} else if (game->check_flag(Lobby::Flag::QUEST_IN_PROGRESS)) {
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)) {
info += "$C4View Battle forbidden\n";
switch (game->drop_mode) {
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);
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 game = s->find_lobby(item_id);
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;
}
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;
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;
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;
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;
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;
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;
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;
case Lobby::JoinError::INCORRECT_PASSWORD:
send_lobby_message_box(c, "$C6Incorrect password.");
send_lobby_message_box(c, "$C7Incorrect password.");
break;
case Lobby::JoinError::LEVEL_TOO_LOW:
send_lobby_message_box(c, "$C6Your level is too\nlow to join this\ngame.");
case Lobby::JoinError::LEVEL_TOO_LOW: {
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;
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;
}
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;
default:
send_lobby_message_box(c, "$C6You cannot join this\ngame.");
send_lobby_message_box(c, "$C7You cannot join this\ngame.");
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 quest_index = s->quest_index(c->version());
if (!quest_index) {
send_lobby_message_box(c, "$C6Quests are not available.");
send_lobby_message_box(c, "$C7Quests are not available.");
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 quest_index = s->quest_index(c->version());
if (!quest_index) {
send_lobby_message_box(c, "$C6Quests are not\navailable.");
send_lobby_message_box(c, "$C7Quests are not\navailable.");
break;
}
auto q = quest_index->get(item_id);
if (!q) {
send_lobby_message_box(c, "$C6Quest does not exist.");
send_lobby_message_box(c, "$C7Quest does not exist.");
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.
auto l = c->lobby.lock();
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;
}
if (l) {
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;
}
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;
}
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;
}
set_lobby_quest(l, q);
@@ -2618,7 +2606,7 @@ static void on_10(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
} else {
auto vq = q->version(c->version(), c->language());
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;
}
// 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");
}
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;
}
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();
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;
}
// In Episode 3, there are no quest categories, so skip directly to the quest
// filter menu.
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 {
QuestMenuType menu_type;
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;
try {
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) {
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)) {
// Note: We don't throw here because this is a situation players might
// 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;
}
@@ -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);
if (!watched_lobby) {
send_lobby_message_box(c, "$C6This game no longer\nexists");
send_lobby_message_box(c, "$C7This game no longer\nexists");
return;
}
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;
}
}
@@ -4451,11 +4440,11 @@ static void on_C1_BB(shared_ptr<Client> c, uint16_t, uint32_t, string& data) {
episode = Episode::EP4;
// Disallow battle/challenge in Ep4
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;
}
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;
}
break;
@@ -4515,7 +4504,7 @@ static void on_6F(shared_ptr<Client> c, uint16_t command, uint32_t, string& data
if (c) {
c->ep3_prev_battle_record = l->battle_record;
if ((s->ep3_behavior_flags & Episode3::BehaviorFlag::ENABLE_STATUS_MESSAGES)) {
send_text_message(l, "$C6Recording complete");
send_text_message(l, "$C7Recording complete");
}
}
}
+3 -4
View File
@@ -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)
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)
0000 | 11 00 3C 00 00 00 00 00 00 00 00 00 31 3A 20 41 | < 1: A
0010 | 42 43 44 45 46 47 48 49 4A 4B 4C 20 52 41 63 74 | BCDEFGHIJKL RAct
0020 | 20 4C 31 0A 45 70 31 20 4E 20 4E 6D 6C 20 52 65 | L1 Ep1 N Nml Re
0030 | 64 0A 43 68 65 61 74 73 20 6F 6E 00 | d Cheats on
0000 | 11 00 28 00 00 00 00 00 00 00 00 00 41 42 43 44 | ( ABCD
0010 | 45 46 47 48 49 4A 4B 4C 0A 20 20 52 41 63 61 73 | EFGHIJKL RAcas
0020 | 74 20 4C 76 31 20 4A 00 | t Lv1 J
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
0010 | 5C 0F C6 43 00 00 00 00 C3 75 95 42 | \ C u B
+16 -20
View File
@@ -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)
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)
0000 | 11 00 44 00 00 00 00 00 00 00 00 00 31 3A 20 09 | D 1:
0010 | 43 36 4A 65 73 73 09 43 37 20 52 41 6D 6C 20 4C | C6Jess C7 RAml L
0020 | 32 39 0A 45 70 32 20 4E 20 4E 6D 6C 20 50 6E 6B | 29 Ep2 N Nml Pnk
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 |
0000 | 11 00 24 00 00 00 00 00 00 00 00 00 4A 65 73 73 | $ Jess
0010 | 0A 20 20 52 41 6D 61 72 6C 20 4C 76 32 39 20 45 | RAmarl Lv29 E
0020 | 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)
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)
0000 | 11 00 44 00 00 00 00 00 00 00 00 00 31 3A 20 09 | D 1:
0010 | 43 36 4A 65 73 73 09 43 37 20 52 41 6D 6C 20 4C | C6Jess C7 RAml L
0020 | 32 39 0A 45 70 32 20 4E 20 4E 6D 6C 20 50 6E 6B | 29 Ep2 N Nml Pnk
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 |
0000 | 11 00 48 00 00 00 00 00 00 00 00 00 53 65 63 74 | H Sect
0010 | 69 6F 6E 20 49 44 3A 20 50 69 6E 6B 61 6C 0A 09 | ion ID: Pinkal
0020 | 43 36 43 68 65 61 74 73 20 65 6E 61 62 6C 65 64 | C6Cheats enabled
0030 | 09 43 37 0A 09 43 36 43 6C 69 65 6E 74 20 64 72 | C7 C6Client dr
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)
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
@@ -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)
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)
0000 | 11 00 44 00 00 00 00 00 00 00 00 00 31 3A 20 09 | D 1:
0010 | 43 36 4A 65 73 73 09 43 37 20 52 41 6D 6C 20 4C | C6Jess C7 RAml L
0020 | 32 39 0A 45 70 32 20 4E 20 4E 6D 6C 20 50 6E 6B | 29 Ep2 N Nml Pnk
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 |
0000 | 11 00 24 00 00 00 00 00 00 00 00 00 4A 65 73 73 | $ Jess
0010 | 0A 20 20 52 41 6D 61 72 6C 20 4C 76 32 39 20 45 | RAmarl Lv29 E
0020 | 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)
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)
@@ -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)
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)
0000 | 11 00 44 00 00 00 00 00 00 00 00 00 31 3A 20 09 | D 1:
0010 | 43 36 4A 65 73 73 09 43 37 20 52 41 6D 6C 20 4C | C6Jess C7 RAml L
0020 | 32 39 0A 45 70 32 20 4E 20 4E 6D 6C 20 50 6E 6B | 29 Ep2 N Nml Pnk
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 |
0000 | 11 00 48 00 00 00 00 00 00 00 00 00 53 65 63 74 | H Sect
0010 | 69 6F 6E 20 49 44 3A 20 50 69 6E 6B 61 6C 0A 09 | ion ID: Pinkal
0020 | 43 36 43 68 65 61 74 73 20 65 6E 61 62 6C 65 64 | C6Cheats enabled
0030 | 09 43 37 0A 09 43 36 50 72 69 76 61 74 65 20 64 | C7 C6Private d
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)
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
+3 -3
View File
@@ -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
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)
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
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)
@@ -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)
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)
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
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)
@@ -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
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)
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
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)
@@ -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
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)
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
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)
@@ -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)
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)
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
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)
@@ -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
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)
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
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)
+7 -3
View File
@@ -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)
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)
0000 | 11 00 2C 00 00 00 00 00 00 00 00 00 45 70 32 20 | , Ep2
0010 | 4E 20 4E 6D 6C 20 56 69 72 0A 09 43 36 43 68 65 | N Nml Vir C6Che
0020 | 61 74 73 20 6F 6E 09 43 37 00 00 00 | ats on C7
0000 | 11 00 64 00 00 00 00 00 00 00 00 00 53 65 63 74 | d Sect
0010 | 69 6F 6E 20 49 44 3A 20 56 69 72 69 64 69 61 0A | ion ID: Viridia
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)
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)
+3 -5
View File
@@ -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)
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)
0000 | 11 00 44 00 00 00 00 00 00 00 00 00 31 3A 20 09 | D 1:
0010 | 43 36 54 61 6C 69 09 43 37 20 52 41 63 6C 20 4C | C6Tali C7 RAcl L
0020 | 31 38 35 0A 45 70 31 20 4E 20 4E 6D 6C 20 50 72 | 185 Ep1 N Nml Pr
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
0000 | 11 00 24 00 00 00 00 00 00 00 00 00 54 61 6C 69 | $ Tali
0010 | 0A 20 20 52 41 63 61 73 65 61 6C 20 4C 76 31 38 | RAcaseal Lv18
0020 | 35 20 45 00 | 5 E
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
I 97037 2023-12-29 15:57:06 - [C-5] Assigned inventory item IDs