From b6f8513c0d9b32529337cdcd301d5e7588643616 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sat, 16 Apr 2022 21:45:57 -0500 Subject: [PATCH] Start working on racing script --- scripts/server/bitflag.js | 1 + scripts/server/command.js | 12 ++++++++++++ scripts/server/race.js | 31 +++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 scripts/server/race.js diff --git a/scripts/server/bitflag.js b/scripts/server/bitflag.js index dab08715..a7deb8c2 100644 --- a/scripts/server/bitflag.js +++ b/scripts/server/bitflag.js @@ -41,6 +41,7 @@ let serverBitFlagKeys = { "ManageAntiCheat", "Developer", "ManageNPCs", + "ManageRaces", ], moderationFlagKeys: [ "None", diff --git a/scripts/server/command.js b/scripts/server/command.js index 8472e82d..7f90d0e6 100644 --- a/scripts/server/command.js +++ b/scripts/server/command.js @@ -393,6 +393,18 @@ function loadCommands() { //new CommandData("npcrespawnall", respawnAllNPCsCommand, "", getStaffFlagValue("ManageNPCs"), true, false, "Respawns all NPCs"), //new CommandData("npcrespawn", respawnNPCCommand, "", getStaffFlagValue("ManageNPCs"), true, false, "Respawns the nearest NPC"), ], + race: [ + new CommandData("addrace", createRaceCommand, "", getStaffFlagValue("ManageRaces"), true, false, "Creates a race"), + new CommandData("delrace", deleteRaceCommand, "", getStaffFlagValue("ManageRaces"), true, false, "Deletes a race by name"), + new CommandData("addracecp", createRaceCheckPointCommand, "", getStaffFlagValue("ManageRaces"), true, false, "Creates a race checkpoint"), + new CommandData("addracestart", createRaceStartPositionCommand, "", getStaffFlagValue("ManageRaces"), true, false, "Creates a starting position for a race"), + new CommandData("delracestart", deleteRaceStartPositionCommand, "", getStaffFlagValue("ManageRaces"), true, false, "Deletes the closest starting position for a race"), + new CommandData("delracecp", deleteRaceCheckPointCommand, "", getStaffFlagValue("ManageRaces"), true, false, "Deletes the closest race checkpoint"), + new CommandData("racename", setRaceNameCommand, "", getStaffFlagValue("ManageRaces"), true, false, "Sets a race's name"), + new CommandData("startrace", startRaceCommand, "", getStaffFlagValue("None"), true, false, "Starts a race"), + new CommandData("stoprace", stopRaceCommand, "", getStaffFlagValue("None"), true, false, "Stops racing (forfeits if in an active race)"), + new CommandData("stopAllRacesCommand", stopAllRacesCommand, "", getStaffFlagValue("ManageRaces"), true, false, "Stops a race"), + ], radio: [ new CommandData("radiostation", playStreamingRadioCommand, "", getStaffFlagValue("None"), true, false, "Plays a radio station in your vehicle, house, or business (depending on which one you're in)"), new CommandData("radiostations", showRadioStationListCommand, "", getStaffFlagValue("None"), true, false, "Shows a list of all available radio stations"), diff --git a/scripts/server/race.js b/scripts/server/race.js new file mode 100644 index 00000000..3fcfc684 --- /dev/null +++ b/scripts/server/race.js @@ -0,0 +1,31 @@ +// =========================================================================== +// Vortrex's Roleplay Resource +// https://github.com/VortrexFTW/gtac_roleplay +// =========================================================================== +// FILE: race.js +// DESC: Provides racing usage and functions +// TYPE: Server (JavaScript) +// =========================================================================== + +function initRaceScript() { + if(!getServerConfig().devServer) { + getServerData().races = loadRacesFromDatabase(); + } + + setRaceDataIndexes(); +} + +// =========================================================================== + +/** + * @param {Number} raceId - The data index of the race + * @return {RaceData} The race's data (class instance) + */ +function getRaceData(raceId) { + if(typeof getServerData().races[raceId] != "undefined") { + return getServerData().races[raceId]; + } + return false; +} + +// =========================================================================== \ No newline at end of file