Files
GTA4RP/scripts/server/gate.js
2022-01-19 13:00:43 -06:00

103 lines
2.8 KiB
JavaScript

// ===========================================================================
// 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;
}
// ===========================================================================