Hand Cannon


SUBMITTED BY: Pamlau

DATE: March 8, 2017, 10:17 a.m.

FORMAT: Lua

SIZE: 25.8 kB

HITS: 308

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

comments powered by Disqus