Create 2007 libs pt. 2
This commit is contained in:
parent
ffa5c47f11
commit
8725193429
|
|
@ -0,0 +1,301 @@
|
|||
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
|
||||
<External>null</External>
|
||||
<External>nil</External>
|
||||
<Item class="Script" referent="RBX0">
|
||||
<Properties>
|
||||
<bool name="Disabled">false</bool>
|
||||
<Content name="LinkedSource"><null></null></Content>
|
||||
<string name="Name">Animate</string>
|
||||
<string name="Source">-- Now with exciting TeamColors HACK!
|
||||
|
||||
function waitForChild(parent, childName)
|
||||
local child = parent:findFirstChild(childName)
|
||||
if child then return child end
|
||||
while true do
|
||||
child = parent.ChildAdded:wait()
|
||||
if child.Name==childName then return child end
|
||||
end
|
||||
end
|
||||
|
||||
----------------------------- TEAM COLORS
|
||||
|
||||
|
||||
function onTeamChanged(player)
|
||||
|
||||
wait(1)
|
||||
|
||||
local char = player.Character
|
||||
if char == nil then return end
|
||||
|
||||
if player.Neutral then
|
||||
-- Replacing the current BodyColor object will force a reset
|
||||
local old = char:findFirstChild("Body Colors")
|
||||
if not old then return end
|
||||
old:clone().Parent = char
|
||||
old.Parent = nil
|
||||
else
|
||||
local head = char:findFirstChild("Head")
|
||||
local torso = char:findFirstChild("Torso")
|
||||
local left_arm = char:findFirstChild("Left Arm")
|
||||
local right_arm = char:findFirstChild("Right Arm")
|
||||
local left_leg = char:findFirstChild("Left Leg")
|
||||
local right_leg = char:findFirstChild("Right Leg")
|
||||
|
||||
if head then head.BrickColor = BrickColor.new(24) end
|
||||
if torso then torso.BrickColor = player.TeamColor end
|
||||
if left_arm then left_arm.BrickColor = BrickColor.new(26) end
|
||||
if right_arm then right_arm.BrickColor = BrickColor.new(26) end
|
||||
if left_leg then left_leg.BrickColor = BrickColor.new(26) end
|
||||
if right_leg then right_leg.BrickColor = BrickColor.new(26) end
|
||||
end
|
||||
end
|
||||
|
||||
function onPlayerPropChanged(property, player)
|
||||
if property == "Character" then
|
||||
onTeamChanged(player)
|
||||
end
|
||||
if property== "TeamColor" or property == "Neutral" then
|
||||
onTeamChanged(player)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local cPlayer = game.Players:GetPlayerFromCharacter(script.Parent)
|
||||
cPlayer.Changed:connect(function(property) onPlayerPropChanged(property, cPlayer) end )
|
||||
onTeamChanged(cPlayer)
|
||||
|
||||
|
||||
----------------------------- ANIMATION
|
||||
|
||||
-- declarations
|
||||
|
||||
local Figure = script.Parent
|
||||
local Torso = waitForChild(Figure, "Torso")
|
||||
local RightShoulder = waitForChild(Torso, "Right Shoulder")
|
||||
local LeftShoulder = waitForChild(Torso, "Left Shoulder")
|
||||
local RightHip = waitForChild(Torso, "Right Hip")
|
||||
local LeftHip = waitForChild(Torso, "Left Hip")
|
||||
local Neck = waitForChild(Torso, "Neck")
|
||||
local Humanoid = waitForChild(Figure, "Humanoid")
|
||||
local pose = "Standing"
|
||||
|
||||
local toolAnim = "None"
|
||||
local toolAnimTime = 0
|
||||
|
||||
local isSeated = false
|
||||
|
||||
-- functions
|
||||
|
||||
function onRunning(speed)
|
||||
if isSeated then return end
|
||||
|
||||
if speed>0 then
|
||||
pose = "Running"
|
||||
else
|
||||
pose = "Standing"
|
||||
end
|
||||
end
|
||||
|
||||
function onDied()
|
||||
pose = "Dead"
|
||||
end
|
||||
|
||||
function onJumping()
|
||||
isSeated = false
|
||||
pose = "Jumping"
|
||||
end
|
||||
|
||||
function onClimbing()
|
||||
pose = "Climbing"
|
||||
end
|
||||
|
||||
function onGettingUp()
|
||||
pose = "GettingUp"
|
||||
end
|
||||
|
||||
function onFreeFall()
|
||||
pose = "FreeFall"
|
||||
end
|
||||
|
||||
function onFallingDown()
|
||||
pose = "FallingDown"
|
||||
end
|
||||
|
||||
function onSeated()
|
||||
isSeated = true
|
||||
pose = "Seated"
|
||||
end
|
||||
|
||||
function moveJump()
|
||||
RightShoulder.MaxVelocity = 0.5
|
||||
LeftShoulder.MaxVelocity = 0.5
|
||||
RightShoulder.DesiredAngle = 3.14
|
||||
LeftShoulder.DesiredAngle = -3.14
|
||||
RightHip.DesiredAngle = 0
|
||||
LeftHip.DesiredAngle = 0
|
||||
end
|
||||
|
||||
|
||||
-- same as jump for now
|
||||
|
||||
function moveFreeFall()
|
||||
RightShoulder.MaxVelocity = 0.5
|
||||
LeftShoulder.MaxVelocity = 0.5
|
||||
RightShoulder.DesiredAngle = 3.14
|
||||
LeftShoulder.DesiredAngle = -3.14
|
||||
RightHip.DesiredAngle = 0
|
||||
LeftHip.DesiredAngle = 0
|
||||
wait(0.5)
|
||||
RightShoulder.MaxVelocity = 0.1
|
||||
LeftShoulder.MaxVelocity = 0.1
|
||||
end
|
||||
|
||||
function moveSit()
|
||||
RightShoulder.MaxVelocity = 0.15
|
||||
LeftShoulder.MaxVelocity = 0.15
|
||||
RightShoulder.DesiredAngle = 3.14 /2
|
||||
LeftShoulder.DesiredAngle = -3.14 /2
|
||||
RightHip.DesiredAngle = 3.14 /2
|
||||
LeftHip.DesiredAngle = -3.14 /2
|
||||
end
|
||||
|
||||
function getTool()
|
||||
for _, kid in ipairs(Figure:GetChildren()) do
|
||||
if kid.className == "Tool" then return kid end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function getToolAnim(tool)
|
||||
for _, c in ipairs(tool:GetChildren()) do
|
||||
if c.Name == "toolanim" and c.className == "StringValue" then
|
||||
return c
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function animateTool()
|
||||
|
||||
if (toolAnim == "None") then
|
||||
RightShoulder.DesiredAngle = 1.57
|
||||
return
|
||||
end
|
||||
if (toolAnim == "Slash") then
|
||||
RightShoulder.MaxVelocity = 0.5
|
||||
RightShoulder.DesiredAngle = 0
|
||||
return
|
||||
end
|
||||
|
||||
if (toolAnim == "Lunge") then
|
||||
RightShoulder.MaxVelocity = 0.5
|
||||
LeftShoulder.MaxVelocity = 0.5
|
||||
RightHip.MaxVelocity = 0.5
|
||||
LeftHip.MaxVelocity = 0.5
|
||||
RightShoulder.DesiredAngle = 1.57
|
||||
LeftShoulder.DesiredAngle = 1.0
|
||||
RightHip.DesiredAngle = 1.57
|
||||
LeftHip.DesiredAngle = 1.0
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
function move(time)
|
||||
local amplitude
|
||||
local frequency
|
||||
|
||||
if (pose == "Jumping") then
|
||||
moveJump()
|
||||
return
|
||||
end
|
||||
|
||||
if (pose == "FreeFall") then
|
||||
moveFreeFall()
|
||||
return
|
||||
end
|
||||
|
||||
if (pose == "Seated") then
|
||||
moveSit()
|
||||
return
|
||||
end
|
||||
|
||||
local climbFudge = 0
|
||||
|
||||
if (pose == "Running") then
|
||||
RightShoulder.MaxVelocity = 0.15
|
||||
LeftShoulder.MaxVelocity = 0.15
|
||||
amplitude = 1
|
||||
frequency = 9
|
||||
elseif (pose == "Climbing") and (toolAnim == "None") then
|
||||
RightShoulder.MaxVelocity = 0.5
|
||||
LeftShoulder.MaxVelocity = 0.5
|
||||
RightShoulder.DesiredAngle = 0
|
||||
amplitude = 0
|
||||
frequency = 0
|
||||
climbFudge = -3.14
|
||||
RightShoulder.DesiredAngle = 0
|
||||
else
|
||||
amplitude = 0.1
|
||||
frequency = 1
|
||||
end
|
||||
|
||||
desiredAngle = amplitude * math.sin(time*frequency)
|
||||
|
||||
RightShoulder.DesiredAngle = desiredAngle + climbFudge
|
||||
LeftShoulder.DesiredAngle = desiredAngle - climbFudge
|
||||
RightHip.DesiredAngle = -desiredAngle
|
||||
LeftHip.DesiredAngle = -desiredAngle
|
||||
|
||||
|
||||
local tool = getTool()
|
||||
|
||||
if tool then
|
||||
|
||||
animStringValueObject = getToolAnim(tool)
|
||||
|
||||
if animStringValueObject then
|
||||
toolAnim = animStringValueObject.Value
|
||||
-- message recieved, delete StringValue
|
||||
animStringValueObject.Parent = nil
|
||||
toolAnimTime = time + .3
|
||||
end
|
||||
|
||||
if time > toolAnimTime then
|
||||
toolAnimTime = 0
|
||||
toolAnim = "None"
|
||||
end
|
||||
|
||||
animateTool()
|
||||
|
||||
|
||||
else
|
||||
toolAnim = "None"
|
||||
toolAnimTime = 0
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- connect events
|
||||
|
||||
Humanoid.Died:connect(onDied)
|
||||
Humanoid.Running:connect(onRunning)
|
||||
Humanoid.Jumping:connect(onJumping)
|
||||
Humanoid.Climbing:connect(onClimbing)
|
||||
Humanoid.GettingUp:connect(onGettingUp)
|
||||
Humanoid.FreeFalling:connect(onFreeFall)
|
||||
Humanoid.FallingDown:connect(onFallingDown)
|
||||
Humanoid.Seated:connect(onSeated)
|
||||
|
||||
-- main program
|
||||
|
||||
local runService = game:service("RunService");
|
||||
|
||||
while Figure.Parent~=nil do
|
||||
local _, time = wait(0.1)
|
||||
move(time)
|
||||
end
|
||||
</string>
|
||||
<bool name="archivable">true</bool>
|
||||
</Properties>
|
||||
</Item>
|
||||
</roblox>
|
||||
Loading…
Reference in New Issue