Hello, I was told here earlier about coroutines and I'm trying to use one so that each individual player can reload at the same time without the wait(reloadtime) getting in the way.
A solution offered to me was to change the bottom line to reloadevent.OnServerEvent:Connect(coroutine.wrap(reload)) but that threw a dead coroutine error every time, so I made the coroutine within the reload function. However, this seems to be bypassing the intended effect because now there is no error but the coroutine is ineffective.
I am really just totally lost.
local function reload(player, gun)
local a = coroutine.wrap(function() --make coroutine locally so its unique each time
local active = gun.gunstats.Active
if active.Value == true and reloaddebounce == false then
reloaddebounce = true
local reloadtime = gun.gunstats.Reloadtime
local magammo = gun.gunstats.Mag
local maximum = gun.gunstats.Maximum
local reloadtick = 0
if magammo.Value < maximum.Value and tick() - reloadtick >= reloadtime.Value then --cant reload when full
reloadtick = tick()
changetoreload:FireClient(player)
changecursortoreload:FireClient(player)
magammo.Value = 0
gun.phalanx.Magazine.Transparency = 1
gun.Handle.Reloadsound:Play()
wait(reloadtime.Value)
reloaddebounce = false
gun.phalanx.Magazine.Transparency = 0
magammo.Value = maximum.Value
end
end
end)
a()
end
reloadevent.OnServerEvent:Connect(reload)
