From e7876c43c56029e0a35611acb170764ff4f1ebf4 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Wed, 19 Jan 2022 13:00:43 -0600 Subject: [PATCH] Add gates script --- scripts/server/gate.js | 103 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 scripts/server/gate.js diff --git a/scripts/server/gate.js b/scripts/server/gate.js new file mode 100644 index 00000000..60feb259 --- /dev/null +++ b/scripts/server/gate.js @@ -0,0 +1,103 @@ +// =========================================================================== +// Vortrex's Roleplay Resource +// https://github.com/VortrexFTW/gtac_roleplay +// =========================================================================== +// FILE: gate.js +// DESC: Provides gate functions and commands +// TYPE: Server (JavaScript) +// =========================================================================== + +function doesPlayerHaveGateKeys(client, vehicle) { + let gateData = getGateData(vehicle); + + if(gateData.ownerType == VRR_GATEOWNER_PUBLIC) { + return true; + } + + if(gateData.ownerType == VRR_GATEOWNER_PLAYER) { + if(gateData.ownerId == getPlayerCurrentSubAccount(client).databaseId) { + return true; + } + } + + if(gateData.ownerType == VRR_GATEOWNER_CLAN) { + if(doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageClans"))) { + return true; + } + + if(gateData.ownerId == getPlayerCurrentSubAccount(client).clan) { + if(gateData.clanRank <= getPlayerCurrentSubAccount(client).clanRank) { + return true; + } + } + } + + if(gateData.ownerType == VRR_GATEOWNER_FACTION) { + if(doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageFactions"))) { + return true; + } + + if(gateData.ownerId == getPlayerCurrentSubAccount(client).faction) { + if(gateData.factionRank <= getPlayerCurrentSubAccount(client).factionRank) { + return true; + } + } + } + + if(gateData.ownerType == VRR_GATEOWNER_JOB) { + if(doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageJobs"))) { + return true; + } + + if(gateData.ownerId == getPlayerCurrentSubAccount(client).job) { + return true; + } + } + + if(gateData.ownerType == VRR_GATEOWNER_BUSINESS) { + if(doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageBusinesses"))) { + return true; + } + + if(canPlayerManageBusiness(client, getBusinessIdFromDatabaseId(gateData.ownerId))) { + return true; + } + } + + if(gateData.ownerType == VRR_GATEOWNER_HOUSE) { + if(doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageHouses"))) { + return true; + } + + if(canPlayerManageHouse(client, getHouseIdFromDatabaseId(gateData.ownerId))) { + return true; + } + } + + return false; +} + +// =========================================================================== + +function getGateData(gateId) { + if(typeof getServerData().gates[gateId] != "undefined") { + return getServerData().gates[gateId]; + } + + return false; +} + +// =========================================================================== + +function getClosestGate(position) { + let closest = 0; + for(let i in getServerData().gates[getServerGame()]) { + if(getDistance(getServerData().gates[i].position, position) < getDistance(getServerData().gates[closest].position, position)) { + closest = i; + } + } + + return closest; +} + +// =========================================================================== \ No newline at end of file