From 35832bbff08bbf46dcd73973199db04bf435a779 Mon Sep 17 00:00:00 2001 From: LosFaul Date: Mon, 29 Mar 2021 20:07:36 +0200 Subject: [PATCH 1/2] a --- [gamemodes]/[race]/race/race_client.lua | 3 ++- [gamemodes]/[race]/race/race_server.lua | 15 +++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/[gamemodes]/[race]/race/race_client.lua b/[gamemodes]/[race]/race/race_client.lua index 76c79e18d..016178580 100644 --- a/[gamemodes]/[race]/race/race_client.lua +++ b/[gamemodes]/[race]/race/race_client.lua @@ -218,7 +218,8 @@ function initRace(vehicle, checkpoints, objects, pickups, mapoptions, ranked, du for k,v in pairs(pickup) do g_Pickups[colshape][k] = v end - g_Pickups[colshape].load = true + local isLoaded = not pickup.isRespawning + g_Pickups[colshape].load = isLoaded if g_Pickups[colshape].type == 'vehiclechange' then g_Pickups[colshape].label = dxText:create(getVehicleNameFromModel(g_Pickups[colshape].vehicle), 0.5, 0.5) g_Pickups[colshape].label:color(255, 255, 255, 0) diff --git a/[gamemodes]/[race]/race/race_server.lua b/[gamemodes]/[race]/race/race_server.lua index 5f37b7e84..acc309f09 100644 --- a/[gamemodes]/[race]/race/race_server.lua +++ b/[gamemodes]/[race]/race/race_server.lua @@ -19,7 +19,6 @@ g_Pickups = {} -- { i = { position={x, y, z}, type=type, vehicle=vehicleID, p g_Players = {} -- { i = player } g_Vehicles = {} -- { player = vehicle } -local unloadedPickups = {} addEventHandler('onPlayerJoin', g_Root, @@ -659,10 +658,10 @@ addEventHandler('onPlayerPickUpRacePickupInternal', g_Root, local pickup = g_Pickups[table.find(g_Pickups, 'id', pickupID)] local vehicle = g_Vehicles[source] if not pickup or not vehicle then return end - if respawntime and tonumber(respawntime) >= 50 then - table.insert(unloadedPickups, pickupID) - clientCall(g_Root, 'unloadPickup', pickupID) + if respawntime and tonumber(respawntime) >= 50 and not pickup.isRespawning then + pickup.isRespawning = true TimerManager.createTimerFor("map"):setTimer(ServerLoadPickup, tonumber(respawntime), 1, pickupID) + clientCall(g_Root, 'unloadPickup', pickupID) end if pickup.type == 'nitro' then addVehicleUpgrade(vehicle, 1010) @@ -680,7 +679,8 @@ addEventHandler('onPlayerPickUpRacePickupInternal', g_Root, ) function ServerLoadPickup(pickupID) - table.removevalue(unloadedPickups, pickupID) + local pickup = g_Pickups[table.find(g_Pickups, 'id', pickupID)] + pickup.isRespawning = nil clientCall(g_Root, 'loadPickup', pickupID) end @@ -744,7 +744,6 @@ function unloadAll() g_Checkpoints = {} g_Objects = {} g_Pickups = {} - unloadedPickups = {} if g_CurrentRaceMode then g_CurrentRaceMode:destroy() end @@ -1009,10 +1008,6 @@ addEventHandler('onNotifyPlayerReady', g_Root, function() if checkClient( false, source, 'onNotifyPlayerReady' ) then return end setPlayerReady( source ) - for i, pickupID in ipairs(unloadedPickups) do - -- outputDebugString(getPlayerName(source).." unload "..tostring(pickupID)) - clientCall(source, "unloadPickup", pickupID ) - end end ) From 87eb437b8a6428d8d1922528621dc116c9563c0c Mon Sep 17 00:00:00 2001 From: Marek Kulik Date: Wed, 31 Mar 2021 01:57:19 +0200 Subject: [PATCH 2/2] Fix indentation --- [gamemodes]/[race]/race/race_client.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[gamemodes]/[race]/race/race_client.lua b/[gamemodes]/[race]/race/race_client.lua index 016178580..66a03041d 100644 --- a/[gamemodes]/[race]/race/race_client.lua +++ b/[gamemodes]/[race]/race/race_client.lua @@ -219,7 +219,7 @@ function initRace(vehicle, checkpoints, objects, pickups, mapoptions, ranked, du g_Pickups[colshape][k] = v end local isLoaded = not pickup.isRespawning - g_Pickups[colshape].load = isLoaded + g_Pickups[colshape].load = isLoaded if g_Pickups[colshape].type == 'vehiclechange' then g_Pickups[colshape].label = dxText:create(getVehicleNameFromModel(g_Pickups[colshape].vehicle), 0.5, 0.5) g_Pickups[colshape].label:color(255, 255, 255, 0)