diff --git a/scripts/server/account.js b/scripts/server/account.js index bd76b8e4..e923a0c2 100644 --- a/scripts/server/account.js +++ b/scripts/server/account.js @@ -58,6 +58,7 @@ class AccountData { this.ircAccount = ""; this.discordAccount = 0; this.settings = 0; + this.seenActionTips = 0; this.emailAddress = ""; this.ipAddress = 0; @@ -87,6 +88,7 @@ class AccountData { this.ircAccount = toInteger(dbAssoc["acct_irc"]); this.discordAccount = toInteger(dbAssoc["acct_discord"]); this.settings = toInteger(dbAssoc["acct_svr_settings"]); + this.seenActionTips = toInteger(dbAssoc["acct_svr_seen_action_tips"]); this.emailAddress = toString(dbAssoc["acct_email"]); this.ipAddress = toString(dbAssoc["acct_ip"]); @@ -921,6 +923,7 @@ function saveAccountToDatabase(accountData) { let data2 = [ ["acct_svr_settings", (accountData.settings != NaN) ? toInteger(accountData.settings) : 0], + ["acct_svr_seen_action_tips", (accountData.seenActionTips != NaN) ? toInteger(accountData.seenActionTips) : 0], ["acct_svr_staff_title", toString(safeStaffTitle)], ["acct_svr_staff_flags", (accountData.flags.admin != NaN) ? toInteger(accountData.flags.admin) : 0], ["acct_svr_mod_flags", (accountData.flags.moderation != NaN) ? toInteger(accountData.flags.moderation) : 0], diff --git a/scripts/server/bitflag.js b/scripts/server/bitflag.js index e0635c77..fe81526a 100644 --- a/scripts/server/bitflag.js +++ b/scripts/server/bitflag.js @@ -16,7 +16,7 @@ let serverBitFlags = { accountSettingsFlags: {}, subAccountSettingsFlags: {}, accountFlags: {}, - seenHelpTipsFlags: {}, + seenActionTipsFlags: {}, npcTriggerTypeFlags: {}, npcTriggerConditionTypesFlags: {}, npcTriggerResponseTypeFlags: {}, @@ -240,12 +240,17 @@ let serverBitFlagKeys = { "EnterProperty", "SearchArea", ], - seenHelpTipsKeys: [ + seenActionTipsKeys: [ "None", "VehicleEngineOffWhenEntering", "VehicleLockedAfterEntryAttempt", "ShowItemsAfterPurchase", "BuyCommandAfterEnterBusiness", + "UseItemKeyAfterEquipping", + "UseItemKeyAfterEquippingWalkieTalkie", + "RadioCommandAfterEnablingWalkieTalkie", + "ReplyToDirectMessage", + "UseItemKeyAmmoAfterEquippingWeapon", ], jobRankKeys: [ "None", @@ -277,7 +282,7 @@ function initBitFlagScript() { serverBitFlags.npcTriggerTypes = createBitFlagTable(serverBitFlagKeys.npcTriggerTypeKeys); serverBitFlags.npcTriggerConditionTypes = createBitFlagTable(serverBitFlagKeys.npcTriggerConditionTypeKeys); serverBitFlags.npcTriggerResponseTypes = createBitFlagTable(serverBitFlagKeys.npcTriggerResponseTypeKeys); - serverBitFlags.seenHelpTips = createBitFlagTable(serverBitFlagKeys.seenHelpTipsKeys); + serverBitFlags.seenActionTips = createBitFlagTable(serverBitFlagKeys.seenActionTipsKeys); serverBitFlags.jobRankFlags = createBitFlagTable(serverBitFlagKeys.jobRankKeys); logToConsole(LOG_INFO, "[VRR.BitFlag]: Bit flag script initialized successfully!"); return true; @@ -443,6 +448,20 @@ function getClanDiscordWebhookValue(flagName) { // =========================================================================== +function getSeenActionTipsValue(flagName) { + if (flagName == "All") { + return -1; + } + + if (typeof serverBitFlags.seenActionTips[flagName] == "undefined") { + return false; + } + + return serverBitFlags.seenActionTips[flagName]; +} + +// =========================================================================== + function givePlayerStaffFlag(client, flagName) { if (!getStaffFlagValue(flagName)) { return false; diff --git a/scripts/server/help.js b/scripts/server/help.js index 17fa1b0b..f3aea44c 100644 --- a/scripts/server/help.js +++ b/scripts/server/help.js @@ -398,4 +398,24 @@ function helpGetSkinCommand(command, params, client) { messagePlayerAlert(client, ``); } +// =========================================================================== + +function hasPlayerSeenActionTip(client, seenActionTipFlagName) { + let seenActionTipFlagValue = getSeenActionTipsValue(seenActionTipFlagName); + + if (hasBitFlag(getPlayerData(client).accountData.seenActionTips, seenActionTipFlagValue)) { + return true; + } else { + return false; + } +} + +// =========================================================================== + +function playerHasSeenActionTip(client, seenActionTipFlagName) { + let seenActionTipFlagValue = getSeenActionTipsValue(seenActionTipFlagName); + + getPlayerData(client).accountData.seenActionTips = addBitFlag(getPlayerData(client).accountData.seenActionTips, seenActionTipFlagValue); +} + // =========================================================================== \ No newline at end of file diff --git a/scripts/shared/utilities.js b/scripts/shared/utilities.js index a90fea74..4597a9b5 100644 --- a/scripts/shared/utilities.js +++ b/scripts/shared/utilities.js @@ -3181,4 +3181,4 @@ function fillLeadingZeros(number, length) { return str; } -// =========================================================================== \ No newline at end of file +// ===========================================================================