Advertisement
Silver_cole

vampire moment

Sep 23rd, 2019
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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,game,owner = owner,game
  4. local RealPlayer = Player
  5. do
  6. print("FE Compatibility code V2 by Mokiros")
  7. local RealPlayer = RealPlayer
  8. script.Parent = RealPlayer.Character
  9.  
  10. --Fake event to make stuff like Mouse.KeyDown work
  11. local Disconnect_Function = function(this)
  12. this[1].Functions[this[2]] = nil
  13. end
  14. local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
  15. local FakeEvent_Metatable = {__index={
  16. Connect = function(this,f)
  17. local i = tostring(math.random(0,10000))
  18. while this.Functions[i] do
  19. i = tostring(math.random(0,10000))
  20. end
  21. this.Functions[i] = f
  22. return setmetatable({this,i},Disconnect_Metatable)
  23. end
  24. }}
  25. FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
  26. local function fakeEvent()
  27. return setmetatable({Functions={}},FakeEvent_Metatable)
  28. end
  29.  
  30. --Creating fake input objects with fake variables
  31. local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
  32. FakeMouse.keyUp = FakeMouse.KeyUp
  33. FakeMouse.keyDown = FakeMouse.KeyDown
  34. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  35. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  36. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  37. end}
  38. --Merged 2 functions into one by checking amount of arguments
  39. CAS.UnbindAction = CAS.BindAction
  40.  
  41. --This function will trigger the events that have been :Connect()'ed
  42. local function TriggerEvent(self,ev,...)
  43. for _,f in pairs(self[ev].Functions) do
  44. f(...)
  45. end
  46. end
  47. FakeMouse.TriggerEvent = TriggerEvent
  48. UIS.TriggerEvent = TriggerEvent
  49.  
  50. --Client communication
  51. local Event = Instance.new("RemoteEvent")
  52. Event.Name = "UserInput_Event"
  53. Event.OnServerEvent:Connect(function(plr,io)
  54. if plr~=RealPlayer then return end
  55. FakeMouse.Target = io.Target
  56. FakeMouse.Hit = io.Hit
  57. if not io.isMouse then
  58. local b = io.UserInputState == Enum.UserInputState.Begin
  59. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  60. return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
  61. end
  62. if io.UserInputType == Enum.UserInputType.MouseButton2 then
  63. return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
  64. end
  65. for _,t in pairs(CAS.Actions) do
  66. for _,k in pairs(t.Keys) do
  67. if k==io.KeyCode then
  68. t.Function(t.Name,io.UserInputState,io)
  69. end
  70. end
  71. end
  72. FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  73. UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
  74. end
  75. end)
  76. Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
  77. local Mouse = owner:GetMouse()
  78. local UIS = game:GetService("UserInputService")
  79. local input = function(io,RobloxHandled)
  80. if RobloxHandled then return end
  81. --Since InputObject is a client-side instance, we create and pass table instead
  82. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  83. end
  84. UIS.InputBegan:Connect(input)
  85. UIS.InputEnded:Connect(input)
  86. local h,t
  87. --Give the server mouse data every second frame, but only if the values changed
  88. --If player is not moving their mouse, client won't fire events
  89. local HB = game:GetService("RunService").Heartbeat
  90. while true do
  91. if h~=Mouse.Hit or t~=Mouse.Target then
  92. h,t=Mouse.Hit,Mouse.Target
  93. Event:FireServer({isMouse=true,Target=t,Hit=h})
  94. end
  95. --Wait 2 frames
  96. for i=1,2 do
  97. HB:Wait()
  98. end
  99. end]==],script)
  100.  
  101. ----Sandboxed game object that allows the usage of client-side methods and services
  102. --Real game object
  103. local RealGame = game
  104.  
  105. --Metatable for fake service
  106. local FakeService_Metatable = {
  107. __index = function(self,k)
  108. local s = rawget(self,"_RealService")
  109. if s then
  110. return typeof(s[k])=="function"
  111. and function(_,...)return s[k](s,...)end or s[k]
  112. end
  113. end,
  114. __newindex = function(self,k,v)
  115. local s = rawget(self,"_RealService")
  116. if s then s[k]=v end
  117. end
  118. }
  119. local function FakeService(t,RealService)
  120. t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
  121. return setmetatable(t,FakeService_Metatable)
  122. end
  123.  
  124. --Fake game object
  125. local FakeGame = {
  126. GetService = function(self,s)
  127. return rawget(self,s) or RealGame:GetService(s)
  128. end,
  129. Players = FakeService({
  130. LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
  131. },"Players"),
  132. UserInputService = FakeService(UIS,"UserInputService"),
  133. ContextActionService = FakeService(CAS,"ContextActionService"),
  134. RunService = FakeService({
  135. _btrs = {},
  136. RenderStepped = RealGame:GetService("RunService").Heartbeat,
  137. BindToRenderStep = function(self,name,_,fun)
  138. self._btrs[name] = self.Heartbeat:Connect(fun)
  139. end,
  140. UnbindFromRenderStep = function(self,name)
  141. self._btrs[name]:Disconnect()
  142. end,
  143. },"RunService")
  144. }
  145. rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
  146. FakeGame.service = FakeGame.GetService
  147. FakeService(FakeGame,game)
  148. --Changing owner to fake player object to support owner:GetMouse()
  149. game,owner = FakeGame,FakeGame.Players.LocalPlayer
  150. end
  151.  
  152. pl = "silver22352"
  153. Player = Game:GetService("Players").LocalPlayer
  154. Character = Player.Character
  155. RightArm = Character["Right Arm"]
  156. RightShoulder = Character.Torso["Right Shoulder"]
  157. LeftArm = Character["Left Arm"]
  158. Torso = Character["Torso"]
  159. LeftLeg = Character["Left Leg"]
  160. RightLeg = Character["Right Leg"]
  161. Head = Character["Head"]
  162.  
  163. Workspace.SergeantSmokey.Head.face.Texture = "http://www.roblox.com/asset/?id=17058440"
  164.  
  165. function CheckI(Item,Blacklist,Specific)
  166. for _,v in pairs(Item:children()) do
  167. if not Specific then
  168. if v:IsA(Blacklist) or v.Name:match(Blacklist) then
  169. v:Destroy()
  170. end
  171. else
  172. if v:IsA(Blacklist) or v.Name == Blacklist then
  173. v:Destroy()
  174. end
  175. end
  176. end
  177. end
  178.  
  179. CheckI(Character,"Hat")
  180. -------------------------------------
  181.  
  182. Part13 = Instance.new("Part", Character)
  183. Part13.TopSurface = 0
  184. Part13.BottomSurface = 0
  185. Part13.Transparency = 0
  186. Part13.FormFactor = "Custom"
  187. Part13.Size = Vector3.new(1, 1, 1)
  188. Part13.BrickColor = BrickColor.new("Really black")
  189. Part13.CanCollide = false
  190. Weld13 = Instance.new("Weld", Part13)
  191. Weld13.Part0 = Part13
  192. Weld13.Part1 = Head
  193. Weld13.C0 = CFrame.new(0, -0.8, 0)
  194. SHMesh = Instance.new("SpecialMesh")
  195. SHMesh.Parent = Part13
  196. SHMesh.Scale = Vector3.new(1, 1, 1)
  197. SHMesh.MeshId = "http://www.roblox.com/asset/?id=1028713"
  198. SHMesh.TextureId = "http://www.roblox.com/asset/?id=15726328"
  199.  
  200. Part135 = Instance.new("Part", Character)
  201. Part135.TopSurface = 0
  202. Part135.BottomSurface = 0
  203. Part135.Transparency = 1
  204. Part135.Reflectance = 0.8
  205. Part135.FormFactor = "Custom"
  206. Part135.Size = Vector3.new(1, 1, 1)
  207. Part135.BrickColor = BrickColor.new("White")
  208. Part135.CanCollide = false
  209. Weld13 = Instance.new("Weld", Part135)
  210. Weld13.Part0 = Part135
  211. Weld13.Part1 = Head
  212. Weld13.C0 = CFrame.new(0, -3, 0)
  213. SHMesh = Instance.new("SpecialMesh")
  214. SHMesh.Parent = Part135
  215. SHMesh.MeshType = "Sphere"
  216. x = Instance.new("PointLight",Part135)
  217. x.Range = 20
  218. x.Enabled = false
  219.  
  220.  
  221. Part = Instance.new("Part", Character)
  222. Part.TopSurface = 0
  223. Part.BottomSurface = 0
  224. Part.Transparency = 0
  225. Part.FormFactor = "Custom"
  226. Part.Size = Vector3.new(1, 2, 1)
  227. Part.BrickColor = BrickColor.new("Really black")
  228. Part.CanCollide = false
  229. Workspace.SergeantSmokey["Right Leg"].Transparency = 1
  230. Weld = Instance.new("Weld", Part)
  231. Weld.Part0 = Part
  232. Weld.Part1 = RightLeg
  233. Weld.C0 = CFrame.new(0, 0, 0)
  234.  
  235. Part2 = Instance.new("Part", Character)
  236. Part2.TopSurface = 0
  237. Part2.BottomSurface = 0
  238. Part2.Transparency = 0
  239. Part2.FormFactor = "Custom"
  240. Part2.Size = Vector3.new(1, 2, 1)
  241. Part2.BrickColor = BrickColor.new("Really black")
  242. Part2.CanCollide = false
  243. Workspace.SergeantSmokey["Left Leg"].Transparency = 1
  244. Weld2 = Instance.new("Weld", Part2)
  245. Weld2.Part0 = Part2
  246. Weld2.Part1 = LeftLeg
  247. Weld2.C0 = CFrame.new(0, 0, 0)
  248.  
  249. Part7 = Instance.new("Part", Character)
  250. Part7.TopSurface = 0
  251. Part7.BottomSurface = 0
  252. Part7.Transparency = 0
  253. Part7.FormFactor = "Custom"
  254. Part7.Size = Vector3.new(1, 1.7, 1)
  255. Part7.BrickColor = BrickColor.new("White")
  256. Part7.CanCollide = false
  257. Workspace.SergeantSmokey["Right Arm"].Transparency = 1
  258. Weld7 = Instance.new("Weld", Part7)
  259. Weld7.Part0 = Part7
  260. Weld7.Part1 = RightArm
  261. Weld7.C0 = CFrame.new(0, 0.2, 0)
  262.  
  263. Part45 = Instance.new("Part", Character)
  264. Part45.TopSurface = 0
  265. Part45.BottomSurface = 0
  266. Part45.Transparency = 0
  267. Part45.FormFactor = "Custom"
  268. Part45.Size = Vector3.new(1.1, 1, 1.1)
  269. Part45.BrickColor = BrickColor.new("Really black")
  270. Part45.CanCollide = false
  271. Weld3 = Instance.new("Weld", Part45)
  272. Weld3.Part0 = Part45
  273. Weld3.Part1 = RightArm
  274. Weld3.C0 = CFrame.new(0, -0.5, 0)
  275.  
  276. Part8 = Instance.new("Part", Character)
  277. Part8.TopSurface = 0
  278. Part8.BottomSurface = 0
  279. Part8.Transparency = 0
  280. Part8.FormFactor = "Custom"
  281. Part8.Size = Vector3.new(1, 1.7, 1)
  282. Part8.BrickColor = BrickColor.new("White")
  283. Part8.CanCollide = false
  284. Workspace.SergeantSmokey["Left Arm"].Transparency = 1
  285. Weld8 = Instance.new("Weld", Part8)
  286. Weld8.Part0 = Part8
  287. Weld8.Part1 = LeftArm
  288. Weld8.C0 = CFrame.new(0, 0.2, 0)
  289.  
  290. Part45 = Instance.new("Part", Character)
  291. Part45.TopSurface = 0
  292. Part45.BottomSurface = 0
  293. Part45.Transparency = 0
  294. Part45.FormFactor = "Custom"
  295. Part45.Size = Vector3.new(1.1, 1, 1.1)
  296. Part45.BrickColor = BrickColor.new("Really black")
  297. Part45.CanCollide = false
  298. Weld3 = Instance.new("Weld", Part45)
  299. Weld3.Part0 = Part45
  300. Weld3.Part1 = LeftArm
  301. Weld3.C0 = CFrame.new(0, -0.5, 0)
  302.  
  303. Part13 = Instance.new("Part", Character)
  304. Part13.TopSurface = 0
  305. Part13.BottomSurface = 0
  306. Part13.Transparency = 0
  307. Part13.FormFactor = "Custom"
  308. Part13.Size = Vector3.new(2, 2, 1)
  309. Part13.BrickColor = BrickColor.new("Really black")
  310. Part13.CanCollide = false
  311. Workspace.SergeantSmokey["Torso"].Transparency = 1
  312. Weld13 = Instance.new("Weld", Part13)
  313. Weld13.Part0 = Part13
  314. Weld13.Part1 = Torso
  315. Weld13.C0 = CFrame.new(0, 0, 0)
  316.  
  317. Part123 = Instance.new("Part", Character)
  318. Part123.TopSurface = 0
  319. Part123.BottomSurface = 0
  320. Part123.Transparency = 0
  321. Part123.FormFactor = "Custom"
  322. Part123.Size = Vector3.new(1, 1, 1)
  323. Part123.BrickColor = BrickColor.new("White")
  324. Part123.CanCollide = false
  325. Weld13 = Instance.new("Weld", Part123)
  326. Weld13.Part0 = Part123
  327. Weld13.Part1 = Torso
  328. Weld13.C0 = CFrame.new(0, 0.5, -0.8)
  329. SHMesh = Instance.new("SpecialMesh")
  330. SHMesh.Parent = Part123
  331. SHMesh.Scale = Vector3.new(1.5, 1.5, 1.5)
  332. SHMesh.MeshId = "http://www.roblox.com/asset/?id=94820260"
  333. SHMesh.TextureId = "http://www.roblox.com/asset/?id=94820166"
  334.  
  335. sg = Instance.new("ScreenGui")
  336. sg.Parent = game.Players[pl].PlayerGui
  337. button1 = Instance.new("TextButton")
  338. button1.Parent = sg
  339. button1.Text = "Light-On"
  340. button1.Position = UDim2.new(0,0,0.1,0)
  341. button1.Size = UDim2.new(0.1,0,0.1,0)
  342. button1.MouseButton1Click:connect(function()
  343. x.Enabled = true
  344. Part135.Transparency = 0
  345. end)
  346. button2 = Instance.new("TextButton")
  347. button2.Parent = sg
  348. button2.Text = "Light-Off"
  349. button2.Position = UDim2.new(0,0,0.2,0)
  350. button2.Size = UDim2.new(0.1,0,0.1,0)
  351. button2.MouseButton1Click:connect(function()
  352. x.Enabled = false
  353. Part135.Transparency = 1
  354. end)
  355. button3 = Instance.new("TextButton")
  356. button3.Parent = sg
  357. button3.Text = "Slow - 10"
  358. button3.Position = UDim2.new(0,0,0.3,0)
  359. button3.Size = UDim2.new(0.1,0,0.1,0)
  360. button3.MouseButton1Click:connect(function()
  361. Workspace.SergeantSmokey.Humanoid.WalkSpeed = Workspace.SergeantSmokey.Humanoid.WalkSpeed - 10
  362. end)
  363. button4 = Instance.new("TextButton")
  364. button4.Parent = sg
  365. button4.Text = "Fast + 10"
  366. button4.Position = UDim2.new(0,0,0.4,0)
  367. button4.Size = UDim2.new(0.1,0,0.1,0)
  368. button4.MouseButton1Click:connect(function()
  369. Workspace.SergeantSmokey.Humanoid.WalkSpeed = Workspace.SergeantSmokey.Humanoid.WalkSpeed + 10
  370. end)
  371.  
  372. local h = Instance.new("HopperBin")
  373. h.Name = "Magic"
  374. local p = game.Players:findFirstChild(pl)
  375. if (p==nil) then return end
  376. h.Parent = p.Backpack
  377.  
  378. function fast1()
  379. Workspace.SergeantSmokey.Humanoid.WalkSpeed = 100
  380. end
  381.  
  382. function fast2()
  383. Workspace.SergeantSmokey.Humanoid.WalkSpeed = 20
  384. end
  385.  
  386.  
  387.  
  388. function onKey(key, mouse)
  389. if key then
  390. local key = key:lower()
  391. if (key=="q") then
  392. fast1()
  393. if (key=="e") then
  394. fast2()
  395. end
  396. end
  397. end
  398. end
  399. h.Selected:connect(function(mouse)
  400. mouse.KeyDown:connect(function(key) onKey(key, mouse) end)
  401. end)
  402.  
  403. --[[Soul Staff Made By malfact]]--
  404.  
  405.  
  406.  
  407. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  408. local player = game.Players.LocalPlayer
  409. local character = player.Character
  410.  
  411. if (player.Backpack:FindFirstChild("Soul Staff") ~= nil) then
  412. player.Backpack["Soul Staff"].Parent = nil
  413. end
  414. if (character:FindFirstChild("Soul_Staff") ~= nil) then
  415. character.Soul_Staff.Parent = nil
  416. end
  417.  
  418. local RightShoulder = character.Torso["Right Shoulder"]
  419. local ShoulderWeld = nil
  420. local StaffWeld = nil
  421.  
  422. local debounce = false
  423. local debounce2 = false
  424.  
  425. local mode = "hurt"
  426. local orbWeld = {}
  427. local keys = {}
  428.  
  429. local thrown = false
  430. local hold = false
  431. local holdTime = 0
  432.  
  433. local tool = Instance.new("HopperBin", player.Backpack)
  434. tool.Name = "Soul Staff"
  435. tool.Parent = player.Backpack
  436. local model = Instance.new("Model",character)
  437. model.Name = "Soul_Staff"
  438.  
  439. function animateArm(boolean, c0, c1)
  440. if (boolean) then
  441. if (ShoulderWeld == nil) then
  442. ShoulderWeld = weld(character["Torso"],character["Right Arm"],CFrame.new())
  443. end
  444. RightShoulder.Part0 = nil
  445.  
  446. ShoulderWeld.C0 = c0
  447. ShoulderWeld.C1 = c1
  448. else
  449. RightShoulder.Part0 = character.Torso
  450. if (ShoulderWeld ~= nil) then
  451. ShoulderWeld.Parent = nil
  452. end
  453. ShoulderWeld = nil
  454. end
  455. end
  456.  
  457. function animateStaff(boolean, c0, c1)
  458. if (boolean) then
  459. StaffWeld.Part0 = character["Right Arm"]
  460. StaffWeld.Part1 = model:FindFirstChild("Handle")
  461. StaffWeld.C0 = c0
  462. StaffWeld.C1 = c1
  463. else
  464. StaffWeld.Part0 = character["Torso"]
  465. StaffWeld.Part1 = model:FindFirstChild("Handle")
  466. StaffWeld.C0 = CFrame.new(0,0,0.5)
  467. StaffWeld.C1 = CFrame.new()*CFrame.Angles(0, 0, math.pi/4)
  468. end
  469. end
  470.  
  471. function weld(p0, p1, cframe)
  472. local w = Instance.new("ManualWeld", p0)
  473. w.Part0 = p0
  474. w.Part1 = p1
  475. w.C0 = cframe
  476. return w
  477. end
  478.  
  479. function newPart(size, color, parent)
  480. local part = Instance.new("Part")
  481. part.Locked = true
  482. part.FormFactor = 3
  483. part.Size = size
  484. part.BrickColor = color
  485. part.BottomSurface = 0
  486. part.TopSurface = 0
  487. part.Anchored = false
  488. part.CanCollide = false
  489. part.Parent = parent
  490. return part
  491. end
  492.  
  493. function newCylMesh(parent)
  494. local mesh = Instance.new("CylinderMesh", parent)
  495. return parent
  496. end
  497.  
  498. function newSphereMesh(parent)
  499. local mesh = Instance.new("SpecialMesh",parent)
  500. mesh.MeshType = 3
  501. return parent
  502. end
  503.  
  504. function newIdMesh(id, size, parent)
  505. local mesh = Instance.new("SpecialMesh",parent)
  506. mesh.MeshType = 5
  507. mesh.Scale = size
  508. mesh.MeshId = "http://www.roblox.com/Asset/?id="..id
  509. return parent
  510. end
  511.  
  512. function addSoul(count)
  513. for i = 1, count do
  514. local p = newSphereMesh(newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(0,0,0),model))
  515. orbWeld[#orbWeld + 1] = weld(model:FindFirstChild("core"),p,CFrame.new(0,0,0))
  516. end
  517. end
  518.  
  519. function removeSoul(count)
  520. for i = 1, count do
  521. orbWeld[#orbWeld].Part1.Parent = nil
  522. orbWeld[#orbWeld] = nil
  523. end
  524. end
  525.  
  526. function getRadius(num)
  527. if (num < 16) then
  528. return 1
  529. else
  530. return num/16
  531. end
  532. end
  533.  
  534. local handle = newCylMesh(newPart(Vector3.new(0.2,6,0.2),BrickColor.new(1,1,1),model))
  535. handle.Name = "Handle"
  536.  
  537. weld(handle,newSphereMesh(newPart(Vector3.new(0.4,0.4,0.4),BrickColor.new(0,0,0),model)),CFrame.new(0,3,0))
  538. weld(handle,newCylMesh(newPart(Vector3.new(0.25,0.25,0.25),BrickColor.new(0,0,0),model)),CFrame.new(0,2.75,0))
  539. weld(handle,newIdMesh("3270017",Vector3.new(0.25,0.25,0.5),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(1,1,1),model)),CFrame.new(0,2.85,0)*CFrame.Angles(math.pi/2,0,0))
  540. weld(handle,newIdMesh("3270017",Vector3.new(0.22,0.22,0.5),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(1,1,1),model)),CFrame.new(0,2.6,0)*CFrame.Angles(math.pi/2,0,0))
  541. weld(handle,newSphereMesh(newPart(Vector3.new(0.4,0.4,0.4),BrickColor.new(0,0,0),model)),CFrame.new(0,-3,0))
  542. weld(handle,newCylMesh(newPart(Vector3.new(0.25,0.25,0.25),BrickColor.new(0,0,0),model)),CFrame.new(0,-2.75,0))
  543. weld(handle,newIdMesh("3270017",Vector3.new(0.25,0.25,0.5),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(1,1,1),model)),CFrame.new(0,-2.85,0)*CFrame.Angles(math.pi/2,0,0))
  544. weld(handle,newIdMesh("3270017",Vector3.new(0.22,0.22,0.5),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(1,1,1),model)),CFrame.new(0,-2.6,0)*CFrame.Angles(math.pi/2,0,0))
  545. weld(handle,newIdMesh("3270017",Vector3.new(0.25,0.25,0.5),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(1,1,1),model)),CFrame.new(0,0.5,0)*CFrame.Angles(math.pi/2,0,0))
  546. weld(handle,newIdMesh("3270017",Vector3.new(0.25,0.25,0.5),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(1,1,1),model)),CFrame.new(0,-0.5,0)*CFrame.Angles(math.pi/2,0,0))
  547. weld(handle,newIdMesh("3270017",Vector3.new(0.21,0.21,1),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(0,0,0),model)),CFrame.new(0,-0.4,0)*CFrame.Angles(math.pi/2,0,0))
  548. weld(handle,newIdMesh("3270017",Vector3.new(0.21,0.21,1),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(0,0,0),model)),CFrame.new(0,-0.3,0)*CFrame.Angles(math.pi/2,0,0))
  549. weld(handle,newIdMesh("3270017",Vector3.new(0.21,0.21,1),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(0,0,0),model)),CFrame.new(0,-0.2,0)*CFrame.Angles(math.pi/2,0,0))
  550. weld(handle,newIdMesh("3270017",Vector3.new(0.21,0.21,1),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(0,0,0),model)),CFrame.new(0,-0.1,0)*CFrame.Angles(math.pi/2,0,0))
  551. weld(handle,newIdMesh("3270017",Vector3.new(0.21,0.21,1),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(0,0,0),model)),CFrame.new(0,0.0,0)*CFrame.Angles(math.pi/2,0,0))
  552. weld(handle,newIdMesh("3270017",Vector3.new(0.21,0.21,1),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(0,0,0),model)),CFrame.new(0,0.1,0)*CFrame.Angles(math.pi/2,0,0))
  553. weld(handle,newIdMesh("3270017",Vector3.new(0.21,0.21,1),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(0,0,0),model)),CFrame.new(0,0.2,0)*CFrame.Angles(math.pi/2,0,0))
  554. weld(handle,newIdMesh("3270017",Vector3.new(0.21,0.21,1),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(0,0,0),model)),CFrame.new(0,0.3,0)*CFrame.Angles(math.pi/2,0,0))
  555. weld(handle,newIdMesh("3270017",Vector3.new(0.21,0.21,1),newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(0,0,0),model)),CFrame.new(0,0.4,0)*CFrame.Angles(math.pi/2,0,0))
  556.  
  557. local core = newPart(Vector3.new(0.2,0.2,0.2),BrickColor.new(0,0,0),model)
  558. core.Name = "core"
  559. core.Reflectance = 0.5
  560. core.Transparency = 0.25
  561. local coreWeld = weld(handle,newIdMesh("9756362",Vector3.new(0.5,0.5,0.5),core),CFrame.new(0,3.75,0))
  562. Instance.new("PointLight",core)
  563.  
  564. addSoul(8)
  565.  
  566. StaffWeld = weld(character["Torso"],handle,CFrame.new())
  567. animateArm(false, nil, nil)
  568. animateStaff(false, nil, nil)
  569.  
  570. function damage(char)
  571. if (char == nil) then return end
  572. if (char:FindFirstChild("Humanoid") ~= nil) then
  573. if (not char.Humanoid:isA("Humanoid")) then
  574. char.Parent = nil
  575. return
  576. end
  577. local humanoid = char.Humanoid
  578. if (humanoid.Health > 0 and humanoid.Health - (#orbWeld+1) <= 0) then
  579. --addSoul(1)
  580. end
  581. if (char:FindFirstChild("Bubble") ~= nil) then
  582. coroutine.resume(coroutine.create(function()
  583. if (humanoid ~= nil) then
  584. humanoid.WalkSpeed = -16
  585. end
  586. wait(5)
  587. if (humanoid ~= nil) then
  588. humanoid.WalkSpeed = 16
  589. end
  590. end))
  591. humanoid.PlatformStand = false
  592. char.Bubble.Parent = nil
  593. --addSoul(1)
  594. end
  595. humanoid.Health = humanoid.Health - (#orbWeld+1)
  596. end
  597. end
  598.  
  599. function damageDistance(char, distance)
  600. if (char == nil) then return end
  601. if (char:FindFirstChild("Torso") ~= nil) then
  602. local torso = char.Torso
  603. if ((core.Position - torso.Position).magnitude <= distance) then
  604. damage(char)
  605. end
  606. end
  607. end
  608.  
  609. function beam(start, position)
  610. coroutine.resume(coroutine.create(function()
  611. if (position == nil or start == nil) then return end
  612. local distance = (start-position).magnitude
  613. local p = newPart(Vector3.new(0.2,0.2,distance),BrickColor.new(0,0,0),model)
  614. p.Name = "beam012"
  615. p.Anchored = true
  616. p.Transparency = 0.25
  617. p.CFrame = CFrame.new((start + position)/2,start)
  618. for i = 0, 0.75, 0.1 do
  619. p.Transparency = 0.25+i
  620. wait(0.01)
  621. end
  622. p.Parent = nil
  623. end))
  624. end
  625.  
  626. tool.Selected:connect(function(mouse)
  627. if (not throw) then
  628. animateArm(true, CFrame.new(1.5,0.5,0), CFrame.new(0,0.5,0)*CFrame.Angles(-math.pi/2, 0, 0))
  629. animateStaff(true, CFrame.new(0,-1,0)*CFrame.Angles(math.pi + math.pi/2,0,0), CFrame.new())
  630. end
  631.  
  632. mouse.Button1Down:connect(function()
  633. local hit = mouse.Hit
  634. if (debounce) then
  635. return
  636. end
  637. debounce = true
  638. if (mode == "hurt") then
  639. beam(core.Position, hit.p)
  640. if (mouse.Target ~= nil) then
  641. if (mouse.Target.Name == "box") then
  642. mouse.Target.Parent = nil
  643. else
  644. damage(mouse.Target.Parent)
  645. end
  646. end
  647. elseif (mode == "throw") then
  648. animateArm(false, nil, nil)
  649. StaffWeld.Part0 = nil
  650. if (handle:FindFirstChild("BodyPosition") ~= nil) then
  651. handle:FindFirstChild("BodyPosition").Parent = nil
  652. end
  653. if (handle:FindFirstChild("BodyGyro") ~= nil) then
  654. handle:FindFirstChild("BodyGyro").Parent = nil
  655. end
  656. local bp = Instance.new("BodyPosition",handle)
  657. bp.maxForce = Vector3.new(100000,100000,100000)
  658. bp.position = handle.Position + Vector3.new(0,30,0)
  659. local bg = Instance.new("BodyGyro",handle)
  660. bg.cframe = CFrame.new(bp.position,hit.p)*CFrame.Angles(math.pi/2,0,0)
  661. wait(1)
  662. bp.position = hit.p + Vector3.new(0,2,0)
  663. wait(0.3)
  664. bg.cframe = CFrame.new(bp.position,hit.p)*CFrame.Angles(math.pi/2,0,0)
  665. throw = true
  666. elseif (mode == "build") then
  667. beam(core.Position, hit.p)
  668. local p = newPart(Vector3.new(4,4,4),BrickColor.new(0,0,0),Workspace)
  669. p.Name = "box"
  670. p.Anchored = true
  671. p.CanCollide = true
  672. p.Transparency = 0.5
  673. p.CFrame = hit*CFrame.Angles(math.random(0,math.pi*2),math.random(0,math.pi*2),math.random(0,math.pi*2))
  674. Instance.new("PointLight",p)
  675. elseif (mode == "bubble") then
  676. beam(core.Position, hit.p)
  677. if (#orbWeld > 0) then
  678. if (mouse.Target.Parent:FindFirstChild("Humanoid") ~= nil) then
  679. local humanoid = mouse.Target.Parent.Humanoid
  680. if (mouse.Target.Parent:FindFirstChild("Bubble") == nil) then
  681. if (mouse.Target.Parent:FindFirstChild("Torso") ~= nil) then
  682. local torso = mouse.Target.Parent.Torso
  683. local part = newPart(Vector3.new(8,8,8),BrickColor.new(0,0,0),mouse.Target.Parent)
  684. part.Name = "Bubble"
  685. part.Anchored = false
  686. part.CanCollide = true
  687. part.Shape = 0
  688. part.Transparency = 0.5
  689. part.CFrame = torso.CFrame
  690. Instance.new("PointLight",part)
  691. weld(torso,part,CFrame.new())
  692. humanoid.PlatformStand = true
  693. -- removeSoul(1)
  694. end
  695. else
  696. coroutine.resume(coroutine.create(function()
  697. if (humanoid ~= nil) then
  698. humanoid.WalkSpeed = -50
  699. end
  700. wait(5)
  701. if (humanoid ~= nil) then
  702. humanoid.WalkSpeed = 16
  703. end
  704. end))
  705. humanoid.PlatformStand = false
  706. mouse.Target.Parent.Bubble.Parent = nil
  707. --addSoul(1)
  708. end
  709. end
  710. end
  711. elseif (mode == "beam") then
  712. if (not hold and not throw) then
  713. animateStaff(true, CFrame.new(0,-1,0)*CFrame.Angles(math.pi,0,0), CFrame.new())
  714. hold = true
  715. holdTime = 0
  716. end
  717. elseif (mode == "portal") then
  718. handle.Anchored = true
  719. local p = newCylMesh(newPart(Vector3.new(1,0.25,1),BrickColor.new(0,0,0),model))
  720. p.Anchored = true
  721. p.CFrame = CFrame.new(handle.Position) + Vector3.new(0,-2,0)
  722. local c = p.CFrame
  723. for i=1,15,0.5 do
  724. p.Size = p.Size+Vector3.new(0.5,0,0.5)
  725. p.CFrame = c
  726. wait(0.01)
  727. end
  728. local p1 = newCylMesh(newPart(Vector3.new(1,0.25,1),BrickColor.new(0,0,0),model))
  729. p1.Anchored = true
  730. p1.CFrame = CFrame.new(hit.p)
  731. p1.CFrame = CFrame.new(hit.p)
  732. local c1 = p1.CFrame
  733. handle.Anchored = false
  734. for i,v in ipairs(game.Workspace:getChildren()) do
  735. if (v:FindFirstChild("Torso") ~= nil) then
  736. if ((core.Position - v.Torso.Position).magnitude <= 8) then
  737. coroutine.resume(coroutine.create(function()
  738. v.Torso.CFrame = CFrame.new(Vector3.new(v.Torso.Position.x,p.Position.y+3,v.Torso.Position.z),v.Torso.CFrame.lookVector)
  739. v.Torso.Anchored = true
  740. for i=0, 10 do
  741. v.Torso.CFrame = v.Torso.CFrame+Vector3.new(0,-1,0)
  742. wait(0.1)
  743. end
  744. v.Torso.CFrame = CFrame.new(v.Torso.Position - (p.Position - p1.Position),v.Torso.CFrame.lookVector) + Vector3.new(0,4,0)
  745. for i=0, 10 do
  746. v.Torso.CFrame = v.Torso.CFrame+Vector3.new(0,1,0)
  747. wait(0.1)
  748. end
  749. v.Torso.Anchored = false
  750. end))
  751. end
  752. end
  753. end
  754. for i=1,15,0.5 do
  755. p.Size = p.Size+Vector3.new(-0.5,0,-0.5)
  756. p1.Size = p1.Size+Vector3.new(0.5,0,0.5)
  757. p.CFrame = c
  758. p1.CFrame = c1
  759. wait(0.01)
  760. end
  761. p.Parent = nil
  762. wait(1)
  763. for i=1,15,1 do
  764. p1.Size = p1.Size+Vector3.new(-1,0,-1)
  765. p1.CFrame = c1
  766. wait(0.01)
  767. end
  768. p1.Parent = nil
  769. end
  770. debounce = false
  771. end)
  772.  
  773. mouse.Button1Up:connect(function()
  774. if (debounce2) then
  775. return
  776. end
  777. debounce2 = true
  778. if (mode == "beam") then
  779. if (hold and holdTime >= 10) then
  780. if (#orbWeld > 0) then
  781. local p = newSphereMesh(newPart(Vector3.new(4,4,4),BrickColor.new(0,0,0),Workspace))
  782. p.Name = "1"
  783. p.Transparency = 0.5
  784. local point = core.CFrame*CFrame.Angles(math.pi/2, 0, 0)
  785. p.CFrame = CFrame.new(core.Position + point.lookVector*4,core.Position)
  786. Instance.new("PointLight",p)
  787.  
  788. local bs = Instance.new("BodyVelocity",p)
  789. bs.velocity = point.lookVector*(2*holdTime)+Vector3.new(0,0.25,0)
  790. bs.maxForce = Vector3.new(100000,100000,100000)
  791.  
  792. p.Touched:connect(function(part)
  793. if (part.Name ~= "beam012") then
  794. if (p.Name == "3") then
  795. p.Parent = nil
  796. elseif (p.Name == "2") then
  797. p.Name = "3"
  798. elseif (p.Name == "1") then
  799. p.Name = "2"
  800. end
  801. part.Parent = nil
  802. end
  803. end)
  804.  
  805. coroutine.resume(coroutine.create(function()
  806. for i = 1, 5, 0.01 do
  807. if (p.Parent ~= nil) then
  808. beam(p.Position, p.Position+Vector3.new(math.random(-5,5),math.random(-5,5),math.random(-5,5)))
  809. end
  810. wait(0.01)
  811. end
  812. p.Parent = nil
  813. end))
  814.  
  815. wait(1)
  816. --removeSoul(2)
  817. end
  818. end
  819. hold = false
  820. holdTime = 0
  821. animateStaff(true, CFrame.new(0,-1,0)*CFrame.Angles(math.pi + math.pi/2,0,0), CFrame.new())
  822. end
  823. debounce2 = false
  824. end)
  825.  
  826. mouse.KeyDown:connect(function (key)
  827. keys[key] = true
  828. if (keys["z"]) then
  829. mode = "hurt"
  830. elseif (keys["x"]) then
  831. mode = "bubble"
  832. elseif (keys["q"]) then
  833. mode = "beam"
  834. elseif (keys["c"]) then
  835. mode = "drain"
  836. elseif (keys["v"]) then
  837. mode = "build"
  838. elseif (keys["e"]) then
  839. if (mode ~= "throw") then
  840. mode = "throw"
  841. else
  842. if (debounce) then return end
  843. debounce = true
  844. if (throw) then
  845. handle:FindFirstChild("BodyPosition").Parent = nil
  846. handle:FindFirstChild("BodyGyro").Parent = nil
  847. throw = false
  848. animateArm(true, CFrame.new(1.5,0.5,0), CFrame.new(0,0.5,0)*CFrame.Angles(-math.pi/2, 0, 0))
  849. animateStaff(true, CFrame.new(0,-1,0)*CFrame.Angles(math.pi + math.pi/2,0,0), CFrame.new())
  850. end
  851. debounce = false
  852. end
  853. elseif (keys["b"]) then
  854. if (debounce) then return end
  855. debounce = true
  856. if (throw) then
  857. local p = newCylMesh(newPart(Vector3.new(1,0.25,1),BrickColor.new(0,0,0),model))
  858. p.Anchored = true
  859. p.CFrame = CFrame.new(handle.Position) + Vector3.new(0,-2,0)
  860. local c = p.CFrame
  861. for i=1,30,0.5 do
  862. p.Size = p.Size+Vector3.new(0.5,0,0.5)
  863. p.CFrame = c
  864. wait(0.01)
  865. end
  866. for i,v in ipairs(game.Workspace:getChildren()) do
  867. if (v:FindFirstChild("Torso") ~= nil) then
  868. if ((core.Position - v.Torso.Position).magnitude <= 15) then
  869. coroutine.resume(coroutine.create(function()
  870. v.Torso.CFrame = CFrame.new(Vector3.new(v.Torso.Position.x,p.Position.y+3,v.Torso.Position.z),v.Torso.CFrame.lookVector)
  871. v.Torso.Anchored = true
  872. for i=0, 10 do
  873. v.Torso.CFrame = v.Torso.CFrame+Vector3.new(0,-1,0)
  874. wait(0.1)
  875. end
  876. v:BreakJoints()
  877. end))
  878. end
  879. end
  880. end
  881. for i=1,30,1 do
  882. p.Size = p.Size+Vector3.new(-1,0,-1)
  883. p.CFrame = c
  884. wait(0.01)
  885. end
  886. p.Parent = nil
  887. end
  888. debounce = false
  889. elseif (keys["f"]) then
  890. mode = "portal"
  891. end
  892. end)
  893. mouse.KeyUp:connect(function (key) keys[key] = false end)
  894. end)
  895.  
  896. tool.Deselected:connect(function()
  897. hold = false
  898. holdTime = 0
  899. if (not throw) then
  900. animateArm(false, nil, nil)
  901. animateStaff(false, nil, nil)
  902. end
  903. end)
  904.  
  905. local y = 0
  906. local x = 0
  907. game:getService("RunService").Stepped:connect(function()
  908. if (hold) then
  909. holdTime = holdTime+0.5
  910. if(holdTime >= 10) then
  911. beam(core.Position, core.Position+Vector3.new(math.random(-5,5),math.random(-5,5),math.random(-5,5)))
  912. end
  913. end
  914.  
  915. if (mode == "drain") then
  916. for q,v in pairs(Workspace:getChildren()) do
  917. if (v ~= character and math.random(1,10) == 1) then
  918. damageDistance(v, 10)
  919. end
  920. end
  921. beam(core.Position, core.Position+Vector3.new(math.random(-5,5),math.random(-5,5),math.random(-5,5)))
  922. end
  923.  
  924. coreWeld.C0 = CFrame.new(0,3.75,0)+Vector3.new(0,math.sin(y)/4,0)
  925.  
  926. for i,v in ipairs(orbWeld) do
  927. local radius = getRadius(#orbWeld)
  928.  
  929. local index = x + ((math.pi*2)/#orbWeld)*(i-1)
  930.  
  931. orbWeld[i].C0 = CFrame.new(radius*math.sin(index), 0, radius*math.cos(index))
  932. end
  933.  
  934. if (y < math.pi*2) then
  935. y = y + math.pi*2/128
  936. else
  937. y = math.pi*2/128
  938. end
  939.  
  940. if (x < math.pi*2) then
  941. x = x + math.pi*2/128
  942. else
  943. x = math.pi*2/128
  944. end
  945. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement