From be456e8bf1fda481e142438274964c0b36d249eb Mon Sep 17 00:00:00 2001 From: Jim Shield Date: Sun, 2 Nov 2025 15:51:43 +0000 Subject: [PATCH] Remove client side item functions Move item adding and removal to server side --- client/skateboard.lua | 18 ++++++++++-------- client/surfboard.lua | 19 ++++++++++--------- server/usableItems.lua | 31 +++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 17 deletions(-) diff --git a/client/skateboard.lua b/client/skateboard.lua index 890f4c7..d51e4de 100644 --- a/client/skateboard.lua +++ b/client/skateboard.lua @@ -43,11 +43,13 @@ RegisterNetEvent(getScript()..":Skateboard:PickPlace", function(data) if not IsPedSittingInAnyVehicle(Ped) then if DoesEntityExist(skateboard.Bike) then Attached = false + Wait(100) stopTempCam() makeFakeSkateboard(Ped, true, data.prop) -- pick up animation - currentToken = triggerCallback(AuthEvent) - addItem(lastItem, 1) + + triggerCallback(getScript()..":auth:collectBoard") + skateboard = {} Dir = {} else @@ -119,10 +121,9 @@ RegisterNetEvent(getScript()..":Skateboard:PickPlace", function(data) storedVariables = skateboard SetEntityCoords(skateboard.Bike, GetOffsetFromEntityInWorldCoords(Ped, 0.0, 0.5, 1.5)) SetEntityHeading(skateboard.Bike, GetEntityHeading(Ped)+90) - lastItem = data.name - if hasItem(data.name, 1) then - removeItem(data.name, 1) - end + + triggerCallback(getScript()..":auth:logLastBoard", data.name) + Dir = {} end end @@ -190,9 +191,10 @@ RegisterNetEvent(getScript()..":Skateboard:GetOn", function() removeEntityTarget(skateboard.Bike) removeEntityTarget(skateboard.Driver) Attached = false + Wait(100) - currentToken = triggerCallback(AuthEvent) - addItem(lastItem, 1) + triggerCallback(getScript()..":auth:collectBoard") + skateboard = {} Dir = {} end diff --git a/client/surfboard.lua b/client/surfboard.lua index 6bca819..99fca4d 100644 --- a/client/surfboard.lua +++ b/client/surfboard.lua @@ -42,11 +42,13 @@ RegisterNetEvent(getScript()..":Surfboard:PickPlace", function(data) if not IsPedSittingInAnyVehicle(Ped) then if DoesEntityExist(skateboard.Bike) then Attached = false + Wait(100) stopTempCam() makeFakeSurfboard(Ped, true, data.prop) -- pick up animation - currentToken = triggerCallback(AuthEvent) - addItem(lastItem, 1) + + triggerCallback(getScript()..":auth:collectBoard") + skateboard = {} Dir = {} else @@ -129,10 +131,9 @@ RegisterNetEvent(getScript()..":Surfboard:PickPlace", function(data) storedVariables = skateboard SetEntityCoords(skateboard.Bike, GetOffsetFromEntityInWorldCoords(Ped, 0.0, 0.8, 0.0)) SetEntityHeading(skateboard.Bike, GetEntityHeading(Ped)+90) - lastItem = data.name - if hasItem(data.name, 1) then - removeItem(data.name, 1) - end + + triggerCallback(getScript()..":auth:logLastBoard", data.name) + Dir = {} end end @@ -211,9 +212,9 @@ RegisterNetEvent(getScript()..":Surfboard:GetOn", function() local Ped = PlayerP removeEntityTarget(skateboard.Bike) removeEntityTarget(skateboard.Driver) Attached = false - Wait(100) - currentToken = triggerCallback(AuthEvent) - addItem(lastItem, 1) + + triggerCallback(getScript()..":auth:collectBoard") + skateboard = {} Dir = {} end diff --git a/server/usableItems.lua b/server/usableItems.lua index 4916603..3c84f3f 100644 --- a/server/usableItems.lua +++ b/server/usableItems.lua @@ -10,4 +10,35 @@ onResourceStart(function() TriggerClientEvent(getScript()..":Surfboard:PickPlace", source, { name = k }) end) end + + local authCheck = {} + createCallback(getScript()..":auth:logLastBoard", function(source, item) + local src = source + if not SkateboardItemModels[item] and not SurfboardItemModels[item] then + print("^1Error^7: SRC: "..src.."^1Tried to log an item that wasn't a board^7: "..item) + return false + end + if authCheck[src] then + print("^1Error^7: SRC: "..src.." ^1already logged an item^7: "..authCheck[src]) + return false + else + authCheck[src] = item + removeItem(item, 1, src) + debugPrint("^5Debug^7: SRC: "..src.." ^2logged an item^7: "..authCheck[src]) + return true + end + end) + + createCallback(getScript()..":auth:collectBoard", function(source) + local src = source + if not authCheck[src] then + print("^1Error^7: SRC: "..src.."^1Tried to request an item but it wasn't logged^7") + return false + else + addItem(authCheck[src], 1, nil, src) + authCheck[src] = nil + return true + end + end) + end, true)