Advertisement
rahuliscool

hand cannon

Nov 21st, 2015
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. Players = game:GetService("Players")
  3. Me = Players.thesuperfireguy9000
  4. Char = Me.Character
  5. necko = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
  6. ShootColors = {"Bright yellow", "New Yeller", "Bright orange", "Neon orange", "Really red", "Bright red"}
  7. PlaceId = game.PlaceId
  8.  
  9. Selected = false
  10. Attacking = false
  11. Accuracy = 5
  12. Debounce = true
  13. Hurt = false
  14. Damage = {15,42}
  15.  
  16. ContentProvider = game:GetService("ContentProvider")
  17.  
  18. V3 = Vector3.new
  19. C3 = Color3.new
  20. BN = BrickColor.new
  21. CN = CFrame.new
  22. CA = CFrame.Angles
  23. MR = math.rad
  24. MRA = math.random
  25. MP = math.pi
  26. MH = math.huge
  27. UD = UDim2.new
  28.  
  29. function RC(Pos, Dir, Max, Ignore)
  30.     return workspace:FindPartOnRay(Ray.new(Pos, Dir.unit * (Max or 999)), Ignore)
  31. end
  32.  
  33. function RayC(Start, En, MaxDist, Ignore)
  34.     return RC(Start, (En - Start), MaxDist, Ignore)
  35. end
  36.  
  37. function ComputePos(pos1, pos2)
  38.     return CN(pos1, V3(pos2.x, pos1.y, pos2.z))
  39. end
  40.  
  41. function DetectSurface(pos, part)
  42.     local surface = nil
  43.     local pospos = part.CFrame
  44.     local pos2 = pospos:pointToObjectSpace(pos)
  45.     local siz = part.Size
  46.     local shaep = part.Shape
  47.     if shaep == Enum.PartType.Ball or shaep == Enum.PartType.Cylinder then
  48.         surface = {"Anything", CN(pospos.p, pos)*CN(0, 0, -(pospos.p - pos).magnitude)*CA(MR(-90), 0, 0)}
  49.     else
  50.         if pos2.Y > ((siz.Y/2)-0.04) then
  51.             surface = {"Top", CA(0, 0, 0)}
  52.         elseif pos2.Y < -((siz.Y/2)-0.04) then
  53.             surface = {"Bottom", CA(-MP, 0, 0)}
  54.         elseif pos2.X > ((siz.X/2)-0.04) then
  55.             surface = {"Right", CA(0, 0, MR(-90))}
  56.         elseif pos2.X < -((siz.X/2)-0.04) then
  57.             surface = {"Left", CA(0, 0, MR(90))}
  58.         elseif pos2.Z > ((siz.Z/2)-0.04) then
  59.             surface = {"Back", CA(MR(90), 0, 0)}
  60.         elseif pos2.Z < -((siz.Z/2)-0.04) then
  61.             surface = {"Front", CA(MR(-90), 0, 0)}
  62.         end
  63.     end
  64.     return surface
  65. end
  66.  
  67. function Compute(pos1, pos2)
  68.     local pos3 = Vector3.new(pos2.x, pos1.y, pos2.z)
  69.     return CN(pos1, pos3)
  70. end
  71.  
  72. function waitChild(n, p)
  73.     local c = p:findFirstChild(n)
  74.     if c then return c end
  75.     while true do
  76.         c = p.ChildAdded:wait()
  77.         if c.Name == n then return c end
  78.     end
  79. end
  80.  
  81. function Notime(func)
  82.     coroutine.resume(coroutine.create(function()
  83.         func()
  84.     end))
  85. end
  86.  
  87. Torso = waitChild("Torso", Char)
  88. Head = waitChild("Head", Char)
  89. Rarm = waitChild("Right Arm", Char)
  90. Larm = waitChild("Left Arm", Char)
  91. Rleg = waitChild("Right Leg", Char)
  92. Lleg = waitChild("Left Leg", Char)
  93. Neck = waitChild("Neck", Torso)
  94. Hum = waitChild("Humanoid", Char)
  95.  
  96. RSH = waitChild("Right Shoulder", Torso)
  97. LSH = waitChild("Left Shoulder", Torso)
  98. RH = waitChild("Right Hip", Torso)
  99. LH = waitChild("Left Hip", Torso)
  100.  
  101. RSH.Part0 = Torso
  102. LSH.Part0 = Torso
  103. RH.Part0 = Torso
  104. LH.Part0 = Torso
  105.  
  106. Add = {
  107.     Mesh = function(P, ID, Scale, Tex)
  108.         local m = Instance.new("SpecialMesh")
  109.         m.MeshType = "FileMesh"
  110.         m.MeshId = ID or ""
  111.         m.Scale = Scale or V3(1, 1, 1)
  112.         m.TextureId = Tex or ""
  113.         m.Parent = P
  114.         return m
  115.     end,
  116.     Sphere = function(P, Scale)
  117.         local m = Instance.new("SpecialMesh")
  118.         m.MeshType = "Sphere"
  119.         m.Scale = Scale or V3(1, 1, 1)
  120.         m.Parent = P
  121.         return m
  122.     end
  123. }
  124.  
  125. Sounds = {
  126.     Shoot = {Id = "http://www.roblox.com/asset/?id=2697431", Pitch = 0.3, Volume = 0.5},
  127.     Boom = {Id = "http://www.roblox.com/asset/?id=2692806", Pitch = 0.55, Volume = 0.4},
  128.     Slash = {Id = "rbxasset://sounds//swordslash.wav", Pitch = 0.5, Volume = 0.5},
  129.     Hit = {Id = "http://www.roblox.com/asset/?id=2801263", Pitch = 0.85, Volume = 0.35},
  130.     Reload = {Id = "rbxasset://sounds\\metal.ogg", Pitch = 1, Volume = 0.45},
  131. }
  132.  
  133. for _,v in pairs(Sounds) do
  134.     ContentProvider:Preload(v.Id)
  135. end
  136.  
  137. function PlaySound(Sound, bool)
  138.     local s = Instance.new("Sound")
  139.     s.Looped = false
  140.     s.Volume = Sound.Volume
  141.     s.SoundId = Sound.Id
  142.     if bool then
  143.         s.Pitch = MRA((Sound.Pitch*0.75)*1000, (Sound.Pitch*1.15)*1000)/1000
  144.     else
  145.         s.Pitch = Sound.Pitch
  146.     end
  147.     s.PlayOnRemove = true
  148.     s.Parent = Torso
  149.     Notime(function()
  150.         wait()
  151.         s.Parent = nil
  152.     end)
  153. end
  154.  
  155. function GetParts(pos, dist)
  156.     local parts = {}
  157.     local function o(p)
  158.         for _,v in pairs(p:children()) do
  159.             if v:IsA("BasePart") then
  160.                 if (pos - v.Position).magnitude <= dist then
  161.                     table.insert(parts, {v, (pos - v.Position).magnitude, v.Anchored})
  162.                 end
  163.             end
  164.             o(v)
  165.         end
  166.     end
  167.     o(workspace)
  168.     return parts
  169. end
  170.  
  171. function GetHum(P)
  172.     for _,v in pairs(P:children()) do
  173.         if v:IsA("Humanoid") then
  174.             if v.Health > 0 then
  175.                 return v
  176.             end
  177.         end
  178.     end
  179. end
  180.  
  181. function GetGroup(Pos, Distance, Hit)
  182.     local tab = {}
  183.     for _,v in pairs(workspace:children()) do
  184.         local h = GetHum(v)
  185.         local t = v:findFirstChild("Torso")
  186.         if h and t and v ~= Hit.Parent then
  187.             if (t.Position - Pos).magnitude <= Distance then
  188.                 table.insert(tab, {h, v, (t.Position - Pos).magnitude})
  189.             end
  190.         end
  191.     end
  192.     if Hit then
  193.         local h = GetHum(Hit.Parent)
  194.         if h then
  195.             table.insert(tab, {h, Hit.Parent, 0})
  196.         end
  197.     end
  198.     return tab
  199. end
  200.  
  201. function Tag(hum)
  202.     if PlaceId == 48513881 then
  203.         local tag = Instance.new("ObjectValue")
  204.         tag.Name = "creator"
  205.         tag.Value = Me
  206.         tag.Parent = hum
  207.     end
  208. end
  209.  
  210. function Part(Par, Anc, Colli, Tran, Ref, Col, Siz)
  211.     local p = Instance.new("Part")
  212.     p.formFactor = "Custom"
  213.     p.TopSurface = 0
  214.     p.BottomSurface = 0
  215.     p.Transparency = Tran
  216.     p.Reflectance = Ref
  217.     p.Anchored = Anc
  218.     p.CanCollide = Colli
  219.     p.BrickColor = Col
  220.     p.Size = Siz
  221.     p.Locked = true
  222.     p.Parent = Par
  223.     p:BreakJoints()
  224.     return p
  225. end
  226.  
  227. function Weld(P0, P1, C0, C1)
  228.     local w = Instance.new("Weld")
  229.     w.Part0 = P0
  230.     w.Part1 = P1
  231.     if C0 then
  232.         w.C0 = C0
  233.     end
  234.     if C1 then
  235.         w.C1 = C1
  236.     end
  237.     w.Parent = P0
  238.     return w
  239. end
  240.  
  241. for _,v in pairs(Char:children()) do
  242.     if v.Name == "Hand Cannon" then
  243.         v:remove()
  244.     end
  245. end
  246.  
  247. Model = Instance.new("Model")
  248. Model.Name = "Hand Cannon"
  249.  
  250. FTorso = Part(Model, false, false, 1, 0, Torso.BrickColor, V3(2, 2, 1))
  251. FW = Weld(Torso, FTorso)
  252.  
  253. RAB = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
  254. LAB = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
  255. RLB = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
  256. LLB = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
  257.  
  258. RABW = Weld(Torso, RAB, CN(), CN(-1.5, -0.5, 0))
  259. LABW = Weld(Torso, LAB, CN(), CN(1.5, -0.5, 0))
  260. RLBW = Weld(Torso, RLB, CN(), CN(-0.5, 1, 0))
  261. LLBW = Weld(Torso, LLB, CN(), CN(0.5, 1, 0))
  262.  
  263. RAW = Weld(RAB, nil, CN(), CN(0, 0.5, 0))
  264. LAW = Weld(LAB, nil, CN(), CN(0, 0.5, 0))
  265. RLW = Weld(RLB, nil, CN(), CN(0, 1, 0))
  266. LLW = Weld(LLB, nil, CN(), CN(0, 1, 0))
  267.  
  268. TW = Weld(Torso, nil, CN(0.7, 0.8, 1.2), CA(0, MR(180), MR(55)))
  269.  
  270. Weapon = Instance.new("Model")
  271. Weapon.Name = "Cannon"
  272.  
  273. HB = Part(Weapon, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
  274. HBW = Weld(Rarm, HB, CN(0, -0.7, 0), CA(0, MR(90), MR(90)))
  275. HW = Weld(HB, nil)
  276.  
  277. Handle = Part(Weapon, false, false, 0, 0, BN("Dark grey"), V3(0.5, 0.5, 0.3))
  278. Add.Mesh(Handle, "http://www.roblox.com/asset/?id=3270017", V3(1, 0.7, 2.2), "")
  279. TW.Part1 = Handle
  280.  
  281. Main = Part(Weapon, false, false, 0, 0, BN("Dark grey"), V3(1.5, 1.5, 2.5))
  282. Add.Mesh(Main, "http://www.roblox.com/asset/?id=3270017", V3(1.6, 1.6, 15), "")
  283. Weld(Handle, Main, CA(0, MR(90), MR(90)), CN(1, 0, 0.2))
  284.  
  285. Main2 = Part(Weapon, false, false, 0, 0, BN("Gun metallic"), V3(1, 1, 1.5))
  286. Add.Mesh(Main2, "http://www.roblox.com/asset/?id=3270017", V3(1.2, 1.2, 8), "")
  287. Weld(Main, Main2, CN(), CN(0, 0, 1.7))
  288.  
  289. Handle2 = Part(Weapon, false, false, 0, 0, BN("Dark grey"), V3(0.5, 0.5, 0.3))
  290. Add.Mesh(Handle2, "http://www.roblox.com/asset/?id=3270017", V3(0.7, 0.8, 2.2), "")
  291. Weld(Main2, Handle2, CA(0, MR(90), MR(90)), CN(-0.65, 0, 0))
  292.  
  293. Tip = Part(Weapon, false, false, 0, 0, BN("Earth yellow"), V3(1.6, 1.6, 0.6))
  294. Add.Sphere(Tip, V3(1.05, 1.05, 1))
  295. Weld(Main, Tip, CN(), CN(0, 0, -1.15))
  296.  
  297. Tip4 = Part(Weapon, false, false, 0, 0, BN("Black"), V3(1.2, 1.2, 0.3))
  298. Add.Mesh(Tip4, "http://www.roblox.com/asset/?id=3270017", V3(1.7, 1.7, 10), "")
  299. Weld(Main, Tip4, CN(), CN(0, 0, -0.15))
  300.  
  301. for i = 1.3, 1.45, 0.1 do
  302.     local Tip3 = Part(Weapon, false, false, 0, 0, BN("Dark grey"), V3(1.2, 1.2, 0.3))
  303.     Add.Mesh(Tip3, "http://www.roblox.com/asset/?id=3270017", V3(i, i, 2), "")
  304.     Weld(Main2, Tip3, CN(), CN(0, 0, 0.6))
  305. end
  306.  
  307. for i = -0.95, 0.66, 1.55 do
  308.     local Tip3 = Part(Weapon, false, false, 0, 0, BN("Dark Curry"), V3(1.2, 1.2, 0.3))
  309.     Add.Mesh(Tip3, "http://www.roblox.com/asset/?id=3270017", V3(1.65, 1.65, 3), "")
  310.     Weld(Main, Tip3, CN(), CN(0, 0, i))
  311. end
  312.  
  313. for i = 1.3, 1.5, 0.1 do
  314.     local Tip2 = Part(Weapon, false, false, 0, 0, BN("Earth yellow"), V3(1.6, 1.6, 0.6))
  315.     Add.Mesh(Tip2, "http://www.roblox.com/asset/?id=3270017", V3(i, i, 2), "")
  316.     Weld(Main, Tip2, CN(), CN(0, 0, 1.1))
  317. end
  318.  
  319. for i = -0.3, 1, 0.15 do
  320.     local p = Part(Weapon, false, false, 0.7, 0, BN("Black"), V3(0.2, 0.2, 0.2))
  321.     Add.Sphere(p, V3(6, 6, 2))
  322.     Weld(Main2, p, CN(0, 0, i))
  323. end
  324.  
  325. function Show_Damage(P, D)
  326.     local mo = Instance.new("Model")
  327.     mo.Name = "- "..D
  328.     local p = Part(mo, false, false, 0, 0, BN("Bright red"), V3(0.2, 0.2, 0.2))
  329.     p.Name = "Head"
  330.     local m = Instance.new("SpecialMesh")
  331.     m.MeshType = "Brick"
  332.     m.Scale = Vector3.new(4.5, 2.3, 4.5)
  333.     m.Parent = p
  334.     local bp = Instance.new("BodyPosition", p)
  335.     bp.maxForce = V3(MH, MH, MH)
  336.     bp.P = 9001
  337.     bp.position = CN(P) * CN(0, 1.5, 0).p
  338.     local h = Instance.new("Humanoid")
  339.     h.Health = 0
  340.     h.MaxHealth = 0
  341.     h.Name = "asd"
  342.     h.Parent = mo
  343.     local nah = true
  344.     mo.Parent = workspace
  345.     p.CFrame = CN(P)
  346.     Notime(function()
  347.         wait(1.5)
  348.         for i = 0, 1, 0.05 do
  349.             p.Transparency = i
  350.             if nah then mo.Name = "" nah = false else mo.Name = "- "..D nah = true end
  351.             wait()
  352.         end
  353.         mo:remove()
  354.     end)
  355. end
  356.  
  357. function Kill(hit)
  358.     if Debounce and Hurt then
  359.         local Hu = GetHum(hit.Parent)
  360.         if Hu then
  361.             Debounce = false
  362.             local Dmg = MRA(Damage[1], Damage[2])
  363.             Hu.Health = Hu.Health - Dmg
  364.             Show_Damage(Tip.Position, Dmg)
  365.             PlaySound(Sounds.Hit, true)
  366.             Tag(Hu)
  367.             local chance = MRA(1, 10)
  368.             if chance >=5 then
  369.                 Hu.PlatformStand = true
  370.                 wait(0.15)
  371.                 hit.Velocity = (CN(Torso.CFrame * CN(0, 0.5, 0).p, hit.Position).lookVector * 45)
  372.                 hit.RotVelocity = V3(MRA(-10, 10), MRA(-10, 10), MRA(-10, 10))
  373.                 wait(0.3)
  374.                 Hu.PlatformStand = false
  375.             end
  376.         end
  377.     end
  378. end
  379.  
  380. Main.Touched:connect(Kill)
  381.  
  382. Weapon.Parent = Model
  383. Model.Parent = Char
  384.  
  385. if script.Parent.className ~= "HopperBin" then
  386.     h = Instance.new("HopperBin", Me.Backpack)
  387.     h.Name = "Hand Cannon"
  388.     script.Parent = h
  389. end
  390.  
  391. bin = script.Parent
  392.  
  393. function Attach(t)
  394.     RSH.Part0 = t
  395.     LSH.Part0 = t
  396.     RH.Part0 = t
  397.     LH.Part0 = t
  398.     RABW.Part0 = t
  399.     LABW.Part0 = t
  400.     LLBW.Part0 = t
  401.     RLBW.Part0 = t
  402.     if t == Torso then
  403.         FTorso.Transparency = 1
  404.     else
  405.         Torso.Transparency = 1
  406.     end
  407.     t.Transparency = 0
  408. end
  409.  
  410. function SelectAnim()
  411.     RAW.Part1 = Rarm
  412.     for i = 0.25, 1, 0.25 do
  413.         RAW.C0 = CA(MR(-10*i), 0, MR(-5*i))
  414.         wait()
  415.     end
  416.     for i = 0.1, 1, 0.1 do
  417.         RAW.C0 = CA(MR(-10-90*i), 0, MR(-5-30*i))
  418.         wait()
  419.     end
  420.     for i = 0.5, 1, 0.5 do
  421.         RAW.C0 = CA(MR(-100-5*i), 0, MR(-35))
  422.         wait()
  423.     end
  424.     HW.Part1 = Handle
  425.     HW.C0 = CA(MR(50), 0, MR(-37))
  426.     TW.Part1 = nil
  427.     Attach(FTorso)
  428.     LAW.Part1 = Larm
  429.     for i = 0.25, 1, 0.25 do
  430.         RAW.C0 = CA(MR(-105+10*i), 0, MR(-35+5*i))
  431.         LAW.C0 = CA(MR(15*i), 0, MR(5*i))
  432.         FW.C0 = CA(0, MR(-5*i), 0)
  433.         HW.C0 = CA(MR(50-5*i), 0, MR(-37))
  434.         wait()
  435.     end
  436.     for i = 0.06, 1, 0.06 do
  437.         RAW.C0 = CA(MR(-95+95*i), MR(35*i), MR(-30+50*i))
  438.         LAW.C0 = CA(MR(15+25*i), 0, MR(5+15*i)) * CN(0, -0.4*i, 0)
  439.         FW.C0 = CA(0, MR(-5-30*i), 0)
  440.         HW.C0 = CA(MR(45), 0, MR(-37+15*i))
  441.         wait()
  442.     end
  443.     Hum.WalkSpeed = 10
  444.     for i = 0.1, 1, 0.1 do
  445.         RAW.C0 = CA(MR(15*i), MR(35+10*i), MR(20+8*i))
  446.         LAW.C0 = CA(MR(40+7*i), 0, MR(20+6*i)) * CN(0, -0.4-0.2*i, 0)
  447.         FW.C0 = CA(0, MR(-35-10*i), 0)
  448.         HW.C0 = CA(MR(45-11*i), 0, MR(-22+15*i))
  449.         wait()
  450.     end
  451.     for i = 0.25, 1, 0.25 do
  452.         RAW.C0 = CA(MR(15+5*i), MR(45+5*i), MR(28+2*i))
  453.         LAW.C0 = CA(MR(47+3*i), 0, MR(26+4*i)) * CN(0, -0.6, 0)
  454.         FW.C0 = CA(0, MR(-45-5*i), 0)
  455.         HW.C0 = CA(MR(34-4*i), 0, MR(-7+7*i))
  456.         wait()
  457.     end
  458. end
  459.  
  460. function DeselAnim()
  461.     for i = 0.25, 1, 0.25 do
  462.         RAW.C0 = CA(MR(20-5*i), MR(50-5*i), MR(30-5*i))
  463.         LAW.C0 = CA(MR(50-5*i), 0, MR(30-5*i)) * CN(0, -0.6+0.1*i, 0)
  464.         FW.C0 = CA(0, MR(-50+5*i), 0)
  465.         HW.C0 = CA(MR(30+5*i), 0, MR(-10*i))
  466.         wait()
  467.     end
  468.     for i = 0.15, 1, 0.15 do
  469.         RAW.C0 = CA(MR(15-30*i), MR(45-10*i), MR(25-5*i))
  470.         LAW.C0 = CA(MR(45-20*i), 0, MR(25-15*i)) * CN(0, -0.5+0.2*i, 0)
  471.         FW.C0 = CA(0, MR(-45+10*i), 0)
  472.         HW.C0 = CA(MR(35+10*i), 0, MR(-10-15*i))
  473.         wait()
  474.     end
  475.     for i = 0.12, 1, 0.12 do
  476.         RAW.C0 = CA(MR(-15-70*i), MR(35-30*i), MR(20-30*i))
  477.         LAW.C0 = CA(MR(25-25*i), 0, MR(10-10*i)) * CN(0, -0.3+0.3*i, 0)
  478.         FW.C0 = CA(0, MR(-35+20*i), 0)
  479.         HW.C0 = CA(MR(45+5*i), 0, MR(-25-12*i))
  480.         wait()
  481.     end
  482.     LAW.Part1 = nil
  483.     HW.C0 = CA(MR(50), 0, MR(-37))
  484.     for i = 0.25, 1, 0.25 do
  485.         RAW.C0 = CA(MR(-85-20*i), MR(5-5*i), MR(-10-25*i))
  486.         FW.C0 = CA(0, MR(-15+15*i), 0)
  487.         wait()
  488.     end
  489.     Attach(Torso)
  490.     HW.Part1 = nil
  491.     TW.Part1 = Handle
  492.     Hum.WalkSpeed = 16
  493.     for i = 0.15, 1, 0.15 do
  494.         RAW.C0 = CA(MR(-105+95*i), 0, MR(-35+30*i))
  495.         wait()
  496.     end
  497.     for i = 0.33, 1, 0.33 do
  498.         RAW.C0 = CA(MR(-10+10*i), 0, MR(-5+5*i))
  499.         wait()
  500.     end
  501.     RAW.Part1 = nil
  502. end
  503.  
  504. --Norms:
  505. --RAW.C0 = CA(MR(20), MR(50), MR(30))
  506. --LAW.C0 = CA(MR(50), 0, MR(30)) * CN(0, -0.6, 0)
  507. --FW.C0 = CA(0, MR(-50), 0)
  508. --HW.C0 = CA(MR(30), 0, 0)
  509. --
  510. --
  511.  
  512. function Explode(Par, Pos, surface)
  513.     Notime(function()
  514.         local cf = CN(Pos) * CA(Par.CFrame:toEulerAnglesXYZ()) * surface[2] * CN(0, 1, 0)
  515.         if surface[1] == "Anything" then
  516.             cf = surface[2]
  517.         end
  518.         local col = Par.BrickColor.Color
  519.         local r, g, b = col.r, col.g, col.b
  520.         local col1, col2, col3 = C3(MRA(r*60, r*100)/100, MRA(g*60, g*100)/100, MRA(b*60, b*100)/100), C3(MRA(r*60, r*100)/100, MRA(g*60, g*100)/100, MRA(b*60, b*100)/100), C3(MRA(r*60, r*100)/100, MRA(g*60, g*100)/100, MRA(b*60, b*100)/100)
  521.         local p = Part(workspace, true, false, 0, 0, BN(col1.r, col1.g, col1.b), V3(0.2, 0.2, 0.2))
  522.         local p2 = Part(workspace, true, false, 0, 0, BN(col2.r, col2.g, col2.b), V3(0.2, 0.2, 0.2))
  523.         local p3 = Part(workspace, true, false, 0, 0, BN(col3.r, col3.g, col3.b), V3(0.2, 0.2, 0.2))
  524.         p.CFrame = cf
  525.         p2.CFrame = cf
  526.         p3.CFrame = cf
  527.         local m = Add.Mesh(p, "http://www.roblox.com/asset/?id=20329976", V3(1, 1, 1))
  528.         local m2 = Add.Mesh(p2, "http://www.roblox.com/asset/?id=20329976", V3(1, 1, 1))
  529.         local m3 = Add.Mesh(p3, "http://www.roblox.com/asset/?id=20329976", V3(1, 1, 1))
  530.         for i = -0.2, 1, 0.12 do
  531.             p2.Transparency = i+0.1
  532.             p.Transparency = i
  533.             p3.Transparency = i+0.2
  534.             m.Scale = V3(1+2.5*i, 1.4+1*i, 1+2.5*i)
  535.             m2.Scale = V3(0.8+2*i, 1.2+1*i, 0.8+2*i)
  536.             m3.Scale = V3(0.5+1*i, 1+1*i, 0.5+1*i)
  537.             wait()
  538.         end
  539.         p2:remove()
  540.         p3:remove()
  541.         p:remove()
  542.     end)
  543. end
  544.  
  545. function Shoot(Pos)
  546.     coroutine.resume(coroutine.create(function()
  547.     local acc = Accuracy*100
  548.     local Start = Main2.CFrame * CN(0, 0, -0.5).p
  549.     local Face = CN(Start, Pos) * CA(MR(MRA(-acc, acc))/100, MR(MRA(-acc, acc))/100, MR(MRA(-acc, acc))/100)
  550.     local Cannonball = Part(Model, true, false, 0, 0, BN("Black"), V3(1.3, 1.3, 1.3))
  551.     Add.Sphere(Cannonball)
  552.     Cannonball.CFrame = Face
  553.     local Go = 3
  554.     local Drop = 0.55/(Go*3)
  555.     local Dist = 500
  556.     local lastP = Start
  557.     local omg = 0
  558.     for i = Go, Dist, Go do
  559.         Drop = Drop + 1/(Go*3)
  560.         omg = omg + Drop
  561.         local dropping = CA(MR(-Drop), 0, 0)
  562.         if omg > 130 then
  563.             dropping = CN()
  564.         end
  565.         Face = Face * dropping * CN(0, 0, -Go)
  566.         Cannonball.CFrame = Face
  567.         local Magn = (Face.p - lastP).magnitude
  568.         local T = Part(Model, true, false, 0.1, 0, BN("Mid gray"), V3(0.2, 1, 0.2))
  569.         local M = Instance.new("SpecialMesh",T)
  570.         M.MeshType = "Head"
  571.         M.Scale = V3(5, Magn, 5)
  572.         T.CFrame = CN(lastP, Face.p) * CA(MR(-90), 0, 0) * CN(0, Magn/2, 0)
  573.         Notime(function()
  574.             wait(0.1)
  575.             for i = 0.1, 1, 0.1 do
  576.                 T.Transparency = i+0.1
  577.                 M.Scale = V3(5-5*i, Magn+0.5, 5-5*i)
  578.                 wait()
  579.             end
  580.             T:remove()
  581.         end)
  582.         local Hit, Hitpos = RayC(lastP, Face.p, Go*2, Char)
  583.         lastP = Face.p
  584.         if Hit then
  585.             PlaySound(Sounds.Boom, true)
  586.             local s = DetectSurface(Hitpos, Hit)
  587.             Explode(Hit, Hitpos, s)
  588.             Cannonball.CFrame = CN(Hitpos)
  589.             local hu = GetHum(Hit.Parent)
  590.             if hu == nil and Hit.Parent.className ~= "Hat" and Hit.Anchored then
  591.                 coroutine.resume(coroutine.create(function()
  592.                     wait(10)
  593.                     for i = 0, 1, 0.04 do
  594.                         Cannonball.Transparency = i
  595.                         wait()
  596.                     end
  597.                     Cannonball:remove()
  598.                 end))
  599.             else
  600.                 Cannonball:remove()
  601.             end
  602.             local Noobs = GetGroup(Hitpos, 5, Hit)
  603.             for _,v in pairs(Noobs) do
  604.                 local dm = 60/((v[3]+3)/3)
  605.                 dm = MRA(dm*0.9, dm*1.04)
  606.                 v[1].Health = v[1].Health - dm
  607.                 local t = v[2]:findFirstChild("Head")
  608.                 if t then
  609.                     Show_Damage(t.Position, dm)
  610.                 end
  611.                 pcall(function()
  612.                 Tag(v[1])
  613.                 end)
  614.             end
  615.             local Parts = GetParts(Hitpos, 7)
  616.             for _,v in pairs(Parts) do
  617.                 if v[3] == false then
  618.                     Notime(function()
  619.                         if v[1].Name == "Brick wall" then
  620.                             v[1]:BreakJoints()
  621.                             v[1].Velocity = (CN(Hitpos, v[1].Position).lookVector * (110/((v[2]+2)/3)))
  622.                             wait(0.1)
  623.                             v[1].Velocity = (CN(Hitpos, v[1].Position).lookVector * (110/((v[2]+2)/3)))
  624.                         else
  625.                             v[1].Velocity = (CN(Hitpos, v[1].Position).lookVector * (80/((v[2]+2)/3)))
  626.                         end
  627.                     end)
  628.                 end
  629.             end
  630.             break
  631.         end
  632.         wait()
  633.     end
  634.     end))
  635. end
  636.  
  637. function ShootAnim(pos)
  638.     RLW.Part1 = Rleg
  639.     LLW.Part1 = Lleg
  640.     local cf = ComputePos(Torso.Position, pos)
  641.     local bp = Instance.new("BodyPosition",Torso)
  642.     bp.maxForce = V3(MH, 0, MH)
  643.     bp.P = 10000
  644.     PlaySound(Sounds.Shoot, true)
  645.     local effect = Part(Model, false, false, 0, 0, BN(ShootColors[MRA(1,#ShootColors)]), V3(0.2, 0.2, 0.2))
  646.     local effect2 = Part(Model, false, false, 0, 0, BN(ShootColors[MRA(1,#ShootColors)]), V3(0.2, 0.2, 0.2))
  647.     local m1 = Add.Mesh(effect, "http://www.roblox.com/asset/?id=20329976", V3(1,1,1))
  648.     local m2 = Add.Mesh(effect2, "http://www.roblox.com/asset/?id=20329976", V3(1,1,1))
  649.     local w1 = Weld(Main2, effect, CA(MR(-90), 0, 0), CN(0, -1, 0))
  650.     local w2 = Weld(Main2, effect2, CA(MR(-90), 0, 0), CN(0, -1, 0))
  651.     for i = 0, 1, 0.5 do
  652.         RAW.C0 = CA(MR(20-50*i), MR(50-25*i), MR(30+45*i))
  653.         LAW.C0 = CA(MR(50-10*i), 0, MR(30+20*i)) * CN(0, -0.6-0.3*i, 0)
  654.         RLW.C0 = CA(MR(30*i), 0, MR(-15*i))
  655.         LLW.C0 = CA(MR(10*i), 0, MR(-35*i))
  656.         FW.C0 = CA(MR(5*i), MR(-50-15*i), 0)
  657.         HW.C0 = CA(MR(30), MR(35*i), MR(-25*i))
  658.         Neck.C0 = necko * CA(MR(10*i), 0, 0)
  659.         bp.position = cf * CN(0, 0, 3*i).p
  660.         m1.Scale = V3(0.5+0.6*i, 0.4+0.2*i, 0.5+0.6*i)
  661.         m2.Scale = V3(0.3+0.5*i, 0.5+1*i, 0.3+0.5*i)
  662.         w1.C1 = CN(0, -1-0.2*i, 0)
  663.         w2.C1 = CN(0, -1-0.5*i, 0)
  664.         effect.Transparency = 0.2*i
  665.         effect2.Transparency = 0.2*i
  666.         wait()
  667.     end
  668.     for i = 0.2, 1, 0.2 do
  669.         RAW.C0 = CA(MR(-30-10*i), MR(25-5*i), MR(75+5*i))
  670.         LAW.C0 = CA(MR(40-5*i), 0, MR(50+5*i)) * CN(0, -0.9-0.05*i, 0)
  671.         RLW.C0 = CA(MR(30+5*i), 0, MR(-15))
  672.         LLW.C0 = CA(MR(10+5*i), 0, MR(-35-5*i))
  673.         FW.C0 = CA(MR(5+5*i), MR(-65-5*i), 0)
  674.         HW.C0 = CA(MR(30), MR(35+5*i), MR(-25-5*i))
  675.         Neck.C0 = necko * CA(MR(10+5*i), 0, 0)
  676.         bp.position = cf * CN(0, 0, 3+1*i).p
  677.         m1.Scale = V3(1+1*i, 0.7+0.9*i, 1+1*i)
  678.         m2.Scale = V3(0.8+0.6*i, 1.5+1.6*i, 0.8+0.6*i)
  679.         w1.C1 = CN(0, -1.2-0.6*i, 0)
  680.         w2.C1 = CN(0, -1.5-1.8*i, 0)
  681.         effect.Transparency = 0.2+0.9*i
  682.         effect2.Transparency = 0.2+0.9*i
  683.         wait()
  684.     end
  685.     effect:remove()
  686.     effect2:remove()
  687.     for i = 0.2, 1, 0.2 do
  688.         bp.position = cf * CN(0, 0, 4+0.8*i).p
  689.         wait()
  690.     end
  691.     for i = 0.08, 1, 0.06 do
  692.         RAW.C0 = CA(MR(-40+50*i), MR(20+15*i), MR(80-35*i))
  693.         LAW.C0 = CA(MR(35-30*i), 0, MR(55-45*i)) * CN(0, -0.95+0.5*i, 0)
  694.         RLW.C0 = CA(MR(35-35*i), 0, MR(-15+25*i))
  695.         LLW.C0 = CA(MR(15-15*i), 0, MR(-40+30*i))
  696.         FW.C0 = CA(MR(10-7*i), MR(-70+40*i), 0)
  697.         HW.C0 = CA(MR(30), MR(40-40*i), MR(-30-10*i))
  698.         Neck.C0 = necko * CA(MR(15+5*i), 0, MR(20*i))
  699.         bp.position = cf * CN(0, 0, 4.8+0.8*i).p
  700.         wait()
  701.     end
  702.     bp:remove()
  703.     for i = 0.33, 1, 0.33 do
  704.         RAW.C0 = CA(MR(10+10*i), MR(35+5*i), MR(45-5*i))
  705.         LAW.C0 = CA(MR(5), 0, MR(10)) * CN(0, -0.45+0.1*i, 0)
  706.         FW.C0 = CA(MR(3-3*i), MR(-30+5*i), 0)
  707.         HW.C0 = CA(MR(30), 0, MR(-40-10*i))
  708.         wait()
  709.     end
  710.     for i = 0.12, 1, 0.12 do
  711.         RAW.C0 = CA(MR(20+5*i), MR(40+5*i), MR(40+5*i))
  712.         LAW.C0 = CA(MR(5), 0, MR(10)) * CN(0, -0.35-0.3*i, 0)
  713.         FW.C0 = CA(0, MR(-25+5*i), 0)
  714.         HW.C0 = CA(MR(30), 0, MR(-50-5*i))
  715.         wait()
  716.     end
  717.     local b = Part(Model, false, false, 0, 0, BN("Black"), V3(1.1, 1.1, 1.1))
  718.     local m = Add.Sphere(b)
  719.     local w = Weld(Larm, b, CN(), CN(0, 1.4, 0))
  720.     for i = 0.16, 1, 0.16 do
  721.         LAW.C0 = CA(MR(5+30*i), 0, MR(10+10*i)) * CN(0, -0.65+0.65*i, 0)
  722.         RAW.C0 = CA(MR(25), MR(45+3*i), MR(40))
  723.         m.Scale = V3(0.5+0.5*i, 0.5+0.5*i, 0.5+0.5*i)
  724.         Neck.C0 = necko * CA(MR(20-10*i), 0, MR(20-15*i))
  725.         wait()
  726.     end
  727.     for i = 0.1, 1, 0.1 do
  728.         LAW.C0 = CA(MR(35+105*i), 0, MR(20+20*i)) * CN(0, -0.9*i, 0)
  729.         RAW.C0 = CA(MR(25), MR(48+6*i), MR(40))
  730.         Neck.C0 = necko * CA(MR(10-10*i), 0, MR(5-35*i))
  731.         wait()
  732.     end
  733.     for i = 0.16, 1, 0.16 do
  734.         LAW.C0 = CA(MR(140-10*i), 0, MR(40-15*i)) * CN(0, -0.9-0.2*i, 0)
  735.         RAW.C0 = CA(MR(25), MR(54), MR(40))
  736.         Neck.C0 = necko * CA(MR(5*i), 0, MR(-30))
  737.         w.C0 = CN(1.5*i, 0.55*i, 1.1*i)
  738.         wait()
  739.     end
  740.     PlaySound(Sounds.Reload, true)
  741.     b:remove()
  742.     w:remove()
  743.     for i = 0.2, 1, 0.2 do
  744.         LAW.C0 = CA(MR(130-10*i), 0, MR(25-15*i)) * CN(0, -1.1+0.2*i, 0)
  745.         RAW.C0 = CA(MR(25-10*i), MR(54), MR(40))
  746.         Neck.C0 = necko * CA(MR(5-3*i), 0, MR(-30+5*i))
  747.         HW.C0 = CA(MR(30), 0, MR(-55+10*i))
  748.         FW.C0 = CA(0, MR(-20-5*i), 0)
  749.         wait()
  750.     end
  751.     for i = 0.11, 1, 0.11 do
  752.         LAW.C0 = CA(MR(120-60*i), 0, MR(10+15*i)) * CN(0, -0.9+0.3*i, 0)
  753.         RAW.C0 = CA(MR(15+5*i), MR(54-4*i), MR(40-10*i))
  754.         Neck.C0 = necko * CA(MR(2-2*i), 0, MR(-25+25*i))
  755.         HW.C0 = CA(MR(30), 0, MR(-45+45*i))
  756.         FW.C0 = CA(0, MR(-25-20*i), 0)
  757.         RLW.C0 = CA(0, 0, MR(10-8*i))
  758.         LLW.C0 = CA(0, 0, MR(-10+8*i))
  759.         wait()
  760.     end
  761.     Neck.C0 = necko
  762.     for i = 0.25, 1, 0.25 do
  763.         LAW.C0 = CA(MR(60-10*i), 0, MR(25+5*i)) * CN(0, -0.6, 0)
  764.         RAW.C0 = CA(MR(20), MR(50), MR(30))
  765.         HW.C0 = CA(MR(30), 0, 0)
  766.         FW.C0 = CA(0, MR(-45-5*i), 0)
  767.         RLW.C0 = CA(0, 0, MR(2-2*i))
  768.         LLW.C0 = CA(0, 0, MR(-2+2*i))
  769.         wait()
  770.     end
  771.     RLW.Part1 = nil
  772.     LLW.Part1 = nil
  773.     RAW.C0 = CA(MR(20), MR(50), MR(30))
  774.     LAW.C0 = CA(MR(50), 0, MR(30)) * CN(0, -0.6, 0)
  775.     FW.C0 = CA(0, MR(-50), 0)
  776.     HW.C0 = CA(MR(30), 0, 0)
  777.     Neck.C0 = necko
  778. end
  779.  
  780. function Melee()
  781.     PlaySound(Sounds.Slash, true)
  782.     for i = 0.25, 1, 0.25 do
  783.         RAW.C0 = CA(MR(20+5*i), MR(50-5*i), MR(30+3*i))
  784.         LAW.C0 = CA(MR(50), 0, MR(30+4*i)) * CN(0, -0.6-0.05*i, 0)
  785.         HW.C0 = CA(MR(30), MR(5*i), 0)
  786.         FW.C0 = CA(0, MR(-50-5*i), 0)
  787.         wait()
  788.     end
  789.     for i = 0.12, 1, 0.12 do
  790.         RAW.C0 = CA(MR(25+25*i), MR(45-30*i), MR(33+7*i))
  791.         LAW.C0 = CA(MR(50), 0, MR(34+11*i)) * CN(0, -0.65-0.25*i, 0)
  792.         HW.C0 = CA(MR(30), MR(5+25*i), 0)
  793.         FW.C0 = CA(0, MR(-55-25*i), 0)
  794.         wait()
  795.     end
  796.     for i = 0.33, 1, 0.33 do
  797.         RAW.C0 = CA(MR(50+15*i), MR(15-5*i), MR(40-10*i)) * CN(0, -0.2*i, 0)
  798.         LAW.C0 = CA(MR(50+10*i), 0, MR(45-5*i)) * CN(0, -0.9+0.15*i, 0)
  799.         HW.C0 = CA(MR(30+2*i), MR(30+5*i), 0)
  800.         FW.C0 = CA(0, MR(-80+10*i), MR(-5*i))
  801.         wait()
  802.     end
  803.     Hurt = true
  804.     Debounce = true
  805.     for i = 0.07, 1, 0.07 do
  806.         RAW.C0 = CA(MR(65+55*i), MR(10), MR(30-70*i)) * CN(0, -0.2-1.1*i, 0)
  807.         LAW.C0 = CA(MR(60+120*i), 0, MR(40-70*i)) * CN(0, -0.75+0.7*i, 0)
  808.         HW.C0 = CA(MR(32+6*i), MR(35+20*i), MR(-4*i))
  809.         FW.C0 = CA(0, MR(-70+110*i), 0)
  810.         wait()
  811.     end
  812.     for i = 0.16, 1, 0.16 do
  813.         RAW.C0 = CA(MR(120+10*i), MR(10), MR(-40-5*i)) * CN(0, -1.3-0.1*i, 0)
  814.         LAW.C0 = CA(MR(180+15*i), 0, MR(-30-20*i)) * CN(0, -0.05+0.1*i, 0)
  815.         HW.C0 = CA(MR(38+2*i), MR(55-6*i), MR(-4-1*i))
  816.         FW.C0 = CA(0, MR(40+10*i), 0)
  817.         wait()
  818.     end
  819.     Hurt = false
  820.     for i = 0.2, 1, 0.2 do
  821.         RAW.C0 = CA(MR(130+5*i), MR(10), MR(-45-2*i)) * CN(0, -1.4-0.05*i, 0)
  822.         LAW.C0 = CA(MR(195+5*i), 0, MR(-50-8*i)) * CN(0, 0.05+0.05*i, 0)
  823.         HW.C0 = CA(MR(40), MR(49-2*i), MR(-5))
  824.         FW.C0 = CA(0, MR(50+3*i), 0)
  825.         wait()
  826.     end
  827.     wait(0.2)
  828.     for i = 0.2, 1, 0.2 do
  829.         RAW.C0 = CA(MR(135-10*i), MR(10+5*i), MR(-47+10*i)) * CN(0, -1.45+0.25*i, 0)
  830.         LAW.C0 = CA(MR(200-10*i), 0, MR(-58+10*i)) * CN(0, 0.1-0.1*i, 0)
  831.         HW.C0 = CA(MR(40), MR(47-5*i), MR(-5+5*i))
  832.         FW.C0 = CA(0, MR(53-10*i), 0)
  833.         wait()
  834.     end
  835.     for i = 0.08, 1, 0.08 do
  836.         RAW.C0 = CA(MR(125-90*i), MR(15+30*i), MR(-37+57*i)) * CN(0, -1.2+1.1*i, 0)
  837.         LAW.C0 = CA(MR(190-125*i), 0, MR(-48+68*i)) * CN(0, -0.5*i, 0)
  838.         HW.C0 = CA(MR(40-7*i), MR(42-37*i), 0)
  839.         FW.C0 = CA(0, MR(43-82*i), 0)
  840.         wait()
  841.     end
  842.     for i = 0.2, 1, 0.2 do
  843.         RAW.C0 = CA(MR(35-15*i), MR(45+5*i), MR(20+10*i)) * CN(0, -0.1+0.1*i, 0)
  844.         LAW.C0 = CA(MR(65-15*i), 0, MR(20+10*i)) * CN(0, -0.5-0.1*i, 0)
  845.         HW.C0 = CA(MR(33-3*i), MR(5-5*i), 0)
  846.         FW.C0 = CA(0, MR(-41-9*i), 0)
  847.         wait()
  848.     end
  849.     RLW.Part1 = nil
  850.     LLW.Part1 = nil
  851.     RAW.C0 = CA(MR(20), MR(50), MR(30))
  852.     LAW.C0 = CA(MR(50), 0, MR(30)) * CN(0, -0.6, 0)
  853.     FW.C0 = CA(0, MR(-50), 0)
  854.     HW.C0 = CA(MR(30), 0, 0)
  855.     Neck.C0 = necko
  856. end
  857.  
  858. function onSelected(mouse)
  859.     SelectAnim()
  860.     Selected = true
  861.     mouse.Button1Down:connect(function()
  862.         if Attacking == false then
  863.             Attacking = true
  864.             mouse.Button1Up:wait()
  865.             Shoot(mouse.Hit.p)
  866.             ShootAnim(mouse.Hit.p)
  867.             Attacking = false
  868.         end
  869.     end)
  870.     mouse.KeyDown:connect(function(key)
  871.         key = key:lower()
  872.         if key == "q" then
  873.             if Attacking == false then
  874.                 Attacking = true
  875.                 Melee()
  876.                 Attacking = false
  877.             end
  878.         end
  879.     end)
  880. end
  881.  
  882. function onDeselected(mouse)
  883.     Selected = false
  884.     DeselAnim()
  885. end
  886.  
  887. bin.Selected:connect(onSelected)
  888. bin.Deselected:connect(onDeselected)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement