mirror of
https://github.com/ND-Framework/ND_Core.git
synced 2026-08-17 05:56:01 +01:00
Merge pull request #12 from nik0-3d/main
Fixed Chat and Jailing AND REFACTORRRR
This commit is contained in:
@@ -36,7 +36,7 @@ end
|
||||
|
||||
-- Hide/Show ui
|
||||
function SetDisplay(bool)
|
||||
local selectedCharacter = NDCore.functions:getSelectedCharacter()
|
||||
local selectedCharacter = NDCore.Functions.GetSelectedCharacter()
|
||||
display = bool
|
||||
SetNuiFocus(bool, bool)
|
||||
SendNUIMessage({
|
||||
@@ -134,7 +134,7 @@ end)
|
||||
RegisterNetEvent("ND_ATMs:update")
|
||||
AddEventHandler("ND_ATMs:update", function(status)
|
||||
Citizen.Wait(1000)
|
||||
local selectedCharacter = NDCore.functions:getSelectedCharacter()
|
||||
local selectedCharacter = NDCore.Functions.GetSelectedCharacter()
|
||||
SendNUIMessage({
|
||||
balance = "Account Balance: $" .. selectedCharacter.bank .. ".00",
|
||||
success = status
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
NDCore = exports["ND_Core"]:GetCoreObject()
|
||||
NDCore.functions:versionChecker("ND_ATMs", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_ATMs/fxmanifest.lua")
|
||||
NDCore.Functions.VersionChecker("ND_ATMs", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_ATMs/fxmanifest.lua")
|
||||
|
||||
RegisterNetEvent("ND_ATMs:withdraw")
|
||||
AddEventHandler("ND_ATMs:withdraw", function(amount)
|
||||
local player = source
|
||||
local update = NDCore.functions:withdrawMoney(amount, player)
|
||||
local update = NDCore.Functions.WithdrawMoney(amount, player)
|
||||
TriggerClientEvent("ND_ATMs:update", player, update)
|
||||
end)
|
||||
|
||||
RegisterNetEvent("ND_ATMs:deposit")
|
||||
AddEventHandler("ND_ATMs:deposit", function(amount)
|
||||
local player = source
|
||||
local update = NDCore.functions:depositMoney(amount, player)
|
||||
local update = NDCore.Functions.DepositMoney(amount, player)
|
||||
TriggerClientEvent("ND_ATMs:update", player, update)
|
||||
end)
|
||||
@@ -39,7 +39,7 @@ end
|
||||
|
||||
-- Hide/Show ui
|
||||
function SetDisplay(bool)
|
||||
local selectedCharacter = NDCore.functions:getSelectedCharacter()
|
||||
local selectedCharacter = NDCore.Functions.GetSelectedCharacter()
|
||||
display = bool
|
||||
SetNuiFocus(bool, bool)
|
||||
SendNUIMessage({
|
||||
@@ -146,7 +146,7 @@ end)
|
||||
RegisterNetEvent("ND_Banks:update")
|
||||
AddEventHandler("ND_Banks:update", function(status)
|
||||
Citizen.Wait(1000)
|
||||
local selectedCharacter = NDCore.functions:getSelectedCharacter()
|
||||
local selectedCharacter = NDCore.Functions.GetSelectedCharacter()
|
||||
SendNUIMessage({
|
||||
balance = "Account Balance: $" .. selectedCharacter.bank .. ".00",
|
||||
success = status
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
NDCore = exports["ND_Core"]:GetCoreObject()
|
||||
NDCore.functions:versionChecker("ND_Banks", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Banks/fxmanifest.lua")
|
||||
NDCore.Functions.VersionChecker("ND_Banks", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Banks/fxmanifest.lua")
|
||||
|
||||
RegisterNetEvent("ND_Banks:withdraw")
|
||||
AddEventHandler("ND_Banks:withdraw", function(amount)
|
||||
local player = source
|
||||
local update = NDCore.functions:withdrawMoney(amount, player)
|
||||
local update = NDCore.Functions.WithdrawMoney(amount, player)
|
||||
TriggerClientEvent("ND_Banks:update", player, update)
|
||||
end)
|
||||
|
||||
RegisterNetEvent("ND_Banks:deposit")
|
||||
AddEventHandler("ND_Banks:deposit", function(amount)
|
||||
local player = source
|
||||
local update = NDCore.functions:depositMoney(amount, player)
|
||||
local update = NDCore.Functions.DepositMoney(amount, player)
|
||||
TriggerClientEvent("ND_Banks:update", player, update)
|
||||
end)
|
||||
|
||||
RegisterNetEvent("ND_Banks:transfer")
|
||||
AddEventHandler("ND_Banks:transfer", function(amount, target)
|
||||
local player = source
|
||||
local update = NDCore.functions:transferBank(amount, player, target)
|
||||
local update = NDCore.Functions.TransferBank(amount, player, target)
|
||||
TriggerClientEvent("ND_Banks:update", player, update)
|
||||
end)
|
||||
@@ -19,8 +19,8 @@ function SetDisplay(bool, typeName, bg)
|
||||
type = typeName,
|
||||
background = background,
|
||||
status = bool,
|
||||
serverName = NDCore.config.serverName,
|
||||
characterAmount = tablelength(NDCore.characters) .. "/" .. NDCore.config.characterLimit
|
||||
serverName = NDCore.Config.serverName,
|
||||
characterAmount = tablelength(NDCore.characters) .. "/" .. NDCore.Config.characterLimit
|
||||
})
|
||||
if config.characterSelectionAopDisplay then
|
||||
SendNUIMessage({
|
||||
@@ -32,7 +32,7 @@ end
|
||||
|
||||
function start(switch)
|
||||
TriggerServerEvent("ND_CharacterSelection:checkPerms")
|
||||
TriggerServerEvent("ND:getCharacters")
|
||||
TriggerServerEvent("ND:GetCharacters")
|
||||
if switch then
|
||||
local ped = PlayerPedId()
|
||||
SwitchOutPlayer(ped, 0, 1)
|
||||
@@ -41,8 +41,8 @@ function start(switch)
|
||||
end
|
||||
SendNUIMessage({
|
||||
type = "onStart",
|
||||
maxStartingBank = NDCore.config.startingBank,
|
||||
maxStartingCash = NDCore.config.startingCash
|
||||
maxStartingBank = NDCore.Config.startingBank,
|
||||
maxStartingCash = NDCore.Config.startingCash
|
||||
})
|
||||
if config.characterSelectionAopDisplay then
|
||||
SendNUIMessage({
|
||||
@@ -100,10 +100,10 @@ end)
|
||||
|
||||
-- Selecting a player from the iu.
|
||||
RegisterNUICallback("setMainCharacter", function(data)
|
||||
NDCore.functions:getCharacters(function(characters)
|
||||
NDCore.selectedCharacter = characters[data.id]
|
||||
NDCore.Functions.GetCharacters(function(characters)
|
||||
NDCore.SelectedCharacter = characters[data.id]
|
||||
end)
|
||||
for _, spawn in pairs(config.spawns[NDCore.selectedCharacter.job]) do
|
||||
for _, spawn in pairs(config.spawns[NDCore.SelectedCharacter.job]) do
|
||||
SendNUIMessage({
|
||||
type = "setSpawns",
|
||||
x = spawn.x,
|
||||
@@ -112,12 +112,12 @@ RegisterNUICallback("setMainCharacter", function(data)
|
||||
name = spawn.name
|
||||
})
|
||||
end
|
||||
TriggerServerEvent("ND:setCharacterOnline", NDCore.selectedCharacter.id)
|
||||
TriggerServerEvent("ND:setCharacterOnline", NDCore.SelectedCharacter.id)
|
||||
end)
|
||||
|
||||
-- Creating a character from the ui.
|
||||
RegisterNUICallback("newCharacter", function(data)
|
||||
if tablelength(NDCore.characters) < NDCore.config.characterLimit then
|
||||
if tablelength(NDCore.characters) < NDCore.Config.characterLimit then
|
||||
TriggerServerEvent("ND_CharacterSelection:newCharacter", {
|
||||
firstName = data.firstName,
|
||||
lastName = data.lastName,
|
||||
|
||||
@@ -5,8 +5,8 @@ NDCore = exports["ND_Core"]:GetCoreObject()
|
||||
function validateDepartment(player, department)
|
||||
local departmentExists = config.departments[department]
|
||||
if departmentExists then
|
||||
local discordUserId = string.gsub(NDCore.functions:GetPlayerIdentifierFromType("discord", player), "discord:", "")
|
||||
local roles = NDCore.functions:getUserDiscordInfo(discordUserId).roles
|
||||
local discordUserId = string.gsub(NDCore.Functions.GetPlayerIdentifierFromType("discord", player), "discord:", "")
|
||||
local roles = NDCore.Functions.GetUserDiscordInfo(discordUserId).roles
|
||||
|
||||
-- validate that the player actually has the role that they selected on the client.
|
||||
for _, roleId in pairs(departmentExists) do
|
||||
@@ -28,7 +28,7 @@ AddEventHandler("ND_CharacterSelection:newCharacter", function(newCharacter)
|
||||
if not departmentCheck then return end
|
||||
|
||||
-- Create the character if the player has permission to the department.
|
||||
NDCore.functions:createCharacter(player, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job, newCharacter.cash, newCharacter.bank)
|
||||
NDCore.Functions.CreateCharacter(player, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job, newCharacter.cash, newCharacter.bank)
|
||||
end)
|
||||
|
||||
-- Update the character info when edited.
|
||||
@@ -41,18 +41,18 @@ AddEventHandler("ND_CharacterSelection:editCharacter", function(newCharacter)
|
||||
if not departmentCheck then return end
|
||||
|
||||
-- Updating the character information in the database.
|
||||
NDCore.functions:updateCharacterData(newCharacter.id, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job)
|
||||
NDCore.Functions.UpdateCharacterData(newCharacter.id, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job)
|
||||
|
||||
-- Updating characters on the client.
|
||||
TriggerClientEvent("ND:returnCharacters", player, NDCore.functions:getPlayerCharacters(player))
|
||||
TriggerClientEvent("ND:returnCharacters", player, NDCore.Functions.GetPlayerCharacters(player))
|
||||
end)
|
||||
|
||||
RegisterNetEvent("ND_CharacterSelection:checkPerms")
|
||||
AddEventHandler("ND_CharacterSelection:checkPerms", function()
|
||||
local player = source
|
||||
local discordUserId = string.gsub(NDCore.functions:GetPlayerIdentifierFromType("discord", player), "discord:", "")
|
||||
local discordUserId = string.gsub(NDCore.Functions.GetPlayerIdentifierFromType("discord", player), "discord:", "")
|
||||
local allowedRoles = {}
|
||||
local roles = NDCore.functions:getUserDiscordInfo(discordUserId).roles
|
||||
local roles = NDCore.Functions.GetUserDiscordInfo(discordUserId).roles
|
||||
|
||||
-- Check if the players discord roles will grant them permission to the department.
|
||||
for dept, roleTable in pairs(config.departments) do
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6
|
||||
author "Andyyy#7666"
|
||||
description "ND Chat commands"
|
||||
version "2.0.0"
|
||||
version "2.1.0"
|
||||
|
||||
fx_version "cerulean"
|
||||
game "gta5"
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
NDCore = exports["ND_Core"]:GetCoreObject()
|
||||
|
||||
if config["/me"] then
|
||||
TriggerEvent("chat:addSuggestion", "/me", "Send message in the third person (Proximity).", {{ name="Action", help="Describe your action."}})
|
||||
end
|
||||
@@ -21,9 +23,12 @@ end
|
||||
if config["/911"].enabled then
|
||||
RegisterNetEvent("ND_Chat:911")
|
||||
AddEventHandler("ND_Chat:911", function(coords, callDescription)
|
||||
local selectedCharacter = exports["ND_Core"]:getCharacterInfo()
|
||||
local selectedCharacter
|
||||
NDCore.Functions.GetSelectedCharacter(function(character)
|
||||
selectedCharacter = character
|
||||
end)
|
||||
for _, department in pairs(config["/911"].callTo) do
|
||||
if selectedCharacter.department == department then
|
||||
if selectedCharacter.job == department then
|
||||
local location = GetStreetNameFromHashKey(GetStreetNameAtCoord(coords.x, coords.y, coords.z))
|
||||
TriggerEvent("chat:addMessage", {
|
||||
color = {255, 0, 0},
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
NDCore = exports["ND_Core"]:GetCoreObject()
|
||||
NDCore.Functions.VersionChecker("ND_Chat", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Chat/fxmanifest.lua")
|
||||
|
||||
if config["/me"] then
|
||||
RegisterCommand("me", function(source, args, rawCommand)
|
||||
local player = source
|
||||
local players = exports["ND_Core"]:getCharacterTable()
|
||||
local players = NDCore.Functions.GetPlayers()
|
||||
local playerCoords = GetEntityCoords(GetPlayerPed(player))
|
||||
for serverPlayer, _ in pairs(players) do
|
||||
local targetCoords = GetEntityCoords(GetPlayerPed(serverPlayer))
|
||||
@@ -18,7 +21,7 @@ end
|
||||
if config["/gme"] then
|
||||
RegisterCommand("gme", function(source, args, rawCommand)
|
||||
local player = source
|
||||
local players = exports["ND_Core"]:getCharacterTable()
|
||||
local players = NDCore.Functions.GetPlayers()
|
||||
TriggerClientEvent("chat:addMessage", -1, {
|
||||
color = {255, 0, 0},
|
||||
args = {"^*GME | ^0" .. players[player].firstName .. " " .. players[player].lastName .. " (#" .. player .. ")", table.concat(args, " ")}
|
||||
@@ -39,7 +42,7 @@ end
|
||||
if config["/twt"] then
|
||||
RegisterCommand("twt", function(source, args, rawCommand)
|
||||
local player = source
|
||||
local players = exports["ND_Core"]:getCharacterTable()
|
||||
local players = NDCore.Functions.GetPlayers()
|
||||
TriggerClientEvent("chat:addMessage", -1, {
|
||||
template = "<img src='data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxz%0D%0AdmcKICB2aWV3Ym94PSIwIDAgMjAwMCAxNjI1LjM2IgogIHdpZHRoPSIyMDAwIgogIGhlaWdodD0i%0D%0AMTYyNS4zNiIKICB2ZXJzaW9uPSIxLjEiCiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv%0D%0Ac3ZnIj4KICA8cGF0aAogICAgZD0ibSAxOTk5Ljk5OTksMTkyLjQgYyAtNzMuNTgsMzIuNjQgLTE1%0D%0AMi42Nyw1NC42OSAtMjM1LjY2LDY0LjYxIDg0LjcsLTUwLjc4IDE0OS43NywtMTMxLjE5IDE4MC40%0D%0AMSwtMjI3LjAxIC03OS4yOSw0Ny4wMyAtMTY3LjEsODEuMTcgLTI2MC41Nyw5OS41NyBDIDE2MDku%0D%0AMzM5OSw0OS44MiAxNTAyLjY5OTksMCAxMzg0LjY3OTksMCBjIC0yMjYuNiwwIC00MTAuMzI4LDE4%0D%0AMy43MSAtNDEwLjMyOCw0MTAuMzEgMCwzMi4xNiAzLjYyOCw2My40OCAxMC42MjUsOTMuNTEgLTM0%0D%0AMS4wMTYsLTE3LjExIC02NDMuMzY4LC0xODAuNDcgLTg0NS43MzksLTQyOC43MiAtMzUuMzI0LDYw%0D%0ALjYgLTU1LjU1ODMsMTMxLjA5IC01NS41NTgzLDIwNi4yOSAwLDE0Mi4zNiA3Mi40MzczLDI2Ny45%0D%0ANSAxODIuNTQzMywzNDEuNTMgLTY3LjI2MiwtMi4xMyAtMTMwLjUzNSwtMjAuNTkgLTE4NS44NTE5%0D%0ALC01MS4zMiAtMC4wMzksMS43MSAtMC4wMzksMy40MiAtMC4wMzksNS4xNiAwLDE5OC44MDMgMTQx%0D%0ALjQ0MSwzNjQuNjM1IDMyOS4xNDUsNDAyLjM0MiAtMzQuNDI2LDkuMzc1IC03MC42NzYsMTQuMzk1%0D%0AIC0xMDguMDk4LDE0LjM5NSAtMjYuNDQxLDAgLTUyLjE0NSwtMi41NzggLTc3LjIwMywtNy4zNjQg%0D%0ANTIuMjE1LDE2My4wMDggMjAzLjc1LDI4MS42NDkgMzgzLjMwNCwyODQuOTQ2IC0xNDAuNDI5LDEx%0D%0AMC4wNjIgLTMxNy4zNTEsMTc1LjY2IC01MDkuNTk3MiwxNzUuNjYgLTMzLjEyMTEsMCAtNjUuNzg1%0D%0AMSwtMS45NDkgLTk3Ljg4MjgsLTUuNzM4IDE4MS41ODYsMTE2LjQxNzYgMzk3LjI3LDE4NC4zNTkg%0D%0ANjI4Ljk4OCwxODQuMzU5IDc1NC43MzIsMCAxMTY3LjQ2MiwtNjI1LjIzOCAxMTY3LjQ2MiwtMTE2%0D%0ANy40NyAwLC0xNy43OSAtMC40MSwtMzUuNDggLTEuMiwtNTMuMDggODAuMTc5OSwtNTcuODYgMTQ5%0D%0ALjczOTksLTEzMC4xMiAyMDQuNzQ5OSwtMjEyLjQxIgogICAgc3R5bGU9ImZpbGw6IzAwYWNlZCIv%0D%0APgo8L3N2Zz4K' height='16'> <b>{0}</b>: {1}",
|
||||
multiline = true,
|
||||
@@ -50,17 +53,17 @@ end
|
||||
|
||||
function hasDarkWebPermission(player, players, args)
|
||||
for _, department in pairs(config["/darkweb"].canNotSee) do
|
||||
if players[player].dept == department then
|
||||
if players[player].job == department then
|
||||
TriggerClientEvent("chat:addMessage", player, {
|
||||
color = {255, 0, 0},
|
||||
args = {"^*Error", players[player].dept .. " cannot access this command."}
|
||||
args = {"^*Error", players[player].job .. " cannot access this command."}
|
||||
})
|
||||
return false
|
||||
end
|
||||
end
|
||||
for serverPlayer, playerInfo in pairs(players) do
|
||||
for _, department in pairs(config["/darkweb"].canNotSee) do
|
||||
if playerInfo.dept == department then
|
||||
if playerInfo.job == department then
|
||||
return false
|
||||
end
|
||||
end
|
||||
@@ -74,7 +77,7 @@ end
|
||||
if config["/darkweb"].enabled then
|
||||
RegisterCommand("darkweb", function(source, args, rawCommand)
|
||||
local player = source
|
||||
local players = exports["ND_Core"]:getCharacterTable()
|
||||
local players = NDCore.Functions.GetPlayers()
|
||||
hasDarkWebPermission(player, players, args)
|
||||
end, false)
|
||||
end
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6
|
||||
|
||||
NDCore = {}
|
||||
NDCore.selectedCharacter = nil
|
||||
NDCore.SelectedCharacter = nil
|
||||
NDCore.characters = {}
|
||||
NDCore.functions = {}
|
||||
NDCore.config = config
|
||||
NDCore.Functions = {}
|
||||
NDCore.Config = config
|
||||
|
||||
function GetCoreObject()
|
||||
return NDCore
|
||||
end
|
||||
|
||||
function NDCore.functions:getSelectedCharacter(cb)
|
||||
if not cb then return NDCore.selectedCharacter end
|
||||
cb(NDCore.selectedCharacter)
|
||||
function NDCore.Functions.GetSelectedCharacter(cb)
|
||||
if not cb then return NDCore.SelectedCharacter end
|
||||
cb(NDCore.SelectedCharacter)
|
||||
end
|
||||
|
||||
function NDCore.functions:getCharacters(cb)
|
||||
if not cb then return NDCore.selectedCharacter end
|
||||
function NDCore.Functions.GetCharacters(cb)
|
||||
if not cb then return NDCore.SelectedCharacter end
|
||||
cb(NDCore.characters)
|
||||
end
|
||||
|
||||
@@ -25,12 +25,12 @@ if config.enableRichPrecence then
|
||||
Citizen.CreateThread(function()
|
||||
SetDiscordAppId(config.appId)
|
||||
while true do
|
||||
if NDCore.selectedCharacter then
|
||||
SetRichPresence(" Playing : " .. config.serverName .. " as " .. NDCore.selectedCharacter.firstName .. " " .. NDCore.selectedCharacter.lastName)
|
||||
if NDCore.SelectedCharacter then
|
||||
SetRichPresence(" Playing : " .. config.serverName .. " as " .. NDCore.SelectedCharacter.firstName .. " " .. NDCore.SelectedCharacter.lastName)
|
||||
SetDiscordRichPresenceAsset(config.largeLogo)
|
||||
SetDiscordRichPresenceAssetText("Playing: " .. config.serverName)
|
||||
SetDiscordRichPresenceAssetSmall(config.smallLogo)
|
||||
SetDiscordRichPresenceAssetSmallText("Playing as: " .. NDCore.selectedCharacter.firstName .. " " .. NDCore.selectedCharacter.lastName)
|
||||
SetDiscordRichPresenceAssetSmallText("Playing as: " .. NDCore.SelectedCharacter.firstName .. " " .. NDCore.SelectedCharacter.lastName)
|
||||
SetDiscordRichPresenceAction(0, config.firstButtonName, config.firstButtonLink)
|
||||
SetDiscordRichPresenceAction(1, config.secondButtonName, config.secondButtonLink)
|
||||
end
|
||||
@@ -44,13 +44,13 @@ if config.customPauseMenu then
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
Citizen.Wait(0)
|
||||
if NDCore.selectedCharacter then
|
||||
if NDCore.SelectedCharacter then
|
||||
if IsPauseMenuActive() then
|
||||
BeginScaleformMovieMethodOnFrontendHeader("SET_HEADING_DETAILS")
|
||||
AddTextEntry("FE_THDR_GTAO", config.serverName)
|
||||
ScaleformMovieMethodAddParamPlayerNameString(NDCore.selectedCharacter.firstName .. " " .. NDCore.selectedCharacter.lastName)
|
||||
PushScaleformMovieFunctionParameterString("Cash: $" .. tostring(NDCore.selectedCharacter.cash))
|
||||
PushScaleformMovieFunctionParameterString("Bank: $" .. tostring(NDCore.selectedCharacter.bank))
|
||||
ScaleformMovieMethodAddParamPlayerNameString(NDCore.SelectedCharacter.firstName .. " " .. NDCore.SelectedCharacter.lastName)
|
||||
PushScaleformMovieFunctionParameterString("Cash: $" .. tostring(NDCore.SelectedCharacter.cash))
|
||||
PushScaleformMovieFunctionParameterString("Bank: $" .. tostring(NDCore.SelectedCharacter.bank))
|
||||
EndScaleformMovieMethod()
|
||||
end
|
||||
end
|
||||
@@ -66,13 +66,13 @@ end)
|
||||
-- updates the money on the client.
|
||||
RegisterNetEvent("ND:updateMoney")
|
||||
AddEventHandler("ND:updateMoney", function(cash, bank)
|
||||
NDCore.selectedCharacter.cash = cash
|
||||
NDCore.selectedCharacter.bank = bank
|
||||
NDCore.SelectedCharacter.cash = cash
|
||||
NDCore.SelectedCharacter.bank = bank
|
||||
end)
|
||||
|
||||
RegisterNetEvent("ND:setCharacter")
|
||||
AddEventHandler("ND:setCharacter", function(character)
|
||||
NDCore.selectedCharacter = character
|
||||
NDCore.SelectedCharacter = character
|
||||
end)
|
||||
|
||||
-- Enables pvp if it's selected in the config.
|
||||
|
||||
@@ -1,49 +1,43 @@
|
||||
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6
|
||||
|
||||
-- Getting all the characters the player has and returning them to the client.
|
||||
RegisterNetEvent("ND:getCharacters")
|
||||
AddEventHandler("ND:getCharacters", function()
|
||||
RegisterNetEvent("ND:GetCharacters", function()
|
||||
local player = source
|
||||
TriggerClientEvent("ND:returnCharacters", player, NDCore.functions:getPlayerCharacters(player))
|
||||
TriggerClientEvent("ND:returnCharacters", player, NDCore.Functions.GetPlayerCharacters(player))
|
||||
end)
|
||||
|
||||
-- Creating a new character.
|
||||
RegisterNetEvent("ND:newCharacter")
|
||||
AddEventHandler("ND:newCharacter", function(newCharacter)
|
||||
RegisterNetEvent("ND:newCharacter", function(newCharacter)
|
||||
local player = source
|
||||
NDCore.functions:createCharacter(player, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job, newCharacter.cash, newCharacter.bank)
|
||||
NDCore.Functions.CreateCharacter(player, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job, newCharacter.cash, newCharacter.bank)
|
||||
end)
|
||||
|
||||
-- Update the character info when edited.
|
||||
RegisterNetEvent("ND:editCharacter")
|
||||
AddEventHandler("ND:editCharacter", function(newCharacter)
|
||||
RegisterNetEvent("ND:editCharacter", function(newCharacter)
|
||||
local player = source
|
||||
NDCore.functions:updateCharacterData(newCharacter.id, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job)
|
||||
NDCore.Functions.UpdateCharacterData(newCharacter.id, newCharacter.firstName, newCharacter.lastName, newCharacter.dob, newCharacter.gender, newCharacter.twt, newCharacter.job)
|
||||
end)
|
||||
|
||||
-- Delete character from database.
|
||||
RegisterNetEvent("ND:deleteCharacter")
|
||||
AddEventHandler("ND:deleteCharacter", function(characterId)
|
||||
RegisterNetEvent("ND:deleteCharacter", function(characterId)
|
||||
local player = source
|
||||
NDCore.functions:deleteCharacter(characterId)
|
||||
NDCore.Functions.DeleteCharacter(characterId)
|
||||
end)
|
||||
|
||||
-- add a player to the table.
|
||||
RegisterNetEvent("ND:setCharacterOnline")
|
||||
AddEventHandler("ND:setCharacterOnline", function(id)
|
||||
RegisterNetEvent("ND:setCharacterOnline", function(id)
|
||||
local player = source
|
||||
NDCore.functions:setActiveCharacter(player, id)
|
||||
NDCore.Functions.SetActiveCharacter(player, id)
|
||||
end)
|
||||
|
||||
-- Disconnecting a player
|
||||
RegisterNetEvent("ND:exitGame")
|
||||
AddEventHandler("ND:exitGame", function()
|
||||
RegisterNetEvent("ND:exitGame", function()
|
||||
local player = source
|
||||
DropPlayer(player, "Disconnected.")
|
||||
end)
|
||||
|
||||
-- Remove player from NDCore.players table when they leave.
|
||||
-- Remove player from NDCore.Players table when they leave.
|
||||
AddEventHandler("playerDropped", function()
|
||||
local player = source
|
||||
NDCore.players[player] = nil
|
||||
NDCore.Players[player] = nil
|
||||
end)
|
||||
@@ -1,13 +1,13 @@
|
||||
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6
|
||||
|
||||
-- Callback to update each selected character on the server.
|
||||
function NDCore.functions:getPlayers(players)
|
||||
if not cb then return NDCore.players end
|
||||
cb(NDCore.players)
|
||||
function NDCore.Functions.GetPlayers(players)
|
||||
if not cb then return NDCore.Players end
|
||||
cb(NDCore.Players)
|
||||
end
|
||||
|
||||
-- Used to retrive the players discord server nickname, discord name and tag, and the roles.
|
||||
function NDCore.functions:getUserDiscordInfo(discordUserId)
|
||||
function NDCore.Functions.GetUserDiscordInfo(discordUserId)
|
||||
local data
|
||||
PerformHttpRequest("https://discordapp.com/api/guilds/" .. server_config.guildId .. "/members/" .. discordUserId, function(errorCode, resultData, resultHeaders)
|
||||
if errorCode ~= 200 then
|
||||
@@ -32,7 +32,7 @@ function NDCore.functions:getUserDiscordInfo(discordUserId)
|
||||
end
|
||||
|
||||
-- Get player any identifier, available types: steam, license, xbl, ip, discord, live.
|
||||
function NDCore.functions:GetPlayerIdentifierFromType(type, player)
|
||||
function NDCore.Functions.GetPlayerIdentifierFromType(type, player)
|
||||
local identifierCount = GetNumPlayerIdentifiers(player)
|
||||
for count = 0, identifierCount do
|
||||
local identifier = GetPlayerIdentifier(player, count)
|
||||
@@ -44,9 +44,9 @@ function NDCore.functions:GetPlayerIdentifierFromType(type, player)
|
||||
end
|
||||
|
||||
-- This will return the server id and ND player data of a nearby player.
|
||||
function NDCore.functions:getNearbyPedToPlayer(player)
|
||||
function NDCore.Functions.GetNearbyPedToPlayer(player)
|
||||
local pedCoords = GetEntityCoords(GetPlayerPed(player))
|
||||
for targetId, targetInfo in pairs(NDCore.players) do
|
||||
for targetId, targetInfo in pairs(NDCore.Players) do
|
||||
local targetCoords = GetEntityCoords(GetPlayerPed(targetId))
|
||||
if #(pedCoords - targetCoords) < 2.0 and targetId ~= player then
|
||||
return targetId, targetInfo
|
||||
@@ -55,21 +55,21 @@ function NDCore.functions:getNearbyPedToPlayer(player)
|
||||
end
|
||||
|
||||
-- update the players money on the client kinda like a refresh.
|
||||
function NDCore.functions:updateMoney(player)
|
||||
function NDCore.Functions.UpdateMoney(player)
|
||||
local player = tonumber(player)
|
||||
MySQL.query("SELECT cash, bank FROM characters WHERE character_id = ?", {NDCore.players[player].id}, function(result)
|
||||
MySQL.query("SELECT cash, bank FROM characters WHERE character_id = ?", {NDCore.Players[player].id}, function(result)
|
||||
if result then
|
||||
local cash = result[1].cash
|
||||
local bank = result[1].bank
|
||||
NDCore.players[player].cash = cash
|
||||
NDCore.players[player].bank = bank
|
||||
NDCore.Players[player].cash = cash
|
||||
NDCore.Players[player].bank = bank
|
||||
TriggerClientEvent("ND:updateMoney", player, cash, bank)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
-- Transfer money from one players bank account to another.
|
||||
function NDCore.functions:transferBank(amount, player, target)
|
||||
function NDCore.Functions.TransferBank(amount, player, target)
|
||||
local amount = tonumber(amount)
|
||||
local player = tonumber(player)
|
||||
local target = tonumber(target)
|
||||
@@ -91,27 +91,27 @@ function NDCore.functions:transferBank(amount, player, target)
|
||||
args = {"Error", "You can't send that amount."}
|
||||
})
|
||||
return false
|
||||
elseif NDCore.players[player].bank < amount then
|
||||
elseif NDCore.Players[player].bank < amount then
|
||||
TriggerClientEvent("chat:addMessage", player, {
|
||||
color = {255, 0, 0},
|
||||
args = {"Error", "You don't have enough money."}
|
||||
})
|
||||
return false
|
||||
else
|
||||
MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.players[player].id})
|
||||
NDCore.functions:updateMoney(player)
|
||||
MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.players[target].id})
|
||||
NDCore.functions:updateMoney(target)
|
||||
MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
|
||||
NDCore.Functions.UpdateMoney(player)
|
||||
MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.Players[target].id})
|
||||
NDCore.Functions.UpdateMoney(target)
|
||||
TriggerClientEvent("chat:addMessage", player, {
|
||||
color = {0, 255, 0},
|
||||
args = {"Success", "You paid " .. NDCore.players[target].firstName .. " " .. NDCore.players[target].lastName .. " $" .. amount .. "."}
|
||||
args = {"Success", "You paid " .. NDCore.Players[target].firstName .. " " .. NDCore.Players[target].lastName .. " $" .. amount .. "."}
|
||||
})
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
-- Give cash from one players wallet to another.
|
||||
function NDCore.functions:giveCash(amount, player, target)
|
||||
function NDCore.Functions.GiveCash(amount, player, target)
|
||||
local amount = tonumber(amount)
|
||||
local player = tonumber(player)
|
||||
local target = tonumber(target)
|
||||
@@ -133,30 +133,30 @@ function NDCore.functions:giveCash(amount, player, target)
|
||||
args = {"Error", "You can't give that amount."}
|
||||
})
|
||||
return false
|
||||
elseif NDCore.players[player].cash < amount then
|
||||
elseif NDCore.Players[player].cash < amount then
|
||||
TriggerClientEvent("chat:addMessage", player, {
|
||||
color = {255, 0, 0},
|
||||
args = {"Error", "You don't have enough money."}
|
||||
})
|
||||
return false
|
||||
else
|
||||
MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.players[player].id})
|
||||
NDCore.functions:updateMoney(player)
|
||||
MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.players[target].id})
|
||||
NDCore.functions:updateMoney(target)
|
||||
MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
|
||||
NDCore.Functions.UpdateMoney(player)
|
||||
MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.Players[target].id})
|
||||
NDCore.Functions.UpdateMoney(target)
|
||||
TriggerClientEvent("chat:addMessage", player, {
|
||||
color = {0, 255, 0},
|
||||
args = {"Success", "You gave " .. NDCore.players[target].firstName .. " " .. NDCore.players[target].lastName .. " $" .. amount .. "."}
|
||||
args = {"Success", "You gave " .. NDCore.Players[target].firstName .. " " .. NDCore.Players[target].lastName .. " $" .. amount .. "."}
|
||||
})
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
-- Give money from a players wallet to a nearby player.
|
||||
function NDCore.functions:giveCashToNearbyPlayer(player, amount)
|
||||
local targetId = NDCore.functions:getNearbyPedToPlayer(player)
|
||||
function NDCore.Functions.GiveCashToNearbyPlayer(player, amount)
|
||||
local targetId = NDCore.Functions.GetNearbyPedToPlayer(player)
|
||||
if targetId then
|
||||
NDCore.functions:giveCash(amount, player, targetId)
|
||||
NDCore.Functions.GiveCash(amount, player, targetId)
|
||||
return true
|
||||
end
|
||||
TriggerClientEvent("chat:addMessage", player, {
|
||||
@@ -167,59 +167,59 @@ function NDCore.functions:giveCashToNearbyPlayer(player, amount)
|
||||
end
|
||||
|
||||
-- withdraws money from a players bank account to their wallet/cash.
|
||||
function NDCore.functions:withdrawMoney(amount, player)
|
||||
function NDCore.Functions.WithdrawMoney(amount, player)
|
||||
local amount = tonumber(amount)
|
||||
local player = tonumber(player)
|
||||
if amount <= 0 then return false end
|
||||
if NDCore.players[player].bank < amount then return false end
|
||||
MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.players[player].id})
|
||||
MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.players[player].id})
|
||||
NDCore.functions:updateMoney(player)
|
||||
if NDCore.Players[player].bank < amount then return false end
|
||||
MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
|
||||
MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
|
||||
NDCore.Functions.UpdateMoney(player)
|
||||
return true
|
||||
end
|
||||
|
||||
-- deposits money from a players wallet/cash to their bank account.
|
||||
function NDCore.functions:depositMoney(amount, player)
|
||||
function NDCore.Functions.DepositMoney(amount, player)
|
||||
local amount = tonumber(amount)
|
||||
local player = tonumber(player)
|
||||
if amount <= 0 then return false end
|
||||
if NDCore.players[player].cash < amount then return false end
|
||||
MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.players[player].id})
|
||||
MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.players[player].id})
|
||||
NDCore.functions:updateMoney(player)
|
||||
if NDCore.Players[player].cash < amount then return false end
|
||||
MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
|
||||
MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
|
||||
NDCore.Functions.UpdateMoney(player)
|
||||
return true
|
||||
end
|
||||
|
||||
-- Deducts money from the player, "bank" or "cash" needs to be specified.
|
||||
function NDCore.functions:deductMoney(amount, player, from)
|
||||
function NDCore.Functions.DeductMoney(amount, player, from)
|
||||
local amount = tonumber(amount)
|
||||
local player = tonumber(player)
|
||||
if from == "bank" then
|
||||
MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.players[player].id})
|
||||
MySQL.query.await("UPDATE characters SET bank = bank - ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
|
||||
elseif from == "cash" then
|
||||
MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.players[player].id})
|
||||
MySQL.query.await("UPDATE characters SET cash = cash - ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
|
||||
end
|
||||
NDCore.functions:updateMoney(player)
|
||||
NDCore.Functions.UpdateMoney(player)
|
||||
end
|
||||
|
||||
-- Adds money from the player, "bank" or "cash" needs to be specified.
|
||||
function NDCore.functions:addMoney(amount, player, to)
|
||||
function NDCore.Functions.AddMoney(amount, player, to)
|
||||
local amount = tonumber(amount)
|
||||
local player = tonumber(player)
|
||||
if to == "bank" then
|
||||
MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.players[player].id})
|
||||
MySQL.query.await("UPDATE characters SET bank = bank + ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
|
||||
elseif to == "cash" then
|
||||
MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.players[player].id})
|
||||
MySQL.query.await("UPDATE characters SET cash = cash + ? WHERE character_id = ?", {amount, NDCore.Players[player].id})
|
||||
end
|
||||
NDCore.functions:updateMoney(player)
|
||||
NDCore.Functions.UpdateMoney(player)
|
||||
end
|
||||
|
||||
-- Adds the players character to the NDCore.players table, this table consists of every players selected character.
|
||||
function NDCore.functions:setActiveCharacter(player, characterId)
|
||||
-- Adds the players character to the NDCore.Players table, this table consists of every players selected character.
|
||||
function NDCore.Functions.SetActiveCharacter(player, characterId)
|
||||
local result = MySQL.query.await("SELECT * FROM characters WHERE character_id = ?", {characterId})
|
||||
if result then
|
||||
local i = result[1]
|
||||
NDCore.players[player] = {
|
||||
NDCore.Players[player] = {
|
||||
id = characterId,
|
||||
firstName = i.first_name,
|
||||
lastName = i.last_name,
|
||||
@@ -231,13 +231,13 @@ function NDCore.functions:setActiveCharacter(player, characterId)
|
||||
bank = i.bank
|
||||
}
|
||||
end
|
||||
TriggerClientEvent("ND:setCharacter", player, NDCore.players[player])
|
||||
TriggerClientEvent("ND:setCharacter", player, NDCore.Players[player])
|
||||
end
|
||||
|
||||
-- This returns all the characters the player has.
|
||||
function NDCore.functions:getPlayerCharacters(player)
|
||||
function NDCore.Functions.GetPlayerCharacters(player)
|
||||
local characters = {}
|
||||
local result = MySQL.query.await("SELECT * FROM characters WHERE license = ?", {NDCore.functions:GetPlayerIdentifierFromType("license", player)})
|
||||
local result = MySQL.query.await("SELECT * FROM characters WHERE license = ?", {NDCore.Functions.GetPlayerIdentifierFromType("license", player)})
|
||||
for i = 1, #result do
|
||||
local temp = result[i]
|
||||
characters[temp.character_id] = {id = temp.character_id, firstName = temp.first_name, lastName = temp.last_name, dob = temp.dob, gender = temp.gender, twt = temp.twt, job = temp.job, cash = temp.cash, bank = temp.bank}
|
||||
@@ -246,8 +246,8 @@ function NDCore.functions:getPlayerCharacters(player)
|
||||
end
|
||||
|
||||
-- Creates a new character for the player and returns all their characters to the client.
|
||||
function NDCore.functions:createCharacter(player, firstName, lastName, dob, gender, twt, job, cash, bank)
|
||||
local license = NDCore.functions:GetPlayerIdentifierFromType("license", player)
|
||||
function NDCore.Functions.CreateCharacter(player, firstName, lastName, dob, gender, twt, job, cash, bank)
|
||||
local license = NDCore.Functions.GetPlayerIdentifierFromType("license", player)
|
||||
if not cash or not bank or tonumber(cash) > config.startingCash or tonumber(bank) > config.startingBank then
|
||||
cash = config.startingCash
|
||||
bank = config.startingBank
|
||||
@@ -255,21 +255,21 @@ function NDCore.functions:createCharacter(player, firstName, lastName, dob, gend
|
||||
local result = MySQL.query.await("SELECT character_id FROM characters WHERE license = ?", {license})
|
||||
if result and config.characterLimit > #result then
|
||||
MySQL.query.await("INSERT INTO characters (license, first_name, last_name, dob, gender, twt, job, cash, bank) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", {license, firstName, lastName, dob, gender, twt, job, cash, bank})
|
||||
TriggerClientEvent("ND:returnCharacters", player, NDCore.functions:getPlayerCharacters(player))
|
||||
TriggerClientEvent("ND:returnCharacters", player, NDCore.Functions.GetPlayerCharacters(player))
|
||||
end
|
||||
end
|
||||
|
||||
-- Update/edit a character by character id.
|
||||
function NDCore.functions:updateCharacterData(characterId, firstName, lastName, dob, gender, twt, job)
|
||||
function NDCore.Functions.UpdateCharacterData(characterId, firstName, lastName, dob, gender, twt, job)
|
||||
MySQL.query("UPDATE characters SET first_name = ?, last_name = ?, dob = ?, gender = ?, twt = ?, job = ? WHERE character_id = ?", {firstName, lastName, dob, gender, twt, job, characterId})
|
||||
end
|
||||
|
||||
-- Delete a character by character id.
|
||||
function NDCore.functions:deleteCharacter(characterId)
|
||||
function NDCore.Functions.DeleteCharacter(characterId)
|
||||
MySQL.query("DELETE FROM characters WHERE character_id = ?", {characterId})
|
||||
end
|
||||
|
||||
function NDCore.functions:versionChecker(expectedResourceName, resourceName, downloadLink, rawGithubLink)
|
||||
function NDCore.Functions.VersionChecker(expectedResourceName, resourceName, downloadLink, rawGithubLink)
|
||||
if expectedResourceName ~= resourceName then
|
||||
print("^1[^4" .. expectedResourceName .. "^1] WARNING^0")
|
||||
print("Change the resource name to ^4" .. expectedResourceName .. " ^0or else it won't work properly!")
|
||||
@@ -306,4 +306,4 @@ function NDCore.functions:versionChecker(expectedResourceName, resourceName, dow
|
||||
end
|
||||
end)
|
||||
end
|
||||
NDCore.functions:versionChecker("ND_Core", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Core/fxmanifest.lua")
|
||||
NDCore.Functions.VersionChecker("ND_Core", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Core/fxmanifest.lua")
|
||||
@@ -1,9 +1,9 @@
|
||||
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6
|
||||
|
||||
NDCore = {}
|
||||
NDCore.players = {}
|
||||
NDCore.functions = {}
|
||||
NDCore.config = config
|
||||
NDCore.Players = {}
|
||||
NDCore.Functions = {}
|
||||
NDCore.Config = config
|
||||
|
||||
function GetCoreObject()
|
||||
return NDCore
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6
|
||||
|
||||
NDCore = exports["ND_Core"]:GetCoreObject()
|
||||
local job = NDCore.functions:getSelectedCharacter().job
|
||||
local job = nil
|
||||
local hasAccess = false
|
||||
|
||||
function drawText3D(coords, text)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6
|
||||
|
||||
NDCore = exports["ND_Core"]:GetCoreObject()
|
||||
NDCore.functions:versionChecker("ND_Doorlocks", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Doorlocks/fxmanifest.lua")
|
||||
NDCore.Functions.VersionChecker("ND_Doorlocks", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Doorlocks/fxmanifest.lua")
|
||||
|
||||
local updatedDoors = {}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
author "Andyyy#7666"
|
||||
description "ND Framework Jailing"
|
||||
version "2.1.0"
|
||||
version "2.2.0"
|
||||
|
||||
fx_version "cerulean"
|
||||
game "gta5"
|
||||
|
||||
@@ -41,7 +41,7 @@ function drawText3D(coords, text)
|
||||
end
|
||||
|
||||
function hasAccess()
|
||||
local job = NDCore.functions:getSelectedCharacter().job
|
||||
local job = NDCore.Functions.GetSelectedCharacter().job
|
||||
for _, department in pairs(config.accessDepartments) do
|
||||
if department == job then
|
||||
return true
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
NDCore = exports["ND_Core"]:GetCoreObject()
|
||||
NDCore.functions:versionChecker("ND_Jailing", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Jailing/fxmanifest.lua")
|
||||
NDCore.Functions.VersionChecker("ND_Jailing", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_Jailing/fxmanifest.lua")
|
||||
|
||||
local jailedPlayers = {}
|
||||
|
||||
@@ -35,12 +35,12 @@ end
|
||||
RegisterNetEvent("ND_Jailing:jailPlayer")
|
||||
AddEventHandler("ND_Jailing:jailPlayer", function(id, time, fine, reason)
|
||||
local player = source
|
||||
local players = exports["ND_Core"]:getCharacterTable()
|
||||
local dept = players[player].dept
|
||||
local players = NDCore.Functions.GetPlayers()
|
||||
local dept = players[player].job
|
||||
for _, department in pairs(config.accessDepartments) do
|
||||
if department == dept then
|
||||
jailedPlayers[GetPlayerIdentifierFromType("license", id)] = time
|
||||
exports["ND_Core"]:deductMoney(fine, id, "bank")
|
||||
NDCore.Functions.DeductMoney(fine, id, "bank")
|
||||
TriggerClientEvent("ND_Jailing:jailPlayer", id, time)
|
||||
sendToDiscord("Jail Logs", "**" .. GetPlayerName(player) .. "** Jailed **" .. GetPlayerName(id) .. "** for **" .. time .. " seconds** with the reason: **" .. reason .. "**.", 1595381)
|
||||
TriggerClientEvent('chat:addMessage', -1, {
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
</select>
|
||||
|
||||
<label class="text" for="jailtime">Time</label>
|
||||
<input id="time" class="input" type="number" placeholder="In seconds" name="jailtime" min="10" required>
|
||||
<input id="time" class="input" type="number" placeholder="In Seconds" name="jailtime" min="10" required>
|
||||
|
||||
<label class="text" for="fine">Fine</label>
|
||||
<input id="fine" class="input" type="number" placeholder="In seconds" name="fine" max="" required>
|
||||
<input id="fine" class="input" type="number" placeholder="$1000" name="fine" max="" required>
|
||||
|
||||
<label class="text" for="reason">Reason</label>
|
||||
<input id="reason" class="input" type="text" placeholder="short reason" name="reason" required>
|
||||
<input id="reason" class="input" type="text" placeholder="Short Reason" name="reason" required>
|
||||
</div>
|
||||
<hr id="line" style="position: absolute; margin: auto; left: 0; right: 0; bottom: 15%;">
|
||||
<p id="error"></p>
|
||||
|
||||
@@ -26,7 +26,7 @@ end
|
||||
|
||||
-- check if the players department can receive shot spotter alerts.
|
||||
function isCop()
|
||||
local job = NDCore.functions:getSelectedCharacter().job
|
||||
local job = NDCore.Functions.GetSelectedCharacter().job
|
||||
for _, department in pairs(config.receiveAlerts) do
|
||||
if department == job then
|
||||
return true
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
-- For support join my discord: https://discord.gg/Z9Mxu72zZ6
|
||||
|
||||
NDCore = exports["ND_Core"]:GetCoreObject()
|
||||
NDCore.functions:versionChecker("ND_ShotSpotter", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_ShotSpotter/fxmanifest.lua")
|
||||
NDCore.Functions.VersionChecker("ND_ShotSpotter", GetCurrentResourceName(), "https://github.com/Andyyy7666/ND_Framework", "https://raw.githubusercontent.com/Andyyy7666/ND_Framework/main/ND_ShotSpotter/fxmanifest.lua")
|
||||
|
||||
RegisterNetEvent("ND_ShotSpotter:Trigger")
|
||||
AddEventHandler("ND_ShotSpotter:Trigger", function(street, pedCoords, postal, zoneName)
|
||||
|
||||
Reference in New Issue
Block a user