Okay So I Can do the initial Remote to fire after holding it down for 3 seconds But I can't Get it to fire the Deactivate Event after I pressed M Again
local PlayerService = game:GetService("Players")
local UserInputService = game:GetService("UserInputService") -- Using UserInputService instead of mouse.
local Client = PlayerService.LocalPlayer
local Key = "M" -- The ke the person has to hold
local Holding = false -- Detects when the key is being held
local ExpectedHold = 3 -- How long you want the player to be hold the key for
local HoldingTime = 0 -- The amount of seconds they holded for
local Replicated = script.Parent
local Event = Replicated:WaitForChild("Amaterasu")
local Deactivate = Replicated:WaitForChild("Stop")
UserInputService.InputBegan:Connect(function(Input, GPE)
if not GPE then
if Input.KeyCode == Enum.KeyCode[Key] then -- When they start to press the key this runs
if not Holding then -- if they arent already holding then it continues
Holding = true -- Makes holding true/script now knows they're holding the key
while Holding do wait(1) -- Basically while holding == true the code after this will run every second
if HoldingTime < ExpectedHold then
HoldingTime = HoldingTime + 1 -- This adds to how long they holder the key for
end
end
end
end
end
end)
UserInputService.InputEnded:Connect(function(Input, GPE) -- runs when they stop holding a key
if not GPE then
if Input.KeyCode == Enum.KeyCode[Key] then
Holding = false
if HoldingTime >= ExpectedHold then -- if they holding the key for the right amount of time
Event:FireServer() -- fires the remote if they did
else
print(Client.Name..' holded '..Key..' for '..HoldingTime..' second(s).')
HoldingTime = 0 -- sets the time back to 0
Deactivate:FireServer()
end
end
end
end)
