mirror of
https://github.com/ND-Framework/ND_Core.git
synced 2026-08-17 22:06:02 +01:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
898b9aefe9 | ||
|
|
5545650dd5 | ||
|
|
f4f01a5b1c | ||
|
|
3252118f93 | ||
|
|
9d4708a1f8 |
@@ -50,3 +50,22 @@ RegisterNetEvent("ND:revivePlayer", function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
RegisterNetEvent("ND:characterUnloaded")
|
RegisterNetEvent("ND:characterUnloaded")
|
||||||
|
|
||||||
|
RegisterNetEvent("ND:clothingMenu", function()
|
||||||
|
if GetResourceState("fivem-appearance") ~= "started" then return end
|
||||||
|
|
||||||
|
local function customize(appearance)
|
||||||
|
if not appearance then return end
|
||||||
|
TriggerServerEvent("ND:updateClothing", appearance)
|
||||||
|
end
|
||||||
|
|
||||||
|
exports["fivem-appearance"]:startPlayerCustomization(customize, {
|
||||||
|
ped = false,
|
||||||
|
headBlend = true,
|
||||||
|
faceFeatures = true,
|
||||||
|
headOverlays = true,
|
||||||
|
components = true,
|
||||||
|
props = true,
|
||||||
|
tattoos = true
|
||||||
|
})
|
||||||
|
end)
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Config = {
|
|||||||
discordAsset = GetConvar("core:discordAsset", "andyyy"),
|
discordAsset = GetConvar("core:discordAsset", "andyyy"),
|
||||||
discordAssetSmall = GetConvar("core:discordAssetSmall", "andyyy"),
|
discordAssetSmall = GetConvar("core:discordAssetSmall", "andyyy"),
|
||||||
discordActionText = GetConvar("core:discordActionText", "DISCORD"),
|
discordActionText = GetConvar("core:discordActionText", "DISCORD"),
|
||||||
discordActionLink = GetConvar("discordActionLink", "https://discord.gg/Z9Mxu72zZ6"),
|
discordActionLink = GetConvar("core:discordActionLink", "https://discord.gg/Z9Mxu72zZ6"),
|
||||||
discordActionText2 = GetConvar("core:discordActionText2", "STORE"),
|
discordActionText2 = GetConvar("core:discordActionText2", "STORE"),
|
||||||
discordActionLink2 = GetConvar("core:discordActionLink2", "https://andyyy.tebex.io/category/fivem-scripts"),
|
discordActionLink2 = GetConvar("core:discordActionLink2", "https://andyyy.tebex.io/category/fivem-scripts"),
|
||||||
disableVehicleAirControl = GetConvarInt("core:disableVehicleAirControl", 1) == 1,
|
disableVehicleAirControl = GetConvarInt("core:disableVehicleAirControl", 1) == 1,
|
||||||
|
|||||||
@@ -154,3 +154,10 @@ RegisterNetEvent("ND:playerEliminated", function(info)
|
|||||||
deathInfo = info
|
deathInfo = info
|
||||||
})
|
})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
RegisterNetEvent("ND::updateClothing", function(clothing)
|
||||||
|
local src = source
|
||||||
|
local player = NDCore.getPlayer(src)
|
||||||
|
if not player or not clothing or type(clothing) ~= "table" then return end
|
||||||
|
player.setMetadata("clothing", clothing)
|
||||||
|
end)
|
||||||
|
|||||||
@@ -114,6 +114,7 @@ local function createCharacterTable(info)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self))
|
self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self))
|
||||||
|
TriggerEvent("ND:updateCharacter", self)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@param key string|table
|
---@param key string|table
|
||||||
@@ -128,6 +129,7 @@ local function createCharacterTable(info)
|
|||||||
self.metadata[key] = value
|
self.metadata[key] = value
|
||||||
end
|
end
|
||||||
self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self))
|
self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self))
|
||||||
|
TriggerEvent("ND:updateCharacter", self)
|
||||||
return self.metadata
|
return self.metadata
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -224,6 +226,7 @@ local function createCharacterTable(info)
|
|||||||
self.metadata.licenses = {license}
|
self.metadata.licenses = {license}
|
||||||
end
|
end
|
||||||
self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self))
|
self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self))
|
||||||
|
TriggerEvent("ND:updateCharacter", self)
|
||||||
end
|
end
|
||||||
|
|
||||||
function self.getLicense(identifier)
|
function self.getLicense(identifier)
|
||||||
@@ -343,8 +346,11 @@ local function createCharacterTable(info)
|
|||||||
|
|
||||||
if not isJob then
|
if not isJob then
|
||||||
self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self))
|
self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self))
|
||||||
|
TriggerEvent("ND:updateCharacter", self)
|
||||||
end
|
end
|
||||||
|
|
||||||
lib.addPrincipal(self.source, ("group.%s"):format(name))
|
lib.addPrincipal(self.source, ("group.%s"):format(name))
|
||||||
|
|
||||||
return self.groups[name]
|
return self.groups[name]
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -366,6 +372,7 @@ local function createCharacterTable(info)
|
|||||||
|
|
||||||
self.groups[name] = nil
|
self.groups[name] = nil
|
||||||
self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self))
|
self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self))
|
||||||
|
TriggerEvent("ND:updateCharacter", self)
|
||||||
lib.removePrincipal(self.source, ("group.%s"):format(name))
|
lib.removePrincipal(self.source, ("group.%s"):format(name))
|
||||||
return group
|
return group
|
||||||
end
|
end
|
||||||
@@ -381,6 +388,7 @@ local function createCharacterTable(info)
|
|||||||
self.jobInfo = job
|
self.jobInfo = job
|
||||||
end
|
end
|
||||||
self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self))
|
self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self))
|
||||||
|
TriggerEvent("ND:updateCharacter", self)
|
||||||
return job
|
return job
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -426,7 +434,7 @@ function NDCore.newCharacter(src, info)
|
|||||||
inventory = info.inventory or {}
|
inventory = info.inventory or {}
|
||||||
}
|
}
|
||||||
|
|
||||||
charInfo.id = MySQL.insert.await("INSERT INTO nd_characters (identifier, name, firstname, lastname, dob, gender, cash, bank, phonenumber, `groups`, metadata) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", {
|
charInfo.id = MySQL.insert.await("INSERT INTO nd_characters (identifier, name, firstname, lastname, dob, gender, cash, bank, phonenumber, `groups`, metadata, inventory) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", {
|
||||||
identifier,
|
identifier,
|
||||||
charInfo.name,
|
charInfo.name,
|
||||||
charInfo.firstname,
|
charInfo.firstname,
|
||||||
@@ -437,7 +445,8 @@ function NDCore.newCharacter(src, info)
|
|||||||
charInfo.bank,
|
charInfo.bank,
|
||||||
charInfo.phonenumber,
|
charInfo.phonenumber,
|
||||||
json.encode(charInfo.groups),
|
json.encode(charInfo.groups),
|
||||||
json.encode(charInfo.metadata)
|
json.encode(charInfo.metadata),
|
||||||
|
json.encode(charInfo.inventory)
|
||||||
})
|
})
|
||||||
|
|
||||||
return createCharacterTable(charInfo)
|
return createCharacterTable(charInfo)
|
||||||
|
|||||||
@@ -730,3 +730,30 @@ lib.callback.register("ND_Vehicles:getOwnedVehicles", function(src)
|
|||||||
if not player then return end
|
if not player then return end
|
||||||
return NDCore.getVehicles(player.id)
|
return NDCore.getVehicles(player.id)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
AddEventHandler("ND:characterLoaded", function(player)
|
||||||
|
local ownedExistingVehicles = {}
|
||||||
|
local ownedVehicles = NDCore.getVehicles(player.id)
|
||||||
|
local vehicles = GetAllVehicles()
|
||||||
|
local vehiclesToImpound = {}
|
||||||
|
|
||||||
|
for i=1, #vehicles do
|
||||||
|
local veh = vehicles[i]
|
||||||
|
local state = Entity(veh).state
|
||||||
|
if state.owner == player.id then
|
||||||
|
ownedExistingVehicles[#ownedExistingVehicles+1] = state.id
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for i=1, #ownedVehicles do
|
||||||
|
local veh = ownedVehicles[i]
|
||||||
|
if veh and not veh.stored and not veh.impounded and not lib.table.contains(ownedExistingVehicles, veh.id) then
|
||||||
|
vehiclesToImpound[#vehiclesToImpound+1] = veh.id
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if #vehiclesToImpound == 0 then return end
|
||||||
|
|
||||||
|
local query = ("UPDATE nd_vehicles SET impounded = ? WHERE owner = ? AND id IN (%s)"):format(table.concat(vehiclesToImpound, ", "))
|
||||||
|
MySQL.rawExecute(query, {1, player.id})
|
||||||
|
end)
|
||||||
|
|||||||
Reference in New Issue
Block a user