// =========================================================================== // Vortrex's Roleplay Resource // https://github.com/VortrexFTW/gtac_roleplay // =========================================================================== // FILE: scoreboard.js // DESC: Provides scoreboard features and rendering // TYPE: Client (JavaScript) // =========================================================================== let scoreBoardTitleFont = null; let scoreBoardListFont = null; let pausedColour = COLOUR_RED; let scoreboardKey = SDLK_TAB; // =========================================================================== function initScoreBoardScript() { logToConsole(LOG_DEBUG, "[VRR.ScoreBoard]: Initializing scoreboard script ..."); scoreBoardTitleFont = initScoreBoardTitleFont(); scoreBoardListFont = initScoreBoardListFont(); logToConsole(LOG_DEBUG, "[VRR.ScoreBoard]: Scoreboard script initialized!"); } // =========================================================================== function initScoreBoardTitleFont() { return lucasFont.createDefaultFont(22.0, "Roboto", "Regular"); } // =========================================================================== function initScoreBoardListFont() { return lucasFont.createDefaultFont(12.0, "Roboto", "Light"); } // =========================================================================== function processScoreBoardRendering() { if(renderScoreBoard) { if(isKeyDown(SDLK_TAB)) { 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); scoreBoardTitleFont.render("PLAYERS", [game.width/2, scoreboardStart-50], 0, 0.5, 0.0, scoreBoardTitleFont.size, COLOUR_WHITE, false, false, false, true); titleSize = scoreBoardTitleFont.measure("____________________________", game.width, 0.0, 1.0, 10, false, false); scoreBoardTitleFont.render("____________________________", [game.width/2, scoreboardStart-35], 0, 0.5, 0.0, scoreBoardTitleFont.size, COLOUR_WHITE, false, false, false, true); let clients = getClients(); for(let i in clients) { if(!clients[i].console) { let name = clients[i].name; let colour = COLOUR_WHITE; let paused = false; let ping = "-1"; if(typeof playerNames[clients[i].name] != "undefined") { name = playerNames[clients[i].name]; } if(typeof playerPaused[clients[i].name] != "undefined") { paused = playerPaused[clients[i].name]; } if(typeof playerColours[clients[i].name] != "undefined") { colour = playerColours[clients[i].name]; } if(typeof playerPing[clients[i].name] != "undefined") { ping = toString(playerPing[clients[i].name]); } // Player ID let text = String(clients[i].index); let size = scoreBoardListFont.measure(text, 75, 0.0, 1.0, 10, false, false); scoreBoardListFont.render(text, [game.width/2-100, scoreboardStart + (i*20)], 0, 0.5, 0.0, scoreBoardListFont.size, COLOUR_WHITE, false, false, false, true); // Player Name text = name; size = scoreBoardListFont.measure(text, 100, 0.0, 1.0, 10, false, false); scoreBoardListFont.render(text, [game.width/2, scoreboardStart + (i*20)], 0, 0.5, 0.0, scoreBoardListFont.size, colour, false, false, false, true); // Ping text = ping; size = scoreBoardListFont.measure(ping, 75, 0.0, 1.0, 10, false, false); scoreBoardListFont.render(ping, [game.width/2+100, scoreboardStart + (i*20)], 0, 0.5, 0.0, scoreBoardListFont.size, COLOUR_WHITE, false, false, false, true); // PAUSED Status (depends on resource "afk") if(paused == true) { size = scoreBoardListFont.measure("PAUSED", 100, 0.0, 1.0, 10, false, false); scoreBoardListFont.render("PAUSED", [game.width/2+200, scoreboardStart + (i*20)], 0, 0.5, 0.0, scoreBoardListFont.size, pausedColour, false, false, false, true); } } } } } } }