From 32d3942038c1bbb6b9068a8c57ea33baf60a7154 Mon Sep 17 00:00:00 2001 From: CsyonDerEchte <91683109+CsyonDerEchte@users.noreply.github.com> Date: Fri, 2 Jun 2023 03:12:49 +0200 Subject: [PATCH 1/3] Update main.lua --- client/main.lua | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/client/main.lua b/client/main.lua index 57922dc..458526d 100644 --- a/client/main.lua +++ b/client/main.lua @@ -800,14 +800,18 @@ CreateThread(function() end end, ESX.Math.Trim(GetVehicleNumberPlateText(CurrentActionData.vehicle))) elseif CurrentAction == 'resell_vehicle' then - ESX.TriggerServerCallback('esx_vehicleshop:resellVehicle', function(vehicleSold) - if vehicleSold then - ESX.Game.DeleteVehicle(CurrentActionData.vehicle) - ESX.ShowNotification(TranslateCap('vehicle_sold_for', CurrentActionData.label, ESX.Math.GroupDigits(CurrentActionData.price))) - else - ESX.ShowNotification(TranslateCap('not_yours')) - end - end, CurrentActionData.plate, CurrentActionData.model) + if not pressed then + pressed = true + ESX.TriggerServerCallback('esx_vehicleshop:resellVehicle', function(vehicleSold, keypressed) + if vehicleSold then + ESX.Game.DeleteVehicle(CurrentActionData.vehicle) + ESX.ShowNotification(TranslateCap('vehicle_sold_for', CurrentActionData.label, ESX.Math.GroupDigits(CurrentActionData.price))) + else + ESX.ShowNotification(TranslateCap('not_yours')) + end + pressed = keypressed + end, CurrentActionData.plate, CurrentActionData.model) + end elseif CurrentAction == 'boss_actions_menu' then OpenBossActionsMenu() end From cd30c1f7afd7481ce88f0c956175eb559733c13b Mon Sep 17 00:00:00 2001 From: CsyonDerEchte <91683109+CsyonDerEchte@users.noreply.github.com> Date: Fri, 2 Jun 2023 03:40:16 +0200 Subject: [PATCH 2/3] Update main.lua --- server/main.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/server/main.lua b/server/main.lua index d462829..d0922b1 100644 --- a/server/main.lua +++ b/server/main.lua @@ -1,5 +1,6 @@ local categories, vehicles = {}, {} local vehiclesByModel = {} +local antispam = {} CreateThread(function() exports["esx_society"]:registerSociety('cardealer', TranslateCap('car_dealer'), 'society_cardealer', 'society_cardealer', 'society_cardealer', {type = 'private'}) From 4cd86028630c9a024aeb0a672fd1e422b6d03f40 Mon Sep 17 00:00:00 2001 From: CsyonDerEchte <91683109+CsyonDerEchte@users.noreply.github.com> Date: Fri, 2 Jun 2023 03:41:05 +0200 Subject: [PATCH 3/3] Update main.lua --- server/main.lua | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/server/main.lua b/server/main.lua index d0922b1..8847aad 100644 --- a/server/main.lua +++ b/server/main.lua @@ -283,12 +283,12 @@ ESX.RegisterServerCallback('esx_vehicleshop:resellVehicle', function(source, cb, if not resellPrice then print(('[^3WARNING^7] Player ^5%s^7 Attempted To Resell Invalid Vehicle - ^5%s^7!'):format(source, model)) - return cb(false) + return cb(false, false) end MySQL.single('SELECT * FROM rented_vehicles WHERE plate = ?', {plate}, function(result) if result then -- is it a rented vehicle? - return cb(false) -- it is, don't let the player sell it since he doesn't own it + return cb(false, false) -- it is, don't let the player sell it since he doesn't own it end MySQL.single('SELECT * FROM owned_vehicles WHERE owner = ? AND plate = ?', {xPlayer.identifier, plate}, function(result) @@ -299,16 +299,23 @@ ESX.RegisterServerCallback('esx_vehicleshop:resellVehicle', function(source, cb, if vehicle.model ~= model then print(('[^3WARNING^7] Player ^5%s^7 Attempted To Resell Vehicle With Invalid Model - ^5%s^7!'):format(source, model)) - return cb(false) + return cb(false, false) end if vehicle.plate ~= plate then print(('[^3WARNING^7] Player ^5%s^7 Attempted To Resell Vehicle With Invalid Plate - ^5%s^7!'):format(source, plate)) - return cb(false) + return cb(false, false) + end + if antispam[source] == nil then + antispam[source] = true + xPlayer.addMoney(resellPrice, "Sold Vehicle") + RemoveOwnedVehicle(plate) + cb(true, false) + Wait(5000) + antispam[source] = nil + else + print(('[^3WARNING^7] Player ^5%s^7 Attempted To Exploit Vehicle With Plate - ^5%s^7!'):format(source, plate)) + cb(false, false) end - - xPlayer.addMoney(resellPrice, "Sold Vehicle") - RemoveOwnedVehicle(plate) - cb(true) end) end) end