Advertisement
Mediakiller7Cool

Vacuum To Kill Skids

Apr 11th, 2020
442
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 28.85 KB | None | 0 0
  1. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  2. local Player,game,owner = owner,game
  3. local RealPlayer = Player
  4. do
  5.     print("FE Compatibility code V2 by Mokiros")
  6.     local RealPlayer = RealPlayer
  7.     script.Parent = RealPlayer.Character
  8.  
  9.     --Fake event to make stuff like Mouse.KeyDown work
  10.     local Disconnect_Function = function(this)
  11.         this[1].Functions[this[2]] = nil
  12.     end
  13.     local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
  14.     local FakeEvent_Metatable = {__index={
  15.         Connect = function(this,f)
  16.             local i = tostring(math.random(0,10000))
  17.             while this.Functions[i] do
  18.                 i = tostring(math.random(0,10000))
  19.             end
  20.             this.Functions[i] = f
  21.             return setmetatable({this,i},Disconnect_Metatable)
  22.         end
  23.     }}
  24.     FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
  25.     local function fakeEvent()
  26.         return setmetatable({Functions={}},FakeEvent_Metatable)
  27.     end
  28.  
  29.     --Creating fake input objects with fake variables
  30.     local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
  31.     FakeMouse.keyUp = FakeMouse.KeyUp
  32.     FakeMouse.keyDown = FakeMouse.KeyDown
  33.     local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  34.     local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  35.         CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  36.     end}
  37.     --Merged 2 functions into one by checking amount of arguments
  38.     CAS.UnbindAction = CAS.BindAction
  39.  
  40.     --This function will trigger the events that have been :Connect()'ed
  41.     local function TriggerEvent(self,ev,...)
  42.         for _,f in pairs(self[ev].Functions) do
  43.             f(...)
  44.         end
  45.     end
  46.     FakeMouse.TriggerEvent = TriggerEvent
  47.     UIS.TriggerEvent = TriggerEvent
  48.  
  49.     --Client communication
  50.     local Event = Instance.new("RemoteEvent")
  51.     Event.Name = "UserInput_Event"
  52.     Event.OnServerEvent:Connect(function(plr,io)
  53.         if plr~=RealPlayer then return end
  54.         FakeMouse.Target = io.Target
  55.         FakeMouse.Hit = io.Hit
  56.         if not io.isMouse then
  57.             local b = io.UserInputState == Enum.UserInputState.Begin
  58.             if io.UserInputType == Enum.UserInputType.MouseButton1 then
  59.                 return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
  60.             end
  61.             if io.UserInputType == Enum.UserInputType.MouseButton2 then
  62.                 return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
  63.             end
  64.             for _,t in pairs(CAS.Actions) do
  65.                 for _,k in pairs(t.Keys) do
  66.                     if k==io.KeyCode then
  67.                         t.Function(t.Name,io.UserInputState,io)
  68.                     end
  69.                 end
  70.             end
  71.             FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  72.             UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
  73.         end
  74.     end)
  75.     Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
  76.     local Mouse = owner:GetMouse()
  77.     local UIS = game:GetService("UserInputService")
  78.     local input = function(io,RobloxHandled)
  79.         if RobloxHandled then return end
  80.         --Since InputObject is a client-side instance, we create and pass table instead
  81.         Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  82.     end
  83.     UIS.InputBegan:Connect(input)
  84.     UIS.InputEnded:Connect(input)
  85.     local h,t
  86.     --Give the server mouse data every second frame, but only if the values changed
  87.     --If player is not moving their mouse, client won't fire events
  88.     local HB = game:GetService("RunService").Heartbeat
  89.     while true do
  90.         if h~=Mouse.Hit or t~=Mouse.Target then
  91.             h,t=Mouse.Hit,Mouse.Target
  92.             Event:FireServer({isMouse=true,Target=t,Hit=h})
  93.         end
  94.         --Wait 2 frames
  95.         for i=1,2 do
  96.             HB:Wait()
  97.         end
  98.     end]==],script)
  99.  
  100.     ----Sandboxed game object that allows the usage of client-side methods and services
  101.     --Real game object
  102.     local RealGame = game
  103.  
  104.     --Metatable for fake service
  105.     local FakeService_Metatable = {
  106.         __index = function(self,k)
  107.             local s = rawget(self,"_RealService")
  108.             if s then
  109.                 return typeof(s[k])=="function"
  110.                 and function(_,...)return s[k](s,...)end or s[k]
  111.             end
  112.         end,
  113.         __newindex = function(self,k,v)
  114.             local s = rawget(self,"_RealService")
  115.             if s then s[k]=v end
  116.         end
  117.     }
  118.     local function FakeService(t,RealService)
  119.         t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
  120.         return setmetatable(t,FakeService_Metatable)
  121.     end
  122.  
  123.     --Fake game object
  124.     local FakeGame = {
  125.         GetService = function(self,s)
  126.             return rawget(self,s) or RealGame:GetService(s)
  127.         end,
  128.         Players = FakeService({
  129.             LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
  130.         },"Players"),
  131.         UserInputService = FakeService(UIS,"UserInputService"),
  132.         ContextActionService = FakeService(CAS,"ContextActionService"),
  133.         RunService = FakeService({
  134.             _btrs = {},
  135.             RenderStepped = RealGame:GetService("RunService").Heartbeat,
  136.             BindToRenderStep = function(self,name,_,fun)
  137.                 self._btrs[name] = self.Heartbeat:Connect(fun)
  138.             end,
  139.             UnbindFromRenderStep = function(self,name)
  140.                 self._btrs[name]:Disconnect()
  141.             end,
  142.         },"RunService")
  143.     }
  144.     rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
  145.     FakeGame.service = FakeGame.GetService
  146.     FakeService(FakeGame,game)
  147.     --Changing owner to fake player object to support owner:GetMouse()
  148.     game,owner = FakeGame,FakeGame.Players.LocalPlayer
  149. end
  150. --//====================================================\\--
  151. --||               CREATED BY SHACKLUSTER
  152. --\\====================================================//--
  153.  
  154.  
  155.  
  156. wait(0.2)
  157.  
  158.  
  159.  
  160. Player = game:GetService("Players").LocalPlayer
  161. PlayerGui = Player.PlayerGui
  162. Cam = workspace.CurrentCamera
  163. Backpack = Player.Backpack
  164. Character = Player.Character
  165. Humanoid = Character.Humanoid
  166. Mouse = Player:GetMouse()
  167. RootPart = Character["HumanoidRootPart"]
  168. Torso = Character["Torso"]
  169. Head = Character["Head"]
  170. RightArm = Character["Right Arm"]
  171. LeftArm = Character["Left Arm"]
  172. RightLeg = Character["Right Leg"]
  173. LeftLeg = Character["Left Leg"]
  174. RootJoint = RootPart["RootJoint"]
  175. Neck = Torso["Neck"]
  176. RightShoulder = Torso["Right Shoulder"]
  177. LeftShoulder = Torso["Left Shoulder"]
  178. RightHip = Torso["Right Hip"]
  179. LeftHip = Torso["Left Hip"]
  180. local sick = Instance.new("Sound",Torso)
  181. sick.SoundId = "rbxassetid://319444224"
  182. sick.Looped = true
  183. sick.Pitch = 1
  184. sick.Volume = 1
  185. local succing = {}
  186.  
  187. IT = Instance.new
  188. CF = CFrame.new
  189. VT = Vector3.new
  190. RAD = math.rad
  191. C3 = Color3.new
  192. UD2 = UDim2.new
  193. BRICKC = BrickColor.new
  194. ANGLES = CFrame.Angles
  195. EULER = CFrame.fromEulerAnglesXYZ
  196. COS = math.cos
  197. ACOS = math.acos
  198. SIN = math.sin
  199. ASIN = math.asin
  200. ABS = math.abs
  201. MRANDOM = math.random
  202. FLOOR = math.floor
  203.  
  204. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  205.     local NEWMESH = IT(MESH)
  206.     if MESH == "SpecialMesh" then
  207.         NEWMESH.MeshType = MESHTYPE
  208.         if MESHID ~= "nil" and MESHID ~= "" then
  209.             NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  210.         end
  211.         if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  212.             NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  213.         end
  214.     end
  215.     NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  216.     NEWMESH.Scale = SCALE
  217.     NEWMESH.Parent = PARENT
  218.     return NEWMESH
  219. end
  220.  
  221. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE)
  222.     local NEWPART = IT("Part")
  223.     NEWPART.formFactor = FORMFACTOR
  224.     NEWPART.Reflectance = REFLECTANCE
  225.     NEWPART.Transparency = TRANSPARENCY
  226.     NEWPART.CanCollide = false
  227.     NEWPART.Locked = true
  228.     NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  229.     NEWPART.Name = NAME
  230.     NEWPART.Size = SIZE
  231.     NEWPART.Position = Torso.Position
  232.     NEWPART.Material = MATERIAL
  233.     NEWPART:BreakJoints()
  234.     NEWPART.Parent = PARENT
  235.     return NEWPART
  236. end
  237.  
  238.  
  239. --//=================================\\
  240. --||          CUSTOMIZATION
  241. --\\=================================//
  242.  
  243. Class_Name = "Template"
  244. Weapon_Name = "Add-ons"
  245.  
  246. Custom_Colors = {
  247.     Custom_Color_1 = BRICKC("Institutional white"); --1st color for the weapon.
  248.     Custom_Color_2 = BRICKC("Institutional white"); --2nd color for the weapon.
  249.  
  250.     Custom_Color_3 = BRICKC("Institutional white"); --Color for the abilities.
  251.     Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar.
  252.     Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar.
  253.     Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar.
  254.     Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar.
  255.  
  256.     Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar.
  257.     Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar.
  258.     Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar.
  259.     Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar.
  260.     Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities.
  261. }
  262.  
  263.  
  264. Player_Size = 1 --Size of the player.
  265. Animation_Speed = 3
  266. Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
  267.  
  268. local Speed = 16
  269. local Effects2 = {}
  270.  
  271. --//=================================\\
  272. --||      END OF CUSTOMIZATION
  273. --\\=================================//
  274.  
  275.     local function weldBetween(a, b)
  276.         local weldd = Instance.new("ManualWeld")
  277.         weldd.Part0 = a
  278.         weldd.Part1 = b
  279.         weldd.C0 = CFrame.new()
  280.         weldd.C1 = b.CFrame:inverse() * a.CFrame
  281.         weldd.Parent = a
  282.         return weldd
  283.     end
  284.  
  285. function createaccessory(attachmentpart,mesh,texture,scale,offset,color)
  286. local acs = Instance.new("Part")
  287. acs.CanCollide = false
  288. acs.Anchored = false
  289. acs.Size = Vector3.new(0,0,0)
  290. acs.CFrame = attachmentpart.CFrame
  291. acs.Parent = Character
  292. acs.BrickColor = color
  293.     local meshs = Instance.new("SpecialMesh")
  294.     meshs.MeshId = mesh
  295.     meshs.TextureId = texture
  296.     meshs.Parent = acs
  297.     meshs.Scale = scale
  298.     meshs.Offset = offset
  299. weldBetween(attachmentpart,acs)
  300. end
  301.  
  302. function createbodypart(TYPE,COLOR,PART,OFFSET,SIZE)
  303. if TYPE == "Gem" then
  304.     local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
  305.     acs.Anchored = false
  306.     acs.CanCollide = false
  307.     acs.CFrame = PART.CFrame
  308.     local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "9756362", "", SIZE, OFFSET)
  309. weldBetween(PART,acs)
  310. elseif TYPE == "Skull" then
  311.     local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
  312.     acs.Anchored = false
  313.     acs.CanCollide = false
  314.     acs.CFrame = PART.CFrame
  315.     local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "4770583", "", SIZE, OFFSET)
  316. weldBetween(PART,acs)
  317. elseif TYPE == "Eye" then
  318.     local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
  319.     acs.Anchored = false
  320.     acs.CanCollide = false
  321.     acs.CFrame = PART.CFrame
  322.     local acs2 = CreateMesh("SpecialMesh", acs, "Sphere", "", "", SIZE, OFFSET)
  323. weldBetween(PART,acs)
  324. end
  325. end
  326.  
  327. --//=================================\\
  328. --||          USEFUL VALUES
  329. --\\=================================//
  330.  
  331. local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  332. local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  333. local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
  334. local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
  335. local CO1 = 0
  336. local CO2 = 0
  337. local CO3 = 0
  338. local CO4 = 0
  339. local CHANGEDEFENSE = 0
  340. local CHANGEDAMAGE = 0
  341. local CHANGEMOVEMENT = 0
  342. local ANIM = "Idle"
  343. local ATTACK = false
  344. local EQUIPPED = false
  345. local HOLD = false
  346. local COMBO = 1
  347. local LASTPOINT = nil
  348. local BLCF = nil
  349. local SCFR = nil
  350. local STAGGERHITANIM = false
  351. local STAGGERANIM = false
  352. local STUNANIM = false
  353. local CRITCHANCENUMBER = 0
  354. local IDLENUMBER = 0
  355. local DONUMBER = 0
  356. local HANDIDLE = false
  357. local SINE = 0
  358. local CHANGE = 2 / Animation_Speed
  359. local WALKINGANIM = false
  360. local WALK = 0
  361. local DISABLEJUMPING = false
  362. local HASBEENBLOCKED = false
  363. local STUNDELAYNUMBER = 0
  364. local MANADELAYNUMBER = 0
  365. local SECONDARYMANADELAYNUMBER = 0
  366. local ROBLOXIDLEANIMATION = IT("Animation")
  367. ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
  368. ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
  369. --ROBLOXIDLEANIMATION.Parent = Humanoid
  370. local WEAPONGUI = IT("ScreenGui", nil)
  371. WEAPONGUI.Name = "Weapon GUI"
  372. local WEAPONTOOL = IT("HopperBin", nil)
  373. WEAPONTOOL.Name = Weapon_Name
  374. local Weapon = IT("Model")
  375. Weapon.Name = Weapon_Name
  376. local Effects = IT("Folder", Weapon)
  377. Effects.Name = "Effects"
  378. local ANIMATOR = Humanoid.Animator
  379. local ANIMATE = Character.Animate
  380. local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
  381. local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
  382. local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
  383. local HITBLOCKSOUNDS = {"199148933", "199148947"}
  384. local UNANCHOR = true
  385. local MAGICPARTICLE = "655109389"
  386.  
  387. --//=================================\\
  388. --\\=================================//
  389.  
  390.  
  391. --//=================================\\
  392. --||         DEBUFFS / BUFFS
  393. --\\=================================//
  394.  
  395. local DEFENSECHANGE1 = IT("NumberValue", ChangeStat)
  396. DEFENSECHANGE1.Name = "ChangeDefense"
  397. DEFENSECHANGE1.Value = 0
  398.  
  399. local MOVEMENTCHANGE1 = IT("NumberValue", nil)
  400. MOVEMENTCHANGE1.Name = "ChangeMovement"
  401. MOVEMENTCHANGE1.Value = 0
  402.  
  403. --//=================================\\
  404. --\\=================================//
  405.  
  406.  
  407.  
  408.  
  409.  
  410. --//=================================\\
  411. --|| SAZERENOS' ARTIFICIAL HEARTBEAT
  412. --\\=================================//
  413.  
  414. ArtificialHB = Instance.new("BindableEvent", script)
  415. ArtificialHB.Name = "ArtificialHB"
  416.  
  417. script:WaitForChild("ArtificialHB")
  418.  
  419. frame = Frame_Speed
  420. tf = 0
  421. allowframeloss = false
  422. tossremainder = false
  423. lastframe = tick()
  424. script.ArtificialHB:Fire()
  425.  
  426. game:GetService("RunService").Heartbeat:connect(function(s, p)
  427.     tf = tf + s
  428.     if tf >= frame then
  429.         if allowframeloss then
  430.             script.ArtificialHB:Fire()
  431.             lastframe = tick()
  432.         else
  433.             for i = 1, math.floor(tf / frame) do
  434.                 script.ArtificialHB:Fire()
  435.             end
  436.         lastframe = tick()
  437.         end
  438.         if tossremainder then
  439.             tf = 0
  440.         else
  441.             tf = tf - frame * math.floor(tf / frame)
  442.         end
  443.     end
  444. end)
  445.  
  446. --//=================================\\
  447. --\\=================================//
  448.  
  449.  
  450.  
  451.  
  452.  
  453. --//=================================\\
  454. --||          SOME FUNCTIONS
  455. --\\=================================//
  456.  
  457. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  458.     return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  459. end
  460.  
  461. function PositiveAngle(NUMBER)
  462.     if NUMBER >= 0 then
  463.         NUMBER = 0
  464.     end
  465.     return NUMBER
  466. end
  467.  
  468. function NegativeAngle(NUMBER)
  469.     if NUMBER <= 0 then
  470.         NUMBER = 0
  471.     end
  472.     return NUMBER
  473. end
  474.  
  475. function Swait(NUMBER)
  476.     if NUMBER == 0 or NUMBER == nil then
  477.         ArtificialHB.Event:wait()
  478.     else
  479.         for i = 1, NUMBER do
  480.             ArtificialHB.Event:wait()
  481.         end
  482.     end
  483. end
  484.  
  485. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  486.     local label = IT("TextLabel")
  487.     label.BackgroundTransparency = 1
  488.     label.Size = UD2(1, 0, 1, 0)
  489.     label.Position = UD2(0, 0, 0, 0)
  490.     label.TextColor3 = C3(255, 255, 255)
  491.     label.TextStrokeTransparency = STROKETRANSPARENCY
  492.     label.TextTransparency = TRANSPARENCY
  493.     label.FontSize = TEXTFONTSIZE
  494.     label.Font = TEXTFONT
  495.     label.BorderSizePixel = BORDERSIZEPIXEL
  496.     label.TextScaled = true
  497.     label.Text = TEXT
  498.     label.Name = NAME
  499.     label.Parent = PARENT
  500.     return label
  501. end
  502.  
  503. function NoOutlines(PART)
  504.     PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  505. end
  506.  
  507.  
  508. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  509.     local NEWWELD = IT(TYPE)
  510.     NEWWELD.Part0 = PART0
  511.     NEWWELD.Part1 = PART1
  512.     NEWWELD.C0 = C0
  513.     NEWWELD.C1 = C1
  514.     NEWWELD.Parent = PARENT
  515.     return NEWWELD
  516. end
  517.  
  518. function CreateSound(ID, PARENT, VOLUME, PITCH)
  519.     local NEWSOUND = nil
  520.     coroutine.resume(coroutine.create(function()
  521.         NEWSOUND = IT("Sound", PARENT)
  522.         NEWSOUND.Volume = VOLUME
  523.         NEWSOUND.Pitch = PITCH
  524.         NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  525.         Swait()
  526.         NEWSOUND:play()
  527.         game:GetService("Debris"):AddItem(NEWSOUND, 10)
  528.     end))
  529.     return NEWSOUND
  530. end
  531.  
  532. --//=================================\\
  533. --\\=================================//
  534.  
  535.  
  536. --//=================================\\
  537. --||         WEAPON CREATION
  538. --\\=================================//
  539.  
  540. if Player_Size ~= 1 then
  541.     for _, v in pairs (Weapon:GetChildren()) do
  542.         if v.ClassName == "Motor" or v.ClassName == "Weld" or v.ClassName == "Snap" then
  543.             local p1 = v.Part1
  544.             v.Part1 = nil
  545.             local cf1, cf2, cf3, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12 = v.C1:components()
  546.             v.C1 = CF(cf1 * Player_Size, cf2 * Player_Size, cf3 * Player_Size, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12)
  547.             v.Part1 = p1
  548.         elseif v.ClassName == "Part" then
  549.             for _, b in pairs (v:GetChildren()) do
  550.                 if b.ClassName == "SpecialMesh" or b.ClassName == "BlockMesh" then
  551.                     b.Scale = VT(b.Scale.x * Player_Size, b.Scale.y * Player_Size, b.Scale.z * Player_Size)
  552.                 end
  553.             end
  554.         end
  555.     end
  556. end
  557.  
  558. for _, c in pairs(Weapon:GetChildren()) do
  559.     if c.ClassName == "Part" then
  560.         c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  561.     end
  562. end
  563.  
  564. Weapon.Parent = Character
  565.  
  566. Humanoid.Died:connect(function()
  567.     ATTACK = true
  568. end)
  569.  
  570. print(Class_Name.." loaded.")
  571.  
  572. --//=================================\\
  573. --\\=================================//
  574.  
  575.  
  576. local backpack = IT("Part",Weapon)
  577. backpack.Size = VT(0.15,0.15,0.15)
  578. local mesh = IT("SpecialMesh",backpack)
  579. mesh.MeshId = "rbxassetid://84313478"
  580. mesh.TextureId = "http://www.roblox.com/asset/?id=84313638"
  581. backpack.CFrame = Torso.CFrame * CF(0,0.2,1)
  582. backpack.BrickColor = BRICKC("Black")
  583. weldBetween(Torso,backpack)
  584.  
  585. local hose = IT("Part",Weapon)
  586. hose.Size = VT(0.15,0.15,0.15)
  587. local mesh = IT("SpecialMesh",hose)
  588. mesh.MeshId = "http://www.roblox.com/asset/?id=84313555"
  589. mesh.TextureId = "http://www.roblox.com/asset/?id=84313638"
  590. mesh.Scale = VT(2,2,2)
  591. mesh.Offset = VT(0, -0.4, -0.7)
  592. hose.CFrame = Torso.CFrame * CF(1.5,0.5,0.2) * ANGLES(RAD(90),RAD(35),RAD(180))
  593. hose.BrickColor = BRICKC("Black")
  594. weldBetween(Torso,hose)
  595.  
  596. local succ = IT("Part",Weapon)
  597. succ.Size = VT(2,2,2)
  598. succ.CanCollide = false
  599. succ.CFrame = Torso.CFrame * CF(1.5,1.3,-4) * ANGLES(RAD(90),RAD(0),RAD(180))
  600. succ.Transparency = 1
  601. succ.BrickColor = BRICKC("Black")
  602. weldBetween(Torso,succ)
  603.  
  604. for _, c in pairs(Weapon:GetChildren()) do
  605.     if c.ClassName == "Part" then
  606.         c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  607.     end
  608. end
  609.  
  610. local EyeSizes={
  611.     NumberSequenceKeypoint.new(0,0.5,0),
  612.     NumberSequenceKeypoint.new(1,0.2,0)
  613. }
  614. local EyeTrans={
  615.     NumberSequenceKeypoint.new(0,0,0),
  616.     NumberSequenceKeypoint.new(1,1,0)
  617. }
  618. local PE=Instance.new("ParticleEmitter")
  619. PE.LightEmission=0.3
  620. PE.Size=NumberSequence.new(EyeSizes)
  621. PE.Transparency=NumberSequence.new(EyeTrans)
  622. PE.Rotation=NumberRange.new(0,360)
  623. PE.LockedToPart = false
  624. PE.Speed = NumberRange.new(0,0,0)
  625. PE.ZOffset = 0.3
  626. PE.Rate = 999
  627. PE.VelocitySpread = 25
  628. PE.Name = "Particles"
  629.  
  630. function CreateParticles(art,accel,drag,lifetime,type,isenabledbydefault,locked,size,speed)
  631.     local particle = nil
  632.     coroutine.resume(coroutine.create(function(PART)
  633.         particle = PE:Clone()
  634.         Swait()
  635.         particle.Rate = 999
  636.         particle.Parent = art
  637.         particle.Acceleration = accel
  638.         if type == "Fire" then
  639.             local EyeSizes={
  640.                 NumberSequenceKeypoint.new(0,size,size/2),
  641.                 NumberSequenceKeypoint.new(1,size/4,size/8)
  642.             }
  643.             particle.Size = NumberSequence.new(EyeSizes)
  644.         elseif type == "Smoke" then
  645.             local EyeSizes={
  646.                 NumberSequenceKeypoint.new(0,size/5,0),
  647.                 NumberSequenceKeypoint.new(1,size*2,0.5)
  648.             }
  649.             particle.Size = NumberSequence.new(EyeSizes)
  650.         elseif type == "Solid" then
  651.             local EyeSizes={
  652.                 NumberSequenceKeypoint.new(0,size,0),
  653.                 NumberSequenceKeypoint.new(1,size,0)
  654.             }
  655.             particle.Size = NumberSequence.new(EyeSizes)
  656.         end
  657.         particle.Lifetime=NumberRange.new(lifetime)
  658.         particle.Drag = drag
  659.         if locked == true then
  660.             particle.LockedToPart = true
  661.         end
  662.         particle.Speed = NumberRange.new(speed*0.8,speed)
  663.         particle.Texture = "http://www.roblox.com/asset/?id=1179557490"
  664.         particle.Enabled = isenabledbydefault
  665.         particle.Color = ColorSequence.new(Color3.new(255/255, 176/255, 0))
  666.     end))
  667. return particle
  668. end
  669.  
  670. local poop = CreateParticles(succ,VT(0,0,0),5,2,"Smoke",false,false,5,35)
  671. local poop2 = CreateParticles(succ,VT(0,0,0),5,1,"Smoke",false,false,2,15)
  672.  
  673. --//=================================\\
  674. --||            DAMAGING
  675. --\\=================================//
  676.  
  677. function succnearest(position,range)
  678.     for i,v in ipairs(workspace:GetChildren()) do
  679.     local body = v:GetChildren()
  680.         for part = 1, #body do
  681.             if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
  682.                 if(body[part].Position - position).Magnitude < range then
  683.                     local bv = Instance.new("BodyVelocity")
  684.                     bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  685.                     bv.velocity = CF(body[part].Position,succ.Position).lookVector*80
  686.                     bv.Parent = body[part]
  687.                     bv.Name = "SUCC"
  688.                     game:GetService("Debris"):AddItem(bv, 0.1)
  689.                 end
  690.             end
  691.         end
  692.         if v.ClassName == "Part" then
  693.             if v.Anchored == false and (v.Position - position).Magnitude < range then
  694.                 local bv = Instance.new("BodyVelocity")
  695.                 bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  696.                 bv.velocity = CF(v.Position,succ.Position).lookVector*80
  697.                 bv.Parent = v
  698.                 bv.Name = "SUCC"
  699.                 game:GetService("Debris"):AddItem(bv, 0.1)
  700.             end
  701.         end
  702.     end
  703. end
  704.  
  705. function cover(position,range)
  706.     for i,v in ipairs(workspace:GetChildren()) do
  707.     local body = v:GetChildren()
  708.         for part = 1, #body do
  709.             if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
  710.                 if(body[part].Position - position).Magnitude < range then
  711.                     CreateParticles(body[part],VT(0,-2,0),5,1,"Smoke",true,false,0.3,0)
  712.                     if v:FindFirstChild("Humanoid") then
  713.                         v.Humanoid.PlatformStand = true
  714.                     end
  715.                 end
  716.             end
  717.         end
  718.         if v.ClassName == "Part" then
  719.             if v.Anchored == false and (v.Position - position).Magnitude < range then
  720.                 CreateParticles(v,VT(0,-2,0),5,1,"Smoke",true,false,0.3,0)
  721.             end
  722.         end
  723.     end
  724. end
  725.  
  726. function cough()
  727.     CreateSound("328460122", succ, 3, 1)
  728.     poop.VelocitySpread = 25
  729.     poop:Emit(150)
  730.     cover(CF(succ.Position)*CF(0,0,-1).p,15)
  731. end
  732.  
  733. --//=================================\\
  734. --||    ATTACK FUNCTIONS AND STUFF
  735. --\\=================================//
  736.  
  737. function CheckTableForString(Table, String)
  738.     for i, v in pairs(Table) do
  739.         if string.find(string.lower(String), string.lower(v)) then
  740.             return true
  741.         end
  742.     end
  743.     return false
  744. end
  745.  
  746. function CheckIntangible(Hit)
  747.     local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
  748.     if Hit and Hit.Parent then
  749.         if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
  750.             return true
  751.         end
  752.     end
  753.     return false
  754. end
  755.  
  756. Debris = game:GetService("Debris")
  757.  
  758. function CastRay(StartPos, Vec, Length, Ignore, DelayIfHit)
  759.     local Direction = CFrame.new(StartPos, Vec).lookVector
  760.     local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
  761.     local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
  762.     if RayHit and CheckIntangible(RayHit) then
  763.         if DelayIfHit then
  764.             wait()
  765.         end
  766.         RayHit, RayPos, RayNormal = CastRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
  767.     end
  768.     return RayHit, RayPos, RayNormal
  769. end
  770.  
  771. function turnto(pos,part)
  772.     part.CFrame = CF(part.Position,VT(pos.X,RootPart.Position.Y,pos.Z))
  773. end
  774.  
  775. function vacuum()
  776.     sick:Play()
  777.     local nado = IT("Part")
  778.     local mesh = IT("SpecialMesh",nado)
  779.     mesh.MeshId = "http://www.roblox.com/asset/?id=102638417"
  780.     nado.Transparency = 0.5
  781.     nado.CanCollide = false
  782.     nado.Anchored = true
  783.     local loop = 0
  784.     succing = {}
  785.     local harm = succ.Touched:Connect(function(hit)
  786.         if hit.Anchored == false then
  787.             hit:remove()
  788.             CreateSound("261732529", succ, 3, 1)
  789.             poop2:Emit(1)
  790.         end
  791.     end)
  792.     repeat
  793.         Swait()
  794.         loop = loop + 75
  795.         nado.Parent = Effects
  796.         local RayHit,RayPos = CastRay(succ.Position, Mouse.Hit.p, 1000, Character, false)
  797.         local distance = (succ.Position - RayPos).magnitude
  798.         mesh.Scale = VT(distance/12,distance/3.2,distance/12)
  799.         nado.CFrame = CFrame.new(succ.Position, RayPos) * CFrame.new(0, 0, -distance/2) * ANGLES(RAD(-90),RAD(loop),RAD(0))
  800.         turnto(Mouse.Hit.p,RootPart)
  801.         succnearest(RayPos,distance/2.5)
  802.         if RayHit ~= nil then
  803.             if RayHit.Anchored == false then
  804.                 local bv = Instance.new("BodyVelocity")
  805.                 bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  806.                 bv.velocity = CF(RayHit.Position,succ.Position).lookVector*80
  807.                 bv.Parent = RayHit
  808.                 bv.Name = "SUCC"
  809.                 game:GetService("Debris"):AddItem(bv, 0.1)
  810.             end
  811.         end
  812.         local TotalSuccs = math.ceil(distance / 65)
  813.         local Direction = CFrame.new(RayPos, succ.Position).lookVector
  814.         for i = 1, TotalSuccs do
  815.             local NewPos = (RayPos + (Direction * (distance * (i / TotalSuccs))))
  816.             succnearest(NewPos,distance/(i*2.5))
  817.         end
  818.     until HOLD == false
  819.     if #succing>0 then
  820.     for e=1,#succing do
  821.     if succing[e]~=nil then
  822.     local Thing=succing[e]
  823.     Thing:remove()
  824.     table.remove(succing,e)
  825.     end
  826.     end
  827.     end
  828.     succing = {}
  829.     harm:disconnect()
  830.     nado:remove()
  831.     sick:Stop()
  832. end
  833.  
  834. --//=================================\\
  835. --||      ASSIGN THINGS TO KEYS
  836. --\\=================================//
  837.  
  838. Humanoid.Changed:connect(function(Jump)
  839.     if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
  840.         Humanoid.Jump = false
  841.     end
  842. end)
  843.  
  844. function MouseDown(Mouse)
  845.     HOLD = true
  846.     vacuum()
  847. end
  848.  
  849. function MouseUp(Mouse)
  850. HOLD = false
  851. end
  852.  
  853. function KeyDown(Key)
  854.     if Key == "t" and ATTACK == false then
  855.         CreateSound("743953262", Head, 3, 1)
  856.     end
  857.     if Key == "e" and ATTACK == false then
  858.         cough()
  859.     end
  860. end
  861.  
  862. function KeyUp(Key)
  863. end
  864.  
  865.     Mouse.Button1Down:connect(function(NEWKEY)
  866.         MouseDown(NEWKEY)
  867.     end)
  868.     Mouse.Button1Up:connect(function(NEWKEY)
  869.         MouseUp(NEWKEY)
  870.     end)
  871.     Mouse.KeyDown:connect(function(NEWKEY)
  872.         KeyDown(NEWKEY)
  873.     end)
  874.     Mouse.KeyUp:connect(function(NEWKEY)
  875.         KeyUp(NEWKEY)
  876.     end)
  877.  
  878. --//=================================\\
  879. --\\=================================//
  880.  
  881.  
  882. function unanchor()
  883.     if UNANCHOR == true then
  884.         g = Character:GetChildren()
  885.         for i = 1, #g do
  886.             if g[i].ClassName == "Part" then
  887.                 g[i].Anchored = false
  888.             end
  889.         end
  890.     end
  891. end
  892.  
  893.  
  894. --//=================================\\
  895. --||    WRAP THE WHOLE SCRIPT UP
  896. --\\=================================//
  897.  
  898. Humanoid.Changed:connect(function(Jump)
  899.     if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
  900.         Humanoid.Jump = false
  901.     end
  902. end)
  903.  
  904. while true do
  905.     Swait()
  906. if #Effects2>0 then
  907. for e=1,#Effects2 do
  908. if Effects2[e]~=nil then
  909. local Thing=Effects2[e]
  910. if Thing~=nil then
  911. local Part=Thing[1]
  912. local Mode=Thing[2]
  913. local Delay=Thing[3]
  914. local IncX=Thing[4]
  915. local IncY=Thing[5]
  916. local IncZ=Thing[6]
  917. local Part2=Thing[8]
  918. if Thing[1].Transparency<=1 then
  919. if Thing[2]=="Block1" then
  920. Thing[1].CFrame=Thing[1].CFrame
  921. Mesh=Thing[1].Mesh
  922. Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
  923. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  924. elseif Thing[2]=="Cylinder" then
  925. Mesh=Thing[1].Mesh
  926. Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
  927. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  928. elseif Thing[2]=="Blood" then
  929. Mesh=Thing[7]
  930. Thing[1].CFrame=Thing[1].CFrame*CF(0,.5,0)
  931. Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
  932. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  933. elseif Thing[2]=="Elec" then
  934. Mesh=Thing[1].Mesh
  935. Mesh.Scale=Mesh.Scale+VT(Thing[7],Thing[8],Thing[9])
  936. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  937. elseif Thing[2]=="Disappear" then
  938. Thing[1].Transparency=Thing[1].Transparency+Thing[3]
  939. end
  940. else
  941. Part.Parent=nil
  942. table.remove(Effects2,e)
  943. end
  944. end
  945. end
  946. end
  947. end
  948. unanchor()
  949. Humanoid.MaxHealth = "inf"
  950. Humanoid.Health = "inf"
  951. if Rooted == false then
  952.     Disable_Jump = false
  953.     Humanoid.WalkSpeed = Speed
  954. elseif Rooted == true then
  955.     Disable_Jump = true
  956.     Humanoid.WalkSpeed = 0
  957. end
  958. if sick == nil then
  959.     sick = Instance.new("Sound",Torso)
  960.     sick.SoundId = "rbxassetid://319444224"
  961.     sick.Looped = true
  962.     sick.Pitch = 1
  963.     sick.Volume = 1
  964. end
  965. if #succing>0 then
  966. for e=1,#succing do
  967. if succing[e]~=nil then
  968. local Thing=succing[e]
  969. Thing.velocity = CF(Thing.Parent.Position,succ.Position).lookVector*80
  970. if HOLD == false then
  971.     Thing.velocity = CF(Thing.Parent.Position,succ.Position).lookVector*0
  972.     Thing:remove()
  973.     table.remove(succing,e)
  974. end
  975. end
  976. end
  977. end
  978. end
  979.  
  980. --//=================================\\
  981. --\\=================================//
  982.  
  983.  
  984.  
  985.  
  986.  
  987. --//====================================================\\--
  988. --||                     END OF SCRIPT
  989. --\\====================================================//--
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement