Add job rank bitflags

This commit is contained in:
Vortrex
2022-07-23 17:42:39 -05:00
parent e65cd0b4be
commit c3d0f826db

View File

@@ -65,6 +65,7 @@ let serverBitFlagKeys = {
"DontSyncClientElements", "DontSyncClientElements",
"IsTester" "IsTester"
], ],
/*
factionFlagKeys: [ factionFlagKeys: [
"None", "None",
"Police", "Police",
@@ -73,6 +74,7 @@ let serverBitFlagKeys = {
"Government", "Government",
"Generic", "Generic",
], ],
*/
clanTypeFlagKeys: [ clanTypeFlagKeys: [
"None", "None",
"Illegal", "Illegal",
@@ -227,6 +229,19 @@ let serverBitFlagKeys = {
"ShowItemsAfterPurchase", "ShowItemsAfterPurchase",
"BuyCommandAfterEnterBusiness", "BuyCommandAfterEnterBusiness",
], ],
jobRankKeys: [
"None",
"PublicAccess",
"WhiteList",
"BlackList",
"SetRank",
"SetPay",
"ManageUniforms",
"ManageEquipment",
"ManageVehicles",
"ManageBusinesses",
"Leader",
],
}; };
// =========================================================================== // ===========================================================================
@@ -239,10 +254,12 @@ function initBitFlagScript() {
//serverBitFlags.subAccountSettingsFlags = createBitFlagTable(getServerData().subAccountSettingsFlagKeys); //serverBitFlags.subAccountSettingsFlags = createBitFlagTable(getServerData().subAccountSettingsFlagKeys);
serverBitFlags.clanFlags = createBitFlagTable(serverBitFlagKeys.clanFlagKeys); serverBitFlags.clanFlags = createBitFlagTable(serverBitFlagKeys.clanFlagKeys);
serverBitFlags.clanTypeFlagKeys = createBitFlagTable(serverBitFlagKeys.clanTypeFlagKeys); serverBitFlags.clanTypeFlagKeys = createBitFlagTable(serverBitFlagKeys.clanTypeFlagKeys);
serverBitFlags.factionFlags = createBitFlagTable(serverBitFlagKeys.factionFlagKeys); //serverBitFlags.factionFlags = createBitFlagTable(serverBitFlagKeys.factionFlagKeys);
serverBitFlags.npcTriggerTypes = createBitFlagTable(serverBitFlagKeys.npcTriggerTypeKeys); serverBitFlags.npcTriggerTypes = createBitFlagTable(serverBitFlagKeys.npcTriggerTypeKeys);
serverBitFlags.npcTriggerConditionTypes = createBitFlagTable(serverBitFlagKeys.npcTriggerConditionTypeKeys); serverBitFlags.npcTriggerConditionTypes = createBitFlagTable(serverBitFlagKeys.npcTriggerConditionTypeKeys);
serverBitFlags.npcTriggerResponseTypes = createBitFlagTable(serverBitFlagKeys.npcTriggerResponseTypeKeys); serverBitFlags.npcTriggerResponseTypes = createBitFlagTable(serverBitFlagKeys.npcTriggerResponseTypeKeys);
serverBitFlags.seenHelpTips = createBitFlagTable(serverBitFlagKeys.seenHelpTipsKeys);
serverBitFlags.jobRankFlags = createBitFlagTable(serverBitFlagKeys.jobRankKeys);
logToConsole(LOG_INFO, "[VRR.BitFlag]: Bit flag script initialized successfully!"); logToConsole(LOG_INFO, "[VRR.BitFlag]: Bit flag script initialized successfully!");
return true; return true;
} }
@@ -291,7 +308,7 @@ function doesPlayerHaveClanPermission(client, requiredFlags) {
} }
let clanFlags = 0; let clanFlags = 0;
clanFlags = getPlayerCurrentSubAccount(client).clanFlags | getClanRankFlags(getPlayerCurrentSubAccount(client).clanRank); clanFlags = getPlayerCurrentSubAccount(client).clanFlags | getClanRankData(getPlayerClan(client), getPlayerClanRank(client)).flags;
// -1 is automatic override (having -1 for staff flags is basically god mode admin level) // -1 is automatic override (having -1 for staff flags is basically god mode admin level)
if (clanFlags == getClanFlagValue("All")) { if (clanFlags == getClanFlagValue("All")) {
@@ -307,6 +324,36 @@ function doesPlayerHaveClanPermission(client, requiredFlags) {
// =========================================================================== // ===========================================================================
function doesPlayerHaveJobPermission(client, requiredFlags) {
if (isConsole(client)) {
return true;
}
if (requiredFlags == getClanFlagValue("None")) {
return true;
}
if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageJobs"))) {
return true;
}
let jobFlags = 0;
jobFlags = getPlayerCurrentSubAccount(client).jobFlags | getJobRankData(getPlayerJob(client), getPlayerJobRank(client)).flags;
// -1 is automatic override (having -1 for staff flags is basically god mode admin level)
if (jobFlags == getJobFlagValue("All")) {
return true;
}
if (hasBitFlag(jobFlags, requiredFlags)) {
return true;
}
return false;
}
// ===========================================================================
function getStaffFlagValue(flagName) { function getStaffFlagValue(flagName) {
if (flagName == "All") { if (flagName == "All") {
return -1; return -1;