2025-08-14 01:13:48 +02:00
|
|
|
lib.locale()
|
2023-07-09 21:19:35 +02:00
|
|
|
NDCore = {}
|
|
|
|
|
|
2023-07-12 04:51:50 +02:00
|
|
|
Config = {
|
|
|
|
|
serverName = GetConvar("core:serverName", "Unconfigured ND-Core Server"),
|
|
|
|
|
discordInvite = GetConvar("core:discordInvite", "https://discord.gg/Z9Mxu72zZ6"),
|
|
|
|
|
discordAppId = GetConvar("core:discordAppId", "858146067018416128"),
|
|
|
|
|
discordAsset = GetConvar("core:discordAsset", "andyyy"),
|
|
|
|
|
discordAssetSmall = GetConvar("core:discordAssetSmall", "andyyy"),
|
|
|
|
|
discordActionText = GetConvar("core:discordActionText", "DISCORD"),
|
2024-02-27 20:43:15 +01:00
|
|
|
discordActionLink = GetConvar("core:discordActionLink", "https://discord.gg/Z9Mxu72zZ6"),
|
2023-07-12 04:51:50 +02:00
|
|
|
discordActionText2 = GetConvar("core:discordActionText2", "STORE"),
|
|
|
|
|
discordActionLink2 = GetConvar("core:discordActionLink2", "https://andyyy.tebex.io/category/fivem-scripts"),
|
|
|
|
|
disableVehicleAirControl = GetConvarInt("core:disableVehicleAirControl", 1) == 1,
|
2024-01-16 23:31:12 +01:00
|
|
|
randomUnlockedVehicleChance = GetConvarInt("core:randomUnlockedVehicleChance", 30),
|
|
|
|
|
requireKeys = GetConvarInt("core:requireKeys", 1) == 1,
|
2023-07-12 04:51:50 +02:00
|
|
|
useInventoryForKeys = GetConvarInt("core:useInventoryForKeys", 1) == 1,
|
2026-03-16 08:04:08 +01:00
|
|
|
groups = {},
|
2025-01-17 20:42:27 +01:00
|
|
|
compatibility = json.decode(GetConvar("core:compatibility", "[]")),
|
|
|
|
|
lockpickTries = GetConvarInt("core:lockpickTries", 3)
|
2023-07-12 04:51:50 +02:00
|
|
|
}
|
|
|
|
|
|
2023-07-13 01:22:34 +02:00
|
|
|
-- Discord rich presence.
|
2023-07-09 03:07:46 +02:00
|
|
|
CreateThread(function()
|
|
|
|
|
SetDiscordAppId(Config.discordAppId)
|
|
|
|
|
SetDiscordRichPresenceAsset(Config.discordAsset)
|
|
|
|
|
SetDiscordRichPresenceAssetSmall(Config.discordAssetSmall)
|
|
|
|
|
SetDiscordRichPresenceAction(0, Config.discordActionText, Config.discordActionLink)
|
|
|
|
|
SetDiscordRichPresenceAction(1, Config.discordActionText2, Config.discordActionLink2)
|
2025-08-14 01:13:48 +02:00
|
|
|
local presenceText = locale("discord_text_server", Config.serverName)
|
2023-07-09 03:07:46 +02:00
|
|
|
while true do
|
|
|
|
|
if NDCore.player then
|
2025-08-14 01:13:48 +02:00
|
|
|
local presence = locale("discord_text", Config.serverName, NDCore.player.firstname, NDCore.player.lastname)
|
|
|
|
|
local presenceTextSmall = locale("discord_text_small", NDCore.player.firstname, NDCore.player.lastname)
|
2023-07-09 03:07:46 +02:00
|
|
|
SetRichPresence(presence)
|
|
|
|
|
SetDiscordRichPresenceAssetText(presenceText)
|
|
|
|
|
SetDiscordRichPresenceAssetSmallText(presenceTextSmall)
|
2022-07-16 04:46:27 +02:00
|
|
|
end
|
2023-07-09 03:07:46 +02:00
|
|
|
Wait(60000)
|
|
|
|
|
end
|
|
|
|
|
end)
|
2022-07-16 04:46:27 +02:00
|
|
|
|
2023-07-13 01:22:34 +02:00
|
|
|
-- Pause menu information.
|
2023-07-09 03:07:46 +02:00
|
|
|
CreateThread(function()
|
|
|
|
|
AddTextEntry("FE_THDR_GTAO", Config.serverName)
|
|
|
|
|
local sleep = 500
|
|
|
|
|
while true do
|
|
|
|
|
Wait(sleep)
|
|
|
|
|
if NDCore.player and IsPauseMenuActive() then
|
|
|
|
|
sleep = 0
|
|
|
|
|
BeginScaleformMovieMethodOnFrontendHeader("SET_HEADING_DETAILS")
|
|
|
|
|
ScaleformMovieMethodAddParamPlayerNameString(("%s %s"):format(NDCore.player.firstname, NDCore.player.lastname))
|
2025-08-14 01:13:48 +02:00
|
|
|
ScaleformMovieMethodAddParamTextureNameString(locale("pause_menu_cash", NDCore.player.cash))
|
|
|
|
|
ScaleformMovieMethodAddParamTextureNameString(locale("pause_menu_bank", NDCore.player.bank))
|
2023-07-09 03:07:46 +02:00
|
|
|
EndScaleformMovieMethod()
|
|
|
|
|
elseif sleep == 0 then
|
|
|
|
|
sleep = 500
|
2022-07-16 04:46:27 +02:00
|
|
|
end
|
|
|
|
|
end
|
2023-07-09 03:07:46 +02:00
|
|
|
end)
|
2023-07-13 01:22:34 +02:00
|
|
|
|
|
|
|
|
AddEventHandler("playerSpawned", function()
|
|
|
|
|
print("^0ND Framework support discord: ^5https://discord.gg/Z9Mxu72zZ6")
|
|
|
|
|
SetCanAttackFriendly(PlayerPedId(), true, false)
|
|
|
|
|
NetworkSetFriendlyFireOption(true)
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
AddEventHandler("onResourceStart", function(resourceName)
|
|
|
|
|
if resourceName ~= GetCurrentResourceName() then return end
|
|
|
|
|
SetCanAttackFriendly(PlayerPedId(), true, false)
|
|
|
|
|
NetworkSetFriendlyFireOption(true)
|
|
|
|
|
end)
|