null
nil
-
true
true
0
-1.70000005
0
1
0
0
0
1
0
0
0
1
SpartanSword
http://www.roblox.com/asset/?id=96674782
-
false
-0.5
0.5
0
0
-0.5
0.5
4
0
194
-9.80000019
80.3000259
-45.8999977
0
0
-0.999999762
0
-0.999999762
0
-0.999999762
0
0
true
0.5
0.300000012
-0.5
0.5
0
0
-0.5
0.5
0
0
false
256
Handle
0
-0.5
0.5
0
0
0
0
0
-0.5
0.5
3
0
0
0
0
0
3
1
0.200000003
4.59999609
0.400000036
-
2
2
http://www.roblox.com/asset/?id=96669672
5
Mesh
0
-1.60000002
0
2
2
2
http://www.roblox.com/asset/?id=96670715
1
1
1
-
false
BashHit
1
false
http://www.roblox.com/Asset?ID=92597264
0.5
-
false
BashMiss
1
false
http://www.roblox.com/Asset?ID=92597296
0.300000012
-
false
PowerUp
1
false
http://www.roblox.com/Asset?ID=92597340
0.699999988
-
false
Slash
1
false
http://www.roblox.com/Asset?ID=96667910
0.5
-
false
Sprint
1
false
http://www.roblox.com/Asset?ID=92628581
1
-
false
SwordDraw
1
false
http://www.roblox.com/Asset?ID=96668951
0.300000012
-
false
SwordHit
1
false
http://www.roblox.com/Asset?ID=96667969
0.5
-
false
Kick
1
false
http://www.roblox.com/asset/?id=96626016
1
-
false
Yell
1
false
http://www.roblox.com/Asset?ID=96673085
1
-
false
-0.5
0.5
0
0
-0.5
0.5
4
0
194
-10.0804014
79.5143585
-46.2999992
0.866020083
0.50000912
0
-0.50000912
0.866020083
0
0
0
0.99999994
true
0.5
0.300000012
-0.5
0.5
0
0
-0.5
0.5
0
0
false
256
Shield
0
-0.5
0.5
0
0
0
0
0
-0.5
0.5
3
0
0
0
0
0
3
1
3.39999962
3.99999976
0.400000036
-
2
2
http://www.roblox.com/asset/?id=96670147
5
Mesh
0
0
0
3
3
3
http://www.roblox.com/asset/?id=96670755
1
1
1
-
0
0
0
0.866020083
-0.50000912
0
0.50000912
0.866020083
0
0
0
0.99999994
0.400001526
0.785667419
0.28040123
0
0
-0.999999881
0
-0.999999881
0
-0.999999881
0
0
ShieldWeld
[RBX12]
[RBX1]
-
false
SwordScript
-------------- Sword Script ----------------
-- Waits for the child of the specified parent
local function WaitForChild(parent, childName)
while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
return parent[childName]
end
local PlayersService = Game:GetService('Players')
local DebrisService = Game:GetService('Debris')
local Tool = script.Parent
local Handle = WaitForChild(Tool, 'Handle')
local Shield = WaitForChild(Tool, 'Shield')
local SWORD_DAMAGE = 25
local STUN_BONUS = 10
------- MESH IDs -----------
-- Preload these meshes
local BladeOnlyMesh = 'http://www.roblox.com/asset/?id=92541982'
local SwordOnlyMesh = 'http://www.roblox.com/asset/?id=96669672'
local CompleteMesh = 'http://www.roblox.com/asset/?id=92542016'
----------------------------
------- Animations ---------
local ShieldBashAnim = WaitForChild(Tool, "ShieldBash")
local EquipAnim = WaitForChild(Tool, "EquipAnim")
local SlashAnim = WaitForChild(Tool, "QuickSlash")
local ShieldWalkAnim = WaitForChild(Tool, "ShieldWalk")
local KickAnim = WaitForChild(Tool, "Kick")
----------------------------
------- Sounds -------------
local BashHit = WaitForChild(Handle, "BashHit")
local BashMiss = WaitForChild(Handle, "BashMiss")
local PowerUp = WaitForChild(Handle, "PowerUp")
local Slash = WaitForChild(Handle, "Slash")
local Sprint = WaitForChild(Handle, "Sprint")
local SwordDraw = WaitForChild(Handle, "SwordDraw")
local SwordHit = WaitForChild(Handle, "SwordHit")
local KickSound = WaitForChild(Handle, "Kick")
local YellSound = WaitForChild(Handle, "Yell")
----------------------------
------- My Character Variables -------
local MyCharacter
local MyHumanoid
local MyPlayer
local MyTorso
local MyMouse
---------------------------------------
local KickedScript = WaitForChild(script, "KickedScript")
local UnequippedWeld = WaitForChild(Shield, 'ShieldWeld')
local UnequippedWeldCopy = UnequippedWeld:Clone()
local ArmShieldWeld
local BackWeld = nil
local RightGrip = nil
------- Connections ---------
local RightMouseConnection
local ShieldBlowConnection
local SwordBlowConnection
local MouseRightDownConnection
-----------------------------
local PitPart=Instance.new('Part')
PitPart.Transparency=1
PitPart.Size=Vector3.new(14, 0.2, 15)
local PitDecal=Instance.new('Decal')
PitDecal.Texture='http://www.roblox.com/asset/?id=96622746'
PitDecal.Face='Top'
PitDecal.Parent=PitPart
local FallingSound = Instance.new('Sound')
FallingSound.Volume=1
FallingSound.SoundId='http://www.roblox.com/asset/?id=96636143'
FallingSound.Parent=PitPart
PitPart.CanCollide=false
PitPart.Anchored=true
local MouseRightDownTime = tick()
local Swinging = false
local Bashing = false
print("Finished Loading")
function AbleToAttack()
return MyCharacter and MyHumanoid and MyHumanoid.Health > 0
end
function TagHumanoid(humanoid, player)
-- Add more tags here to customize what tags are available.
while humanoid:FindFirstChild('creator') do
humanoid:FindFirstChild('creator'):Destroy()
end
local creatorTag = Instance.new("ObjectValue")
creatorTag.Value = player
creatorTag.Name = "creator"
creatorTag.Parent = humanoid
DebrisService:AddItem(creatorTag, 1.5)
end
function CloneWithoutChildren(objectToClone)
local result = objectToClone:Clone()
for k, v in pairs(result:GetChildren()) do
v:Destroy()
end
return result
end
local WeldedToArm
function CreateArmWeld()
if ArmShieldWeld then return end
if MyCharacter and MyCharacter:FindFirstChild('Left Arm') then
if not WeldedToArm then
WeldedToArm = MyCharacter:FindFirstChild('Left Arm').ChildRemoved:connect(function(child) if child.Name == 'ArmWeld' then CreateArmWeld() end end)
end
ArmShieldWeld = Instance.new('Weld')
ArmShieldWeld.Name = "ArmWeld"
ArmShieldWeld.Part0 = MyCharacter:FindFirstChild('Left Arm')
ArmShieldWeld.Part1 = Shield
ArmShieldWeld.C0 = CFrame.new() * CFrame.Angles(math.rad(-70), math.rad(70), 0)
ArmShieldWeld.C1 = CFrame.new() + Vector3.new(0, 0, .6)
ArmShieldWeld.Parent = MyCharacter:FindFirstChild('Left Arm')
else
print('CreateArmWeld: you have no character or no left arm.')
end
end
function DestroyArmWeld()
if ArmShieldWeld then
ArmShieldWeld:Destroy()
ArmShieldWeld = nil
end
if WeldedToArm then
WeldedToArm:disconnect()
WeldedToArm = nil
end
end
function CreateBackWeld()
if MyTorso and Shield then
print("Creating BackWeld")
BackWeld = nil
while MyTorso:FindFirstChild("BackWeld") do
MyTorso:FindFirstChild("BackWeld"):Destroy()
end
BackWeld = Instance.new('Weld')
BackWeld.Name = "BackWeld"
BackWeld.Part0 = MyTorso
BackWeld.Part1 = Shield
BackWeld.C0 = CFrame.new() * CFrame.Angles(0, math.rad(180), 0)
BackWeld.C1 = CFrame.new() + Vector3.new(0, 0, 1.2)
BackWeld.Parent = MyTorso
else
print("CreateBackWeld: Missing Torso or Shield.")
end
end
function DestroyBackWeld()
if BackWeld then
print("Destroying BackWeld")
BackWeld:Destroy()
BackWeld = nil
end
end
function DestroyRightGrip()
if MyCharacter then
local MyRightArm = MyCharacter:FindFirstChild('Right Arm')
if MyRightArm then
WaitForChild(MyRightArm, "RightGrip")
RightGrip = MyRightArm:FindFirstChild('RightGrip'):Clone()
MyRightArm:FindFirstChild('RightGrip'):Destroy()
end
end
end
function ResetRightGrip()
if RightGrip and MyCharacter then
local MyRightArm = MyCharacter:FindFirstChild('Right Arm')
if MyRightArm then
RightGrip.Parent = MyRightArm
end
end
end
local BashedPlayers = {}
function MakePit(torso)
local dirVector=Vector3.new(torso.CFrame.p.x-script.Parent.Parent.Torso.CFrame.p.x,0,torso.CFrame.p.z-script.Parent.Parent.Torso.CFrame.p.z).unit
PitPart.CFrame=CFrame.new(torso.CFrame.p+(dirVector*8)+Vector3.new(0,-3.3,0))
PitPart.Parent=script.Parent
end
function SetCamera(length,pdir,target)
local startTime=time()
local cam= game.Workspace.CurrentCamera
local normalDir=math.atan2(pdir.z,pdir.x)+math.pi/2
local position=((MyTorso.CFrame.p+target)/2)+Vector3.new(math.cos(normalDir)*10,5,math.sin(normalDir)*10)
while time()-startTime<length do
cam.CameraType='Scriptable'
cam.CoordinateFrame=CFrame.new(position,target)
wait()
end
cam.CameraType='Custom'
end
local InTheAwesome=false
function THISISROBLOX(hit)
if InTheAwesome then return end
InTheAwesome=true
if hit and hit.Parent and hit.Parent:FindFirstChild('Humanoid') and hit.Parent ~= MyCharacter then
TagHumanoid(hit.Parent.Humanoid, MyPlayer)
if not hit.Parent:FindFirstChild('KickedScript') then
local inKick=true
local LockedPos=CFrame.new(script.Parent.Parent.Torso.CFrame.p,hit.Parent.Torso.CFrame.p)
local EnemyLockedPos=CFrame.new(hit.Parent.Torso.CFrame.p,script.Parent.Parent.Torso.CFrame.p)
Spawn(function()
while inKick do
MyTorso.CFrame=LockedPos
hit.Parent.Torso.CFrame=EnemyLockedPos
wait()
end
end)
Spawn(function() SetCamera(5,hit.Parent.Torso.CFrame.p-MyTorso.CFrame.p,hit.Parent.Torso.CFrame.p)
end)
MakePit(hit.Parent.Torso)
print('Adding kicked script')
local kicked = KickedScript:Clone()
kicked.Parent = hit.Parent
kicked.Disabled = false
YellSound:Play()
wait(2.3)
local AnimTrack = MyHumanoid:LoadAnimation(KickAnim)
AnimTrack:Play(.1,1,4)
wait(1)
--ADDFORCE
local bashForce = Instance.new('BodyVelocity')
bashForce.maxForce = Vector3.new(1000000, 0, 1000000)
bashForce.velocity = (hit.Parent.Torso.CFrame.p - MyTorso.CFrame.p).unit * 40
bashForce.Parent = hit.Parent.Torso
--PLAY KICK SOUND
KickSound:Play()
Wait(.2)
FallingSound:Play()
inKick=false
delay(6,function() PitPart.Parent=nil end)
wait(2)
end
end
InTheAwesome=false
end
function PlayAnimation(Anim, speed)
if MyHumanoid and Anim then
print("Playing" , Anim.Name)
local AnimTrack = MyHumanoid:LoadAnimation(Anim)
if speed then
AnimTrack:AdjustSpeed(speed)
end
AnimTrack:Play()
return AnimTrack
end
return nil
end
function ShieldBash()
if tick() - MouseRightDownTime > 0.28 or InTheAwesome then return end
if Bashing or UnequippedWeld or not AbleToAttack() then return end
Bashing = true
BashedPlayers = {}
Sprint:Play()
if MyTorso then
local chargeForce = Instance.new('BodyVelocity')
chargeForce.Name = "ChargeVelocity"
chargeForce.maxForce = Vector3.new(1000000, 1000000, 1000000)
chargeForce.velocity = (MyMouse.Hit.p * Vector3.new(1, 0, 1) - MyTorso.CFrame.p * Vector3.new(1,0,1)).unit * 150
chargeForce.Parent = MyTorso
DebrisService:AddItem(chargeForce, 0.15)
MyTorso.CFrame = CFrame.new(MyTorso.CFrame.p, MyTorso.CFrame.p + chargeForce.velocity)
local gyro = Instance.new('BodyGyro')
gyro.Parent = MyTorso
DebrisService:AddItem(gyro, 0.3)
end
wait(0.1)
-- Do Animation
PlayAnimation(ShieldBashAnim, nil)
print("Bash!")
BashMiss:Play()
wait(1.2)
Bashing = false
end
local bladeHolder
function PhaseInBlade() end
function OnEquipped(mouse)
print('Equipped')
MyCharacter = Tool.Parent
MyPlayer = PlayersService.LocalPlayer
MyHumanoid = WaitForChild(MyCharacter, 'Humanoid')
MyTorso = WaitForChild(MyCharacter, 'Torso')
MyMouse = mouse
if MyMouse then
MouseRightDownConnection = MyMouse.Button2Down:connect(function() MouseRightDownTime = tick() end)
end
if MyMouse then
RightMouseConnection = MyMouse.Button2Up:connect(ShieldBash)
end
if Shield then
Shield.CanCollide = false
end
if Handle then
SwordBlowConnection = Handle.Touched:connect(SwordAttackBlow)
end
wait(0.1)
coroutine.resume(coroutine.create(DestroyRightGrip))
CreateBackWeld()
if UnequippedWeldCopy then
if UnequippedWeld then UnequippedWeld:Destroy() end
UnequippedWeld = UnequippedWeldCopy:Clone()
UnequippedWeld.Parent = Shield
end
end
local shieldWalk
function OnUnequipped()
DestroyBackWeld()
DestroyArmWeld()
if Shield then
if UnEquippedWeld then UnequippedWeld:Destroy() end
UnequippedWeld = nil
UnequippedWeld = UnequippedWeldCopy:Clone()
UnequippedWeld.Parent = Shield
else
print("Unable to recreate shield weld")
end
if bladeHolder then
bladeHolder:Destroy()
bladeHolder = nil
end
if Handle:FindFirstChild('Mesh') then
Handle.Mesh.MeshId = SwordOnlyMesh
end
if RightMouseConnection then
RightMouseConnection:disconnect()
RightMouseConnection = nil
end
if MouseRightDownConnection then
MouseRightDownConnection:disconnect()
MouseRightDownConnection = nil
end
if ShieldBlowConnection then
ShieldBlowConnection:disconnect()
ShieldBlowConnection = nil
end
if SwordBlowConnection then
SwordBlowConnection:disconnect()
SwordBlowConnection = nil
end
if Shield then
Shield.CanCollide = true
end
if RightGrip then
RightGrip:Destroy()
RightGrip = nil
end
if shieldWalk then
print("Stopping shield walk")
shieldWalk:Stop()
end
end
local SlashedPlayers = {}
local HitEnabled=true
function SwordAttackBlow(hit)
if Swinging and AbleToAttack() and HitEnabled then
HitEnabled=false
if hit and hit.Parent and hit.Parent:FindFirstChild('Humanoid') and hit.Parent ~= MyCharacter and not SlashedPlayers[hit.Parent] then
SlashedPlayers[hit.Parent] = true
TagHumanoid(hit.Parent.Humanoid, MyPlayer)
if hit.Parent.Humanoid.Health<25 then
THISISROBLOX(hit)
else
SwordHit:Play()
hit.Parent.Humanoid:TakeDamage(SWORD_DAMAGE)
end
end
HitEnabled=true
end
end
function OnActivate()
if not Tool.Enabled or InTheAwesome then return end
Tool.Enabled=false
print('In OnActivate')
if Swinging or not AbleToAttack() then return end
local dontWait = false
if UnequippedWeld then
dontWait = true
shieldWalk = PlayAnimation(ShieldWalkAnim, nil)
--wait(0.4)
if UnequippedWeld then UnequippedWeld:Destroy() end
UnequippedWeld = nil
while Shield:FindFirstChild('ShieldWeld') do
Shield:FindFirstChild('ShieldWeld'):Destroy()
end
SwordDraw:Play()
if Handle:FindFirstChild('Mesh') then
--Handle.Mesh.MeshId = CompleteMesh
end
DestroyBackWeld()
else
local AnimTrack = MyHumanoid:LoadAnimation(SlashAnim)
AnimTrack:Play(.1,1,4)
end
CreateArmWeld()
ResetRightGrip()
SlashedPlayers = {}
Swinging = true
--Slash:Play()
--PlayAnimation(SlashAnim, nil)
if not dontWait then wait(0.8) end
Swinging = false
Tool.Enabled=true
end
Tool.Equipped:connect(OnEquipped)
Tool.Unequipped:connect(OnUnequipped)
Tool.Activated:connect(OnActivate)
-
true
KickedScript
local MyCharacter = script.Parent
if MyCharacter and MyCharacter:FindFirstChild('Humanoid') and MyCharacter:FindFirstChild('Torso') then
local humanoid = MyCharacter.Humanoid
MyCharacter.Torso.Anchored=true
humanoid.Parent=nil
for _,i in pairs(game.Players.LocalPlayer.Backpack:GetChildren()) do
i.Parent=nil
end
for _,i in pairs(MyCharacter:GetChildren()) do
if i:IsA('Part') then
i.CanCollide=false
print('setting can collide false: ' .. i.Name)
end
if i:IsA('Tool') then
i.Parent=nil
end
end
wait(3.3)
MyCharacter.Torso.Anchored=false
--humanoid.Parent=MyCharacter
while not script:FindFirstChild('RespawnScript') do print('WAIIIITING') wait() end
local resScript=script:FindFirstChild('RespawnScript')
resScript.Parent=game.Players.LocalPlayer.Backpack
resScript.Disabled=false
end
--script:Destroy()
-
true
RespawnScript
print('Reloading character')
wait(5)
script.Parent.Parent:LoadCharacter()
-
http://www.roblox.com/Asset?ID=92623582
ShieldBashAnim
-
http://www.roblox.com/Asset?ID=92625513
EquipAnim
-
http://www.roblox.com/Asset?ID=96677230
QuickSlash
-
http://www.roblox.com/Asset?ID=49907410
ShieldBash
-
http://www.roblox.com/Asset?ID=96675769
ShieldWalk
-
http://www.roblox.com/Asset?ID=96621537
Kick
-
[null]
0
-10.0124435
80.8935776
-49.7428169
-0.998475432
0.00841341447
-0.0545539632
9.31322575e-010
0.98831588
0.152419895
0.055198919
0.152187526
-0.986809015
70
-9.80000019
80.3000259
-45.8999977
1
0
0
0
1
0
0
0
1
ThumbnailCamera