Don’t be scared by the long script, basically, this is a script for a soccer game with a “fake shot” that will allow you to hold a shot animation, and if you press any key while holding the fake shot key, then it will end the fake shot animation and do that stuff for the key you just pressed, think of it as a sort of “combo”, the problem is, I don’t have any good ideas to fix this bad spaghetti code from the old game.
function release()
if TM.getWindUp() and TM.GetUsing() then
TM.setWindUp(false)
Winding = false
canKey = false
Kick = true
Player.Character.Humanoid.WalkSpeed = 20
if Leg == "R" then
if LKey == "r" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RL_1, CFRAME_HERE_RLR_2, Direction, Enum.EasingStyle.Circular, 0.12)
elseif LKey == "t" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RL_1, CFRAME_HERE_RLT_2, Direction, Enum.EasingStyle.Circular, 0.12)
elseif LKey == "q" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RL_1, CFRAME_HERE_RLY_2, Direction, Enum.EasingStyle.Circular, 0.12)
elseif LKey == "y" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RL_1, CFRAME_HERE_RLY_2, Direction, Enum.EasingStyle.Circular, 0.12)
elseif LKey == "e" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RL_1, CFRAME_HERE_RLE_2, Direction, Enum.EasingStyle.Circular, 0.12)
elseif LKey == "z" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RL_1, CFRAME_HERE_RLZ_2, Direction, Enum.EasingStyle.Circular, 0.12)
elseif LKey == "x" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RL_1, CFRAME_HERE_RLX_2, Direction, Enum.EasingStyle.Circular, 0.12)
else
Tween.TweenWeld("Right Leg", CFRAME_HERE_RL_1, CFRAME_HERE_RL_2, Direction, Enum.EasingStyle.Circular, 0.12)
end
Tween.TweenWeld("Right Arm", CFRAME_HERE_RA_1, CFRAME_HERE_RA_2, Direction, Enum.EasingStyle.Circular, 0.12)
Tween.TweenWeld("Left Arm", CFRAME_HERE_LA_1, CFRAME_HERE_LA_2, Direction, Enum.EasingStyle.Circular, 0.12)
else
if LKey == "r" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LL_1, CFRAME_HERE_LLR_2, Direction, Enum.EasingStyle.Circular, 0.12)
elseif LKey == "t" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LL_1, CFRAME_HERE_LLT_2, Direction, Enum.EasingStyle.Circular, 0.12)
elseif LKey == "q" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LL_1, CFRAME_HERE_LLY_2, Direction, Enum.EasingStyle.Circular, 0.12)
elseif LKey == "y" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LL_1, CFRAME_HERE_LLY_2, Direction, Enum.EasingStyle.Circular, 0.12)
elseif LKey == "e" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LL_1, CFRAME_HERE_LLE_2, Direction, Enum.EasingStyle.Circular, 0.12)
elseif LKey == "z" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LL_1, CFRAME_HERE_LLZ_2, Direction, Enum.EasingStyle.Circular, 0.12)
elseif LKey == "x" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LL_1, CFRAME_HERE_LLX_2, Direction, Enum.EasingStyle.Circular, 0.12)
else
Tween.TweenWeld("Left Leg", CFRAME_HERE_LL_1, CFRAME_HERE_LL_2, Direction, Enum.EasingStyle.Circular, 0.12)
end
Tween.TweenWeld("Right Arm", CFRAME_HERE_RA_2, CFRAME_HERE_RA_1, Direction, Enum.EasingStyle.Circular, 0.12)
Tween.TweenWeld("Left Arm", CFRAME_HERE_LA_2, CFRAME_HERE_LA_1, Direction, Enum.EasingStyle.Circular, 0.12)
end
wait(0.3)
Player.Character.Humanoid.WalkSpeed = 20
if Leg == "R" then
if LKey == "r" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RLR_2, CFrame.new(0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
elseif LKey == "t" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RLT_2, CFrame.new(0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
elseif LKey == "q" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RLY_2, CFrame.new(0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
elseif LKey == "y" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RLY_2, CFrame.new(0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
elseif LKey == "e" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RLE_2, CFrame.new(0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
elseif LKey == "z" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RLZ_2, CFrame.new(0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
elseif LKey == "x" then
Tween.TweenWeld("Right Leg", CFRAME_HERE_RLX_2, CFrame.new(0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
else
Tween.TweenWeld("Right Leg", CFRAME_HERE_RL_2, CFrame.new(0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
end
Tween.TweenWeld("Right Arm", CFRAME_HERE_RA_2, CFrame.new(1.5,0,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
Tween.TweenWeld("Left Arm", CFRAME_HERE_LA_2, CFrame.new(-1.5,0,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
else
if LKey == "r" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LLR_2, CFrame.new(-0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
elseif LKey == "t" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LLT_2, CFrame.new(-0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
elseif LKey == "q" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LLY_2, CFrame.new(-0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
elseif LKey == "y" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LLY_2, CFrame.new(-0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
elseif LKey == "e" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LLE_2, CFrame.new(-0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
elseif LKey == "z" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LLZ_2, CFrame.new(-0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
elseif LKey == "x" then
Tween.TweenWeld("Left Leg", CFRAME_HERE_LLX_2, CFrame.new(-0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
else
Tween.TweenWeld("Left Leg", CFRAME_HERE_LL_2, CFrame.new(-0.5,-2,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
end
Tween.TweenWeld("Right Arm", CFRAME_HERE_RA_1, CFrame.new(1.5,0,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
Tween.TweenWeld("Left Arm", CFRAME_HERE_LA_1, CFrame.new(-1.5,0,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.1)
end
Kick = false
LKey = "f"
TM.SetUsing(false)
TM.setWindUp(false)
canRelease = false
TM.ResetWelds()
end
end
Player.Character["Right Leg"].Touched:connect(function(hit)
if hit.Name == "Legs" and hit.Parent ~= Player.Character then if not Kick then return end
Kick = false
end
if TM.check() == "L" then return end
if hit.Name ~= "TPS" then return end
if Kick == false then return end
local force
local angle
local stop = false
if LKey == "r" then
force = ((Player.Character["Torso"].CFrame * CFrame.fromEulerAnglesXYZ(0,1,0)).lookVector * 22.5) + (Player.Character["Torso"].CFrame.upVector * 7.5)
angle = Vector3.new(1e+005, 1e+005, 1e+005)
elseif LKey == "t" then
force = ((Player.Character["Torso"].CFrame * CFrame.fromEulerAnglesXYZ(0,-1,0)).lookVector * 22.5) + (Player.Character["Torso"].CFrame.upVector * 7.5)
angle = Vector3.new(1e+005, 1e+005, 1e+005)
elseif LKey == "q" then
force = (Player.Character["Torso"].CFrame.lookVector * 19.5) + (Player.Character["Torso"].CFrame.upVector * 9.5)
angle = Vector3.new(1e+005, 1e+005, 1e+005)
elseif LKey == "y" then
force = (Player.Character["Torso"].CFrame.lookVector * (Player.Character.Humanoid.WalkSpeed + 0.5)) + (Player.Character["Torso"].CFrame.upVector * 30)
angle = Vector3.new(0, 1e+005, 0)
elseif LKey == "e" then
force = ((Player.Character["Torso"].CFrame * CFrame.fromEulerAnglesXYZ(0,0.1,0)).lookVector * -22.5) + (Player.Character["Torso"].CFrame.upVector * -10)
angle = Vector3.new(1e+005, 1e+005, 1e+005)
elseif LKey == "z" then
force = (Player.Character["Torso"].CFrame.rightVector * 24)
force = force * Vector3.new(1, 0, 1)
force = force + Vector3.new(0, -10, 0)
if Player.Character["Torso"].Position.Y - hit.Position.Y < 1 then
angle = Vector3.new(5e+005, 1e+005, 5e+005)
else
angle = Vector3.new(2e+004, 1e+005, 2e+004)
end
elseif LKey == "x" then
force = (Player.Character["Torso"].CFrame.rightVector * -24)
force = force * Vector3.new(1, 0, 1)
force = force + Vector3.new(0, -10, 0)
if Player.Character["Torso"].Position.Y - hit.Position.Y < 1 then
angle = Vector3.new(5e+005, 1e+005, 5e+005)
else
angle = Vector3.new(2e+004, 1e+005, 2e+004)
end
else
force = Player.Character["Torso"].CFrame.lookVector * 0
angle = Vector3.new(1e+005, 1e+005, 1e+005)
stop = true
end
Kick = false
TM.ApplyForce(hit, "Right Leg", false)
local React = Instance.new("BodyVelocity")
React.Velocity = force
React.MaxForce = angle
React.Parent = hit
game.Debris:AddItem(React, 0.3)
Player.Character.Head.CollisionGroupId = 2
if stop == true then
hit.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
hit.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
end
wait(0.3)
Player.Character.Head.CollisionGroupId = 0
end)
Player.Character["Left Leg"].Touched:connect(function(hit)
if hit.Name == "Legs" and hit.Parent ~= Player.Character then if not Kick then return end
Kick = false
end
if TM.check() == "R" then return end
if hit.Name ~= "TPS" then return end
if Kick == false then return end
local force
local angle
local stop = false
if LKey == "r" then
force = ((Player.Character["Torso"].CFrame * CFrame.fromEulerAnglesXYZ(0,1,0)).lookVector * 22.5) + (Player.Character["Torso"].CFrame.upVector * 7.5)
angle = Vector3.new(1e+005, 1e+005, 1e+005)
elseif LKey == "t" then
force = ((Player.Character["Torso"].CFrame * CFrame.fromEulerAnglesXYZ(0,-1,0)).lookVector * 22.5) + (Player.Character["Torso"].CFrame.upVector * 7.5)
angle = Vector3.new(1e+005, 1e+005, 1e+005)
elseif LKey == "q" then
force = (Player.Character["Torso"].CFrame.lookVector * 19.5) + (Player.Character["Torso"].CFrame.upVector * 10.5)
angle = Vector3.new(1e+005, 1e+005, 1e+005)
elseif LKey == "y" then
force = (Player.Character["Torso"].CFrame.lookVector * (Player.Character.Humanoid.WalkSpeed + 0.5)) + (Player.Character["Torso"].CFrame.upVector * 30)
angle = Vector3.new(0, 1e+005, 0)
elseif LKey == "e" then
force = ((Player.Character["Torso"].CFrame * CFrame.fromEulerAnglesXYZ(0,0.1,0)).lookVector * -22.5) + (Player.Character["Torso"].CFrame.upVector * -10)
angle = Vector3.new(1e+005, 1e+005, 1e+005)
elseif LKey == "z" then
force = (Player.Character["Torso"].CFrame.rightVector * 24)
force = force * Vector3.new(1, 0, 1)
force = force + Vector3.new(0, -10, 0)
if Player.Character["Torso"].Position.Y - hit.Position.Y < 1 then
angle = Vector3.new(5e+005, 1e+005, 5e+005)
else
angle = Vector3.new(2e+004, 1e+005, 2e+004)
end
elseif LKey == "x" then
force = (Player.Character["Torso"].CFrame.rightVector * -24)
force = force * Vector3.new(1, 0, 1)
force = force + Vector3.new(0, -10, 0)
if Player.Character["Torso"].Position.Y - hit.Position.Y < 1 then
angle = Vector3.new(5e+005, 1e+005, 5e+005)
else
angle = Vector3.new(2e+004, 1e+005, 2e+004)
end
else
force = Player.Character["Torso"].CFrame.lookVector * 0
angle = Vector3.new(1e+005, 1e+005, 1e+005)
stop = true
end
Maybe a for loop like using a table like this would work??!?!
local keyStuff = {
["E"] = {Force = vector3.new(blah), Animation = Cframe.new(blah)}
}