Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --https://github.com/Mokiros/roblox-FE-compatibility
- if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
- local Player,game,owner = owner,game
- local RealPlayer = Player
- do print("FE Compatibility code V2 by Mokiros")local RealPlayer=RealPlayer;script.Parent=RealPlayer.Character;local a=function(b)b[1].f[b[2]]=nil end;local c={__index={disconnect=a,Disconnect=a}}local d={__index={Connect=function(b,e)local f=tostring(math.random(0,10000))while b.f[f]do f=tostring(math.random(0,10000))end;b.f[f]=e;return setmetatable({b,f},c)end}}d.__index.connect=d.__index.Connect;local function g()return setmetatable({f={}},d)end;local h={Hit=CFrame.new(),KeyUp=g(),KeyDown=g(),Button1Up=g(),Button1Down=g(),Button2Up=g(),Button2Down=g()}h.keyUp=h.KeyUp;h.keyDown=h.KeyDown;local i={InputBegan=g(),InputEnded=g()}local CAS={Actions={},BindAction=function(self,j,k,l,...)CAS.Actions[j]=k and{Name=j,Function=k,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function m(self,n,...)for o,e in pairs(self[n].f)do e(...)end end;h.T=m;i.T=m;local p=Instance.new("RemoteEvent")p.Name="UserInput_Event"p.OnServerEvent:Connect(function(q,r)if q~=RealPlayer then return end;h.Target=r.e;h.Hit=r.d;if not r.f then local s=r.c==Enum.UserInputState.Begin;if r.b==Enum.UserInputType.MouseButton1 then return h:T(s and"Button1Down"or"Button1Up")end;if r.b==Enum.UserInputType.MouseButton2 then return h:T(s and"Button2Down"or"Button2Up")end;for o,t in pairs(CAS.Actions)do for o,u in pairs(t.Keys)do if u==r.a then t.Function(t.Name,r.c,r)end end end;h:T(s and"KeyDown"or"KeyUp",r.a.Name:lower())i:T(s and"InputBegan"or"InputEnded",r,false)end end)p.Parent=NLS([==[local a=script:WaitForChild("UserInput_Event")local b=owner:GetMouse()local c=game:GetService("UserInputService")local d=function(e,f)if f then return end;a:FireServer({a=e.KeyCode,b=e.UserInputType,c=e.UserInputState,d=b.Hit,e=b.Target})end;c.InputBegan:Connect(d)c.InputEnded:Connect(d)local g,h;local i=game:GetService("RunService").Heartbeat;while true do if g~=b.Hit or h~=b.Target then g,h=b.Hit,b.Target;a:FireServer({f=1,Target=h,d=g})end;for j=1,2 do i:Wait()end end]==],script)local v=game;local w={__index=function(self,u)local x=rawget(self,"_RealService")if x then return typeof(x[u])=="function"and function(o,...)return x[u](x,...)end or x[u]end end,__newindex=function(self,u,y)local x=rawget(self,"_RealService")if x then x[u]=y end end}local function z(t,A)t._RealService=typeof(A)=="string"and v:GetService(A)or A;return setmetatable(t,w)end;local B={GetService=function(self,x)return rawget(self,x)or v:GetService(x)end,Players=z({LocalPlayer=z({GetMouse=function(self)return h end},Player)},"Players"),UserInputService=z(i,"UserInputService"),ContextActionService=z(CAS,"ContextActionService"),RunService=z({_btrs={},RenderStepped=v:GetService("RunService").Heartbeat,BindToRenderStep=function(self,j,o,k)self._btrs[j]=self.Heartbeat:Connect(k)end,UnbindFromRenderStep=function(self,j)self._btrs[j]:Disconnect()end},"RunService")}rawset(B.Players,"localPlayer",B.Players.LocalPlayer)B.service=B.GetService;z(B,game)game,owner=B,B.Players.LocalPlayer end --Converted with ttyyuu12345's model to script plugin v4
- function sandbox(var,func)
- local env = getfenv(func)
- local newenv = setmetatable({},{
- __index = function(self,k)
- if k=="script" then
- return var
- else
- return env[k]
- end
- end,
- })
- setfenv(func,newenv)
- return func
- end
- cors = {}
- mas = Instance.new("Model",game:GetService("Lighting"))
- Tool0 = Instance.new("Tool")
- Part1 = Instance.new("Part")
- SpecialMesh2 = Instance.new("SpecialMesh")
- Sound3 = Instance.new("Sound")
- Sound4 = Instance.new("Sound")
- Sound5 = Instance.new("Sound")
- Sound6 = Instance.new("Sound")
- Sound7 = Instance.new("Sound")
- Sound8 = Instance.new("Sound")
- Script9 = Instance.new("Script")
- Script10 = Instance.new("Script")
- Script11 = Instance.new("Script")
- Sound12 = Instance.new("Sound")
- Decal13 = Instance.new("Decal")
- Sound14 = Instance.new("Sound")
- Sound15 = Instance.new("Sound")
- Sound16 = Instance.new("Sound")
- Sound17 = Instance.new("Sound")
- Attachment18 = Instance.new("Attachment")
- Attachment19 = Instance.new("Attachment")
- LocalScript20 = Instance.new("LocalScript")
- Sound21 = Instance.new("Sound")
- Animation22 = Instance.new("Animation")
- Animation23 = Instance.new("Animation")
- Animation24 = Instance.new("Animation")
- Script25 = Instance.new("Script")
- Animation26 = Instance.new("Animation")
- Script27 = Instance.new("Script")
- Script28 = Instance.new("Script")
- LocalScript29 = Instance.new("LocalScript")
- LocalScript30 = Instance.new("LocalScript")
- Folder31 = Instance.new("Folder")
- NumberValue32 = Instance.new("NumberValue")
- Script33 = Instance.new("Script")
- BindableEvent34 = Instance.new("BindableEvent")
- LocalScript35 = Instance.new("LocalScript")
- RemoteFunction36 = Instance.new("RemoteFunction")
- Animation37 = Instance.new("Animation")
- Animation38 = Instance.new("Animation")
- Animation39 = Instance.new("Animation")
- LocalScript40 = Instance.new("LocalScript")
- Script41 = Instance.new("Script")
- Sound42 = Instance.new("Sound")
- LocalScript43 = Instance.new("LocalScript")
- Tool0.Name = "Scythe Of Infinte Singularity"
- Tool0.Parent = mas
- Tool0.GripForward = Vector3.new(-1, -0, -0)
- Tool0.GripPos = Vector3.new(0.600000024, 0, -2)
- Tool0.GripRight = Vector3.new(0, 1, 0)
- Tool0.GripUp = Vector3.new(0, 0, 1)
- Tool0.ToolTip = "RAINBOW"
- Part1.Name = "Handle"
- Part1.Parent = Tool0
- Part1.BrickColor = BrickColor.new("Bright bluish green")
- Part1.Rotation = Vector3.new(-90, 0, 0)
- Part1.FormFactor = Enum.FormFactor.Custom
- Part1.Size = Vector3.new(2.51999784, 0.200000003, 6.0600009)
- Part1.CFrame = CFrame.new(4.00994921, 3.03003311, -18.1099739, 1, -2.86932411e-18, -1.03679744e-17, 1.03679761e-17, 5.36441803e-07, 0.999999881, -2.86931956e-18, -0.999999881, 5.36441803e-07)
- Part1.Color = Color3.new(0, 0.560784, 0.611765)
- Part1.Position = Vector3.new(4.00994921, 3.03003311, -18.1099739)
- Part1.Orientation = Vector3.new(-89.9700012, 0, 0)
- Part1.Color = Color3.new(0, 0.560784, 0.611765)
- SpecialMesh2.Parent = Part1
- SpecialMesh2.MeshId = "http://www.roblox.com/asset/?id=50880202 "
- SpecialMesh2.Scale = Vector3.new(2.5, 2.5, 2.5)
- SpecialMesh2.MeshType = Enum.MeshType.FileMesh
- SpecialMesh2.Scale = Vector3.new(2.5, 2.5, 2.5)
- Sound3.Name = "BigSlash"
- Sound3.Parent = Part1
- Sound3.Pitch = 0.69999998807907
- Sound3.SoundId = "rbxassetid://186936370"
- Sound3.Volume = 1
- Sound4.Name = "Blood"
- Sound4.Parent = Part1
- Sound4.Pitch = 0.5
- Sound4.SoundId = "rbxassetid://96667969"
- Sound4.TimePosition = 0.05
- Sound4.Volume = 1
- Sound5.Name = "Hit"
- Sound5.Parent = Part1
- Sound5.Pitch = 0.5
- Sound5.SoundId = "rbxassetid://96667969"
- Sound5.TimePosition = 0.05
- Sound5.Volume = 2
- Sound6.Parent = Part1
- Sound6.SoundId = "rbxasset://sounds/SwordSlash.wav"
- Sound6.Volume = 1
- Sound7.Name = "Swing"
- Sound7.Parent = Part1
- Sound7.SoundId = "rbxassetid://169310429"
- Sound7.Volume = 1
- Sound8.Name = "SwingSpecial"
- Sound8.Parent = Part1
- Sound8.Pitch = 1.0759999752045
- Sound8.SoundId = "rbxassetid://821439273"
- Sound8.Volume = 3
- Script9.Name = "SpecialDamage"
- Script9.Parent = Part1
- Script9.Disabled = true
- table.insert(cors,sandbox(Script9,function()
- function onTouched(part)
- local h = part.Parent:findFirstChild("Humanoid")
- if h~=nil then
- h.Health = h.Health -30 -- plus 10 damage
- script.Disabled = true
- script.Parent.Hit:Play()
- -- script.Parent.Fire.Enabled = false
- if h.Health == 0 then
- print("Killed Player")
- end
- local m = math.random(1,11)
- if m == 1 then -- bleeding effect
- script.Parent.Blood:Play()
- print("Blood")
- h.Health = h.Health -5
- wait(1)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- end
- if m == 2 then
- print("*Critical Hit*")
- h.Health = h.Health -40 -- Gives a damage boost
- script.Parent.BigSlash:Play()
- end
- if m == 3 then
- print("Clean Cut")
- h.Health = h.Health -20
- h.PlatformStand = true
- h.WalkSpeed = 12
- h.JumpPower = 0
- wait(0.5)
- h.PlatformStand = false
- wait(9.5)
- h.JumpPower = 50
- h.WalkSpeed = 16
- end
- if m == 4 then
- print("Broken Armor")
- h.MaxHealth = 50
- wait()
- h.Health = h.Health -20
- wait(10)
- h.MaxHealth = 100
- end
- if m == 5 then
- print("Hit")
- h.Health = h.Health -15
- end
- if m == 6 then
- h.Health = h.Health -10
- print("Hit")
- end
- if m == 7 then
- print("Hit")
- h.Health = h.Health -25
- end
- if m == 8 then
- print("Hit")
- h.Health = h.Health -20
- end
- if m == 9 then
- print("Broken Armor")
- h.MaxHealth = 50
- wait()
- h.Health = h.Health -20
- wait(10)
- h.MaxHealth = 100
- end
- if m == 10 then
- script.Parent.Blood:Play()
- print("Blood")
- h.Health = h.Health -5
- wait(1)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- end
- if m == 11 then
- print("Hit")
- h.Health = h.Health -15
- end
- end
- end
- script.Parent.Touched:connect(onTouched)
- end))
- Script10.Name = "SwordEffect"
- Script10.Parent = Part1
- table.insert(cors,sandbox(Script10,function()
- function onTouched(part)
- local h = part.Parent:findFirstChild("Humanoid")
- if h~=nil then
- h.Health = h.Health -20 -- plus 10 damage
- script.Disabled = true
- script.Parent.Hit:Play()
- -- script.Parent.Fire.Enabled = false
- if h.Health == 0 then
- print("Killed Player")
- end
- local m = math.random(1,11)
- if m == 1 then -- bleeding effect
- script.Parent.Blood:Play()
- print("Blood")
- h.Health = h.Health -5123
- wait(1)
- print("-3 health")
- h.Health = h.Health -3132
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3123
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3324
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3768
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3345
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -38980
- end
- if m == 2 then
- print("*Critical Hit*")
- h.Health = h.Health -402343 -- Gives a damage boost
- script.Parent.BigSlash:Play()
- end
- if m == 3 then
- print("Clean Cut")
- h.Health = h.Health -34
- h.PlatformStand = true
- h.WalkSpeed = 0
- h.JumpPower = 0
- wait(0.5)
- h.PlatformStand = false
- wait(9.5)
- h.JumpPower = 30
- h.WalkSpeed = 12
- end
- if m == 4 then
- print("Broken Armor")
- h.MaxHealth = 21
- wait()
- h.Health = h.Health -20
- wait(10)
- h.MaxHealth = 34
- end
- if m == 5 then
- print("Hit")
- h.Health = h.Health -15
- end
- if m == 6 then
- h.Health = h.Health -10
- print("Hit")
- end
- if m == 7 then
- print("Hit")
- h.Health = h.Health -25
- end
- if m == 8 then
- print("Hit")
- h.Health = h.Health -20
- end
- if m == 9 then
- print("Broken Armor")
- h.MaxHealth = 50
- wait()
- h.Health = h.Health -20
- wait(10)
- h.MaxHealth = 100
- end
- if m == 10 then
- script.Parent.Blood:Play()
- print("Blood")
- h.Health = h.Health -5
- wait(1)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- wait(0.5)
- print("-3 health")
- h.Health = h.Health -3
- end
- if m == 11 then
- print("Hit")
- h.Health = h.Health -15
- end
- end
- end
- script.Parent.Touched:connect(onTouched)
- end))
- Script11.Parent = Part1
- table.insert(cors,sandbox(Script11,function()
- while true do
- script.Parent.Color = Color3.new(math.random(), math.random(), math.random())
- wait(0.4)
- end
- end))
- Sound12.Name = "BOOM"
- Sound12.Parent = Part1
- Sound12.SoundId = "rbxassetid://156677028"
- Sound12.Volume = 0.69999998807907
- Sound12.Looped = true
- Decal13.Parent = Part1
- Decal13.Transparency = 0.64999997615814
- Decal13.Texture = "http://www.roblox.com/asset/?id=381637861"
- Decal13.Face = Enum.NormalId.Bottom
- Sound14.Name = "dash"
- Sound14.Parent = Part1
- Sound14.SoundId = "rbxassetid://25256253"
- Sound15.Name = "lunge"
- Sound15.Parent = Part1
- Sound15.SoundId = "rbxassetid://220833976"
- Sound15.Volume = 1
- Sound16.Name = "overhead"
- Sound16.Parent = Part1
- Sound16.SoundId = "rbxassetid://220834000"
- Sound16.Volume = 1
- Sound17.Name = "slash"
- Sound17.Parent = Part1
- Sound17.SoundId = "rbxassetid://220833967"
- Sound17.Volume = 1
- Attachment18.Parent = Part1
- Attachment18.Rotation = Vector3.new(0, 0, 90)
- Attachment18.CFrame = CFrame.new(0.199999988, 0.100000001, 2.12999988, 0, -1, 0, 1, 0, -0, 0, 0, 1)
- Attachment18.Position = Vector3.new(0.199999988, 0.100000001, 2.12999988)
- Attachment18.Axis = Vector3.new(0, 1, 0)
- Attachment18.Orientation = Vector3.new(0, 0, 90)
- Attachment19.Parent = Part1
- Attachment19.Rotation = Vector3.new(0, 0, 90)
- Attachment19.CFrame = CFrame.new(0.579999983, 0.100000001, 0.0599999987, 0, -1, 0, 1, 0, -0, 0, 0, 1)
- Attachment19.Position = Vector3.new(0.579999983, 0.100000001, 0.0599999987)
- Attachment19.Axis = Vector3.new(0, 1, 0)
- Attachment19.Orientation = Vector3.new(0, 0, 90)
- LocalScript20.Name = "Local Gui"
- LocalScript20.Parent = Tool0
- table.insert(cors,sandbox(LocalScript20,function()
- Tool = script.Parent
- local stillEquipped = false
- function onEquippedLocal(mouse)
- stillEquipped = true
- if mouse == nil then
- print("Mouse not found")
- return
- end
- while stillEquipped do
- print("Setting Mouse to go")
- mouse.Icon = "rbxasset://textures\\GunCursor.png"
- while Tool.Enabled and stillEquipped do
- wait(0.01)
- end
- print("Setting Mouse to wait")
- mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
- while not Tool.Enabled and stillEquipped do
- wait(0.01)
- end
- end
- end
- function onUnequippedLocal()
- stillEquipped = false
- end
- Tool.Equipped:connect(onEquippedLocal)
- Tool.Unequipped:connect(onUnequippedLocal)
- end))
- Sound21.Name = "EvilLaugh"
- Sound21.Parent = Tool0
- Sound21.Pitch = 1.1000000238419
- Sound21.SoundId = "rbxassetid://177528044"
- Sound21.Volume = 1
- Animation22.Name = "SlashAnim"
- Animation22.Parent = Tool0
- Animation22.AnimationId = "http://www.roblox.com/Asset?ID=27763344"
- Animation23.Name = "TwoHandAnim"
- Animation23.Parent = Tool0
- Animation23.AnimationId = "http://www.roblox.com/Asset?ID=27758613"
- Animation24.Name = "Slash"
- Animation24.Parent = Tool0
- Animation24.AnimationId = "rbxassetid://74897796"
- Script25.Name = "All animations"
- Script25.Parent = Animation24
- table.insert(cors,sandbox(Script25,function()
- while true do
- script.Parent.AnimationId="http://www.roblox.com/Asset?ID=74894663"
- wait(0.001)--Default swing1
- script.Parent.AnimationId="http://www.roblox.com/Asset?ID=74813494"
- wait(0.001)--Default swing2
- end
- end))
- Animation26.Name = "SwingAnim2"
- Animation26.Parent = Tool0
- Animation26.AnimationId = "rbxassetid://74897796"
- Script27.Name = "All animations"
- Script27.Parent = Animation26
- table.insert(cors,sandbox(Script27,function()
- while true do
- script.Parent.AnimationId="http://www.roblox.com/Asset?ID=86313418"
- wait(0.001)--Default swing1
- script.Parent.AnimationId="http://www.roblox.com/Asset?ID=86313260"
- wait(0.001)--Default swing2
- end
- end))
- Script28.Parent = Tool0
- table.insert(cors,sandbox(Script28,function()
- local Tool = script.Parent
- local Sword = Tool.Handle
- local SlashV = script.Parent.Handle.Sound
- local myCharacter
- local myPlayer
- local myHumanoid
- local myTorso
- local myRightArm
- local myRightGrip
- local debris = game:GetService("Debris")
- local runServ = game:GetService("RunService")
- --local SlashSound = Instance.new("Sound")
- --.SoundId = "rbxasset://sounds\\SwordSlash.wav"
- --SlashSound.EmitterSize = 10
- --SlashSound.MaxDistance = 10000
- --SlashSound.Parent = Tool
- --SlashSound.Volume = 1
- --SlashSound.Pitch = 1
- local Whoosh1Sound
- local Whoosh2Sound
- local SlashAnim
- local SpecialAnim
- local lastAttackTime = 0
- local thisAttackTime
- local TOUCH_DAMAGE = 0
- local SLASH_DAMAGE = 0
- --local SPECIAL_DAMAGE = 10
- local damage = TOUCH_DAMAGE
- local damageCo --Coroutine to ensure that slash damage actually gets applied sometimes.
- Tool.Enabled = true
- function tagHumanoid(humanoid, player)
- if humanoid ~= nil then
- creator = Instance.new("ObjectValue")
- creator.Name = "creator"
- creator.Value = player
- creator.Parent = humanoid
- debris:addItem(creator, 1)
- end
- end
- function untagHumanoid(humanoid)
- if humanoid ~= nil then
- local creatorTag = humanoid:FindFirstChild("creator")
- if creatorTag then creatorTag:Remove() end
- end
- end
- function blow(hit)
- if hit.Parent then
- local hitHumanoid = hit.Parent:FindFirstChild("Zombie")
- myCharacter = Tool.Parent
- myHumanoid = myCharacter:FindFirstChild("Zombie")
- myPlayer = game.Players:GetPlayerFromCharacter(myCharacter)
- if hitHumanoid ~= nil and myHumanoid ~= nil and myHumanoid ~= hitHumanoid then
- myRightArm = myCharacter:FindFirstChild("Right Arm")
- if myRightArm then
- myRightGrip = myRightArm:FindFirstChild("RightGrip")
- if myRightGrip and (myRightGrip.Part0 == Sword or myRightGrip.Part1 == Sword) then
- tagHumanoid(hitHumanoid, myPlayer)
- hitHumanoid:TakeDamage(damage)
- wait(1)
- untagHumanoid(hitHumanoid)
- end
- end
- end
- end
- end
- function damageChanger()
- damage = SLASH_DAMAGE
- script.Parent.Handle.Sounds.Disabled = false
- wait(1)
- damage = TOUCH_DAMAGE
- script.Parent.Handle.Sounds.Disabled = true
- end
- function slash()
- -- We actually want to recreate the coroutine every time, since otherwise we'd have multiple functions
- -- trying to switch back and forth between the different damages constantly if we slashed multiple
- -- times.
- damageCo = coroutine.create(damageChanger)
- coroutine.resume(damageCo)
- --if Whoosh1Sound then Whoosh1Sound:Stop() end
- --if Whoosh2Sound then Whoosh2Sound:Stop() end
- --if SpecialAnim then SpecialAnim:Stop() end
- if SlashV then SlashV:Play() end
- if SlashAnim then SlashAnim:Play() end
- -- script.Parent.Handle.Fire.Enabled = true
- --Tool.GripUp = Vector3.new(0.707, 0, 0.707)
- script.Parent.Handle.SwordEffect.Disabled = false
- script.Parent.Handle.Swing:Play()
- wait(0.6)
- --script.Parent.Handle.Fire.Enabled = false
- Tool.GripUp = Vector3.new(0, 0, 1)
- script.Parent.Handle.SwordEffect.Disabled = true
- wait(0.5)
- end
- --function special()
- --damageCo = nil
- --damage = SPECIAL_DAMAGE
- --if SlashSound then SlashSound:Stop() end
- --if SlashAnim then SlashAnim:Stop() end
- --if SpecialAnim then SpecialAnim:Play() end
- --wait(0.00001)
- --if Whoosh1Sound then Whoosh1Sound:Play() end
- --wait(.2)
- --if Whoosh2Sound then Whoosh2Sound:Play() end
- --wait(2)
- --damage = TOUCH_DAMAGE
- --end
- function onActivated()
- -- Checking for double clicks is based on the sword standard.
- -- Check that tool is enabled,
- if not Tool.Enabled then return end
- Tool.Enabled = false
- -- And that character has use of his right arm.
- myCharacter = Tool.Parent
- if not myCharacter then return end
- myHumanoid = myCharacter:FindFirstChild("Humanoid")
- if not myHumanoid then return end
- RightArm = myCharacter:FindFirstChild("Right Arm")
- if not RightArm then return end
- -- Get the time, to determine whether it was a double click or not.
- thisAttackTime = runServ.Stepped:wait()
- if (thisAttackTime - lastAttackTime < 0) then -- It was a double click.
- --SpecialAnim = myHumanoid:LoadAnimation(Tool.SlashNStabAttempt2)
- --Whoosh1Sound = Tool:FindFirstChild("Whoosh1")
- --Whoosh2Sound = Tool:FindFirstChild("Whoosh2")
- --special()
- else -- It was a single click.
- SlashAnim = myHumanoid:LoadAnimation(Tool.Slash)
- slash()
- end
- lastAttackTime = thisAttackTime
- Tool.Enabled = true
- end
- function onUnequipped()
- if SlashV then SlashV:Stop() end
- if SlashAnim then SlashAnim:Stop() end
- --if Whoosh1Sound then Whoosh1Sound:Stop() end
- --if Whoosh2Sound then Whoosh2Sound:Stop() end
- --if SpecialAnim then SpecialAnim:Stop() end
- end
- Tool.Activated:connect(onActivated)
- Tool.Unequipped:connect(onUnequipped)
- Sword.Touched:connect(blow)
- local down = Tool:WaitForChild("MouseDown")
- down.Event:connect(onActivated)
- end))
- LocalScript29.Name = "Local Gui"
- LocalScript29.Parent = Tool0
- table.insert(cors,sandbox(LocalScript29,function()
- Tool = script.Parent
- local stillEquipped = false
- function onEquippedLocal(mouse)
- stillEquipped = true
- if mouse == nil then
- print("Mouse not found")
- return
- end
- while stillEquipped do
- print("Setting Mouse to go")
- mouse.Icon = "rbxasset://textures\\GunCursor.png"
- while Tool.Enabled and stillEquipped do
- wait(0.01)
- end
- print("Setting Mouse to wait")
- mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
- while not Tool.Enabled and stillEquipped do
- wait(0.01)
- end
- end
- end
- function onUnequippedLocal()
- stillEquipped = false
- end
- Tool.Equipped:connect(onEquippedLocal)
- Tool.Unequipped:connect(onUnequippedLocal)
- end))
- LocalScript30.Name = "Special"
- LocalScript30.Parent = Tool0
- LocalScript30.Disabled = true
- table.insert(cors,sandbox(LocalScript30,function()
- local Tool = script.Parent
- local Staff = Tool.Handle
- local vCharacter
- local myHumanoid
- local animate
- local slamAnim
- local swingAnim2
- function onEquipped(mouse)
- vCharacter = Tool.Parent
- myHumanoid = vCharacter:FindFirstChild("Humanoid")
- if mouse then
- mouse.KeyDown:connect(function(key)
- if key:lower() == "q" and myHumanoid then
- animate = Tool:FindFirstChild("Animate")
- swingAnim2 = myHumanoid:LoadAnimation(Tool.SwingAnim2)
- if swingAnim2 then swingAnim2:Play() end
- Staff.SwingSpecial:Play()
- script.Settings.CoolDown.Value = script.Settings.CoolDown.Value -1
- script.Timer.Disabled = false
- script.Disabled = true
- script.Parent.Handle.SpecialDamage.Disabled = false
- lol = script.Parent.Parent.Torso
- lol.Velocity = script.Parent.Parent.Head.CFrame.lookVector * 200 -- Foward Dash
- wait(0.1)
- lol.Velocity = script.Parent.Parent.Head.CFrame.lookVector * 250 -- Foward Dash
- wait(0.1)
- lol.Velocity = script.Parent.Parent.Head.CFrame.lookVector * 130 -- Foward Dash
- wait(0.1)
- lol.Velocity = script.Parent.Parent.Head.CFrame.lookVector * 320 -- Foward Dash
- wait(0.1)
- lol.Velocity = script.Parent.Parent.Head.CFrame.lookVector * 123 -- Foward Dash
- wait(0.1)
- lol.Velocity = script.Parent.Parent.Head.CFrame.lookVector * 200 -- Foward Dash
- wait(0.1)
- script.Parent.Handle.SpecialDamage.Disabled = true
- end
- end)
- end
- end
- function onUnequipped()
- if slamAnim then slamAnim:Stop() end
- if swingAnim2 then swingAnim2:Stop() end
- end
- Tool.Equipped:connect(onEquipped)
- Tool.Unequipped:connect(onUnequipped)
- animate = Tool:FindFirstChild("Animate")
- while animate == nil do
- animate = Tool:FindFirstChild("Animate")
- wait()
- end
- animate.Changed:connect(function()
- animate = Tool:FindFirstChild("Animate")
- if animate and animate.Value == 1 and myHumanoid then
- slamAnim = myHumanoid:LoadAnimation(Tool.SlamAnim)
- if slamAnim then slamAnim:Play() end
- myHumanoid.Jump = true
- wait(2.2)
- animate.Value = 0
- end
- end)
- --Tool.GripUp = Vector3.new(0, 0.2, -0.8)
- --wait(0.0001)
- --Tool.GripUp = Vector3.new(0, 0.4, -0.6)
- --wait(0.0001)
- --Tool.GripUp = Vector3.new(0, 0.6, -0.4)
- --wait(0.0001)
- --Tool.GripUp = Vector3.new(0, 0.8, -0.2)
- --wait(0.0001)
- --Tool.GripUp = Vector3.new(0, 1, -0.0)
- --wait(0.0001)
- --Tool.GripUp = Vector3.new(0, 0.8, 0.2)
- --wait(0.0001)
- --Tool.GripUp = Vector3.new(0, 0.6, 0.4)
- --wait(0.0001)
- --Tool.GripUp = Vector3.new(0, 0.4, 0.6)
- -- wait(0.0001)
- -- Tool.GripUp = Vector3.new(0, 0.2, 0.8)
- -- wait(0.0001)
- -- Tool.GripUp = Vector3.new(0, 0.0, 1)
- -- wait(0.0001)
- -- Tool.GripUp = Vector3.new(0.0, -0.2, 0.8)
- -- wait(0.0001)
- -- Tool.GripUp = Vector3.new(0, -0.4, 0.6)
- -- wait(0.0001)
- -- Tool.GripUp = Vector3.new(0.0, -0.6, 0.4)
- -- wait(0.0001)
- -- Tool.GripUp = Vector3.new(0, -0.8, 0.2)
- -- wait(0.0001)
- -- Tool.GripUp = Vector3.new(0.0, -1, 0.0)
- -- wait(0.0001)
- -- Tool.GripUp = Vector3.new(0, -0.8, -0.2)
- -- wait(0.0001)
- -- Tool.GripUp = Vector3.new(0, -0.6, -0.4)
- -- wait(0.0001)
- -- Tool.GripUp = Vector3.new(0, -0.4, -0.6)
- -- wait(0.0001)
- -- Tool.GripUp = Vector3.new(0, -0.2, -0.8)
- -- wait(0.0001)
- -- Tool.GripUp = Vector3.new(0, 0, -1)
- -- wait(0.0001)
- --Full loop around
- end))
- Folder31.Name = "Settings"
- Folder31.Parent = LocalScript30
- NumberValue32.Name = "CoolDown"
- NumberValue32.Parent = Folder31
- Script33.Name = "Timer"
- Script33.Parent = LocalScript30
- table.insert(cors,sandbox(Script33,function()
- while true do
- wait(1)
- script.Parent.Parent.Special.Disabled = false
- script.Parent.Settings.CoolDown.Value = script.Parent.Settings.CoolDown.Value +1
- wait(6)
- end
- end))
- BindableEvent34.Name = "MouseDown"
- BindableEvent34.Parent = Tool0
- LocalScript35.Name = "DestinyScript"
- LocalScript35.Parent = Tool0
- table.insert(cors,sandbox(LocalScript35,function()
- -- Judgement --
- -- Grim Repear FTW --
- local Tool = script.Parent
- local Scythe = Tool.Handle
- r = game:GetService("RunService")
- Tool.Enabled = true
- local vCharacter
- local damage = 546
- local scytheAOE = Vector3.new(22.5, 22.5, 22.5)
- local chars = {}
- local foundChar
- local slashAnim
- local lastKeyDown = 0
- local dashTime = 0
- local lastSlash = 0
- local keyConnection = nil
- local laughSound
- local torsoFrame = {}
- local co = nil
- math.randomseed(1234)
- local SlashSound = Instance.new("Sound")
- SlashSound.SoundId = "rbxasset://sounds\\swordslash.wav"
- SlashSound.Parent = Scythe
- SlashSound.Volume = 1.0
- function tagHumanoid(humanoid, player)
- if humanoid ~= nil then
- creatorTag = Instance.new("ObjectValue")
- creatorTag.Name = "creator"
- creatorTag.Value = player
- creatorTag.Parent = humanoid
- end
- end
- function untagHumanoid(humanoid)
- if humanoid ~= nil then
- tag = humanoid:FindFirstChild("creator")
- if tag ~= nil then
- tag:Remove()
- end
- end
- end
- function blow(hit)
- tempDamage = lunge_damage
- local humanoid = hit.Parent:findFirstChild("Humanoid")
- local vCharacter = Tool.Parent
- local vPlayer = game.Players:playerFromCharacter(vCharacter)
- local hum = vCharacter:findFirstChild("Humanoid") -- non-nil if tool held by a character
- if humanoid~=nil and humanoid ~= hum and hum ~= nil then
- -- final check, make sure sword is in-hand
- local right_arm = vCharacter:FindFirstChild("Right Arm")
- if (right_arm ~= nil) then
- local joint = right_arm:FindFirstChild("RightGrip")
- if (joint ~= nil and (joint.Part0 == Scythe or joint.Part1 == Scythe)) then
- tagHumanoid(humanoid, vPlayer)
- humanoid:TakeDamage(damage)
- wait(1)
- untagHumanoid(humanoid)
- end
- end
- end
- end
- function slashIt(myHumanoid, myTorso)
- damage = 15
- laughSound = Tool:FindFirstChild("EvilLaugh")
- if laughSound then laughSound:Play() end
- myHumanoid.WalkSpeed = 0.0
- Tool.GripForward = Vector3.new(-0.5977, -0.6567, 0.4599)
- Tool.GripRight = Vector3.new(-0.7395, 0.6731, 0)
- Tool.GripUp = Vector3.new(0.3096, 0.3041, 0.888)
- parts = game.Workspace:FindPartsInRegion3(Region3.new(myTorso.Position - scytheAOE, myTorso.Position + scytheAOE), vCharacter, 100)
- for i = 1, #parts do
- tempChar = parts[i].Parent
- tempTorso = tempChar:FindFirstChild("Torso")
- if tempTorso then
- if tempTorso:FindFirstChild("scytheBV") == nil then
- newBV = Instance.new("BodyVelocity")
- newBV.Name = "scytheBV"
- newBV.P = 100000
- newBV.maxForce = Vector3.new(newBV.P, newBV.P, newBV.P)
- distance = (tempTorso.Position - myTorso.Position).magnitude
- print(distance)
- newBV.velocity = (myTorso.Position - tempTorso.Position).unit * 30/distance
- newBV.Parent = tempTorso
- end
- end
- end
- bg = Instance.new("BodyGyro")
- bg.P = 100000
- bg.maxTorque = Vector3.new(bg.P, bg.P, bg.P)
- bg.Name = "BG"
- torsoFrame[1] = myTorso.CFrame * CFrame.Angles(0, 1*math.pi/3, 0)
- torsoFrame[2] = myTorso.CFrame * CFrame.Angles(0, 2*math.pi/3, 0)
- torsoFrame[3] = myTorso.CFrame * CFrame.Angles(0, math.pi, 0)
- torsoFrame[4] = myTorso.CFrame * CFrame.Angles(0, 4*math.pi/3, 0)
- torsoFrame[5] = myTorso.CFrame * CFrame.Angles(0, 5*math.pi/3, 0)
- torsoFrame[6] = myTorso.CFrame
- bg.Parent = myTorso
- for i = 1, 84 do
- c = i%6 + 1
- bg.cframe = torsoFrame[c]
- wait(0.025)
- end
- for i = 1, #parts do
- sBV = parts[i]:FindFirstChild("scytheBV")
- if sBV then sBV:Remove() end
- end
- Tool.GripForward = Vector3.new(-1, 0, 0)
- Tool.GripRight = Vector3.new(0, 1, 0)
- Tool.GripUp = Vector3.new(0, 0, 1)
- bg:Remove()
- myHumanoid.WalkSpeed = 16.0
- wait(5.5)
- damage = 22.0
- end
- function initiateScythe(key)
- key = key:lower()
- if key == "p" then
- print("CHECKING")
- t = r.Stepped:wait()
- if (t - lastKeyDown < 0.2) then dashTime = t end
- lastKeyDown = t
- end
- end
- function onActivated()
- if Tool.Enabled == false then
- return
- end
- Tool.Enabled = false
- vCharacter = Tool.Parent
- myTorso = vCharacter:FindFirstChild("Torso")
- if myTorso == nil then
- return
- end
- myHumanoid = vCharacter:FindFirstChild("Humanoid")
- if myHumanoid == nil then
- return
- end
- slashAnim = myHumanoid:LoadAnimation(Tool.SlashAnim)
- children = vCharacter:GetChildren()
- for i =1, #children do
- if children[i].className == "Part" then
- children[i].Transparency = 0.5
- end
- if children[i].className == "Hat" then
- children[i].Handle.Transparency = 0.5
- end
- end
- t = r.Stepped:wait()
- if t - dashTime < 0.2 then
- print("Slashing")
- slashIt(myHumanoid, myTorso)
- else
- if slashAnim then slashAnim:Play() end
- if SlashSound then SlashSound:Play() end
- end
- wait(1.0)
- Tool.Enabled = true
- end
- function onEquipped(mouse)
- vCharacter = Tool.Parent
- myHumanoid = vCharacter:FindFirstChild("Humanoid")
- if myHumanoid then
- twoHandAnim = myHumanoid:LoadAnimation(Tool.TwoHandAnim)
- if twoHandAnim then twoHandAnim:Play() end
- end
- if mouse then
- keyConnection = mouse.KeyDown:connect(initiateScythe)
- else
- print("No Mouse")
- end
- script.Parent.EvilLaugh:Play()
- script.Parent.Handle.BOOM:Play()
- end
- function onUnequipped()
- Tool.Enabled = true
- if slashAnim then slashAnim:Stop() end
- if laughSound then laughSound:Stop() end
- if SlashSound then SlashSound:Stop() end
- if twoHandAnim then twoHandAnim:Stop() end
- myHumanoid = vCharacter:FindFirstChild("Humanoid")
- script.Parent.Handle.BOOM:Stop()
- script.Parent.EvilLaugh:Stop()
- myTorso = vCharacter:FindFirstChild("Torso")
- if myTorso then
- bg = myTorso:FindFirstChild("BG")
- bv = myTorso:FindFirstChild("BV")
- if bg then bg:Remove() end
- if bv then bv:Remove() end
- end
- if myHumanoid then myHumanoid.WalkSpeed = 16.0 end
- end
- Tool.Activated:connect(onActivated)
- Tool.Equipped:connect(onEquipped)
- Tool.Unequipped:connect(onUnequipped)
- Scythe.Touched:connect(blow)
- end))
- RemoteFunction36.Parent = Tool0
- Animation37.Name = "thrustAnim"
- Animation37.Parent = Tool0
- Animation37.AnimationId = "rbxassetid://94161333"
- Animation38.Name = "slashAnim"
- Animation38.Parent = Tool0
- Animation38.AnimationId = "rbxassetid://94161088"
- Animation39.Name = "overheadAnim"
- Animation39.Parent = Tool0
- Animation39.AnimationId = "http://www.roblox.com/Asset?ID=94160738"
- LocalScript40.Name = "SwordControl"
- LocalScript40.Parent = Tool0
- table.insert(cors,sandbox(LocalScript40,function()
- wait()
- local player=game.Players.LocalPlayer
- local character=player.Character
- local mouse=player:GetMouse()
- local myhum=character.Humanoid
- local tool=script.Parent
- local handle=tool.Handle
- local sword=handle:Clone()
- local event=tool:WaitForChild("RemoteFunction")
- local damage=42000 --damage dealt
- local speed=2 --how fast the weapon is
- local charge=false --can the weapon charge??
- local auto=true --can the weapon swing automatically?
- local equipped=false
- local clicked=false
- local animations={}
- local sounds={}
- local debris=game:GetService("Debris")
- tool.Equipped:connect(function()
- animations[1]=myhum:LoadAnimation(tool.slashAnim)
- animations[2]=myhum:LoadAnimation(tool.thrustAnim)
- animations[3]=myhum:LoadAnimation(tool.overheadAnim)
- sounds[1]=handle.slash
- sounds[2]=handle.lunge
- sounds[3]=handle.overhead
- equipped=true
- end)
- tool.Unequipped:connect(function()
- for i,animation in pairs(animations) do
- animation:Stop()
- end
- equipped=false
- end)
- handle.Touched:connect(function(part)
- local hum=part.Parent:FindFirstChild("Humanoid")
- local head=part.Parent:FindFirstChild("Head")
- local hitplayer=game.Players:GetPlayerFromCharacter(part.Parent)
- if clicked and hum~=nil and head~=nil then
- if hum.Health>0 then
- if hitplayer~=nil then
- if hitplayer.TeamColor~=player.TeamColor and hitplayer:FindFirstChild("nopvp")==nil and player:FindFirstChild("nopvp")==nil then
- event:InvokeServer("hit",{hum,damage})
- end
- else
- event:InvokeServer("hit",{hum,damage})
- end
- end
- end
- end)
- local soundstage=1
- local animstage=1
- local chargeready=true
- local down=false
- local ready=true
- mouse.Button1Down:connect(function()
- down=true
- while down and tool.Parent.ClassName=="Model" do
- local mytorso=character:FindFirstChild("Torso")
- if mytorso then
- delay(0,function()
- if clicked then
- if chargeready and charge then
- chargeready=false
- --charging
- local chargeforce=Instance.new('BodyVelocity',mytorso)
- chargeforce.Name="ChargeVelocity"
- chargeforce.maxForce=Vector3.new(100000, 100000, 100000)
- chargeforce.velocity=(mouse.Hit.p*Vector3.new(1,0,1)-mytorso.CFrame.p*Vector3.new(1,0,1)).unit*150
- mytorso.CFrame=CFrame.new(mytorso.CFrame.p,mytorso.CFrame.p+chargeforce.velocity)
- debris:AddItem(chargeforce,0.2)
- wait(1/speed)
- chargeready=true
- if clicked then
- handle.dash:Play()
- end
- end
- end
- end)
- wait()
- if clicked==false then
- sounds[soundstage]:Play()
- animations[animstage]:Play()
- animations[animstage]:AdjustSpeed(speed)
- clicked=true
- spawn(function()
- local target
- local closest=120
- for _,instance in pairs(workspace:GetChildren()) do
- local hum=instance:FindFirstChild("Humanoid")
- local head=instance:FindFirstChild("Head")
- if hum and head and instance~=character then
- local dist=(head.Position-handle.Position).magnitude
- if hum.Health>0 and dist<closest then
- local hitplayer=game.Players:GetPlayerFromCharacter(instance)
- if hitplayer~=nil then
- if hitplayer.TeamColor~=player.TeamColor and hitplayer:FindFirstChild("nopvp")==nil and player:FindFirstChild("nopvp")==nil then
- target=head
- closest=dist
- end
- else
- target=head
- closest=dist
- end
- end
- end
- end
- if target then
- for i=10,20 do
- spawn(function() event:InvokeServer("meteor",{damage,target}) end)
- wait(.5/speed)
- end
- end
- end)
- wait(1/speed)
- if soundstage==3 then soundstage=1 else soundstage=soundstage+1 end
- clicked=false
- if animstage==3 then animstage=1 else animstage=animstage+1 end
- else
- break
- end
- end
- if not auto then break end
- end
- end)
- mouse.Button1Up:connect(function()
- down=false
- end)
- end))
- Script41.Name = "ServerMain"
- Script41.Parent = Tool0
- table.insert(cors,sandbox(Script41,function()
- local tool=script.Parent
- local handle=tool.Handle
- local remotefunction=tool.RemoteFunction
- local debris=game:GetService("Debris")
- function hit(humanoid,damage,player)
- humanoid:TakeDamage(damage)
- local hitmark=Instance.new("Decal")
- hitmark.Texture="rbxassetid://263842702"
- script.Hit:Play()
- wait(0.6)
- hitmark:Destroy()
- for _,instance in pairs(humanoid:GetChildren()) do
- if instance.Name=="creator" then
- instance:Destroy()
- end
- end
- local creator=Instance.new("ObjectValue",humanoid)
- creator.Name="creator"
- creator.Value=player
- end
- function remotefunction.OnServerInvoke(player,command,value)
- if command=="hit" then
- hit(value[1],value[2],player)
- elseif command=="trip" then
- value.CFrame=value.CFrame*CFrame.Angles(0,0,math.rad(180))+Vector3.new(0,3,0)
- elseif command=="meteor" then
- local meteor=Instance.new("Part")
- meteor.Name="meteor"
- meteor.TopSurface="Smooth"
- meteor.BottomSurface="Smooth"
- meteor.Size=Vector3.new(4,4,4)
- meteor.CanCollide=false
- meteor.Shape="Ball"
- meteor.BrickColor=BrickColor.Random()
- meteor.Material="Neon"
- meteor.CFrame=CFrame.new(handle.Position+Vector3.new(math.random(-10,10),20,math.random(-10,10)))
- meteor.Parent=workspace
- local rocketpropulsion=Instance.new("RocketPropulsion",meteor)
- rocketpropulsion.TargetRadius=5
- rocketpropulsion.MaxSpeed=1500
- rocketpropulsion.MaxTorque=Vector3.new(40,40,0)
- rocketpropulsion.MaxThrust=5000
- rocketpropulsion.ThrustP=100
- rocketpropulsion.ThrustD=5
- rocketpropulsion.Target=value[2]
- rocketpropulsion:Fire()
- rocketpropulsion.ReachedTarget:connect(function(part)
- if value[2].Parent then
- local hum=value[2].Parent:FindFirstChild("Humanoid")
- local hitplayer=game.Players:GetPlayerFromCharacter(value[2].Parent)
- if hum~=nil then
- if hum.Health>0 then
- if hitplayer~=nil then
- if hitplayer.TeamColor~=player.TeamColor and hitplayer:FindFirstChild("nopvp")==nil and player:FindFirstChild("nopvp")==nil then
- hit(hum,value[1],player)
- end
- else
- hit(hum,value[1],player)
- end
- end
- meteor:Destroy()
- end
- end
- end)
- debris:AddItem(meteor,999999999999999999)
- end
- end
- end))
- Sound42.Name = "Hit"
- Sound42.Parent = Script41
- Sound42.SoundId = "rbxassetid://160432334"
- LocalScript43.Name = "MouseIcon"
- LocalScript43.Parent = Tool0
- table.insert(cors,sandbox(LocalScript43,function()
- local MOUSE_ICON = 'rbxasset://textures/GunCursor.png'
- local RELOADING_ICON = 'rbxasset://textures/GunWaitCursor.png'
- local Tool = script.Parent
- local Mouse = nil
- local function UpdateIcon()
- if Mouse then
- Mouse.Icon = Tool.Enabled and MOUSE_ICON or RELOADING_ICON
- end
- end
- local function OnEquipped(mouse)
- Mouse = mouse
- UpdateIcon()
- end
- local function OnChanged(property)
- if property == 'Enabled' then
- UpdateIcon()
- end
- end
- Tool.Equipped:connect(OnEquipped)
- Tool.Changed:connect(OnChanged)
- end))
- for i,v in pairs(mas:GetChildren()) do
- v.Parent = game:GetService("Players").LocalPlayer.Backpack
- pcall(function() v:MakeJoints() end)
- end
- mas:Destroy()
- for i,v in pairs(cors) do
- spawn(function()
- pcall(v)
- end)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement