so im trying to make a combo system for my game. I want to make a script that fires when the player hits the mouse buttons in a certain order consecutivly. For example, i want a combo like Mouse1+Mouse2+Mouse2 = Combo. When they enter in this order it wil fire. This is what i have so far
player = game.Players.LocalPlayer uis = game:GetService("UserInputService") uis.InputBegan:connect(function(key,procy) if not proc then local keys = uis:GetKeysPressed() local needed = {"Mouse1","Mouse2","Mouse2"} for i ,v in pairs(keys) do if keys == needed then print("I Got a Combo") end end end end)
This doesnt work at all and im not sure if I'm even doing it correctly >.>
Its not the best script but it works.
local combo = 0 --First I will make combo variables local combo_limit = 1 --seconds until time left to press ends local combo_delay = .2 --seconds until the combo happens local combo_delay2 = .2 --seconds until the combo happens local combo_delay3 = .2 --seconds until the combo happens game:GetService("RunService").RenderStepped:connect(function() --next we get renderstepped if combo > 0 then --if its greater then 0 if it waits combo limit it = 0 again wait(combo_limit) combo = 0 end end) game:GetService("UserInputService").InputBegan:connect(function(input , procy) --get input begin for combos if not procy then if input.UserInputType == Enum.UserInputType.MouseButton1 and combo == 0 then --when we press this it gives us another combo same with the ones below wait(combo_delay) combo = 1 print(combo) end if input.UserInputType == Enum.UserInputType.MouseButton2 then if combo == 1 then wait(combo_delay2) combo = 2 print(combo) elseif combo == 2 then wait(combo_delay3) combo = 3 print(combo) end end end end)
if this helped please (upvote) and accept :D ~KIHeros