Add job rank bitflags
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user