Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How can a coroutine be added to this script?

Asked by 3 years ago

I think I need to use a coroutine in this script because it is ignoring one of the tasks, i'm not experienced on it, any help?

adebounce = false
local ReplicatedStorage = game.ReplicatedStorage
local UIS = game:GetService("UserInputService")
local char = script.Parent.Parent

local keybind = Enum.KeyCode.LeftAlt
local canjump = true

UIS.InputBegan:Connect(function(input,gameprocessed)
    if gameprocessed then return end
    if not canjump then return end

    if input.KeyCode == keybind then
        canjump = false

        if canjump == false then 
            game.ReplicatedStorage.RemoteEventUpb:FireServer() --remote event fired when leftalt is pressed
            local ContextActionService = game:GetService("ContextActionService")
            local FREEZE_COMMAND = "Stunned"
            ContextActionService:BindActionAtPriority(FREEZE_COMMAND, function()
                return Enum.ContextActionResult.Sink
            end, false, Enum.ContextActionPriority.High.Value, Enum.KeyCode.C) --freezes 'c' key

            local jump = Instance.new("BodyVelocity") 
            --      jump.MaxForce = Vector3.new(0,50,0) 
            wait(0.2)
            jump.Velocity = Vector3.new(0,50,0)  --exerts player 1000 upward
            jump.Parent = char.HumanoidRootPart 
            wait(0.6)
            jump.Velocity = Vector3.new(0,-999,0) --exerts player -999 downward
            for count = 1,8 do
                wait(0,1)
            end
            jump:Destroy() --34
            wait(2) -- this wait is supposed to carry on after 
            ContextActionService:UnbindAction(FREEZE_COMMAND) --this is ignored all together
            wait(2)
            canjump = true
        end
    end
end)

1 answer

Log in to vote
0
Answered by 3 years ago

To use coroutine, in any part of the code that's valid of course, you just insert

coroutine.wrap(function()

     -- code here will run in another thread thus not yielding code in the current thread

end)() -- it only works with these extra parentheses

You can use more than 1 simultaneously, though I don't know the limit if there is one.

Hope this helps :3

Ad

Answer this question