Advertisement
Vintage-Furry

The Murderer

Aug 5th, 2018
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.77 KB | None | 0 0
  1. --https://github.com/Mokiros/roblox-FE-compatibility
  2. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  3. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  4. local RealPlayer = Player
  5. do print("FE Compatibility code by Mokiros")local a=RealPlayer;script.Parent=a.Character;local b=Instance.new("RemoteEvent")b.Name="UserInput_Event"local function c()local d={_fakeEvent=true,Functions={},Connect=function(self,e)table.insert(self.Functions,e)end}d.connect=d.Connect;return d end;local f={Target=nil,Hit=CFrame.new(),KeyUp=c(),KeyDown=c(),Button1Up=c(),Button1Down=c(),Button2Up=c(),Button2Down=c()}local g={InputBegan=c(),InputEnded=c()}local CAS={Actions={},BindAction=function(self,h,i,j,...)CAS.Actions[h]=i and{Name=h,Function=i,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function k(self,l,...)local d=f[l]if d and d._fakeEvent then for m,e in pairs(d.Functions)do e(...)end end end;f.TrigEvent=k;g.TrigEvent=k;b.OnServerEvent:Connect(function(n,o)if n~=a then return end;f.Target=o.Target;f.Hit=o.Hit;if not o.isMouse then local p=o.UserInputState==Enum.UserInputState.Begin;if o.UserInputType==Enum.UserInputType.MouseButton1 then return f:TrigEvent(p and"Button1Down"or"Button1Up")end;if o.UserInputType==Enum.UserInputType.MouseButton2 then return f:TrigEvent(p and"Button2Down"or"Button2Up")end;for m,d in pairs(CAS.Actions)do for m,q in pairs(d.Keys)do if q==o.KeyCode then d.Function(d.Name,o.UserInputState,o)end end end;f:TrigEvent(p and"KeyDown"or"KeyUp",o.KeyCode.Name:lower())g:TrigEvent(p and"InputBegan"or"InputEnded",o,false)end end)b.Parent=NLS([==[local a=game:GetService("Players").LocalPlayer;local b=script:WaitForChild("UserInput_Event")local c=a:GetMouse()local d=game:GetService("UserInputService")local e=function(f,g)if g then return end;b:FireServer({KeyCode=f.KeyCode,UserInputType=f.UserInputType,UserInputState=f.UserInputState,Hit=c.Hit,Target=c.Target})end;d.InputBegan:Connect(e)d.InputEnded:Connect(e)local h,i;while wait(1/30)do if h~=c.Hit or i~=c.Target then h,i=c.Hit,c.Target;b:FireServer({isMouse=true,Target=i,Hit=h})end end]==],Player.Character)local r=game;local s={__index=function(self,q)local t=rawget(self,"_RealService")if t then return typeof(t[q])=="function"and function(m,...)return t[q](t,...)end or t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u end end}local function v(d,w)d._RealService=typeof(w)=="string"and r:GetService(w)or w;return setmetatable(d,s)end;local x={GetService=function(self,t)return self[t]end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;x.RunService=v({RenderStepped=r:GetService("RunService").Heartbeat,BindToRenderStep=function(self,h,m,i)self._btrs[h]=self.Heartbeat:Connect(i)end,UnbindFromRenderStep=function(self,h)self._btrs[h]:Disconnect()end},"RunService")setmetatable(x,s)game,owner=x,x.Players.LocalPlayer end
  6. -- Created by Nebula_Zorua
  7. -- Youtube channel: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA
  8. -- Discord account: Nebula the Zorua#6666
  9.  
  10. -- Credit to Shackluster for the inspiration for this
  11. -- I might update this in the future.
  12.  
  13. --[[
  14. CONTROLS:
  15. Left Mouse Button Click - Attack
  16. Left Mouse Button Click - Get knife back once thrown (You must be near the thrown knife)
  17. T - Throw (You cant attack until you get it back with the above control)
  18. ; - Machete
  19. TO BECOME BLOODLUSTFUL:
  20. Kill 12 people/dummies quickly. You must keep killing to keep the bloodlust.
  21. Once you're bloodlustful, you charge forward when you attack
  22. ]]
  23.  
  24. --[[
  25. TO EDITORS/RESKINNERS:
  26. You can edit BloodColor, BloodMaterial, and BloodlustBlood to change the color of the blood, material of the blood, and the
  27. number of blood you need to become bloodlustful. You get 30 blood with each kill.
  28. ]]
  29.  
  30. wait()
  31. script.Parent = nil
  32. local S = setmetatable({},{
  33. __index = function(self,index)
  34. local service = game:GetService(index)
  35. if(service)then
  36. self[index] = service
  37. return service
  38. end
  39. end
  40. })
  41.  
  42.  
  43. local plr = S.Players.LocalPlayer
  44. local char = plr.Character
  45. local hum = char.Humanoid
  46. local rarm = char["Right Arm"]
  47. local larm= char["Left Arm"]
  48. local rleg= char["Right Leg"]
  49. local lleg = char["Left Leg"]
  50. local root = char:FindFirstChild'HumanoidRootPart'
  51. local torso = char.Torso
  52. local head = char.Head
  53. local sine = 0;
  54. local lastTwitch = 0;
  55. local combo = 1;
  56. local ThrownKnife = false
  57. local KnifePosition = CFrame.new(0,0,0)
  58. local lastClick = time()
  59. local change = 1;
  60. local runService = S.RunService
  61. local mouse = plr:GetMouse()
  62. local Attack = false
  63. local neutralAnims = true
  64. local WalkSine = 0
  65. local Debounces = {Debounces={}}
  66. local Hit = {}
  67. local BloodPuddles = {}
  68. local Bloodied = 0
  69. local Teamed = {}
  70. local WalkSpeed = 6
  71. hum.WalkSpeed = WalkSpeed
  72. local BloodColor = BrickColor.new'Maroon'
  73. local BloodMaterial = Enum.Material.Granite
  74. local BloodTime = time()
  75. local Twitch = false
  76. local BloodlustBlood = 350
  77. hum.DisplayDistanceType = "None"
  78. hum.MaxHealth = 3000
  79. hum.Health = 3000
  80.  
  81. function Debounces:New(name,cooldown)
  82. local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
  83. setmetatable(aaaaa,{__index = Debounces})
  84. Debounces.Debounces[name] = aaaaa
  85. return aaaaa
  86. end
  87.  
  88. function Debounces:Use(overrideUsable)
  89. assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
  90. if(self.Usable or overrideUsable)then
  91. self.Usable = false
  92. self.CoolingDown = true
  93. local LastUse = time()
  94. self.LastUse = LastUse
  95. delay(self.Cooldown or 2,function()
  96. if(self.LastUse == LastUse)then
  97. self.CoolingDown = false
  98. self.Usable = true
  99. end
  100. end)
  101. end
  102. end
  103.  
  104. function Debounces:Get(name)
  105. assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
  106. for i,v in next, Debounces.Debounces do
  107. if(i == name)then
  108. return v;
  109. end
  110. end
  111. end
  112.  
  113. function Debounces:GetProgressPercentage()
  114. assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
  115. if(self.CoolingDown and not self.Usable)then
  116. return math.max(
  117. math.floor(
  118. (
  119. (time()-self.LastUse)/self.Cooldown or 2
  120. )*100
  121. )
  122. )
  123. else
  124. return 100
  125. end
  126. end
  127.  
  128. local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
  129. local V3 = {N=Vector3.new}
  130. local M = {C=math.cos,R=math.rad,S=math.sin,P=math.pi,RNG=math.random,MRS=math.randomseed,H=math.huge}
  131.  
  132. local Hold = CF.N(0,-1,-1)*CF.A(M.R(-90),M.R(90),0)
  133. local BeheadHold = CF.A(0,0,0)
  134. local Effects,Sounds = {},{};
  135. --Stop animations
  136. for _,v in next, hum:GetPlayingAnimationTracks() do
  137. v:Stop();
  138. end
  139.  
  140. pcall(game.Destroy,char:FindFirstChild'Animate')
  141. pcall(game.Destroy,hum:FindFirstChild'Animator')
  142.  
  143. -- Sounds
  144. Sounds['Wet'] = {Id=256738023,Loop=false,Pitch=1}
  145. Sounds['Swoosh1'] = {Id=320557353,Loop=false,Pitch=1,Volume=6}
  146. Sounds['Swoosh2'] = {Id=320557382,Loop=false,Pitch=1,Volume=6}
  147. Sounds['Swoosh3'] = {Id=320557413,Loop=false,Pitch=1,Volume=6}
  148. Sounds['Swoosh4'] = {Id=320557453,Loop=false,Pitch=1,Volume=6}
  149. Sounds['Swoosh5'] = {Id=320557487,Loop=false,Pitch=1,Volume=6}
  150. Sounds['Swoosh6'] = {Id=320557537,Loop=false,Pitch=1,Volume=6}
  151. Sounds['Swoosh7'] = {Id=320557563,Loop=false,Pitch=1,Volume=6}
  152. Sounds['Swoosh8'] = {Id=320557518,Loop=false,Pitch=1,Volume=6}
  153. Sounds['SmallBoom'] = {Id=341336485,Loop=false,Volume=5,Pitch=1}
  154. Sounds['ChaosBuster'] = {Id=333534812,Loop=false,Volume=5,Pitch=0.75}
  155. Sounds['Magic'] = {Id=315743350,Loop=false,Volume=5,Pitch=1}
  156. Sounds['ShrekRemix'] = {Id=163306929,Loop=true,Pitch=1,Volume = 4}
  157. Sounds['CreoDimension'] = {Id=927529620,Loop=true,Pitch=1,Volume=4}
  158. Sounds['BlackBlizzard'] = {Id=657626121,Loop=true,Pitch=1,Volume=4}
  159. Sounds['ColbreakzFantasy'] = {Id=876981900,Loop=true,Pitch=1,Volume=4}
  160. Sounds['NeflCrystals'] = {Id=340106355,Loop=true,Pitch=1,Volume=4}
  161. Sounds['EvilMortyRemix'] = {Id=1057401232,Loop=true,Pitch=1,Volume=10}
  162. Sounds['Psycho'] = {Id=583415095,Loop=true,Pitch=1,Volume=10}
  163. -- Functions
  164. local NewInstance = function(instance,parent,properties)
  165. local inst = Instance.new(instance,parent)
  166. if(properties)then
  167. for i,v in next, properties do
  168. pcall(function() inst[i] = v end)
  169. end
  170. end
  171. return inst;
  172. end
  173.  
  174. ArtificialHB = NewInstance("BindableEvent", script,{
  175. Parent = script,
  176. Name = "Heartbeat",
  177. })
  178.  
  179. script:WaitForChild("Heartbeat")
  180.  
  181. frame = 1 / 60
  182. tf = 0
  183. allowframeloss = false
  184. tossremainder = false
  185. lastframe = tick()
  186. script.Heartbeat:Fire()
  187.  
  188. game:GetService("RunService").Heartbeat:connect(function(s, p)
  189. tf = tf + s
  190. if tf >= frame then
  191. if allowframeloss then
  192. script.Heartbeat:Fire()
  193. lastframe = tick()
  194. else
  195. for i = 1, math.floor(tf / frame) do
  196. script.Heartbeat:Fire()
  197. end
  198. lastframe = tick()
  199. end
  200. if tossremainder then
  201. tf = 0
  202. else
  203. tf = tf - frame * math.floor(tf / frame)
  204. end
  205. end
  206. end)
  207.  
  208. function swait(num)
  209. if num == 0 or num == nil then
  210. ArtificialHB.Event:wait()
  211. else
  212. for i = 0, num do
  213. ArtificialHB.Event:wait()
  214. end
  215. end
  216. end
  217.  
  218.  
  219. function clerp(startCF,endCF,alpha)
  220. return startCF:lerp(endCF, alpha)
  221. end
  222. local sndFromData = function(data,parent)
  223. assert(typeof(data) == 'table',"sndFromData's first argument must be a table!")
  224. 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})
  225. return snd;
  226. end
  227.  
  228. local FX = function(ID,vol,pitch,parent)
  229. local snd = NewInstance("Sound",parent or torso, {Pitch=pitch or 1, Volume = vol or 1,SoundId = "rbxassetid://"..ID})
  230. snd:Play()
  231. repeat wait() until snd.IsLoaded and snd.IsPlaying
  232. delay(snd.TimePosition+.5,function()
  233. snd:Stop()
  234. snd:Destroy()
  235. end)
  236. end
  237. function UnbindLoops()
  238. pcall(runService.UnbindFromRenderStep,runService,"N_Effects")
  239. pcall(runService.UnbindFromRenderStep,runService,"N_Animations")
  240. end;
  241.  
  242. UnbindLoops() -- Just so if the loops already exist from previously running a script using this template, there's no errors
  243.  
  244. -- Model
  245.  
  246. local Music = sndFromData(Sounds.Psycho,torso)
  247. Music:Play()
  248. Music.MaxDistance = 500
  249.  
  250. local Handle = NewInstance('Part',char,{CanCollide=false,Size=V3.N(0.46,3.82,0.37),Name='Handle'})
  251. local Mesh = NewInstance('SpecialMesh',Handle,{MeshId='rbxassetid://471401475',TextureId='rbxassetid://471401476',Scale=V3.N(.01,.01,.01)})
  252. local Decal = NewInstance('Decal',Handle,{Transparency=1,Texture='rbxassetid://116830967'})
  253. -- Joints and Lerp
  254. local LS = NewInstance('Motor',char,{Part0=torso,Part1=larm,C0 = CF.N(-1.5,0.5,0),C1 = CF.N(0,.5,0)})
  255. local RS = NewInstance('Motor',char,{Part0=torso,Part1=rarm,C0 = CF.N(1.5,0.5,0),C1 = CF.N(0,.5,0)})
  256. local NK = NewInstance('Motor',char,{Part0=torso,Part1=head,C0 = CF.N(0,1.5,0)})
  257. local LH = NewInstance('Motor',char,{Part0=torso,Part1=lleg,C0 = CF.N(-.5,-1,0),C1 = CF.N(0,1,0)})
  258. local RH = NewInstance('Motor',char,{Part0=torso,Part1=rleg,C0 = CF.N(.5,-1,0),C1 = CF.N(0,1,0)})
  259. local RJ = NewInstance('Motor',char,{Part0=root,Part1=torso})
  260. local HW = NewInstance('Motor',char,{Part0=rarm,Part1=Handle,C0 = CF.N(0,-1,-1)*CF.A(M.R(-90),M.R(90),0)})
  261.  
  262. -- watevr
  263.  
  264. -- Default C0s
  265. local LSD=LS.C0
  266. local RSD=RS.C0
  267. local HD=NK.C0
  268. local TD=RJ.C0
  269. local LHD=LH.C0
  270. local RHD=RH.C0
  271.  
  272. -- Check State
  273. function CheckState(rPart)
  274. if(rPart.Velocity.y > .35 and hum:GetState() == Enum.HumanoidStateType.Freefall)then
  275. return 'Jump';
  276. elseif(rPart.Velocity.y < -.35 and hum:GetState() == Enum.HumanoidStateType.Freefall)then
  277. return 'Fall';
  278. elseif(math.abs(rPart.Velocity.x) > 2 or math.abs(rPart.Velocity.z) > 2 and hum:GetState() ~= Enum.HumanoidStateType.Freefall)then
  279. return 'Walk';
  280. end
  281. return 'Idle';
  282. end
  283.  
  284. -- Effect Functions
  285. function SphereFX(duration,color,scale,pos,endScale)
  286. local rng = Instance.new("Part", char)
  287. rng.Anchored = true
  288. rng.BrickColor = color
  289. rng.CanCollide = false
  290. rng.FormFactor = 3
  291. rng.Name = "Ring"
  292. rng.Size = Vector3.new(1,1,1)
  293. rng.Transparency = 0
  294. rng.TopSurface = 0
  295. rng.BottomSurface = 0
  296. rng.CFrame = pos
  297. local rngm = Instance.new("SpecialMesh", rng)
  298. rngm.MeshType = "Sphere"
  299. rngm.Scale = scale
  300. table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
  301. return rng
  302. end
  303.  
  304. function BlastFX(duration,color,scale,pos,endScale)
  305. local rng = Instance.new("Part", char)
  306. rng.Anchored = true
  307. rng.BrickColor = color
  308. rng.CanCollide = false
  309. rng.FormFactor = 3
  310. rng.Name = "Ring"
  311. rng.Size = Vector3.new(1,1,1)
  312. rng.Transparency = 0
  313. rng.TopSurface = 0
  314. rng.BottomSurface = 0
  315. rng.CFrame = pos
  316. local rngm = Instance.new("SpecialMesh", rng)
  317. rngm.MeshType = "FileMesh"
  318. rngm.MeshId = 'rbxassetid://20329976'
  319. rngm.Scale = scale
  320. table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
  321. return rng
  322. end
  323.  
  324. function BlockFX(duration,color,scale,pos,endScale)
  325. local rng = Instance.new("Part", char)
  326. rng.Anchored = true
  327. rng.BrickColor = color
  328. rng.CanCollide = false
  329. rng.FormFactor = 3
  330. rng.Name = "Ring"
  331. rng.Size = Vector3.new(1,1,1)
  332. rng.Transparency = 0
  333. rng.TopSurface = 0
  334. rng.BottomSurface = 0
  335. rng.CFrame = pos
  336. local rngm = Instance.new("BlockMesh", rng)
  337. rngm.Scale = scale
  338. table.insert(Effects, {Frame = 0, Effect="Block", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
  339. return rng
  340. end
  341.  
  342. function LaserFX(duration,color,cframe,scale,endScale)
  343. local rng = Instance.new("Part", char)
  344. rng.Anchored = true
  345. rng.BrickColor = color
  346. rng.CanCollide = false
  347. rng.FormFactor = 3
  348. rng.Material = Enum.Material.Neon
  349. rng.Name = "Laser"
  350. rng.Size = Vector3.new(.5,.5,.5)
  351. rng.Transparency = 0
  352. rng.TopSurface = 0
  353. rng.BottomSurface = 0
  354. rng.CFrame = cframe
  355. local rngm = Instance.new("CylinderMesh", rng)
  356. rngm.Scale = scale
  357. table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = cframe})
  358. return rng
  359. end
  360.  
  361. function BloodDrop(pos,dir,maxsize)
  362. local owo = NewInstance("Part",char,{Material=BloodMaterial,BrickColor=BloodColor,Shape=Enum.PartType.Ball,Size=V3.N(.25,.25,.25), CanCollide = false})
  363. owo.CFrame=CF.N(pos,dir)
  364. local bv = Instance.new("BodyVelocity",owo)
  365. bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  366. 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
  367. bv.Name = "MOVE"
  368. game:service'Debris':AddItem(bv,0.05)
  369. local touch
  370. touch = owo.Touched:connect(function(hit)
  371. if(hit.Anchored==true)then
  372. touch:disconnect()
  373. BloodPuddle(owo.Position+V3.N(0,1,0),10,maxsize,owo)
  374. owo:destroy()
  375. end
  376. end)
  377. end
  378. function BloodPuddle(position,range,maxSize,where)
  379. local hit, pos, norm = workspace:FindPartOnRayWithIgnoreList(Ray.new(
  380. position,CF.N(position,position+V3.N(0,-1,0)).lookVector * range
  381. ),{where,char},false,true)
  382. if(hit)then
  383. if(BloodPuddles[hit])then
  384. BloodPuddles[hit].Frame = 0
  385. if(hit:FindFirstChild'CylinderMesh' and hit.CylinderMesh.Scale.Z < BloodPuddles[hit].MaxSize)then
  386. hit.CylinderMesh.Scale = hit.CylinderMesh.Scale + V3.N(.1,0,.1)
  387. end
  388. else
  389. 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'})
  390. local Cyl = NewInstance('CylinderMesh',Puddle,{Name='CylinderMesh'})
  391. BloodPuddles[Puddle] = {MaxSize=maxSize or 7,Frame=0}
  392. end
  393. end
  394. end
  395.  
  396. function ShatterFX(duration,color,scale,cframe)
  397. local rng = Instance.new("Part", char)
  398. rng.Anchored = true
  399. rng.BrickColor = color
  400. rng.CanCollide = false
  401. rng.FormFactor = 3
  402. rng.Name = "Ring"
  403. rng.Size = Vector3.new(1,1,1)
  404. rng.Transparency = 0
  405. rng.TopSurface = 0
  406. rng.BottomSurface = 0
  407. rng.CFrame = cframe * CF.fEA(M.RNG(-50, 50), M.RNG(-50, 50), M.RNG(-50, 50))
  408. local rngm = Instance.new("SpecialMesh", rng)
  409. rngm.Scale = scale
  410. rngm.MeshType = "Sphere"
  411. table.insert(Effects, {Frame = 0, Effect="Shatter", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale,Position=rng.CFrame})
  412. end
  413.  
  414. function RingFX(duration,color,scale,pos,endScale)
  415. local type = type
  416. local rng = Instance.new("Part", char)
  417. rng.Anchored = true
  418. rng.BrickColor = color
  419. rng.CanCollide = false
  420. rng.FormFactor = 3
  421. rng.Name = "Ring"
  422. rng.Size = Vector3.new(1,1,1)
  423. rng.Transparency = 0
  424. rng.TopSurface = 0
  425. rng.BottomSurface = 0
  426. rng.CFrame = pos
  427. local rngm = Instance.new("SpecialMesh", rng)
  428. rngm.MeshId = "rbxassetid://3270017"
  429. rngm.Scale = scale
  430. table.insert(Effects, {Frame = 0, Effect="Sphere", Duration = duration or 30, Part=rng, Mesh = rngm, Scale = scale, EndScale = endScale or scale*2, Position = pos})
  431. return rng
  432. end
  433.  
  434. function Shoot(StartCF,EndCF,Spread,Speed,Num,Color,Drop,MinDamage,MaxDamage)
  435. local Spread = V3.N(M.RNG(-Spread,Spread),M.RNG(-Spread,Spread),M.RNG(-Spread,Spread))
  436. local Start = StartCF.p
  437. local End = EndCF.p
  438. local SpreadPos = End + Spread
  439. local Look = CF.N((Start + SpreadPos) / 2, SpreadPos)
  440. local Count = Num
  441. spawn(function()
  442. repeat
  443. wait()
  444. local hit, pos = workspace:findPartOnRay(Ray.new(
  445. Start,(Look.lookVector).unit * Speed
  446. ),char,false,true)
  447. local dist = (Start-pos).magnitude
  448. local yScale = dist * (Speed / (Speed/2))
  449. local aa = CF.N((Start + pos) / 2, pos) * CFrame.Angles(1.57, 0, 0)
  450. LaserFX(25,Color,aa,Vector3.new(1,yScale,1),Vector3.new(-1,yScale,-1))
  451. Start = Start + Look.lookVector * Speed
  452. Look = Look * CF.A(M.R(Drop or -1),0,0)
  453. Count = Count - 1
  454.  
  455. if(hit)then
  456. Count = 0
  457. MagniDamage(pos,10,MinDamage,MaxDamage,0,'Normal')
  458. end
  459. if(Count <= 0)then
  460. local sphere = SphereFX(25,Color,Vector3.new(5,5,5),CF.N(pos),Vector3.new(15,15,15))
  461. 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))
  462. end
  463. until Count <= 0
  464. end)
  465. end
  466.  
  467. -- Effect Loop
  468.  
  469. runService:BindToRenderStep("N_Effects",Enum.RenderPriority.Character.Value + 2,function()
  470. for _,data in next, Effects do
  471. local frame,effect,duration = data.Frame,data.Effect,data.Duration
  472. local transparency = (frame / duration)
  473. local opacity = 1 - transparency
  474. if(frame > duration)then
  475. Effects[_] = nil
  476. end
  477. frame = frame + 1
  478. data.Frame = frame
  479. if(effect == 'Sphere')then
  480. local Part,Mesh,Scale,CF,eScale = data.Part,data.Mesh,data.Scale,data.Position,data.EndScale
  481. Mesh.Scale = Mesh.Scale:lerp(eScale, transparency/6)
  482. Part.Transparency = transparency
  483. if(frame > duration)then
  484. Part:destroy()
  485. end
  486. elseif(effect == 'Shatter')then
  487. local Part,Mesh,Scale,Position,Thingie,Thingie2,Inc = data.Part,
  488. data.Mesh,
  489. data.Scale,
  490. data.Position,
  491. (data.Thingie or 0),
  492. (data.Thingie2 or M.RNG(50, 100) / 100),
  493. (data.Inc or M.RNG() - M.RNG())
  494. Part.Transparency = transparency
  495. Position = Position * CF.N(0,Thingie2,0)
  496. Part.CFrame = Position * CF.fEA(Thingie,0,0)
  497. Thingie = Thingie + Inc
  498.  
  499. data.Position = Position
  500. data.Thingie = Thingie
  501. data.Thingie2 = Thingie2
  502. data.Inc = Inc
  503. elseif(effect == 'Block')then
  504. local Part,Mesh,Scale,CF,eScale = data.Part,data.Mesh,data.Scale,data.Position,data.EndScale
  505. Mesh.Scale = Mesh.Scale:lerp(eScale, transparency/6)
  506. Part.Transparency = transparency
  507. Part.CFrame = CF * CFrame.Angles(M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360)),M.R(M.RNG(-360,360)))
  508. if(frame > duration)then
  509. Part:destroy()
  510. end
  511. end
  512. end
  513. for puddle,data in next, BloodPuddles do
  514. if(puddle.Transparency > 0.9)then
  515. BloodPuddles[puddle] = nil
  516. puddle:destroy()
  517. end
  518. data.Frame = data.Frame + 1
  519. if(data.Frame > 105)then
  520. local trans = (data.Frame-105)/30
  521. puddle.Transparency = trans
  522. if(puddle:FindFirstChild'CylinderMesh' and puddle.CylinderMesh.Scale.Z > 0)then
  523. puddle.CylinderMesh.Scale = puddle.CylinderMesh.Scale-V3.N(.1,0,.1)
  524. end
  525. else
  526. puddle.Transparency = 0
  527. end
  528. end
  529. end)
  530.  
  531.  
  532. -- Nametag
  533. local naeeym2 = Instance.new("BillboardGui",char)
  534. naeeym2.AlwaysOnTop = true
  535. naeeym2.Size = UDim2.new(5,35,2,35)
  536. naeeym2.StudsOffset = Vector3.new(0,1,0)
  537. naeeym2.Adornee = head
  538. naeeym2.Name = "Name"
  539. naeeym2.PlayerToHideFrom = plr
  540. local tecks2 = Instance.new("TextLabel",naeeym2)
  541. tecks2.BackgroundTransparency = 1
  542. tecks2.TextScaled = true
  543. tecks2.BorderSizePixel = 0
  544. tecks2.Text = "Psychopathic Guest"
  545. tecks2.Font = "Antique"
  546. tecks2.TextSize = 30
  547. tecks2.TextStrokeTransparency = 0
  548. tecks2.TextColor3 = Color3.new(0.8,0,0)
  549. tecks2.TextStrokeColor3 = Color3.new(0,0,0)
  550. tecks2.Size = UDim2.new(1,0,0.5,0)
  551. tecks2.Parent = naeeym2
  552.  
  553. coroutine.wrap(function()
  554. while true do
  555. swait(15)
  556. hum.Health = hum.Health + 15
  557. local chance = 200
  558. if(Bloodied/4 > 25)then
  559. chance = Bloodied/4
  560. elseif(Bloodied/2 ~= 0)then
  561. chance = 25
  562. end
  563. local name = M.RNG(1,45)
  564. if(name == 1)then
  565. tecks2.Text = "M#rd@r3r"
  566. elseif(name == 2)then
  567. tecks2.Text = "Murder"
  568. elseif(name == 3)then
  569. tecks2.Text = "Murderrrrrrrr"
  570. elseif(M.RNG(1,chance) == math.ceil(chance/2))then
  571. tecks2.Text = "Hahahaahahhahahahahahahahaaha"
  572. else
  573. tecks2.Text = "Murderer"
  574. end
  575. if(tecks2.Text~="Hahahaahahhahahahahahahahaaha")then
  576. if(Bloodied > BloodlustBlood)then
  577. tecks2.Text = "Bloodlustful "..tecks2.Text
  578. else
  579. tecks2.Text = "Psychopathic "..tecks2.Text
  580. end
  581. end
  582. if(Twitch)then
  583. tecks2.Text = tecks2.Text:gsub("",string.char(M.RNG(1,127)))
  584. end
  585. end
  586. end)()
  587. -- Animation Loop
  588. runService:BindToRenderStep("N_Animations",Enum.RenderPriority.Character.Value + 1,function()
  589. sine=sine+change
  590. if(not ThrownKnife)then Decal.Transparency = 1-(Bloodied/150) end
  591. local twitchVal = M.RNG(1,400)
  592. if(Bloodied >= BloodlustBlood)then
  593. local twitchVal = M.RNG(1,100)
  594. end
  595. if(twitchVal == 1 and not Twitch and time()-lastTwitch > 1.5)then
  596. Twitch = true
  597. lastTwitch = time()
  598. end
  599. if(time()-lastTwitch > M.RNG(50,100)/100)then
  600. Twitch = false
  601. end
  602. if(Decal.Transparency <= 0.7)then
  603. if(time()-BloodTime > .25)then
  604. if(not ThrownKnife)then
  605. BloodDrop((Handle.CFrame*CF.N(0,1.5,0)).p,(CF.N(Handle.CFrame.p)*CF.N(0,-25,0)).p,8)
  606. BloodTime = time()
  607. Bloodied = Bloodied-1
  608. end
  609. end
  610. end
  611. if(Bloodied > BloodlustBlood)then
  612. if(not Twitch)then
  613. Music.Pitch = 0.85
  614. end
  615. WalkSpeed = 16
  616. else
  617. if(not Twitch)then
  618. Music.Pitch = 1
  619. end
  620. WalkSpeed = 6
  621. end
  622. hum.WalkSpeed = WalkSpeed
  623.  
  624. if(Twitch)then
  625. Music.Pitch = 0.65
  626. NK.C1 = clerp(NK.C1,CF.A(-M.R(15+M.RNG(0,25)),-M.R(25+M.RNG(-15,15)/15),0),.5)
  627. else
  628. NK.C1 = clerp(NK.C1,CF.N(),.3)
  629. end
  630.  
  631. local wsVal = 5 / (hum.WalkSpeed / 16)
  632. if(CheckState(root) == 'Walk')then
  633. -- Walk anim
  634. change = 2/3
  635. 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)
  636. 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)
  637. else
  638. RH.C1 = clerp(RH.C1,CF.N(0,1,0),.3)
  639. LH.C1 = clerp(LH.C1,CF.N(0,1,0),.3)
  640. end
  641. if(neutralAnims)then
  642. if(CheckState(root) == 'Idle')then
  643. -- Idle anim
  644. NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
  645. RH.C0 = clerp(RH.C0,CF.N(.5,-1-.1*M.C(time()),0),.1)
  646. LH.C0 = clerp(LH.C0,CF.N(-.5,-1-.1*M.C(time()),0),.1)
  647. RJ.C0 = clerp(RJ.C0,CF.N(0,0+.1*M.C(time()),0),.1)
  648. LS.C0 = clerp(LS.C0,CF.N(-1.5,.5,0)*CF.A(0,0,M.R(-12)-.1*M.C(time())),.1)
  649. RS.C0 = clerp(RS.C0,CF.N(1.5,.5,0)*CF.A(0,0,M.R(6+6*M.C(time()))),.1)
  650. elseif(CheckState(root) == 'Walk')then
  651. NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
  652. RJ.C0 = clerp(RJ.C0,CF.N(0,0+.1*M.C(sine/(wsVal/2)),0),.3)
  653. RH.C0 = clerp(RH.C0,RHD*CF.N(0,0-.1*M.C(sine/(wsVal/2)),0),.3)
  654. LH.C0 = clerp(LH.C0,LHD*CF.N(0,0-.1*M.C(sine/(wsVal/2)),0),.3)
  655. RS.C0 = clerp(RS.C0,RSD*CF.A(M.R(0+25*M.C(sine/wsVal)),0,0),.3)
  656. LS.C0 = clerp(LS.C0,LSD*CF.A(M.R(0+25*-M.C(sine/wsVal)),0,0),.3)
  657. elseif(CheckState(root) == 'Jump')then
  658. 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)
  659. 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)
  660. 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)
  661. 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)
  662. 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)
  663. NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
  664. elseif(CheckState(root) == 'Fall')then
  665. 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)
  666. 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)
  667. 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)
  668. 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)
  669. 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)
  670. NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),.1)
  671. end
  672. end
  673. end)
  674.  
  675. -- Died event
  676.  
  677. hum.Died:connect(function() -- When the player dies
  678. UnbindLoops() -- Unbind all of the loops used
  679. end)
  680.  
  681.  
  682. -- Everything else
  683.  
  684.  
  685. function GetTorso(char)
  686. return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
  687. end
  688.  
  689. function Projectile(what)
  690. what.Archivable = true
  691. local projectile = what:Clone()
  692. projectile.Parent = char
  693. projectile.Transparency = 0
  694. projectile.Name = "Projectile"
  695. projectile.CFrame = CFrame.new(head.CFrame.p,mouse.Hit.p)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(-90))
  696. projectile.Anchored = true
  697. projectile.Velocity = Vector3.new(0,0,0)
  698. projectile.RotVelocity = Vector3.new(0,0,0)
  699. projectile.Anchored = false
  700. --character.Head.Position).unit
  701. local Velocity = (mouse.Hit.p-head.CFrame.p).unit
  702. projectile.Velocity = Velocity*160
  703. local force = Instance.new("BodyForce")
  704. force.force = Vector3.new(0, 196.2, 0) * projectile:GetMass() * .8
  705. force.Parent = projectile
  706. local touchie
  707. coroutine.wrap(function()
  708. repeat wait() KnifePosition = projectile.CFrame until not projectile or not projectile.Parent or not ThrownKnife
  709. projectile:destroy()
  710. print'knifu'
  711. ThrownKnife = false
  712. Attack = false
  713. Handle.Transparency = 0
  714. KnifePosition = CF.N(0,0,0)
  715. end)()
  716. touchie = projectile.Touched:connect(function(h)
  717. if(not char:IsAncestorOf(h))then
  718. force:destroy()
  719. projectile.Velocity = V3.N(0,0,0)
  720. touchie:disconnect()
  721. local rag = Ragdoll(h.Parent)
  722. swait()
  723. local name = (h.Name == 'Head' and 'FakeHead' or h.Name)
  724. local asd = CF.N((projectile.CFrame.p + h.CFrame.p) * .5)
  725.  
  726. if(not h.Parent and rag and rag:FindFirstChild(name,true))then h = rag:FindFirstChild(name,true) end
  727. local C0 = projectile.CFrame:inverse() * asd
  728. if(not h.Anchored)then
  729. local w = NewInstance('Weld',char,{Part0=projectile,Part1=h,C0 = C0,C1=h.CFrame:inverse() * asd})
  730. else
  731. projectile.Anchored = true
  732. end
  733. if(rag)then
  734. Bloodied = Bloodied + 30
  735. local bloodie = NewInstance('Part',rag,{Anchored = false,CanCollide=false,Size=V3.N(.02,.02,.02),Transparency=1})
  736. local w = NewInstance('Weld',rag,{Part0=bloodie,Part1=h,C0 = C0,C1=h.CFrame:inverse() * asd})
  737. coroutine.wrap(function() repeat wait(M.RNG(2,10)/100)
  738. local spread = V3.N(M.RNG(-85,85)/100,M.RNG(-85,85)/100,M.RNG(-85,85)/100)
  739. BloodDrop(bloodie.CFrame*CF.N(0,.02,0).p,bloodie.CFrame * CF.N(0,100,0).p+spread,10)
  740. until not bloodie or not bloodie.Parent or not rag or not rag.Parent end)()
  741. repeat wait() until not ThrownKnife
  742. delay(5, function()
  743. if(rag)then
  744. rag:destroy()
  745. end
  746. end)
  747. end
  748. end
  749. end)
  750. end
  751. function Decapitate(target)
  752. 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
  753. --BloodPuddle(start,direction,range,maxSize)
  754. Bloodied = Bloodied + 60
  755. target.Archivable = true
  756. local Clone = target:Clone()
  757. target:destroy()
  758. Clone.Parent = workspace
  759. local FakeHead = Clone.Head:Clone()
  760. Clone.Head:destroy()
  761. Clone:FindFirstChildOfClass'Humanoid'.PlatformStand = true
  762. Clone.Name = 'Ragdoll of '..target.Name
  763. FakeHead.Name = 'FakeHead'
  764. FakeHead.Parent = Clone
  765. Clone:FindFirstChildOfClass'Humanoid'.Name = 'Corpse'
  766. local head = FakeHead
  767. local torso = GetTorso(Clone)
  768. local cut = FX(756072587)
  769. local bv = Instance.new("BodyVelocity",torso)
  770. bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  771. bv.velocity = CF.N(Handle.Position,torso.Position).lookVector*20
  772. bv.Name = "MOVE"
  773. game:service'Debris':AddItem(bv,0.2)
  774. local bv = Instance.new("BodyVelocity",FakeHead)
  775. bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  776. bv.velocity = CF.N(Handle.Position,FakeHead.Position).lookVector*20
  777. bv.Name = "MOVE"
  778. game:service'Debris':AddItem(bv,0.2)
  779.  
  780. game:service'Debris':AddItem(Clone,10)
  781. for i = 1, 500 do
  782. wait(M.RNG(2,10)/100)
  783. BloodDrop(torso.CFrame * CF.N(0,torso.Size.Y/2,0).p,(torso.CFrame * CF.N(0,torso.Size.Y,0)).p,10)
  784. BloodDrop(head.CFrame * CF.N(0,-.25,0).p,(head.CFrame * CF.N(0,-.7,0)).p,5)
  785. if not head or not torso or not Clone or not Clone.Parent or not Clone.Parent.Parent then break end
  786. end
  787. end
  788. end
  789.  
  790. function Ragdoll(target,bloodPos)
  791. 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
  792. --BloodPuddle(start,direction,range,maxSize)
  793. target.Archivable = true
  794. local Clone = target:Clone()
  795. local torso = GetTorso(Clone)
  796. target:destroy()
  797. Clone.Parent = workspace
  798. Clone:FindFirstChildOfClass'Humanoid'.PlatformStand = true
  799. Clone.Name = 'Ragdoll of '..target.Name
  800. Clone:FindFirstChildOfClass'Humanoid'.Name = 'Corpse'
  801. local fHead = Clone.Head:Clone()
  802. Clone.Head:destroy()
  803. fHead.Name = 'FakeHead'
  804. fHead.Parent = Clone
  805. NewInstance("Motor6D",torso,{Name='Neck',Part0=torso,Part1=fHead,C0 = HD})
  806. return Clone;
  807. end
  808. end
  809.  
  810. function DealDamage(who,minDam,maxDam,Knock,Type)
  811. if(who)then
  812. local hum = who:FindFirstChildOfClass'Humanoid'
  813. local Damage = M.RNG(minDam,maxDam)
  814. local canHit = true
  815. if(hum)then
  816. for _, p in pairs(Hit) do
  817. if p[1] == hum then
  818. if(time() - p[2] < 0.1) then
  819. canHit = false
  820. else
  821. Hit[_] = nil
  822. end
  823. end
  824. end
  825. if(canHit)then
  826. if(hum.Health >= math.huge)then
  827. who:BreakJoints()
  828. else
  829. local player = S.Players:GetPlayerFromCharacter(who)
  830. if(not player or not Teamed[player])then
  831. if(Type == "Fire")then
  832. --idk..
  833. else
  834. local c = Instance.new("ObjectValue",hum)
  835. c.Name = "creator"
  836. c.Value = plr
  837. game:service'Debris':AddItem(c,0.35)
  838. hum.Health = hum.Health - Damage
  839. if(Type == 'Knockback' and GetTorso(who))then
  840. local angle = GetTorso(who).Position - root.Position + Vector3.new(0, 0, 0).unit
  841. local body = NewInstance('BodyVelocity',GetTorso(who),{
  842. P = 500,
  843. maxForce = V3.N(math.huge,0,math.huge),
  844. velocity = root.CFrame.lookVector * Knock + root.Velocity / 1.05
  845. })
  846. game:service'Debris':AddItem(body,.5)
  847. elseif(Type == 'Knockdown' and GetTorso(who))then
  848. local rek = GetTorso(who)
  849. print(rek)
  850. hum.PlatformStand = true
  851. delay(1,function()
  852. hum.PlatformStand = false
  853. end)
  854. local angle = (GetTorso(who).Position - (root.Position + Vector3.new(0, 0, 0))).unit
  855. local bodvol = NewInstance("BodyVelocity",rek,{
  856. velocity = angle * Knock,
  857. P = 5000,
  858. maxForce = Vector3.new(8e+003, 8e+003, 8e+003),
  859. })
  860. local rl = NewInstance("BodyAngularVelocity",rek,{
  861. P = 3000,
  862. maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000,
  863. angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)),
  864. })
  865. game:GetService("Debris"):AddItem(bodvol, .5)
  866. game:GetService("Debris"):AddItem(rl, .5)
  867. end
  868. end
  869. end
  870. end
  871. table.insert(Hit,{hum,time()})
  872. end
  873. end
  874. end
  875. end
  876.  
  877. function MagniDamage(pos,radius,mindamage,maxdamage,knockback,damagetype)
  878. local Recursive
  879. Recursive = function(whom)
  880. for _,c in next, whom:children() do
  881. local hum = c:FindFirstChildOfClass'Humanoid'
  882. local hed = c:FindFirstChild'Torso' or c:FindFirstChild'UpperTorso' or c:FindFirstChild'LowerTorso'
  883. if(hum and hed)then
  884. local mag = (hed.CFrame.p - pos).magnitude
  885. if(mag <= radius and c ~= char)then
  886. DealDamage(c,mindamage,maxdamage,knockback,damagetype)
  887. end
  888. end
  889. Recursive(c)
  890. end
  891. end
  892. Recursive(workspace)
  893. end
  894.  
  895. function MagniHeal(pos,radius,heal,needsTeamed)
  896. for _,v in next, workspace:GetDescendants() do
  897. local player = S.Players:GetPlayerFromCharacter(v)
  898. local hum = v:FindFirstChildOfClass'Humanoid'
  899. if(hum and v:IsA'Model')then
  900. if(not needsTeamed or player and (not plr.Neutral and player.TeamColor == plr.TeamColor))then
  901. local pp = v.PrimaryPart or v:FindFirstChild'Torso' or v:FindFirstChild'UpperTorso' or v:FindFirstChild'LowerTorso'
  902. if(pp and (pp.CFrame.p-pos).magnitude <= radius)then
  903. hum.Health = hum.Health + heal
  904. end
  905. end
  906. end
  907. end
  908. end
  909.  
  910.  
  911. Debounces:New('how2use',1) -- name, cooldown
  912.  
  913. function TestDebounce()
  914. if(Debounces:Get('how2use').Usable)then
  915. -- code
  916. Debounces:Get('how2use'):Use() -- use it up
  917. end
  918. end
  919.  
  920. function Throw()
  921. Attack = true
  922. neutralAnims = false
  923. for i = 0, 0.5, 0.01 do
  924. swait()
  925. 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)
  926. 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)
  927. 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)
  928. 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)
  929. 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)
  930. NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),i)
  931. end
  932. wait(.25)
  933. for i = 0, 0.5, 0.1 do
  934. swait()
  935. 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)
  936. 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)
  937. 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)
  938. 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)
  939. 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)
  940. NK.C0 = clerp(NK.C0,HD*CF.N(0,.1,-.25)*CF.A(M.R(-25),0,0),i)
  941. end
  942. ThrownKnife = true
  943. Handle.Transparency = 1
  944. Projectile(Handle)
  945. Decal.Transparency = 1
  946. wait(.5)
  947. neutralAnims = true
  948. end
  949.  
  950. function ClickCombo()
  951. Attack = true
  952. neutralAnims = false
  953. for i = 0, 1, 0.1 do
  954. swait()
  955. 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)
  956. 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)
  957. 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)
  958. 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)
  959. 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)
  960. 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)
  961. end
  962. local swoosh = coroutine.wrap(FX)(1306070008,1,M.RNG(95,125)/100)
  963. Handle.CanCollide = true
  964. local touched = Handle.Touched:connect(function(t)
  965. Decapitate(t.Parent)
  966. end)
  967. for i = 0, 1, 0.05 do
  968. swait()
  969. if((root.Velocity * V3.N(1, 0, 1)).magnitude > 0.3 and WalkSpeed == 16)then
  970. root.CFrame = root.CFrame*CF.N(0,0,-1)
  971. end
  972. 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)
  973. 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)
  974. 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)
  975. 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)
  976. 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)
  977. 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)
  978. 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)
  979. end
  980. wait(.1)
  981. Handle.CanCollide = false
  982. touched:disconnect()
  983. coroutine.wrap(function()
  984. for i = 0, 1, 0.1 do
  985. swait()
  986. HW.C0 = Hold
  987. end
  988. end)()
  989. neutralAnims = true
  990. Attack = false
  991. end
  992. function AttemptGetKnife()
  993. if((torso.CFrame.p-KnifePosition.p).magnitude < 6)then
  994. ThrownKnife = false
  995. end
  996. end
  997. mouse.Button1Down:connect(function()
  998. if(not ThrownKnife)then
  999. if(Attack)then return end
  1000. ClickCombo()
  1001. else
  1002. AttemptGetKnife()
  1003. end
  1004. end)
  1005. mouse.KeyDown:connect(function(k)
  1006. if(Attack)then return end
  1007. if(k == "t")then
  1008. Throw()
  1009. elseif(k == 'm')then
  1010. if(Music.Volume ~= 0)then
  1011. Music.Volume =0
  1012. else
  1013. Music.Volume = Sounds.Psycho.Volume
  1014. end
  1015. elseif(k == ';')then
  1016. if(Mesh.MeshId ~= 'http://www.roblox.com/asset/?id=123248347')then
  1017. Mesh.MeshId = 'http://www.roblox.com/asset/?id=123248347'
  1018. Mesh.TextureId = 'http://www.roblox.com/asset/?id=123248449'
  1019. Mesh.Scale = V3.N(.4,.4,.4)
  1020. Hold = CF.N(0,-1,-1.35)*CF.A(M.R(-90),0,0)
  1021. BeheadHold = CF.N(0,.5,0)*CF.A(0,M.R(-90),0)
  1022. else
  1023. Mesh.MeshId='rbxassetid://471401475'
  1024. Mesh.TextureId='rbxassetid://471401476'
  1025. Mesh.Scale = V3.N(.01,.01,.01)
  1026. Hold = CF.N(0,-1,-1)*CF.A(M.R(-90),M.R(90),0)
  1027. BeheadHold = CF.A(0,0,0)
  1028. end
  1029. HW.C0 = Hold
  1030. end
  1031. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement