Advertisement
clockwatcher00f

i leik souls :)

Aug 15th, 2018
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.02 KB | None | 0 0
  1. --effect test i guess
  2. --press z while hovering over som1 to steal soul B)
  3. -- Created by Nebula_Zorua --
  4. -- Discord: Nebula the Zorua#6969
  5. -- Youtube: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA
  6.  
  7.  
  8. --// Initializing \\--
  9. local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
  10. local Plrs = S.Players
  11. local Plr = Plrs.LocalPlayer
  12. local Char = Plr.Character
  13. local Torso = Char.Torso
  14. local Mouse = Plr:GetMouse()
  15.  
  16. --// Shortcut Variables \\--
  17. local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
  18. local C3 = {N=Color3.new,RGB=Color3.fromRGB,HSV=Color3.fromHSV,tHSV=Color3.toHSV}
  19. local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis}
  20. local M = {C=math.cos,R=math.rad,S=math.sin,P=math.pi,RNG=math.random,MRS=math.randomseed,H=math.huge,RRNG = function(min,max,div) return math.rad(math.random(min,max)/(div or 1)) end}
  21. local De = S.Debris
  22. local WS = workspace
  23. local Lght = S.Lighting
  24. local RS = S.ReplicatedStorage
  25. local IN = Instance.new
  26. --// Instance Creation Functions \\--
  27.  
  28. function Sound(parent,id,pitch,volume,looped,effect,autoPlay)
  29. local Sound = IN("Sound")
  30. Sound.SoundId = "rbxassetid://".. tostring(id or 0)
  31. Sound.Pitch = pitch or 1
  32. Sound.Volume = volume or 1
  33. Sound.Looped = looped or false
  34. if(autoPlay)then
  35. coroutine.wrap(function()
  36. repeat wait() until Sound.IsLoaded
  37. Sound.Playing = autoPlay or false
  38. end)()
  39. end
  40. if(not looped and effect)then
  41. Sound.Stopped:connect(function()
  42. Sound.Volume = 0
  43. Sound:destroy()
  44. end)
  45. elseif(effect)then
  46. warn("Sound can't be looped and a sound effect!")
  47. end
  48. Sound.Parent =parent or Torso
  49. return Sound
  50. end
  51. function Part(parent,color,material,size,cframe,anchored,cancollide)
  52. local part = IN("Part")
  53. part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0)
  54. part.Material = material or Enum.Material.SmoothPlastic
  55. part.TopSurface,part.BottomSurface=10,10
  56. part.Size = size or V3.N(1,1,1)
  57. part.CFrame = cframe or CF.N(0,0,0)
  58. part.Anchored = anchored or true
  59. part.CanCollide = cancollide or false
  60. part.Parent = parent or Char
  61. return part
  62. end
  63. function Mesh(parent,meshtype,meshid,textid,scale,offset)
  64. local part = IN("SpecialMesh")
  65. part.MeshId = meshid or ""
  66. part.TextureId = textid or ""
  67. part.Scale = scale or V3.N(1,1,1)
  68. part.Offset = offset or V3.N(0,0,0)
  69. part.MeshType = meshtype or Enum.MeshType.Sphere
  70. part.Parent = parent
  71. return part
  72. end
  73.  
  74. NewInstance = function(instance,parent,properties)
  75. local inst = Instance.new(instance,parent)
  76. if(properties)then
  77. for i,v in next, properties do
  78. pcall(function() inst[i] = v end)
  79. end
  80. end
  81. return inst;
  82. end
  83.  
  84. local Frame_Speed = 60 -- The frame speed for swait. 1 is automatically divided by this
  85.  
  86. local Effects = IN("Folder",Char)
  87. Effects.Name = "Effects"
  88. --// Artificial HB \\--
  89.  
  90. local ArtificialHB = IN("BindableEvent", script)
  91. ArtificialHB.Name = "Heartbeat"
  92.  
  93. script:WaitForChild("Heartbeat")
  94.  
  95. local tf = 0
  96. local allowframeloss = false
  97. local tossremainder = false
  98. local lastframe = tick()
  99. local frame = 1/Frame_Speed
  100. ArtificialHB:Fire()
  101.  
  102. game:GetService("RunService").Heartbeat:connect(function(s, p)
  103. tf = tf + s
  104. if tf >= frame then
  105. if allowframeloss then
  106. script.Heartbeat:Fire()
  107. lastframe = tick()
  108. else
  109. for i = 1, math.floor(tf / frame) do
  110. ArtificialHB:Fire()
  111. end
  112. lastframe = tick()
  113. end
  114. if tossremainder then
  115. tf = 0
  116. else
  117. tf = tf - frame * math.floor(tf / frame)
  118. end
  119. end
  120. end)
  121.  
  122. function swait(num)
  123. if num == 0 or num == nil then
  124. ArtificialHB.Event:wait()
  125. else
  126. for i = 0, num do
  127. ArtificialHB.Event:wait()
  128. end
  129. end
  130. end
  131.  
  132.  
  133. --// Effect Function(s) \\--
  134.  
  135. function Bezier(startpos, pos2, pos3, endpos, t)
  136. local A = startpos:lerp(pos2, t)
  137. local B = pos2:lerp(pos3, t)
  138. local C = pos3:lerp(endpos, t)
  139. local lerp1 = A:lerp(B, t)
  140. local lerp2 = B:lerp(C, t)
  141. local cubic = lerp1:lerp(lerp2, t)
  142. return cubic
  143. end
  144.  
  145. function Effect(data)
  146. local FX = data.Effect or 'Resize-AndFade'
  147. local Parent = data.Parent or Effects
  148. local Color = data.Color or C3.N(0,0,0)
  149. local Size = data.Size or V3.N(1,1,1)
  150. local MoveDir = data.MoveDirection or nil
  151. local MeshData = data.Mesh or nil
  152. local SndData = data.Sound or nil
  153. local Frames = data.Frames or 45
  154. local Manual = data.Manual or nil
  155. local Material = data.Material or nil
  156. local CFra = data.CFrame or Torso.CFrame
  157. local Settings = data.FXSettings or {}
  158. local Snd,Prt,Msh;
  159. if(Manual and typeof(Manual) == 'Instance' and Manual:IsA'BasePart')then
  160. Prt = Manual
  161. else
  162. Prt = Part(Parent,Color,Material,Size,CFra,true,false)
  163. end
  164. if(typeof(MeshData) == 'table')then
  165. Msh = Mesh(Prt,MeshData.MeshType,MeshData.MeshId,MeshData.TextureId,MeshData.Scale,MeshData.Offset)
  166. elseif(typeof(MeshData) == 'Instance')then
  167. Msh = MeshData:Clone()
  168. Msh.Parent = Prt
  169. end
  170. if(typeof(SndData) == 'table' or typeof(SndData) == 'Instance')then
  171. Snd = Sound(Prt,SndData.SoundId,SndData.Pitch,SndData.Volume,false,false,true)
  172. end
  173. if(Snd)then
  174. repeat wait() until Snd.Playing and Snd.IsLoaded and Snd.TimeLength > 0
  175. Frames = Snd.TimeLength * Frame_Speed/Snd.Pitch
  176. end
  177. local MoveSpeed = nil;
  178. if(MoveDir)then
  179. MoveSpeed = (CFra.p - MoveDir).magnitude/Frames
  180. end
  181. local Inc = M.RNG()-M.RNG()
  182. local Thingie = 0
  183. local Thingie2 = M.RNG(50,100)/100
  184.  
  185. coroutine.wrap(function()
  186. if(FX ~= 'Arc')then
  187. for i = 1, Frames do
  188. if(FX == 'Resize-AndFade')then
  189. if(not Settings.EndSize)then
  190. Settings.EndSize = V3.N(0,0,0)
  191. end
  192. local grow = (typeof(Settings.EndSize) == 'Vector3' and Settings.EndSize-Size or typeof(Settings.EndSize) == 'number' and V3.N(Settings.EndSize))
  193. Prt.Size = Prt.Size - grow/Frames
  194. Prt.Transparency = (i/Frames)
  195. elseif(FX == 'Resize+AndFade')then
  196. if(not Settings.EndSize)then
  197. Settings.EndSize = Size*2
  198. end
  199. local grow = (typeof(Settings.EndSize) == 'Vector3' and Settings.EndSize-Size or typeof(Settings.EndSize) == 'number' and V3.N(Settings.EndSize))
  200. Prt.Size = Prt.Size + grow/Frames
  201. Prt.Transparency = (i/Frames)
  202. elseif(FX == 'Fade')then
  203. Prt.Transparency = (i/Frames)
  204. end
  205. if(Settings.RandomizeCFrame)then
  206. Prt.CFrame = Prt.CFrame * CF.A(M.RRNG(-360,360),M.RRNG(-360,360),M.RRNG(-360,360))
  207. end
  208. if(MoveDir and MoveSpeed)then
  209. local Orientation = Prt.Orientation
  210. Prt.CFrame = CF.N(Prt.Position,MoveDir)*CF.N(0,0,-MoveSpeed)
  211. Prt.Orientation = Orientation
  212. end
  213. if(swait and typeof(swait) == 'function')then
  214. swait()
  215. else
  216. wait()
  217. end
  218. end
  219. Prt:destroy()
  220. else
  221. local start,third,fourth,endP = Settings.Start,Settings.Third,Settings.Fourth,Settings.End
  222. if(not Settings.End and Settings.Home)then endP = Settings.Home.CFrame end
  223. local quarter = third or start:lerp(endP, 0.25) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
  224. local threequarter = fourth or start:lerp(endP, 0.75) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
  225. assert(start ~= nil,"You need to specify a start point!")
  226. assert(endP ~= nil,"You need to specify an end point!")
  227. for i = 0, 1, Settings.Speed or 0.01 do
  228. if(Settings.Home)then
  229. endP = Settings.Home.CFrame
  230. end
  231. Prt.CFrame = Bezier(start, quarter, threequarter, endP, i)
  232. if(swait and typeof(swait) == 'function')then
  233. swait()
  234. else
  235. wait()
  236. end
  237. end
  238. if(Settings.RemoveOnGoal)then
  239. Prt:destroy()
  240. end
  241. end
  242. end)()
  243. return Prt,Msh,Snd
  244. end
  245.  
  246.  
  247. function SoulSteal(whom)
  248. local torso = (whom:FindFirstChild'Head' or whom:FindFirstChild'Torso' or whom:FindFirstChild'UpperTorso' or whom:FindFirstChild'LowerTorso' or whom:FindFirstChild'HumanoidRootPart')
  249. print(torso)
  250. if(torso and torso:IsA'BasePart')then
  251. local Model = Instance.new("Model",Effects)
  252. Model.Name = whom.Name.."'s Soul"
  253. whom:BreakJoints()
  254. local Soul = Part(Model,BrickColor.new'Really blue','Glass',V3.N(.5,.5,.5),torso.CFrame,true,false)
  255. Soul.Name = 'Head'
  256. NewInstance("Humanoid",Model,{Health=0,MaxHealth=0})
  257. Effect{
  258. Effect="Arc",
  259. Manual = Soul,
  260. FXSettings={
  261. Start=torso.CFrame,
  262. Home = Torso,
  263. RemoveOnGoal = true,
  264. }
  265. }
  266. local lastPoint = Soul.CFrame.p
  267.  
  268. for i = 0, 1, 0.01 do
  269. local point = CFrame.new(lastPoint, Soul.Position) * CFrame.Angles(-math.pi/2, 0, 0)
  270. local mag = (lastPoint - Soul.Position).magnitude
  271. Effect{
  272. Effect = "Fade",
  273. CFrame = point * CF.N(0, mag/2, 0),
  274. Size = V3.N(.5,mag+.5,.5),
  275. Color = Soul.BrickColor
  276. }
  277. lastPoint = Soul.CFrame.p
  278. swait()
  279. end
  280. for i = 1, 5 do
  281. Effect{
  282. Effect="Fade",
  283. Color = BrickColor.new'Really black',
  284. MoveDirection = (Torso.CFrame*CFrame.new(M.RNG(-40,40),M.RNG(-40,40),M.RNG(-40,40))).p
  285. }
  286. end
  287. end
  288. end
  289. Mouse.KeyDown:connect(function(k)
  290. if(k == 'z')then
  291. if(Mouse.Target and Mouse.Target.Parent and Mouse.Target.Parent:FindFirstChildOfClass'Humanoid' and Mouse.Target.Parent:FindFirstChildOfClass'Humanoid'.Health > 0)then
  292. SoulSteal(Mouse.Target.Parent)
  293. end
  294. end
  295. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement