Advertisement
madiik

SUPER OP RBX.Lua Shotgun

Apr 20th, 2014
1,060
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --SB Plasma Shotgun 2013
  2. --OP VERSION!!
  3. --madiik's plasma shottie
  4.  
  5. --variables
  6.  
  7. local plr = game:service'Players'.LocalPlayer
  8. local char = plr.Character
  9. local mouse = plr:GetMouse()
  10. local humanoid = char:findFirstChild("Humanoid")
  11. local torso = char:findFirstChild("Torso")
  12. local head = char.Head
  13. local ra = char:findFirstChild("Right Arm")
  14. local la = char:findFirstChild("Left Arm")
  15. local rl = char:findFirstChild("Right Leg")
  16. local ll = char:findFirstChild("Left Leg")
  17. local rs = torso:findFirstChild("Right Shoulder")
  18. local ls = torso:findFirstChild("Left Shoulder")
  19. local rh = torso:findFirstChild("Right Hip")
  20. local lh = torso:findFirstChild("Left Hip")
  21. local neck = torso:findFirstChild("Neck")
  22. local animate = char.Animate
  23.  
  24.  
  25. --some more variables
  26. local equipping = false
  27.     local equipped = false
  28.     local spread = 0
  29.     -- end of some more variables
  30.    
  31.     local sound = Instance.new("Sound",head)
  32.     sound.SoundId = "http://www.roblox.com/asset?id=130113322"
  33.     sound.Volume = 1
  34.     sound.Pitch = 1
  35.    
  36.     local sound2 = Instance.new("Sound",head)
  37.     sound2.SoundId = "http://www.roblox.com/asset?id=130113370"
  38.     sound2.Volume = 1
  39.     sound2.Pitch = 0.9
  40.  
  41.  
  42. modelName = "Gun"
  43.  
  44. pcall(function()
  45.     char:findFirstChild(modelName):Destroy()
  46.     end)
  47.  
  48.  
  49. local gun = Instance.new("Model", char)
  50. gun.Name = modelName
  51.  
  52.  
  53.  
  54. function attach(weld, part0, part1)
  55.     weld.Part0 = part0
  56.     weld.Part1 = part1
  57.     end
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67. --create func
  68. function part(parent, size, color, formfactor, collide, transparency)
  69.     if transparency == nil then transparency = 0 end
  70.     if collide == nil then collide = false end
  71.         if formfactor == nil then formfactor = Enum.FormFactor.Custom end
  72.         local p=Instance.new("Part", parent)
  73.         p.FormFactor=formfactor
  74.         p.CanCollide=false
  75.         p.Size=size
  76.         p.Locked=true
  77.                 p.Transparency=transparency
  78.         p.Position=torso.Position
  79.         p.BrickColor=color
  80.         p.FrontSurface="SmoothNoOutlines"
  81.         p.BackSurface="SmoothNoOutlines"        
  82.         p.LeftSurface="SmoothNoOutlines"
  83.         p.BottomSurface="SmoothNoOutlines"
  84.         p.TopSurface="SmoothNoOutlines"  
  85.         p.RightSurface="SmoothNoOutlines"
  86.         return p
  87. end
  88. function wedge(parent, size, color, formfactor, collide, transparency)
  89.    
  90.         if transparency == nil then transparency = 0 end
  91.     if collide == nil then collide = false end
  92.         if formfactor == nil then formfactor = Enum.FormFactor.Custom end
  93.        
  94.                 local p=Instance.new("WedgePart", parent)
  95.         p.FormFactor=formfactor
  96.         p.CanCollide=false
  97.         p.Size=size
  98.         p.Locked=true
  99.         p.Position = torso.Position
  100.         p.BrickColor=color
  101.         p.FrontSurface="SmoothNoOutlines"
  102.         p.BackSurface="SmoothNoOutlines"        
  103.         p.LeftSurface="SmoothNoOutlines"
  104.         p.BottomSurface="SmoothNoOutlines"
  105.         p.TopSurface="SmoothNoOutlines"  
  106.         p.RightSurface="SmoothNoOutlines"
  107. return p
  108. end
  109. function weld(part0, part1, c0, parent, c1)
  110.     if parent == nil then parent = gun end
  111.     if c1 == nil then c1 = CFrame.new() end
  112.  
  113.         local wel=Instance.new("Weld", parent)
  114.         wel.Part0 = part0
  115.         wel.Part1 = part1
  116.         wel.C0 = c0
  117.         wel.C1 = c1
  118.         return wel
  119. end
  120. function specialmesh(parent, meshType, scale, meshId)
  121.         local mesh = Instance.new("SpecialMesh", parent)
  122.         mesh.Scale = scale
  123.         mesh.MeshType = meshType
  124.         mesh.MeshId = meshId
  125.         return mesh
  126. end
  127.  
  128.  
  129. --some ray functi0n
  130.  
  131. function rayCast(speed, gravity, from)
  132.     coroutine.wrap(function()      
  133.     if char.Humanoid.Health == 0 then return end
  134.     local rayP         = Instance.new("Part")
  135.     rayP.Name          = "rayP"
  136.     rayP.BrickColor    = BrickColor.new("Really red")
  137.     rayP.Anchored      = true
  138.     rayP.CanCollide    = false
  139.     rayP.Locked = true
  140.     rayP.TopSurface    = Enum.SurfaceType.Smooth
  141.     rayP.BottomSurface = Enum.SurfaceType.Smooth
  142.     rayP.formFactor    = Enum.FormFactor.Custom
  143.     rayP.Size          = Vector3.new(0.2, 0.2, 0.2)
  144.  
  145. Instance.new("PointLight", rayP).Color = Color3.new(0, 255, 255)
  146.    
  147. Instance.new("BlockMesh", rayP).Scale = Vector3.new(0.3, 0.3, 20)
  148.  
  149.  
  150.  
  151.  
  152.  
  153.    
  154.    
  155.  
  156.     local bulletposition = from.Position + Vector3.new(0, 0.3, 0)
  157.  
  158.    local bulletvelocity = (Vector3.new(math.random(-spread*4,spread*4), math.random(-spread*4,spread*4), math.random(-spread*4,spread*4)))+( plr:GetMouse().Hit.p - bulletposition).unit*speed
  159.     local bulletlastposition = bulletposition
  160.  
  161.  
  162.  
  163.    
  164.     coroutine.resume(coroutine.create(function()
  165.         while true do
  166.             local dt = wait()
  167.             bulletlastposition = bulletposition
  168.             bulletvelocity = bulletvelocity + (Vector3.new(0, -9.81*gravity, 0)*dt)
  169.             bulletposition = bulletposition + (bulletvelocity*dt)
  170.                
  171.             local ray = Ray.new(bulletlastposition,  (bulletposition - bulletlastposition))
  172.  
  173.             local hit, hitposition = workspace:FindPartOnRayWithIgnoreList( ray, { char, rayP, TrailPart} )
  174.                
  175.     if (torso.Position - rayP.Position).magnitude > 540 then
  176.         rayP:Destroy()
  177.      break
  178.      end
  179.    
  180.    
  181.             if hit then
  182.                 local damage = math.random(74, 97)
  183.                 if hit.Parent:findFirstChild("Humanoid") ~= nil then
  184.                     hit.Parent.Humanoid.Health = hit.Parent.Humanoid.Health - damage
  185.                 end
  186.                 if hit.Parent:IsA("Hat") and hit.Parent.Parent:findFirstChild("Humanoid") ~= nil then
  187.                     hit.Parent.Parent.Humanoid.Health = hit.Parent.Parent.Humanoid.Health - damage     
  188.                     end
  189.                 bulletposition = hitposition
  190.                 rayP.CFrame = CFrame.new(bulletposition, bulletposition+bulletvelocity)
  191.                 rayP:Destroy()
  192.                 break
  193.             end
  194.             rayP.CFrame = CFrame.new(bulletposition, bulletposition+bulletvelocity)
  195.             rayP.Parent = workspace
  196.         end
  197.     end))
  198.     end)()
  199. end
  200.  
  201.  
  202.  
  203. --part(parent, size, color, formfactor(opt), collide(opt), transparency(opt))
  204. --specialmesh(parent, meshType, scale, meshId)
  205. p1 = part(gun, Vector3.new(0.2, 0.85, 1), BrickColor.new("Really red"))
  206. w1 = weld(p1, torso, CFrame.new(0.6, 0, -1)* CFrame.Angles(-math.pi/4, -math.pi/2, 0))
  207.  
  208.  
  209. p2 = wedge(gun, Vector3.new(0.2, 0.2, 0.2), BrickColor.new("Really red"))
  210. w2 = weld(p2, p1, CFrame.new(0, -0.325, 0.6))
  211.  
  212.  
  213. p3 = wedge(gun, Vector3.new(0.2, 0.2, 0.2), BrickColor.new("Really red"))
  214. w3 = weld(p3, p1, CFrame.new(0, -0.325, 0.6)*CFrame.Angles(math.pi, math.pi, 0))
  215.  
  216.  
  217. p4 = part(gun, Vector3.new(0.2, 0.45, 2), BrickColor.new("Dark stone grey"))
  218. w4 = weld(p4, p1, CFrame.new(0, 0, 1.5))
  219.  
  220.  
  221. p5 = part(gun, Vector3.new(0.2, 0.2, 1), BrickColor.new("Dark stone grey"))
  222. Instance.new("BlockMesh", p5).Scale = Vector3.new(1.01, 0.5, 1.01)
  223. w5 = weld(p5, p1, CFrame.new(0, 0.175, 0))
  224.  
  225.  
  226.  
  227.  
  228. p6 = part(gun, Vector3.new(0.2, 0.2, 1), BrickColor.new("Dark stone grey"))
  229. Instance.new("BlockMesh", p6).Scale = Vector3.new(1.01, 0.5, 1.01)
  230. w6 = weld(p6, p1, CFrame.new(0, -0.175, 0))
  231.  
  232.  
  233.  
  234. p7 = part(gun, Vector3.new(0.2, 0.75, 0.25), BrickColor.new("Really red"))
  235. Instance.new("BlockMesh", p7).Scale = Vector3.new(.9, 1, 1)
  236. w7 = weld(p7, p1, CFrame.new(0, -0.2, 1)*CFrame.Angles(math.pi/6, 0, 0))
  237.  
  238.  
  239.  
  240. p8 = part(gun, Vector3.new(0.2, 1, 0.2), BrickColor.new("Dark stone grey"))
  241. Instance.new("CylinderMesh", p8)
  242. w8 = weld(p8, p1, CFrame.new(0, -3, -0.1)*CFrame.Angles(math.pi/2, 0, 0))
  243.  
  244.  
  245.  
  246. --part(parent, size, color, formfactor(opt), collide(opt), transparency(opt))
  247. --specialmesh(parent, meshType, scale, meshId)
  248.  
  249.  
  250.  
  251. p9 = part(gun, Vector3.new(0.2, 1, 0.2), BrickColor.new("Dark stone grey"))
  252. Instance.new("CylinderMesh", p9).Scale = Vector3.new(0.8, 1, 0.8)
  253. w9 = weld(p9, p1, CFrame.new(0, -2.8, 0.08)*CFrame.Angles(math.pi/2, 0, 0))
  254.  
  255.  
  256.  
  257.  
  258. pa1 = part(gun, Vector3.new(0.2, 0.2, 0.2), BrickColor.new("Dark stone grey"))
  259. specialmesh(pa1, "FileMesh", Vector3.new(0.4, 0.4, 1), "http://www.roblox.com/asset/?id=3270017")
  260. we1 = weld(pa1, p1, CFrame.new(1.1, 0.2, 0)*CFrame.Angles(0, math.pi/2, 0))
  261.  
  262.  
  263. pa2 = part(gun, Vector3.new(0.2, 0.2, 0.2), BrickColor.new("Dark stone grey"))
  264. specialmesh(pa2, "FileMesh", Vector3.new(0.35, 0.35, 1.5), "http://www.roblox.com/asset/?id=3270017")
  265. we2 = weld(pa2, p1, CFrame.new(1.9 - 0.6, 0, 0.05)*CFrame.Angles(0, math.pi/2, 0))
  266.  
  267. pa3 = part(gun, Vector3.new(0.2, 0.2, 0.2), BrickColor.White())
  268. Instance.new("BlockMesh", pa3).Scale = Vector3.new(0.95, 1, 0.1)
  269. we3 = weld(pa3, p1, CFrame.new(-0.01, 0, 1.82 - 0.6))
  270.  
  271. pa4 = part(gun, Vector3.new(0.2, 0.2, 0.2), BrickColor.White())
  272. Instance.new("BlockMesh", pa4).Scale = Vector3.new(0.95, 1, 0.1)
  273. we4 = weld(pa4, p1, CFrame.new(-0.01, 0, 1.98 - 0.6))
  274.  
  275. pa5 = part(gun, Vector3.new(0.2, 0.2, 0.2), BrickColor.White())
  276. Instance.new("BlockMesh", pa5).Scale = Vector3.new(0.95, 0.1, 0.1)
  277. we5 = weld(pa5, p1, CFrame.new(-0.01, -0.05, 1.85 - 0.6))
  278.  
  279. pa6 = part(gun, Vector3.new(0.2, 0.2, 0.2), BrickColor.White())
  280. Instance.new("BlockMesh", pa6).Scale = Vector3.new(0.95, 0.1, 0.1)
  281. we6 = weld(pa6, p1, CFrame.new(-0.01, -0.05, 1.95 - 0.6))
  282.  
  283. pa7 = part(gun, Vector3.new(0.2, 0.2, 0.2), BrickColor.White())
  284. Instance.new("BlockMesh", pa7).Scale = Vector3.new(0.95, 0.1, 0.1)
  285. we7 = weld(pa7, p1, CFrame.new(-0.01, -0.02, 1.9 - 0.6))
  286.  
  287.  
  288. pa8 = wedge(gun, Vector3.new(0.2, 0.2, 0.2), BrickColor.new("Dark stone grey"))
  289. specialmesh(pa8, "Wedge", Vector3.new(0.2, 1, 1), "")
  290. we8 = weld(pa8, p1, CFrame.new(0, -0.23, -3.35)*CFrame.Angles(0, math.pi, 0))
  291.  
  292. pa9 = part(gun, Vector3.new(0.21, 0.8, 0.21), BrickColor.new("Really red"))
  293. we9 = weld(pa9, p1, CFrame.new(0, -2.3, 0.2)*CFrame.Angles(math.pi/2, 0, 0))
  294.  
  295.  
  296. --part(parent, size, color, formfactor(opt), collide(opt), transparency(opt))
  297. --specialmesh(parent, meshType, scale, meshId)
  298.  
  299.  
  300. for pos = 0.9, 1.9, 0.2 do
  301.     local lpart = part(gun, Vector3.new(0.201, 0.201, 0.201), BrickColor.new("Really red"))
  302.     Instance.new("BlockMesh", lpart).Scale = Vector3.new(1, 0.5, 0.8)
  303.         local lweld = weld(lpart, p1, CFrame.new(0, -0.25, pos))
  304. end
  305.  
  306.  
  307.  
  308. --function attach(weld, part0, part1)
  309.     --weld.Part0 = part0
  310.     --weld.Part1 = part1
  311.     --end
  312.  
  313. function equip()
  314.     animate.Disabled = true
  315.     --weld(part0, part1, c0, c1)
  316.     --part(parent, size, color, formfactor(opt), collide(opt), transparency(opt))
  317.     local ftorso = part(gun, torso.Size, torso.BrickColor)
  318.     ftorso.Name = "FakeTorsoShotgun"
  319.     Instance.new("SpecialMesh", ftorso).MeshId = "rbxasset://fonts/torso.mesh"
  320.     local ftorsoweld = weld(ftorso, torso, CFrame.new(),ftorso)
  321.     torso.Transparency = 1
  322.         local ar = Instance.new("Part", gun)
  323. ar.FormFactor = "Custom"
  324. ar.Size = Vector3.new(1, 1, 1)
  325. ar.Transparency = 1
  326. ar.CanCollide = false
  327. ar.Locked = true
  328. ar.Name = "ShoulderJoint"
  329. ar:BreakJoints()
  330. local weldf = Instance.new("Motor", ar)
  331. weldf.C0 = CFrame.new(0, 0.5, 0)
  332. weldf.Part0 = ra
  333. weldf.Part1 = ar
  334.     motor = Instance.new("Motor", ar)
  335.     motor.Part0 = ftorso
  336.     motor.Part1 = ar
  337.     motor.C0 = CFrame.new(1.5, 0.5, 0)
  338.     local ar2 = Instance.new("Part", gun)
  339. ar2.FormFactor = "Custom"
  340. ar2.Size = Vector3.new(1, 1, 1)
  341. ar2.Transparency = 1
  342. ar2.CanCollide = false
  343. ar2.Locked = true
  344. ar2.Name = "ShoulderJoint2"
  345. ar2:BreakJoints()
  346. local weldf2 = Instance.new("Motor", ar2)
  347. weldf2.C0 = CFrame.new(0, 0.5, 0)
  348. weldf2.Part0 = la
  349. weldf2.Part1 = ar2
  350.     motor2 = Instance.new("Motor", ar2)
  351.     motor2.Part0 = ftorso
  352.     motor2.Part1 = ar2
  353.     motor2.C0 = CFrame.new(-1.5, 0.5, 0)
  354.     w1.Part1 = ra
  355.     for angle = 0, 180, 20 do
  356.     w1.C0 = CFrame.new(0+angle/460, 0.5-angle/160, 0.5-angle/360) * CFrame.Angles(math.pi + math.rad(angle/2), math.rad(angle), math.rad(angle))
  357.     wait()
  358.     end
  359.     attach(rh, ftorso, rl)
  360.     attach(lh, ftorso, ll)
  361.     for angle = 0, 90, 10 do
  362.         ftorsoweld.C0 = CFrame.new() * CFrame.Angles(0, math.rad(angle-30), 0)
  363.         motor.C0 = CFrame.new(1.3, 0.5, 0-angle/120) * CFrame.Angles(math.rad(angle), 0, -math.rad(angle-30))
  364.         motor2.C0 = CFrame.new(-1.3, 0.5, 0-angle/180) * CFrame.Angles(math.rad(angle), 0, 0)
  365.         wait()
  366.     end
  367.    
  368.    
  369.            
  370.    
  371. end
  372.  
  373. function unequip()
  374.     animate.Disabled = false
  375.         attach(rh, torso, rl)
  376.     attach(lh, torso, ll)
  377. w1.C0 = CFrame.new(0.6, 0, -1)* CFrame.Angles(-math.pi/4, -math.pi/2, 0)
  378. w1.Part1 = torso
  379. torso.Transparency = 0
  380. pcall(function()
  381.     gun.FakeTorsoShotgun:Destroy()
  382.     gun.FakeTorsoShotgun:Destroy()
  383.     gun.ShoulderJoint:Destroy()
  384.     gun.ShoulderJoint:Destroy()
  385.     gun.ShoulderJoint2:Destroy()
  386.     gun.ShoulderJoint2:Destroy()
  387.     end)
  388.  
  389. end
  390.    
  391.    
  392. local tool = Instance.new("HopperBin", plr.Backpack)
  393. tool.Name = "Plasma Shotgun"
  394.    
  395.    
  396.  
  397. tool.Selected:connect(function(mouse2)
  398.     equipped = true
  399.     local mainGui = Instance.new("ScreenGui", plr.PlayerGui)
  400.     mainGui.Name = "AccuracyStuff"
  401.    
  402.     local accuracyFrame = Instance.new("Frame", mainGui)
  403. accuracyFrame.Size = UDim2.new(0, 100, 0, 100)
  404. accuracyFrame.BackgroundTransparency = 1
  405.  
  406. mouse2.Icon = "http://www.roblox.com/asset/?id=108625356"
  407.  
  408.  
  409.  
  410. local accuracy1 = Instance.new("TextLabel", accuracyFrame)
  411. accuracy1.Text = ""
  412. accuracy1.BorderSizePixel = 0
  413. accuracy1.BackgroundColor = BrickColor.new("Lime green")
  414. accuracy1.Size = UDim2.new(0, -15, 0, 2)
  415.  
  416. local accuracy2 = Instance.new("TextLabel", accuracyFrame)
  417. accuracy2.Text = ""
  418. accuracy2.BorderSizePixel = 0
  419. accuracy2.BackgroundColor = BrickColor.new("Lime green")
  420. accuracy2.Size = UDim2.new(0, 15, 0, 2)
  421.  
  422. local accuracy3 = Instance.new("TextLabel", accuracyFrame)
  423. accuracy3.Text = ""
  424. accuracy3.BorderSizePixel = 0
  425. accuracy3.BackgroundColor = BrickColor.new("Lime green")
  426. accuracy3.Size = UDim2.new(0, 2, 0, -15)
  427.  
  428. local accuracy4 = Instance.new("TextLabel", accuracyFrame)
  429. accuracy4.Text = ""
  430. accuracy4.BorderSizePixel = 0
  431. accuracy4.BackgroundColor = BrickColor.new("Lime green")
  432. accuracy4.Size = UDim2.new(0, 2, 0, 15)
  433.  
  434. coroutine.wrap(function()
  435.     while equipped do
  436.     if spread < 0 then spread = 0 end
  437.             if humanoid.Health == 0 then break end
  438.     accuracy1.Position = UDim2.new(0, 41-(spread*40), 0, 50)
  439.     accuracy2.Position = UDim2.new(0, 60+(spread*40), 0, 50)
  440.     accuracy3.Position = UDim2.new(0, 50, 0, 40-(spread*40))
  441.     accuracy4.Position = UDim2.new(0, 50, 0, 60+(spread*40))   
  442.     accuracyFrame.Position = UDim2.new(0, mouse.X-50, 0, mouse.Y-50)
  443.     game:service'RunService'.Stepped:wait()
  444.     end
  445. end)()
  446.  
  447. equip()
  448. mouse2.Button1Down:connect(function()
  449.     if debounce then return end
  450.     debounce = true
  451.     sound:play()
  452.     motor.C0 = motor.C0 * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(20), -math.rad(12), 0)
  453.     coroutine.wrap(function()
  454.         wait(0.3)
  455.         for angle = 0, 4 do
  456.             motor.C0 = motor.C0 * CFrame.Angles(-math.rad(3.5), math.rad(2.2), 0)
  457.             wait()
  458.         end
  459.         motor.C0 = CFrame.new(1.3, 0.5, 0-90/120) * CFrame.Angles(math.rad(90), 0, -math.rad(90-30))
  460.         wait(0.2)
  461.         sound2:play()
  462.                 we9.C0 = we9.C0 * CFrame.new(0, 0, -0.3)
  463.         motor2.C0 = motor2.C0 * CFrame.new(0.3, 0, 0)
  464.         wait(0.1)
  465.         for move = 0, 3 do
  466.             if move > 2 then return end
  467.         we9.C0 = we9.C0 * CFrame.new(0, 0, 0.1)
  468.         motor2.C0 = motor2.C0 * CFrame.new(-0.1, 0, 0)
  469.         wait(0.06)
  470.         end
  471.     end)()
  472.     spread = spread + 4
  473.     coroutine.wrap(function()
  474.     for bullitz = 1, 35 do
  475.     rayCast(250, 2, pa8)
  476.     end
  477.     end)()
  478.     coroutine.wrap(function()
  479.         for _ = 0, 50 do
  480.             pcall(function()
  481.         spread = spread - 0.5
  482.         end)
  483.         wait()
  484.         end
  485.     end)()
  486.     debounce = false
  487.     end)
  488.    
  489. end)
  490.  
  491. tool.Deselected:connect(function()
  492.     equipped = false
  493.     pcall(function()
  494.         unequip()
  495.         plr.PlayerGui.AccuracyStuff:Destroy()
  496.         plr.PlayerGui.AccuracyStuff:Destroy()
  497.         plr.PlayerGui.AccuracyStuff:Destroy()
  498.     end)
  499. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement