mp.keys.bind(KEYCODE_Z, false, async () => {
if (mp.players.local.isTypingInTextChat) {
return;
}
playerListCurPage = DEFAULT_PAGE;
if (playerListOpen) {
if (cardScaleform) {
cardScaleform.dispose();
cardScaleform = null;
}
mp.gui.chat.show(true);
mp.game.audio.playSoundFrontend(-1, CLOSE_SOUND_NAME, CARD_SOUNDSET_NAME, true);
} else {
mp.gui.chat.show(false);
playerList = mp.players.toArray();
playerList.sort((a, b) => a.remoteId - b.remoteId); // Not even sure if needed, just in case
playerListMaxPage = Math.ceil(playerList.length / PLAYERS_PER_PAGE);
// Load the scaleform
cardScaleform = await Scaleform.request("mp_mm_card_freemode");
// Update scaleform
updateTitle();
updateCard();
// Play sound effect
mp.game.audio.playSoundFrontend(-1, OPEN_SOUND_NAME, CARD_SOUNDSET_NAME, true);
}
playerListOpen = !playerListOpen;
});