From d70a8d451abe0962a521d36a732dc0bc1c10e653 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 21 Feb 2023 19:48:38 -0600 Subject: [PATCH] Make scoreboard key re-bindable --- config/keybind.json | 5 +++++ scripts/client/netevents.js | 2 +- scripts/client/scoreboard.js | 18 +++++++++++++++--- scripts/server/event.js | 4 ++-- scripts/server/misc.js | 7 +++++++ scripts/server/netevents.js | 6 ++++++ 6 files changed, 36 insertions(+), 6 deletions(-) diff --git a/config/keybind.json b/config/keybind.json index 2eb9a14f..8fd2595c 100644 --- a/config/keybind.json +++ b/config/keybind.json @@ -104,6 +104,11 @@ "keyName": "9", "commandString": "item 9", "keyState": 1 + }, + { + "keyName": "f5", + "commandString": "scoreboard", + "keyState": 1 } ] } \ No newline at end of file diff --git a/scripts/client/netevents.js b/scripts/client/netevents.js index 8fd6c420..6215256b 100644 --- a/scripts/client/netevents.js +++ b/scripts/client/netevents.js @@ -152,6 +152,7 @@ function addAllNetworkHandlers() { addNetworkEventHandler("v.rp.minuteDuration", setMinuteDuration); addNetworkEventHandler("v.rp.snow", setSnowState); addNetworkEventHandler("v.rp.enterPropertyKey", setEnterPropertyKey); + addNetworkEventHandler("v.rp.scoreBoardKey", setScoreBoardKey); addNetworkEventHandler("v.rp.skinSelect", toggleSkinSelect); addNetworkEventHandler("v.rp.hotbar", updatePlayerHotBar); addNetworkEventHandler("v.rp.logLevel", setLogLevel); @@ -288,7 +289,6 @@ function setEnterPropertyKey(key) { } else { enterPropertyKey = key; } - } // =========================================================================== diff --git a/scripts/client/scoreboard.js b/scripts/client/scoreboard.js index 92ac1748..34dd4de4 100644 --- a/scripts/client/scoreboard.js +++ b/scripts/client/scoreboard.js @@ -12,7 +12,7 @@ let scoreBoardListFont = null; let pausedColour = COLOUR_RED; -let scoreboardKey = SDLK_TAB; +let scoreBoardKey = null; // =========================================================================== @@ -43,7 +43,7 @@ function processScoreBoardRendering() { } if (renderScoreBoard) { - if (isKeyDown(SDLK_TAB)) { + if (isKeyDown(scoreBoardKey)) { if (scoreBoardListFont != null && scoreBoardTitleFont != null) { let scoreboardStart = (game.height / 2) - (Math.floor(getClients().length / 2) * 20); let titleSize = scoreBoardTitleFont.measure("PLAYERS", game.width, 0.0, 1.0, 10, false, false); @@ -101,4 +101,16 @@ function processScoreBoardRendering() { } } } -} \ No newline at end of file +} + +// =========================================================================== + +function setScoreBoardKey(key) { + if (key == -1) { + scoreBoardKey = null; + } else { + scoreBoardKey = key; + } +} + +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/event.js b/scripts/server/event.js index c602ab7e..889f5d20 100644 --- a/scripts/server/event.js +++ b/scripts/server/event.js @@ -562,9 +562,9 @@ function onPlayerSpawn(client) { if (!doesPlayerHaveKeyBindsDisabled(client) && doesPlayerHaveKeyBindForCommand(client, "scoreboard")) { let keyId = getPlayerKeyBindForCommand(client, "scoreboard"); logToConsole(LOG_DEBUG, `[V.RP.Event] Sending scoreboard key ID (${keyId.key}, ${toUpperCase(getKeyNameFromId(keyId.key))}) to ${getPlayerDisplayForConsole(client)}`); - sendPlayerScoreboardKey(client, keyId.key); + sendPlayerScoreBoardKey(client, keyId.key); } else { - sendPlayerScoreboardKey(client, -1); + sendPlayerScoreBoardKey(client, -1); } sendPlayerChatBoxTimeStampsState(client, isPlayerAccountSettingEnabled(client, "ChatBoxTimestamps")); diff --git a/scripts/server/misc.js b/scripts/server/misc.js index 582b826a..c9f08a50 100644 --- a/scripts/server/misc.js +++ b/scripts/server/misc.js @@ -1012,4 +1012,11 @@ function getPlayerInPropertyData(client) { getPlayerData(client).inProperty = null; } +// =========================================================================== + +function scoreBoardCommand(command, params, client) { + // Handled client side + return false; +} + // =========================================================================== \ No newline at end of file diff --git a/scripts/server/netevents.js b/scripts/server/netevents.js index 444beeac..af22a803 100644 --- a/scripts/server/netevents.js +++ b/scripts/server/netevents.js @@ -1010,6 +1010,12 @@ function sendPlayerEnterPropertyKey(client, key) { // =========================================================================== +function sendPlayerScoreBoardKey(client, key) { + sendNetworkEventToPlayer("v.rp.scoreBoardKey", client, key); +} + +// =========================================================================== + function makePedPlayAnimation(ped, animationSlot, positionOffset) { if (getAnimationData(animationSlot).loop == true) { setEntityData(ped, "v.rp.anim", animationSlot, true);