Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- The Murderer
- -- Created by Nebula_Zorua
- -- Youtube channel: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA
- -- Discord account: Nebula the Zorua#6666
- -- Credit to Shackluster for the inspiration for this
- -- I might update this in the future.
- --[[
- CONTROLS:
- Left Mouse Button Click - Attack
- Left Mouse Button Click - Get knife back once thrown (You must be near the thrown knife)
- T - Throw (You cant attack until you get it back with the above control)
- ; - Machete
- TO BECOME BLOODLUSTFUL:
- Kill 12 people/dummies quickly. You must keep killing to keep the bloodlust.
- Once you're bloodlustful, you charge forward when you attack
- ]]
- --[[
- TO EDITORS/RESKINNERS:
- You can edit BloodColor, BloodMaterial, and BloodlustBlood to change the color of the blood, material of the blood, and the
- number of blood you need to become bloodlustful. You get 30 blood with each kill.
- ]]
- if game:GetService("RunService"):IsClient()then error("Please run as a server script. Use h/ instead of hl/.")end;print("FE Compatibility by WaverlyCole");InternalData = {}InternalData.RealOwner = owner;InternalData.Version = "v1.0.0"
- do
- script.Parent = InternalData.RealOwner.Character
- local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
- local function createObject (connections, index)
- local proxy = newproxy (true);local meta = getmetatable (proxy);
- local runbind = function (self, i, ...) connections[i]:Fire (...); end;
- while (#connections > 0) do connections [table.remove (connections, 1)] = Instance.new ('BindableEvent');end;
- meta.__index = function (self, i)
- if (i == 'TriggerEvent') then return runbind end;
- return connections[i] and connections[i].Event or index[i];
- end;
- meta.__newindex = index;meta.__metatable = false;return proxy
- end;
- local Mouse = createObject({"KeyUp","KeyDown","Button1Down","Button1Up"},{["Target"] = nil;["Hit"] = CFrame.new()})
- local UserInputService = createObject({"InputBegan","InputEnded"},{})
- local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
- self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
- end};ContextActionService.UnBindAction = ContextActionService.BindAction
- Event.OnServerEvent:Connect(function(FiredBy,Input)
- if FiredBy.Name ~= InternalData.RealOwner.Name then return end
- if Input.MouseEvent then
- Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
- else
- local Begin = Input.UserInputState == Enum.UserInputState.Begin
- if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TriggerEvent(Begin and "Button1Down" or "Button1Up") end
- for _,Action in pairs(ContextActionService.Actions) do
- for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
- end
- Mouse:TriggerEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower());UserInputService:TriggerEvent(Begin and "InputBegan" or "InputEnded",Input,false)
- end
- end)
- InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
- Event.Parent = NLS([[
- local Player = owner;
- local Event = script:WaitForChild("UserInput");
- local UserInputService = game:GetService("UserInputService");
- local Mouse = Player:GetMouse();
- local Input = function(Input,gameProcessedEvent)
- if gameProcessedEvent then return end
- Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
- end
- UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
- local Hit,Target
- while wait(1/60) do
- if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
- Hit = Mouse.Hit;Target = Mouse.Target;
- Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
- end
- end
- ]],InternalData.RealOwner.Character)
- end
- InternalData.RealInstance = Instance;Instance = setmetatable({},{
- __index = function (self,Index)
- if Index:lower() == 'new' then
- return function (Type, Parent)
- local Real = InternalData.RealInstance.new(Type,Parent)
- if not Type then return end
- if Type == "BillboardGui" then
- return setmetatable({},{
- __index = function (self,Index)
- return Real[Index]
- end;
- __newindex = function (self,Index,Value)
- if Index:lower() == "playertohidefrom" then
- if Value.Name == owner.Name then Real[Index] = InternalData.RealOwner else Real[Index] = Value end
- else
- Real[Index] = Value
- end
- end;
- __tostring = function(self) return tostring(Real) end;
- })
- end
- return Real
- end
- end
- return InternalData.RealInstance[Index]
- end;
- __tostring = function(self) return tostring(InternalData.RealInstance) end;
- });
- InternalData.RealGame = game;game = setmetatable({},{
- __index = function (self,Index)
- local Sandbox = function (Thing)
- if Thing:IsA("Player") then
- local RealPlayer = Thing
- return setmetatable({},{
- __index = function (self,Index)
- local Type = type(RealPlayer[Index])
- if Type == "function" then
- if Index:lower() == "getmouse" or Index:lower() == "mouse" then
- return function (self)return InternalData["Mouse"] end
- end
- return function (self,...)return RealPlayer[Index](RealPlayer,...) end
- elseif Index == "FakePlayer" then
- return true
- end
- return RealPlayer[Index]
- end;
- __tostring = function(self) return tostring(RealPlayer) end
- })
- end
- end
- if InternalData.RealGame[Index] then
- local Type = type(InternalData.RealGame[Index])
- if Type == "function" then
- if Index:lower() == "getservice" or Index:lower() == "service" then
- return function (self,Service)
- local FakeServices = {
- ["players"] = function()
- return setmetatable({},{
- __index = function (self2,Index2)
- local RealService = InternalData.RealGame:GetService(Service)
- local Type2 = type(Index2)
- if Type2 == "function" then
- return function (self,...) return RealService[Index2](RealService,...)end
- else
- if Index2:lower() == "localplayer" then return Sandbox(InternalData.RealOwner) end
- return RealService[Index2]
- end
- end;
- __tostring = function(self) return tostring(InternalData.RealGame:GetService(Service)) end
- })
- end;
- ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
- ["userinputservice"] = function() return InternalData["UserInputService"] end;
- ["runservice"] = function()
- return setmetatable({},{
- __index = function(self2,Index2)
- local RealService = InternalData.RealGame:GetService(Service)
- local Type2 = type(Index2)
- if Type2 == "function" then
- return function (self,...) return RealService[Index2](RealService,...) end
- else
- local RunServices = {
- ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return InternalData.RealGame:GetService("RunService").Stepped:Connect(Function) end end;
- ["renderstepped"] = function() return RealService["Stepped"] end
- }
- if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
- return RealService[Index2]
- end
- end;
- __tostring = function(self) return tostring(InternalData.RealGame:GetService("RunService")) end
- })
- end
- }
- if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
- return InternalData.RealGame:GetService(Service)
- end
- end
- return function (self,...) return InternalData.RealGame[Index](InternalData.RealGame,...) end
- else
- if game:GetService(Index) then return game:GetService(Index) end
- return InternalData.RealGame[Index]
- end
- end
- return nil
- end;
- __tostring = function(self) return tostring(InternalData.game) end
- });Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete!")
- --//Paste script below this line.
- wait()
- script.Parent = nil
- local S = setmetatable({},{
- __index = function(self,index)
- local service = game:GetService(index)
- if(service)then
- self[index] = service
- return service
- end
- end
- })
- local plr = S.Players.silver22352
- local char = plr.Character
- local hum = char.Humanoid
- local rarm = char["Right Arm"]
- local larm= char["Left Arm"]
- local rleg= char["Right Leg"]
- local lleg = char["Left Leg"]
- local root = char:FindFirstChild'HumanoidRootPart'
- local torso = char.Torso
- local head = char.Head
- local sine = 0;
- local lastTwitch = 0;
- local combo = 1;
- local ThrownKnife = false
- local KnifePosition = CFrame.new(0,0,0)
- local lastClick = time()
- local change = 1;
- local runService = S.RunService
- local mouse = plr:GetMouse()
- local Attack = false
- local neutralAnims = true
- local WalkSine = 0
- local Debounces = {Debounces={}}
- local Hit = {}
- local BloodPuddles = {}
- local Bloodied = 0
- local Teamed = {}
- local WalkSpeed = 6
- hum.WalkSpeed = WalkSpeed
- local BloodColor = BrickColor.new'Turquoise'
- local BloodMaterial = Enum.Material.Sand
- local BloodTime = time()
- local Twitch = false
- local BloodlustBlood = 350
- hum.DisplayDistanceType = "None"
- hum.MaxHealth = 3000
- hum.Health = 3000
- function Debounces:New(name,cooldown)
- local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
- setmetatable(aaaaa,{__index = Debounces})
- Debounces.Debounces[name] = aaaaa
- return aaaaa
- end
- function Debounces:Use(overrideUsable)
- assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
- if(self.Usable or overrideUsable)then
- self.Usable = false
- self.CoolingDown = true
- local LastUse = time()
- self.LastUse = LastUse
- delay(self.Cooldown or 2,function()
- if(self.LastUse == LastUse)then
- self.CoolingDown = false
- self.Usable = true
- end
- end)
- end
- end
- function Debounces:Get(name)
- assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
- for i,v in next, Debounces.Debounces do
- if(i == name)then
- return v;
- end
- end
- end
- function Debounces:GetProgressPercentage()
- assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
- if(self.CoolingDown and not self.Usable)then
- return math.max(
- math.floor(
- (
- (time()-self.LastUse)/self.Cooldown or 2
- )*100
- )
- )
- else
- return 100
- end
- end
- local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
- local V3 = {N=Vector3.new}
- local M = {C=math.cos,R=math.rad,S=math.sin,P=math.pi,RNG=math.random,MRS=math.randomseed,H=math.huge}
- local Hold = CF.N(0,-1,-1)*CF.A(M.R(-90),M.R(90),0)
- local BeheadHold = CF.A(0,0,0)
- local Effects,Sounds = {},{};
- --Stop animations
- for _,v in next, hum:GetPlayingAnimationTracks() do
- v:Stop();
- end
- pcall(game.Destroy,char:FindFirstChild'Animate')
- pcall(game.Destroy,hum:FindFirstChild'Animator')
- -- Sounds
- Sounds['Wet'] = {Id=256738023,Loop=false,Pitch=1}
- Sounds['Swoosh1'] = {Id=320557353,Loop=false,Pitch=1,Volume=6}
- Sounds['Swoosh2'] = {Id=320557382,Loop=false,Pitch=1,Volume=6}
- Sounds['Swoosh3'] = {Id=320557413,Loop=false,Pitch=1,Volume=6}
- Sounds['Swoosh4'] = {Id=320557453,Loop=false,Pitch=1,Volume=6}
- Sounds['Swoosh5'] = {Id=320557487,Loop=false,Pitch=1,Volume=6}
- Sounds['Swoosh6'] = {Id=320557537,Loop=false,Pitch=1,Volume=6}
- Sounds['Swoosh7'] = {Id=320557563,Loop=false,Pitch=1,Volume=6}
- Sounds['Swoosh8'] = {Id=320557518,Loop=false,Pitch=1,Volume=6}
- Sounds['SmallBoom'] = {Id=341336485,Loop=false,Volume=5,Pitch=1}
- Sounds['ChaosBuster'] = {Id=333534812,Loop=false,Volume=5,Pitch=0.75}
- Sounds['Magic'] = {Id=315743350,Loop=false,Volume=5,Pitch=1}
- Sounds['ShrekRemix'] = {Id=163306929,Loop=true,Pitch=1,Volume = 4}
- Sounds['CreoDimension'] = {Id=927529620,Loop=true,Pitch=1,Volume=4}
- Sounds['BlackBlizzard'] = {Id=657626121,Loop=true,Pitch=1,Volume=4}
- Sounds['ColbreakzFantasy'] = {Id=876981900,Loop=true,Pitch=1,Volume=4}
- Sounds['NeflCrystals'] = {Id=340106355,Loop=true,Pitch=1,Volume=4}
- Sounds['EvilMortyRemix'] = {Id=1057401232,Loop=true,Pitch=1,Volume=10}
- Sounds['Psycho'] = {Id=579524490,Loop=true,Pitch=1,Volume=10}
- -- Functions
- local NewInstance = function(instance,parent,properties)
- local inst = Instance.new(instance,parent)
- if(properties)then
- for i,v in next, properties do
- pcall(function() inst[i] = v end)
- end
- end
- return inst;
- end
- ArtificialHB = NewInstance("BindableEvent", script,{
- Parent = script,
- Name = "Heartbeat",
- })
- script:WaitForChild("Heartbeat")
- frame = 1 / 60
- tf = 0
- allowframeloss = false
- tossremainder = false
- lastframe = tick()
- script.Heartbeat:Fire()
- game:GetService("RunService").Heartbeat:connect(function(s, p)
- tf = tf + s
- if tf >= frame then
- if allowframeloss then
- script.Heartbeat:Fire()
- lastframe = tick()
- else
- for i = 1, math.floor(tf / frame) do
- script.Heartbeat:Fire()
- end
- lastframe = tick()
- end
- if tossremainder then
- tf = 0
- else
- tf = tf - frame * math.floor(tf / frame)
- end
- end
- end)
- function swait(num)
- if num == 0 or num == nil then
- ArtificialHB.Event:wait()
- else
- for i = 0, num do
- ArtificialHB.Event:wait()
- end
- end
- end
- function clerp(startCF,endCF,alpha)
- return startCF:lerp(endCF, alpha)
- end
- local sndFromData = function(data,parent)
- assert(typeof(data) == 'table',"sndFromData's first argument must be a table!")
- local snd = NewInstance("Sound",parent or char,{SoundId = "rbxassetid://"..data.Id,Looped=data.Loop or false,Pitch = data.Pitch or 1,Volume = data.Volume or 1})
- return snd;
- end
- local FX = function(ID,vol,pitch,parent)
- local snd = NewInstance("Sound",parent or torso, {Pitch=pitch or 1, Volume = vol or 1,SoundId = "rbxassetid://"..ID})
- snd:Play()
- repeat wait() until snd.IsLoaded and snd.IsPlaying
- delay(snd.TimePosition+.5,function()
- snd:Stop()
- snd:Destroy()
- end)
- end
- function UnbindLoops()
- pcall(runService.UnbindFromRenderStep,runService,"N_Effects")
- pcall(runService.UnbindFromRenderStep,runService,"N_Animations")
- end;
- UnbindLoops() -- Just so if the loops already exist from previously running a script using this template, there's no errors
- -- Model
- local Music = sndFromData(Sounds.Psycho,torso)
- Music:Play()
- Music.MaxDistance = 500
- local Handle = NewInstance('Part',char,{CanCollide=false,Size=V3.N(0.46,3.82,0.37),Name='Handle'})
- local Mesh = NewInstance('SpecialMesh',Handle,{MeshId='rbxassetid://471401475',TextureId='rbxassetid://471401476',Scale=V3.N(.01,.01,.01)})
- local Decal = NewInstance('Decal',Handle,{Transparency=1,Texture='rbxassetid://116830967'})
- -- Joints and Lerp
- local LS = NewInstance('Motor',char,{Part0=torso,Part1=larm,C0 = CF.N(-1.5,0.5,0),C1 = CF.N(0,.5,0)})
- local RS = NewInstance('Motor',char,{Part0=torso,Part1=rarm,C0 = CF.N(1.5,0.5,0),C1 = CF.N(0,.5,0)})
- local NK = NewInstance('Motor',char,{Part0=torso,Part1=head,C0 = CF.N(0,1.5,0)})
- local LH = NewInstance('Motor',char,{Part0=torso,Part1=lleg,C0 = CF.N(-.5,-1,0),C1 = CF.N(0,1,0)})
- local RH = NewInstance('Motor',char,{Part0=torso,Part1=rleg,C0 = CF.N(.5,-1,0),C1 = CF.N(0,1,0)})
- local RJ = NewInstance('Motor',char,{Part0=root,Part1=torso})
- local HW = NewInstance('Motor',char,{Part0=rarm,Part1=Handle,C0 = CF.N(0,-1,-1)*CF.A(M.R(-90),M.R(90),0)})
- -- watevr
- -- Default C0s
- local LSD=LS.C0
- local RSD=RS.C0
- local HD=NK.C0
- local TD=RJ.C0
- local LHD=LH.C0
- local RHD=RH.C0
- -- Check State
- function CheckState(rPart)
- if(rPart.Velocity.y > .35 and hum:GetState() == Enum.HumanoidStateType.Freefall)then
- return 'Jump';
- elseif(rPart.Velocity.y < -.35 and hum:GetState() == Enum.HumanoidStateType.Freefall)then
- return 'Fall';
- elseif(math.abs(rPart.Velocity.x) > 2 or math.abs(rPart.Velocity.z) > 2 and hum:GetState() ~= Enum.HumanoidStateType.Freefall)then
- return 'Walk';
- end
- return 'Idle';
- end
- -- Effect Functions
- function SphereFX(duration,color,scale,pos,endScale)
- local rng = Instance.new("Part", char)
- rng.Anchored = true
- rng.BrickColor = color
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1,1,1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshType = "Sphere"
- rngm.Scale = scale
- table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
- return rng
- end
- function BlastFX(duration,color,scale,pos,endScale)
- local rng = Instance.new("Part", char)
- rng.Anchored = true
- rng.BrickColor = color
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1,1,1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshType = "FileMesh"
- rngm.MeshId = 'rbxassetid://20329976'
- rngm.Scale = scale
- table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
- return rng
- end
- function BlockFX(duration,color,scale,pos,endScale)
- local rng = Instance.new("Part", char)
- rng.Anchored = true
- rng.BrickColor = color
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1,1,1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- local rngm = Instance.new("BlockMesh", rng)
- rngm.Scale = scale
- table.insert(Effects, {Frame = 0, Effect="Block", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
- return rng
- end
- function LaserFX(duration,color,cframe,scale,endScale)
- local rng = Instance.new("Part", char)
- rng.Anchored = true
- rng.BrickColor = color
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Material = Enum.Material.Neon
- rng.Name = "Laser"
- rng.Size = Vector3.new(.5,.5,.5)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = cframe
- local rngm = Instance.new("CylinderMesh", rng)
- rngm.Scale = scale
- table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = cframe})
- return rng
- end
- function BloodDrop(pos,dir,maxsize)
- local owo = NewInstance("Part",char,{Material=BloodMaterial,BrickColor=BloodColor,Shape=Enum.PartType.Ball,Size=V3.N(.25,.25,.25), CanCollide = false})
- owo.CFrame=CF.N(pos,dir)
- local bv = Instance.new("BodyVelocity",owo)
- bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
- bv.velocity = CF.N(pos,dir+V3.N(M.RNG(-3,3)/30,M.RNG(-3,3)/30,M.RNG(-3,3)/30)).lookVector*15
- bv.Name = "MOVE"
- game:service'Debris':AddItem(bv,0.05)
- local touch
- touch = owo.Touched:connect(function(hit)
- if(hit.Anchored==true)then
- touch:disconnect()
- BloodPuddle(owo.Position+V3.N(0,1,0),10,maxsize,owo)
- owo:destroy()
- end
- end)
- end
- function BloodPuddle(position,range,maxSize,where)
- local hit, pos, norm = workspace:FindPartOnRayWithIgnoreList(Ray.new(
- position,CF.N(position,position+V3.N(0,-1,0)).lookVector * range
- ),{where,char},false,true)
- if(hit)then
- if(BloodPuddles[hit])then
- BloodPuddles[hit].Frame = 0
- if(hit:FindFirstChild'CylinderMesh' and hit.CylinderMesh.Scale.Z < BloodPuddles[hit].MaxSize)then
- hit.CylinderMesh.Scale = hit.CylinderMesh.Scale + V3.N(.1,0,.1)
- end
- else
- local Puddle = NewInstance('Part',workspace,{Material=BloodMaterial,BrickColor=BloodColor,Size=V3.N(1,.1,1),CFrame=CF.N(pos,pos+norm)*CF.A(90*M.P/180,0,0),Anchored=true,CanCollide=false,Archivable=false,Locked=true,Name='BloodPuddle'})
- local Cyl = NewInstance('CylinderMesh',Puddle,{Name='CylinderMesh'})
- BloodPuddles[Puddle] = {MaxSize=maxSize or 7,Frame=0}
- end
- end
- end
- function ShatterFX(duration,color,scale,cframe)
- local rng = Instance.new("Part", char)
- rng.Anchored = true
- rng.BrickColor = color
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1,1,1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = cframe * CF.fEA(M.RNG(-50, 50), M.RNG(-50, 50), M.RNG(-50, 50))
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.Scale = scale
- rngm.MeshType = "Sphere"
- table.insert(Effects, {Frame = 0, Effect="Shatter", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale,Position=rng.CFrame})
- end
- function RingFX(duration,color,scale,pos,endScale)
- local type = type
- local rng = Instance.new("Part", char)
- rng.Anchored = true
- rng.BrickColor = color
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1,1,1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshId = "rbxassetid://3270017"
- rngm.Scale = scale
- table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
- return rng
- end
- function Shoot(StartCF,EndCF,Spread,Speed,Num,Color,Drop,MinDamage,MaxDamage)
- local Spread = V3.N(M.RNG(-Spread,Spread),M.RNG(-Spread,Spread),M.RNG(-Spread,Spread))
- local Start = StartCF.p
- local End = EndCF.p
- local SpreadPos = End + Spread
- local Look = CF.N((Start + SpreadPos) / 2, SpreadPos)
- local Count = Num
- spawn(function()
- repeat
- wait()
- local hit, pos = workspace:findPartOnRay(Ray.new(
- Start,(Look.lookVector).unit * Speed
- ),char,false,true)
- local dist = (Start-pos).magnitude
- local yScale = dist * (Speed / (Speed/2))
- local aa = CF.N((Start + pos) / 2, pos) * CFrame.Angles(1.57, 0, 0)
- LaserFX(25,Color,aa,Vector3.new(1,yScale,1),Vector3.new(-1,yScale,-1))
- Start = Start + Look.lookVector * Speed
- Look = Look * CF.A(M.R(Drop or -1),0,0)
- Count = Count - 1
- if(hit)then
- Count = 0
- MagniDamage(pos,10,MinDamage,MaxDamage,0,'Normal')
- end
- if(Count <= 0)then
- local sphere = SphereFX(25,Color,Vector3.new(5,5,5),CF.N(pos),Vector3.new(15,15,15))
- local ring = RingFX(25,Color,Vector3.new(6,6,6),CF.N(pos) * CF.A(0,M.R(90),0) * CF.A(M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360))),Vector3.new(16,16,16))
- end
- until Count <= 0
- end)
- end
- -- Effect Loop
- runService:BindToRenderStep("N_Effects",Enum.RenderPriority.Character.Value + 2,function()
- for _,data in next, Effects do
- local frame,effect,duration = data.Frame,data.Effect,data.Duration
- local transparency = (frame / duration)
- local opacity = 1 - transparency
- if(frame > duration)then
- Effects[_] = nil
- end
- frame = frame + 1
- data.Frame = frame
- if(effect == 'Sphere')then
- local Part,Mesh,Scale,CF,eScale = data.Part,data.Mesh,data.Scale,data.Position,data.EndScale
- Mesh.Scale = Mesh.Scale:lerp(eScale, transparency/6)
- Part.Transparency = transparency
- if(frame > duration)then
- Part:destroy()
- end
- elseif(effect == 'Shatter')then
- local Part,Mesh,Scale,Position,Thingie,Thingie2,Inc = data.Part,
- data.Mesh,
- data.Scale,
- data.Position,
- (data.Thingie or 0),
- (data.Thingie2 or M.RNG(50, 100) / 100),
- (data.Inc or M.RNG() - M.RNG())
- Part.Transparency = transparency
- Position = Position * CF.N(0,Thingie2,0)
- Part.CFrame = Position * CF.fEA(Thingie,0,0)
- Thingie = Thingie + Inc
- data.Position = Position
- data.Thingie = Thingie
- data.Thingie2 = Thingie2
- data.Inc = Inc
- elseif(effect == 'Block')then
- local Part,Mesh,Scale,CF,eScale = data.Part,data.Mesh,data.Scale,data.Position,data.EndScale
- Mesh.Scale = Mesh.Scale:lerp(eScale, transparency/6)
- Part.Transparency = transparency
- Part.CFrame = CF * CFrame.Angles(M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360)))
- if(frame > duration)then
- Part:destroy()
- end
- end
- end
- for puddle,data in next, BloodPuddles do
- if(puddle.Transparency > 0.9)then
- BloodPuddles[puddle] = nil
- puddle:destroy()
- end
- data.Frame = data.Frame + 1
- if(data.Frame > 105)then
- local trans = (data.Frame-105)/30
- puddle.Transparency = trans
- if(puddle:FindFirstChild'CylinderMesh' and puddle.CylinderMesh.Scale.Z > 0)then
- puddle.CylinderMesh.Scale = puddle.CylinderMesh.Scale-V3.N(.1,0,.1)
- end
- else
- puddle.Transparency = 0
- end
- end
- end)
- -- Nametag
- coroutine.wrap(function()
- while true do
- swait(15)
- hum.Health = hum.Health + 15
- local chance = 200
- if(Bloodied/4 > 25)then
- chance = Bloodied/4
- elseif(Bloodied/2 ~= 0)then
- chance = 25
- end
- end
- end)()
- -- Animation Loop
- runService:BindToRenderStep("N_Animations",Enum.RenderPriority.Character.Value + 1,function()
- sine=sine+change
- if(not ThrownKnife)then Decal.Transparency = 1-(Bloodied/150) end
- local twitchVal = M.RNG(1,400)
- if(Bloodied >= BloodlustBlood)then
- local twitchVal = M.RNG(1,100)
- end
- if(twitchVal == 1 and not Twitch and time()-lastTwitch > 1.5)then
- Twitch = true
- lastTwitch = time()
- end
- if(time()-lastTwitch > M.RNG(50,100)/100)then
- Twitch = false
- end
- if(Decal.Transparency <= 0.7)then
- if(time()-BloodTime > .25)then
- if(not ThrownKnife)then
- BloodDrop((Handle.CFrame*CF.N(0,1.5,0)).p,(CF.N(Handle.CFrame.p)*CF.N(0,-25,0)).p,8)
- BloodTime = time()
- Bloodied = Bloodied-1
- end
- end
- end
- if(Bloodied > BloodlustBlood)then
- if(not Twitch)then
- Music.Pitch = 0.85
- end
- WalkSpeed = 16
- else
- if(not Twitch)then
- Music.Pitch = 1
- end
- WalkSpeed = 6
- end
- hum.WalkSpeed = WalkSpeed
- if(Twitch)then
- Music.Pitch = 0.65
- NK.C1 = clerp(NK.C1,CF.A(-M.R(15+M.RNG(0,25)),-M.R(25+M.RNG(-15,15)/15),0),.5)
- else
- NK.C1 = clerp(NK.C1,CF.N(),.3)
- end
- local wsVal = 5 / (hum.WalkSpeed / 16)
- if(CheckState(root) == 'Walk')then
- -- Walk anim
- change = 2/3
- RH.C1 = clerp(RH.C1,CF.N(0,.975-.1*M.S(sine/wsVal),-.1*M.C(sine/9)) *CF.A(M.R(25+35*M.C(sine/wsVal)),0,0),.6)
- LH.C1 = clerp(LH.C1,CF.N(0,.975+.1*M.S(sine/wsVal),.1*M.C(sine/9))*CF.A(M.R(25+35*-M.C(sine/wsVal)),0,0),.6)
- else
- RH.C1 = clerp(RH.C1,CF.N(0,1,0),.3)
- LH.C1 = clerp(LH.C1,CF.N(0,1,0),.3)
- end
- if(neutralAnims)then
- if(CheckState(root) == 'Idle')then
- -- Idle anim
- NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
- RH.C0 = clerp(RH.C0,CF.N(.5,-1-.1*M.C(time()),0),.1)
- LH.C0 = clerp(LH.C0,CF.N(-.5,-1-.1*M.C(time()),0),.1)
- RJ.C0 = clerp(RJ.C0,CF.N(0,0+.1*M.C(time()),0),.1)
- LS.C0 = clerp(LS.C0,CF.N(-1.5,.5,0)*CF.A(0,0,M.R(-12)-.1*M.C(time())),.1)
- RS.C0 = clerp(RS.C0,CF.N(1.5,.5,0)*CF.A(0,0,M.R(6+6*M.C(time()))),.1)
- elseif(CheckState(root) == 'Walk')then
- NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
- RJ.C0 = clerp(RJ.C0,CF.N(0,0+.1*M.C(sine/(wsVal/2)),0),.3)
- RH.C0 = clerp(RH.C0,RHD*CF.N(0,0-.1*M.C(sine/(wsVal/2)),0),.3)
- LH.C0 = clerp(LH.C0,LHD*CF.N(0,0-.1*M.C(sine/(wsVal/2)),0),.3)
- RS.C0 = clerp(RS.C0,RSD*CF.A(M.R(0+25*M.C(sine/wsVal)),0,0),.3)
- LS.C0 = clerp(LS.C0,LSD*CF.A(M.R(0+25*-M.C(sine/wsVal)),0,0),.3)
- elseif(CheckState(root) == 'Jump')then
- RJ.C0 = clerp(RJ.C0,CFrame.new(3.20309751e-13, 0.00628912123, 1.38760515e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496),0.1)
- LH.C0 = clerp(LH.C0,CFrame.new(-0.496501386, -0.990816772, 0.0216115266, 0.999877751, -4.38656264e-11, 0.0156119959, -9.81397825e-05, 0.999980271, 0.0062854127, -0.0156116877, -0.00628618058, 0.999858022),0.1)
- RH.C0 = clerp(RH.C0,CFrame.new(0.951985836, -0.878642321, 0.00768248737, 0.807899356, 0.589113057, 0.0156119959, -0.58925271, 0.80792439, 0.0062854127, -0.0089104902, -0.0142773949, 0.999858022),0.1)
- LS.C0 = clerp(LS.C0,CFrame.new(-1.46314824, 0.504732132, -0.0780580789, 0.996319413, 0.084279716, 0.0156119959, -0.0843861476, 0.996413291, 0.0062854127, -0.0150262676, -0.00757971918, 0.999858022),0.1)
- RS.C0 = clerp(RS.C0,CFrame.new(1.41746354, 0.490631759, 0.0355827622, 0.983217537, -0.181765735, 0.0156119959, 0.181687862, 0.98333621, 0.0062854127, -0.0164943133, -0.0033434222, 0.999858022),0.1)
- NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
- elseif(CheckState(root) == 'Fall')then
- RJ.C0 = clerp(RJ.C0,CFrame.new(3.20309751e-13, 0.00628912123, 1.38760515e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496),0.1)
- LH.C0 = clerp(LH.C0,CFrame.new(-0.496501386, -0.990816772, 0.0216115266, 0.999877751, -4.38656264e-11, 0.0156119959, -9.81397825e-05, 0.999980271, 0.0062854127, -0.0156116877, -0.00628618058, 0.999858022),0.1)
- RH.C0 = clerp(RH.C0,CFrame.new(0.951985836, -0.878642321, 0.00768248737, 0.807899356, 0.589113057, 0.0156119959, -0.58925271, 0.80792439, 0.0062854127, -0.0089104902, -0.0142773949, 0.999858022),0.1)
- LS.C0 = clerp(LS.C0,CFrame.new(-1.39294851, 0.589963198, 0.0808894783, 0.976439953, 0.21526964, 0.0149493031, -0.210034028, 0.932227492, 0.294682175, 0.0494999699, -0.29087922, 0.955478072),0.1)
- RS.C0 = clerp(RS.C0,CFrame.new(1.29713261, 0.551729858, 0.0523524433, 0.920970082, -0.389345646, 0.0149465948, 0.368037164, 0.88187921, 0.294682831, -0.127914533, -0.265893161, 0.955477953),0.1)
- NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
- end
- end
- end)
- -- Died event
- hum.Died:connect(function() -- When the player dies
- UnbindLoops() -- Unbind all of the loops used
- end)
- -- Everything else
- function GetTorso(char)
- return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
- end
- function Projectile(what)
- what.Archivable = true
- local projectile = what:Clone()
- projectile.Parent = char
- projectile.Transparency = 0
- projectile.Name = "Projectile"
- projectile.CFrame = CFrame.new(head.CFrame.p,mouse.Hit.p)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(-90))
- projectile.Anchored = true
- projectile.Velocity = Vector3.new(0,0,0)
- projectile.RotVelocity = Vector3.new(0,0,0)
- projectile.Anchored = false
- --character.Head.Position).unit
- local Velocity = (mouse.Hit.p-head.CFrame.p).unit
- projectile.Velocity = Velocity*160
- local force = Instance.new("BodyForce")
- force.force = Vector3.new(0, 196.2, 0) * projectile:GetMass() * .8
- force.Parent = projectile
- local touchie
- coroutine.wrap(function()
- repeat wait() KnifePosition = projectile.CFrame until not projectile or not projectile.Parent or not ThrownKnife
- projectile:destroy()
- print'knifu'
- ThrownKnife = false
- Attack = false
- Handle.Transparency = 0
- KnifePosition = CF.N(0,0,0)
- end)()
- touchie = projectile.Touched:connect(function(h)
- if(not char:IsAncestorOf(h))then
- force:destroy()
- projectile.Velocity = V3.N(0,0,0)
- touchie:disconnect()
- local rag = Ragdoll(h.Parent)
- swait()
- local name = (h.Name == 'Head' and 'FakeHead' or h.Name)
- local asd = CF.N((projectile.CFrame.p + h.CFrame.p) * .5)
- if(not h.Parent and rag and rag:FindFirstChild(name,true))then h = rag:FindFirstChild(name,true) end
- local C0 = projectile.CFrame:inverse() * asd
- if(not h.Anchored)then
- local w = NewInstance('Weld',char,{Part0=projectile,Part1=h,C0 = C0,C1=h.CFrame:inverse() * asd})
- else
- projectile.Anchored = true
- end
- if(rag)then
- Bloodied = Bloodied + 30
- local bloodie = NewInstance('Part',rag,{Anchored = false,CanCollide=false,Size=V3.N(.02,.02,.02),Transparency=1})
- local w = NewInstance('Weld',rag,{Part0=bloodie,Part1=h,C0 = C0,C1=h.CFrame:inverse() * asd})
- coroutine.wrap(function() repeat wait(M.RNG(2,10)/100)
- local spread = V3.N(M.RNG(-85,85)/100,M.RNG(-85,85)/100,M.RNG(-85,85)/100)
- BloodDrop(bloodie.CFrame*CF.N(0,.02,0).p,bloodie.CFrame * CF.N(0,100,0).p+spread,10)
- until not bloodie or not bloodie.Parent or not rag or not rag.Parent end)()
- repeat wait() until not ThrownKnife
- delay(5, function()
- if(rag)then
- rag:destroy()
- end
- end)
- end
- end
- end)
- end
- function Decapitate(target)
- if(target and target ~= char and GetTorso(target) and target:FindFirstChildOfClass'Humanoid' and target:FindFirstChildOfClass'Humanoid'.Name ~= 'Corpse' and target:FindFirstChildOfClass'Humanoid'.Health > 0 and target:FindFirstChild'Head')then
- --BloodPuddle(start,direction,range,maxSize)
- Bloodied = Bloodied + 60
- target.Archivable = true
- local Clone = target:Clone()
- target:destroy()
- Clone.Parent = workspace
- local FakeHead = Clone.Head:Clone()
- Clone.Head:destroy()
- Clone:FindFirstChildOfClass'Humanoid'.PlatformStand = true
- Clone.Name = 'Ragdoll of '..target.Name
- FakeHead.Name = 'FakeHead'
- FakeHead.Parent = Clone
- Clone:FindFirstChildOfClass'Humanoid'.Name = 'Corpse'
- local head = FakeHead
- local torso = GetTorso(Clone)
- local cut = FX(756072587)
- local bv = Instance.new("BodyVelocity",torso)
- bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
- bv.velocity = CF.N(Handle.Position,torso.Position).lookVector*20
- bv.Name = "MOVE"
- game:service'Debris':AddItem(bv,0.2)
- local bv = Instance.new("BodyVelocity",FakeHead)
- bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
- bv.velocity = CF.N(Handle.Position,FakeHead.Position).lookVector*20
- bv.Name = "MOVE"
- game:service'Debris':AddItem(bv,0.2)
- game:service'Debris':AddItem(Clone,10)
- for i = 1, 500 do
- wait(M.RNG(2,10)/100)
- BloodDrop(torso.CFrame * CF.N(0,torso.Size.Y/2,0).p,(torso.CFrame * CF.N(0,torso.Size.Y,0)).p,10)
- BloodDrop(head.CFrame * CF.N(0,-.25,0).p,(head.CFrame * CF.N(0,-.7,0)).p,5)
- if not head or not torso or not Clone or not Clone.Parent or not Clone.Parent.Parent then break end
- end
- end
- end
- function Ragdoll(target,bloodPos)
- if(target and target ~= char and GetTorso(target) and target:FindFirstChildOfClass'Humanoid' and target:FindFirstChildOfClass'Humanoid'.Name ~= 'Corpse' and target:FindFirstChildOfClass'Humanoid'.Health > 0 and target:FindFirstChild'Head')then
- --BloodPuddle(start,direction,range,maxSize)
- target.Archivable = true
- local Clone = target:Clone()
- local torso = GetTorso(Clone)
- target:destroy()
- Clone.Parent = workspace
- Clone:FindFirstChildOfClass'Humanoid'.PlatformStand = true
- Clone.Name = 'Ragdoll of '..target.Name
- Clone:FindFirstChildOfClass'Humanoid'.Name = 'Corpse'
- local fHead = Clone.Head:Clone()
- Clone.Head:destroy()
- fHead.Name = 'FakeHead'
- fHead.Parent = Clone
- NewInstance("Motor6D",torso,{Name='Neck',Part0=torso,Part1=fHead,C0 = HD})
- return Clone;
- end
- end
- function DealDamage(who,minDam,maxDam,Knock,Type)
- if(who)then
- local hum = who:FindFirstChildOfClass'Humanoid'
- local Damage = M.RNG(minDam,maxDam)
- local canHit = true
- if(hum)then
- for _, p in pairs(Hit) do
- if p[1] == hum then
- if(time() - p[2] < 0.1) then
- canHit = false
- else
- Hit[_] = nil
- end
- end
- end
- if(canHit)then
- if(hum.Health >= math.huge)then
- who:BreakJoints()
- else
- local player = S.Players:GetPlayerFromCharacter(who)
- if(not player or not Teamed[player])then
- if(Type == "Fire")then
- --idk..
- else
- local c = Instance.new("ObjectValue",hum)
- c.Name = "creator"
- c.Value = plr
- game:service'Debris':AddItem(c,0.35)
- hum.Health = hum.Health - Damage
- if(Type == 'Knockback' and GetTorso(who))then
- local angle = GetTorso(who).Position - root.Position + Vector3.new(0, 0, 0).unit
- local body = NewInstance('BodyVelocity',GetTorso(who),{
- P = 500,
- maxForce = V3.N(math.huge,0,math.huge),
- velocity = root.CFrame.lookVector * Knock + root.Velocity / 1.05
- })
- game:service'Debris':AddItem(body,.5)
- elseif(Type == 'Knockdown' and GetTorso(who))then
- local rek = GetTorso(who)
- print(rek)
- hum.PlatformStand = true
- delay(1,function()
- hum.PlatformStand = false
- end)
- local angle = (GetTorso(who).Position - (root.Position + Vector3.new(0, 0, 0))).unit
- local bodvol = NewInstance("BodyVelocity",rek,{
- velocity = angle * Knock,
- P = 5000,
- maxForce = Vector3.new(8e+003, 8e+003, 8e+003),
- })
- local rl = NewInstance("BodyAngularVelocity",rek,{
- P = 3000,
- maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000,
- angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)),
- })
- game:GetService("Debris"):AddItem(bodvol, .5)
- game:GetService("Debris"):AddItem(rl, .5)
- end
- end
- end
- end
- table.insert(Hit,{hum,time()})
- end
- end
- end
- end
- function MagniDamage(pos,radius,mindamage,maxdamage,knockback,damagetype)
- local Recursive
- Recursive = function(whom)
- for _,c in next, whom:children() do
- local hum = c:FindFirstChildOfClass'Humanoid'
- local hed = c:FindFirstChild'Torso' or c:FindFirstChild'UpperTorso' or c:FindFirstChild'LowerTorso'
- if(hum and hed)then
- local mag = (hed.CFrame.p - pos).magnitude
- if(mag <= radius and c ~= char)then
- DealDamage(c,mindamage,maxdamage,knockback,damagetype)
- end
- end
- Recursive(c)
- end
- end
- Recursive(workspace)
- end
- function MagniHeal(pos,radius,heal,needsTeamed)
- for _,v in next, workspace:GetDescendants() do
- local player = S.Players:GetPlayerFromCharacter(v)
- local hum = v:FindFirstChildOfClass'Humanoid'
- if(hum and v:IsA'Model')then
- if(not needsTeamed or player and (not plr.Neutral and player.TeamColor == plr.TeamColor))then
- local pp = v.PrimaryPart or v:FindFirstChild'Torso' or v:FindFirstChild'UpperTorso' or v:FindFirstChild'LowerTorso'
- if(pp and (pp.CFrame.p-pos).magnitude <= radius)then
- hum.Health = hum.Health + heal
- end
- end
- end
- end
- end
- Debounces:New('how2use',1) -- name, cooldown
- function TestDebounce()
- if(Debounces:Get('how2use').Usable)then
- -- code
- Debounces:Get('how2use'):Use() -- use it up
- end
- end
- function Throw()
- Attack = true
- neutralAnims = false
- for i = 0, 0.5, 0.01 do
- swait()
- RJ.C0 = clerp(RJ.C0,CFrame.new(3.20297608e-13, 0.00628888281, 1.38610631e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496),i)
- LH.C0 = clerp(LH.C0,CFrame.new(-0.496501386, -0.990817726, 0.0216115303, 0.999877751, -4.38656264e-11, 0.0156119959, -9.81397825e-05, 0.999980271, 0.0062854127, -0.0156116877, -0.00628618058, 0.999858022),i)
- RH.C0 = clerp(RH.C0,CFrame.new(0.498532087, -0.990986288, 0.0154690417, 0.999877751, -4.38656264e-11, 0.0156119959, -9.81397825e-05, 0.999980271, 0.0062854127, -0.0156116877, -0.00628618058, 0.999858022),i)
- LS.C0 = clerp(LS.C0,CFrame.new(-1.46255744, 0.505245924, -0.00366198737, 0.996415496, 0.083136864, 0.0156119959, -0.0832431838, 0.996509492, 0.0062854127, -0.0150349522, -0.007562479, 0.999858022),i)
- RS.C0 = clerp(RS.C0,CFrame.new(1.45461845, 0.798322797, -0.0251020491, 0.992853343, 0.114112578, -0.0349269882, 0.119324632, -0.944872856, 0.304921478, 0.00179381669, -0.306909949, -0.951736629),i)
- NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),i)
- end
- wait(.25)
- for i = 0, 0.5, 0.1 do
- swait()
- RJ.C0 = clerp(RJ.C0,CFrame.new(3.20297608e-13, 0.00628888281, 1.38610631e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496),i)
- LH.C0 = clerp(LH.C0,CFrame.new(-0.496501386, -0.990817726, 0.0216115303, 0.999877751, -4.38656264e-11, 0.0156119959, -9.81397825e-05, 0.999980271, 0.0062854127, -0.0156116877, -0.00628618058, 0.999858022),i)
- RH.C0 = clerp(RH.C0,CFrame.new(0.498532087, -0.990986288, 0.0154690417, 0.999877751, -4.38656264e-11, 0.0156119959, -9.81397825e-05, 0.999980271, 0.0062854127, -0.0156116877, -0.00628618058, 0.999858022),i)
- LS.C0 = clerp(LS.C0,CFrame.new(-1.46255744, 0.505245924, -0.00366198737, 0.996415496, 0.083136864, 0.0156119959, -0.0832431838, 0.996509492, 0.0062854127, -0.0150349522, -0.007562479, 0.999858022),i)
- RS.C0 = clerp(RS.C0,CFrame.new(1.47101879, 0.662136793, -0.0487503409, 0.99285394, -0.0636505187, 0.100939959, 0.119318806, 0.516643643, -0.847845852, 0.00181584992, 0.853831172, 0.520546317),i)
- NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),i)
- end
- ThrownKnife = true
- Handle.Transparency = 1
- Projectile(Handle)
- Decal.Transparency = 1
- wait(.5)
- neutralAnims = true
- end
- function ClickCombo()
- Attack = true
- neutralAnims = false
- for i = 0, 1, 0.1 do
- swait()
- RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0288643427, 0.00628663553, 0.0650177076, 0.795387626, -0.00380940945, -0.606089413, 0, 0.99998033, -0.0062851035, 0.606101394, 0.00499909231, 0.79537189),0.3)
- LH.C0 = clerp(LH.C0,CFrame.new(-0.636930108, -0.990812421, 0.0222794991, 0.785828114, 0, 0.618445039, -0.00388699071, 0.99998033, 0.00493901037, -0.61843282, -0.0062851035, 0.785812557),0.3)
- RH.C0 = clerp(RH.C0,CFrame.new(0.52050519, -0.991459012, -0.0594233908, 0.785828114, 0, 0.618445039, -0.00388699071, 0.99998033, 0.00493901037, -0.61843282, -0.0062851035, 0.785812557),0.3)
- LS.C0 = clerp(LS.C0,CFrame.new(-1.3529017, 0.445256352, -0.140841246, 0.946949303, 0.32137382, 0.00244083256, -0.0499903522, 0.154793665, -0.986681402, -0.317471415, 0.934215069, 0.162647352),0.3)
- RS.C0 = clerp(RS.C0,CFrame.new(1.27564776, 0.466243029, 0.284559131, 0.129886121, -0.885094404, -0.446920156, 0.991494656, 0.112184346, 0.0659796819, -0.00826080143, -0.451688766, 0.892137289),0.3)
- NK.C0 = clerp(NK.C0,CFrame.new(-0.0194674022, 1.49851632, -0.0826113448, 0.795387626, -0.0348471925, 0.605098784, -0.00380940945, 0.998038769, 0.0624837019, -0.606089413, -0.0520038158, 0.793694794),0.3)
- end
- local swoosh = coroutine.wrap(FX)(1306070008,1,M.RNG(95,125)/100)
- Handle.CanCollide = true
- local touched = Handle.Touched:connect(function(t)
- Decapitate(t.Parent)
- end)
- for i = 0, 1, 0.05 do
- swait()
- if((root.Velocity * V3.N(1, 0, 1)).magnitude > 0.3 and WalkSpeed == 16)then
- root.CFrame = root.CFrame*CF.N(0,0,-1)
- end
- RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0220096968, 0.00628673984, -0.0231647622, 0.894043028, 0.00281593157, 0.447972536, 0, 0.99998033, -0.00628582342, -0.447981387, 0.00561979692, 0.894025445),0.3)
- LH.C0 = clerp(LH.C0,CFrame.new(-0.526260316, -0.99155879, -0.0964359194, 0.900927901, 0, -0.433968931, 0.00272785197, 0.99998033, 0.00566307362, 0.433960348, -0.00628582342, 0.900910139),0.3)
- RH.C0 = clerp(RH.C0,CFrame.new(0.494664222, -0.99110806, -0.00358221633, 0.900927901, 0, -0.433968931, 0.00272785197, 0.99998033, 0.00566307362, 0.433960348, -0.00628582342, 0.900910139),0.3)
- LS.C0 = clerp(LS.C0,CFrame.new(-1.35400736, 0.608840644, 0.230960667, 0.920430303, 0.226487458, 0.318608999, -0.244053409, 0.969633698, 0.0157693904, -0.305362433, -0.092272222, 0.947755098),0.3)
- RS.C0 = clerp(RS.C0,CFrame.new(1.13865554, 0.477464586, -0.481917799, 0.129889846, 0.658138037, 0.7416085, 0.99149406, -0.0799742565, -0.102683425, -0.0082702823, 0.748637795, -0.662927747),0.3)
- NK.C0 = clerp(NK.C0,CFrame.new(0.0115462095, 1.49914026, 0.0166844055, 0.894043028, 0.0257562418, -0.447240323, 0.00281593157, 0.998003125, 0.0631033778, 0.447972536, -0.0576765276, 0.892185211),0.3)
- HW.C0 = clerp(HW.C0,CFrame.new(0.0201188885, -1.41869056, -0.559928358, -1.8030405e-06, -3.1888485e-06, 1.00000012, -0.698006153, -0.716091871, -3.54647636e-06, 0.716091871, -0.698006153, -9.38773155e-07)*BeheadHold,0.3)
- end
- wait(.1)
- Handle.CanCollide = false
- touched:disconnect()
- coroutine.wrap(function()
- for i = 0, 1, 0.1 do
- swait()
- HW.C0 = Hold
- end
- end)()
- neutralAnims = true
- Attack = false
- end
- function AttemptGetKnife()
- if((torso.CFrame.p-KnifePosition.p).magnitude < 6)then
- ThrownKnife = false
- end
- end
- mouse.Button1Down:connect(function()
- if(not ThrownKnife)then
- if(Attack)then return end
- ClickCombo()
- else
- AttemptGetKnife()
- end
- end)
- mouse.KeyDown:connect(function(k)
- if(Attack)then return end
- if(k == "t")then
- Throw()
- elseif(k == 'm')then
- if(Music.Volume ~= 0)then
- Music.Volume =0
- else
- Music.Volume = Sounds.Psycho.Volume
- end
- elseif(k == ';')then
- if(Mesh.MeshId ~= 'http://www.roblox.com/asset/?id=123248347')then
- Mesh.MeshId = 'http://www.roblox.com/asset/?id=123248347'
- Mesh.TextureId = 'http://www.roblox.com/asset/?id=123248449'
- Mesh.Scale = V3.N(.4,.4,.4)
- Hold = CF.N(0,-1,-1.35)*CF.A(M.R(-90),0,0)
- BeheadHold = CF.N(0,.5,0)*CF.A(0,M.R(-90),0)
- else
- Mesh.MeshId='rbxassetid://471401475'
- Mesh.TextureId='rbxassetid://471401476'
- Mesh.Scale = V3.N(.01,.01,.01)
- Hold = CF.N(0,-1,-1)*CF.A(M.R(-90),M.R(90),0)
- BeheadHold = CF.A(0,0,0)
- end
- HW.C0 = Hold
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement