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