From 2a3ac3b63b7900d1ef813a6d595885a8d09dc672 Mon Sep 17 00:00:00 2001 From: Andyyy7666 <86536434+Andyyy7666@users.noreply.github.com> Date: Tue, 19 Mar 2024 01:52:18 +0100 Subject: [PATCH 1/6] feat(server/player): player group removed event --- server/player.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/server/player.lua b/server/player.lua index da51b47..862f8bb 100644 --- a/server/player.lua +++ b/server/player.lua @@ -383,6 +383,7 @@ local function createCharacterTable(info) self.groups[name] = nil self.triggerEvent("ND:updateCharacter", removeCharacterFunctions(self), "groups") TriggerEvent("ND:updateCharacter", self, "groups") + TriggerEvent("ND:groupRemoved", self, group) lib.removePrincipal(self.source, ("group.%s"):format(name)) return group end From 97a8b991aea36c87a31de73abab7d4f1bde31c98 Mon Sep 17 00:00:00 2001 From: Andyyy7666 <86536434+Andyyy7666@users.noreply.github.com> Date: Tue, 19 Mar 2024 01:52:45 +0100 Subject: [PATCH 2/6] fix(server/vehicle): taking out impounded vehicle --- server/vehicle.lua | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/server/vehicle.lua b/server/vehicle.lua index 1cd7e7f..b2db0f9 100644 --- a/server/vehicle.lua +++ b/server/vehicle.lua @@ -411,7 +411,8 @@ function NDCore.spawnOwnedVehicle(source, vehicleId, coords, heading) if not player then return end local vehicle = NDCore.getVehicleById(vehicleId) - if not vehicle or not vehicle.available or vehicle.owner ~= player.id then return end + if not vehicle or vehicle.owner ~= player.id then return end + if not vehicle.available and not vehicle.impounded then return end MySQL.query.await("UPDATE nd_vehicles SET stored = ? WHERE id = ?", {0, vehicleId}) @@ -701,6 +702,11 @@ RegisterNetEvent("ND_Vehicles:takeVehicle", function(vehId, locations) local vehicle = NDCore.getVehicleById(vehId) local player = NDCore.getPlayer(src) if not player or not vehicle or vehicle.owner ~= player.id then return end + + local info = NDCore.spawnOwnedVehicle(src, vehicle.id, isParkingAvailable(locations)) + if not info then return end + TriggerClientEvent("ND_Vehicles:blip", src, info.netId, true) + if vehicle.impounded then local reclaimPrice = vehicle.metadata.impoundReclaimPrice or 200 if not player.deductMoney("bank", reclaimPrice, "Vehicle impound reclaim") then @@ -719,10 +725,6 @@ RegisterNetEvent("ND_Vehicles:takeVehicle", function(vehId, locations) }) MySQL.query.await("UPDATE nd_vehicles SET impounded = ? WHERE id = ?", {0, vehicle.id}) end - - local info = NDCore.spawnOwnedVehicle(src, vehicle.id, isParkingAvailable(locations)) - if not info then return end - TriggerClientEvent("ND_Vehicles:blip", src, info.netId, true) end) lib.callback.register("ND_Vehicles:getOwnedVehicles", function(src) From 2c7aa5723a6ece8b9289c45c4a13f8cf6bf3c138 Mon Sep 17 00:00:00 2001 From: Andyyy7666 <86536434+Andyyy7666@users.noreply.github.com> Date: Tue, 19 Mar 2024 01:53:06 +0100 Subject: [PATCH 3/6] perf(server/vehicle): getting vehicle types --- server/vehicle.lua | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/server/vehicle.lua b/server/vehicle.lua index b2db0f9..00123e9 100644 --- a/server/vehicle.lua +++ b/server/vehicle.lua @@ -1,6 +1,7 @@ local ox_inventory local inventoryStarted = false local spawnedPlayerVehicles = {} +local vehicleTypes = json.decode(GetResourceKvpString("ND_Core:vehTypes") or "[]") NDCore.isResourceStarted("ox_inventory", function(started) inventoryStarted = started @@ -8,16 +9,24 @@ NDCore.isResourceStarted("ox_inventory", function(started) ox_inventory = exports.ox_inventory end) -local function getVehicleType(model) - local tempVehicle = CreateVehicle(model, 0, 0, 0, 0, true, true) +local function getVehicleType(coords, model) + if vehicleTypes[model] then + return vehicleTypes[model] + end + local tempVehicle = CreateVehicle(model, coords.x, coords.y, coords.z-5.0, coords.w, true, false) local time = os.time() - while not DoesEntityExist(tempVehicle) and os.time()-time < 5 do Wait(5) end - + + while not DoesEntityExist(tempVehicle) and os.time()-time < 5 do Wait(0) end if not DoesEntityExist(tempVehicle) then return end - local entityType = GetVehicleType(tempVehicle) + + local vehType = GetVehicleType(tempVehicle) DeleteEntity(tempVehicle) - return entityType + + vehicleTypes[model] = vehType + SetResourceKvp("ND_Core:vehTypes", json.encode(vehicleTypes)) + + return vehType end local function generatePlate() @@ -253,7 +262,7 @@ function NDCore.createVehicle(info) end local model = info.model or properties.model - local vehType = getVehicleType(model) + local vehType = getVehicleType(spawnCoords, model) if not vehType then return Citizen.Trace("NDCore.createVehicle", "vehType not found") end From 1320c4ab7d9657f7ea24df0c8a6018a6da0d503b Mon Sep 17 00:00:00 2001 From: Hakko <67168651+Hakkodevelopment@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:02:24 -0600 Subject: [PATCH 4/6] Update commands.lua --- server/commands.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/server/commands.lua b/server/commands.lua index 79ccb9f..c0ffdf5 100644 --- a/server/commands.lua +++ b/server/commands.lua @@ -15,7 +15,7 @@ local moneyActions = { } lib.addCommand("setmoney", { - help = "Admin command, manage player money.", + help = "Admin command, set a players money.", restricted = "group.admin", params = { { @@ -164,7 +164,7 @@ lib.addCommand("setgroup", { end) lib.addCommand("skin", { - help = "Admin command, set player into character clothing menu.", + help = "Admin command, show character clothing menu for player.", restricted = "group.admin", params = { { @@ -178,7 +178,7 @@ lib.addCommand("skin", { end) lib.addCommand("character", { - help = "Admin command, set player into character selection menu.", + help = "Admin command, show character selection menu for player.", restricted = "group.admin", params = { { @@ -262,7 +262,7 @@ lib.addCommand("pay", { end) lib.addCommand("unlock", { - help = "Admin Command, force unlock vehicle.", + help = "Admin Command, force unlock a vehicle.", restricted = "group.admin", }, function(source, args, raw) local ped = GetPlayerPed(source) @@ -293,7 +293,7 @@ lib.addCommand("unlock", { end) lib.addCommand("revive", { - help = "Admin command, revive player.", + help = "Admin command, revive a player.", restricted = "group.admin", params = { { @@ -433,7 +433,7 @@ lib.addCommand("unfreeze", { end) lib.addCommand("vehicle", { - help = "Admin command, unfreeze a player.", + help = "Admin command, spawn a vehicle.", restricted = "group.admin", params = { { From eef1bb60f55e3382e1e8bb8cb8426c3d5e8c0bc8 Mon Sep 17 00:00:00 2001 From: Hakko <67168651+Hakkodevelopment@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:04:43 -0600 Subject: [PATCH 5/6] bump fxmanifest version --- fxmanifest.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fxmanifest.lua b/fxmanifest.lua index 5bc1ec3..ba0f9b8 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -2,7 +2,7 @@ author "Andyyy#7666" description "ND Framework Core" -version "2.1.2" +version "2.2.9" fx_version "cerulean" game "gta5" From 2460df2f34b0a22c594ec960a47234b4a6f21714 Mon Sep 17 00:00:00 2001 From: Andyyy7666 <86536434+Andyyy7666@users.noreply.github.com> Date: Tue, 26 Mar 2024 17:08:09 +0100 Subject: [PATCH 6/6] feat(server/vehicles): remove vehicles from db --- server/vehicle.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/server/vehicle.lua b/server/vehicle.lua index 00123e9..5803baa 100644 --- a/server/vehicle.lua +++ b/server/vehicle.lua @@ -108,6 +108,15 @@ function NDCore.getVehicle(entity) DeleteEntity(entity) end + + -- remvoe vehicle from db. + function self.remove(keepEntity) + if not keepEntity and DoesEntityExist(entity) then + DeleteEntity(entity) + end + MySQL.query("DELETE FROM nd_vehicles WHERE id = ?", {self.id}) + end + --- set vehicle properties ---@param props table function self.setProperties(props)