diff --git a/TODO.md b/TODO.md index 5b43b955..32d8b665 100644 --- a/TODO.md +++ b/TODO.md @@ -28,4 +28,6 @@ For grand opening: * Add display for player's actual time (like Steam overlay has) ------------------------------------------------------ * Change structure of item types to include only **one** set of items - * Use a new table for game-specific data (model, obj pos/rot/scale, etc) \ No newline at end of file + * Use a new table for game-specific data (model, obj pos/rot/scale, etc) +------------------------------------------------------ +* Change pizza delivery job to pick a random house door instead of pre-established places on the street. \ No newline at end of file diff --git a/scripts/client/afk.js b/scripts/client/afk.js index c2471793..f985231c 100644 --- a/scripts/client/afk.js +++ b/scripts/client/afk.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: afk.js // DESC: Provides AFK detection // TYPE: Client (JavaScript) diff --git a/scripts/client/chatbox.js b/scripts/client/chatbox.js index e08595e5..7f70a015 100644 --- a/scripts/client/chatbox.js +++ b/scripts/client/chatbox.js @@ -2,13 +2,13 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: chatbox.js // DESC: Provides extra chatbox features // TYPE: Client (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== let chatBoxHistory = []; let bottomMessageIndex = 0; @@ -17,12 +17,12 @@ let maxChatBoxHistory = 500; let scrollAmount = 1; let maxChatBoxLines = 6; -// --------------------------------------------------------------------------- +// =========================================================================== bindKey(SDLK_PAGEUP, KEYSTATE_DOWN, chatBoxScrollUp); bindKey(SDLK_PAGEDOWN, KEYSTATE_DOWN, chatBoxScrollDown); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.m", function(messageString, colour) { message(messageString, colour); @@ -30,13 +30,13 @@ addNetworkHandler("ag.m", function(messageString, colour) { bottomMessageIndex = chatBoxHistory.length-1; }); -// --------------------------------------------------------------------------- +// =========================================================================== function addToChatBoxHistory(messageString, colour) { chatBoxHistory.push([messageString, colour]); } -// --------------------------------------------------------------------------- +// =========================================================================== function chatBoxScrollUp() { if(bottomMessageIndex > maxChatBoxLines) { @@ -45,7 +45,7 @@ function chatBoxScrollUp() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function chatBoxScrollDown() { if(bottomMessageIndex < chatBoxHistory.length-1) { @@ -54,7 +54,7 @@ function chatBoxScrollDown() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function clearChatBox() { for(let i = 0 ; i <= maxChatBoxLines ; i++) { @@ -62,7 +62,7 @@ function clearChatBox() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function updateChatBox() { clearChatBox(); @@ -75,4 +75,4 @@ function updateChatBox() { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/client/gui.js b/scripts/client/gui.js index fcd4199a..49139def 100644 --- a/scripts/client/gui.js +++ b/scripts/client/gui.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: gui.js // DESC: Provides GUI functionality and styles (using MexUI) // TYPE: Client (JavaScript) @@ -1166,7 +1166,7 @@ app.init = function() logToConsole(LOG_DEBUG, `[Asshat.GUI] Created login GUI`); - // ------------------------------------------------------------------------------ + // =========================================================================== logToConsole(LOG_DEBUG, `[Asshat.GUI] Creating two factor auth GUI ...`); twoFactorAuth.window = mexui.window(game.width/2-150, game.height/2-129, 300, 258, 'LOGIN', { @@ -1244,7 +1244,7 @@ app.init = function() logToConsole(LOG_DEBUG, `[Asshat.GUI] Created two factor auth GUI`); - // ------------------------------------------------------------------------------ + // =========================================================================== logToConsole(LOG_DEBUG, `[Asshat.GUI] Creating new character GUI ...`); @@ -1450,7 +1450,7 @@ app.init = function() }, checkNewCharacter); logToConsole(LOG_DEBUG, `[Asshat.GUI] Created new character GUI`); - // ------------------------------------------------------------------------------ + // =========================================================================== logToConsole(LOG_DEBUG, `[Asshat.GUI] Creating register GUI ...`); register.window = mexui.window(game.width/2-130, game.height/2-125, 300, 250, 'Register', { @@ -1563,7 +1563,7 @@ app.init = function() }, checkRegistration); logToConsole(LOG_DEBUG, `[Asshat.GUI] Created register GUI`); - // ------------------------------------------------------------------------------ + // =========================================================================== logToConsole(LOG_DEBUG, `[Asshat.GUI] Creating error GUI ...`); errorDialog.window = mexui.window(game.width/2-200, game.height/2-70, 400, 140, 'ERROR', { @@ -1609,7 +1609,7 @@ app.init = function() }, closeErrorDialog); logToConsole(LOG_DEBUG, `[Asshat.GUI] Created error GUI ...`); - // ------------------------------------------------------------------------------ + // =========================================================================== logToConsole(LOG_DEBUG, `[Asshat.GUI] Created prompt GUI ...`); yesNoDialog.window = mexui.window(game.width/2-200, game.height/2-70, 400, 140, 'Question', { @@ -1668,7 +1668,7 @@ app.init = function() }, yesNoDialogAnswerNo); logToConsole(LOG_DEBUG, `[Asshat.GUI] Created prompt GUI`); - // ------------------------------------------------------------------------------ + // =========================================================================== logToConsole(LOG_DEBUG, `[Asshat.GUI] Creating info dialog GUI ...`); infoDialog.window = mexui.window(game.width/2-200, game.height/2-70, 400, 140, 'Information', { @@ -1713,7 +1713,7 @@ app.init = function() }, closeInfoDialog); logToConsole(LOG_DEBUG, `[Asshat.GUI] Created info dialog GUI`); -// ------------------------------------------------------------------------------ +// =========================================================================== logToConsole(LOG_DEBUG, `[Asshat.GUI] Creating list dialog GUI ...`); listDialog.window = mexui.window(game.width/2-200, game.height/2-70, 400, 500, 'List', { @@ -1771,7 +1771,7 @@ app.init = function() }); logToConsole(LOG_DEBUG, `[Asshat.GUI] Created list dialog GUI`); - // ------------------------------------------------------------------------------ + // =========================================================================== logToConsole(LOG_DEBUG, `[Asshat.GUI] Creating character select GUI ...`); characterSelect.window = mexui.window(game.width/2-215, game.height/2-83, 430, 166, 'Select Character', { @@ -1897,20 +1897,20 @@ app.init = function() }); logToConsole(LOG_DEBUG, `[Asshat.GUI] Created character select GUI`); - // --------------------------------------------------------------------------- + // =========================================================================== logToConsole(LOG_DEBUG, `[Asshat.GUI] All GUI created successfully!`); closeAllWindows(); }; -// --------------------------------------------------------------------------- +// =========================================================================== let checkLogin = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Checking login with server ...`); triggerNetworkEvent("ag.checkLogin", login.passwordInput.lines[0]); } -// --------------------------------------------------------------------------- +// =========================================================================== let loginFailed = function(errorMessage) { logToConsole(LOG_DEBUG, `[Asshat.GUI] Server reports login failed`); @@ -1919,21 +1919,21 @@ let loginFailed = function(errorMessage) { login.passwordInput.text = ""; } -// --------------------------------------------------------------------------- +// =========================================================================== let loginSuccess = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Server reports login was successful`); closeAllWindows(); } -// --------------------------------------------------------------------------- +// =========================================================================== let checkRegistration = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Checking registration with server ...`); triggerNetworkEvent("ag.checkRegistration", register.passwordInput.lines[0], register.confirmPasswordInput.lines[0], register.emailInput.lines[0]); } -// --------------------------------------------------------------------------- +// =========================================================================== let checkNewCharacter = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Checking new character with server ...`); @@ -1964,7 +1964,7 @@ let checkNewCharacter = function() { ); } -// --------------------------------------------------------------------------- +// =========================================================================== let registrationFailed = function(errorMessage) { logToConsole(LOG_DEBUG, `[Asshat.GUI] Server reports registration failed. Reason: ${errorMessage}`); @@ -1975,14 +1975,14 @@ let registrationFailed = function(errorMessage) { register.emailInput.text = ""; } -// --------------------------------------------------------------------------- +// =========================================================================== let registrationSuccess = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Server reports registration was successful`); closeAllWindows(); } -// --------------------------------------------------------------------------- +// =========================================================================== let twoFactorAuthFailed = function(errorMessage) { logToConsole(LOG_DEBUG, `[Asshat.GUI] Server reports two-factor authentication failed. Reason: ${errorMessage}`); @@ -1991,28 +1991,28 @@ let twoFactorAuthFailed = function(errorMessage) { login.passwordInput.text = ""; } -// --------------------------------------------------------------------------- +// =========================================================================== let twoFactorAuthSuccess = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Server reports two-factor authentication was successful`); closeAllWindows(); } -// --------------------------------------------------------------------------- +// =========================================================================== let checkTwoFactorAuth = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Checking two-factor authentication with server ...`); triggerNetworkEvent("ag.checkTwoFactorAuth", twoFactorAuth.codeInput.lines[0]); } -// --------------------------------------------------------------------------- +// =========================================================================== let characterSelectSuccess = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Server reports character selection was successful`); closeAllWindows(); } -// --------------------------------------------------------------------------- +// =========================================================================== let closeErrorDialog = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Closing error dialog`); @@ -2020,7 +2020,7 @@ let closeErrorDialog = function() { mexui.setInput(false); } -// --------------------------------------------------------------------------- +// =========================================================================== let closeInfoDialog = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Closing info dialog`); @@ -2028,7 +2028,7 @@ let closeInfoDialog = function() { mexui.setInput(false); } -// --------------------------------------------------------------------------- +// =========================================================================== let closeAllWindows = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Closing all GUI windows`); @@ -2044,21 +2044,21 @@ let closeAllWindows = function() { mexui.setInput(false); } -// --------------------------------------------------------------------------- +// =========================================================================== let yesNoDialogAnswerNo = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Responding with answer NO to server prompt`); triggerNetworkEvent("ag.promptAnswerNo"); } -// --------------------------------------------------------------------------- +// =========================================================================== let yesNoDialogAnswerYes = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Responding with answer YES to server prompt`); triggerNetworkEvent("ag.promptAnswerYes"); } -// --------------------------------------------------------------------------- +// =========================================================================== let showRegistration = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Showing registration window`); @@ -2068,7 +2068,7 @@ let showRegistration = function() { register.window.shown = true; } -// --------------------------------------------------------------------------- +// =========================================================================== let showLogin = function() { closeAllWindows(); @@ -2078,7 +2078,7 @@ let showLogin = function() { login.window.shown = true; } -// --------------------------------------------------------------------------- +// =========================================================================== let showTwoFactorAuth = function() { closeAllWindows(); @@ -2088,7 +2088,7 @@ let showTwoFactorAuth = function() { twoFactorAuth.window.shown = true; } -// --------------------------------------------------------------------------- +// =========================================================================== let showCharacterSelect = function(firstName, lastName, placeOfOrigin, dateOfBirth, skinId) { closeAllWindows(); @@ -2102,7 +2102,7 @@ let showCharacterSelect = function(firstName, lastName, placeOfOrigin, dateOfBir characterSelect.window.shown = true; } -// --------------------------------------------------------------------------- +// =========================================================================== let showError = function(errorMessage, errorTitle) { closeAllWindows(); @@ -2113,7 +2113,7 @@ let showError = function(errorMessage, errorTitle) { errorDialog.window.shown = true; } -// --------------------------------------------------------------------------- +// =========================================================================== let showYesNo = function(promptMessage, promptTitle) { closeAllWindows(); @@ -2123,7 +2123,7 @@ let showYesNo = function(promptMessage, promptTitle) { yesNoDialog.window.shown = true; } -// --------------------------------------------------------------------------- +// =========================================================================== let showInfo = function(infoMessage, infoTitle) { closeAllWindows(); @@ -2133,7 +2133,7 @@ let showInfo = function(infoMessage, infoTitle) { infoDialog.window.shown = true; } -// --------------------------------------------------------------------------- +// =========================================================================== let showNewCharacter = function() { closeAllWindows(); @@ -2143,28 +2143,28 @@ let showNewCharacter = function() { newCharacter.window.shown = true; } -// --------------------------------------------------------------------------- +// =========================================================================== let selectNextCharacter = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Requesting next character info from server for character select window`); triggerNetworkEvent("ag.nextCharacter"); } -// --------------------------------------------------------------------------- +// =========================================================================== let selectPreviousCharacter = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Requesting previous character info from server for character select window`); triggerNetworkEvent("ag.previousCharacter"); } -// --------------------------------------------------------------------------- +// =========================================================================== let selectThisCharacter = function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Tell server the current shown character was selected in character select window`); triggerNetworkEvent("ag.selectCharacter"); } -// --------------------------------------------------------------------------- +// =========================================================================== let switchCharacterSelect = function(firstName, lastName, placeOfOrigin, dateOfBirth, skinId) { logToConsole(LOG_DEBUG, `[Asshat.GUI] Updating character info with data from server`); @@ -2177,70 +2177,70 @@ let switchCharacterSelect = function(firstName, lastName, placeOfOrigin, dateOfB characterSelect.window.shown = true; } -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.showLogin", function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received request from server to show login window`); showLogin(); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.showRegistration", function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received request from server to show registration window`); showRegistration(); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.showNewCharacter", function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received request from server to show new character window`); showNewCharacter(); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.showCharacterSelect", function(firstName, lastName, placeOfOrigin, dateOfBirth, skinId) { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received request from server to show character selection window`); showCharacterSelect(firstName, lastName, placeOfOrigin, dateOfBirth, skinId); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.switchCharacterSelect", function(firstName, lastName, placeOfOrigin, dateOfBirth, skinId) { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received request from server to update character selection window with new info`); switchCharacterSelect(firstName, lastName, placeOfOrigin, dateOfBirth, skinId); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.showError", function(errorMessage, errorTitle) { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received request from server to show error window`); showError(errorMessage, errorTitle); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.showPrompt", function(promptMessage, promptTitle) { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received request from server to show prompt window`); showYesNo(promptMessage, promptTitle); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.showInfo", function(infoMessage) { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received request from server to show info dialog`); showInfo(infoMessage); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.loginSuccess", function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received signal of successful login from server`); loginSuccess(); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.characterSelectSuccess", function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received signal of successful character selection from server`); @@ -2248,28 +2248,28 @@ addNetworkHandler("ag.characterSelectSuccess", function() { setChatWindowEnabled(true); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.loginFailed", function(remainingAttempts) { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received signal of failed login from server`); loginFailed(remainingAttempts); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.registrationSuccess", function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received signal of successful registration from server`); registrationSuccess(); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.registrationFailed", function(errorMessage) { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received signal of failed registration from server`); registrationFailed(errorMessage); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.guiColour", function(red, green, blue) { logToConsole(LOG_DEBUG, `[Asshat.GUI] Received new GUI colours from server`); @@ -2277,7 +2277,7 @@ addNetworkHandler("ag.guiColour", function(red, green, blue) { focusedColour = [red+focusedColourOffset, green+focusedColourOffset, blue+focusedColourOffset]; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.guiInit", function() { logToConsole(LOG_DEBUG, `[Asshat.GUI] Initializing MexUI app`); @@ -2285,4 +2285,4 @@ addNetworkHandler("ag.guiInit", function() { triggerNetworkEvent("ag.guiReady", true); }); -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/client/keybind.js b/scripts/client/keybind.js index ec296504..29f9a801 100644 --- a/scripts/client/keybind.js +++ b/scripts/client/keybind.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: keybind.js // DESC: Provides keybind features // TYPE: Client (JavaScript) diff --git a/scripts/client/label.js b/scripts/client/label.js index 983277da..9de0e6db 100644 --- a/scripts/client/label.js +++ b/scripts/client/label.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: labels.js // DESC: Provides functionality for world labels (3D labels) // TYPE: Client (JavaScript) diff --git a/scripts/client/main.js b/scripts/client/main.js index f0c0811f..a9f72e50 100644 --- a/scripts/client/main.js +++ b/scripts/client/main.js @@ -2,13 +2,13 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: main.js // DESC: Main client script (will be reorganized into individual files later) // TYPE: Client (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== let bigMessageFont = null; let logoImage = null; @@ -70,7 +70,7 @@ let controlsEnabled = false; let usingSkinSelector = false; -// --------------------------------------------------------------------------- +// =========================================================================== addEvent("OnLocalPlayerEnterSphere", 1); addEvent("OnLocalPlayerExitSphere", 1); @@ -78,7 +78,7 @@ addEvent("OnLocalPlayerEnteredVehicle", 1); addEvent("OnLocalPlayerExitedVehicle", 1); addEvent("OnLocalPlayerSwitchWeapon", 2); -// --------------------------------------------------------------------------- +// =========================================================================== bindEventHandler("onResourceReady", thisResource, function(event, resource) { if(resource == thisResource) { @@ -101,7 +101,7 @@ bindEventHandler("onResourceReady", thisResource, function(event, resource) { openAllGarages(); }); -// --------------------------------------------------------------------------- +// =========================================================================== bindEventHandler("onResourceStart", thisResource, function(event, resource) { if(gta.game == GAME_GTA_SA) { @@ -115,13 +115,13 @@ bindEventHandler("onResourceStart", thisResource, function(event, resource) { addEventHandler("onProcess", processEvent); }); -// --------------------------------------------------------------------------- +// =========================================================================== bindEventHandler("onResourceStop", thisResource, function(event, resource) { removeEventHandler("onProcess"); }); -// --------------------------------------------------------------------------- +// =========================================================================== addEventHandler("onKeyUp", function(event, virtualKey, physicalKey, keyModifiers) { if(usingSkinSelector) { @@ -142,21 +142,21 @@ addEventHandler("onKeyUp", function(event, virtualKey, physicalKey, keyModifiers } }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.cameraLookAt", function(cameraPosition, cameraLookat) { logToConsole(LOG_DEBUG, `[Asshat.Main] Set camera to look at ${cameraPosition.x}, ${cameraPosition.y}, ${cameraPosition.z}`); gta.setCameraLookAt(cameraPosition, cameraLookat, true); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.restoreCamera", function() { logToConsole(LOG_DEBUG, `[Asshat.Main] Camera restored`); gta.restoreCamera(true); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.clearPeds", function() { logToConsole(LOG_DEBUG, `[Asshat.Main] Clearing all self-owned peds ...`); @@ -164,14 +164,14 @@ addNetworkHandler("ag.clearPeds", function() { logToConsole(LOG_DEBUG, `[Asshat.Main] All self-owned peds cleared`); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.logo", function(state) { logToConsole(LOG_DEBUG, `[Asshat.Main] Server logo ${(state) ? "enabled" : "disabled"}`); renderLogo = state; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.ambience", function(state) { logToConsole(LOG_DEBUG, `[Asshat.Main] Ambient civilians and traffic ${(state) ? "enabled" : "disabled"}`); @@ -183,7 +183,7 @@ addNetworkHandler("ag.ambience", function(state) { clearSelfOwnedPeds(); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.runCode", function(code, returnTo) { let returnValue = "Nothing"; @@ -223,7 +223,7 @@ addNetworkHandler("ag.clearWeapons", function() { forceWeaponClipAmmo = 0; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.giveWeapon", function(weaponId, ammo, active) { logToConsole(LOG_DEBUG, `[Asshat.Main] Giving weapon ${weaponId} with ${ammo} ammo`); @@ -233,7 +233,7 @@ addNetworkHandler("ag.giveWeapon", function(weaponId, ammo, active) { forceWeapon = weaponId; }); -// --------------------------------------------------------------------------- +// =========================================================================== addEventHandler("OnElementStreamIn", function(event, element) { switch(element.type) { @@ -258,7 +258,7 @@ addEventHandler("OnElementStreamIn", function(event, element) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.blips", function(blipData) { for(let i in blipData) { @@ -266,7 +266,7 @@ addNetworkHandler("ag.blips", function(blipData) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== function showIslandBlips() { for(let i in allServerBlips) { @@ -278,7 +278,7 @@ function showIslandBlips() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getIslandFromPosition(position) { switch(gta.game) { @@ -295,28 +295,28 @@ function getIslandFromPosition(position) { } } -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.position", function(position) { logToConsole(LOG_DEBUG, `[Asshat.Main] Setting position to ${position.x}, ${position.y}, ${position.z}`); localPlayer.position = position; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.position", function(position) { logToConsole(LOG_DEBUG, `[Asshat.Main] Setting position to ${position.x}, ${position.y}, ${position.z}`); localPlayer.position = position; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.heading", function(heading) { logToConsole(LOG_DEBUG, `[Asshat.Main] Setting heading to ${heading}`); localPlayer.heading = heading; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.interior", function(interior) { logToConsole(LOG_DEBUG, `[Asshat.Main] Interior set to ${interior}`); @@ -324,14 +324,14 @@ addNetworkHandler("ag.interior", function(interior) { gta.cameraInterior = interior; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.removeFromVehicle", function() { logToConsole(LOG_DEBUG, `[Asshat.Main] Removing local player from vehicle`); localPlayer.removeFromVehicle(); }); -// --------------------------------------------------------------------------- +// =========================================================================== function processEvent(event, deltaTime) { if(gta.game != GAME_GTA_IV) { @@ -430,7 +430,7 @@ function processEvent(event, deltaTime) { } } -// --------------------------------------------------------------------------- +// =========================================================================== addEventHandler("OnDrawnHUD", function (event) { if(!renderHUD) { @@ -489,7 +489,7 @@ addEventHandler("OnDrawnHUD", function (event) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== function openAllGarages() { switch(gta.game) { @@ -518,7 +518,7 @@ function openAllGarages() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function closeAllGarages() { switch(gta.game) { @@ -547,14 +547,14 @@ function closeAllGarages() { } } -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.freeze", function(state) { logToConsole(LOG_DEBUG, `[Asshat.Main] Setting frozen state to ${state}`); gui.showCursor(state, !state); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.control", function(controlState, cursorState = false) { logToConsole(LOG_DEBUG, `[Asshat.Main] Setting control state to ${controlState} (Cursor: ${cursorState})`); @@ -564,21 +564,21 @@ addNetworkHandler("ag.control", function(controlState, cursorState = false) { localPlayer.invincible = false; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.fadeCamera", function(state, time) { logToConsole(LOG_DEBUG, `[Asshat.Main] Fading camera ${(state)?"in":"out"} for ${time} seconds`); gta.fadeCamera(state, time); }); -// --------------------------------------------------------------------------- +// =========================================================================== addEventHandler("OnPedWasted", function(event, wastedPed, killerPed, weapon, pedPiece) { logToConsole(LOG_DEBUG, `[Asshat.Main] Ped ${wastedPed.name} died`); wastedPed.clearWeapons(); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.showBusStop", function(position, colour) { logToConsole(LOG_DEBUG, `[Asshat.Main] Showing bus stop`); @@ -592,7 +592,7 @@ addNetworkHandler("ag.showBusStop", function(position, colour) { jobRouteStopBlip = gta.createBlip(position, 0, 2, colour); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.snow", function(fallingSnow, groundSnow) { logToConsole(LOG_DEBUG, `[Asshat.Main] Setting falling snow to ${fallingSnow} and ground snow to ${groundSnow}`); @@ -602,28 +602,28 @@ addNetworkHandler("ag.snow", function(fallingSnow, groundSnow) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.money", function(amount) { logToConsole(LOG_DEBUG, `[Asshat.Main] Setting local player money`); localPlayer.money = amount; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.removeWorldObject", function(model, position, range) { logToConsole(LOG_DEBUG, `Removing world object ${model} at X: ${position.x}, Y: ${position.x}, Z: ${position.x} with range of ${range}`); gta.removeWorldObject(model, position, range); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.excludeGroundSnow", function(model) { logToConsole(LOG_DEBUG, `Disabling ground snow for object model ${model}`); groundSnow.excludeModel(model); }); -// --------------------------------------------------------------------------- +// =========================================================================== addEventHandler("OnLocalPlayerEnterSphere", function(event, sphere) { logToConsole(LOG_DEBUG, `[Asshat.Main] Local player entered sphere`); @@ -632,7 +632,7 @@ addEventHandler("OnLocalPlayerEnterSphere", function(event, sphere) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.smallGameMessage", function(text, colour, duration) { logToConsole(LOG_DEBUG, `[Asshat.Main] Showing small game message '${text}' for ${duration}ms`); @@ -650,7 +650,7 @@ addNetworkHandler("ag.smallGameMessage", function(text, colour, duration) { }, duration); }); -// --------------------------------------------------------------------------- +// =========================================================================== function enteredJobRouteSphere() { logToConsole(LOG_DEBUG, `[Asshat.Main] Entered job route sphere`); @@ -661,21 +661,21 @@ function enteredJobRouteSphere() { jobRouteStopBlip = null; } -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.jobType", function(tempJobType) { logToConsole(LOG_DEBUG, `[Asshat.Main] Set local player job type to ${tempJobType}`); localPlayerJobType = tempJobType; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.working", function(tempWorking) { logToConsole(LOG_DEBUG, `[Asshat.Main] Setting working state to ${tempWorking}`); localPlayerWorking = tempWorking; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.spawned", function(client, state) { logToConsole(LOG_DEBUG, `[Asshat.Main] Setting spawned state to ${state}`); @@ -716,21 +716,21 @@ addNetworkHandler("ag.spawned", function(client, state) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.weaponDamageEvent", function(clientName, eventType) { logToConsole(LOG_DEBUG, `[Asshat.Main] Set ${clientName} damage event type to ${eventType}`); weaponDamageEvent[clientName] = eventType; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.weaponDamageEnabled", function(clientName, state) { logToConsole(LOG_DEBUG, `[Asshat.Main] ${(state)?"Enabled":"Disabled"} damage from ${clientName}`); weaponDamageEnabled[clientName] = state; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.mouseCamera", function(state) { logToConsole(LOG_DEBUG, `[Asshat.Main] ${(state)?"Enabled":"Disabled"} mouse camera`); @@ -738,14 +738,14 @@ addNetworkHandler("ag.mouseCamera", function(state) { SetStandardControlsEnabled(!mouseCameraEnabled); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.mouseCursor", function(state) { logToConsole(LOG_DEBUG, `[Asshat.Main] ${(state)?"Enabled":"Disabled"} mouse cursor`); gui.showCursor(state, !state); }); -// --------------------------------------------------------------------------- +// =========================================================================== function clearSelfOwnedPeds() { logToConsole(LOG_DEBUG, `Clearing self-owned peds`); @@ -756,7 +756,7 @@ function clearSelfOwnedPeds() { }); } -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.set2DRendering", function(hudState, labelState, smallGameMessageState, scoreboardState, hotBarState, itemActionDelayState) { logToConsole(LOG_DEBUG, `[Asshat.Main] Updating render states (HUD: ${hudState}, Labels: ${labelState}, Bottom Text: ${smallGameMessageState}, Scoreboard: ${scoreboardState}, HotBar: ${hotBarState}, Item Action Delay: ${itemActionDelayState})`); @@ -770,7 +770,7 @@ addNetworkHandler("ag.set2DRendering", function(hudState, labelState, smallGameM renderItemActionDelay = itemActionDelayState; }); -// --------------------------------------------------------------------------- +// =========================================================================== function getLocalPlayerVehicleSeat() { for(let i = 0 ; i <= 4 ; i++) { @@ -780,7 +780,7 @@ function getLocalPlayerVehicleSeat() { } } -// --------------------------------------------------------------------------- +// =========================================================================== addEventHandler("OnPedInflictDamage", function(event, damagedEntity, damagerEntity, weaponId, healthLoss, pedPiece) { logToConsole(LOG_DEBUG, `[Asshat.Main] ${damagerEntity.name} (${damagerEntity.name}, ${damagerEntity.type} - ${typeof damagerEntity}) damaged ${damagedEntity} (${damagedEntity.name}, ${damagedEntity.type} - ${typeof damagedEntity}) at part ${pedPiece} with weapon ${weaponId}`); @@ -796,7 +796,7 @@ addEventHandler("OnPedInflictDamage", function(event, damagedEntity, damagerEnti } }); -// --------------------------------------------------------------------------- +// =========================================================================== addEventHandler("OnLocalPlayerExitedVehicle", function(event, vehicle, seat) { logToConsole(LOG_DEBUG, `[Asshat.Main] Local player exited vehicle`); @@ -807,7 +807,7 @@ addEventHandler("OnLocalPlayerExitedVehicle", function(event, vehicle, seat) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== addEventHandler("OnLocalPlayerEnteredVehicle", function(event, vehicle, seat) { logToConsole(LOG_DEBUG, `[Asshat.Main] Local player entered vehicle`); @@ -824,7 +824,7 @@ addEventHandler("OnLocalPlayerEnteredVehicle", function(event, vehicle, seat) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.showItemActionDelay", function(duration) { itemActionDelayDuration = duration; @@ -833,13 +833,13 @@ addNetworkHandler("ag.showItemActionDelay", function(duration) { logToConsole(LOG_DEBUG, `Item action delay started. Duration: ${itemActionDelayDuration}, Start: ${itemActionDelayStart}, Rendering Enabled: ${renderItemActionDelay}`); }); -// --------------------------------------------------------------------------- +// =========================================================================== function getWeaponSlot(weaponId) { return getGameData().weaponSlots[gta.game][weaponId]; } -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.drunkEffect", function(amount, duration) { logToConsole(LOG_DEBUG, `[Asshat.Main] Drunk effect set to ${amount} for ${duration}ms`); @@ -855,27 +855,27 @@ addNetworkHandler("ag.drunkEffect", function(amount, duration) { }, 1000); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.clearPedState", function() { logToConsole(LOG_DEBUG, `[Asshat.Main] Clearing local ped state`); localPlayer.clearObjective(); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.pedSpeech", function(pedName, speechId) { logToConsole(LOG_DEBUG, `[Asshat.Main] Making ${pedName}'s ped talk (${speechId})`); gta.SET_CHAR_SAY(int, int) }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.hotbar", function(activeSlot, itemsArray) { logToConsole(LOG_DEBUG, `[Asshat.Main] Updating hotbar`); }); -// --------------------------------------------------------------------------- +// =========================================================================== function getPedFromNetworkEvent(ped) { //let peds = getPeds(); @@ -886,7 +886,7 @@ function getPedFromNetworkEvent(ped) { return getElementFromId(ped); } -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.skinSelect", function() { usingSkinSelector = true; @@ -898,4 +898,10 @@ addNetworkHandler("ag.skinSelect", function() { localPlayer.collisionsEnabled = false; }); -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== + +function isSnowEnabled() { + return (typeof snowing != "undefined"); +} + +// =========================================================================== \ No newline at end of file diff --git a/scripts/client/mouse-camera.js b/scripts/client/mouse-camera.js index 647be052..2fb849eb 100644 --- a/scripts/client/mouse-camera.js +++ b/scripts/client/mouse-camera.js @@ -3,7 +3,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: mouse-camera.js // DESC: Provides a freelook camera similar to SA for III and VC // TYPE: Client (JavaScript) diff --git a/scripts/client/nametag.js b/scripts/client/nametag.js index 1354536f..58787524 100644 --- a/scripts/client/nametag.js +++ b/scripts/client/nametag.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: nametags.js // DESC: Provides nametag rendering // TYPE: Client (JavaScript) diff --git a/scripts/client/scoreboard.js b/scripts/client/scoreboard.js index 8475cb8c..0d6a8513 100644 --- a/scripts/client/scoreboard.js +++ b/scripts/client/scoreboard.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: scoreboard.js // DESC: Provides scoreboard features and rendering // TYPE: Client (JavaScript) diff --git a/scripts/client/sync.js b/scripts/client/sync.js index 06abd9fa..8377c58c 100644 --- a/scripts/client/sync.js +++ b/scripts/client/sync.js @@ -2,13 +2,13 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: sync.js // DESC: Provides some elements and data sync // TYPE: Client (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== addEventHandler("onProcess", function(event, deltaTime) { if(localPlayer != null && isSpawned) { @@ -24,25 +24,25 @@ addEventHandler("onProcess", function(event, deltaTime) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.veh.engine", function(vehicle, state) { vehicle.engine = state; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.veh.lights", function(vehicle, state) { vehicle.lights = state; }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.veh.repair", function(syncId) { getVehicleFromSyncId(syncId).fix(); }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.veh.sync", function(event, vehicle) { if(vehicle != null) { @@ -50,7 +50,7 @@ addNetworkHandler("ag.veh.sync", function(event, vehicle) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.civ.sync", function(event, civilian) { if(civilian != null) { @@ -58,7 +58,7 @@ addNetworkHandler("ag.civ.sync", function(event, civilian) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.player.sync", function(event, player) { if(player != null) { @@ -66,7 +66,7 @@ addNetworkHandler("ag.player.sync", function(event, player) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== addNetworkHandler("ag.obj.sync", function(event, object) { if(object != null) { @@ -74,7 +74,7 @@ addNetworkHandler("ag.obj.sync", function(event, object) { } }); -// --------------------------------------------------------------------------- +// =========================================================================== function syncVehicleProperties(vehicle) { if(doesEntityDataExist(vehicle, "ag.panelStatus")) { @@ -122,7 +122,7 @@ function syncVehicleProperties(vehicle) { //gta.REMOVE_UPSIDEDOWN_CAR_CHECK(gta.GET_VEHICLE_ID(vehicle)); } -// --------------------------------------------------------------------------- +// =========================================================================== function syncCivilianProperties(civilian) { if(doesEntityDataExist(civilian, "ag.scale")) { @@ -164,7 +164,7 @@ function syncCivilianProperties(civilian) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function syncPlayerProperties(player) { if(doesEntityDataExist(player, "ag.scale")) { @@ -203,7 +203,7 @@ function syncPlayerProperties(player) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function syncObjectProperties(object) { if(doesEntityDataExist(object, "ag.scale")) { @@ -217,4 +217,4 @@ function syncObjectProperties(object) { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/native/gtac/client.js b/scripts/native/gtac/client.js index 16baf131..8d3de13d 100644 --- a/scripts/native/gtac/client.js +++ b/scripts/native/gtac/client.js @@ -2,28 +2,28 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: client.js // DESC: Provides wrapped client natives for GTAC // TYPE: Natives (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function getClientGame() { return gta.game; } -// --------------------------------------------------------------------------- +// =========================================================================== function sendToServer(eventName, ...args) { triggerNetworkEvent.call(eventName, args); } -// --------------------------------------------------------------------------- +// =========================================================================== function receiveFromServer(eventName, handlerFunction) { addNetworkHandler(eventName, handlerFunction); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/native/gtac/server.js b/scripts/native/gtac/server.js index 99f0d4e0..8725a10c 100644 --- a/scripts/native/gtac/server.js +++ b/scripts/native/gtac/server.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: native.js // DESC: Provides util function to wrap mod-specific stuff // TYPE: Server (JavaScript) @@ -10,13 +10,13 @@ // Use data for each because args are probably gonna be way different for each mod -// --------------------------------------------------------------------------- +// =========================================================================== function getServerGame() { return server.game; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerPosition(client) { if(getServerGame() == GAME_GTA_IV) { @@ -28,14 +28,14 @@ function getPlayerPosition(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerPosition(client, position) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s position to ${position.x}, ${position.y}, ${position.z}`); sendPlayerSetPosition(client, position); } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerHeading(client) { if(getServerGame() == GAME_GTA_IV) { @@ -47,14 +47,14 @@ function getPlayerHeading(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerHeading(client, heading) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s heading to ${heading}`); sendPlayerSetHeading(client, heading); } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerVehicle(client) { if(getServerGame() == GAME_GTA_IV) { @@ -67,13 +67,13 @@ function getPlayerVehicle(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerDimension(client) { return client.player.dimension; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerInterior(client) { if(getPlayerData(client)) { @@ -83,14 +83,14 @@ function getPlayerInterior(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerDimension(client, dimension) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s dimension to ${dimension}`); client.player.dimension = dimension; } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerInterior(client, interior) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s interior to ${interior}`); @@ -98,7 +98,7 @@ function setPlayerInterior(client, interior) { getPlayerCurrentSubAccount(client).interior = interior; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerInAnyVehicle(client) { if(getServerGame() == GAME_GTA_IV) { @@ -108,7 +108,7 @@ function isPlayerInAnyVehicle(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerVehicleSeat(client) { if(!isPlayerInAnyVehicle(client)) { @@ -124,37 +124,37 @@ function getPlayerVehicleSeat(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerSpawned(client) { return (client.player != null); } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehiclePosition(vehicle) { return vehicle.position; } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehicleHeading(vehicle) { return vehicle.heading; } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehicleSyncer(vehicle) { return getElementSyncer(vehicle); } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehicleForNetworkEvent(vehicle) { return vehicle; } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteGameElement(element) { logToConsole(LOG_DEBUG, `Destroying game element ${element.id} (Type: ${element.type})`); @@ -165,13 +165,13 @@ function deleteGameElement(element) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerInFrontVehicleSeat(client) { return (getPlayerVehicleSeat(client) == 0 || getPlayerVehicleSeat(client) == 1); } -// --------------------------------------------------------------------------- +// =========================================================================== function removePlayerFromVehicle(client) { logToConsole(LOG_DEBUG, `Removing ${getPlayerDisplayForConsole(client)} from their vehicle`); @@ -179,20 +179,20 @@ function removePlayerFromVehicle(client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerSkin(client, skin) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s skin to ${skin} (${getSkinNameFromId(skin)})`); client.player.modelIndex = skin; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerSkin(client) { return client.player.modelIndex; } -// --------------------------------------------------------------------------- +// =========================================================================== function disconnectPlayer(client) { logToConsole(LOG_DEBUG, `Disconnecting (kicking) ${getPlayerDisplayForConsole(client)}`); @@ -200,44 +200,44 @@ function disconnectPlayer(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getElementSyncer(element) { return getClients()[element.syncer]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerWeaponAmmo(client) { return client.player.weaponAmmunition; } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerVelocity(client, velocity) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s velocity to ${velocity.x}, ${velocity.y}, ${velocity.z}`); client.player.velocity = velocity; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerVelocity(client, velocity) { return client.player.velocity; } -// --------------------------------------------------------------------------- +// =========================================================================== function getElementDimension(element) { return element.dimension; } -// --------------------------------------------------------------------------- +// =========================================================================== function setElementDimension(element, dimension) { return element.dimension = dimension; } -// --------------------------------------------------------------------------- +// =========================================================================== function givePlayerHealth(client, amount) { if(getPlayerHealth(client)+amount > 100) { @@ -249,7 +249,7 @@ function givePlayerHealth(client, amount) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function givePlayerArmour(client, amount) { if(getPlayerArmour(client)+amount > 100) { @@ -261,16 +261,16 @@ function givePlayerArmour(client, amount) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function sendToClient(client, eventName, ...args) { triggerNetworkEvent.call(client, eventName, args); } -// --------------------------------------------------------------------------- +// =========================================================================== function receiveFromClient(eventName, handlerFunction) { addNetworkHandler(eventName, handlerFunction); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/native/gtac/shared.js b/scripts/native/gtac/shared.js index 50d7bf85..5c31eb21 100644 --- a/scripts/native/gtac/shared.js +++ b/scripts/native/gtac/shared.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: native.js // DESC: Provides util funcs for native wrapping // TYPE: Shared (JavaScript) @@ -11,97 +11,97 @@ "use strict"; setErrorMode(RESOURCEERRORMODE_STRICT); -// --------------------------------------------------------------------------- +// =========================================================================== function and(var1, var2) { return (var1 && var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function or(var1, var2) { return (var1 || var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function not(var1) { return !var1; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitAnd(var1, var2) { return var1 & var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitOr(var1, var2) { return var1 | var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitXor(var1, var2) { return var1 ^ var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitNot(var1) { return ~var1; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitLeftShift(var1, var2) { return var1 << var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitRightShift(var1, var2) { return var1 >> var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function greaterThan(var1, var2) { return var1 > var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function lessThan(var1, var2) { return (var1 < var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function greaterThanOrEqualTo(var1, var2) { return (var1 >= var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function lessThanOrEqualTo(var1, var2) { return (var1 <= var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function equals(var1, var2) { return (var1 == var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function modulo(var1, var2) { return var1 % var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function add(...args) { return args.reduce((acc, a) => { @@ -109,7 +109,7 @@ function add(...args) { }, 0); } -// --------------------------------------------------------------------------- +// =========================================================================== function subtract(...args) { return args.reduce((acc, a) => { @@ -117,7 +117,7 @@ function subtract(...args) { }, 0); } -// --------------------------------------------------------------------------- +// =========================================================================== function multiply(...args) { return args.reduce((acc, a) => { @@ -125,7 +125,7 @@ function multiply(...args) { }, 0); } -// --------------------------------------------------------------------------- +// =========================================================================== function divide(...args) { return args.reduce((acc, a) => { @@ -133,55 +133,55 @@ function divide(...args) { }, 0); } -// --------------------------------------------------------------------------- +// =========================================================================== function toArray(...args) { return args; } -// --------------------------------------------------------------------------- +// =========================================================================== function toInteger(val) { return Number(val); } -// --------------------------------------------------------------------------- +// =========================================================================== function toFloat(val, fixed = 2) { return parseFloat((val).toFixed(fixed)); } -// --------------------------------------------------------------------------- +// =========================================================================== function toString(val) { return String(val); } -// --------------------------------------------------------------------------- +// =========================================================================== function toVector3(x, y, z) { return new Vec3(x, y, z); } -// --------------------------------------------------------------------------- +// =========================================================================== function toVector2(x, y) { return new Vec2(x, y); } -// --------------------------------------------------------------------------- +// =========================================================================== function toUpperCase(val) { return String(val).toUpperCase(); } -// --------------------------------------------------------------------------- +// =========================================================================== function toLowerCase(val) { return String(val).toLowerCase(); } -// --------------------------------------------------------------------------- +// =========================================================================== function isNull(val) { if(val == null) { @@ -195,7 +195,7 @@ function isNull(val) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getEntityData(entity, dataName) { if(entity != null) { @@ -206,7 +206,7 @@ function getEntityData(entity, dataName) { return null; } -// --------------------------------------------------------------------------- +// =========================================================================== function setEntityData(entity, dataName, dataValue, syncToClients = true) { if(entity != null) { @@ -218,7 +218,7 @@ function setEntityData(entity, dataName, dataValue, syncToClients = true) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function removeEntityData(entity, dataName) { if(entity != null) { @@ -227,7 +227,7 @@ function removeEntityData(entity, dataName) { return null; } -// --------------------------------------------------------------------------- +// =========================================================================== function doesEntityDataExist(entity, dataName) { if(entity != null) { @@ -236,7 +236,7 @@ function doesEntityDataExist(entity, dataName) { return null; } -// --------------------------------------------------------------------------- +// =========================================================================== function getDistance(vec1, vec2) { if(isNull(vec1) || isNull(vec2)) { @@ -245,7 +245,7 @@ function getDistance(vec1, vec2) { return vec1.distance(vec2); } -// --------------------------------------------------------------------------- +// =========================================================================== function isConsole(client) { if(client == null) { @@ -255,7 +255,7 @@ function isConsole(client) { return client.console; } -// --------------------------------------------------------------------------- +// =========================================================================== function logToConsole(tempLogLevel, text) { if((logLevel & tempLogLevel) || logLevel == LOG_ALL) { @@ -273,13 +273,13 @@ function logToConsole(tempLogLevel, text) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isSamePlayer(client1, client2) { return (client1 == client2); } -// --------------------------------------------------------------------------- +// =========================================================================== function getClientFromIndex(index) { let clients = getClients(); @@ -290,7 +290,7 @@ function getClientFromIndex(index) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getConsoleClient() { let clients = getClients(); @@ -301,7 +301,7 @@ function getConsoleClient() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerFromParams(params) { let clients = getPlayers(); @@ -326,7 +326,7 @@ function getPlayerFromParams(params) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayers() { return getClients(); diff --git a/scripts/native/ragemp/client.js b/scripts/native/ragemp/client.js index 16090bf7..b5f7aa77 100644 --- a/scripts/native/ragemp/client.js +++ b/scripts/native/ragemp/client.js @@ -2,28 +2,28 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: client.js // DESC: Provides wrapped client natives for RAGEMP // TYPE: Natives (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function getClientGame() { return AG_GAME_GTA_V; } -// --------------------------------------------------------------------------- +// =========================================================================== function sendToServer(eventName, ...args) { mp.events.call(eventName, args); } -// --------------------------------------------------------------------------- +// =========================================================================== function receiveFromServer(eventName, handlerFunction) { mp.events.add(eventName, handlerFunction); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/native/ragemp/server.js b/scripts/native/ragemp/server.js index 9ed01167..be063a1b 100644 --- a/scripts/native/ragemp/server.js +++ b/scripts/native/ragemp/server.js @@ -2,32 +2,32 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: server.js // DESC: Provides wrapped server natives for RAGEMP // TYPE: Natives (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function getServerGame() { return AG_GAME_GTA_V; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerPosition(client) { return client.player.position; } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerPosition(client, position) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s position to ${position.x}, ${position.y}, ${position.z}`); client.position = position; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerHeading(client) { if(getServerGame() == GAME_GTA_IV) { @@ -39,14 +39,14 @@ function getPlayerHeading(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerHeading(client, heading) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s heading to ${heading}`); sendPlayerSetHeading(client, heading); } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerVehicle(client) { if(getServerGame() == GAME_GTA_IV) { @@ -59,13 +59,13 @@ function getPlayerVehicle(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerDimension(client) { return client.player.dimension; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerInterior(client) { if(getPlayerData(client)) { @@ -75,14 +75,14 @@ function getPlayerInterior(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerDimension(client, dimension) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s dimension to ${dimension}`); client.player.dimension = dimension; } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerInterior(client, interior) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s interior to ${interior}`); @@ -90,7 +90,7 @@ function setPlayerInterior(client, interior) { getPlayerCurrentSubAccount(client).interior = interior; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerInAnyVehicle(client) { if(getServerGame() == GAME_GTA_IV) { @@ -100,7 +100,7 @@ function isPlayerInAnyVehicle(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerVehicleSeat(client) { if(!isPlayerInAnyVehicle(client)) { @@ -116,37 +116,37 @@ function getPlayerVehicleSeat(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerSpawned(client) { return (client.player != null); } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehiclePosition(vehicle) { return vehicle.position; } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehicleHeading(vehicle) { return vehicle.heading; } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehicleSyncer(vehicle) { return getElementSyncer(vehicle); } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehicleForNetworkEvent(vehicle) { return vehicle; } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteGameElement(element) { logToConsole(LOG_DEBUG, `Destroying game element ${element.id} (Type: ${element.type})`); @@ -157,13 +157,13 @@ function deleteGameElement(element) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerInFrontVehicleSeat(client) { return (getPlayerVehicleSeat(client) == 0 || getPlayerVehicleSeat(client) == 1); } -// --------------------------------------------------------------------------- +// =========================================================================== function removePlayerFromVehicle(client) { logToConsole(LOG_DEBUG, `Removing ${getPlayerDisplayForConsole(client)} from their vehicle`); @@ -171,20 +171,20 @@ function removePlayerFromVehicle(client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerSkin(client, skin) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s skin to ${skin} (${getSkinNameFromId(skin)})`); client.player.modelIndex = skin; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerSkin(client) { return client.player.modelIndex; } -// --------------------------------------------------------------------------- +// =========================================================================== function disconnectPlayer(client) { logToConsole(LOG_DEBUG, `Disconnecting (kicking) ${getPlayerDisplayForConsole(client)}`); @@ -192,44 +192,44 @@ function disconnectPlayer(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getElementSyncer(element) { return getClients()[element.syncer]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerWeaponAmmo(client) { return client.player.weaponAmmunition; } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerVelocity(client, velocity) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s velocity to ${velocity.x}, ${velocity.y}, ${velocity.z}`); client.player.velocity = velocity; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerVelocity(client, velocity) { return client.player.velocity; } -// --------------------------------------------------------------------------- +// =========================================================================== function getElementDimension(element) { return element.dimension; } -// --------------------------------------------------------------------------- +// =========================================================================== function setElementDimension(element, dimension) { return element.dimension = dimension; } -// --------------------------------------------------------------------------- +// =========================================================================== function givePlayerHealth(client, amount) { if(getPlayerHealth(client)+amount > 100) { @@ -241,7 +241,7 @@ function givePlayerHealth(client, amount) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function givePlayerArmour(client, amount) { if(getPlayerArmour(client)+amount > 100) { @@ -253,4 +253,4 @@ function givePlayerArmour(client, amount) { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/native/ragemp/shared.js b/scripts/native/ragemp/shared.js index 90fcd48e..30f0021e 100644 --- a/scripts/native/ragemp/shared.js +++ b/scripts/native/ragemp/shared.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: native.js // DESC: Provides util funcs for native wrapping // TYPE: Shared (JavaScript) @@ -11,97 +11,97 @@ "use strict"; setErrorMode(RESOURCEERRORMODE_STRICT); -// --------------------------------------------------------------------------- +// =========================================================================== function and(var1, var2) { return (var1 && var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function or(var1, var2) { return (var1 || var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function not(var1) { return !var1; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitAnd(var1, var2) { return var1 & var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitOr(var1, var2) { return var1 | var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitXor(var1, var2) { return var1 ^ var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitNot(var1) { return ~var1; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitLeftShift(var1, var2) { return var1 << var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitRightShift(var1, var2) { return var1 >> var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function greaterThan(var1, var2) { return var1 > var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function lessThan(var1, var2) { return (var1 < var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function greaterThanOrEqualTo(var1, var2) { return (var1 >= var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function lessThanOrEqualTo(var1, var2) { return (var1 <= var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function equals(var1, var2) { return (var1 == var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function modulo(var1, var2) { return var1 % var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function add(...args) { return args.reduce((acc, a) => { @@ -109,7 +109,7 @@ function add(...args) { }, 0); } -// --------------------------------------------------------------------------- +// =========================================================================== function subtract(...args) { return args.reduce((acc, a) => { @@ -117,7 +117,7 @@ function subtract(...args) { }, 0); } -// --------------------------------------------------------------------------- +// =========================================================================== function multiply(...args) { return args.reduce((acc, a) => { @@ -125,7 +125,7 @@ function multiply(...args) { }, 0); } -// --------------------------------------------------------------------------- +// =========================================================================== function divide(...args) { return args.reduce((acc, a) => { @@ -133,55 +133,55 @@ function divide(...args) { }, 0); } -// --------------------------------------------------------------------------- +// =========================================================================== function toArray(...args) { return args; } -// --------------------------------------------------------------------------- +// =========================================================================== function toInteger(val) { return Number(val); } -// --------------------------------------------------------------------------- +// =========================================================================== function toFloat(val, fixed = 2) { return parseFloat((val).toFixed(fixed)); } -// --------------------------------------------------------------------------- +// =========================================================================== function toString(val) { return String(val); } -// --------------------------------------------------------------------------- +// =========================================================================== function toVector3(x, y, z) { return new Vec3(x, y, z); } -// --------------------------------------------------------------------------- +// =========================================================================== function toVector2(x, y) { return new Vec2(x, y); } -// --------------------------------------------------------------------------- +// =========================================================================== function toUpperCase(val) { return String(val).toUpperCase(); } -// --------------------------------------------------------------------------- +// =========================================================================== function toLowerCase(val) { return String(val).toLowerCase(); } -// --------------------------------------------------------------------------- +// =========================================================================== function isNull(val) { if(val == null) { @@ -195,7 +195,7 @@ function isNull(val) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getEntityData(entity, dataName) { if(entity != null) { @@ -206,7 +206,7 @@ function getEntityData(entity, dataName) { return null; } -// --------------------------------------------------------------------------- +// =========================================================================== function setEntityData(entity, dataName, dataValue, syncToClients = true) { if(entity != null) { @@ -218,7 +218,7 @@ function setEntityData(entity, dataName, dataValue, syncToClients = true) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function removeEntityData(entity, dataName) { if(entity != null) { @@ -227,7 +227,7 @@ function removeEntityData(entity, dataName) { return null; } -// --------------------------------------------------------------------------- +// =========================================================================== function doesEntityDataExist(entity, dataName) { if(entity != null) { @@ -236,7 +236,7 @@ function doesEntityDataExist(entity, dataName) { return null; } -// --------------------------------------------------------------------------- +// =========================================================================== function getDistance(vec1, vec2) { if(isNull(vec1) || isNull(vec2)) { @@ -245,7 +245,7 @@ function getDistance(vec1, vec2) { return vec1.distance(vec2); } -// --------------------------------------------------------------------------- +// =========================================================================== function isConsole(client) { if(client == null) { @@ -255,7 +255,7 @@ function isConsole(client) { return client.console; } -// --------------------------------------------------------------------------- +// =========================================================================== function logToConsole(tempLogLevel, text) { if((logLevel & tempLogLevel) || logLevel == LOG_ALL) { @@ -273,13 +273,13 @@ function logToConsole(tempLogLevel, text) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isSamePlayer(client1, client2) { return (client1 == client2); } -// --------------------------------------------------------------------------- +// =========================================================================== function getClientFromIndex(index) { let clients = getClients(); @@ -290,7 +290,7 @@ function getClientFromIndex(index) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getConsoleClient() { let clients = getClients(); @@ -301,7 +301,7 @@ function getConsoleClient() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerFromParams(params) { let clients = getClients(); @@ -326,10 +326,10 @@ function getPlayerFromParams(params) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayers() { return getClients(); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/accent.js b/scripts/server/accent.js index 962b1ea1..918e8570 100644 --- a/scripts/server/accent.js +++ b/scripts/server/accent.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: accent.js // DESC: Provides accent functions and usage // TYPE: Server (JavaScript) @@ -33,10 +33,10 @@ let accents = [ "Sicilian", ]; -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerAccentText(client) { return getPlayerCurrentSubAccount(client).accent; } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/account.js b/scripts/server/account.js index 556327ec..6d65bf70 100644 --- a/scripts/server/account.js +++ b/scripts/server/account.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: account.js // DESC: Provides account functions and usage // TYPE: Server (JavaScript) @@ -13,7 +13,7 @@ function initAccountScript() { logToConsole(LOG_DEBUG, "[Asshat.Account]: Account script initialized!"); } -// --------------------------------------------------------------------------- +// =========================================================================== function loginCommand(command, params, client) { if(!isPlayerRegistered(client)) { @@ -30,7 +30,7 @@ function loginCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function autoLoginByIPCommand(command, params, client) { let flagValue = getAccountSettingsFlagValue("autoLoginIP"); @@ -45,7 +45,7 @@ function autoLoginByIPCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function autoSelectLastCharacterCommand(command, params, client) { let flagValue = getAccountSettingsFlagValue("autoSelectLastCharacter"); @@ -60,7 +60,7 @@ function autoSelectLastCharacterCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleAccountGUICommand(command, params, client) { let flagValue = getAccountSettingsFlagValue("noGUI"); @@ -97,7 +97,7 @@ function toggleAccountGUICommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleAccountServerLogoCommand(command, params, client) { let flagValue = getAccountSettingsFlagValue("noServerLogo"); @@ -119,7 +119,7 @@ function toggleAccountServerLogoCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== // UNFINISHED! // TO-DO: Make GUI, add command to generate code to add to auth app and command to input code returned by auth app @@ -152,7 +152,7 @@ function toggleAccountTwoFactorAuthCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function registerCommand(command, params, client) { if(isPlayerRegistered(client)) { @@ -171,7 +171,7 @@ function registerCommand(command, params, client) { //messagePlayerAlert(client, "To play on the server, you will need to make a character."); } -// --------------------------------------------------------------------------- +// =========================================================================== function changePasswordCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -198,7 +198,7 @@ function changePasswordCommand(command, params, client) { messagePlayerSuccess(client, "Your password has been changed!"); } -// --------------------------------------------------------------------------- +// =========================================================================== function setAccountEmailCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -236,7 +236,7 @@ function setAccountEmailCommand(command, params, client) { saveAccountToDatabase(getPlayerData(client).accountData); } -// --------------------------------------------------------------------------- +// =========================================================================== function verifyAccountEmailCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -268,7 +268,7 @@ function verifyAccountEmailCommand(command, params, client) { saveAccountToDatabase(getPlayerData(client).accountData); } -// --------------------------------------------------------------------------- +// =========================================================================== function setAccountDiscordCommand(command, params, client) { messagePlayerError(client, `This command is not yet finished and will be available soon!`); @@ -292,7 +292,7 @@ function setAccountDiscordCommand(command, params, client) { //messagePlayerSuccess(client, "Your discord account has been attached to your game account!"); } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerLoggedIn(client) { if(isConsole(client)) { @@ -306,7 +306,7 @@ function isPlayerLoggedIn(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerRegistered(client) { if(isConsole(client)) { @@ -322,14 +322,14 @@ function isPlayerRegistered(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function doesPasswordMeetRequirements(password) { // Will be added soon return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function isAccountPasswordCorrect(accountData, password) { if(accountData.password == password) { @@ -339,7 +339,7 @@ function isAccountPasswordCorrect(accountData, password) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadAccountFromName(accountName, fullLoad = false) { let dbConnection = connectToDatabase(); @@ -367,7 +367,7 @@ function loadAccountFromName(accountName, fullLoad = false) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadAccountFromId(accountId, fullLoad = false) { let dbConnection = connectToDatabase(); @@ -393,7 +393,7 @@ function loadAccountFromId(accountId, fullLoad = false) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getAccountHashingFunction() { switch(toLowerCase(getGlobalConfig().accountPasswordHash)) { @@ -432,7 +432,7 @@ function getAccountHashingFunction() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function isNameRegistered(name) { let accountData = loadAccountFromName(name, true); @@ -443,7 +443,7 @@ function isNameRegistered(name) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function hashAccountPassword(name, password) { let hashFunction = getAccountHashingFunction(); @@ -451,13 +451,13 @@ function hashAccountPassword(name, password) { return hashFunction(saltedInfo); } -// --------------------------------------------------------------------------- +// =========================================================================== function saltAccountInfo(name, password) { return "ag.gaming." + toString(accountSaltHash) + "." + toString(name) + "." + toString(password); } -// --------------------------------------------------------------------------- +// =========================================================================== function loginSuccess(client) { logToConsole(LOG_DEBUG, `[Asshat.Account] ${getPlayerDisplayForConsole(client)} successfully logged in.`); @@ -489,7 +489,7 @@ function loginSuccess(client) { messagePlayerNormal(null, `👋 ${client.name} has joined the server`, getColourByName("softYellow")); } -// --------------------------------------------------------------------------- +// =========================================================================== function saveAccountToDatabase(accountData) { let dbConnection = connectToDatabase(); @@ -525,7 +525,7 @@ function saveAccountToDatabase(accountData) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function saveAccountKeyBindsDatabase(keyBindData) { let dbConnection = connectToDatabase(); @@ -548,7 +548,7 @@ function saveAccountKeyBindsDatabase(keyBindData) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function saveAccountStaffNotesDatabase(staffNoteData) { let dbConnection = connectToDatabase(); @@ -566,7 +566,7 @@ function saveAccountStaffNotesDatabase(staffNoteData) { } } -// --------------------------------------------------------------------------- +// =========================================================================== /* function saveAccountContactsDatabase(accountContactData) { @@ -589,7 +589,7 @@ function saveAccountContactsDatabase(accountContactData) { } */ -// --------------------------------------------------------------------------- +// =========================================================================== function createAccount(name, password, email = "") { let dbConnection = connectToDatabase(); @@ -610,7 +610,7 @@ function createAccount(name, password, email = "") { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function checkLogin(client, password) { getPlayerData(client).loginAttemptsRemaining = getPlayerData(client).loginAttemptsRemaining-1; @@ -672,7 +672,7 @@ function checkLogin(client, password) { loginSuccess(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function checkRegistration(client, password, confirmPassword = "", emailAddress = "") { logToConsole(LOG_DEBUG, "[Asshat.Account]: Checking registration for " + toString(client.name)); @@ -769,13 +769,13 @@ function checkRegistration(client, password, confirmPassword = "", emailAddress } }; -// --------------------------------------------------------------------------- +// =========================================================================== function isValidEmailAddress(emailAddress) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveAllClientsToDatabase() { logToConsole(LOG_DEBUG, "[Asshat.Account]: Saving all clients to database ..."); @@ -785,7 +785,7 @@ function saveAllClientsToDatabase() { logToConsole(LOG_DEBUG, "[Asshat.Account]: All clients saved to database successfully!"); } -// --------------------------------------------------------------------------- +// =========================================================================== function savePlayerToDatabase(client) { if(getPlayerData(client) == null) { @@ -815,7 +815,7 @@ function savePlayerToDatabase(client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function initClient(client) { if(isConsole(client)) { @@ -867,14 +867,14 @@ function initClient(client) { }, 2500); } -// --------------------------------------------------------------------------- +// =========================================================================== function saveConnectionToDatabase(client) { let dbQueryString = `INSERT INTO conn_main (conn_when_connect, conn_server, conn_script_version, conn_game_version, conn_client_version) VALUES (UNIX_TIMESTAMP(), ${getServerConfig().databaseId}, '${scriptVersion}', '${client.gameVersion}', '0.0.0')`; return quickDatabaseQuery(dbQueryString); } -// --------------------------------------------------------------------------- +// =========================================================================== function createDefaultKeybindsForAccount(accountDatabaseId) { for(let i in getGlobalConfig().defaultKeybinds) { @@ -883,7 +883,7 @@ function createDefaultKeybindsForAccount(accountDatabaseId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function loadAccountKeybindsFromDatabase(accountDatabaseID) { logToConsole(LOG_DEBUG, `[Asshat.Account]: Loading account keybinds for account ${accountDatabaseID} from database ...`); @@ -912,7 +912,7 @@ function loadAccountKeybindsFromDatabase(accountDatabaseID) { return tempAccountKeybinds; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadAccountStaffNotesFromDatabase(accountDatabaseID) { logToConsole(LOG_DEBUG, `[Asshat.Account]: Loading account staff notes for account ${accountDatabaseID} from database ...`); @@ -941,7 +941,7 @@ function loadAccountStaffNotesFromDatabase(accountDatabaseID) { return tempAccountStaffNotes; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadAccountContactsFromDatabase(accountDatabaseID) { logToConsole(LOG_DEBUG, `[Asshat.Account]: Loading account contacts for account ${accountDatabaseID} from database ...`); @@ -970,7 +970,7 @@ function loadAccountContactsFromDatabase(accountDatabaseID) { return tempAccountContacts; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadAccountMessagesFromDatabase(accountDatabaseID) { logToConsole(LOG_DEBUG, `[Asshat.Account]: Loading account messages for account ${accountDatabaseID} from database ...`); @@ -999,7 +999,7 @@ function loadAccountMessagesFromDatabase(accountDatabaseID) { return tempAccountMessages; } -// --------------------------------------------------------------------------- +// =========================================================================== function isAccountAutoIPLoginEnabled(accountData) { let accountSettings = accountData.settings; @@ -1007,7 +1007,7 @@ function isAccountAutoIPLoginEnabled(accountData) { return hasBitFlag(accountSettings, flagValue); } -// --------------------------------------------------------------------------- +// =========================================================================== function doesPlayerHaveGUIEnabled(client) { if(hasBitFlag(getPlayerData(client).accountData.settings, getAccountSettingsFlagValue("noGUI"))) { @@ -1017,7 +1017,7 @@ function doesPlayerHaveGUIEnabled(client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function doesPlayerHaveLogoEnabled(client) { if(hasBitFlag(getPlayerData(client).accountData.settings, getAccountSettingsFlagValue("noServerLogo"))) { @@ -1027,7 +1027,7 @@ function doesPlayerHaveLogoEnabled(client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function doesPlayerHaveAutoLoginByIPEnabled(client) { if(hasBitFlag(getPlayerData(client).accountData.settings, getAccountSettingsFlagValue("autoLoginIP"))) { @@ -1037,7 +1037,7 @@ function doesPlayerHaveAutoLoginByIPEnabled(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function doesPlayerHaveAutoSelectLastCharacterEnabled(client) { if(hasBitFlag(getPlayerData(client).accountData.settings, getAccountSettingsFlagValue("autoSelectLastCharacter"))) { @@ -1047,44 +1047,44 @@ function doesPlayerHaveAutoSelectLastCharacterEnabled(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerStaffTitle(client) { return getPlayerData(client).accountData.staffTitle; } -// --------------------------------------------------------------------------- +// =========================================================================== function isAccountEmailVerified(accountData) { return hasBitFlag(accountData.flags.moderation, getModerationFlagValue("emailVerified")); } -// --------------------------------------------------------------------------- +// =========================================================================== function isAccountTwoFactorAuthenticationVerified(accountData) { return hasBitFlag(accountData.flags.moderation, getModerationFlagValue("twoFactorAuthVerified")); } -// --------------------------------------------------------------------------- +// =========================================================================== function setAccountEmail(accountData, emailAddress) { accountData.emailAddress = emailAddress; accountData.emailVerificationCode = module.hashing.sha512(emailVerificationCode); } -// --------------------------------------------------------------------------- +// =========================================================================== function setAccountEmailVerificationCode(accountData, emailVerificationCode) { accountData.emailVerificationCode = module.hashing.sha512(emailVerificationCode); } -// --------------------------------------------------------------------------- +// =========================================================================== function generateEmailVerificationCode() { return generateRandomString(10); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendEmailVerificationEmail(client, emailVerificationCode) { let emailBodyText = getGlobalConfig().emailBody.confirmEmail; @@ -1093,7 +1093,7 @@ function sendEmailVerificationEmail(client, emailVerificationCode) { sendEmail(getPlayerData(client).accountData.emailAddress, getPlayerData(client).accountData.name, `Confirm email on Asshat Gaming RP`, emailBodyText); } -// --------------------------------------------------------------------------- +// =========================================================================== function verifyAccountEmail(accountData, verificationCode) { let emailVerificationCode = generateRandomString(10); @@ -1107,4 +1107,4 @@ function verifyAccountEmail(accountData, verificationCode) { getPlayerData(client).accountData.emailVerificationCode = module.hashing.sha512(emailVerificationCode); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/anticheat.js b/scripts/server/anticheat.js index 62a275ce..28997297 100644 --- a/scripts/server/anticheat.js +++ b/scripts/server/anticheat.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: anticheat.js // DESC: Provides anticheat functions and usage // TYPE: Server (JavaScript) @@ -14,7 +14,7 @@ function initAntiCheatScript() { getServerData().antiCheat.blackListedGameScripts = loadAntiCheatGameScriptBlackListFromDatabase(); logToConsole(LOG_DEBUG, "[Asshat.AntiCheat]: Anticheat script initialized!"); } -// --------------------------------------------------------------------------- +// =========================================================================== function loadAntiCheatGameScriptWhiteListFromDatabase() { logToConsole(LOG_DEBUG, `[Asshat.AntiCheat] Loading whitelisted game scripts ...`); @@ -38,7 +38,7 @@ function loadAntiCheatGameScriptWhiteListFromDatabase() { return tempWhiteListedGameScripts; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadAntiCheatGameScriptBlackListFromDatabase() { logToConsole(LOG_DEBUG, `[Asshat.AntiCheat] Loading blacklisted game scripts ...`); @@ -62,7 +62,7 @@ function loadAntiCheatGameScriptBlackListFromDatabase() { return tempBlackListedGameScripts; } -// --------------------------------------------------------------------------- +// =========================================================================== function clearPlayerStateToEnterExitProperty(client) { if(getPlayerData(client).pedState != AG_PEDSTATE_READY) { @@ -75,4 +75,4 @@ function clearPlayerStateToEnterExitProperty(client) { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/ban.js b/scripts/server/ban.js index c16d9377..d1d9eaed 100644 --- a/scripts/server/ban.js +++ b/scripts/server/ban.js @@ -2,20 +2,20 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: bans.js // DESC: Provides ban functions and usage // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function initBanScript() { logToConsole(LOG_DEBUG, "[Asshat.Ban]: Initializing ban script ..."); logToConsole(LOG_DEBUG, "[Asshat.Ban]: Ban script initialized!"); } -// --------------------------------------------------------------------------- +// =========================================================================== function accountBanCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -34,7 +34,7 @@ function accountBanCommand(command, params, client) { disconnectPlayer(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function subAccountBanCommand(command, params, client, fromDiscord) { if(areParamsEmpty(params)) { @@ -57,7 +57,7 @@ function subAccountBanCommand(command, params, client, fromDiscord) { disconnectPlayer(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function ipBanCommand(command, params, client, fromDiscord) { if(areParamsEmpty(params)) { @@ -81,7 +81,7 @@ function ipBanCommand(command, params, client, fromDiscord) { targetClient.disconnect(); } -// --------------------------------------------------------------------------- +// =========================================================================== function subNetBanCommand(command, params, client, fromDiscord) { if(areParamsEmpty(params)) { @@ -104,7 +104,7 @@ function subNetBanCommand(command, params, client, fromDiscord) { banSubNet(targetClient.ip, getSubNet(targetClient.ip, octetAmount), getPlayerData(client).accountData.databaseId, reason); } -// --------------------------------------------------------------------------- +// =========================================================================== function banAccount(accountId, adminAccountId, reason) { let dbConnection = connectToDatabase(); @@ -119,7 +119,7 @@ function banAccount(accountId, adminAccountId, reason) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function banSubAccount(subAccountId, adminAccountId, reason) { let dbConnection = connectToDatabase(); @@ -134,7 +134,7 @@ function banSubAccount(subAccountId, adminAccountId, reason) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function banIPAddress(ipAddress, adminAccountId, reason) { let dbConnection = connectToDatabase(); @@ -149,7 +149,7 @@ function banIPAddress(ipAddress, adminAccountId, reason) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function banSubNet(ipAddressStart, ipAddressEnd, adminAccountId, reason) { let dbConnection = connectToDatabase(); @@ -164,7 +164,7 @@ function banSubNet(ipAddressStart, ipAddressEnd, adminAccountId, reason) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function unbanAccount(accountId, adminAccountId) { let dbConnection = connectToDatabase(); @@ -178,7 +178,7 @@ function unbanAccount(accountId, adminAccountId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function unbanSubAccount(subAccountId, adminAccountId) { let dbConnection = connectToDatabase(); @@ -192,7 +192,7 @@ function unbanSubAccount(subAccountId, adminAccountId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function unbanIPAddress(ipAddress, adminAccountId) { let dbConnection = connectToDatabase(); @@ -206,7 +206,7 @@ function unbanIPAddress(ipAddress, adminAccountId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function unbanSubNet(ipAddressStart, ipAddressEnd, adminAccountId) { let dbConnection = connectToDatabase(); @@ -220,7 +220,7 @@ function unbanSubNet(ipAddressStart, ipAddressEnd, adminAccountId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isAccountBanned(accountId) { let bans = getServerData().bans; @@ -235,7 +235,7 @@ function isAccountBanned(accountId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isSubAccountBanned(subAccountId) { let bans = getServerData().bans; @@ -250,7 +250,7 @@ function isSubAccountBanned(subAccountId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isIpAddressBanned(ipAddress) { let bans = getServerData().bans; @@ -265,5 +265,5 @@ function isIpAddressBanned(ipAddress) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== diff --git a/scripts/server/bitflag.js b/scripts/server/bitflag.js index ae4c0a89..f7802528 100644 --- a/scripts/server/bitflag.js +++ b/scripts/server/bitflag.js @@ -2,13 +2,13 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: bitflags.js // DESC: Provides bitwise operations, functions and usage // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== let serverBitFlags = { staffFlags: {}, @@ -20,7 +20,7 @@ let serverBitFlags = { accountFlags: {}, }; -// --------------------------------------------------------------------------- +// =========================================================================== let serverBitFlagKeys = { staffFlagKeys: [ @@ -119,7 +119,7 @@ let serverBitFlagKeys = { subAccountSettingsFlagKeys: [], } -// --------------------------------------------------------------------------- +// =========================================================================== function initBitFlagScript() { serverBitFlags.staffFlags = createBitFlagTable(serverBitFlagKeys.staffFlagKeys); @@ -132,13 +132,13 @@ function initBitFlagScript() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function addBitFlagCommandHandlers() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function createBitFlagTable(keyNames) { let bitVal = 0; @@ -154,7 +154,7 @@ function createBitFlagTable(keyNames) { return bitTable; } -// --------------------------------------------------------------------------- +// =========================================================================== function hasBitFlag(allFlags, checkForFlag) { if(allFlags == 0) { @@ -168,7 +168,7 @@ function hasBitFlag(allFlags, checkForFlag) { return (allFlags & checkForFlag); } -// --------------------------------------------------------------------------- +// =========================================================================== function doesPlayerHaveStaffPermission(client, requiredFlags) { if(isConsole(client)) { @@ -196,7 +196,7 @@ function doesPlayerHaveStaffPermission(client, requiredFlags) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function doesPlayerHaveClanPermission(client, requiredFlags) { if(isConsole(client)) { @@ -226,7 +226,7 @@ function doesPlayerHaveClanPermission(client, requiredFlags) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getStaffFlagValue(flagName) { if(flagName == "all") { @@ -240,7 +240,7 @@ function getStaffFlagValue(flagName) { return serverBitFlags.staffFlags[flagName]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getClanFlagValue(flagName) { if(flagName == "all") { @@ -254,7 +254,7 @@ function getClanFlagValue(flagName) { return getServerBitFlags().clanFlags[flagName]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getAccountSettingsFlagValue(flagName) { if(flagName == "all") { @@ -268,7 +268,7 @@ function getAccountSettingsFlagValue(flagName) { return serverBitFlags.accountSettingsFlags[flagName]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getModerationFlagValue(flagName) { if(flagName == "all") { @@ -282,7 +282,7 @@ function getModerationFlagValue(flagName) { return serverBitFlags.moderationFlags[flagName]; } -// --------------------------------------------------------------------------- +// =========================================================================== function givePlayerStaffFlag(client, flagName) { if(!getStaffFlagValue(flagName)) { @@ -293,7 +293,7 @@ function givePlayerStaffFlag(client, flagName) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function takePlayerStaffFlag(client, flagName) { if(!getStaffFlagValue(flagName)) { @@ -304,19 +304,19 @@ function takePlayerStaffFlag(client, flagName) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function addBitFlag(allFlags, flagValue) { return allFlags | flagValue; } -// --------------------------------------------------------------------------- +// =========================================================================== function removeBitFlag(allFlags, flagValue) { return allFlags & ~flagValue; } -// --------------------------------------------------------------------------- +// =========================================================================== function takePlayerStaffFlag(client, flagName) { if(!getStaffFlagValue(flagName)) { @@ -327,23 +327,39 @@ function takePlayerStaffFlag(client, flagName) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function clearPlayerStaffFlags(client) { getPlayerData(client).accountData.flags.admin = getStaffFlagValue("none"); return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function getServerBitFlags() { return serverBitFlags; } -// --------------------------------------------------------------------------- +// =========================================================================== function getServerBitFlagKeys() { return serverBitFlagKeys; } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== + +function createBitwiseTable(tableKeys) { + let bitVal = 0; + let bitTable = {}; + let incVal = 1; + + for(let i in tableKeys) { + let key = tableKeys[i]; + bitTable[key] = bitVal; + bitVal = 1 << incVal; + incVal++; + } + return bitTable; +} + +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/business.js b/scripts/server/business.js index f64c49d8..e0478943 100644 --- a/scripts/server/business.js +++ b/scripts/server/business.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: business.js // DESC: Provides business functions and usage // TYPE: Server (JavaScript) @@ -26,7 +26,7 @@ function initBusinessScript() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadBusinessFromId(businessId) { let dbConnection = connectToDatabase(); @@ -44,7 +44,7 @@ function loadBusinessFromId(businessId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadBusinessesFromDatabase() { logToConsole(LOG_DEBUG, "[Asshat.Business]: Loading businesses from database ..."); @@ -74,7 +74,7 @@ function loadBusinessesFromDatabase() { return tempBusinesses; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadBusinessLocationsFromDatabase(businessId) { //logToConsole(LOG_DEBUG, "[Asshat.Business]: Loading locations from database ..."); @@ -103,7 +103,7 @@ function loadBusinessLocationsFromDatabase(businessId) { return tempBusinessLocations; } -// --------------------------------------------------------------------------- +// =========================================================================== function createBusinessCommand(command, params, client) { let tempBusinessData = createBusiness(params, getPlayerPosition(client), toVector3(0.0, 0.0, 0.0), getGameConfig().pickupModels[getServerGame()].business, getGameConfig().blipSprites[getServerGame()].business, getPlayerInterior(client), getPlayerDimension(client)); @@ -119,7 +119,7 @@ function createBusinessCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]created business [#0099FF]${tempBusinessData.name}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function createBusinessLocationCommand(command, params, client) { if(!isPlayerSpawned(client)) { @@ -145,7 +145,7 @@ function createBusinessLocationCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]created location [#0099FF]${params} [#FFFFFF]for business [#0099FF]${tempBusinessData.name}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function createBusiness(name, entrancePosition, exitPosition, entrancePickupModel = -1, entranceBlipModel = -1, entranceInteriorId = 0, entranceVirtualWorld = 0, exitInteriorId = -1, exitVirtualWorld = -1, exitPickupModel = -1, exitBlipModel = -1) { let tempBusinessData = new serverClasses.businessData(false); @@ -168,7 +168,7 @@ function createBusiness(name, entrancePosition, exitPosition, entrancePickupMode return tempBusinessData; } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteBusinessCommand(command, params, client) { let businessId = (isPlayerInAnyBusiness(client)) ? getPlayerBusiness(client) : getClosestBusinessEntrance(getPlayerPosition(client)); @@ -186,7 +186,7 @@ function deleteBusinessCommand(command, params, client) { deleteBusiness(businessId, getPlayerData(client).accountData.databaseId); } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteBusinessLocationCommand(command, params, client) { //let businessId = toInteger(splitParams[1]); @@ -194,7 +194,7 @@ function deleteBusinessLocationCommand(command, params, client) { //messagePlayerSuccess(client, `Business '${tempBusinessData.name} deleted!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setBusinessNameCommand(command, params, client) { let newBusinessName = toString(params); @@ -212,7 +212,7 @@ function setBusinessNameCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]renamed business [#0099FF]${oldBusinessName} [#FFFFFF]to [#0099FF]${newBusinessName}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setBusinessOwnerCommand(command, params, client) { let newBusinessOwner = getPlayerFromParams(params); @@ -233,7 +233,7 @@ function setBusinessOwnerCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set business [#0099FF]${getBusinessData(businessId).name} [#FFFFFF]owner to [#AAAAAA]${newBusinessOwner.name}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setBusinessClanCommand(command, params, client) { let clanId = getClanFromParams(params); @@ -254,7 +254,7 @@ function setBusinessClanCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set business [#0099FF]${getBusinessData(businessId).name} [#FFFFFF]owner to the [#FF9900]${getClanData(clanId).name} [#FFFFFF]clan`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setBusinessJobCommand(command, params, client) { let businessId = (isPlayerInAnyBusiness(client)) ? getPlayerBusiness(client) : getClosestBusinessEntrance(getPlayerPosition(client)); @@ -285,7 +285,7 @@ function setBusinessJobCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set business [#0099FF]${getBusinessData(businessId).name} [#FFFFFF]owner to the [#FFFF00]${getJobData(jobId).name} [#FFFFFF]job`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setBusinessPublicCommand(command, params, client) { let businessId = (isPlayerInAnyBusiness(client)) ? getPlayerBusiness(client) : getClosestBusinessEntrance(getPlayerPosition(client)); @@ -304,7 +304,7 @@ function setBusinessPublicCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set business [#0099FF]${getBusinessData(businessId).name} [#FFFFFF]owner set to [#AAAAAA]public`); } -// --------------------------------------------------------------------------- +// =========================================================================== function lockBusinessCommand(command, params, client) { let businessId = (isPlayerInAnyBusiness(client)) ? getPlayerBusiness(client) : getClosestBusinessEntrance(getPlayerPosition(client)); @@ -323,7 +323,7 @@ function lockBusinessCommand(command, params, client) { messagePlayerSuccess(client, `${getLockedUnlockedEmojiFromBool((getBusinessData(businessId).locked))} Business [#0099FF]${getBusinessData(businessId).name} [#FFFFFF]${getLockedUnlockedTextFromBool((getBusinessData(businessId).locked))}!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setBusinessEntranceFeeCommand(command, params, client) { let splitParams = params.split(" "); @@ -339,7 +339,7 @@ function setBusinessEntranceFeeCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set business [#0099FF]${getBusinessData(businessId).name} [#FFFFFF]entrance fee to [#AAAAAAA]$${entranceFee}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function getBusinessInfoCommand(command, params, client) { let businessId = (isPlayerInAnyBusiness(client)) ? getPlayerBusiness(client) : getClosestBusinessEntrance(getPlayerPosition(client)); @@ -380,7 +380,7 @@ function getBusinessInfoCommand(command, params, client) { messagePlayerInfo(client, `🏢 [#0099FF][Business Info] [#FFFFFF]Name: [#AAAAAA]${getBusinessData(businessId).name}, [#FFFFFF]Owner: [#AAAAAA]${ownerName} (${getBusinessOwnerTypeText(getBusinessData(businessId).ownerType)}), [#FFFFFF]Locked: [#AAAAAA]${getYesNoFromBool(intToBool(getBusinessData(businessId).locked))}, [#FFFFFF]ID: [#AAAAAA]${businessId}/${getBusinessData(businessId).databaseId}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setBusinessPickupCommand(command, params, client) { let splitParams = params.split(" "); @@ -412,7 +412,7 @@ function setBusinessPickupCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set business [#0099FF]${getBusinessData(businessId).name} [#FFFFFF]pickup display to [#AAAAAA]${toLowerCase(typeParam)}'!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setBusinessInteriorTypeCommand(command, params, client) { let splitParams = params.split(" "); @@ -461,7 +461,7 @@ function setBusinessInteriorTypeCommand(command, params, client) { createBusinessExitPickup(businessId); } -// --------------------------------------------------------------------------- +// =========================================================================== function setBusinessBlipCommand(command, params, client) { let splitParams = params.split(" "); @@ -494,7 +494,7 @@ function setBusinessBlipCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set business [#0099FF]${getBusinessData(businessId).name} [#FFFFFF]blip display to [#AAAAAA]${toLowerCase(typeParam)}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function withdrawFromBusinessCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -523,7 +523,7 @@ function withdrawFromBusinessCommand(command, params, client) { messagePlayerSuccess(client, `You withdrew $${amount} from business [#0099FF]${getBusinessData(businessId).name} till`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setBusinessBuyPriceCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -551,7 +551,7 @@ function setBusinessBuyPriceCommand(command, params, client) { messagePlayerSuccess(client, `[#FFFFFF]You set the [#0099FF]${getBusinessData(businessId).name} business's for-sale price to [#AAAAAA]$${amount}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function depositIntoBusinessCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -580,7 +580,7 @@ function depositIntoBusinessCommand(command, params, client) { messagePlayerSuccess(client, `You deposited $${amount} into business [#0099FF]${getBusinessData(businessId).name} [#FFFFFF]till`); } -// --------------------------------------------------------------------------- +// =========================================================================== function orderItemForBusinessCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -625,7 +625,7 @@ function orderItemForBusinessCommand(command, params, client) { showPlayerPrompt(client, AG_PROMPT_BIZORDER, `Ordering ${amount} ${getPluralForm(getItemTypeData(itemType).name)} (${getItemValueDisplay(itemType, value)}) at $${pricePerItem} each will cost a total of $${orderTotalCost}`, "Business Order Cost"); } -// --------------------------------------------------------------------------- +// =========================================================================== function orderItemForBusiness(businessId, itemType, amount) { if(getBusinessData(businessId).till < orderTotalCost) { @@ -639,7 +639,7 @@ function orderItemForBusiness(businessId, itemType, amount) { //messagePlayerSuccess(client, `You ordered ${amount} ${getPluralForm(getItemTypeData(itemType).name)} (${getItemValueDisplay(itemType, value)}) at $${getItemTypeData(itemType).orderPrice} each for business [#0099FF]${getBusinessData(businessId).name}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function viewBusinessTillAmountCommand(command, params, client) { let businessId = (isPlayerInAnyBusiness(client)) ? getPlayerBusiness(client) : getClosestBusinessEntrance(getPlayerPosition(client)); @@ -656,7 +656,7 @@ function viewBusinessTillAmountCommand(command, params, client) { messagePlayerSuccess(client, `Business [#0099FF]${getBusinessData(businessId).name} [#FFFFFF]till has [#AAAAAA]$${getBusinessData(businessId).till}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function moveBusinessEntranceCommand(command, params, client) { let businessId = toInteger((isPlayerInAnyBusiness(client)) ? getPlayerBusiness(client) : getClosestBusinessEntrance(getPlayerPosition(client))); @@ -683,7 +683,7 @@ function moveBusinessEntranceCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]moved business [#0099FF]${getBusinessData(businessId).name} [#FFFFFF]entrance to their position`); } -// --------------------------------------------------------------------------- +// =========================================================================== function moveBusinessExitCommand(command, params, client) { let businessId = toInteger((isPlayerInAnyBusiness(client)) ? getPlayerBusiness(client) : getClosestBusinessEntrance(getPlayerPosition(client))); @@ -710,7 +710,7 @@ function moveBusinessExitCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]moved business [#0099FF]${getBusinessData(businessId).name} [#FFFFFF]exit to their position`); } -// --------------------------------------------------------------------------- +// =========================================================================== function getBusinessDataFromDatabaseId(databaseId) { let matchingBusinesses = getServerData().businesses.filter(b => b.databaseId == businessId) @@ -720,7 +720,7 @@ function getBusinessDataFromDatabaseId(databaseId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getClosestBusinessEntrance(position) { let closest = 0; @@ -732,7 +732,7 @@ function getClosestBusinessEntrance(position) { return closest; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerInAnyBusiness(client) { if(doesEntityDataExist(client, "ag.inBusiness")) { @@ -742,7 +742,7 @@ function isPlayerInAnyBusiness(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerBusiness(client) { if(doesEntityDataExist(client, "ag.inBusiness")) { @@ -752,7 +752,7 @@ function getPlayerBusiness(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveAllBusinessesToDatabase() { for(let i in getServerData().businesses) { @@ -760,7 +760,7 @@ function saveAllBusinessesToDatabase() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function saveBusinessToDatabase(businessId) { let tempBusinessData = getServerData().businesses[businessId] @@ -854,7 +854,7 @@ function saveBusinessToDatabase(businessId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllBusinessPickups() { for(let i in getServerData().businesses) { @@ -863,7 +863,7 @@ function createAllBusinessPickups() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllBusinessBlips() { for(let i in getServerData().businesses) { @@ -872,7 +872,7 @@ function createAllBusinessBlips() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createBusinessEntrancePickup(businessId) { if(getBusinessData(businessId).entrancePickupModel != -1) { @@ -897,7 +897,7 @@ function createBusinessEntrancePickup(businessId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createBusinessEntranceBlip(businessId) { if(getBusinessData(businessId).entranceBlipModel != -1) { @@ -917,7 +917,7 @@ function createBusinessEntranceBlip(businessId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createBusinessExitPickup(businessId) { if(getBusinessData(businessId).hasInterior) { @@ -940,7 +940,7 @@ function createBusinessExitPickup(businessId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createBusinessExitBlip(businessId) { if(getBusinessData(businessId).hasInterior) { @@ -962,7 +962,7 @@ function createBusinessExitBlip(businessId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteBusiness(businessId, deletedBy = 0) { let tempBusinessData = getServerData().businesses[businessId]; @@ -989,7 +989,7 @@ function deleteBusiness(businessId, deletedBy = 0) { getServerData().businesses.splice(businessId, 1); } -// --------------------------------------------------------------------------- +// =========================================================================== function removePlayersFromBusiness(businessId) { getClients().forEach(function(client) { @@ -1003,7 +1003,7 @@ function removePlayersFromBusiness(businessId) { }); } -// --------------------------------------------------------------------------- +// =========================================================================== function removePlayerFromBusinesses(client) { if(isPlayerInAnyBusiness(client)) { @@ -1011,7 +1011,7 @@ function removePlayerFromBusinesses(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function exitBusiness(client) { let businessId = getEntityData(client, "ag.inBusiness"); @@ -1023,7 +1023,7 @@ function exitBusiness(client) { removeEntityData(client, "ag.inBusiness"); } -// --------------------------------------------------------------------------- +// =========================================================================== function getBusinessOwnerTypeText(ownerType) { switch(ownerType) { @@ -1045,7 +1045,7 @@ function getBusinessOwnerTypeText(ownerType) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getBusinessData(businessId) { if(typeof getServerData().businesses[businessId] != null) { @@ -1054,13 +1054,13 @@ function getBusinessData(businessId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function doesBusinessHaveInterior(businessId) { return getBusinessData(businessId).hasInterior; } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteBusinessEntrancePickup(businessId) { if(getBusinessData(businessId).entrancePickup != null) { @@ -1070,7 +1070,7 @@ function deleteBusinessEntrancePickup(businessId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteBusinessExitPickup(businessId) { if(getBusinessData(businessId).exitPickup != null) { @@ -1080,7 +1080,7 @@ function deleteBusinessExitPickup(businessId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteBusinessEntranceBlip(businessId) { if(getBusinessData(businessId).entranceBlip != null) { @@ -1090,7 +1090,7 @@ function deleteBusinessEntranceBlip(businessId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteBusinessExitBlip(businessId) { if(getBusinessData(businessId).exitBlip != null) { @@ -1100,7 +1100,7 @@ function deleteBusinessExitBlip(businessId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function reloadAllBusinessesCommand(command, params, client) { let clients = getClients(); @@ -1126,7 +1126,7 @@ function reloadAllBusinessesCommand(command, params, client) { messageAdminAction(`All businesses have been reloaded by an admin!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setAllBusinessIndexes() { for(let i in getServerData().businesses) { @@ -1134,7 +1134,7 @@ function setAllBusinessIndexes() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function addToBusinessInventory(businessId, itemType, amount, buyPrice) { let tempItemData = new serverClasses.itemData(false); @@ -1152,7 +1152,7 @@ function addToBusinessInventory(businessId, itemType, amount, buyPrice) { getServerData().items[index].index = index; } -// --------------------------------------------------------------------------- +// =========================================================================== function buyFromBusinessCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -1201,7 +1201,7 @@ function buyFromBusinessCommand(command, params, client) { messagePlayerSuccess(client, `You bought ${amount} [#AAAAAA]${getItemTypeData(getItemData(getBusinessData(businessId).floorItemCache[itemSlot])).name} [#FFFFFF]for $${getBusinessData(businessId).floorItemCache[itemSlot].buyPrice*amount}!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setBusinessItemSellPriceCommand(command, params, client) { let splitParams = params.split(" "); @@ -1236,7 +1236,7 @@ function setBusinessItemSellPriceCommand(command, params, client) { messagePlayerSuccess(client, `You changed the price of the ${getItemTypeData(getItemData(getBusinessData(businessId).floorItemCache[itemSlot])).name}s in slot ${itemSlot} from $${oldPrice} to $${newPrice}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function storeItemInBusinessStorageCommand(command, params, client) { let splitParams = params.split(" "); @@ -1272,7 +1272,7 @@ function storeItemInBusinessStorageCommand(command, params, client) { messagePlayerSuccess(client, `You moved the ${getItemTypeData(getItemData(getBusinessData(businessId).storageItemCache[firstSlot])).name}s in slot ${itemSlot} to the business storage in slot ${firstSlot}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function stockItemOnBusinessFloorCommand(command, params, client) { let splitParams = params.split(" "); @@ -1308,7 +1308,7 @@ function stockItemOnBusinessFloorCommand(command, params, client) { messagePlayerSuccess(client, `You moved the ${getItemTypeData(getItemData(getBusinessData(businessId).storageItemCache[firstSlot])).name}s in slot ${itemSlot} of the business storage to the business floor slot ${firstSlot}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function getBusinessStorageFirstFreeItemSlot(businessId) { for(let i in getBusinessData(businessId).storageItemCache) { @@ -1320,7 +1320,7 @@ function getBusinessStorageFirstFreeItemSlot(businessId) { return -1; } -// --------------------------------------------------------------------------- +// =========================================================================== function getBusinessFloorFirstFreeItemSlot(businessId) { for(let i in getBusinessData(businessId).floorItemCache) { @@ -1332,7 +1332,7 @@ function getBusinessFloorFirstFreeItemSlot(businessId) { return -1; } -// --------------------------------------------------------------------------- +// =========================================================================== function cacheAllBusinessItems() { for(let i in getServerData().businesses) { @@ -1346,4 +1346,4 @@ function cacheAllBusinessItems() { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/business/bakery.js b/scripts/server/business/bakery.js index 7be06872..81c4f5f6 100644 --- a/scripts/server/business/bakery.js +++ b/scripts/server/business/bakery.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: bakery.js // DESC: Provides bakery business functions and usage // TYPE: Business (JavaScript) diff --git a/scripts/server/business/bar.js b/scripts/server/business/bar.js index 714ff50c..f7704cf1 100644 --- a/scripts/server/business/bar.js +++ b/scripts/server/business/bar.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: bar.js // DESC: Provides bar/pub business functions and usage // TYPE: Business (JavaScript) diff --git a/scripts/server/business/burger.js b/scripts/server/business/burger.js index b8fd1a6a..0953ae3e 100644 --- a/scripts/server/business/burger.js +++ b/scripts/server/business/burger.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: burger.js // DESC: Provides burger joint (McDonalds?) business functions and usage // TYPE: Business (JavaScript) diff --git a/scripts/server/business/clothing.js b/scripts/server/business/clothing.js index cccbd96d..ed94081c 100644 --- a/scripts/server/business/clothing.js +++ b/scripts/server/business/clothing.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: clothing.js // DESC: Provides clothing (skin) business functions and usage // TYPE: Business (JavaScript) diff --git a/scripts/server/business/club.js b/scripts/server/business/club.js index 942305ee..5dd2724e 100644 --- a/scripts/server/business/club.js +++ b/scripts/server/business/club.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: club.js // DESC: Provides club/nightclub business functions and usage // TYPE: Business (JavaScript) diff --git a/scripts/server/business/fuel.js b/scripts/server/business/fuel.js index fb7ce59d..6eaceb5a 100644 --- a/scripts/server/business/fuel.js +++ b/scripts/server/business/fuel.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: fuel.js // DESC: Provides fuel/petrol business functions and usage // TYPE: Business (JavaScript) diff --git a/scripts/server/business/mechanic.js b/scripts/server/business/mechanic.js index a5d1f4f3..bc71fb4f 100644 --- a/scripts/server/business/mechanic.js +++ b/scripts/server/business/mechanic.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: mechanic.js // DESC: Provides mechanic/vehicle repair business functions and usage // TYPE: Business (JavaScript) diff --git a/scripts/server/business/pizza.js b/scripts/server/business/pizza.js index 5c3d5540..3e15c306 100644 --- a/scripts/server/business/pizza.js +++ b/scripts/server/business/pizza.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: pizza.js // DESC: Provides pizza restaurant business functions and usage // TYPE: Business (JavaScript) diff --git a/scripts/server/business/restaurant.js b/scripts/server/business/restaurant.js index 312b3309..bcc6f8c8 100644 --- a/scripts/server/business/restaurant.js +++ b/scripts/server/business/restaurant.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: restaurant.js // DESC: Provides generic restaurant business functions and usage // TYPE: Business (JavaScript) diff --git a/scripts/server/business/vehicle.js b/scripts/server/business/vehicle.js index 737deda3..131db0d9 100644 --- a/scripts/server/business/vehicle.js +++ b/scripts/server/business/vehicle.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: vehicle.js // DESC: Provides vehicle dealership business functions and usage // TYPE: Business (JavaScript) diff --git a/scripts/server/business/weapon.js b/scripts/server/business/weapon.js index 3834b507..4af40c85 100644 --- a/scripts/server/business/weapon.js +++ b/scripts/server/business/weapon.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: weapon.js // DESC: Provides weapon (ammunations & illegal gunshops) business usage // TYPE: Business (JavaScript) diff --git a/scripts/server/chat.js b/scripts/server/chat.js index 24be9157..197a36b8 100644 --- a/scripts/server/chat.js +++ b/scripts/server/chat.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: chat.js // DESC: Provides chat functions and usage // TYPE: Server (JavaScript) @@ -14,7 +14,7 @@ function initChatScript() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function meActionCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -26,7 +26,7 @@ function meActionCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function doActionCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -38,7 +38,7 @@ function doActionCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function shoutCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -50,7 +50,7 @@ function shoutCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function talkCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -62,7 +62,7 @@ function talkCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function whisperCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -74,7 +74,7 @@ function whisperCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function adminChatCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -85,7 +85,7 @@ function adminChatCommand(command, params, client) { messageAdmins(`[#FFFF00][Admin Chat] [#AAAAAA]${client.name} [#CCCCCC](${getPlayerStaffTitle(client)})[#FFFFFF]: ${params}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function clanChatCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -96,7 +96,7 @@ function clanChatCommand(command, params, client) { clanChat(client, params); } -// --------------------------------------------------------------------------- +// =========================================================================== function talkToNearbyPlayers(client, messageText) { let clients = getClientsInRange(getPlayerPosition(client), getGlobalConfig().talkDistance); @@ -107,7 +107,7 @@ function talkToNearbyPlayers(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function phoneOutgoingToNearbyPlayers(client, messageText) { let clients = getClientsInRange(getPlayerPosition(client), getGlobalConfig().talkDistance); @@ -116,7 +116,7 @@ function phoneOutgoingToNearbyPlayers(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function phoneIncomingToNearbyPlayers(client, messageText) { let clients = getClientsInRange(getPlayerPosition(client), getGlobalConfig().radioSpeakerDistance); @@ -125,7 +125,7 @@ function phoneIncomingToNearbyPlayers(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function whisperToNearbyPlayers(client, messageText) { let clients = getClientsInRange(getPlayerPosition(client), getGlobalConfig().talkDistance); @@ -136,7 +136,7 @@ function whisperToNearbyPlayers(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function shoutToNearbyPlayers(client, messageText) { let clients = getClientsInRange(getPlayerPosition(client), getGlobalConfig().shoutDistance); @@ -147,7 +147,7 @@ function shoutToNearbyPlayers(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function doActionToNearbyPlayers(client, messageText) { let clients = getClientsInRange(getPlayerPosition(client), getGlobalConfig().doActionDistance); @@ -158,7 +158,7 @@ function doActionToNearbyPlayers(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function meActionToNearbyPlayers(client, messageText) { let clients = getClientsInRange(getPlayerPosition(client), getGlobalConfig().meActionDistance); @@ -169,7 +169,7 @@ function meActionToNearbyPlayers(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function clanChat(client, messageText) { let clients = getClients(); @@ -180,4 +180,4 @@ function clanChat(client, messageText) { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/clan.js b/scripts/server/clan.js index ef193e47..04cadb66 100644 --- a/scripts/server/clan.js +++ b/scripts/server/clan.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: clan.js // DESC: Provides clan functions and usage // TYPE: Server (JavaScript) @@ -16,7 +16,7 @@ function initClanScript() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadClansFromDatabase() { logToConsole(LOG_DEBUG, "[Asshat.Clan]: Loading clans from database ..."); @@ -606,7 +606,7 @@ function saveAllClansToDatabase() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function setAllClanDataIndexes() { for(let i in getServerData().clans) { @@ -624,7 +624,7 @@ function setAllClanDataIndexes() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function arePlayersInSameClan(client1, client2) { if(getPlayerClan(client1) == getPlayerClan(client2)) { @@ -634,4 +634,4 @@ function arePlayersInSameClan(client1, client2) { return false; } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/class.js b/scripts/server/class.js index 9062a799..90f2e6be 100644 --- a/scripts/server/class.js +++ b/scripts/server/class.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: class.js // DESC: Provides classes // TYPE: Server (JavaScript) @@ -10,12 +10,12 @@ let serverClasses = initClassTable(); -// --------------------------------------------------------------------------- +// =========================================================================== function initClassScript() { } -// --------------------------------------------------------------------------- +// =========================================================================== function initClassTable() { let tempClasses = { @@ -1132,16 +1132,16 @@ function initClassTable() { return tempClasses; } -// --------------------------------------------------------------------------- +// =========================================================================== function getClasses() { return serverClasses; } -// --------------------------------------------------------------------------- +// =========================================================================== function getClass(className) { return serverClasses[className]; } -// --------------------------------------------------------------------------- +// =========================================================================== diff --git a/scripts/server/client.js b/scripts/server/client.js index a310ecbc..71427dd9 100644 --- a/scripts/server/client.js +++ b/scripts/server/client.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: client.js // DESC: Provides client communication and cross-endpoint operations // TYPE: Server (JavaScript) @@ -14,7 +14,7 @@ function initClientScript() { logToConsole(LOG_DEBUG, "[Asshat.Clan]: Initializing client script ..."); } -// --------------------------------------------------------------------------- +// =========================================================================== function addAllNetworkHandlers() { logToConsole(LOG_DEBUG, "[Asshat.Client]: Adding network handlers ..."); @@ -67,14 +67,14 @@ function addAllNetworkHandlers() { addNetworkHandler("ag.player.heading", updateHeadingInPlayerData); } -// --------------------------------------------------------------------------- +// =========================================================================== function updatePlayerNameTag(client) { //logToConsole(LOG_DEBUG, `[Asshat.Client] Sending ${getPlayerDisplayForConsole(client)}'s updated nametag to all players`); triggerNetworkEvent("ag.nametag", null, client.name, getPlayerNameForNameTag(client), getPlayerColour(client), false, client.ping); } -// --------------------------------------------------------------------------- +// =========================================================================== function updateAllPlayerNameTags() { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending updated nametags to all players`); @@ -84,14 +84,14 @@ function updateAllPlayerNameTags() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function updatePlayerPing(client) { //logToConsole(LOG_DEBUG, `[Asshat.Client] Sending ${getPlayerDisplayForConsole(client)}'s ping to all players`); triggerNetworkEvent("ag.ping", null, client.name, client.ping); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerClientReady(client) { setEntityData(client, "ag.isReady", true, false); @@ -101,14 +101,14 @@ function playerClientReady(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function playerGUIReady(client) { setEntityData(client, "ag.guiReady", true, false); logToConsole(LOG_DEBUG, `${getPlayerDisplayForConsole(client)}'s client GUI is initialized and ready!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerClientStarted(client) { setEntityData(client, "ag.isStarted", true, false); @@ -118,56 +118,56 @@ function playerClientStarted(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function showGameMessage(client, text, colour, duration) { logToConsole(LOG_DEBUG, `[Asshat.Client] Showing game message to ${getPlayerDisplayForConsole(client)} (${text}) for ${duration} milliseconds`); triggerNetworkEvent("ag.smallGameMessage", client, text, colour, duration); } -// --------------------------------------------------------------------------- +// =========================================================================== function enableCityAmbienceForPlayer(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Setting ${getPlayerDisplayForConsole(client)}'s city ambience to ${toUpperCase(getOnOffFromBool(false))}`); triggerNetworkEvent("ag.ambience", client, true); } -// --------------------------------------------------------------------------- +// =========================================================================== function disableCityAmbienceForPlayer(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Setting ${getPlayerDisplayForConsole(client)}'s city ambience to ${toUpperCase(getOnOffFromBool(false))}`); triggerNetworkEvent("ag.ambience", client, false); } -// --------------------------------------------------------------------------- +// =========================================================================== function clearPlayerOwnedPeds(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Clearing peds owned by ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.clearPeds", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function updatePlayerSpawnedState(client, state) { logToConsole(LOG_DEBUG, `[Asshat.Client] Setting ${getPlayerDisplayForConsole(client)}'s spawned state ${toUpperCase(getOnOffFromBool(state))}`); triggerNetworkEvent("ag.spawned", client, state); } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerControlState(client, state) { logToConsole(LOG_DEBUG, `[Asshat.Client] Setting ${getPlayerDisplayForConsole(client)}'s control state ${toUpperCase(getOnOffFromBool(state))}`); triggerNetworkEvent("ag.control", client, state, !state); } -// --------------------------------------------------------------------------- +// =========================================================================== function updatePlayerShowLogoState(client, state) { logToConsole(LOG_DEBUG, `[Asshat.Client] Setting ${getPlayerDisplayForConsole(client)}'s logo state ${toUpperCase(getOnOffFromBool(state))}`); triggerNetworkEvent("ag.logo", client, state); } -// --------------------------------------------------------------------------- +// =========================================================================== function restorePlayerCamera(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Restoring ${getPlayerDisplayForConsole(client)}'s camera`); @@ -180,14 +180,14 @@ function setPlayer2DRendering(client, hudState = false, labelState = false, smal triggerNetworkEvent("ag.set2DRendering", client, hudState, labelState, smallGameMessageState, scoreboardState, hotBarState, itemActionDelayState); } -// --------------------------------------------------------------------------- +// =========================================================================== function syncPlayerProperties(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending signal to sync ${getPlayerDisplayForConsole(client)}'s player ped properties`); triggerNetworkEvent("ag.player.sync", null, client.player); } -// --------------------------------------------------------------------------- +// =========================================================================== function updatePlayerSnowState(client) { if(doesGameHaveSnow(getServerGame())) { @@ -196,7 +196,7 @@ function updatePlayerSnowState(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function sendExcludedModelsForGroundSnowToPlayer(client) { if(getGameConfig().excludedGroundSnowModels[getServerGame()].length > 0) { @@ -207,7 +207,7 @@ function sendExcludedModelsForGroundSnowToPlayer(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function sendRemovedWorldObjectsToPlayer(client) { if(getGameConfig().removedWorldObjects[getServerGame()].length > 0) { @@ -219,7 +219,7 @@ function sendRemovedWorldObjectsToPlayer(client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function updatePlayerHotBar(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending updated hotbar data to ${getPlayerDisplayForConsole(client)}`); @@ -242,14 +242,14 @@ function updatePlayerHotBar(client) { triggerNetworkEvent("ag.hotbar", client, getPlayerData(client).activeHotBarSlot, tempHotBarItems); } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerWeaponDamageEnabled(client, state) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending weapon damage state for ${getPlayerDisplayForConsole(client)} to all players`); triggerNetworkEvent("ag.weaponDamageEnabled", null, client.name, state); } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerWeaponDamageEvent(client, eventType) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending weapon damage event (${eventType}) for ${getPlayerDisplayForConsole(client)} to all players`); @@ -257,244 +257,244 @@ function setPlayerWeaponDamageEvent(client, eventType) { getPlayerData(client).weaponDamageEvent = eventType; } -// --------------------------------------------------------------------------- +// =========================================================================== function sendJobRouteStopToPlayer(client, position, colour) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending job route stop data to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.showJobRouteStop", client, position, colour); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerLoginSuccessGUI(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending login success GUI signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.loginSuccess", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerLoginFailedGUI(client, errorMessage) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending login failed GUI signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.loginFailed", client, errorMessage); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerRegistrationSuccessGUI(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending registration success GUI signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.registrationSuccess", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerRegistrationFailedGUI(client, errorMessage) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending registration failed GUI signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.registrationFailed", client, errorMessage); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerGUIColours(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending GUI colours to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.guiColour", client, getServerConfig().guiColour[0], getServerConfig().guiColour[1], getServerConfig().guiColour[2]); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerGUIInit(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending GUI init signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.guiInit", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerLoginGUI(client, errorMessage = "") { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending show login GUI signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.showLogin", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerRegistrationGUI(client, errorMessage = "") { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending show registration GUI signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.showRegistration", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerNewCharacterGUI(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending show new character GUI signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.showNewCharacter", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerCharacterSelectGUI(client, firstName, lastName, placeOfOrigin, dateOfBirth, skin) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending character select GUI signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.showCharacterSelect", client, firstName, lastName, placeOfOrigin, dateOfBirth, skin); } -// --------------------------------------------------------------------------- +// =========================================================================== function updatePlayerCharacterSelectGUI(client, firstName, lastName, placeOfOrigin, dateOfBirth, skin) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending update character select GUI signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.switchCharacterSelect", client, firstName, lastName, placeOfOrigin, dateOfBirth, skin); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerCharacterSelectSuccessGUI(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending character select success GUI signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.characterSelectSuccess", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerCharacterSelectFailedGUI(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending character select failed GUI signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.characterSelectFailed", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerPromptGUI(client, promptMessage, promptTitle) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending show prompt GUI signal to ${getPlayerDisplayForConsole(client)} (Title: ${promptTitle}, Message: ${promptMessage})`); triggerNetworkEvent("ag.showPrompt", client, promptMessage, promptTitle); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerInfoGUI(client, infoMessage, infoTitle) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending show info GUI signal to ${getPlayerDisplayForConsole(client)} (Title: ${infoTitle}, Message: ${infoMessage})`); triggerNetworkEvent("ag.showInfo", client, infoMessage, infoTitle); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerErrorGUI(client, errorMessage, errorTitle) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending show error GUI signal to ${getPlayerDisplayForConsole(client)} (Title: ${errorTitle}, Message: ${errorMessage})`); triggerNetworkEvent("ag.showInfo", client, errorMessage, errorTitle); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendRunCodeToClient(client, code, returnTo) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending runcode to ${getPlayerDisplayForConsole(client)} (returnTo: ${getPlayerDisplayForConsole(getClientFromIndex(returnTo))}, Code: ${code})`); triggerNetworkEvent("ag.runCode", client, code, returnTo); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerWorkingState(client, state) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending working state (${toUpperCase(getYesNoFromBool(state))}) to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.working", client, state); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerJobType(client, jobType) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending job type (${jobType}) to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.jobType", client, jobType); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerStopJobRoute(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending signal to abort job route to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.stopJobRoute", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerMouseCameraToggle(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending signal to toggle mouse camera ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.mouseCamera", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerMouseCursorToggle(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending signal to toggle mouse cursor ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.mouseCursor", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendAddAccountKeyBindToClient(client, key, keyState) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending added keybind to ${getPlayerDisplayForConsole(client)} (Key: ${sdl.getKeyName(key)}, State: ${(keyState) ? "down" : "up"})`); triggerNetworkEvent("ag.addKeyBind", client, toInteger(key), (keyState) ? KEYSTATE_DOWN : KEYSTATE_UP); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendRemoveAccountKeyBindToClient(client, key) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending deleted keybind to ${getPlayerDisplayForConsole(client)} (Key: ${sdl.getKeyName(key)})`); triggerNetworkEvent("ag.delKeyBind", client, toInteger(key)); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerSetPosition(client, position) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending set position signal to ${getPlayerDisplayForConsole(client)} (Position: ${position.x}, ${position.y}, ${position.z})`); triggerNetworkEvent("ag.position", client, position); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerSetHeading(client, heading) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending set heading signal to ${getPlayerDisplayForConsole(client)} (Heading: ${heading})`); triggerNetworkEvent("ag.heading", client, heading); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerSetInterior(client, interior) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending set interior signal to ${getPlayerDisplayForConsole(client)} (Interior: ${interior})`); triggerNetworkEvent("ag.interior", client, interior); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerFrozenState(client, state) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending set frozen signal to ${getPlayerDisplayForConsole(client)} (State: ${toUpperCase(getYesNoFromBool(state))})`); triggerNetworkEvent("ag.frozen", client, state); } -// --------------------------------------------------------------------------- +// =========================================================================== function givePlayerWeapon(client, weaponId, ammo, active) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending signal to ${getPlayerDisplayForConsole(client)} to give weapon (Weapon: ${weaponId}, Ammo: ${ammo})`); triggerNetworkEvent("ag.giveWeapon", client, weaponId, ammo, active); } -// --------------------------------------------------------------------------- +// =========================================================================== function clearPlayerWeapons(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending signal to ${getPlayerDisplayForConsole(client)} to clear weapons`); triggerNetworkEvent("ag.clearWeapons", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerNewCharacterFailedGUI(client, errorMessage) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending new character failed GUI signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.newCharacterFailed", client, errorMessage); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerRemoveFromVehicle(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Sending remove from vehicle signal to ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.removeFromVehicle", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendChatBoxMessageToPlayer(client, message, colour) { triggerNetworkEvent("ag.m", client, message, colour) } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerItemTakeDelay(client, itemId) { if(getItemData(itemId)) { @@ -509,7 +509,7 @@ function showPlayerItemTakeDelay(client, itemId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerItemUseDelay(client, itemSlot) { if(getItemData(getPlayerData(client).hotBarItems[itemSlot])) { @@ -524,7 +524,7 @@ function showPlayerItemUseDelay(client, itemSlot) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerItemDropDelay(client, itemSlot) { if(getItemData(getPlayerData(client).hotBarItems[itemSlot])) { @@ -539,7 +539,7 @@ function showPlayerItemDropDelay(client, itemSlot) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerItemPickupDelay(client, itemId) { if(getItemData(itemId)) { @@ -554,7 +554,7 @@ function showPlayerItemPickupDelay(client, itemId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerItemPutDelay(client, itemSlot) { if(getItemData(getPlayerData(client).hotBarItems[itemSlot])) { @@ -569,7 +569,7 @@ function showPlayerItemPutDelay(client, itemSlot) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerItemSwitchDelay(client, itemSlot) { if(itemSlot != -1) { @@ -586,21 +586,21 @@ function showPlayerItemSwitchDelay(client, itemSlot) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerDrunkEffect(client, amount, duration) { logToConsole(LOG_DEBUG, `[Asshat.Client] Setting drunk effect for ${getPlayerDisplayForConsole(client)} to ${amount} for ${duration} milliseconds`); triggerNetworkEvent("ag.drunkEffect", client, amount, duration); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendPlayerClearPedState(client) { logToConsole(LOG_DEBUG, `[Asshat.Client] Clearing ped state for ${getPlayerDisplayForConsole(client)}`); triggerNetworkEvent("ag.clearPedState", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerDamagedByPlayer(client, damagerEntityName, weaponId, pedPiece, healthLoss) { let damagerEntity = getClientByName(damagerEntityName); @@ -639,38 +639,38 @@ function playerDamagedByPlayer(client, damagerEntityName, weaponId, pedPiece, he } } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerCameraLookAt(client, cameraPosition, lookAtPosition) { triggerNetworkEvent("ag.cameraLookAt", client, cameraPosition, lookAtPosition); } -// --------------------------------------------------------------------------- +// =========================================================================== function setTimeMinuteDuration(client, minuteDuration) { triggerNetworkEvent("ag.minuteDuration", client, minuteDuration); } -// --------------------------------------------------------------------------- +// =========================================================================== function updatePositionInPlayerData(client, position) { getPlayerData(client).syncPosition = position; } -// --------------------------------------------------------------------------- +// =========================================================================== function updateHeadingInPlayerData(client, heading) { getPlayerData(client).syncHeading = heading; } -// --------------------------------------------------------------------------- +// =========================================================================== function forcePlayerIntoSkinItemSelect(client, itemId) { getPlayerData(client).itemActionItem = itemId; triggerNetworkEvent("ag.skinSelect", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerSkinItemSelectComplete(client, skinId) { getPlayerCurrentSubAccount(client).skin = skinId; @@ -681,4 +681,124 @@ function playerSkinItemSelectComplete(client, skinId) { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== + +function updatePlayerCash(client) { + triggerNetworkEvent("ag.money", client, getPlayerCurrentSubAccount(client).cash); +} + +// =========================================================================== + +function sendAllPoliceStationBlips(client) { + if(getGameConfig().blipSprites[getServerGame()].policeStation != -1) { + let tempBlips = []; + for(let i in getServerData().policeStations[getServerGame()]) { + tempBlips.push([ + getGameConfig().blipSprites[getServerGame()].policeStation, + getServerData().policeStations[getServerGame()][i].position.x, + getServerData().policeStations[getServerGame()][i].position.y, + getServerData().policeStations[getServerGame()][i].position.z, + 3, + getColourByName("policeBlue"), + ]); + } + triggerNetworkEvent("ag.blips", client, tempBlips); + } +} + +// =========================================================================== + +function sendAllFireStationBlips(client) { + if(getGameConfig().blipSprites[getServerGame()].fireStation != -1) { + let tempBlips = []; + for(let i in getServerData().fireStations[getServerGame()]) { + tempBlips.push([ + getGameConfig().blipSprites[getServerGame()].fireStation, + getServerData().fireStations[getServerGame()][i].position.x, + getServerData().fireStations[getServerGame()][i].position.y, + getServerData().fireStations[getServerGame()][i].position.z, + 3, + getColourByName("firefighterRed"), + ]); + } + triggerNetworkEvent("ag.blips", client, tempBlips); + } +} + +// =========================================================================== + +function sendAllHospitalBlips(client) { + if(getGameConfig().blipSprites[getServerGame()].hospital != -1) { + let tempBlips = []; + for(let i in getServerData().hospitals[getServerGame()]) { + tempBlips.push([ + getGameConfig().blipSprites[getServerGame()].hospital, + getServerData().hospitals[getServerGame()][i].position.x, + getServerData().hospitals[getServerGame()][i].position.y, + getServerData().hospitals[getServerGame()][i].position.z, + 3, + getColourByName("medicPink"), + ]); + } + triggerNetworkEvent("ag.blips", client, tempBlips); + } +} + +// =========================================================================== + +function sendAllAmmunationBlips(client) { + if(getGameConfig().blipSprites[getServerGame()].ammunation != -1) { + let tempBlips = []; + for(let i in getServerData().ammunations[getServerGame()]) { + tempBlips.push([ + getGameConfig().blipSprites[getServerGame()].ammunation, + getServerData().ammunations[getServerGame()][i].position.x, + getServerData().ammunations[getServerGame()][i].position.y, + getServerData().ammunations[getServerGame()][i].position.z, + 3, + 0 + ]); + } + triggerNetworkEvent("ag.blips", client, tempBlips); + } +} + +// =========================================================================== + +function sendAllPayAndSprayBlips(client) { + if(getGameConfig().blipSprites[getServerGame()].payAndSpray != -1) { + let tempBlips = []; + for(let i in getServerData().payAndSprays[getServerGame()]) { + tempBlips.push([ + getGameConfig().blipSprites[getServerGame()].payAndSpray, + getServerData().payAndSprays[getServerGame()][i].position.x, + getServerData().payAndSprays[getServerGame()][i].position.y, + getServerData().payAndSprays[getServerGame()][i].position.z, + 3, + 0 + ]); + } + triggerNetworkEvent("ag.blips", client, tempBlips); + } +} + +// =========================================================================== + +function sendAllFuelStationBlips(client) { + if(getGameConfig().blipSprites[getServerGame()].fuelStation != -1) { + let tempBlips = []; + for(let i in getServerData().fuelStations[getServerGame()]) { + tempBlips.push([ + getGameConfig().blipSprites[getServerGame()].fuelStation, + getServerData().fuelStations[getServerGame()][i].position.x, + getServerData().fuelStations[getServerGame()][i].position.y, + getServerData().fuelStations[getServerGame()][i].position.z, + 3, + getColourByName("burntOrange"), + ]); + } + triggerNetworkEvent("ag.blips", client, tempBlips); + } +} + +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/colour.js b/scripts/server/colour.js index 4ae3160e..9548a5c3 100644 --- a/scripts/server/colour.js +++ b/scripts/server/colour.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: colour.js // DESC: Provides colours, functions and usage // TYPE: Server (JavaScript) @@ -71,7 +71,7 @@ function getColourByName(colourName) { return getServerColours().byName[colourName]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerColour(client) { if(getPlayerData(client) != false) { @@ -87,13 +87,13 @@ function getPlayerColour(client) { return getColourByName("civilianWhite"); } -// --------------------------------------------------------------------------- +// =========================================================================== function getBoolRedGreenInlineColour(boolVal) { return (!boolVal) ? "[#cd3c3c]" : "[#32cd32]"; } -// --------------------------------------------------------------------------- +// =========================================================================== function hexToRgb(h) { return [ @@ -103,10 +103,33 @@ function hexToRgb(h) { ]; } -// --------------------------------------------------------------------------- +// =========================================================================== function rgbToHex(r, g, b) { return "#"+((1<<24)+(r<<16)+(g<<8)+ b).toString(16).slice(1); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== + +function getClientChatColour(client) { + let tempJob = getPlayerCurrentSubAccount(client).job; + if(tempJob != -1) { + if(getPlayerData(client).isWorking) { + return getJobData(tempJob).jobColour; + } + } + return getColourByName("white"); +} + +// =========================================================================== + +function getRandomRGB() { + return toColour.apply(null, [ + getRandom(0, 255), + getRandom(0, 255), + getRandom(0, 255), + 255 + ]); +} + +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/command.js b/scripts/server/command.js index ecf7e068..548eaeb5 100644 --- a/scripts/server/command.js +++ b/scripts/server/command.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: command.js // DESC: Provides command data, functions and usage // TYPE: Server (JavaScript) @@ -23,7 +23,7 @@ let builtInCommands = [ "dumpdoc", ]; -// --------------------------------------------------------------------------- +// =========================================================================== function initCommandScript() { logToConsole(LOG_DEBUG, "[Asshat.Command]: Initializing commands script ..."); @@ -32,7 +32,7 @@ function initCommandScript() { logToConsole(LOG_DEBUG, "[Asshat.Command]: Initialized commands script!"); } -// --------------------------------------------------------------------------- +// =========================================================================== function loadCommands() { return { @@ -363,7 +363,7 @@ function loadCommands() { }; } -// --------------------------------------------------------------------------- +// =========================================================================== function addAllCommandHandlers() { for(let i in serverCommands) { @@ -373,7 +373,7 @@ function addAllCommandHandlers() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getCommand(command) { let commandGroups = getCommands() @@ -389,49 +389,49 @@ function getCommand(command) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getCommandData(command) { return getCommand(command); } -// --------------------------------------------------------------------------- +// =========================================================================== function getCommands() { return serverCommands; } -// --------------------------------------------------------------------------- +// =========================================================================== function commandData(command, handlerFunction, syntaxString = "", requiredStaffFlags = getStaffFlagValue("none"), requireLogin = true, allowOnDiscord = true, usageHelpMessage) { return new serverClasses.commandData(command, handlerFunction, syntaxString, requiredStaffFlags, requireLogin, allowOnDiscord, usageHelpMessage); } -// --------------------------------------------------------------------------- +// =========================================================================== function doesCommandRequireLogin(command) { return getCommand(command).requireLogin; } -// --------------------------------------------------------------------------- +// =========================================================================== function getCommandRequiredPermissions(command) { return getCommand(command).requiredStaffFlags; } -// --------------------------------------------------------------------------- +// =========================================================================== function getCommandSyntaxText(command) { return `/${command} ${getCommand(command).syntaxString}`; } -// --------------------------------------------------------------------------- +// =========================================================================== function isCommandAllowedOnDiscord(command) { return getCommand(command).allowOnDiscord; } -// --------------------------------------------------------------------------- +// =========================================================================== function disableCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -451,7 +451,7 @@ function disableCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function enableCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -471,7 +471,7 @@ function enableCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function disableAllCommandsByType(command, params, client) { if(areParamsEmpty(params)) { @@ -494,7 +494,7 @@ function disableAllCommandsByType(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function enableAllCommandsByType(command, params, client) { if(areParamsEmpty(params)) { @@ -517,14 +517,14 @@ function enableAllCommandsByType(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function onPlayerCommand(event, client, command, params) { processPlayerCommand(command, params, client) } addEventHandler("OnPlayerCommand", onPlayerCommand); -// --------------------------------------------------------------------------- +// =========================================================================== function processPlayerCommand(command, params, client) { if(builtInCommands.indexOf(toLowerCase(command)) != -1) { @@ -578,7 +578,7 @@ function processPlayerCommand(command, params, client) { commandData.handlerFunction(toLowerCase(command), params, client); } -// --------------------------------------------------------------------------- +// =========================================================================== addCommandHandler("cmd", function(command, params, client) { if(!isConsole(client)) { @@ -592,7 +592,7 @@ addCommandHandler("cmd", function(command, params, client) { getCommand(newCommand).handlerFunction(newCommand, newParams, client); }); -// --------------------------------------------------------------------------- +// =========================================================================== function listAllCommands() { for(let i in serverCommands) { @@ -602,7 +602,7 @@ function listAllCommands() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function doesCommandExist(command) { if(getCommandData(command)) { @@ -612,4 +612,4 @@ function doesCommandExist(command) { return false; } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/config.js b/scripts/server/config.js index 6a576e5b..a1ae042c 100644 --- a/scripts/server/config.js +++ b/scripts/server/config.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: config.js // DESC: Provides server configuration // TYPE: Server (JavaScript) @@ -576,7 +576,7 @@ function initConfigScript() { logToConsole(LOG_DEBUG, "[Asshat.Config]: Config script initialized!"); } -// --------------------------------------------------------------------------- +// =========================================================================== function loadServerConfigFromGameAndPort(gameId, port) { let dbConnection = connectToDatabase(); @@ -596,7 +596,7 @@ function loadServerConfigFromGameAndPort(gameId, port) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadServerConfigFromId(tempServerId) { let dbConnection = connectToDatabase(); @@ -714,7 +714,7 @@ function setMinuteDurationCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function setWeatherCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -738,7 +738,7 @@ function setWeatherCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function setSnowingCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -760,7 +760,7 @@ function setSnowingCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleServerLogoCommand(command, params, client) { getServerConfig().useLogo = !getServerConfig().useLogo; @@ -772,7 +772,7 @@ function toggleServerLogoCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleAntiCheatScriptWhitelist(command, params, client) { getServerConfig().antiCheat.gameScriptWhiteListEnabled = !getServerConfig().antiCheat.gameScriptWhiteListEnabled; @@ -784,7 +784,7 @@ function toggleAntiCheatScriptWhitelist(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleAntiCheatScriptBlacklist(command, params, client) { getServerConfig().antiCheat.gameScriptBlackListEnabled = !getServerConfig().antiCheat.gameScriptBlackListEnabled; @@ -796,7 +796,7 @@ function toggleAntiCheatScriptBlacklist(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleServerGUICommand(command, params, client) { getServerConfig().useGUI = !getServerConfig().useGUI; @@ -806,7 +806,7 @@ function toggleServerGUICommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function reloadServerConfigurationCommand(command, params, client) { serverConfig = loadServerConfigFromGameAndPort(server.game, server.port); @@ -818,7 +818,7 @@ function reloadServerConfigurationCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function reloadEmailConfigurationCommand(command, params, client) { emailConfig = loadEmailConfigFromGameAndPort(server.game, server.port); @@ -828,7 +828,7 @@ function reloadEmailConfigurationCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function reloadEmailConfigurationCommand(command, params, client) { emailConfig = loadEmailConfig(); @@ -836,7 +836,7 @@ function reloadEmailConfigurationCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function reloadDatabaseConfigurationCommand(command, params, client) { //if(!databaseInUse) { diff --git a/scripts/server/const.js b/scripts/server/const.js index d7a07b71..2a6e7648 100644 --- a/scripts/server/const.js +++ b/scripts/server/const.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: const.js // DESC: Provides constants // TYPE: Server (JavaScript) diff --git a/scripts/server/core.js b/scripts/server/core.js index 1bb91678..5fbd6e8b 100644 --- a/scripts/server/core.js +++ b/scripts/server/core.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: core.js // DESC: Provides core data structures, function, and operations // TYPE: Server (JavaScript) diff --git a/scripts/server/database.js b/scripts/server/database.js index f38b1d45..9b88e4c2 100644 --- a/scripts/server/database.js +++ b/scripts/server/database.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: database.js // DESC: Provides database handling, functions and usage // TYPE: Server (JavaScript) diff --git a/scripts/server/developer.js b/scripts/server/developer.js index b85a7842..480364d6 100644 --- a/scripts/server/developer.js +++ b/scripts/server/developer.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: developer.js // DESC: Provides developer operation, commands, functions and usage // TYPE: Server (JavaScript) @@ -22,7 +22,7 @@ function initDeveloperScript() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function p(params) { return getPlayerFromParams(params); @@ -88,7 +88,7 @@ function pvd(params) { return getVehicleData(getPlayerVehicle(getPlayerFromParams(params))); } -// --------------------------------------------------------------------------- +// =========================================================================== function addServerLogLevelCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -126,7 +126,7 @@ function addServerLogLevelCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function removeServerLogLevelCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -164,7 +164,7 @@ function removeServerLogLevelCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function simulateCommandForPlayerCommand(command, params, client) { if(getCommand(command).requireLogin) { @@ -205,7 +205,7 @@ function simulateCommandForPlayerCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function simulateCommandForAllPlayersCommand(command, params, client) { if(getCommand(command).requireLogin) { @@ -245,7 +245,7 @@ function simulateCommandForAllPlayersCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function executeServerCodeCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -267,7 +267,7 @@ function executeServerCodeCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function executeClientCodeCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -296,7 +296,7 @@ function executeClientCodeCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveAllServerDataCommand(command, params, client) { messageAdmins(`[#FF9900]Saving all server data to database ...`); @@ -305,14 +305,14 @@ function saveAllServerDataCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function testEmailCommand(command, params, client) { sendEmail(params, "Player", "Test email", "Just testing the SMTP module for the server!"); return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function restartGameModeCommand(command, params, client) { messagePlayerNormal(null, `[#FF9900]The server game mode is restarting!`, getColourByName("orange")); @@ -321,7 +321,7 @@ function restartGameModeCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function clientRunCodeFail(client, returnTo, code) { let returnClient = getClientFromIndex(returnTo); @@ -333,7 +333,7 @@ function clientRunCodeFail(client, returnTo, code) { messagePlayerNormal(returnClient, `Code: ${code}`, getColourByName("yellow")); } -// --------------------------------------------------------------------------- +// =========================================================================== function clientRunCodeSuccess(client, returnTo, returnVal, code) { let returnClient = getClientFromIndex(returnTo); @@ -346,7 +346,7 @@ function clientRunCodeSuccess(client, returnTo, returnVal, code) { messagePlayerNormal(returnClient, `Returns: ${returnVal}`, getColourByName("yellow")); } -// --------------------------------------------------------------------------- +// =========================================================================== function submitIdea(client, ideaText) { let position = (getPlayerVehicle(client)) ? getVehiclePosition(getPlayerVehicle(client)) : getPlayerPosition(client); @@ -367,7 +367,7 @@ function submitIdea(client, ideaText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function submitBugReport(client, bugText) { let position = (getPlayerVehicle(client)) ? getVehiclePosition(getPlayerVehicle(client)) : getPlayerPosition(client); @@ -388,10 +388,10 @@ function submitBugReport(client, bugText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function isDevelopmentServer() { return intToBool(server.getCVar("devserver") || 0); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/discord.js b/scripts/server/discord.js index a64ca5f6..833c350a 100644 --- a/scripts/server/discord.js +++ b/scripts/server/discord.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: discord.js // DESC: Provides discord bridging and connection functions and usage // TYPE: Server (JavaScript) @@ -31,7 +31,7 @@ addEventHandler("OnDiscordCommand", function(command, params, discordUser) { }); */ -// --------------------------------------------------------------------------- +// =========================================================================== function messageDiscordUser(discordUser, messageText) { let socketData = JSON.stringify({ @@ -44,7 +44,7 @@ function messageDiscordUser(discordUser, messageText) { sendDiscordSocketData(socketData); } -// --------------------------------------------------------------------------- +// =========================================================================== function sendDiscordSocketData(socketData) { if(!getDiscordSocket()) { @@ -54,7 +54,7 @@ function sendDiscordSocketData(socketData) { getDiscordSocket().send(module.hash.encodeBase64(socketData) + "\r\n"); } -// --------------------------------------------------------------------------- +// =========================================================================== function isClientFromDiscord(client) { if(client == null) { @@ -68,34 +68,34 @@ function isClientFromDiscord(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getDiscordSocket() { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getDiscordUserData(discordUserId) { return loadAccountFromDiscordUserId(discordUserId); } -// --------------------------------------------------------------------------- +// =========================================================================== function messageDiscordChatChannel(message) { let gameEmoji = getGameEmojiForDiscord(getServerGame()); } -// --------------------------------------------------------------------------- +// =========================================================================== function messageDiscordAdminChannel(message) { let gameEmoji = getGameEmojiForDiscord(getServerGame()); } -// --------------------------------------------------------------------------- +// =========================================================================== function messageDiscordEventChannel(message) { let gameEmoji = getGameEmojiForDiscord(getServerGame()); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/economy.js b/scripts/server/economy.js new file mode 100644 index 00000000..631bbf3c --- /dev/null +++ b/scripts/server/economy.js @@ -0,0 +1,23 @@ +// =========================================================================== +// Asshat-Gaming Roleplay +// https://github.com/VortrexFTW/gtac_asshat_rp +// Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) +// =========================================================================== +// FILE: economy.js +// DESC: Provides economy/financial utils, functions and usage +// TYPE: Server (JavaScript) +// =========================================================================== + +// =========================================================================== + +function getTimeDisplayUntilPlayerPayDay(client) { + return getTimeDifferenceDisplay(sdl.ticks-getPlayerData(client).payDayTickStart); +} + +// =========================================================================== + +function applyServerInflationMultiplier(value) { + return value*getServerConfig().inflationMultiplier; +} + +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/email.js b/scripts/server/email.js index 1211a59c..01830b2e 100644 --- a/scripts/server/email.js +++ b/scripts/server/email.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: email.js // DESC: Provides email handling, functions and usage // TYPE: Server (JavaScript) diff --git a/scripts/server/event.js b/scripts/server/event.js index c07e4c6f..2cf0d604 100644 --- a/scripts/server/event.js +++ b/scripts/server/event.js @@ -2,13 +2,13 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: event.js // DESC: Provides handlers for built in GTAC and Asshat-Gaming created events // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function initEventScript() { logToConsole(LOG_DEBUG, "[Asshat.Event]: Initializing event script ..."); @@ -16,7 +16,7 @@ function initEventScript() { logToConsole(LOG_DEBUG, "[Asshat.Event]: Event script initialized!"); } -// --------------------------------------------------------------------------- +// =========================================================================== function addAllEventHandlers() { addEventHandler("onResourceStart", onResourceStart); @@ -35,7 +35,7 @@ function addAllEventHandlers() { addEventHandler("onPedExitVehicle", onPedExitingVehicle); } -// --------------------------------------------------------------------------- +// =========================================================================== function onPlayerConnect(event, ipAddress, port) { logToConsole(LOG_DEBUG, `[Asshat.Event] Client connecting (IP: ${ipAddress})`); @@ -45,19 +45,19 @@ function onPlayerConnect(event, ipAddress, port) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function onPlayerJoin(event, client) { fadeCamera(client, true, 1.0); } -// --------------------------------------------------------------------------- +// =========================================================================== function onPlayerJoined(event, client) { } -// --------------------------------------------------------------------------- +// =========================================================================== function onPlayerQuit(event, client, quitReasonId) { logToConsole(LOG_DEBUG, `[Asshat.Event] ${getPlayerDisplayForConsole(client)} disconnected (${disconnectReasons[quitReasonId]}[${quitReasonId}])`); @@ -69,7 +69,7 @@ function onPlayerQuit(event, client, quitReasonId) { messagePlayerNormal(null, `👋 ${client.name} has left the server (${disconnectReasons[quitReasonId]})`, getColourByName("softYellow")); } -// --------------------------------------------------------------------------- +// =========================================================================== function onPlayerChat(event, client, messageText) { event.preventDefault(); @@ -85,7 +85,7 @@ function onPlayerChat(event, client, messageText) { messagePlayerNormal(null, `${getCharacterFullName(client)}: [#FFFFFF]${messageText}`, getPlayerColour(client)); } -// --------------------------------------------------------------------------- +// =========================================================================== function onProcess(event, deltaTime) { checkVehicleBuying(); @@ -94,7 +94,7 @@ function onProcess(event, deltaTime) { //checkVehicleBurning(); } -// --------------------------------------------------------------------------- +// =========================================================================== function onPedEnteringVehicle(event, ped, vehicle, seat) { if(ped.isType(ELEMENT_PLAYER)) { @@ -122,7 +122,7 @@ function onPedEnteringVehicle(event, ped, vehicle, seat) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function onPedExitingVehicle(event, ped, vehicle) { if(ped.isType(ELEMENT_PLAYER)) { @@ -131,7 +131,7 @@ function onPedExitingVehicle(event, ped, vehicle) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function onResourceStart(event, resource) { logToConsole(LOG_WARN, `[Asshat.Event] ${resource.name} started!`); @@ -141,7 +141,7 @@ function onResourceStart(event, resource) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function onResourceStop(event, resource) { logToConsole(LOG_WARN, `[Asshat.Event] ${resource.name} stopped!`); @@ -155,19 +155,19 @@ function onResourceStop(event, resource) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function onPlayerEnteredSphere(client, sphere) { } -// --------------------------------------------------------------------------- +// =========================================================================== function onPlayerExitedSphere(client, sphere) { } -// --------------------------------------------------------------------------- +// =========================================================================== async function onPlayerEnteredVehicle(client) { if(client.player == null) { @@ -238,7 +238,7 @@ async function onPlayerEnteredVehicle(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function onPlayerExitedVehicle(client) { getPlayerData(client).pedState = AG_PEDSTATE_READY; @@ -260,7 +260,7 @@ function onPlayerExitedVehicle(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function onPlayerDeath(client, position) { getPlayerData(client).pedState = AG_PEDSTATE_DEAD; @@ -293,7 +293,7 @@ function onPlayerDeath(client, position) { }, 1000); } -// --------------------------------------------------------------------------- +// =========================================================================== function onPedSpawn(ped) { //if(ped.type == ELEMENT_PLAYER) { @@ -301,7 +301,7 @@ function onPedSpawn(ped) { //} } -// --------------------------------------------------------------------------- +// =========================================================================== function onPlayerSpawn(client) { logToConsole(LOG_DEBUG, `[Asshat.Event] Checking for ${getPlayerDisplayForConsole(client)}'s player ped`); @@ -399,4 +399,4 @@ function onPlayerSpawn(client) { getPlayerData(client).pedState = AG_PEDSTATE_READY; } -// --------------------------------------------------------------------------- +// =========================================================================== diff --git a/scripts/server/fishing.js b/scripts/server/fishing.js index f69e86c8..65ea2cdd 100644 --- a/scripts/server/fishing.js +++ b/scripts/server/fishing.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: fishing.js // DESC: Provides fishing functions and commands // TYPE: Server (JavaScript) @@ -37,7 +37,7 @@ let fishingLocations = [ ], ]; -// --------------------------------------------------------------------------- +// =========================================================================== let fishingCatchables = [ // Fish @@ -65,4 +65,4 @@ let fishingCatchables = [ ["Soggy Dildo", 0, 0, 0, 0], ]; -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/gui.js b/scripts/server/gui.js index b6c04b53..c2b574a5 100644 --- a/scripts/server/gui.js +++ b/scripts/server/gui.js @@ -2,13 +2,13 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: gui.js // DESC: Provides GUI functions and usage // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function playerPromptAnswerNo(client) { if(getPlayerData(client).promptType == AG_PROMPT_NONE) { @@ -43,7 +43,7 @@ function playerPromptAnswerNo(client) { getPlayerData(client).promptType = AG_PROMPT_NONE; } -// --------------------------------------------------------------------------- +// =========================================================================== function playerPromptAnswerYes(client) { if(getPlayerData(client).promptType == AG_PROMPT_NONE) { @@ -87,22 +87,22 @@ function playerPromptAnswerYes(client) { getPlayerData(client).promptType = AG_PROMPT_NONE; } -// --------------------------------------------------------------------------- +// =========================================================================== function canPlayerUseGUI(client) { return (getServerConfig().useGUI && doesPlayerHaveGUIEnabled(client)); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerPromptAnswerYesCommand(command, params, client) { playerPromptAnswerYes(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerPromptAnswerNoCommand(command, params, client) { playerPromptAnswerNo(client); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/help.js b/scripts/server/help.js index 4204eec0..2de9d4f7 100644 --- a/scripts/server/help.js +++ b/scripts/server/help.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: help.js // DESC: Provides update info, help commands, and documentation // TYPE: Server (JavaScript) diff --git a/scripts/server/house.js b/scripts/server/house.js index c7338af6..6c80be92 100644 --- a/scripts/server/house.js +++ b/scripts/server/house.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: house.js // DESC: Provides house commands, functions, and usage // TYPE: Server (JavaScript) @@ -25,7 +25,7 @@ function initHouseScript() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadHousesFromDatabase() { logToConsole(LOG_DEBUG, "[Asshat.House]: Loading houses from database ..."); @@ -51,7 +51,7 @@ function loadHousesFromDatabase() { return tempHouses; } -// --------------------------------------------------------------------------- +// =========================================================================== function createHouseCommand(command, params, client) { let tempHouseData = createHouse(params, getPlayerPosition(client), toVector3(0.0, 0.0, 0.0), getGameConfig().pickupModels[getServerGame()].house, getGameConfig().blipSprites[getServerGame()].house, getPlayerInterior(client), getPlayerDimension(client)); @@ -65,7 +65,7 @@ function createHouseCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]created house [#11CC11]${tempHouseData.description}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function lockUnlockHouseCommand(command, params, client) { let houseId = toInteger((isPlayerInAnyHouse(client)) ? getPlayerHouse(client) : getClosestHouseEntrance(getPlayerPosition(client))); @@ -80,7 +80,7 @@ function lockUnlockHouseCommand(command, params, client) { messagePlayerSuccess(client, `House '${getHouseData(houseId).description}' ${getLockedUnlockedTextFromBool((getHouseData(houseId).locked))}!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setHouseDescriptionCommand(command, params, client) { let newHouseDescription = toString(params); @@ -98,7 +98,7 @@ function setHouseDescriptionCommand(command, params, client) { messageAdmins(`${client.name} renamed house [#11CC11]${oldDescription} [#FFFFFF]to [#11CC11]${getHouseData(houseId).description}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setHouseOwnerCommand(command, params, client) { let newHouseOwner = getPlayerFromParams(params); @@ -119,7 +119,7 @@ function setHouseOwnerCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set house [#11CC11]${getHouseData(houseId).description} [#FFFFFF]owner to [#AAAAAA]${newHouseOwner.name}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setHouseClanCommand(command, params, client) { let houseId = toInteger((isPlayerInAnyHouse(client)) ? getPlayerHouse(client) : getClosestHouseEntrance(getPlayerPosition(client))); @@ -141,7 +141,7 @@ function setHouseClanCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set house [#11CC11]${getHouseData(houseId).description} [#FFFFFF]owner to the [#FF9900]${getClanData(clanId).name} [#FFFFFF]clan!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setHousePickupCommand(command, params, client) { let typeParam = params || "house"; @@ -175,7 +175,7 @@ function setHousePickupCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set house [#11CC11]${getHouseData(houseId).description} [#FFFFFF]pickup display to [#AAAAAA]${toLowerCase(typeParam)}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setHouseInteriorTypeCommand(command, params, client) { let splitParams = params.split(" "); @@ -225,7 +225,7 @@ function setHouseInteriorTypeCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set house [#11CC11]${getHouseData(houseId).description} [#FFFFFF]interior type to [#AAAAAA]${toLowerCase(typeParam)}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setHouseBlipCommand(command, params, client) { let typeParam = params || "house"; @@ -259,7 +259,7 @@ function setHouseBlipCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set house [#11CC11]${getHouseData(houseId).description} [#FFFFFF]blip display to [#AAAAAA]${toLowerCase(typeParam)}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function moveHouseEntranceCommand(command, params, client) { let houseId = toInteger((isPlayerInAnyHouse(client)) ? getPlayerHouse(client) : getClosestHouseEntrance(getPlayerPosition(client))); @@ -282,7 +282,7 @@ function moveHouseEntranceCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]moved house [#11CC11]${getHouseData(houseId).description} [#FFFFFF]entrance to their position`); } -// --------------------------------------------------------------------------- +// =========================================================================== function moveHouseExitCommand(command, params, client) { let houseId = toInteger((isPlayerInAnyHouse(client)) ? getPlayerHouse(client) : getClosestHouseEntrance(getPlayerPosition(client))); @@ -305,7 +305,7 @@ function moveHouseExitCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]moved house [#11CC11]${getHouseData(houseId).description} [#FFFFFF]exit to their position`); } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteHouseCommand(command, params, client) { let houseId = toInteger((isPlayerInAnyHouse(client)) ? getPlayerHouse(client) : getClosestHouseEntrance(getPlayerPosition(client))); @@ -320,7 +320,7 @@ function deleteHouseCommand(command, params, client) { deleteHouse(houseId, getPlayerData(client).accountData.databaseId); } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteHouse(houseId, whoDeleted = 0) { let tempHouseData = getServerData().houses[houseId]; @@ -347,7 +347,7 @@ function deleteHouse(houseId, whoDeleted = 0) { getServerData().houses.splice(houseId, 1); } -// --------------------------------------------------------------------------- +// =========================================================================== function removePlayerFromHouses(client) { if(isPlayerInAnyHouse(client)) { @@ -355,7 +355,7 @@ function removePlayerFromHouses(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createHouse(description, entrancePosition, exitPosition, entrancePickupModel = -1, entranceBlipModel = -1, entranceInteriorId = 0, entranceVirtualWorld = 0, exitInteriorId = -1, exitVirtualWorld = -1, exitPickupModel = -1, exitBlipModel = -1) { let tempHouseData = new serverClasses.houseData(false); @@ -378,7 +378,7 @@ function createHouse(description, entrancePosition, exitPosition, entrancePickup return tempHouseData; } -// --------------------------------------------------------------------------- +// =========================================================================== function getHouseDataFromDatabaseId(databaseId) { let matchingHouses = getServerData().houses.filter(b => b.databaseId == databaseId) @@ -388,7 +388,7 @@ function getHouseDataFromDatabaseId(databaseId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getClosestHouseEntrance(position) { let houses = getServerData().houses; @@ -401,7 +401,7 @@ function getClosestHouseEntrance(position) { return closest; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerHouse(client) { if(doesEntityDataExist(client, "ag.inHouse")) { @@ -411,7 +411,7 @@ function getPlayerHouse(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveAllHousesToDatabase() { for(let i in getServerData().houses) { @@ -419,7 +419,7 @@ function saveAllHousesToDatabase() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function saveHouseToDatabase(houseId) { let tempHouseData = getServerData().houses[houseId]; @@ -472,7 +472,7 @@ function saveHouseToDatabase(houseId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllHousePickups() { for(let i in getServerData().houses) { @@ -481,7 +481,7 @@ function createAllHousePickups() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllHouseBlips() { for(let i in getServerData().houses) { @@ -490,7 +490,7 @@ function createAllHouseBlips() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createHouseEntrancePickup(houseId) { if(getHouseData(houseId).entrancePickupModel != -1) { @@ -515,7 +515,7 @@ function createHouseEntrancePickup(houseId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createHouseEntranceBlip(houseId) { if(getHouseData(houseId).entranceBlipModel != -1) { @@ -534,7 +534,7 @@ function createHouseEntranceBlip(houseId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createHouseExitPickup(houseId) { if(getHouseData(houseId).hasInterior) { @@ -556,7 +556,7 @@ function createHouseExitPickup(houseId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createHouseExitBlip(houseId) { if(getHouseData(houseId).hasInterior) { @@ -577,7 +577,7 @@ function createHouseExitBlip(houseId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getHouseOwnerTypeText(ownerType) { switch(ownerType) { @@ -601,7 +601,7 @@ function getHouseOwnerTypeText(ownerType) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getHouseInfoCommand(command, params, client) { let houseId = (isPlayerInAnyHouse(client)) ? getPlayerHouse(client) : getClosestHouseEntrance(getPlayerPosition(client)); @@ -642,13 +642,13 @@ function getHouseInfoCommand(command, params, client) { messagePlayerNormal(client, `🏠 [#11CC11][House Info] [#FFFFFF]Description: [#AAAAAA]${getHouseData(houseId).description}, [#FFFFFF]Owner: [#AAAAAA]${ownerName} (${getHouseOwnerTypeText(getHouseData(houseId).ownerType)}), [#FFFFFF]Locked: [#AAAAAA]${getYesNoFromBool(intToBool(getHouseData(houseId).locked))}, [#FFFFFF]ID: [#AAAAAA]${houseId}/${getHouseData(houseId).databaseId}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerInAnyHouse(client) { return doesEntityDataExist(client, "ag.inHouse"); } -// --------------------------------------------------------------------------- +// =========================================================================== function getHouseData(houseId) { if(typeof getServerData().houses[houseId] != "undefined") { @@ -656,13 +656,13 @@ function getHouseData(houseId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function doesHouseHaveInterior(houseId) { return getHouseData(houseId).hasInterior; } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteHouseEntrancePickup(houseId) { if(getHouseData(houseId).entrancePickup != null) { @@ -672,7 +672,7 @@ function deleteHouseEntrancePickup(houseId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteHouseExitPickup(houseId) { if(getHouseData(houseId).exitPickup != null) { @@ -682,7 +682,7 @@ function deleteHouseExitPickup(houseId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteHouseEntranceBlip(houseId) { if(getHouseData(houseId).entranceBlip != null) { @@ -692,7 +692,7 @@ function deleteHouseEntranceBlip(houseId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteHouseExitBlip(houseId) { if(getHouseData(houseId).exitBlip != null) { @@ -702,7 +702,7 @@ function deleteHouseExitBlip(houseId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function reloadAllHousesCommand(command, params, client) { let clients = getClients(); @@ -727,7 +727,7 @@ function reloadAllHousesCommand(command, params, client) { messageAdminAction(`All houses have been reloaded by an admin!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function exitHouse(client) { let houseId = getPlayerHouse(client); @@ -739,7 +739,7 @@ function exitHouse(client) { removeEntityData(client, "ag.inHouse"); } -// --------------------------------------------------------------------------- +// =========================================================================== function setAllHouseIndexes() { for(let i in getServerData().houses) { @@ -747,4 +747,4 @@ function setAllHouseIndexes() { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/item.js b/scripts/server/item.js index e64f401f..30c47d33 100644 --- a/scripts/server/item.js +++ b/scripts/server/item.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: item.js // DESC: Provides item functions and usage // TYPE: Server (JavaScript) @@ -18,7 +18,7 @@ function initItemScript() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadItemsFromDatabase() { let tempItems = []; @@ -40,7 +40,7 @@ function loadItemsFromDatabase() { return tempItems; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadItemTypesFromDatabase() { let tempItemTypes = []; @@ -63,7 +63,7 @@ function loadItemTypesFromDatabase() { return tempItemTypes; } -// --------------------------------------------------------------------------- +// =========================================================================== function createItem(itemTypeId, value, ownerType, ownerId, amount=1) { let tempItemData = new serverClasses.itemData(false); @@ -80,7 +80,7 @@ function createItem(itemTypeId, value, ownerType, ownerId, amount=1) { return index; } -// --------------------------------------------------------------------------- +// =========================================================================== function createGroundItem(itemTypeId, value, position, dimension = 0) { let itemIndex = createItem(itemTypeId, value, AG_ITEM_OWNER_GROUND, 0); @@ -90,7 +90,7 @@ function createGroundItem(itemTypeId, value, position, dimension = 0) { return itemIndex; } -// --------------------------------------------------------------------------- +// =========================================================================== function createGroundItemObject(itemId) { if(!getItemData(itemId)) { @@ -110,7 +110,7 @@ function createGroundItemObject(itemId) { getServerData().groundItemCache.push(itemId); } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteGroundItemObject(itemId) { if(getServerData().groundItemCache.indexOf(itemId) != -1) { @@ -123,7 +123,7 @@ function deleteGroundItemObject(itemId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createGroundItemCommand(command, params, client) { let splitParams = params.split(" "); @@ -144,7 +144,7 @@ function createGroundItemCommand(command, params, client) { messagePlayerSuccess(client, `You created a ${getItemTypeData(itemType).name} on the ground at your position`); } -// --------------------------------------------------------------------------- +// =========================================================================== function createItemCommand(command, params, client) { let splitParams = params.split(" "); @@ -165,7 +165,7 @@ function createItemCommand(command, params, client) { messagePlayerSuccess(client, `You created a ${getItemTypeData(itemType).name} on the ground at your position`); } -// --------------------------------------------------------------------------- +// =========================================================================== function useItemCommand(command, params, client) { let hotBarSlot = getPlayerData(client).activeHotBarSlot; @@ -207,7 +207,7 @@ function useItemCommand(command, params, client) { clearPlayerItemActionStateAfterDelay(client, getGlobalConfig().itemActionStateReset); } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteGroundItemCommand(command, params, client) { let itemId = getClosestItemOnGround(getPlayerPosition(client)); @@ -229,7 +229,7 @@ function deleteGroundItemCommand(command, params, client) { messagePlayerSuccess(client, `You deleted the ${tempName} item near you`); } -// --------------------------------------------------------------------------- +// =========================================================================== function pickupItemCommand(command, params, client) { let itemId = getClosestItemOnGround(getPlayerPosition(client)); @@ -268,7 +268,7 @@ function pickupItemCommand(command, params, client) { clearPlayerItemActionStateAfterDelay(client, getGlobalConfig().itemActionStateReset); } -// --------------------------------------------------------------------------- +// =========================================================================== function dropItemCommand(command, params, client) { let hotBarSlot = getPlayerData(client).activeHotBarSlot; @@ -311,7 +311,7 @@ function dropItemCommand(command, params, client) { clearPlayerItemActionStateAfterDelay(client, getGlobalConfig().itemActionStateReset); } -// --------------------------------------------------------------------------- +// =========================================================================== function putItemCommand(command, params, client) { let hotBarSlot = toInteger(params); @@ -341,7 +341,7 @@ function putItemCommand(command, params, client) { clearPlayerItemActionStateAfterDelay(client, getGlobalConfig().itemActionStateReset); } -// --------------------------------------------------------------------------- +// =========================================================================== function takeItemCommand(command, params, client) { let firstSlot = getPlayerFirstEmptyHotBarSlot(client); @@ -371,7 +371,7 @@ function takeItemCommand(command, params, client) { clearPlayerItemActionStateAfterDelay(client, getGlobalConfig().itemActionStateReset); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerUseItem(client, hotBarSlot) { let closestPlayer; @@ -518,7 +518,7 @@ function playerUseItem(client, hotBarSlot) { updatePlayerHotBar(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerDropItem(client, hotBarSlot) { let itemId = getPlayerData(client).hotBarItems[hotBarSlot]; @@ -539,7 +539,7 @@ function playerDropItem(client, hotBarSlot) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function playerPutItem(client, hotBarSlot) { let itemId = getPlayerData(client).hotBarItems[hotBarSlot]; @@ -576,7 +576,7 @@ function playerPutItem(client, hotBarSlot) { updatePlayerHotBar(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerPickupItem(client, itemId) { meActionToNearbyPlayers(client, `picks up ${getProperDeterminerForName(getItemName(itemId))} ${getItemName(itemId)} from the ground`); @@ -594,7 +594,7 @@ function playerPickupItem(client, itemId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function playerTakeItem(client, itemId) { switch(bestOwner[1]) { @@ -625,7 +625,7 @@ function playerTakeItem(client, itemId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function playerSwitchItem(client, newHotBarSlot) { if(newHotBarSlot < -1 || newHotBarSlot > 9) { @@ -698,7 +698,7 @@ function playerSwitchItem(client, newHotBarSlot) { updatePlayerHotBar(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerSwitchHotBarSlotCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -734,7 +734,7 @@ function playerSwitchHotBarSlotCommand(command, params, client) { clearPlayerItemActionStateAfterDelay(client, getGlobalConfig().itemActionStateReset); } -// --------------------------------------------------------------------------- +// =========================================================================== function getClosestItemOnGround(position) { let items = getServerData().groundItemCache; @@ -748,7 +748,7 @@ function getClosestItemOnGround(position) { return items[closest]; } -// --------------------------------------------------------------------------- +// =========================================================================== function setItemDataIndexes() { for(let i in getServerData().items) { @@ -761,7 +761,7 @@ function setItemDataIndexes() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllGroundItemObjects() { for(let i in getServerData().groundItemCache) { @@ -769,19 +769,19 @@ function createAllGroundItemObjects() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function showItemInventoryToPlayer(client, itemIndex) { } -// --------------------------------------------------------------------------- +// =========================================================================== function syncPlayerInventoryWeapons(client) { } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerFirstEmptyHotBarSlot(client) { for(let i in getPlayerData(client).hotBarItems) { @@ -793,7 +793,7 @@ function getPlayerFirstEmptyHotBarSlot(client) { return -1; } -// --------------------------------------------------------------------------- +// =========================================================================== function cachePlayerHotBarItems(client) { for(let i in getServerData().items) { @@ -808,7 +808,7 @@ function cachePlayerHotBarItems(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteItem(itemId) { switch(getItemData(itemId).ownerType) { @@ -866,7 +866,7 @@ function deleteItem(itemId) { getServerData().items.splice(itemId, 1); } -// --------------------------------------------------------------------------- +// =========================================================================== function getBestNewOwnerToPutItem(client) { let closestDistance = 100.0; @@ -890,7 +890,7 @@ function getBestNewOwnerToPutItem(client) { return [AG_ITEM_OWNER_NONE, 0]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getBestItemToTake(client, slot) { let closestDistance = 100.0; @@ -931,7 +931,7 @@ function getBestItemToTake(client, slot) { return [ownerType, ownerId, itemId]; } -// --------------------------------------------------------------------------- +// =========================================================================== function listPlayerInventoryCommand(command, params, client) { let itemDisplay = []; @@ -966,7 +966,7 @@ function listPlayerInventoryCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function listBusinessStorageInventoryCommand(command, params, client) { let businessId = (isPlayerInAnyBusiness(client)) ? getPlayerBusiness(client) : getClosestBusinessEntrance(getPlayerPosition(client)); @@ -1003,7 +1003,7 @@ function listBusinessStorageInventoryCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function listBusinessFloorInventoryCommand(command, params, client) { let businessId = (isPlayerInAnyBusiness(client)) ? getPlayerBusiness(client) : getClosestBusinessEntrance(getPlayerPosition(client)); @@ -1040,7 +1040,7 @@ function listBusinessFloorInventoryCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function listHouseInventoryCommand(command, params, client) { let houseId = (isPlayerInAnyHouse(client)) ? getPlayerHouse(client) : getClosestHouseEntrance(getPlayerPosition(client)); @@ -1077,7 +1077,7 @@ function listHouseInventoryCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function listItemInventoryCommand(command, params, client) { let itemId = getClosestItemOnGround(getPlayerPosition(client)); @@ -1114,19 +1114,19 @@ function listItemInventoryCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getItemData(itemId) { return getServerData().items[itemId]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getItemTypeData(itemTypeId) { return getServerData().itemTypes[itemTypeId]; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveAllItemsToDatabase() { for(let i in getServerData().items) { @@ -1136,7 +1136,7 @@ function saveAllItemsToDatabase() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function saveItemToDatabase(itemId) { let tempItemData = getServerData().items[itemId]; @@ -1159,7 +1159,7 @@ function saveItemToDatabase(itemId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function storePlayerItemsInJobLocker(client) { for(let i in getPlayerData(client).hotBarItems) { @@ -1172,7 +1172,7 @@ function storePlayerItemsInJobLocker(client) { updatePlayerHotBar(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function restorePlayerJobLockerItems(client) { for(let i in getPlayerData(client).jobEquipmentCache) { @@ -1191,7 +1191,7 @@ function restorePlayerJobLockerItems(client) { updatePlayerHotBar(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function getItemTypeIndexFromDatabaseId(databaseId) { for(let i in getServerData().itemTypes) { @@ -1201,7 +1201,7 @@ function getItemTypeIndexFromDatabaseId(databaseId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function playerItemActionDelayComplete(client) { switch(getPlayerData(client).itemActionState) { @@ -1234,13 +1234,13 @@ function playerItemActionDelayComplete(client) { getPlayerData(client).itemActionItem = -1; } -// --------------------------------------------------------------------------- +// =========================================================================== function getItemValueDisplayForItem(itemId) { return getItemValueDisplay(getItemData(itemId).itemTypeIndex, getItemData(itemId).value); } -// --------------------------------------------------------------------------- +// =========================================================================== function getItemValueDisplay(itemType, value) { if(getItemTypeData(itemType).useType == AG_ITEM_USETYPE_SKIN) { @@ -1259,7 +1259,7 @@ function getItemValueDisplay(itemType, value) { return "unknown"; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerFirstItemSlotByUseType(client, useType) { for(let i in getPlayerData(client).hotBarItems) { @@ -1275,7 +1275,7 @@ function getPlayerFirstItemSlotByUseType(client, useType) { return -1; } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleItemEnabledCommand(command, params, client) { if(!getPlayerActiveItem(client)) { @@ -1292,7 +1292,7 @@ function toggleItemEnabledCommand(command, params, client) { messagePlayerNormal(client, `You turned ${getBoolRedGreenInlineColour(getItemData(itemIndex).enabled)}${toUpperCase(getOnOffFromBool(getItemData(itemIndex).enabled))} [#FFFFFF]your ${getItemName(getPlayerActiveItem(client))} in slot ${getPlayerActiveItemSlot(client)} [#AAAAAA](${getItemValueDisplayForItem(getPlayerActiveItem(client))}`) } -// --------------------------------------------------------------------------- +// =========================================================================== function getItemName(itemId) { if(getItemData(itemId)) { @@ -1300,7 +1300,7 @@ function getItemName(itemId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerActiveItem(client) { if(getPlayerData(client).activeHotBarSlot != -1) { @@ -1310,7 +1310,7 @@ function getPlayerActiveItem(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerItemSlot(client, slot) { if(slot != -1) { @@ -1320,7 +1320,7 @@ function getPlayerItemSlot(client, slot) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function resyncWeaponItemAmmo(client) { if(getPlayerData(client).currentHotBarItem != -1) { @@ -1338,19 +1338,19 @@ function resyncWeaponItemAmmo(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getOrderPriceForItemType(itemType) { return getItemTypeData(itemType).orderPrice*getServerConfig().inflationMultiplier*getItemTypeData(itemType).demandMultiplier*getItemTypeData(itemType).supplyMultiplier*getItemTypeData(itemType).riskMultiplier; } -// --------------------------------------------------------------------------- +// =========================================================================== function clearPlayerItemActionState(client) { getPlayerData(client).itemActionState = AG_ITEM_ACTION_NONE; } -// --------------------------------------------------------------------------- +// =========================================================================== function clearPlayerItemActionStateAfterDelay(client, delay) { setTimeout(function() { @@ -1358,4 +1358,4 @@ function clearPlayerItemActionStateAfterDelay(client, delay) { }, delay); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/item/drink.js b/scripts/server/item/drink.js index ca037190..7f7a4edd 100644 --- a/scripts/server/item/drink.js +++ b/scripts/server/item/drink.js @@ -2,10 +2,10 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: drink.js // DESC: Provides features and usage for the drink item type // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/item/food.js b/scripts/server/item/food.js index 2cc44d66..76b8be78 100644 --- a/scripts/server/item/food.js +++ b/scripts/server/item/food.js @@ -2,10 +2,10 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: food.js // DESC: Provides features and usage for the food item type // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/item/handcuff.js b/scripts/server/item/handcuff.js index e5952c91..c84d7760 100644 --- a/scripts/server/item/handcuff.js +++ b/scripts/server/item/handcuff.js @@ -2,36 +2,36 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: handcuff.js // DESC: Provides features and usage for the handcuff item type // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerHandCuffed(client) { return (getPlayerData(client).pedState == AG_PEDSTATE_BINDED); } -// --------------------------------------------------------------------------- +// =========================================================================== function handCuffPlayer(client) { getPlayerData(client).pedState = AG_PEDSTATE_BINDED; setPlayerControlState(client, false); } -// --------------------------------------------------------------------------- +// =========================================================================== function unHandCuffPlayer(client) { getPlayerData(client).pedState = AG_PEDSTATE_READY; setPlayerControlState(client, true); } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerSurrendered(client) { return (getPlayerData(client).pedState == AG_PEDSTATE_TAZED || getPlayerData(client).pedState == AG_PEDSTATE_HANDSUP); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/item/phone.js b/scripts/server/item/phone.js index 0122fde6..932da49d 100644 --- a/scripts/server/item/phone.js +++ b/scripts/server/item/phone.js @@ -2,10 +2,10 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: phone.js // DESC: Provides features and usage for the phone item type // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/item/rope.js b/scripts/server/item/rope.js index 4dacf4cb..60dc1d8e 100644 --- a/scripts/server/item/rope.js +++ b/scripts/server/item/rope.js @@ -2,30 +2,30 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: handcuff.js // DESC: Provides features and usage for the handcuff item type // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerTied(client) { return (getPlayerData(client).pedState == AG_PEDSTATE_BINDED); } -// --------------------------------------------------------------------------- +// =========================================================================== function ropeTiePlayer(client) { getPlayerData(client).pedState = AG_PEDSTATE_BINDED; setPlayerControlState(client, false); } -// --------------------------------------------------------------------------- +// =========================================================================== function ropeUnTiePlayer(client) { getPlayerData(client).pedState = AG_PEDSTATE_READY; setPlayerControlState(client, true); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/item/tazer.js b/scripts/server/item/tazer.js index daeab207..1a9e9ed9 100644 --- a/scripts/server/item/tazer.js +++ b/scripts/server/item/tazer.js @@ -2,19 +2,19 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: tazer.js // DESC: Provides features and usage for the tazer item type // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerTazed(client) { return (getPlayerData(client).pedState == AG_PEDSTATE_TAZED); } -// --------------------------------------------------------------------------- +// =========================================================================== function tazePlayer(client) { getPlayerData(client).pedState = AG_PEDSTATE_TAZED; @@ -26,11 +26,11 @@ function tazePlayer(client) { }, getGlobalConfig().tazerEffectDuration); } -// --------------------------------------------------------------------------- +// =========================================================================== function unTazePlayer(client) { getPlayerData(client).pedState = AG_PEDSTATE_READY; setPlayerControlState(client, true); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/item/walkie-talkie.js b/scripts/server/item/walkie-talkie.js index 94d12021..9858a47d 100644 --- a/scripts/server/item/walkie-talkie.js +++ b/scripts/server/item/walkie-talkie.js @@ -2,13 +2,13 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: walkie-talkie.js // DESC: Provides features and usage for the walkie-talkie item type // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerActiveWalkieTalkieFrequency(client) { let walkieTalkieSlot = getPlayerFirstItemSlotByUseType(client, AG_ITEM_USETYPE_WALKIETALKIE); @@ -24,7 +24,7 @@ function getPlayerActiveWalkieTalkieFrequency(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function walkieTalkieTransmit(radioFrequency, messageText, transmittingPlayer) { walkieTalkieOutgoingToNearbyPlayers(transmittingPlayer, messageText); @@ -43,7 +43,7 @@ function walkieTalkieTransmit(radioFrequency, messageText, transmittingPlayer) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function walkieTalkieOutgoingToNearbyPlayers(client, messageText) { let clients = getPlayersInRange(getPlayerPosition(client), getGlobalConfig().talkDistance); @@ -52,7 +52,7 @@ function walkieTalkieOutgoingToNearbyPlayers(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function walkieTalkieIncomingToNearbyPlayers(client, messageText) { let clients = getPlayersInRange(getPlayerPosition(client), getGlobalConfig().walkieTalkieSpeakerDistance); @@ -61,7 +61,7 @@ function walkieTalkieIncomingToNearbyPlayers(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function setWalkieTalkieFrequencyCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -104,7 +104,7 @@ function setWalkieTalkieFrequencyCommand(command, params, client) { messagePlayerSuccess(client, `You set the frequency of you walkie talkie in slot ${getPlayerData(client).activeHotbarSlot} to ${getItemValueDisplayForItem(getPlayerActiveItem(client))}`) } -// --------------------------------------------------------------------------- +// =========================================================================== function walkieTalkieChatCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -120,4 +120,4 @@ function walkieTalkieChatCommand(command, params, client) { walkieTalkieTransmit(getPlayerActiveWalkieTalkieFrequency(client), params, client); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/job.js b/scripts/server/job.js index 6a1e7169..c9159669 100644 --- a/scripts/server/job.js +++ b/scripts/server/job.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: job.js // DESC: Provides job functions and usage // TYPE: Server (JavaScript) @@ -25,7 +25,7 @@ function initJobScript() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadJobsFromDatabase() { logToConsole(LOG_DEBUG, "[Asshat.Job]: Loading jobs from database ..."); @@ -57,7 +57,7 @@ function loadJobsFromDatabase() { return tempJobs; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadAllJobEquipmentFromDatabase() { for(let i in getServerData().jobs) { @@ -65,7 +65,7 @@ function loadAllJobEquipmentFromDatabase() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function loadAllJobUniformsFromDatabase() { for(let i in getServerData().jobs) { @@ -73,7 +73,7 @@ function loadAllJobUniformsFromDatabase() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function loadAllJobLocationsFromDatabase() { for(let i in getServerData().jobs) { @@ -81,7 +81,7 @@ function loadAllJobLocationsFromDatabase() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function loadJobEquipmentsFromDatabase(jobDatabaseId) { logToConsole(LOG_DEBUG, `[Asshat.Job]: Loading job equipments for job ${jobDatabaseId} from database ...`); @@ -111,7 +111,7 @@ function loadJobEquipmentsFromDatabase(jobDatabaseId) { return tempJobEquipments; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadJobLocationsFromDatabase(jobDatabaseId) { logToConsole(LOG_DEBUG, `[Asshat.Job]: Loading job locations for job ${jobDatabaseId} from database ...`); @@ -140,7 +140,7 @@ function loadJobLocationsFromDatabase(jobDatabaseId) { return tempJobLocations; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadJobUniformsFromDatabase(jobDatabaseId) { logToConsole(LOG_DEBUG, `[Asshat.Job]: Loading job uniforms for job ${jobDatabaseId} from database ...`); @@ -169,7 +169,7 @@ function loadJobUniformsFromDatabase(jobDatabaseId) { return tempJobUniforms; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadJobEquipmentItemsFromDatabase(jobEquipmentDatabaseId) { logToConsole(LOG_DEBUG, `[Asshat.Job]: Loading job equipment items for job equipment ${jobEquipmentDatabaseId} from database ...`); @@ -198,7 +198,7 @@ function loadJobEquipmentItemsFromDatabase(jobEquipmentDatabaseId) { return tempJobEquipmentItems; } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllJobBlips() { logToConsole(LOG_DEBUG, `[Asshat.Job] Spawning all job location blips ...`); @@ -212,7 +212,7 @@ function createAllJobBlips() { logToConsole(LOG_DEBUG, `[Asshat.Job] All job location blips spawned!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllJobPickups() { logToConsole(LOG_DEBUG, `[Asshat.Job] Spawning all job location pickups ...`); @@ -238,7 +238,7 @@ function createAllJobPickups() { logToConsole(LOG_DEBUG, `[Asshat.Job] All job location pickups (${pickupCount}) spawned!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function showJobInformationToPlayer(client, jobType) { if(!canPlayerUseJobs(client)){ @@ -326,7 +326,7 @@ function showJobInformationToPlayer(client, jobType) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function takeJobCommand(command, params, client) { if(!canPlayerUseJobs(client)) { @@ -357,7 +357,7 @@ function takeJobCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function startWorkingCommand(command, params, client) { if(!canPlayerUseJobs(client)){ @@ -390,7 +390,7 @@ function startWorkingCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function stopWorkingCommand(command, params, client) { if(!canPlayerUseJobs(client)) { @@ -414,7 +414,7 @@ function stopWorkingCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function startWorking(client) { if(!canPlayerUseJobs(client)){ @@ -468,7 +468,7 @@ function startWorking(client) { //showStartedWorkingTip(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function getJobInfoCommand(command, params, client) { let closestJobLocation = getClosestJobLocation(getPlayerPosition(client)); @@ -476,7 +476,7 @@ function getJobInfoCommand(command, params, client) { messagePlayerInfo(client, `[#FFFF00][Job Info] [#FFFFFF]Name: [#AAAAAA]${getJobData(closestJobLocation.job).name}, [#FFFFFF]Enabled: [#AAAAAA]${getYesNoFromBool(intToBool(getJobData(closestJobLocation.job).enabled))}, [#FFFFFF]Whitelisted: [#AAAAAA]${getYesNoFromBool(intToBool(getJobData(closestJobLocation.job).whiteListEnabled))}, [#FFFFFF]Blacklisted: [#AAAAAA]${getYesNoFromBool(intToBool(getJobData(closestJobLocation.job).blackListEnabled))}, [#FFFFFF]ID: [#AAAAAA]${getJobData(closestJobLocation.job).id}/${closestJobLocation.job}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function getJobLocationInfoCommand(command, params, client) { let closestJobLocation = getClosestJobLocation(getPlayerPosition(client)); @@ -484,7 +484,7 @@ function getJobLocationInfoCommand(command, params, client) { messagePlayerInfo(client, `[#FFFF00][Job Location Info] [#FFFFFF]Job: [#AAAAAA]${getJobData(closestJobLocation.job).name} (${getJobData(closestJobLocation.job).id}/${closestJobLocation.job}), [#FFFFFF]Enabled: [#AAAAAA]${getYesNoFromBool(closestJobLocation.enabled)}, [#FFFFFF]Database ID: [#AAAAAA]${closestJobLocation.databaseId}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function givePlayerJobEquipment(client, equipmentId) { if(!canPlayerUseJobs(client)) { @@ -507,7 +507,7 @@ function givePlayerJobEquipment(client, equipmentId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function stopWorking(client) { if(!canPlayerUseJobs(client)){ @@ -585,7 +585,7 @@ function stopWorking(client) { sendPlayerWorkingState(client, false); } -// --------------------------------------------------------------------------- +// =========================================================================== function jobUniformCommand(command, params, client) { if(!getPlayerJob(client)) { @@ -627,7 +627,7 @@ function jobUniformCommand(command, params, client) { //updatePlayerHotBar(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function jobEquipmentCommand(command, params, client) { if(!getPlayerJob(client)) { @@ -669,7 +669,7 @@ function jobEquipmentCommand(command, params, client) { messagePlayerSuccess(client, `You have been given the ${equipments[equipmentId-1].name} equipment`); } -// --------------------------------------------------------------------------- +// =========================================================================== function quitJobCommand(command, params, client) { if(!canPlayerUseJobs(client)){ @@ -681,7 +681,7 @@ function quitJobCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function jobRadioCommand(command, params, client) { if(!canPlayerUseJobs(client)){ @@ -691,7 +691,7 @@ function jobRadioCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function jobDepartmentRadioCommand(command, params, client) { if(!canPlayerUseJobs(client)){ @@ -702,19 +702,19 @@ function jobDepartmentRadioCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function getJobType(jobId) { return getJobData(jobId).type; } -// --------------------------------------------------------------------------- +// =========================================================================== function doesPlayerHaveJobType(client, jobType) { return (getJobType(getPlayerCurrentSubAccount(client).job) == jobType) ? true : false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getJobData(jobId) { if(typeof getServerData().jobs[jobId] != "undefined") { @@ -724,7 +724,7 @@ function getJobData(jobId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function quitJob(client) { stopWorking(client); @@ -732,14 +732,14 @@ function quitJob(client) { sendPlayerJobType(client, -1); } -// --------------------------------------------------------------------------- +// =========================================================================== function takeJob(client, jobId) { getPlayerCurrentSubAccount(client).job = getJobData(jobId).databaseId; sendPlayerJobType(client, getJobData(jobId).databaseId); } -// --------------------------------------------------------------------------- +// =========================================================================== function reloadAllJobsCommand(command, params, client) { forceAllPlayersToStopWorking(); @@ -759,7 +759,7 @@ function reloadAllJobsCommand(command, params, client) { messageAdminAction(`All server jobs have been reloaded by an admin!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function createJobLocationCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -779,7 +779,7 @@ function createJobLocationCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteJobLocationCommand(command, params, client) { let closestJobLocation = getClosestJobLocation(getPlayerPosition(client)); @@ -794,7 +794,7 @@ function deleteJobLocationCommand(command, params, client) { getJobData(tempJob).locations.splice(tempIndex, 1); } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleJobLocationEnabledCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -808,7 +808,7 @@ function toggleJobLocationEnabledCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]${getEnabledDisabledFromBool(closestJobLocation.enabled)} location [#AAAAAA]${closestJobLocation.databaseId} [#FFFFFF]for the [#AAAAAA]${getJobData(closestJobLocation.jobIndex).name} [#FFFFFF]job`); } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleJobEnabledCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -822,7 +822,7 @@ function toggleJobEnabledCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]${getEnabledDisabledFromBool(getJobData(jobId).enabled)} [#FFFFFF]the [#AAAAAA]${getJobData(jobId).name} [#FFFFFF]job`); } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleJobWhiteListCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -836,7 +836,7 @@ function toggleJobWhiteListCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]${getEnabledDisabledFromBool(getJobData(jobId).whiteListEnabled)} [#FFFFFF]the whitelist for the [#AAAAAA]${getJobData(jobId).name} [#FFFFFF]job`); } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleJobBlackListCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -850,7 +850,7 @@ function toggleJobBlackListCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]${getEnabledDisabledFromBool(getJobData(jobId).blackListEnabled)} [#FFFFFF]the blacklist for the [#AAAAAA]${getJobData(jobId).name} [#FFFFFF]job`); } -// --------------------------------------------------------------------------- +// =========================================================================== function addPlayerToJobBlackListCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -880,7 +880,7 @@ function addPlayerToJobBlackListCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]added ${getCharacterFullName(targetClient)} [#FFFFFF]to the blacklist for the [#AAAAAA]${jobData.name} [#FFFFFF]job`); } -// --------------------------------------------------------------------------- +// =========================================================================== function removePlayerFromJobBlackListCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -910,7 +910,7 @@ function removePlayerFromJobBlackListCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]removed ${getCharacterFullName(targetClient)} [#FFFFFF]from the blacklist for the [#AAAAAA]${jobData.name} [#FFFFFF]job`); } -// --------------------------------------------------------------------------- +// =========================================================================== function addPlayerToJobWhiteListCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -940,7 +940,7 @@ function addPlayerToJobWhiteListCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]added ${getCharacterFullName(targetClient)} [#FFFFFF]to the whitelist for the [#AAAAAA]${jobData.name} [#FFFFFF]job`); } -// --------------------------------------------------------------------------- +// =========================================================================== function removePlayerFromJobWhiteListCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -970,7 +970,7 @@ function removePlayerFromJobWhiteListCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]removed ${getCharacterFullName(targetClient)} [#FFFFFF]from the whitelist for the [#AAAAAA]${jobData.name} [#FFFFFF]job`); } -// --------------------------------------------------------------------------- +// =========================================================================== function forceAllPlayersToStopWorking() { getClients().forEach(function(client) { @@ -980,7 +980,7 @@ function forceAllPlayersToStopWorking() { }); } -// --------------------------------------------------------------------------- +// =========================================================================== function jobStartRouteCommand(command, params, client) { if(!canPlayerUseJobs(client)) { @@ -1008,7 +1008,7 @@ function jobStartRouteCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function jobStopRouteCommand(command, params, client) { if(!canPlayerUseJobs(client)) { @@ -1035,7 +1035,7 @@ function jobStopRouteCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerInJobVehicle(client) { if(getPlayerVehicle(client)) { @@ -1048,7 +1048,7 @@ function isPlayerInJobVehicle(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerWorking(client) { if(!getPlayerCurrentSubAccount(client)) { @@ -1057,7 +1057,7 @@ function isPlayerWorking(client) { return getPlayerCurrentSubAccount(client).isWorking; } -// --------------------------------------------------------------------------- +// =========================================================================== function startJobRoute(client) { if(doesPlayerHaveJobType(client, AG_JOB_BUS)) { @@ -1083,7 +1083,7 @@ function startJobRoute(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function stopJobRoute(client, successful = false, alertPlayer = true) { stopReturnToJobVehicleCountdown(client); @@ -1122,7 +1122,7 @@ function stopJobRoute(client, successful = false, alertPlayer = true) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerOnJobRoute(client) { if(doesPlayerHaveJobType(client, AG_JOB_BUS)) { @@ -1137,7 +1137,7 @@ function isPlayerOnJobRoute(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerJobRouteVehicle(client) { if(!isPlayerOnJobRoute(client)) { @@ -1151,7 +1151,7 @@ function getPlayerJobRouteVehicle(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function startReturnToJobVehicleCountdown(client) { getPlayerData(client).returnToJobVehicleTick = getGlobalConfig().returnToJobVehicleTime; @@ -1170,7 +1170,7 @@ function startReturnToJobVehicleCountdown(client) { }, 1000); } -// --------------------------------------------------------------------------- +// =========================================================================== function stopReturnToJobVehicleCountdown(client) { if(getPlayerData(client).returnToJobVehicleTimer != null) { @@ -1181,7 +1181,7 @@ function stopReturnToJobVehicleCountdown(client) { //getPlayerData(client).returnToJobVehicleTick = 0; } -// --------------------------------------------------------------------------- +// =========================================================================== function canPlayerUseJob(client, jobId) { if(doesPlayerHaveStaffPermission(client, getStaffFlagValue("manageJobs"))) { @@ -1207,7 +1207,7 @@ function canPlayerUseJob(client, jobId) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteJobLocation(jobLocationData) { if(jobLocationData.pickup) { @@ -1215,21 +1215,21 @@ function deleteJobLocation(jobLocationData) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function freezeJobVehicleForRouteStop(client) { getVehicleData(getPlayerVehicle(client)).engine = false; getPlayerVehicle(client).engine = false; } -// --------------------------------------------------------------------------- +// =========================================================================== function unFreezeJobVehicleForRouteStop(client) { getVehicleData(getPlayerVehicle(client)).engine = true; getPlayerVehicle(client).engine = true; } -// --------------------------------------------------------------------------- +// =========================================================================== function getJobIdFromDatabaseId(databaseId) { for(let i in getServerData().jobs) { @@ -1240,7 +1240,7 @@ function getJobIdFromDatabaseId(databaseId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function setAllJobDataIndexes() { for(let i in getServerData().jobs) { @@ -1277,7 +1277,7 @@ function setAllJobDataIndexes() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createJobLocation(jobId, position, interior, dimension) { let jobLocationData = new serverClasses.jobLocationData(false); @@ -1295,7 +1295,7 @@ function createJobLocation(jobId, position, interior, dimension) { saveJobLocationToDatabase(jobLocationData); } -// --------------------------------------------------------------------------- +// =========================================================================== function saveJobToDatabase(jobData) { if(jobData == null) { @@ -1339,7 +1339,7 @@ function saveJobToDatabase(jobData) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveJobLocationToDatabase(jobLocationData) { if(jobLocationData == null) { @@ -1368,7 +1368,7 @@ function saveJobLocationToDatabase(jobLocationData) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveJobEquipmentToDatabase(jobEquipmentData) { if(jobEquipmentData == null) { @@ -1397,7 +1397,7 @@ function saveJobEquipmentToDatabase(jobEquipmentData) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveJobEquipmentItemToDatabase(jobEquipmentItemData) { if(jobEquipmentItemData == null) { @@ -1425,7 +1425,7 @@ function saveJobEquipmentItemToDatabase(jobEquipmentItemData) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveJobUniformToDatabase(jobUniformData) { if(jobUniformData == null) { @@ -1454,7 +1454,7 @@ function saveJobUniformToDatabase(jobUniformData) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveAllJobsToDatabase() { for(let i in getServerData().jobs) { @@ -1478,7 +1478,7 @@ function saveAllJobsToDatabase() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteJobLocationBlip(jobId, locationId) { if(getJobData(jobId).locations[locationId].blip != null) { @@ -1487,7 +1487,7 @@ function deleteJobLocationBlip(jobId, locationId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteJobLocationPickup(jobId, locationId) { if(getServerData().jobs[jobId].locations[locationId].pickup != null) { @@ -1496,7 +1496,7 @@ function deleteJobLocationPickup(jobId, locationId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createJobLocationPickup(jobId, locationId) { if(getJobData(jobId).pickupModel != -1) { @@ -1517,7 +1517,7 @@ function createJobLocationPickup(jobId, locationId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createJobLocationBlip(jobId, locationId) { if(getJobData(jobId).blipModel != -1) { @@ -1534,7 +1534,7 @@ function createJobLocationBlip(jobId, locationId) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerJob(client) { let jobDatabaseId = getPlayerCurrentSubAccount(client).job; @@ -1547,7 +1547,7 @@ function getPlayerJob(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function canPlayerUseJobs(client) { if(hasBitFlag(getPlayerData(client).accountData.flags.moderation, getServerBitFlags().moderationFlags.jobBanned)) { @@ -1557,7 +1557,7 @@ function canPlayerUseJobs(client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function getJobIndexFromDatabaseId(databaseId) { for(let i in getServerData().jobs) { @@ -1568,13 +1568,13 @@ function getJobIndexFromDatabaseId(databaseId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isJobWhiteListed(jobId) { return getJobData(jobId).whiteListEnabled; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerOnJobWhiteList(client, jobId) { for(let i in getJobData(jobId).whiteList) { @@ -1586,13 +1586,13 @@ function isPlayerOnJobWhiteList(client, jobId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isJobBlackListed(jobId) { return getJobData(jobId).blackListEnabled; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerOnJobBlackList(client, jobId) { for(let i in getJobData(jobId).blackList) { @@ -1604,7 +1604,7 @@ function isPlayerOnJobBlackList(client, jobId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function playerArrivedAtJobRouteStop(client) { if(!isPlayerOnJobRoute(client)) { @@ -1620,7 +1620,7 @@ function playerArrivedAtJobRouteStop(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteJobItems(client) { for(let i in getPlayerData(client).jobEquipmentCache) { @@ -1635,4 +1635,4 @@ function deleteJobItems(client) { updatePlayerHotBar(client); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/job/bus.js b/scripts/server/job/bus.js index 6dc7d7e6..e281dea4 100644 --- a/scripts/server/job/bus.js +++ b/scripts/server/job/bus.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: bus.js // DESC: Provides bus driver job functions and usage // TYPE: Job (JavaScript) @@ -360,7 +360,7 @@ let busRoutes = [ ], ]; -// --------------------------------------------------------------------------- +// =========================================================================== function getRandomBusRoute(island) { if(busRoutes[getServerGame()][island].length == 1) { @@ -369,7 +369,7 @@ function getRandomBusRoute(island) { return getRandom(0, busRoutes[getServerGame()][island].length-1); } -// --------------------------------------------------------------------------- +// =========================================================================== function getNextStopOnBusRoute(island, busRoute, busRouteStop) { if(!isLastStopOnBusRoute(island, busRoute, busRouteStop)) { @@ -379,7 +379,7 @@ function getNextStopOnBusRoute(island, busRoute, busRouteStop) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function isLastStopOnBusRoute(island, busRoute, busRouteStop) { if(busRouteStop == busRoutes[getServerGame()][island][busRoute].positions.length-1) { @@ -388,20 +388,20 @@ function isLastStopOnBusRoute(island, busRoute, busRouteStop) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function showNextBusStop(client) { getPlayerData(client).jobRouteStop = getNextStopOnBusRoute(getPlayerData(client).jobRouteStop, getPlayerData(client).jobRoute, getPlayerData(client).jobRouteStop); showCurrentBusStop(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function showCurrentBusStop(client) { sendJobRouteStopToPlayer(client, getBusRouteStopPosition(getPlayerIsland(client), getPlayerData(client).jobRoute, getPlayerData(client).jobRouteStop), getColourByName("busDriverGreen")) } -// --------------------------------------------------------------------------- +// =========================================================================== function playerArrivedAtBusStop(client) { if(isLastStopOnBusRoute(getPlayerData(client).jobRouteIsland, getPlayerData(client).jobRoute, getPlayerData(client).jobRouteStop)) { @@ -426,16 +426,16 @@ function playerArrivedAtBusStop(client) { }, 5000); } -// --------------------------------------------------------------------------- +// =========================================================================== function getBusRouteStopPosition(island, busRoute, busRouteStop) { return busRoutes[getServerGame()][island][busRoute].positions[busRouteStop]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getBusRouteData(island, busRoute) { return busRoutes[getServerGame()][island][busRoute]; } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/job/drug.js b/scripts/server/job/drug.js index a8c3ee77..e58d0888 100644 --- a/scripts/server/job/drug.js +++ b/scripts/server/job/drug.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: drug.js // DESC: Provides drug runner/dealer job functions and usage // TYPE: Job (JavaScript) diff --git a/scripts/server/job/fire.js b/scripts/server/job/fire.js index 74517e3b..962a95a7 100644 --- a/scripts/server/job/fire.js +++ b/scripts/server/job/fire.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: fire.js // DESC: Provides firefighter job functions and usage // TYPE: Job (JavaScript) diff --git a/scripts/server/job/garbage.js b/scripts/server/job/garbage.js index bfe42a8b..e8cd8c4b 100644 --- a/scripts/server/job/garbage.js +++ b/scripts/server/job/garbage.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: garbage.js // DESC: Provides garbage collector job functions and usage // TYPE: Job (JavaScript) @@ -72,7 +72,7 @@ let garbageRoutes = [ ], ]; -// --------------------------------------------------------------------------- +// =========================================================================== function getRandomGarbageRoute(island) { if(garbageRoutes[getServerGame()][island].length == 1) { @@ -81,7 +81,7 @@ function getRandomGarbageRoute(island) { return getRandom(0, garbageRoutes[getServerGame()][island].length-1); } -// --------------------------------------------------------------------------- +// =========================================================================== function getNextStopOnGarbageRoute(island, garbageRoute, garbageRouteStop) { if(!isLastStopOnGarbageRoute(island, garbageRoute, garbageRouteStop)) { @@ -91,7 +91,7 @@ function getNextStopOnGarbageRoute(island, garbageRoute, garbageRouteStop) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function isLastStopOnGarbageRoute(island, garbageRoute, garbageRouteStop) { if(garbageRouteStop == garbageRoutes[getServerGame()][island][garbageRoute].positions.length-1) { @@ -100,20 +100,20 @@ function isLastStopOnGarbageRoute(island, garbageRoute, garbageRouteStop) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function showNextGarbageStop(client) { getPlayerData(client).jobRouteStop = getNextStopOnGarbageRoute(getPlayerData(client).jobRouteStop, getPlayerData(client).jobRoute, getPlayerData(client).jobRouteStop); showCurrentGarbageStop(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function showCurrentGarbageStop(client) { triggerNetworkEvent("ag.showGarbageStop", client, getGarbageRouteStopPosition(getPlayerIsland(client), getPlayerData(client).jobRoute, getPlayerData(client).jobRouteStop), getColourByName("garbageDriverGreen")); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerArrivedAtGarbageStop(client) { if(isLastStopOnGarbageRoute(getPlayerData(client).jobRouteIsland, getPlayerData(client).jobRoute, getPlayerData(client).jobRouteStop)) { @@ -137,16 +137,16 @@ function playerArrivedAtGarbageStop(client) { }, 5000); } -// --------------------------------------------------------------------------- +// =========================================================================== function getGarbageRouteStopPosition(island, garbageRoute, garbageRouteStop) { return garbageRoutes[getServerGame()][island][garbageRoute].positions[garbageRouteStop]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getGarbageRouteData(island, garbageRoute) { return garbageRoutes[getServerGame()][island][garbageRoute]; } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/job/medic.js b/scripts/server/job/medic.js index aee7add0..f42568da 100644 --- a/scripts/server/job/medic.js +++ b/scripts/server/job/medic.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: medic.js // DESC: Provides paramedic job functions and usage // TYPE: Job (JavaScript) diff --git a/scripts/server/job/pizza-delivery.js b/scripts/server/job/pizza-delivery.js index 338881f8..debce967 100644 --- a/scripts/server/job/pizza-delivery.js +++ b/scripts/server/job/pizza-delivery.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: pizza-delivery.js // DESC: Provides pizza delivery driver job functions and usage // TYPE: Job (JavaScript) @@ -224,57 +224,38 @@ let pizzaDeliveryStops = [ ], ]; -// --------------------------------------------------------------------------- +// =========================================================================== -function getRandomPizzaDeliveryStops(island) { +function getRandomPizzaDeliveryStop(island) { if(pizzaDeliveryStops[getServerGame()][island].length == 1) { return 0; } return getRandom(0, pizzaDeliveryStops[getServerGame()][island].length-1); } -// --------------------------------------------------------------------------- +// =========================================================================== function showCurrentPizzaDeliveryStop(client) { sendJobDeliveryPointToPlayer(client, getPizzaDeliveryStopPosition(getPlayerIsland(client), getPlayerData(client).jobRoute), getColourByName("deliveryPurple")) } -// --------------------------------------------------------------------------- +// =========================================================================== -function playerArrivedAtBusStop(client) { - if(isLastStopOnBusRoute(getPlayerData(client).jobRouteIsland, getPlayerData(client).jobRoute, getPlayerData(client).jobRouteStop)) { - respawnVehicle(getPlayerData(client).jobRouteVehicle); - let payout = getPizzaDeliveryPay(getPlayerData(client).jobDeliveryStart, getPlayerData(client).jobDeliveryStop)*getServerData().inflationMultiplier; - getPlayerData(client).payDayAmount += payout; - messagePlayerNormal(client, `You delivered the pizza! Return to the pizza restaurant if you want to deliver another pizza.`, getColourByName("yellow")); - messagePlayerNormal(client, `You earned $${payout}. Your total paycheck of [#AAAAAA]${getPlayerData(client).payDayAmount} will be received in [#AAAAAA]${getTimeDisplayUntilPlayerPayDay(client)}`); - getPlayerData(client).jobRouteVehicle = false; - getPlayerData(client).jobRoute = 0; - getPlayerData(client).jobRouteStop = 0; - getPlayerData(client).jobRouteIsland = 0; - return false; - } - - showGameMessage(client, "⌛ Please wait a moment for passengers to get on and off the bus.", getColourByName("busDriverGreen"), 3500); - freezeJobVehicleForRouteStop(client); - getPlayerData(client).jobRouteStop = getNextStopOnBusRoute(getPlayerData(client).jobRouteIsland, getPlayerData(client).jobRoute, getPlayerData(client).jobRouteStop); - setTimeout(function() { - unFreezeJobVehicleForRouteStop(client); - showCurrentBusStop(client); - showGameMessage(client, "Proceed to the next stop (green checkpoint)", getColourByName("busDriverGreen"), 3500); - }, 5000); +function playerArrivedAtPizzaDeliveryDestination(client) { + respawnVehicle(getPlayerData(client).jobDeliveryVehicle); + let payout = applyServerInflationMultiplier(getPizzaDeliveryPay(getPlayerData(client).jobDeliveryStart, getPlayerData(client).jobDeliveryStop)); + getPlayerData(client).payDayAmount += payout; + messagePlayerNormal(client, `You delivered the pizza! Return to the pizza restaurant if you want to deliver another pizza.`, getColourByName("yellow")); + messagePlayerNormal(client, `You earned $${payout}. Your total paycheck of [#AAAAAA]${getPlayerData(client).payDayAmount} will be received in [#AAAAAA]${getTimeDisplayUntilPlayerPayDay(client)}`); + getPlayerData(client).jobDeliveryVehicle = false; + getPlayerData(client).jobDeliveryStart = 0; + getPlayerData(client).jobDeliveryStop = 0; } -// --------------------------------------------------------------------------- +// =========================================================================== -function getBusRouteStopPosition(island, busRoute, busRouteStop) { - return busRoutes[getServerGame()][island][busRoute].positions[busRouteStop]; +function getPizzaDeliveryPay(startPoint, stopPoint) { + return Math.floor(getDistance(startPoint, stopPoint)); } -// --------------------------------------------------------------------------- - -function getBusRouteData(island, busRoute) { - return busRoutes[getServerGame()][island][busRoute]; -} - -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/job/police.js b/scripts/server/job/police.js index a8593480..b94c8cf3 100644 --- a/scripts/server/job/police.js +++ b/scripts/server/job/police.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: police.js // DESC: Provides police officer job functions and usage // TYPE: Job (JavaScript) @@ -73,7 +73,7 @@ let patrolRoutes = [ ], ]; -// --------------------------------------------------------------------------- +// =========================================================================== function policeTazerCommand(command, params, client) { if(!canPlayerUseJobs(client)) { @@ -99,7 +99,7 @@ function policeTazerCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function policeCuffCommand(command, params, client) { if(!canPlayerUseJobs(client)) { @@ -125,7 +125,7 @@ function policeCuffCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function policeArrestCommand(command, params, client) { if(!canPlayerUseJobs(client)) { @@ -151,7 +151,7 @@ function policeArrestCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function policeSearchCommand(command, params, client) { if(!canPlayerUseJobs(client)) { @@ -177,7 +177,7 @@ function policeSearchCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function policeDragCommand(command, params, client) { if(!canPlayerUseJobs(client)) { @@ -203,7 +203,7 @@ function policeDragCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function policeDetainCommand(command, params, client) { if(!canPlayerUseJobs(client)) { @@ -229,7 +229,7 @@ function policeDetainCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function playerArivedAtPolicePatrolPoint(client) { if(isLastStopOnPolicePatrolRoute(getPlayerData(client).jobRouteIsland, getPlayerData(client).jobRoute, getPlayerData(client).jobRouteStop)) { @@ -250,4 +250,4 @@ function playerArivedAtPolicePatrolPoint(client) { showCurrentPolicePatrolPoint(client); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/job/taxi.js b/scripts/server/job/taxi.js index 91c37ed5..57039bc6 100644 --- a/scripts/server/job/taxi.js +++ b/scripts/server/job/taxi.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: taxi.js // DESC: Provides taxi driver job functions and usage // TYPE: Job (JavaScript) diff --git a/scripts/server/job/weapon.js b/scripts/server/job/weapon.js index af534ff2..8706030a 100644 --- a/scripts/server/job/weapon.js +++ b/scripts/server/job/weapon.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: weapon.js // DESC: Provides weapons dealer job functions and usage // TYPE: Job (JavaScript) diff --git a/scripts/server/keybind.js b/scripts/server/keybind.js index bdbe3236..e445efbe 100644 --- a/scripts/server/keybind.js +++ b/scripts/server/keybind.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: keybind.js // DESC: Provides keybind handlers and functions // TYPE: Server (JavaScript) @@ -126,14 +126,14 @@ let bindableKeys = { SDLK_RALT: "rightalt", }; -// --------------------------------------------------------------------------- +// =========================================================================== function initKeyBindScript() { logToConsole(LOG_DEBUG, "[Asshat.KeyBind]: Initializing key bind script ..."); logToConsole(LOG_DEBUG, "[Asshat.KeyBind]: Key bind script initialized!"); } -// --------------------------------------------------------------------------- +// =========================================================================== function addKeyBindCommand(command, params, client) { let splitParams = params.split(" "); @@ -163,7 +163,7 @@ function addKeyBindCommand(command, params, client) { messagePlayerSuccess(client, `You binded the [#AAAAAA]${sdl.getKeyName(keyId)} [#FFFFFF]key to command: [#AAAAAA]/${tempCommand} ${tempParams}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function removeKeyBindCommand(command, params, client) { let splitParams = params.split(" "); @@ -186,7 +186,7 @@ function removeKeyBindCommand(command, params, client) { messagePlayerSuccess(client, `You removed the keybind for the [#AAAAAA]${sdl.getKeyName(keyId)} [#FFFFFF]key`); } -// --------------------------------------------------------------------------- +// =========================================================================== function addPlayerKeyBind(client, keyId, tempCommand, tempParams) { let keyBindData = new serverClasses.keyBindData(keyId, `${tempCommand} ${tempParams}`); @@ -194,7 +194,7 @@ function addPlayerKeyBind(client, keyId, tempCommand, tempParams) { sendAddAccountKeyBindToClient(client, getPlayerKeyBindForKey(client, keyId)); } -// --------------------------------------------------------------------------- +// =========================================================================== function removePlayerKeyBind(client, keyId) { quickDatabaseQuery(`DELETE FROM acct_hotkey WHERE acct_hotkey_acct = ${getPlayerData(client).accountData.databaseId} AND acct_hotkey_key = ${keyId}`); @@ -206,7 +206,7 @@ function removePlayerKeyBind(client, keyId) { sendRemoveAccountKeyBindToClient(client, keyId); } -// --------------------------------------------------------------------------- +// =========================================================================== function doesPlayerHaveKeyBindForCommand(client, command) { let accountKeyBinds = getPlayerData(client).accountData.keyBinds; @@ -218,7 +218,7 @@ function doesPlayerHaveKeyBindForCommand(client, command) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerKeyBindForCommand(client, command) { let accountKeyBinds = getPlayerData(client).accountData.keyBinds; @@ -230,7 +230,7 @@ function getPlayerKeyBindForCommand(client, command) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function doesPlayerHaveKeyBindForKey(client, key) { let accountKeyBinds = getPlayerData(client).accountData.keyBinds; @@ -242,7 +242,7 @@ function doesPlayerHaveKeyBindForKey(client, key) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerKeyBindForKey(client, key) { let accountKeyBinds = getPlayerData(client).accountData.keyBinds; @@ -254,7 +254,7 @@ function getPlayerKeyBindForKey(client, key) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function playerUsedKeyBind(client, key) { if(!isPlayerLoggedIn(client)) { @@ -281,7 +281,7 @@ function playerUsedKeyBind(client, key) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function sendAccountKeyBindsToClient(client) { for(let i in getPlayerData(client).accountData.keyBinds) { @@ -289,7 +289,7 @@ function sendAccountKeyBindsToClient(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getKeyIdFromParams(params) { let tempParams = toLowerCase(toString(params)); @@ -306,4 +306,4 @@ function getKeyIdFromParams(params) { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/locale.js b/scripts/server/locale.js index b01a4dca..b666cbd4 100644 --- a/scripts/server/locale.js +++ b/scripts/server/locale.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: locale.js // DESC: Provides locale structures, functions and usage // TYPE: Server (JavaScript) diff --git a/scripts/server/messaging.js b/scripts/server/messaging.js index 7d5e8c73..7a464088 100644 --- a/scripts/server/messaging.js +++ b/scripts/server/messaging.js @@ -2,13 +2,13 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: messaging.js // DESC: Provides messaging functions and usage // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function messageAdminAction(messageText) { messagePlayerNormal(null, `⚠️ ${messageText}`, getColourByName("orange")); @@ -18,7 +18,7 @@ function messageAdminAction(messageText) { //logToConsole(LOG_INFO, `[Asshat.Messaging] ADMIN: ${messageText}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerNormal(client, messageText, colour = COLOUR_WHITE) { if(isConsole(client)) { @@ -35,7 +35,7 @@ function messagePlayerNormal(client, messageText, colour = COLOUR_WHITE) { //} } -// --------------------------------------------------------------------------- +// =========================================================================== function messageAdmins(messageText, colour = COLOUR_WHITE) { let clients = getClients(); @@ -51,7 +51,7 @@ function messageAdmins(messageText, colour = COLOUR_WHITE) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerError(client, messageText) { if(isConsole(client)) { @@ -66,7 +66,7 @@ function messagePlayerError(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerSyntax(client, messageText) { if(isConsole(client)) { @@ -81,7 +81,7 @@ function messagePlayerSyntax(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerAlert(client, messageText) { if(isConsole(client)) { @@ -96,7 +96,7 @@ function messagePlayerAlert(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerSuccess(client, messageText) { if(isConsole(client)) { @@ -111,7 +111,7 @@ function messagePlayerSuccess(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerInfo(client, messageText) { if(isConsole(client)) { @@ -126,7 +126,7 @@ function messagePlayerInfo(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerTip(client, messageText) { if(isConsole(client)) { @@ -141,25 +141,25 @@ function messagePlayerTip(client, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerTalk(client, talkingClient, messageText) { messagePlayerNormal(client, `${getClientSubAccountName(talkingClient)} says: ${messageText}`, getColourByType("talkMessage")); } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerWhisper(client, whisperingClient, messageText) { messagePlayerNormal(client, `${getClientSubAccountName(whisperingClient)} whispers: ${messageText}`, getColourByType("whisperMessage")); } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerShout(client, shoutingClient, messageText) { messagePlayerNormal(client, `${getClientSubAccountName(shoutingClient)} shouts: ${messageText}!`, getColourByType("shoutMessage")); } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerDoAction(client, doingActionClient, messageText) { if(!isClientFromDiscord(client)) { @@ -167,22 +167,22 @@ function messagePlayerDoAction(client, doingActionClient, messageText) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerMeAction(client, doingActionClient, messageText) { messagePlayerNormal(client, `${getClientSubAccountName(doingActionClient)} ${messageText}`, getColourByType("meActionMessage")); } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerClanChat(client, clanChattingClient, messageText) { messagePlayerNormal(client, `(${getClientSubAccountClanRank(clanChattingClient)}) ${getClientSubAccountName(clanChattingClient)} says (clan): ${messageText}`, getColourByType("clanChatMessage")); } -// --------------------------------------------------------------------------- +// =========================================================================== function messagePlayerAdminChat(client, adminChattingClient, messageText) { messagePlayerNormal(client, `[ADMIN CHAT] [#AAAAAA]${getPlayerData(adminChattingClient).accountData.staffTitle} [#CCCCCC]${getPlayerData(adminChattingClient).accountData.name}: [#FFFFFF]${messageText}`, getColourByType("orange")); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/misc.js b/scripts/server/misc.js index ee98cf35..e52781ac 100644 --- a/scripts/server/misc.js +++ b/scripts/server/misc.js @@ -2,13 +2,13 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: misc.js // DESC: Provides any uncategorized functions and usage // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function initMiscScript() { logToConsole(LOG_DEBUG, "[Asshat.Misc]: Initializing misc script ..."); @@ -16,7 +16,7 @@ function initMiscScript() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPositionCommand(command, params, client) { let position = getPlayerPosition(client); @@ -26,21 +26,21 @@ function getPositionCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleMouseCursorCommand(command, params, client) { sendPlayerMouseCursorToggle(client); return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleMouseCameraCommand(command, params, client) { sendPlayerMouseCameraToggle(client); return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function setNewCharacterSpawnPositionCommand(command, params, client) { let position = client.player.position; @@ -51,7 +51,7 @@ function setNewCharacterSpawnPositionCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function setNewCharacterMoneyCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -68,7 +68,7 @@ function setNewCharacterMoneyCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function setNewCharacterSkinCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -89,7 +89,7 @@ function setNewCharacterSkinCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function submitIdeaCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -103,7 +103,7 @@ function submitIdeaCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function submitBugReportCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -117,7 +117,7 @@ function submitBugReportCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function enterExitPropertyCommand(command, params, client) { if(isPlayerInAnyHouse(client)) { @@ -259,7 +259,7 @@ function enterExitPropertyCommand(command, params, client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadGameFixesResource() { switch(getServerGame()) { @@ -275,7 +275,7 @@ function loadGameFixesResource() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerInfoCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -292,7 +292,7 @@ function getPlayerInfoCommand(command, params, client) { messagePlayerInfo(client, `[#AAAAAA][Player Info] [#FFFFFF]Account: [#AAAAAA]${getPlayerData(targetClient).accountData.name}[${getPlayerData(targetClient).accountData.databaseId}], [#FFFFFF]Character: [#AAAAAA]${getCharacterFullName(client)}[${getPlayerCurrentSubAccount(client).databaseId}], [#FFFFFF]Connected: [#AAAAAA]${getTimeDifferenceDisplay(Math.ceil(sdl.tick/1000), getPlayerData(targetClient).connectTime)} ago, [#FFFFFF]Game Version: [#AAAAAA]${targetClient.gameVersion}, [#FFFFFFF]Client Version: [#AAAAAA]${getPlayerData(targetClient).clientVersion}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerChangeAFKState(client, afkState) { if(afkState) { @@ -302,7 +302,7 @@ function playerChangeAFKState(client, afkState) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function checkPlayerSpawning() { let clients = getClients(); @@ -322,7 +322,7 @@ function checkPlayerSpawning() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function showPlayerPrompt(client, promptType, promptMessage, promptTitle) { if(promptType == AG_PROMPT_NONE) { @@ -339,4 +339,4 @@ function showPlayerPrompt(client, promptType, promptMessage, promptTitle) { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/moderation.js b/scripts/server/moderation.js index 2dde2084..bd0c4117 100644 --- a/scripts/server/moderation.js +++ b/scripts/server/moderation.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: moderation.js // DESC: Provides moderation commands, functions and usage // TYPE: Server (JavaScript) @@ -11,7 +11,7 @@ function initModerationScript() { } -// --------------------------------------------------------------------------- +// =========================================================================== function kickClientCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -37,7 +37,7 @@ function kickClientCommand(command, params, client) { targetClient.disconnect(); } -// --------------------------------------------------------------------------- +// =========================================================================== function setClientStaffTitleCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -68,7 +68,7 @@ function setClientStaffTitleCommand(command, params, client) { targetClient.disconnect(); } -// --------------------------------------------------------------------------- +// =========================================================================== function muteClientCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -94,7 +94,7 @@ function muteClientCommand(command, params, client) { setEntityData(targetClient, "ag.muted", true, false); } -// --------------------------------------------------------------------------- +// =========================================================================== function unMuteClientCommand(command, params, client) { @@ -121,7 +121,7 @@ function unMuteClientCommand(command, params, client) { removeEntityData(targetClient, "ag.muted"); } -// --------------------------------------------------------------------------- +// =========================================================================== function freezeClientCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -147,7 +147,7 @@ function freezeClientCommand(command, params, client) { setPlayerFrozenState(client, state); } -// --------------------------------------------------------------------------- +// =========================================================================== function unFreezeClientCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -173,7 +173,7 @@ function unFreezeClientCommand(command, params, client) { sendPlayerFrozenState(client, false); } -// --------------------------------------------------------------------------- +// =========================================================================== function gotoPlayerCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -198,7 +198,7 @@ function gotoPlayerCommand(command, params, client) { messagePlayerSuccess(client, `You teleported to [#AAAAAA]${targetClient.name}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function gotoVehicleCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -222,7 +222,7 @@ function gotoVehicleCommand(command, params, client) { messagePlayerSuccess(client, `You teleported to a [#CC22CC]${getVehicleName(vehicle)} [#AAAAAA](ID ${vehicle.id})`); } -// --------------------------------------------------------------------------- +// =========================================================================== function gotoBusinessCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -247,7 +247,7 @@ function gotoBusinessCommand(command, params, client) { messagePlayerSuccess(client, `You teleported to business [#0099FF]${getBusinessData(businessId).name} [#AAAAAA](ID ${businessId})`); } -// --------------------------------------------------------------------------- +// =========================================================================== function gotoGameLocationCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -272,7 +272,7 @@ function gotoGameLocationCommand(command, params, client) { messagePlayerSuccess(client, `You teleported to game location [#AAAAAA]${getGameData().locations[businessId][0]}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function gotoHouseCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -297,7 +297,7 @@ function gotoHouseCommand(command, params, client) { messagePlayerSuccess(client, `You teleported to business [#0099FF]${getHouseData(houseId).description} [#AAAAAA](ID ${houseId})`); } -// --------------------------------------------------------------------------- +// =========================================================================== function gotoJobLocationCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -329,7 +329,7 @@ function gotoJobLocationCommand(command, params, client) { messagePlayerSuccess(client, `You teleported to location [#AAAAAA]${jobLocationId} [#FFFFFF]for the [#AAAAAA]${getJobData(jobId).name} [#FFFFFF]job`); } -// --------------------------------------------------------------------------- +// =========================================================================== function gotoPositionCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -356,7 +356,7 @@ function gotoPositionCommand(command, params, client) { messagePlayerSuccess(client, `You teleported to coordinates [#AAAAAA]${x}, ${y}, ${z} with interior ${int} and dimension ${vw}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function teleportForwardCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -369,7 +369,7 @@ function teleportForwardCommand(command, params, client) { messagePlayerSuccess(client, `You teleported forward ${params} meters`); } -// --------------------------------------------------------------------------- +// =========================================================================== function teleportBackwardCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -382,7 +382,7 @@ function teleportBackwardCommand(command, params, client) { messagePlayerSuccess(client, `You teleported backward [#AAAAAA]${params} [#FFFFFF]meters`); } -// --------------------------------------------------------------------------- +// =========================================================================== function teleportLeftCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -395,7 +395,7 @@ function teleportLeftCommand(command, params, client) { messagePlayerSuccess(client, `You teleported left [#AAAAAA]${params} [#FFFFFF]meters`); } -// --------------------------------------------------------------------------- +// =========================================================================== function teleportUpCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -408,7 +408,7 @@ function teleportUpCommand(command, params, client) { messagePlayerSuccess(client, `You teleported up [#AAAAAA]${params} [#FFFFFF]meters`); } -// --------------------------------------------------------------------------- +// =========================================================================== function teleportDownCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -421,7 +421,7 @@ function teleportDownCommand(command, params, client) { messagePlayerSuccess(client, `You teleported down [#AAAAAA]${params} [#FFFFFF]meters`); } -// --------------------------------------------------------------------------- +// =========================================================================== function teleportRightCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -434,7 +434,7 @@ function teleportRightCommand(command, params, client) { messagePlayerSuccess(client, `You teleported right [#AAAAAA]${params} [#FFFFFF]meters`); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerInteriorCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -459,7 +459,7 @@ function playerInteriorCommand(command, params, client) { messagePlayerSuccess(client, `You set ${targetClient.name}'s interior to [#AAAAAA]${interiorId}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function playerVirtualWorldCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -484,7 +484,7 @@ function playerVirtualWorldCommand(command, params, client) { messagePlayerSuccess(client, `You set [#AAAAAA]${targetClient.name}'s [#FFFFFF]virtual world to [#AAAAAA]${dimensionId}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -518,7 +518,7 @@ function getPlayerCommand(command, params, client) { messagePlayerAlert(targetClient, `An admin has teleported you to their location`); } -// --------------------------------------------------------------------------- +// =========================================================================== function addStaffFlagCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -552,7 +552,7 @@ function addStaffFlagCommand(command, params, client) { messagePlayerSuccess(client, `You have ${getBoolRedGreenInlineColour(true)}given [#AAAAAA]${targetClient.name} [#FFFFFF]the [#AAAAAA]${flagName} [#FFFFFF]staff flag`); } -// --------------------------------------------------------------------------- +// =========================================================================== function takeStaffFlagCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -586,7 +586,7 @@ function takeStaffFlagCommand(command, params, client) { messagePlayerSuccess(client, `You have ${getBoolRedGreenInlineColour(false)}taken [#FFFFFF]the [#AAAAAA]${flagName} [#FFFFFF]staff flag from [#AAAAAA]${targetClient.name}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function clearStaffFlagsCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -620,7 +620,7 @@ function clearStaffFlagsCommand(command, params, client) { messagePlayerSuccess(client, `You have removed all staff flags from [#AAAAAA]${targetClient.name}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function getStaffFlagsCommand(command, params, client) { if(getCommand(command).requireLogin) { @@ -661,7 +661,7 @@ function getStaffFlagsCommand(command, params, client) { messagePlayerInfo(client, `[#FFFFFF]${targetClient.name}'s staff flags: [#AAAAAA]${tempStaffFlags.join("[#FFFFFF], [#AAAAAA]")}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function allStaffFlagsCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -681,7 +681,7 @@ function allStaffFlagsCommand(command, params, client) { messagePlayerInfo(client, `[#FFFFFF]Staff flags: [#AAAAAA]${getServerBitFlagKeys().join("[#FFFFFF], [#AAAAAA]")}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function givePlayerMoneyCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -704,4 +704,4 @@ function givePlayerMoneyCommand(command, params, client) { messagePlayerAlert(client, `An admin gave you [#AAAAAA]$${amount}`); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/native.js b/scripts/server/native.js index 22f78efd..8a257a28 100644 --- a/scripts/server/native.js +++ b/scripts/server/native.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: native.js // DESC: Provides util function to wrap mod-specific stuff // TYPE: Server (JavaScript) @@ -10,13 +10,7 @@ // Use data for each because args are probably gonna be way different for each mod -// --------------------------------------------------------------------------- - -function getServerGame() { - return server.game; -} - -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerPosition(client) { if(getServerGame() == GAME_GTA_IV) { @@ -28,14 +22,14 @@ function getPlayerPosition(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerPosition(client, position) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s position to ${position.x}, ${position.y}, ${position.z}`); sendPlayerSetPosition(client, position); } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerHeading(client) { if(getServerGame() == GAME_GTA_IV) { @@ -47,14 +41,14 @@ function getPlayerHeading(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerHeading(client, heading) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s heading to ${heading}`); sendPlayerSetHeading(client, heading); } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerVehicle(client) { if(getServerGame() == GAME_GTA_IV) { @@ -67,13 +61,13 @@ function getPlayerVehicle(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerDimension(client) { return client.player.dimension; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerInterior(client) { if(getPlayerData(client)) { @@ -83,14 +77,14 @@ function getPlayerInterior(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerDimension(client, dimension) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s dimension to ${dimension}`); client.player.dimension = dimension; } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerInterior(client, interior) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s interior to ${interior}`); @@ -98,7 +92,7 @@ function setPlayerInterior(client, interior) { getPlayerCurrentSubAccount(client).interior = interior; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerInAnyVehicle(client) { if(getServerGame() == GAME_GTA_IV) { @@ -108,7 +102,7 @@ function isPlayerInAnyVehicle(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerVehicleSeat(client) { if(!isPlayerInAnyVehicle(client)) { @@ -124,37 +118,37 @@ function getPlayerVehicleSeat(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerSpawned(client) { return (client.player != null); } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehiclePosition(vehicle) { return vehicle.position; } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehicleHeading(vehicle) { return vehicle.heading; } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehicleSyncer(vehicle) { return getElementSyncer(vehicle); } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehicleForNetworkEvent(vehicle) { return vehicle; } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteGameElement(element) { logToConsole(LOG_DEBUG, `Destroying game element ${element.id} (Type: ${element.type})`); @@ -165,13 +159,13 @@ function deleteGameElement(element) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerInFrontVehicleSeat(client) { return (getPlayerVehicleSeat(client) == 0 || getPlayerVehicleSeat(client) == 1); } -// --------------------------------------------------------------------------- +// =========================================================================== function removePlayerFromVehicle(client) { logToConsole(LOG_DEBUG, `Removing ${getPlayerDisplayForConsole(client)} from their vehicle`); @@ -179,20 +173,42 @@ function removePlayerFromVehicle(client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerSkin(client, skin) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s skin to ${skin} (${getSkinNameFromId(skin)})`); client.player.modelIndex = skin; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerSkin(client) { return client.player.modelIndex; } -// --------------------------------------------------------------------------- +// =========================================================================== + +function setPlayerCash(client, amount) { + getPlayerCurrentSubAccount(client).cash = amount; + updatePlayerCash(client); +} + +// =========================================================================== + +function givePlayerCash(client, amount) { + getPlayerCurrentSubAccount(client).cash += amount; + updatePlayerCash(client); +} + +// =========================================================================== + +function takePlayerCash(client, amount) { + getPlayerCurrentSubAccount(client).cash -= amount; + updatePlayerCash(client); +} + + +// =========================================================================== function disconnectPlayer(client) { logToConsole(LOG_DEBUG, `Disconnecting (kicking) ${getPlayerDisplayForConsole(client)}`); @@ -200,44 +216,44 @@ function disconnectPlayer(client) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getElementSyncer(element) { return getClients()[element.syncer]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerWeaponAmmo(client) { return client.player.weaponAmmunition; } -// --------------------------------------------------------------------------- +// =========================================================================== function setPlayerVelocity(client, velocity) { logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s velocity to ${velocity.x}, ${velocity.y}, ${velocity.z}`); client.player.velocity = velocity; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerVelocity(client, velocity) { return client.player.velocity; } -// --------------------------------------------------------------------------- +// =========================================================================== function getElementDimension(element) { return element.dimension; } -// --------------------------------------------------------------------------- +// =========================================================================== function setElementDimension(element, dimension) { return element.dimension = dimension; } -// --------------------------------------------------------------------------- +// =========================================================================== function givePlayerHealth(client, amount) { if(getPlayerHealth(client)+amount > 100) { @@ -249,7 +265,7 @@ function givePlayerHealth(client, amount) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function givePlayerArmour(client, amount) { if(getPlayerArmour(client)+amount > 100) { @@ -261,4 +277,4 @@ function givePlayerArmour(client, amount) { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/npc.js b/scripts/server/npc.js index 545a5a6a..c8d1b345 100644 --- a/scripts/server/npc.js +++ b/scripts/server/npc.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: npc.js // DESC: Provides NPC usage and functions // TYPE: Server (JavaScript) @@ -16,7 +16,7 @@ const triggerSource = { house, }; -// --------------------------------------------------------------------------- +// =========================================================================== const NPC = { Trigger: { @@ -110,10 +110,10 @@ const NPC = { } }; -// --------------------------------------------------------------------------- +// =========================================================================== function npcTrigger(triggerName, triggerSource) { } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/npc/biker.js b/scripts/server/npc/biker.js index 17c3b6b2..704df539 100644 --- a/scripts/server/npc/biker.js +++ b/scripts/server/npc/biker.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: biker.js // DESC: Provides biker NPC interaction and functionality // TYPE: Server (JavaScript) diff --git a/scripts/server/npc/drugdealer.js b/scripts/server/npc/drugdealer.js index 241efa28..43bcb88f 100644 --- a/scripts/server/npc/drugdealer.js +++ b/scripts/server/npc/drugdealer.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: drugdealer.js // DESC: Provides drug dealer NPC interaction and functionality // TYPE: Server (JavaScript) diff --git a/scripts/server/npc/firefighter.js b/scripts/server/npc/firefighter.js index c52a5f6c..96810c8d 100644 --- a/scripts/server/npc/firefighter.js +++ b/scripts/server/npc/firefighter.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: firefighter.js // DESC: Provides firefighter NPC interaction and functionality // TYPE: Server (JavaScript) diff --git a/scripts/server/npc/gang.js b/scripts/server/npc/gang.js index 963f67f3..4e0d66ab 100644 --- a/scripts/server/npc/gang.js +++ b/scripts/server/npc/gang.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: gangsta.js // DESC: Provides street gang/hoodlum NPC interaction and functionality // TYPE: Server (JavaScript) diff --git a/scripts/server/npc/mafia.js b/scripts/server/npc/mafia.js index 2e76fdcf..551585f6 100644 --- a/scripts/server/npc/mafia.js +++ b/scripts/server/npc/mafia.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: mafia.js // DESC: Provides mafia/mafioso NPC interaction and functionality // TYPE: Server (JavaScript) diff --git a/scripts/server/npc/normal.js b/scripts/server/npc/normal.js index 1b77b8e7..e39f88aa 100644 --- a/scripts/server/npc/normal.js +++ b/scripts/server/npc/normal.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: normal.js // DESC: Provides normal/generic civilian NPC interaction and functionality // TYPE: Server (JavaScript) diff --git a/scripts/server/npc/paramedic.js b/scripts/server/npc/paramedic.js index b13777a3..8c4087dd 100644 --- a/scripts/server/npc/paramedic.js +++ b/scripts/server/npc/paramedic.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: paramedic.js // DESC: Provides paramedic NPC interaction and functionality // TYPE: Server (JavaScript) diff --git a/scripts/server/npc/police.js b/scripts/server/npc/police.js index 209c9c46..616aad1f 100644 --- a/scripts/server/npc/police.js +++ b/scripts/server/npc/police.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: police.js // DESC: Provides police officer NPC interaction and functionality // TYPE: Server (JavaScript) diff --git a/scripts/server/security.js b/scripts/server/security.js index 455262d8..69aaf074 100644 --- a/scripts/server/security.js +++ b/scripts/server/security.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: security.js // DESC: Provides security functions and usage // TYPE: Server (JavaScript) diff --git a/scripts/server/startup.js b/scripts/server/startup.js index f684312d..40e10e3c 100644 --- a/scripts/server/startup.js +++ b/scripts/server/startup.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: startup.js // DESC: Provides startup/shutdown procedures // TYPE: Server (JavaScript) @@ -42,7 +42,7 @@ function initServerScripts() { initCommandScript(); } -// --------------------------------------------------------------------------- +// =========================================================================== function checkForHashingModule() { if(typeof module.hashing == "undefined") { @@ -51,7 +51,7 @@ function checkForHashingModule() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function checkForMySQLModule() { if(typeof module.mysql == "undefined") { @@ -61,7 +61,7 @@ function checkForMySQLModule() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function checkForSMTPModule() { if(typeof module.smtp == "undefined") { @@ -71,7 +71,7 @@ function checkForSMTPModule() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function checkForAllRequiredModules() { logToConsole(LOG_DEBUG, "[Asshat.Startup]: Checking for required modules ..."); @@ -98,8 +98,8 @@ function checkForAllRequiredModules() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== initServerScripts(); -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/subaccount.js b/scripts/server/subaccount.js index c4e32cc5..653c2402 100644 --- a/scripts/server/subaccount.js +++ b/scripts/server/subaccount.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: subaccount.js // DESC: Provides subaccount (character) functions and usage // TYPE: Server (JavaScript) @@ -13,7 +13,7 @@ function initSubAccountScript() { logToConsole(LOG_DEBUG, "[Asshat.SubAccount]: SubAccount script initialized!"); } -// --------------------------------------------------------------------------- +// =========================================================================== function loadSubAccountFromName(firstName, lastName) { let dbConnection = connectToDatabase(); @@ -33,7 +33,7 @@ function loadSubAccountFromName(firstName, lastName) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadSubAccountFromId(subAccountId) { let dbConnection = connectToDatabase(); @@ -51,7 +51,7 @@ function loadSubAccountFromId(subAccountId) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadSubAccountsFromAccount(accountId) { let tempSubAccounts = []; @@ -75,7 +75,7 @@ function loadSubAccountsFromAccount(accountId) { return tempSubAccounts; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveSubAccountToDatabase(subAccountData) { let dbConnection = connectToDatabase(); @@ -153,7 +153,7 @@ function saveSubAccountToDatabase(subAccountData) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createSubAccount(accountId, firstName, lastName, skinId, dateOfBirth, placeOfOrigin) { logToConsole(LOG_DEBUG, `[Asshat.Account] Attempting to create subaccount ${firstName} ${lastName} in database`); @@ -174,7 +174,7 @@ function createSubAccount(accountId, firstName, lastName, skinId, dateOfBirth, p return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function showCharacterSelectToClient(client) { getPlayerData(client).switchingCharacter = true; @@ -205,7 +205,7 @@ function showCharacterSelectToClient(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function checkNewCharacter(client, firstName, lastName, dateOfBirth, placeOfOrigin, skinId) { if(areParamsEmpty(firstName)) { @@ -252,7 +252,7 @@ function checkNewCharacter(client, firstName, lastName, dateOfBirth, placeOfOrig } -// --------------------------------------------------------------------------- +// =========================================================================== function checkPreviousCharacter(client) { if(getPlayerData(client).subAccounts.length > 1) { @@ -269,7 +269,7 @@ function checkPreviousCharacter(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function checkNextCharacter(client) { if(getPlayerData(client).subAccounts.length > 1) { @@ -286,7 +286,7 @@ function checkNextCharacter(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function selectCharacter(client, characterId = -1) { logToConsole(LOG_DEBUG, `[Asshat.SubAccount] ${getPlayerDisplayForConsole(client)} character select called (Character ID ${characterId})`); @@ -320,7 +320,7 @@ function selectCharacter(client, characterId = -1) { getPlayerCurrentSubAccount(client).lastLogin = new Date().getTime(); } -// --------------------------------------------------------------------------- +// =========================================================================== function switchCharacterCommand(command, params, client) { logToConsole(LOG_DEBUG, `[Asshat.SubAccount] ${getPlayerDisplayForConsole(client)} is requesting to switch characters (current character: ${getCharacterFullName(client)} [${getPlayerData(client).currentSubAccount}/${getPlayerCurrentSubAccount(client).databaseId}])`); @@ -351,7 +351,7 @@ function switchCharacterCommand(command, params, client) { showCharacterSelectToClient(client); } -// --------------------------------------------------------------------------- +// =========================================================================== function newCharacterCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -366,7 +366,7 @@ function newCharacterCommand(command, params, client) { checkNewCharacter(client, firstName, lastName, "01/01/1901", "Liberty City", getServerConfig().newCharacter.skin); } -// --------------------------------------------------------------------------- +// =========================================================================== function useCharacterCommand(command, params, client) { if(!getPlayerData(client).switchingCharacter) { @@ -384,7 +384,7 @@ function useCharacterCommand(command, params, client) { selectCharacter(client, characterId-1); } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerLastUsedSubAccount(client) { let subAccounts = getPlayerData(client).subAccounts; @@ -397,22 +397,44 @@ function getPlayerLastUsedSubAccount(client) { return lastUsed; } -// --------------------------------------------------------------------------- +// =========================================================================== function transferCharacterToServer(subAccountDatabaseId, newServerId) { quickDatabaseQuery(`UPDATE sacct_main SET sacct_server = ${newServerId}, sacct_skin = ${loadServerConfigFromId(newServerId).newCharacter.skin} WHERE sacct_id = ${subAccountDatabaseId} LIMIT 1;`); } -// --------------------------------------------------------------------------- +// =========================================================================== function getCharacterFullName(client) { return `${getPlayerCurrentSubAccount(client).firstName} ${getPlayerCurrentSubAccount(client).lastName}`; } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerSwitchingCharacter(client) { return getPlayerData(client).switchingCharacter; } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== + +function getPlayerCurrentSubAccount(client) { + if(!getPlayerData(client)) { + return false; + } + + let subAccountId = getPlayerData(client).currentSubAccount; + if(subAccountId == -1) { + return false; + } + + return getPlayerData(client).subAccounts[subAccountId]; +} + +// =========================================================================== + +function getClientSubAccountName(client) { + let subAccountData = getPlayerCurrentSubAccount(client); + return `${subAccountData.firstName} ${subAccountData.lastName}`; +} + +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/timers.js b/scripts/server/timers.js index a1afd526..ca64b978 100644 --- a/scripts/server/timers.js +++ b/scripts/server/timers.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: timers.js // DESC: Provides timer functions and features // TYPE: Server (JavaScript) @@ -12,13 +12,13 @@ const { slice } = require("core-js/core/array"); let serverTimers = {}; -// --------------------------------------------------------------------------- +// =========================================================================== function updateTimeRule() { server.setRule("Time", makeReadableTime(gta.time.hour, gta.time.minute)); } -// --------------------------------------------------------------------------- +// =========================================================================== function saveAllServerDataToDatabase() { logToConsole(LOG_DEBUG, "[Asshat.Utilities]: Saving all server data to database ..."); @@ -32,7 +32,7 @@ function saveAllServerDataToDatabase() { logToConsole(LOG_DEBUG, "[Asshat.Utilities]: Saved all server data to database!"); } -// --------------------------------------------------------------------------- +// =========================================================================== function initTimers() { if(!isDevelopmentServer()) { @@ -45,7 +45,7 @@ function initTimers() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function vehicleRentCheck() { for(let i in getServerData().vehicles) { @@ -65,7 +65,7 @@ function vehicleRentCheck() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function updatePings() { let clients = getClients(); @@ -76,7 +76,7 @@ function updatePings() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function checkPayDays() { let clients = getClients(); @@ -90,4 +90,4 @@ function checkPayDays() { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/translate.js b/scripts/server/translate.js index e3751e76..19b1ce33 100644 --- a/scripts/server/translate.js +++ b/scripts/server/translate.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: translate.js // DESC: Provides translation functions // TYPE: Server (JavaScript) @@ -151,7 +151,7 @@ let translationLanguages = [ translationCache = []; -// --------------------------------------------------------------------------- +// =========================================================================== async function translateMessage(messageText, translateFrom = defaultLanguageId, translateTo = defaultLanguageId) { if(translateFrom == translateTo) { @@ -182,32 +182,32 @@ async function translateMessage(messageText, translateFrom = defaultLanguageId, }); } -// --------------------------------------------------------------------------- +// =========================================================================== function addTranslationToCache(originalText, translatedText, fromLanguageId, toLanguageId) { translationCache[fromLanguageId][toLanguageId].push([originalText, translatedText]); return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function formatTranslationURL(originalText, fromLanguageId, toLanguageId) { return getServerData().translation.translationBaseURL.format(encodeURI(originalText), getLanguageShortCode(fromLanguageId), getLanguageShortCode(toLanguageId)); } -// --------------------------------------------------------------------------- +// =========================================================================== function getLanguageShortCode(languageId) { return translationLanguages[languageId][1]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getLanguageFullName(languageId) { return translationLanguages[languageId][0]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getLanguageIdFromFullName(languageName) { let languages = translationLanguages; @@ -219,7 +219,7 @@ function getLanguageIdFromFullName(languageName) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getLanguageIdFromShortCode(languageShortCode) { let languages = translationLanguages; @@ -231,4 +231,4 @@ function getLanguageIdFromShortCode(languageShortCode) { return false; } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/trigger.js b/scripts/server/trigger.js index 4c9e1a3d..ea29e422 100644 --- a/scripts/server/trigger.js +++ b/scripts/server/trigger.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: trigger.js // DESC: Provides trigger system functions and usage // TYPE: Server (JavaScript) @@ -49,7 +49,7 @@ const triggerTypes = { onVehicleExtraChange, }; -// --------------------------------------------------------------------------- +// =========================================================================== function initTriggerScript() { logToConsole(LOG_DEBUG, "[Asshat.Trigger]: Initializing trigger script ..."); @@ -57,7 +57,7 @@ function initTriggerScript() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function createTriggerCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -66,7 +66,7 @@ function createTriggerCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteTriggerCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -75,7 +75,7 @@ function deleteTriggerCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function addTriggerConditionCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -84,7 +84,7 @@ function addTriggerConditionCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function removeTriggerConditionCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -93,7 +93,7 @@ function removeTriggerConditionCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function addTriggerResponseCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -102,7 +102,7 @@ function addTriggerResponseCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function removeTriggerResponseCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -111,7 +111,7 @@ function removeTriggerResponseCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function listTriggersCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -120,7 +120,7 @@ function listTriggersCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function listTriggerConditionsCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -129,7 +129,7 @@ function listTriggerConditionsCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function listTriggerResponsesCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -138,7 +138,7 @@ function listTriggerResponsesCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleTriggerEnabledCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -147,4 +147,4 @@ function toggleTriggerEnabledCommand(command, params, client) { } } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/tutorial.js b/scripts/server/tutorial.js index d12460bd..ea29d2e2 100644 --- a/scripts/server/tutorial.js +++ b/scripts/server/tutorial.js @@ -2,29 +2,29 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: tutorial.js // DESC: Provides tutorial functions and features // TYPE: Server (JavaScript) // =========================================================================== -// --------------------------------------------------------------------------- +// =========================================================================== function startTutorial(client) { getPlayerData(client).tutorialItem = createGroundItem(tutorialItem[0], tutorialItem[1], tutorialItem[3]); getPlayerData(client).tutorialVehicle = createGroundItem(tutorialItem[0], tutorialItem[1], tutorialItem[3]); } -// --------------------------------------------------------------------------- +// =========================================================================== function hasPlayerFinishedTutorial(client) { } -// --------------------------------------------------------------------------- +// =========================================================================== function isPlayerInTutorial(client) { } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/server/utilities.js b/scripts/server/utilities.js index 454990d4..3d4be963 100644 --- a/scripts/server/utilities.js +++ b/scripts/server/utilities.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: utilities.js // DESC: Provides util functions and arrays with data // TYPE: Server (JavaScript) @@ -22,7 +22,7 @@ let disconnectReasons = [ "Crashed" ]; -// --------------------------------------------------------------------------- +// =========================================================================== let policeStations = [ [], @@ -40,7 +40,7 @@ let policeStations = [ ], ]; -// --------------------------------------------------------------------------- +// =========================================================================== let fireStations = [ [], @@ -55,7 +55,7 @@ let fireStations = [ ], ]; -// --------------------------------------------------------------------------- +// =========================================================================== let hospitals = [ [], @@ -70,7 +70,7 @@ let hospitals = [ ], ] -// --------------------------------------------------------------------------- +// =========================================================================== let payAndSprays = [ [], @@ -85,7 +85,7 @@ let payAndSprays = [ ], ]; -// --------------------------------------------------------------------------- +// =========================================================================== let ammuNations = [ [], @@ -99,7 +99,7 @@ let ammuNations = [ ], ]; -// --------------------------------------------------------------------------- +// =========================================================================== let hiddenPackages = [ [ @@ -208,7 +208,7 @@ let hiddenPackages = [ [] ]; -// --------------------------------------------------------------------------- +// =========================================================================== let weekDays = [ "Sunday", @@ -220,7 +220,7 @@ let weekDays = [ "Saturday" ]; -// --------------------------------------------------------------------------- +// =========================================================================== let months = [ "January", @@ -237,7 +237,7 @@ let months = [ "December" ]; -// --------------------------------------------------------------------------- +// =========================================================================== let cardinalDirections = [ "North", @@ -251,7 +251,7 @@ let cardinalDirections = [ "Unknown" ]; -// --------------------------------------------------------------------------- +// =========================================================================== function areParamsEmpty(params) { if(!params || params == "" || params.length == 0 || typeof params == "undefined") { @@ -261,46 +261,46 @@ function areParamsEmpty(params) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getParamsCount(params, delimiter = " ") { return params.split(delimiter).length; } -// --------------------------------------------------------------------------- +// =========================================================================== function areThereEnoughParams(params, requiredAmount, delimiter = " ") { return (params.split(delimiter).length >= requiredAmount); } -// --------------------------------------------------------------------------- +// =========================================================================== function getParams(params, delimiter, index) { return params.split(delimiter)[index]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getCardinalDirectionName(cardinalDirectionId) { let cardinalDirections = ["North", "Northeast", "East", "Southeast", "South", "Southwest", "West", "Northwest", "Unknown" ]; return cardinalDirections[cardinalDirectionId]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getWeekDayName(weekdayId) { let weekdayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]; return weekdayNames[weekdayId]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getMonthName(monthId) { let monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; return monthNames[monthId]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getWeaponModelId(weaponId) { let weaponModels = [ @@ -310,7 +310,7 @@ function getWeaponModelId(weaponId) { return weaponModels[getServerGame()][weaponId]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getIsland(position) { if(getServerGame() == GAME_GTA_III) { @@ -327,19 +327,19 @@ function getIsland(position) { //return gta.getIslandFromPosition(position); } -// --------------------------------------------------------------------------- +// =========================================================================== function openAllGarages() { } -// --------------------------------------------------------------------------- +// =========================================================================== function closeAllGarages() { } -// --------------------------------------------------------------------------- +// =========================================================================== function replaceEmojiIntoString(message) { for(let i in emojiReplaceString) { @@ -348,7 +348,7 @@ function replaceEmojiIntoString(message) { return message; } -// --------------------------------------------------------------------------- +// =========================================================================== function makeReadableTime(hour, minute) { let hourStr = toString(hour); @@ -377,7 +377,7 @@ function makeReadableTime(hour, minute) { return hourStr + ":" + minuteStr + " " + meridianStr; } -// --------------------------------------------------------------------------- +// =========================================================================== function getHeadingFromPosToPos(pos1, pos2) { let x = pos2.x-pos1.x; @@ -389,19 +389,19 @@ function getHeadingFromPosToPos(pos1, pos2) { return degToRad(deg); } -// --------------------------------------------------------------------------- +// =========================================================================== function degToRad(deg) { return deg * Math.PI / 180; } -// --------------------------------------------------------------------------- +// =========================================================================== function radToDeg(rad) { return rad * 180 / Math.PI; } -// --------------------------------------------------------------------------- +// =========================================================================== function getAngleInCircleFromCenter(center, total, current) { let gap = 360 / total; @@ -418,7 +418,7 @@ function getAngleInCircleFromCenter(center, total, current) { return degToRad(deg); } -// --------------------------------------------------------------------------- +// =========================================================================== function getClosestVehicle(position) { let vehicles = getServerData().vehicles; @@ -431,34 +431,13 @@ function getClosestVehicle(position) { return vehicles[closest].vehicle; } -// --------------------------------------------------------------------------- - -function getClosestCivilian(position) { - return getElementsByType(ELEMENT_CIVILIAN).reduce((i, j) => ((i.position.distance(position) <= j.position.distance(position)) ? i : j)); -} - -// --------------------------------------------------------------------------- - -function getClosestPlayer(position, exemptClient) { - let clients = getClients(); - let closest = 0; - for(let i in clients) { - if(exemptClient != clients[i]) { - if(getDistance(getPlayerPosition(clients[i]), position) < getDistance(getPlayerPosition(clients[closest]), position)) { - closest = i; - } - } - } - return clients[closest]; -} - -// --------------------------------------------------------------------------- +// =========================================================================== function getClosestElementByType(elementType, position) { return getElementsByType(elementType).reduce((i, j) => ((i.position.distance(position) <= j.position.distance(position)) ? i : j)); } -// --------------------------------------------------------------------------- +// =========================================================================== function getClosestJobLocation(position) { let closestJobLocation = false; @@ -472,61 +451,37 @@ function getClosestJobLocation(position) { return closestJobLocation; } -// --------------------------------------------------------------------------- +// =========================================================================== function getJobIndex(jobData) { return getServerData().jobs.indexOf(jobData); } -// --------------------------------------------------------------------------- - -function getVehiclesInRange(position, distance) { - return getElementsByType(ELEMENT_VEHICLE).filter(x => x.player && x.position.distance(position) <= distance); -} - -// --------------------------------------------------------------------------- - -function getClientsInRange(position, distance) { - return getPlayersInRange(position, distance); -} - -// --------------------------------------------------------------------------- - -function getCiviliansInRange(position, distance) { - return getElementsByType(ELEMENT_CIVILIAN).filter(x => x.position.distance(position) <= distance); -} - -// --------------------------------------------------------------------------- - -function getElementsByTypeInRange(elementType, position, distance) { - return getElementsByType(elementType).filter(x => x.position.distance(position) <= distance); -} - -// --------------------------------------------------------------------------- +// =========================================================================== function getJobPointsInRange(position, distance) { return getServerData().jobs[getServerGame()].filter(x => x.position.distance(position) <= distance); } -// --------------------------------------------------------------------------- +// =========================================================================== function getWeaponName(weapon) { return weaponNames[getServerGame()][weapon]; } -// --------------------------------------------------------------------------- +// =========================================================================== function vec3ToVec2(pos) { return toVector2(pos[0], pos[1]); } -// --------------------------------------------------------------------------- +// =========================================================================== function vec3ToVec3(pos, z) { return toVector3(pos[0], pos[1], z); } -// --------------------------------------------------------------------------- +// =========================================================================== function isParamsInvalid(params) { if(params == null) { @@ -544,84 +499,7 @@ function isParamsInvalid(params) { return false; } -// --------------------------------------------------------------------------- - -function isValidVehicleModel(modelId) { - if(getServerGame() == GAME_GTA_III) { - if(modelId < 90 || modelId > 150) { - return false; - } - - return true; - } - - if(getServerGame() == GAME_GTA_VC) { - if(modelId < 130 || modelId > 236) { - return false; - } - - return true; - } - - if(getServerGame() == GAME_GTA_SA) { - return true; - } - - if(getServerGame() == GAME_GTA_IV) { - return true; - } - - return false; -} - -// --------------------------------------------------------------------------- - -function getVehicleModelIdFromParams(params) { - if(isNaN(params)) { - let modelId = getVehicleModelIdFromName(params); - - if(!modelId) { - return false; - } - - if(isValidVehicleModel(toInteger(modelId))) { - return toInteger(modelId); - } - - return false; - } else { - if(isValidVehicleModel(toInteger(params))) { - return toInteger(params); - } - - return false; - } - - return false; -} - -// --------------------------------------------------------------------------- - -function getVehicleModelIdFromName(params) { - if(isGTAIV()) { - for(let i in getGameData().gtaivVehicleModels) { - if(toLowerCase(getGameData().gtaivVehicleModels[i][0]).indexOf(toLowerCase(params)) != -1) { - return getGameData().gtaivVehicleModels[i][1]; - } - } - } else { - let vehicleNames = getGameData().vehicleNames[getServerGame()]; - for(let i in vehicleNames) { - if(toLowerCase(vehicleNames[i]).indexOf(toLowerCase(params)) != -1) { - return toInteger(i)+toInteger(getGameData().vehicleModelIdStart[getServerGame()]); - } - } - } - - return false; -} - -// --------------------------------------------------------------------------- +// =========================================================================== function doesWordStartWithVowel(word) { switch(toLowerCase(word.substr(0,1))) { @@ -639,22 +517,7 @@ function doesWordStartWithVowel(word) { return false; } -// --------------------------------------------------------------------------- - -function getVehicleNameFromModelId(modelId) { - if(isGTAIV()) { - for(let i in getGameData().gtaivVehicleModels) { - if(getGameData().gtaivVehicleModels[i][1] == modelId) { - return getGameData().gtaivVehicleModels[i][0]; - } - } - } else { - let modelIndex = modelId-getGameData().vehicleModelIdStart[getServerGame()]; - return getGameData().vehicleNames[getServerGame()][modelIndex]; - } -} - -// --------------------------------------------------------------------------- +// =========================================================================== function replaceEmojiIntoString(message) { for(let i in emojiReplaceString) { @@ -665,14 +528,7 @@ function replaceEmojiIntoString(message) { return message; } -// --------------------------------------------------------------------------- - -function getSyncerFromId(syncerId) { - let clients = getClients(); - return clients[syncerId]; -} - -// --------------------------------------------------------------------------- +// =========================================================================== function getClientFromName(clientName) { let clients = getClients(); @@ -690,7 +546,7 @@ function getClientFromName(clientName) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getClientFromPlayer(player) { let clients = getClients(); @@ -703,21 +559,7 @@ function getClientFromPlayer(player) { return false; } -// --------------------------------------------------------------------------- - -function getFirstEmptyEffectSlot(isServer = false) { - if(isServer) { - for(let i in effects) { - if(!effects[i].exists) { - return i; - } - } - } - - return false; -} - -// --------------------------------------------------------------------------- +// =========================================================================== function packData(...args) { for(let i in args) { @@ -735,38 +577,13 @@ function packData(...args) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function combine(a, b, c) { return toInteger((a << 20) | (b << 10) | c); } -// --------------------------------------------------------------------------- - -function createBitwiseTable(tableKeys) { - let bitVal = 0; - let bitTable = {}; - let incVal = 1; - - for(let i in tableKeys) { - let key = tableKeys[i]; - bitTable[key] = bitVal; - bitVal = 1 << incVal; - incVal++; - } - return bitTable; -} - -// --------------------------------------------------------------------------- - -function hasBitFlag(checkThis, checkFor) { - if(checkThis & checkFor) { - return true; - } - return false; -} - -// --------------------------------------------------------------------------- +// =========================================================================== function killDeathRatio(kills, deaths) { if(deaths == 0 || kills == 0) { @@ -775,7 +592,7 @@ function killDeathRatio(kills, deaths) { return Float((iKills*100/iDeaths) * 0.01); } -// --------------------------------------------------------------------------- +// =========================================================================== function getCardinalDirection(pos1, pos2) { let a = pos1.x - pos2.x; @@ -834,7 +651,7 @@ function getCardinalDirection(pos1, pos2) { return na; } -// --------------------------------------------------------------------------- +// =========================================================================== function getTimeDifferenceDisplay(unixTimeOne, unixTimeTwo) { let timeDifference = unixTimeOne-unixTimeTwo; @@ -858,7 +675,7 @@ function getTimeDifferenceDisplay(unixTimeOne, unixTimeTwo) { return hourString + " and " + minuteString; } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehiclesInRange(position, range) { let vehicles = getVehicles(); @@ -871,7 +688,7 @@ function getVehiclesInRange(position, range) { return inRangeVehicles; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayersInRange(position, range) { let clients = getClients(); @@ -886,7 +703,7 @@ function getPlayersInRange(position, range) { return inRangePlayers; } -// --------------------------------------------------------------------------- +// =========================================================================== function getCiviliansInRange(position, range) { let peds = getPeds(); @@ -901,7 +718,7 @@ function getCiviliansInRange(position, range) { return inRangeCivilians; } -// --------------------------------------------------------------------------- +// =========================================================================== function getFileData(filePath) { let file = openFile(filePath, false); @@ -913,10 +730,9 @@ function getFileData(filePath) { return fileData; } -// --------------------------------------------------------------------------- +// =========================================================================== -function setFileData(filePath, fileData) -{ +function setFileData(filePath, fileData) { let file = openFile(filePath, true); if(!file) { return false; @@ -926,24 +742,13 @@ function setFileData(filePath, fileData) return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function is2dPositionOnScreen(pos2d) { return pos2d.x >= 0 && pos2d.y >= 0 && pos2d.x <= game.width && pos2d.y <= game.height; } -// --------------------------------------------------------------------------- - -function getRandomRGB() { - return toColour.apply(null, [ - getRandom(0, 255), - getRandom(0, 255), - getRandom(0, 255), - 255 - ]); -} - -// --------------------------------------------------------------------------- +// =========================================================================== function breakText(text, maxLength) { let lines = []; @@ -961,40 +766,13 @@ function breakText(text, maxLength) { return lines; } -// --------------------------------------------------------------------------- +// =========================================================================== function getSpeedFromVelocity(vel) { return Math.sqrt(vel.x*vel.x + vel.y*vel.y + vel.z*vel.z); } -// --------------------------------------------------------------------------- - -function getRandom(min, max) { - return Math.floor(Math.random() * (parseInt(max) - parseInt(min) + 1)) + parseInt(min) -} - -// --------------------------------------------------------------------------- - -function getArrayOfElementId(elements) { - let tempArray = []; - for(let i in elements) { - tempArray.push(elements[i].id); - } - - return tempArray; -} - -// --------------------------------------------------------------------------- - -function Enum(constantsList) { - let tempTable = {}; - for(let i in constantsList) { - tempTable[constantsList[i]] = i; - } - return tempTable; -} - -// --------------------------------------------------------------------------- +// =========================================================================== function isValidSkin(skin, game = GAME_GTA_III) { if(game == GAME_GTA_III) { @@ -1010,27 +788,7 @@ function isValidSkin(skin, game = GAME_GTA_III) { } } -// --------------------------------------------------------------------------- - -function getClientVirtualWorld(client) { - if(isClientSpawned(client)) { - return getClientPlayer(client).dimension; - } - - return 0; -} - -// --------------------------------------------------------------------------- - -function getClientInterior(client) { - if(isClientSpawned(client)) { - return getClientPlayer(client).interior; - } - - return 0; -} - -// --------------------------------------------------------------------------- +// =========================================================================== function getPositionArea(position) { if(typeof position == "Vec3") { @@ -1047,7 +805,7 @@ function getPositionArea(position) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getAreaName(position) { let areaId = getPositionArea(position); @@ -1058,13 +816,13 @@ function getAreaName(position) { return getGameAreas()[areaId][0]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getGameAreas(gameId) { return gameAreas[gameId]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerData(client) { if(client != null) { @@ -1073,29 +831,7 @@ function getPlayerData(client) { return false; } -// --------------------------------------------------------------------------- - -function getPlayerCurrentSubAccount(client) { - if(!getPlayerData(client)) { - return false; - } - - let subAccountId = getPlayerData(client).currentSubAccount; - if(subAccountId == -1) { - return false; - } - - return getPlayerData(client).subAccounts[subAccountId]; -} - -// --------------------------------------------------------------------------- - -function getClientSubAccountName(client) { - let subAccountData = getPlayerCurrentSubAccount(client); - return `${subAccountData.firstName} ${subAccountData.lastName}`; -} - -// --------------------------------------------------------------------------- +// =========================================================================== function createAllLocationBlips() { createAllPoliceStationBlips(); @@ -1106,7 +842,7 @@ function createAllLocationBlips() { createAllAmmunationBlips(); } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllPoliceStationBlips() { if(getGameConfig().blipSprites[getServerGame()].policeStation != -1) { @@ -1116,7 +852,7 @@ function createAllPoliceStationBlips() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllFireStationBlips() { if(getGameConfig().blipSprites[getServerGame()].fireStation != -1) { @@ -1126,7 +862,7 @@ function createAllFireStationBlips() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllHospitalBlips() { if(getGameConfig().blipSprites[getServerGame()].hospital != -1) { @@ -1136,7 +872,7 @@ function createAllHospitalBlips() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllAmmunationBlips() { if(getGameConfig().blipSprites[getServerGame()].ammunation != -1) { @@ -1146,7 +882,7 @@ function createAllAmmunationBlips() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllPayAndSprayBlips() { if(getGameConfig().blipSprites[getServerGame()].payAndSpray != -1) { @@ -1156,7 +892,7 @@ function createAllPayAndSprayBlips() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function createAllFuelStationBlips() { if(getGameConfig().blipSprites[getServerGame()].fuelStation != -1) { @@ -1166,133 +902,21 @@ function createAllFuelStationBlips() { } } -// --------------------------------------------------------------------------- +// =========================================================================== -function sendAllPoliceStationBlips(client) { - if(getGameConfig().blipSprites[getServerGame()].policeStation != -1) { - let tempBlips = []; - for(let i in getServerData().policeStations[getServerGame()]) { - tempBlips.push([ - getGameConfig().blipSprites[getServerGame()].policeStation, - getServerData().policeStations[getServerGame()][i].position.x, - getServerData().policeStations[getServerGame()][i].position.y, - getServerData().policeStations[getServerGame()][i].position.z, - 3, - getColourByName("policeBlue"), - ]); - } - triggerNetworkEvent("ag.blips", client, tempBlips); - } -} - -// --------------------------------------------------------------------------- - -function sendAllFireStationBlips(client) { - if(getGameConfig().blipSprites[getServerGame()].fireStation != -1) { - let tempBlips = []; - for(let i in getServerData().fireStations[getServerGame()]) { - tempBlips.push([ - getGameConfig().blipSprites[getServerGame()].fireStation, - getServerData().fireStations[getServerGame()][i].position.x, - getServerData().fireStations[getServerGame()][i].position.y, - getServerData().fireStations[getServerGame()][i].position.z, - 3, - getColourByName("firefighterRed"), - ]); - } - triggerNetworkEvent("ag.blips", client, tempBlips); - } -} - -// --------------------------------------------------------------------------- - -function sendAllHospitalBlips(client) { - if(getGameConfig().blipSprites[getServerGame()].hospital != -1) { - let tempBlips = []; - for(let i in getServerData().hospitals[getServerGame()]) { - tempBlips.push([ - getGameConfig().blipSprites[getServerGame()].hospital, - getServerData().hospitals[getServerGame()][i].position.x, - getServerData().hospitals[getServerGame()][i].position.y, - getServerData().hospitals[getServerGame()][i].position.z, - 3, - getColourByName("medicPink"), - ]); - } - triggerNetworkEvent("ag.blips", client, tempBlips); - } -} - -// --------------------------------------------------------------------------- - -function sendAllAmmunationBlips(client) { - if(getGameConfig().blipSprites[getServerGame()].ammunation != -1) { - let tempBlips = []; - for(let i in getServerData().ammunations[getServerGame()]) { - tempBlips.push([ - getGameConfig().blipSprites[getServerGame()].ammunation, - getServerData().ammunations[getServerGame()][i].position.x, - getServerData().ammunations[getServerGame()][i].position.y, - getServerData().ammunations[getServerGame()][i].position.z, - 3, - 0 - ]); - } - triggerNetworkEvent("ag.blips", client, tempBlips); - } -} - -// --------------------------------------------------------------------------- - -function sendAllPayAndSprayBlips(client) { - if(getGameConfig().blipSprites[getServerGame()].payAndSpray != -1) { - let tempBlips = []; - for(let i in getServerData().payAndSprays[getServerGame()]) { - tempBlips.push([ - getGameConfig().blipSprites[getServerGame()].payAndSpray, - getServerData().payAndSprays[getServerGame()][i].position.x, - getServerData().payAndSprays[getServerGame()][i].position.y, - getServerData().payAndSprays[getServerGame()][i].position.z, - 3, - 0 - ]); - } - triggerNetworkEvent("ag.blips", client, tempBlips); - } -} - -// --------------------------------------------------------------------------- - -function sendAllFuelStationBlips(client) { - if(getGameConfig().blipSprites[getServerGame()].fuelStation != -1) { - let tempBlips = []; - for(let i in getServerData().fuelStations[getServerGame()]) { - tempBlips.push([ - getGameConfig().blipSprites[getServerGame()].fuelStation, - getServerData().fuelStations[getServerGame()][i].position.x, - getServerData().fuelStations[getServerGame()][i].position.y, - getServerData().fuelStations[getServerGame()][i].position.z, - 3, - getColourByName("burntOrange"), - ]); - } - triggerNetworkEvent("ag.blips", client, tempBlips); - } -} - -// --------------------------------------------------------------------------- +// =========================================================================== function getPickupOwnerType(pickup) { return pickup.getData("ag.ownerType"); } -// --------------------------------------------------------------------------- +// =========================================================================== function getPickupOwnerId(pickup) { return pickup.getData("ag.ownerId"); } -// --------------------------------------------------------------------------- +// =========================================================================== function canPlayerUsePoliceJob(client) { if(getPlayerData(client).accountData.flags.moderation & getServerBitFlags().moderationFlags.policeBanned) { @@ -1302,7 +926,7 @@ function canPlayerUsePoliceJob(client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function canClientUseFireJob(client) { if(getPlayerData(client).accountData.flags.moderation & getServerBitFlags().moderationFlags.fireBanned) { @@ -1312,7 +936,7 @@ function canClientUseFireJob(client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function canClientUseAmmunations(client) { if(getPlayerData(client).accountData.flags.moderation & getServerBitFlags().moderationFlags.ammuBanned) { @@ -1322,7 +946,7 @@ function canClientUseAmmunations(client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function canClientUseGuns(client) { if(getPlayerData(client).accountData.flags.moderation & getServerBitFlags().moderationFlags.gunBanned) { @@ -1332,19 +956,19 @@ function canClientUseGuns(client) { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function intToBool(intVal) { return (intVal == 1) ? true : false; } -// --------------------------------------------------------------------------- +// =========================================================================== function boolToInt(boolVal) { return (boolVal) ? 1 : 0; } -// --------------------------------------------------------------------------- +// =========================================================================== function sendAllBlips(client) { sendAllPoliceStationBlips(client); @@ -1356,79 +980,7 @@ function sendAllBlips(client) { sendAllJobBlips(client); } -// --------------------------------------------------------------------------- - -function processHoldActionKey(client) { - let closestJobId = getClosestJobPointId(client.player.position); - let closestVehicle = getClosestVehicle(client.player.position); - let closestHouse = getClosestHouse(client.player.position); - let closestBusiness = getClosestBusiness(client.player.position); - let jobData = getJobData(closestJobId); - - if(getPlayerCurrentSubAccount(client).job == AG_JOB_NONE) { - if(jobData.position.distance(client.player.position) <= getGlobalConfig().takeJobDistance) { - takeJob(client, closestJobId); - messagePlayerSuccess(client, "You now have the " + toString(jobData.name) + " job"); - } - } else { - if(jobData.jobType == getPlayerCurrentSubAccount(client).job) { - if(jobData.position.distance(client.player.position) <= getGlobalConfig().startWorkDistance) { - startWorking(client); - messagePlayerSuccess(client, "You are now working as a " + toString(jobData.name)); - showStartedWorkingTip(client); - return true; - } - } else { - messagePlayerError(client, "This is not your job!"); - messagePlayerInfo(client, `Use /quitjob to quit your current job.`); - } - } -} - -// --------------------------------------------------------------------------- - -function processPressActionKey(client) { - // Check job stuff - let closestJob = getClosestJob(client.player.position); - - if(getPlayerCurrentSubAccount(client).job == AG_JOB_NONE) { - if(closestJob.position.distance(client.player.position) <= getGlobalConfig().takeJobDistance) { - - } - } -} - -// --------------------------------------------------------------------------- - -function processHoldVehicleLightsKey(client) { - -} - -// --------------------------------------------------------------------------- - -function processHoldVehicleLockKey(client) { - -} - -// --------------------------------------------------------------------------- - -function processHoldVehicleEngineKey(client) { - -} - -// --------------------------------------------------------------------------- - -function getClientChatColour(client) { - let tempJob = getPlayerCurrentSubAccount(client).job; - if(tempJob != -1) { - if(getPlayerData(client).isWorking) { - return getJobData(tempJob).jobColour; - } - } - return getColourByName("white"); -} - -// --------------------------------------------------------------------------- +// =========================================================================== function initAllClients() { getClients().forEach(function(client) { @@ -1436,31 +988,31 @@ function initAllClients() { }); } -// --------------------------------------------------------------------------- +// =========================================================================== function getYesNoFromBool(boolVal) { return (boolVal) ? "Yes" : "No"; } -// --------------------------------------------------------------------------- +// =========================================================================== function getOnOffFromBool(boolVal) { return (boolVal) ? "On" : "Off"; } -// --------------------------------------------------------------------------- +// =========================================================================== function getEnabledDisabledFromBool(boolVal) { return (boolVal) ? "Enabled" : "Disabled"; } -// --------------------------------------------------------------------------- +// =========================================================================== function getLockedUnlockedFromBool(boolVal) { return (boolVal) ? "Locked" : "Unlocked"; } -// --------------------------------------------------------------------------- +// =========================================================================== function updateServerRules() { server.setRule("Time", makeReadableTime(getServerConfig().hour, getServerConfig().minute)); @@ -1468,7 +1020,7 @@ function updateServerRules() { server.setRule("Snowing", getYesNoFromBool(getServerConfig().fallingSnow)); } -// --------------------------------------------------------------------------- +// =========================================================================== function getWeatherFromParams(params) { if(isNaN(params)) { @@ -1485,7 +1037,7 @@ function getWeatherFromParams(params) { return 0; } -// --------------------------------------------------------------------------- +// =========================================================================== function getClanFromParams(params) { if(isNaN(params)) { @@ -1501,7 +1053,7 @@ function getClanFromParams(params) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getClanRankFromParams(clanId, params) { if(isNaN(params)) { @@ -1517,7 +1069,7 @@ function getClanRankFromParams(clanId, params) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getJobFromParams(params) { if(isNaN(params)) { @@ -1535,7 +1087,7 @@ function getJobFromParams(params) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getBusinessFromParams(params) { if(isNaN(params)) { @@ -1552,7 +1104,7 @@ function getBusinessFromParams(params) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getGameLocationFromParams(params) { if(isNaN(params)) { @@ -1569,7 +1121,7 @@ function getGameLocationFromParams(params) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getHouseFromParams(params) { if(isNaN(params)) { @@ -1586,7 +1138,7 @@ function getHouseFromParams(params) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getItemTypeFromParams(params) { if(isNaN(params)) { @@ -1603,34 +1155,8 @@ function getItemTypeFromParams(params) { return false; } -// --------------------------------------------------------------------------- -function updatePlayerCash(client) { - triggerNetworkEvent("ag.money", client, getPlayerCurrentSubAccount(client).cash); -} - -// --------------------------------------------------------------------------- - -function setPlayerCash(client, amount) { - getPlayerCurrentSubAccount(client).cash = amount; - updatePlayerCash(client); -} - -// --------------------------------------------------------------------------- - -function givePlayerCash(client, amount) { - getPlayerCurrentSubAccount(client).cash += amount; - updatePlayerCash(client); -} - -// --------------------------------------------------------------------------- - -function takePlayerCash(client, amount) { - getPlayerCurrentSubAccount(client).cash -= amount; - updatePlayerCash(client); -} - -// --------------------------------------------------------------------------- +// =========================================================================== function clearChatBox(client) { //gta.messages.clear(); @@ -1639,7 +1165,7 @@ function clearChatBox(client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getSkinIdFromParams(params, gameId = getServerGame()) { if(isNaN(params)) { @@ -1656,7 +1182,7 @@ function getSkinIdFromParams(params, gameId = getServerGame()) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getSkinNameFromId(modelId, gameId = getServerGame()) { if(gameId >= GAME_GTA_IV) { @@ -1671,7 +1197,7 @@ function getSkinNameFromId(modelId, gameId = getServerGame()) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getSkinIdFromName(params, gameId = getServerGame()) { if(gameId == GAME_GTA_IV || gameId == GAME_GTA_IV_EFLC) { @@ -1691,7 +1217,7 @@ function getSkinIdFromName(params, gameId = getServerGame()) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getClosestHospital(position) { let closest = 0; @@ -1704,7 +1230,7 @@ function getClosestHospital(position) { return getServerData().hospitals[getServerGame()][closest]; } -// --------------------------------------------------------------------------- +// =========================================================================== function getClosestPoliceStation(position) { let closest = 0; @@ -1719,18 +1245,6 @@ function getClosestPoliceStation(position) { // ------------------------------------------------------------------------- -function isGTAIV() { - return (getServerGame() == GAME_GTA_IV); -} - -// ------------------------------------------------------------------------- - -function arrayBufferToString(arrayBuffer) { - return String.fromCharCode.apply(null, new Uint8Array(arrayBuffer)); -} - -// ------------------------------------------------------------------------- - function getPlayerDisplayForConsole(client) { if(isNull(client)) { return "(Unknown client)"; @@ -1874,12 +1388,6 @@ function getProperDeterminerForName(word) { // ------------------------------------------------------------------------- -function applyOffsetToVector3(position, position2) { - return toVector3(position.x+position2.x, position.y+position2.y, position.z+position2.z); -} - -// ------------------------------------------------------------------------- - function getPluralForm(name) { return name; } @@ -1920,13 +1428,7 @@ function showConnectCameraToPlayer(client) { setPlayerCameraLookAt(client, getServerConfig().connectCameraPosition, getServerConfig().connectCameraLookAt); } -// --------------------------------------------------------------------------- - -function doesGameHaveSnow(gameId) { - return (getServerGame() != GAME_GTA_IV); -} - -// --------------------------------------------------------------------------- +// =========================================================================== function generateRandomString(length) { var result = ''; @@ -1938,10 +1440,141 @@ function generateRandomString(length) { return result; } -// --------------------------------------------------------------------------- +// =========================================================================== -function getTimeDisplayUntilPlayerPayDay(client) { - return getTimeDifferenceDisplay(sdl.ticks-getPlayerData(client).payDayTickStart); +// =========================================================================== + +function getVehicleModelIdFromParams(params) { + if(isNaN(params)) { + let modelId = getVehicleModelIdFromName(params); + + if(!modelId) { + return false; + } + + if(isValidVehicleModel(toInteger(modelId))) { + return toInteger(modelId); + } + + return false; + } else { + if(isValidVehicleModel(toInteger(params))) { + return toInteger(params); + } + + return false; + } + + return false; } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== + +function getVehicleModelIdFromName(params) { + if(isGTAIV()) { + for(let i in getGameData().gtaivVehicleModels) { + if(toLowerCase(getGameData().gtaivVehicleModels[i][0]).indexOf(toLowerCase(params)) != -1) { + return getGameData().gtaivVehicleModels[i][1]; + } + } + } else { + let vehicleNames = getGameData().vehicleNames[getServerGame()]; + for(let i in vehicleNames) { + if(toLowerCase(vehicleNames[i]).indexOf(toLowerCase(params)) != -1) { + return toInteger(i)+toInteger(getGameData().vehicleModelIdStart[getServerGame()]); + } + } + } + + return false; +} + +// =========================================================================== + +function getVehicleNameFromModelId(modelId) { + if(isGTAIV()) { + for(let i in getGameData().gtaivVehicleModels) { + if(getGameData().gtaivVehicleModels[i][1] == modelId) { + return getGameData().gtaivVehicleModels[i][0]; + } + } + } else { + let modelIndex = modelId-getGameData().vehicleModelIdStart[getServerGame()]; + return getGameData().vehicleNames[getServerGame()][modelIndex]; + } +} + +// =========================================================================== + +function isValidVehicleModel(modelId) { + if(getGame() == GAME_GTA_III) { + if(modelId < 90 || modelId > 150) { + return false; + } + + return true; + } + + if(getGame() == GAME_GTA_VC) { + if(modelId < 130 || modelId > 236) { + return false; + } + + return true; + } + + if(getGame() == GAME_GTA_SA) { + return true; + } + + if(getGame() == GAME_GTA_IV) { + return true; + } + + return false; +} + +// =========================================================================== + +function getVehiclesInRange(position, distance) { + return getElementsByType(ELEMENT_VEHICLE).filter(x => x.player && x.position.distance(position) <= distance); +} + +// =========================================================================== + +function getClientsInRange(position, distance) { + return getPlayersInRange(position, distance); +} + +// =========================================================================== + +function getCiviliansInRange(position, distance) { + return getElementsByType(ELEMENT_CIVILIAN).filter(x => x.position.distance(position) <= distance); +} + +// =========================================================================== + +function getElementsByTypeInRange(elementType, position, distance) { + return getElementsByType(elementType).filter(x => x.position.distance(position) <= distance); +} + +// =========================================================================== + +function getClosestCivilian(position) { + return getElementsByType(ELEMENT_CIVILIAN).reduce((i, j) => ((i.position.distance(position) <= j.position.distance(position)) ? i : j)); +} + +// =========================================================================== + +function getClosestPlayer(position, exemptClient) { + let clients = getClients(); + let closest = 0; + for(let i in clients) { + if(exemptClient != clients[i]) { + if(getDistance(getPlayerPosition(clients[i]), position) < getDistance(getPlayerPosition(clients[closest]), position)) { + closest = i; + } + } + } + return clients[closest]; +} \ No newline at end of file diff --git a/scripts/server/vehicle.js b/scripts/server/vehicle.js index 1805fc98..89c5768b 100644 --- a/scripts/server/vehicle.js +++ b/scripts/server/vehicle.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: vehicle.js // DESC: Provides vehicle functions and usage // TYPE: Server (JavaScript) @@ -16,7 +16,7 @@ function initVehicleScript() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function loadVehiclesFromDatabase() { logToConsole(LOG_DEBUG, "[Asshat.Vehicle]: Loading vehicles from database ..."); @@ -40,7 +40,7 @@ function loadVehiclesFromDatabase() { return tempVehicles; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveAllVehiclesToDatabase() { logToConsole(LOG_DEBUG, "[Asshat.Vehicle]: Saving all vehicles to database ..."); @@ -53,7 +53,7 @@ function saveAllVehiclesToDatabase() { return true; } -// --------------------------------------------------------------------------- +// =========================================================================== function saveVehicleToDatabase(vehicleData) { if(vehicleData == null) { @@ -96,7 +96,7 @@ function saveVehicleToDatabase(vehicleData) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function spawnAllVehicles() { for(let i in getServerData().vehicles) { @@ -106,7 +106,7 @@ function spawnAllVehicles() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehicleData(vehicle) { let dataIndex = getEntityData(vehicle, "ag.dataSlot"); @@ -116,7 +116,7 @@ function getVehicleData(vehicle) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function createVehicleCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -137,7 +137,7 @@ function createVehicleCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]created a [#AAAAAA]${getVehicleName(vehicle)}!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function createTemporaryVehicleCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -158,7 +158,7 @@ function createTemporaryVehicleCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]created a temporary ${getVehicleName(vehicle)}!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function vehicleLockCommand(command, params, client) { let vehicle = getClosestVehicle(getPlayerPosition(client)); @@ -192,7 +192,7 @@ function vehicleLockCommand(command, params, client) { meActionToNearbyPlayers(client, `${toLowerCase(getLockedUnlockedFromBool(getVehicleData(vehicle).locked))} the ${getVehicleName(vehicle)}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function vehicleLightsCommand(command, params, client) { if(!getPlayerVehicle(client)) { @@ -218,7 +218,7 @@ function vehicleLightsCommand(command, params, client) { meActionToNearbyPlayers(client, `turned the ${getVehicleName(vehicle)}'s lights ${toLowerCase(getOnOffFromBool(vehicle))}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function deleteVehicleCommand(command, params, client) { if(!getPlayerVehicle(client)) { @@ -242,7 +242,7 @@ function deleteVehicleCommand(command, params, client) { messagePlayerSuccess(client, `The ${vehicleName} has been deleted!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function vehicleEngineCommand(command, params, client) { if(!getPlayerVehicle(client)) { @@ -273,7 +273,7 @@ function vehicleEngineCommand(command, params, client) { meActionToNearbyPlayers(client, `turned the ${getVehicleName(vehicle)}'s engine ${toLowerCase(getOnOffFromBool(getVehicleData(vehicle).engine))}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function vehicleSirenCommand(command, params, client) { if(!getPlayerVehicle(client)) { @@ -304,7 +304,7 @@ function vehicleSirenCommand(command, params, client) { meActionToNearbyPlayers(client, `turns the ${getVehicleName(vehicle)}'s siren ${toLowerCase(getOnOffFromBool(getVehicleData(vehicle).siren))}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setVehicleColourCommand(command, params, client) { if(areParamsEmpty(params) && areThereEnoughParams(params, 2)) { @@ -350,7 +350,7 @@ function setVehicleColourCommand(command, params, client) { meActionToNearbyPlayers(client, `resprays the ${getVehicleName(vehicle)}'s colours`); } -// --------------------------------------------------------------------------- +// =========================================================================== function vehicleRepairCommand(command, params, client) { if(!isPlayerInAnyVehicle(client)) { @@ -383,7 +383,7 @@ function vehicleRepairCommand(command, params, client) { meActionToNearbyPlayers(client, `repairs the ${getVehicleName(vehicle)}!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function buyVehicleCommand(command, params, client) { if(!isPlayerInAnyVehicle(client)) { @@ -420,7 +420,7 @@ function buyVehicleCommand(command, params, client) { messagePlayerInfo(client, `Drive the vehicle away from the dealership to buy it, or get out to cancel.`); } -// --------------------------------------------------------------------------- +// =========================================================================== function rentVehicleCommand(command, params, client) { if(!isPlayerInAnyVehicle(client)) { @@ -448,13 +448,13 @@ function rentVehicleCommand(command, params, client) { messagePlayerAlert(client, `You will be charged ${getVehicleData(vehicle).rentPrice} per minute to use this vehicle. To stop renting this vehicle, use /vehrent again.`); } -// --------------------------------------------------------------------------- +// =========================================================================== function enterVehicleAsPassengerCommand(command, params, client) { triggerNetworkEvent("ag.passenger", client); } -// --------------------------------------------------------------------------- +// =========================================================================== function stopRentingVehicleCommand(command, params, client) { //getPlayerCurrentSubAccount(client).cash -= getVehicleData(vehicle).rentPrice; @@ -464,7 +464,7 @@ function stopRentingVehicleCommand(command, params, client) { messagePlayerAlert(client, `You are no longer renting the ${getVehicleName(vehicle)}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function doesClientHaveVehicleKeys(client, vehicle) { let vehicleData = getVehicleData(vehicle); @@ -508,7 +508,7 @@ function doesClientHaveVehicleKeys(client, vehicle) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function doesClientOwnVehicle(client, vehicle) { let vehicleData = getVehicleData(vehicle); @@ -534,13 +534,13 @@ function doesClientOwnVehicle(client, vehicle) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehicleName(vehicle) { return getVehicleNameFromModelId(vehicle.modelIndex) || "Unknown"; } -// --------------------------------------------------------------------------- +// =========================================================================== function setVehicleJobCommand(command, params, client) { if(!isPlayerInAnyVehicle(client)) { @@ -569,7 +569,7 @@ function setVehicleJobCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set their [#AAAAAA]${getVehicleName(vehicle)} [#FFFFFF]owner to the [#AAAAAA]${getJobData(jobId).name} [#FFFFFF]job! (Job ID ${jobId})`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setVehicleRankCommand(command, params, client) { if(areParamsEmpty(params)) { @@ -600,7 +600,7 @@ function setVehicleRankCommand(command, params, client) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function setVehicleClanCommand(command, params, client) { if(!isPlayerInAnyVehicle(client)) { @@ -622,7 +622,7 @@ function setVehicleClanCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set their [#AAAAAA]${getVehicleName(vehicle)} [#FFFFFF]owner to the [#AAAAAA]${getClanData(clanId).name} [#FFFFFF]clan`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setVehicleToBusinessCommand(command, params, client) { if(!isPlayerInAnyVehicle(client)) { @@ -639,7 +639,7 @@ function setVehicleToBusinessCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set their [#AAAAAA]${getVehicleName(vehicle)} [#FFFFFF]owner to the [#AAAAAA]${getBusinessData(businessId).name} [#FFFFFF]business`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setVehicleOwnerCommand(command, params, client) { if(!isPlayerInAnyVehicle(client)) { @@ -661,7 +661,7 @@ function setVehicleOwnerCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set their [#AAAAAA]${getVehicleName(vehicle)} [#FFFFFF]owner to [#AAAAAA]${getClientSubAccountName(client)}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setVehicleRentPriceCommand(command, params, client) { if(!isPlayerInAnyVehicle(client)) { @@ -684,7 +684,7 @@ function setVehicleRentPriceCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set their [#AAAAAA]${getVehicleName(vehicle)} [#FFFFFF]rent price to [#AAAAAA]$${amount}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function setVehicleBuyPriceCommand(command, params, client) { if(!isPlayerInAnyVehicle(client)) { @@ -707,7 +707,7 @@ function setVehicleBuyPriceCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set their [#AAAAAA]${getVehicleName(vehicle)}'s buy price to $${amount}!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function removeVehicleOwnerCommand(command, params, client) { if(!isPlayerInAnyVehicle(client)) { @@ -730,7 +730,7 @@ function removeVehicleOwnerCommand(command, params, client) { messagePlayerInfo(client, `Nobody will be able to use this vehicle until it receives a new owner (either bought or set by admin).`); } -// --------------------------------------------------------------------------- +// =========================================================================== function getVehicleInfoCommand(command, params, client) { if(!isPlayerInAnyVehicle(client)) { @@ -779,7 +779,7 @@ function getVehicleInfoCommand(command, params, client) { messagePlayerNormal(client, `🚗 [#CC22CC][Vehicle Info] [#FFFFFF]ID: [#AAAAAA]${vehicle.id}, [#FFFFFF]DatabaseID: [#AAAAAA]${vehicleData.databaseId}, [#FFFFFF]Owner: [#AAAAAA]${ownerName}[ID ${vehicleData.ownerId}] (${ownerType}), [#FFFFFF]Type: [#AAAAAA]${getVehicleName(vehicle)}[${vehicle.modelIndex}], [#FFFFFF]BuyPrice: [#AAAAAA]${vehicleData.buyPrice}, [#FFFFFF]RentPrice: [#AAAAAA]${vehicleData.rentPrice}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function toggleVehicleSpawnLockCommand(command, params, client) { if(!isPlayerInAnyVehicle(client)) { @@ -800,7 +800,7 @@ function toggleVehicleSpawnLockCommand(command, params, client) { messageAdmins(`[#AAAAAA]${client.name} [#FFFFFF]set their [#AAAAAA]${getVehicleName(vehicle)} [#FFFFFF]to spawn [#AAAAAA]${(spawnLocked) ? "at it's current location" : "wherever a player leaves it."}`); } -// --------------------------------------------------------------------------- +// =========================================================================== function reloadAllVehiclesCommand(command, params, client) { for(let i in getServerData().vehicles) { @@ -816,7 +816,7 @@ function reloadAllVehiclesCommand(command, params, client) { messageAdminAction(`All server vehicles have been reloaded by an admin!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function respawnAllVehiclesCommand(command, params, client) { for(let i in getServerData().vehicles) { @@ -831,7 +831,7 @@ function respawnAllVehiclesCommand(command, params, client) { messageAdminAction(`All server vehicles have been respawned by an admin!`); } -// --------------------------------------------------------------------------- +// =========================================================================== function stopRentingVehicle(client) { let vehicleData = getPlayerData(client).rentingVehicle; @@ -840,7 +840,7 @@ function stopRentingVehicle(client) { respawnVehicle(vehicleData); } -// --------------------------------------------------------------------------- +// =========================================================================== function respawnVehicle(vehicle) { let vehicles = getServerData().vehicles; @@ -854,7 +854,7 @@ function respawnVehicle(vehicle) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function spawnVehicle(vehicleData) { let vehicle = gta.createVehicle(vehicleData.model, vehicleData.spawnPosition, vehicleData.spawnRotation); @@ -883,7 +883,7 @@ function spawnVehicle(vehicleData) { return vehicle; } -// --------------------------------------------------------------------------- +// =========================================================================== function isVehicleAtPayAndSpray(vehicle) { for(let i in getServerData().payAndSprays[getServerGame()]) { @@ -894,32 +894,32 @@ function isVehicleAtPayAndSpray(vehicle) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function repairVehicle(vehicleData) { vehicleData.vehicle.fix(); } -// --------------------------------------------------------------------------- +// =========================================================================== function setVehicleColours(vehicle, colour1, colour2) { vehicle.colour1 = colour1; vehicle.colour2 = colour2; } -// --------------------------------------------------------------------------- +// =========================================================================== function setVehicleLights(vehicle, lights) { vehicle.lights = lights; } -// --------------------------------------------------------------------------- +// =========================================================================== function setVehicleEngine(vehicle, engine) { vehicle.engine = engine; } -// --------------------------------------------------------------------------- +// =========================================================================== function setVehicleLocked(vehicle, locked) { vehicle.locked = locked; diff --git a/scripts/shared/const.js b/scripts/shared/const.js index b0782d8f..3911b4c4 100644 --- a/scripts/shared/const.js +++ b/scripts/shared/const.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: const.js // DESC: Provides constants // TYPE: Shared (JavaScript) diff --git a/scripts/shared/game-data.js b/scripts/shared/game-data.js index db75ab97..57aa7733 100644 --- a/scripts/shared/game-data.js +++ b/scripts/shared/game-data.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: game-data.js // DESC: Provides coords, ids, names, and other data for the games // TYPE: Shared (JavaScript) @@ -2800,10 +2800,10 @@ let gameData = { ], }; -// --------------------------------------------------------------------------- +// =========================================================================== function getGameData() { return gameData; } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== \ No newline at end of file diff --git a/scripts/shared/native.js b/scripts/shared/native.js index 20856f61..50af43e3 100644 --- a/scripts/shared/native.js +++ b/scripts/shared/native.js @@ -2,7 +2,7 @@ // Asshat-Gaming Roleplay // https://github.com/VortrexFTW/gtac_asshat_rp // Copyright (c) 2021 Asshat-Gaming (https://asshatgaming.com) -// --------------------------------------------------------------------------- +// =========================================================================== // FILE: native.js // DESC: Provides util funcs for native wrapping // TYPE: Shared (JavaScript) @@ -11,97 +11,97 @@ "use strict"; setErrorMode(RESOURCEERRORMODE_STRICT); -// --------------------------------------------------------------------------- +// =========================================================================== function and(var1, var2) { return (var1 && var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function or(var1, var2) { return (var1 || var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function not(var1) { return !var1; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitAnd(var1, var2) { return var1 & var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitOr(var1, var2) { return var1 | var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitXor(var1, var2) { return var1 ^ var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitNot(var1) { return ~var1; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitLeftShift(var1, var2) { return var1 << var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function bitRightShift(var1, var2) { return var1 >> var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function greaterThan(var1, var2) { return var1 > var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function lessThan(var1, var2) { return (var1 < var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function greaterThanOrEqualTo(var1, var2) { return (var1 >= var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function lessThanOrEqualTo(var1, var2) { return (var1 <= var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function equals(var1, var2) { return (var1 == var2); } -// --------------------------------------------------------------------------- +// =========================================================================== function modulo(var1, var2) { return var1 % var2; } -// --------------------------------------------------------------------------- +// =========================================================================== function add(...args) { return args.reduce((acc, a) => { @@ -109,7 +109,7 @@ function add(...args) { }, 0); } -// --------------------------------------------------------------------------- +// =========================================================================== function subtract(...args) { return args.reduce((acc, a) => { @@ -117,7 +117,7 @@ function subtract(...args) { }, 0); } -// --------------------------------------------------------------------------- +// =========================================================================== function multiply(...args) { return args.reduce((acc, a) => { @@ -125,7 +125,7 @@ function multiply(...args) { }, 0); } -// --------------------------------------------------------------------------- +// =========================================================================== function divide(...args) { return args.reduce((acc, a) => { @@ -133,55 +133,55 @@ function divide(...args) { }, 0); } -// --------------------------------------------------------------------------- +// =========================================================================== function toArray(...args) { return args; } -// --------------------------------------------------------------------------- +// =========================================================================== function toInteger(val) { return Number(val); } -// --------------------------------------------------------------------------- +// =========================================================================== function toFloat(val, fixed = 2) { return parseFloat((val).toFixed(fixed)); } -// --------------------------------------------------------------------------- +// =========================================================================== function toString(val) { return String(val); } -// --------------------------------------------------------------------------- +// =========================================================================== function toVector3(x, y, z) { return new Vec3(x, y, z); } -// --------------------------------------------------------------------------- +// =========================================================================== function toVector2(x, y) { return new Vec2(x, y); } -// --------------------------------------------------------------------------- +// =========================================================================== function toUpperCase(val) { return String(val).toUpperCase(); } -// --------------------------------------------------------------------------- +// =========================================================================== function toLowerCase(val) { return String(val).toLowerCase(); } -// --------------------------------------------------------------------------- +// =========================================================================== function isNull(val) { if(val == null) { @@ -195,7 +195,7 @@ function isNull(val) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getEntityData(entity, dataName) { if(entity != null) { @@ -206,7 +206,7 @@ function getEntityData(entity, dataName) { return null; } -// --------------------------------------------------------------------------- +// =========================================================================== function setEntityData(entity, dataName, dataValue, syncToClients = true) { if(entity != null) { @@ -218,7 +218,7 @@ function setEntityData(entity, dataName, dataValue, syncToClients = true) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function removeEntityData(entity, dataName) { if(entity != null) { @@ -227,7 +227,7 @@ function removeEntityData(entity, dataName) { return null; } -// --------------------------------------------------------------------------- +// =========================================================================== function doesEntityDataExist(entity, dataName) { if(entity != null) { @@ -236,7 +236,7 @@ function doesEntityDataExist(entity, dataName) { return null; } -// --------------------------------------------------------------------------- +// =========================================================================== function getDistance(vec1, vec2) { if(isNull(vec1) || isNull(vec2)) { @@ -245,7 +245,7 @@ function getDistance(vec1, vec2) { return vec1.distance(vec2); } -// --------------------------------------------------------------------------- +// =========================================================================== function isConsole(client) { if(client == null) { @@ -255,7 +255,7 @@ function isConsole(client) { return client.console; } -// --------------------------------------------------------------------------- +// =========================================================================== function logToConsole(tempLogLevel, text) { if((logLevel & tempLogLevel) || logLevel == LOG_ALL) { @@ -273,13 +273,13 @@ function logToConsole(tempLogLevel, text) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function isSamePlayer(client1, client2) { return (client1 == client2); } -// --------------------------------------------------------------------------- +// =========================================================================== function getClientFromIndex(index) { let clients = getClients(); @@ -290,7 +290,7 @@ function getClientFromIndex(index) { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getConsoleClient() { let clients = getClients(); @@ -301,7 +301,7 @@ function getConsoleClient() { } } -// --------------------------------------------------------------------------- +// =========================================================================== function getPlayerFromParams(params) { let clients = getClients(); @@ -326,7 +326,7 @@ function getPlayerFromParams(params) { return false; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPosToRightOfPos(pos, angle, distance) { let x = (pos.x+((Math.cos((-angle+1.57)+(Math.PI/2)))*distance)); @@ -337,7 +337,7 @@ function getPosToRightOfPos(pos, angle, distance) { return rightPos; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPosToLeftOfPos(pos, angle, distance) { let x = (pos.x+((Math.cos((angle+1.57)+(Math.PI/2)))*distance)); @@ -348,7 +348,7 @@ function getPosToLeftOfPos(pos, angle, distance) { return leftPos; } -// --------------------------------------------------------------------------- +// =========================================================================== function getPosInFrontOfPos(pos, angle, distance) { let x = (pos.x+((Math.cos(angle+(Math.PI/2)))*distance)); @@ -358,7 +358,7 @@ function getPosInFrontOfPos(pos, angle, distance) { return toVector3(x, y, z); } -// --------------------------------------------------------------------------- +// =========================================================================== function getPosBehindPos(pos, angle, distance) { let x = (pos.x+((Math.cos(angle-(Math.PI/2)))*distance)); @@ -368,16 +368,90 @@ function getPosBehindPos(pos, angle, distance) { return toVector3(x,y,z); } -// --------------------------------------------------------------------------- +// =========================================================================== function getPosAbovePos(pos, distance) { return toVector3(pos.x, pos.y, pos.z+distance); } -// --------------------------------------------------------------------------- +// =========================================================================== function getPosBelowPos(pos, distance) { return toVector3(pos.x, pos.y, pos.z-distance); } -// --------------------------------------------------------------------------- \ No newline at end of file +// =========================================================================== + +function applyOffsetToPos(position, position2) { + return toVector3(position.x+position2.x, position.y+position2.y, position.z+position2.z); +} + +// =========================================================================== + +function getRandom(min, max) { + return Math.floor(Math.random() * (toInteger(max) - toInteger(min) + 1)) + toInteger(min) +} + +// =========================================================================== + +function getArrayOfElementId(elements) { + let tempArray = []; + for(let i in elements) { + tempArray.push(elements[i].id); + } + + return tempArray; +} + +// =========================================================================== + +function Enum(constantsList) { + let tempTable = {}; + for(let i in constantsList) { + tempTable[constantsList[i]] = i; + } + return tempTable; +} + +// =========================================================================== + +function getSyncerFromId(syncerId) { + let clients = getClients(); + return clients[syncerId]; +} + +// =========================================================================== + +function getGame() { + if(isServerScript()) { + return server.game; + } else { + return gta.game; + } +} + +// =========================================================================== + +function isServerScript() { + return (typeof server != "undefined"); +} + +// =========================================================================== + +function doesGameHaveSnow(gameId) { + return (getGame() != GAME_GTA_IV); +} + +// =========================================================================== + +function isGTAIV() { + return (getGame() == GAME_GTA_IV); +} + +// =========================================================================== + +function arrayBufferToString(arrayBuffer) { + return String.fromCharCode.apply(null, new Uint8Array(arrayBuffer)); +} + +// =========================================================================== \ No newline at end of file