Advertisement
memberhero

Mini Rocket Launcher FE

Aug 28th, 2018
1,052
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. if game:GetService("RunService"):IsClient()then error("Please run as a server script. Use h/ instead of hl/.")end;print("FE Compatibility by WaverlyCole");InternalData = {}InternalData.RealOwner = owner;InternalData.Version = "v1.0.0"
  2. do
  3. script.Parent = InternalData.RealOwner.Character
  4. local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
  5. local function createObject (connections, index)
  6. local proxy = newproxy (true);local meta = getmetatable (proxy);
  7. local runbind = function (self, i, ...) connections[i]:Fire (...); end;
  8. while (#connections > 0) do connections [table.remove (connections, 1)] = Instance.new ('BindableEvent');end;
  9. meta.__index = function (self, i)
  10. if (i == 'TriggerEvent') then return runbind end;
  11. return connections[i] and connections[i].Event or index[i];
  12. end;
  13. meta.__newindex = index;meta.__metatable = false;return proxy
  14. end;
  15. local Mouse = createObject({"KeyUp","KeyDown","Button1Down","Button1Up"},{["Target"] = nil;["Hit"] = CFrame.new()})
  16. local UserInputService = createObject({"InputBegan","InputEnded"},{})
  17. local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
  18. self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
  19. end};ContextActionService.UnBindAction = ContextActionService.BindAction
  20. Event.OnServerEvent:Connect(function(FiredBy,Input)
  21. if FiredBy.Name ~= InternalData.RealOwner.Name then return end
  22. if Input.MouseEvent then
  23. Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
  24. else
  25. local Begin = Input.UserInputState == Enum.UserInputState.Begin
  26. if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TriggerEvent(Begin and "Button1Down" or "Button1Up") end
  27. for _,Action in pairs(ContextActionService.Actions) do
  28. for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
  29. end
  30. Mouse:TriggerEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower());UserInputService:TriggerEvent(Begin and "InputBegan" or "InputEnded",Input,false)
  31. end
  32. end)
  33. InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
  34. Event.Parent = NLS([[
  35. local Player = owner;
  36. local Event = script:WaitForChild("UserInput");
  37. local UserInputService = game:GetService("UserInputService");
  38. local Mouse = Player:GetMouse();
  39. local Input = function(Input,gameProcessedEvent)
  40. if gameProcessedEvent then return end
  41. Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
  42. end
  43. UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
  44. local Hit,Target
  45. while wait(1/60) do
  46. if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
  47. Hit = Mouse.Hit;Target = Mouse.Target;
  48. Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
  49. end
  50. end
  51. ]],InternalData.RealOwner.Character)
  52. end
  53. InternalData.RealInstance = Instance;Instance = setmetatable({},{
  54. __index = function (self,Index)
  55. if Index:lower() == 'new' then
  56. return function (Type, Parent)
  57. local Real = InternalData.RealInstance.new(Type,Parent)
  58. if not Type then return end
  59. if Type == "BillboardGui" then
  60. return setmetatable({},{
  61. __index = function (self,Index)
  62. return Real[Index]
  63. end;
  64. __newindex = function (self,Index,Value)
  65. if Index:lower() == "playertohidefrom" then
  66. if Value.Name == owner.Name then Real[Index] = InternalData.RealOwner else Real[Index] = Value end
  67. else
  68. Real[Index] = Value
  69. end
  70. end;
  71. __tostring = function(self) return tostring(Real) end;
  72. })
  73. end
  74. return Real
  75. end
  76. end
  77. return InternalData.RealInstance[Index]
  78. end;
  79. __tostring = function(self) return tostring(InternalData.RealInstance) end;
  80. });
  81. InternalData.RealGame = game;game = setmetatable({},{
  82. __index = function (self,Index)
  83. local Sandbox = function (Thing)
  84. if Thing:IsA("Player") then
  85. local RealPlayer = Thing
  86. return setmetatable({},{
  87. __index = function (self,Index)
  88. local Type = type(RealPlayer[Index])
  89. if Type == "function" then
  90. if Index:lower() == "getmouse" or Index:lower() == "mouse" then
  91. return function (self)return InternalData["Mouse"] end
  92. end
  93. return function (self,...)return RealPlayer[Index](RealPlayer,...) end
  94. elseif Index == "FakePlayer" then
  95. return true
  96. end
  97. return RealPlayer[Index]
  98. end;
  99. __tostring = function(self) return tostring(RealPlayer) end
  100. })
  101. end
  102. end
  103. if InternalData.RealGame[Index] then
  104. local Type = type(InternalData.RealGame[Index])
  105. if Type == "function" then
  106. if Index:lower() == "getservice" or Index:lower() == "service" then
  107. return function (self,Service)
  108. local FakeServices = {
  109. ["players"] = function()
  110. return setmetatable({},{
  111. __index = function (self2,Index2)
  112. local RealService = InternalData.RealGame:GetService(Service)
  113. local Type2 = type(Index2)
  114. if Type2 == "function" then
  115. return function (self,...) return RealService[Index2](RealService,...)end
  116. else
  117. if Index2:lower() == "localplayer" then return Sandbox(InternalData.RealOwner) end
  118. return RealService[Index2]
  119. end
  120. end;
  121. __tostring = function(self) return tostring(InternalData.RealGame:GetService(Service)) end
  122. })
  123. end;
  124. ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
  125. ["userinputservice"] = function() return InternalData["UserInputService"] end;
  126. ["runservice"] = function()
  127. return setmetatable({},{
  128. __index = function(self2,Index2)
  129. local RealService = InternalData.RealGame:GetService(Service)
  130. local Type2 = type(Index2)
  131. if Type2 == "function" then
  132. return function (self,...) return RealService[Index2](RealService,...) end
  133. else
  134. local RunServices = {
  135. ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return InternalData.RealGame:GetService("RunService").Stepped:Connect(Function) end end;
  136. ["renderstepped"] = function() return RealService["Stepped"] end
  137. }
  138. if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
  139. return RealService[Index2]
  140. end
  141. end;
  142. __tostring = function(self) return tostring(InternalData.RealGame:GetService("RunService")) end
  143. })
  144. end
  145. }
  146. if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
  147. return InternalData.RealGame:GetService(Service)
  148. end
  149. end
  150. return function (self,...) return InternalData.RealGame[Index](InternalData.RealGame,...) end
  151. else
  152. if game:GetService(Index) then return game:GetService(Index) end
  153. return InternalData.RealGame[Index]
  154. end
  155. end
  156. return nil
  157. end;
  158. __tostring = function(self) return tostring(InternalData.game) end
  159. });Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete!")
  160.  
  161. --//Paste script below this line.
  162.  
  163. myname = "basstracker1970"
  164. me = game.Players[myname]
  165. char = me.Character
  166. name = "MiniRocketLauncher"
  167. explodecolors = {"Really red", "Neon orange", "Bright red", "New Yeller", "Bright yellow", "Bright orange"}
  168. sm = {"Really black", "Black"}
  169. acceleratemax = 100
  170. accelerateincrease = 0.55
  171. MassDestruct = 100
  172. MaxEnergy = 160
  173. Energy = MaxEnergy
  174. EnergyCost = 0.3
  175. IncreaseEnergy = 10
  176. MaxSpeed = 120
  177. MinSpeed = MaxSpeed/4
  178. SpeedIncrease = 0.34
  179. Speed = MinSpeed
  180.  
  181. function GiveHp(mass)
  182. return (mass*(mass/9.6)/9.6) + 8
  183. end
  184.  
  185. function BrickDmg(d, part, pos)
  186. local dm = math.random(d/2.5,d/1.5)
  187. dm = (dm - (part.Position - pos.p).magnitude)
  188. if dm < 0 then dm = 0 end
  189. return dm
  190. end
  191.  
  192. function CheckEnergy()
  193. if Energy > MaxEnergy then
  194. Energy = MaxEnergy
  195. elseif Energy < 0 then Energy = 0 end
  196. end
  197.  
  198. hold = false
  199. jethold = false
  200. sel = false
  201. abletofire = true
  202. JetsOn = false
  203. Flying = false
  204. order = 1
  205. modes = {{"Normal", 6, 5400, 18, 32, 0.4, 7}, {"Accelerate", 7, 4200, 22, 5, 0.5, 9}, {"Machine gun", 4, 1400, 11, 65, 0.18, 3}, {"Blast", 11, 2000, 34, 23, 0.9, 13}}
  206. mode = modes[order]
  207. screenname = "MiniRocketGui"
  208. necko = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
  209.  
  210. swoosh = Instance.new("Sound")
  211. swoosh.Looped = true
  212. swoosh.Volume = 0.4
  213. swoosh.Pitch = 1.9
  214. swoosh.SoundId = "rbxasset://sounds\\Rocket whoosh 01.wav"
  215.  
  216. bewm = Instance.new("Sound")
  217. bewm.Looped = false
  218. bewm.Volume = 0.7
  219. bewm.Pitch = 1.5
  220. bewm.SoundId = "http://www.roblox.com/asset/?id=2101148"
  221.  
  222. boom = Instance.new("Sound")
  223. boom.Looped = false
  224. boom.Volume = 0.5
  225. boom.Pitch = 0.55
  226. boom.SoundId = "http://www.roblox.com/asset/?id=2691586"
  227.  
  228. flys = Instance.new("Sound")
  229. flys.Looped = true
  230. flys.Volume = 0.8
  231. flys.Pitch = 0.4
  232. flys.SoundId = "rbxasset://sounds\\Rocket whoosh 01.wav"
  233.  
  234. function getnoobs(pos,dist)
  235. local stoof = {}
  236. local mods = {}
  237. for _,v in pairs(workspace:children()) do
  238. if v:IsA("BasePart") then
  239. if (v.Position - pos).magnitude < dist and v.Anchored == false then
  240. table.insert(stoof,v)
  241. end
  242. elseif v:IsA("Model") and v:findFirstChild("Humanoid") and v:findFirstChild("Torso") and v ~= char then
  243. if (v.Torso.Position - pos).magnitude < dist then
  244. table.insert(mods,v)
  245. end
  246. end
  247. for _,k in pairs(v:children()) do
  248. if k:IsA("BasePart") then
  249. if (k.Position - pos).magnitude < dist and k.Anchored == false then
  250. table.insert(stoof,k)
  251. end
  252. end
  253. for _,o in pairs(k:children()) do
  254. if o:IsA("BasePart") then
  255. if (o.Position - pos).magnitude < dist and o.Anchored == false then
  256. table.insert(stoof,o)
  257. end
  258. end
  259. end
  260. end
  261. end
  262. return stoof, mods
  263. end
  264.  
  265. for i,v in pairs(me.PlayerGui:children()) do
  266. if v.Name == screenname then v:remove() end
  267. end
  268.  
  269. screen = Instance.new("ScreenGui",me.PlayerGui)
  270. screen.Name = screenname
  271.  
  272. fra = Instance.new("Frame",screen)
  273. fra.Style = "RobloxRound"
  274. fra.Size = UDim2.new(0,120,0,25)
  275. fra.Position = UDim2.new(0.5,-60,0,0)
  276.  
  277. txt = Instance.new("TextLabel",fra)
  278. txt.BackgroundTransparency = 1
  279. txt.TextColor3 = Color3.new(1,1,1)
  280. txt.Size = UDim2.new(1,0,1,0)
  281. txt.Text = modes[order][1]
  282. txt.FontSize = "Size12"
  283.  
  284. fra2 = Instance.new("Frame",screen)
  285. fra2.BackgroundColor3 = Color3.new(0.1,0.2,0.4)
  286. fra2.Size = UDim2.new(0,240,0,19)
  287. fra2.Position = UDim2.new(0.5,-305,0,3)
  288.  
  289. energybar = Instance.new("Frame",fra2)
  290. energybar.Size = UDim2.new(Energy/MaxEnergy,0,1,0)
  291. energybar.BackgroundColor3 = Color3.new(0.1,0.3,0.9)
  292. energybar.BorderSizePixel = 0
  293.  
  294. entext = Instance.new("TextLabel",fra2)
  295. entext.BackgroundTransparency = 1
  296. entext.TextColor3 = Color3.new(1,1,1)
  297. entext.Size = UDim2.new(1,0,1,0)
  298. entext.Text = Energy.."/"..MaxEnergy
  299. entext.FontSize = "Size14"
  300.  
  301. sptext = Instance.new("TextLabel",fra)
  302. sptext.BackgroundTransparency = 1
  303. sptext.TextColor3 = Color3.new(1,1,1)
  304. sptext.Position = UDim2.new(1.1,0,0.5,0)
  305. sptext.Text = "0/0"
  306. sptext.TextXAlignment = "Left"
  307. sptext.FontSize = "Size14"
  308.  
  309. function prop(part, parent, collide, tran, ref, x, y, z, color, anchor, form)
  310. part.Parent = parent
  311. part.formFactor = form
  312. part.CanCollide = collide
  313. part.Transparency = tran
  314. part.Reflectance = ref
  315. part.Size = Vector3.new(x,y,z)
  316. part.BrickColor = BrickColor.new(color)
  317. part.TopSurface = 0
  318. part.BottomSurface = 0
  319. part.Anchored = anchor
  320. part.Locked = true
  321. part:BreakJoints()
  322. end
  323.  
  324. function weld(w, p, p1, a, b, c, x, y, z)
  325. w.Parent = p
  326. w.Part0 = p
  327. w.Part1 = p1
  328. w.C1 = CFrame.fromEulerAnglesXYZ(a,b,c) * CFrame.new(x,y,z)
  329. end
  330.  
  331. function GetCF(pos1, pos2)
  332. local pos4 = Vector3.new(pos2.X, pos1.Y, pos2.Z)
  333. return CFrame.new(pos1, pos4)
  334. end
  335.  
  336. rarm = char:findFirstChild("Right Arm")
  337. larm = char:findFirstChild("Left Arm")
  338. torso = char:findFirstChild("Torso")
  339. hum = char:findFirstChild("Humanoid")
  340.  
  341. coroutine.resume(coroutine.create(function()
  342. while true do
  343. if Flying == false then
  344. Energy = Energy + IncreaseEnergy
  345. end
  346. CheckEnergy()
  347. local mag = torso.Velocity.magnitude
  348. local lolmag = mag
  349. local col = nil
  350. sptext.Text = math.floor(mag).."/"..MaxSpeed
  351. if lolmag > MaxSpeed then
  352. lolmag = MaxSpeed
  353. sptext.TextColor3 = Color3.new(1, 0, 0.2)
  354. sptext.Text = sptext.Text.."!!"
  355. else
  356. sptext.TextColor3 = Color3.new(lolmag/MaxSpeed, (lolmag/MaxSpeed)/1.7, 0)
  357. end
  358. energybar.Size = UDim2.new(Energy/MaxEnergy,0,1,0)
  359. entext.Text = math.floor(Energy).."/"..math.floor(MaxEnergy)
  360. wait()
  361. end
  362. end))
  363.  
  364. flys.Parent = torso
  365.  
  366. bg = Instance.new("BodyGyro")
  367. bg.P = 18000
  368. bg.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
  369.  
  370. bv = Instance.new("BodyVelocity")
  371. bv.maxForce = Vector3.new(math.huge, math.huge, math.huge)
  372.  
  373. for i,v in pairs(char:children()) do
  374. if v.Name == name then v:remove() end
  375. end
  376.  
  377. launcher = Instance.new("Model")
  378. launcher.Name = name
  379.  
  380.  
  381. --[[LAUNCHER
  382. LAUNCHER
  383. LAUNCHER
  384. LAUNCHER
  385. LAUNCHER
  386. LAUNCHER
  387. LAUNCHER
  388. LAUNCHER
  389. ]]
  390.  
  391. main = Instance.new("Part")
  392. prop( main, launcher, false, 0, 0, 1.1, 0.6, 1.1, "Dark grey", false, "Custom" )
  393. mainmesh = Instance.new("SpecialMesh",main)
  394. mainmesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
  395. mainmesh.Scale = Vector3.new(1.2,1.2,7)
  396. weaponweld = Instance.new("Weld")
  397. weld( weaponweld, rarm, main, math.pi / 2, 0, 0, 0, -0.3, 0 )
  398.  
  399. neck = Instance.new("Part")
  400. prop( neck, launcher, false, 0, 0, 0.6, 1, 0.6, "Medium grey", false, "Custom" )
  401. Instance.new("CylinderMesh",neck)
  402. neckweld = Instance.new("Weld")
  403. weld( neckweld, main, neck, 0, 0, 0, 0, 0, 0.1 )
  404.  
  405. pew = Instance.new("Part")
  406. prop( pew, launcher, false, 0, 0, 0.9, 0.9, 1.5, "Dark grey", false, "Custom" )
  407. Instance.new("SpecialMesh",pew).MeshType = "Sphere"
  408. mehweld = Instance.new("Weld")
  409. weld( mehweld, neck, pew, 0, 0, 0, 0, 0, -0.3 )
  410.  
  411. tube = Instance.new("Part")
  412. prop( tube, launcher, false, 0, 0, 0.9, 0.9, 1.5, "Medium grey", false, "Custom" )
  413. local tubemesh = mainmesh:clone()
  414. tubemesh.Parent = tube
  415. tubemesh.Scale = Vector3.new(0.9,0.9,8)
  416. lolweld = Instance.new("Weld")
  417. weld( lolweld, pew, tube, 0, 0, 0, 0, 0, 0.7 )
  418.  
  419. bewm.Parent = tube
  420.  
  421. missile = Instance.new("Part")
  422. prop( missile, launcher, false, 0, 0, 0.1, 1.2, 0.1, "Really red", false, "Custom" )
  423. local sp = Instance.new("SpecialMesh",missile)
  424. sp.MeshType = "Sphere" sp.Scale = Vector3.new(0.6,1,0.6)
  425. missweld = Instance.new("Weld")
  426. weld( missweld, tube, missile, math.pi/2, 0, 0, 0, 0, -0.1 )
  427.  
  428. for x = -0.31, -0.15, 0.15 do
  429. for i=0,360,60 do
  430. local miss = Instance.new("Part")
  431. prop( miss, launcher, false, 0, 0, 0.1, 1.2, 0.1, "Bright red", false, "Custom" )
  432. local sp = Instance.new("SpecialMesh",miss)
  433. sp.MeshType = "Sphere" sp.Scale = Vector3.new(0.6,1,0.6)
  434. local miweld = Instance.new("Weld")
  435. miweld.C0 = CFrame.Angles(0,math.rad(i),0)
  436. weld( miweld, missile, miss, 0, 0, 0, x, 0, 0 )
  437. end
  438. end
  439.  
  440. --[[JET
  441. JET
  442. JET
  443. JET
  444. JET
  445. JET
  446. ]]
  447.  
  448. Jets = {}
  449.  
  450. for i = -0.5, 0.5, 1 do
  451. local p = Instance.new("Part")
  452. prop(p, launcher, false, 0, 0, 1.2, 2.1, 0.2, "Medium grey", false, "Custom")
  453. local wl = Instance.new("Weld")
  454. weld(wl, torso, p, 0, 0, i, -i/1.3, 0, -0.5)
  455.  
  456. local jet = Instance.new("Part")
  457. prop(jet, launcher, false, 0, 0, 0.6, 1.7, 0.6, "Dark grey", false, "Custom")
  458. Instance.new("CylinderMesh",jet)
  459. local wa = Instance.new("Weld")
  460. weld(wa, p, jet, 0, 0, -i, i*4, 1.2, -1)
  461.  
  462. local ho = Instance.new("Part")
  463. prop(ho, launcher, false, 1, 0, 0.1, 0.1, 0.1, "Medium grey", false, "Custom")
  464. local wad = Instance.new("Weld")
  465. weld(wad, jet, ho, math.pi/2, 0, 0, 0, 0.78, 0)
  466.  
  467. local jets = Instance.new("Part")
  468. prop(jets, launcher, false, 0, 0.05, 0.8, 1.4, 0.8, "Dark grey", false, "Custom")
  469. Instance.new("SpecialMesh",jets)
  470. local wa2 = Instance.new("Weld")
  471. weld(wa2, ho, jets, 0, 0, 0, 0, 0.5, 0)
  472.  
  473. local gas = Instance.new("Part")
  474. prop(gas, launcher, false, 0, 0, 1, 0.5, 1, "Medium grey", false, "Custom")
  475. Instance.new("SpecialMesh",gas)
  476. local wa3 = Instance.new("Weld")
  477. weld(wa3, jets, gas, 0, 0, 0, 0, 0.7, 0)
  478.  
  479. table.insert(Jets, {wa2, gas, jets})
  480.  
  481. for o = -0.3, 0.4, 0.6 do
  482. local p2 = Instance.new("Part")
  483. prop(p2, launcher, false, 0, 0.05, 0.8, 2.1, 0.2, "Dark grey", false, "Custom")
  484. local w2 = Instance.new("Weld")
  485. weld(w2, p, p2, -1.1, 0, o*1.6, -o*2.2, -1.26, -0.6)
  486. local p3 = Instance.new("Part")
  487. prop(p3, launcher, false, 0, 0, 1.3, 0.7, 0.4, "Bright red", false, "Custom")
  488. local w3 = Instance.new("Weld")
  489. weld(w3, p2, p3, 0, 0, 0, 0, -0.75, 0)
  490. end
  491. end
  492.  
  493. rb = Instance.new("Part")
  494. prop( rb, launcher, false, 1, 0, 0.1, 0.1, 0.1, "Bright red", false, "Custom" )
  495. rh = Instance.new("Weld")
  496. weld( rh, torso, rb, 0, 0, 0, -1.5, -0.5, 0)
  497.  
  498. lb = Instance.new("Part")
  499. prop( lb, launcher, false, 1, 0, 0.1, 0.1, 0.1, "Bright red", false, "Custom" )
  500. lh = Instance.new("Weld")
  501. weld( lh, torso, lb, 0, 0, 0, 1.5, -0.5, 0)
  502.  
  503. rw = Instance.new("Weld")
  504. weld(rw,rb,nil,0,0,0,0,0.5,0)
  505.  
  506. lw = Instance.new("Weld")
  507. weld(lw,lb,nil,0,0,0,0,0.5,0)
  508.  
  509. rightbattle = nil
  510. leftbattle = nil
  511.  
  512. launcher.Parent = char
  513.  
  514. selectmotion = function()
  515. rw.Part1 = rarm
  516. lw.Part1 = larm
  517. coroutine.resume(coroutine.create(function()
  518. for x = 0, 0.6, 0.1 do
  519. neckweld.C0 = CFrame.new(0,x*1.2,x/1.5)
  520. mehweld.C0 = CFrame.new(0,x,0)
  521. wait()
  522. end
  523. end))
  524. for i=0,90,10 do
  525. rw.C0 = CFrame.Angles(math.rad(i),0,0) * CFrame.new(math.rad(-i/3),math.rad(-i/4),0)
  526. lw.C0 = CFrame.Angles(math.rad(i),0,math.rad(i/2)) * CFrame.new(math.rad(i/3),math.rad(-i/1.7),0)
  527. wait()
  528. end
  529. if rightbattle == nil then
  530. rightbattle = rw.C0
  531. leftbattle = lw.C0
  532. end
  533. end
  534.  
  535. deselmotion = function()
  536. coroutine.resume(coroutine.create(function()
  537. for x = 0.6, 0, -0.1 do
  538. neckweld.C0 = CFrame.new(0,x*1.2,x)
  539. mehweld.C0 = CFrame.new(0,x,0)
  540. wait()
  541. end
  542. end))
  543. for i=90,0,-10 do
  544. rw.C0 = CFrame.Angles(math.rad(i),0,0) * CFrame.new(math.rad(-i/3),math.rad(-i/4),0)
  545. lw.C0 = CFrame.Angles(math.rad(i),0,math.rad(i/2)) * CFrame.new(math.rad(i/3),math.rad(-i/1.7),0)
  546. wait()
  547. end
  548. rw.Part1 = nil
  549. lw.Part1 = nil
  550. end
  551.  
  552. effect = function()
  553. local pos = tube.CFrame * CFrame.new(0,0,-0.8)
  554. local p = Instance.new("Part")
  555. prop( p, workspace, false, 0, 0, 1, 1, 1, "Neon orange", true, "Custom" )
  556. p.CFrame = pos
  557. local pwn = Instance.new("SpecialMesh",p)
  558. pwn.Scale = Vector3.new(0.5,0.4,0.5)
  559. pwn.MeshId = "http://www.roblox.com/asset/?id=20329976"
  560. for i=0.2,1.5,0.3 do
  561. pwn.Scale = Vector3.new(i,i/1.4,i)
  562. p.CFrame = pos * CFrame.Angles(-math.pi/2,i,0)
  563. p.Transparency = (i/1.5)-0.2
  564. wait()
  565. end
  566. p:remove()
  567. end
  568.  
  569. movearm = function()
  570. bewm:play()
  571. local rp, lp = rw.C0, lw.C0
  572. for i=0,30,30/2 do
  573. rw.C0 = rp * CFrame.Angles(math.rad(i/3),0,0) * CFrame.new(0,math.rad(i/3),0)
  574. lw.C0 = lp * CFrame.Angles(math.rad(i/5),0,0) * CFrame.new(0,math.rad(i/5),0)
  575. wait()
  576. end
  577. for i=30,0,-30/3 do
  578. rw.C0 = rp * CFrame.Angles(math.rad(i/3),0,0) * CFrame.new(0,math.rad(i/3),0)
  579. lw.C0 = lp * CFrame.Angles(math.rad(i/5),0,0) * CFrame.new(0,math.rad(i/5),0)
  580. wait()
  581. end
  582. end
  583.  
  584. explode = function(p,s,mo)
  585. s:stop()
  586. local exdmg = mo[4]
  587. local exdist = mo[2]
  588. local expl = Instance.new("Model",workspace)
  589. expl.Name = "xS explode"
  590. local pos = CFrame.new(p.Position)
  591. local parts, hums = getnoobs(pos.p, exdist)
  592. local p = Instance.new("Part")
  593. prop(p,expl,false,1,0,1,1,1,1,true,"Brick")
  594. p.CFrame = pos
  595. local poo = boom:clone()
  596. poo.Parent = p
  597. poo:play()
  598. for i,v in pairs(parts) do
  599. local minus = BrickDmg(exdmg, v, pos)
  600. if v:GetMass() < MassDestruct and v.Parent:findFirstChild("Humanoid") == nil and v.Parent ~= launcher then
  601. local hp = v:findFirstChild("Hp")
  602. if hp ~= nil then
  603. hp.Value = hp.Value - minus
  604. if hp.Value <= 0 then
  605. v:breakJoints()
  606. end
  607. else
  608. local lol = Instance.new("IntValue")
  609. lol.Name = "Hp"
  610. lol.Value = GiveHp(v:GetMass())
  611. lol.Parent = v
  612. lol.Changed:connect(function()
  613. if lol.Value <= 0 then
  614. v:breakJoints()
  615. end
  616. end)
  617. lol.Value = lol.Value - minus
  618. end
  619. end
  620. local teehee = minus*1.2
  621. v.Velocity = CFrame.new(pos.p, v.Position).lookVector * teehee
  622. v.RotVelocity = Vector3.new(math.random(-teehee,teehee), math.random(-teehee,teehee), math.random(-teehee,teehee))
  623. end
  624. for i,v in pairs(hums) do
  625. v.Humanoid.Health = v.Humanoid.Health - math.random(exdmg/1.3,exdmg*1.3)
  626. end
  627. for i=1,math.random(7,14) do
  628. local spike = Instance.new("Part")
  629. prop( spike, workspace, false, 0, 0, 1, 1, 1, explodecolors[math.random(1,#explodecolors)], true, "Custom" )
  630. local a,b,c = math.random(-32,32)/10, math.random(-32,32)/10, math.random(-32,32)/10
  631. spike.CFrame = pos * CFrame.Angles(a,b,c) * CFrame.new(0,exdist/6,0)
  632. local mes = Instance.new("SpecialMesh",spike)
  633. mes.MeshId = "http://www.roblox.com/asset/?id=1033714"
  634. mes.Scale = Vector3.new(math.random(exdist*1.3,exdist*2.5)/10,math.random(exdist*5,exdist*10)/10,math.random(exdist*1.3,exdist*2.5)/10)
  635. local cf = spike.CFrame
  636. coroutine.resume(coroutine.create(function()
  637. local wah = exdist*1.2
  638. for y=0,wah,math.random(wah/12,wah/7) do
  639. wait()
  640. spike.CFrame = cf * CFrame.new(0,y,0)
  641. spike.Transparency = (y/wah) - 0.08
  642. end
  643. spike:remove()
  644. end))
  645. end
  646. coroutine.resume(coroutine.create(function()
  647. for i=1,math.random(2,6) do
  648. wait()
  649. local siz = math.random((exdist/3)*10, (exdist/1.8)*10)/10
  650. local pk = Instance.new("Part")
  651. prop(pk, workspace, false, 0.1, 0, 1, 1, 1, explodecolors[math.random(1,#explodecolors)], true, "Custom" )
  652. pk.CFrame = pos * CFrame.new(math.random(-exdist*10,exdist*10)/25, math.random(-exdist*10,exdist*10)/25, math.random(-exdist*10,exdist*10)/25)
  653. local ms = Instance.new("SpecialMesh",pk)
  654. ms.MeshType = "Sphere"
  655. ms.Scale = Vector3.new(siz,siz,siz)
  656. coroutine.resume(coroutine.create(function()
  657. for x=0.1, 1, 0.15 do
  658. wait()
  659. pk.Transparency = x
  660. end
  661. pk:remove()
  662. end))
  663. end
  664. end))
  665. coroutine.resume(coroutine.create(function()
  666. for b=1,math.random(6,13) do
  667. wait()
  668. local siz = math.random((exdist/4)*10, (exdist/2.8)*10)/10
  669. local pk = Instance.new("Part")
  670. prop(pk, workspace, false, 0.1, 0, 1, 1, 1, sm[math.random(1,#sm)], true, "Custom" )
  671. pk.CFrame = pos * CFrame.new(math.random(-exdist*10,exdist*10)/25, math.random(-exdist*10,exdist*10)/25, math.random(-exdist*10,exdist*10)/25)
  672. local ms = Instance.new("SpecialMesh",pk)
  673. ms.MeshType = "Sphere"
  674. ms.Scale = Vector3.new(siz,siz,siz)
  675. local trul = pk.CFrame
  676. coroutine.resume(coroutine.create(function()
  677. for x=0.1, 1, 0.2 do
  678. wait()
  679. pk.Transparency = x
  680. pk.CFrame = trul * CFrame.Angles(math.random(-35,35)/100,math.random(-35,35)/100,math.random(-35,35)/100) * CFrame.new(0,x*4,0)
  681. end
  682. pk:remove()
  683. end))
  684. end
  685. end))
  686. wait(1)
  687. expl:remove()
  688. end
  689.  
  690. function smoke(p)
  691. while p.Parent ~= nil do
  692. wait(0.11)
  693. local siz = math.random(4,12)/10
  694. local sp = Instance.new("Part")
  695. prop(sp,workspace,false,0.1,0,siz,siz,siz,sm[math.random(1,#sm)],true,"Custom")
  696. sp.CFrame = p.CFrame * CFrame.new(0,0,0.8) * CFrame.Angles(math.random(-6,6)/10, math.random(-6,6)/10, math.random(-6,6)/10)
  697. local sme = Instance.new("SpecialMesh",sp)
  698. sme.MeshType = "Sphere"
  699. local c = sp.CFrame
  700. coroutine.resume(coroutine.create(function()
  701. for i=0.1, 1, 0.2 do
  702. wait()
  703. sp.CFrame = c * CFrame.new(0,0,i*4)
  704. sp.Transparency = i
  705. sme.Scale = Vector3.new(1+i,1+i,1+i)
  706. end
  707. sp:remove()
  708. end))
  709. end
  710. end
  711.  
  712. function smokejet(p)
  713. while Flying do
  714. wait(0.06)
  715. for _,v in pairs(p) do
  716. local siz = math.random(5,15)/10
  717. local sp = Instance.new("Part")
  718. prop(sp,workspace,false,0.1,0,siz,siz,siz,sm[math.random(1,#sm)],true,"Custom")
  719. sp.CFrame = v[2].CFrame * CFrame.new(0,-0.3,0) * CFrame.Angles(math.random(-6,6)/10, math.random(-6,6)/10, math.random(-6,6)/10)
  720. local sme = Instance.new("SpecialMesh",sp)
  721. sme.MeshType = "Sphere"
  722. local fi = Instance.new("Part")
  723. prop(fi,workspace,false,0.1,0,siz,siz,siz,explodecolors[math.random(1,#explodecolors)],true,"Custom")
  724. fi.CFrame = v[2].CFrame * CFrame.new(0,-0.3,0)* CFrame.Angles(math.pi,0,0) * CFrame.Angles(math.random(-3,3)/10, math.random(-3,3)/10, math.random(-3,3)/10)
  725. local fmes = Instance.new("SpecialMesh",fi)
  726. fmes.Scale = Vector3.new(0.4,0.5,0.4)
  727. fmes.MeshId = "http://www.roblox.com/asset/?id=20329976"
  728. local c, c2 = sp.CFrame, fi.CFrame
  729. coroutine.resume(coroutine.create(function()
  730. for i=0.1, 2, 0.18 do
  731. wait()
  732. sp.CFrame = c * CFrame.new(0,-i*3,0) + Vector3.new(0,i*4,0)
  733. sp.Transparency = i/2.2
  734. fi.Transparency = i/2
  735. fi.CFrame = c2 * CFrame.new(0,i*2,0)
  736. fmes.Scale = Vector3.new(0.4+(i/1.8),0.5+(i/1.8),0.4+(i/1.8))
  737. sme.Scale = Vector3.new(1+(i/1.4),1+(i/1.4),1+(i/1.4))
  738. end
  739. sp:remove()
  740. fi:remove()
  741. end))
  742. end
  743. end
  744. end
  745.  
  746. fly = function()
  747. if Flying == false and JetsOn == false and Energy >= EnergyCost then
  748. bv.Parent = torso
  749. Flying = true
  750. coroutine.resume(coroutine.create(function()
  751. smokejet(Jets, Flying)
  752. end))
  753. flys:play()
  754. Speed = MinSpeed
  755. while jethold do
  756. if Energy <= 0 then break end
  757. if Speed < MaxSpeed then
  758. Speed = Speed + SpeedIncrease
  759. else Speed = MaxSpeed end
  760. local cf = Jets[1][3].CFrame * CFrame.Angles(math.pi/2,0,0)
  761. bv.velocity = cf.lookVector * Speed
  762. Energy = Energy - EnergyCost
  763. wait()
  764. bv.velocity = Vector3.new(0,0,0)
  765. end
  766. local ha = math.random(1,2) if ha == 1 then flys:stop() else flys:pause() end
  767. bv.Parent = nil
  768. bv.velocity = Vector3.new(0,0,0)
  769. Speed = MinSpeed
  770. wait(0.3)
  771. Flying = false
  772. end
  773. end
  774.  
  775. fire = function(mousepos, pos, target)
  776.  
  777. local moda = mode
  778.  
  779. if Energy >= moda[7] then
  780. Energy = Energy - moda[7]
  781. coroutine.resume(coroutine.create(effect))
  782. local hitable = true
  783. local pewm = Instance.new("Part")
  784. prop( pewm, nil, false, 0, 0, 0.4, 0.4, 0.7, "Medium grey", false, "Custom" )
  785. Instance.new("SpecialMesh",pewm).MeshType = "Sphere"
  786.  
  787. local projectile = Instance.new("Part")
  788. prop( projectile, workspace, false, 0, 0, 0.3, 0.3, 1.3, "Bright red", false, "Custom" )
  789. Instance.new("SpecialMesh",projectile).MeshType = "Sphere"
  790.  
  791. local wi = Instance.new("Weld")
  792. weld(wi,projectile,nil,0,0,0,0,0,-0.4)
  793.  
  794. local swo = swoosh:clone()
  795. swo.Parent = projectile
  796. swo:play()
  797. local bv = nil
  798. local sped = 0
  799.  
  800. coroutine.resume(coroutine.create(function() wait(0.8) smoke(projectile) end))
  801. coroutine.resume(coroutine.create(function() wait(7) if projectile.Parent ~= nil then coroutine.resume(coroutine.create(function() explode(projectile, swo, moda) end)) projectile:remove() end end))
  802. coroutine.resume(coroutine.create(movearm))
  803. coroutine.resume(coroutine.create(function()
  804. repeat wait() until bv ~= nil
  805. if moda[1] == "Accelerate" then
  806. for i = moda[5], acceleratemax, accelerateincrease do
  807. sped = i
  808. wait()
  809. end
  810. else
  811. sped = moda[5]
  812. end
  813. end))
  814. projectile.Touched:connect(function(hit)
  815. if hit.CanCollide == true and hit:GetMass() >= 3.5 and hitable then
  816. coroutine.resume(coroutine.create(function() hitable = false explode(projectile, swo, moda) end))
  817. projectile:remove()
  818. end
  819. end)
  820. projectile.CFrame = pos * CFrame.new(0,0,-1)
  821. pewm.Parent = projectile
  822. pewm.CFrame = projectile.CFrame
  823. wi.Part1 = pewm
  824. local bg = Instance.new("BodyGyro")
  825. bg.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
  826. bg.P = moda[3]
  827. bg.Parent = projectile
  828. bg.cframe = CFrame.new(projectile.Position, projectile.CFrame * CFrame.new(0,0,-10).p)
  829. bv = Instance.new("BodyVelocity")
  830. bv.maxForce = Vector3.new(math.huge,math.huge,math.huge)
  831. bv.velocity = projectile.CFrame.lookVector * sped
  832. bv.Parent = projectile
  833. if target ~= nil then
  834. local lolpos = target.CFrame:pointToObjectSpace(mousepos)
  835. repeat
  836. wait()
  837. bg.cframe = CFrame.new(projectile.Position, target.CFrame * CFrame.new(lolpos).p)
  838. bv.velocity = projectile.CFrame.lookVector * sped
  839. until (projectile.Position - target.CFrame * CFrame.new(lolpos).p).magnitude < 2
  840. if hitable then
  841. hitable = false
  842. coroutine.resume(coroutine.create(function() explode(projectile, swo, moda) end))
  843. projectile:remove()
  844. end
  845. else
  846. local lolaha = mousepos
  847. projectile.CFrame = CFrame.new(pos.p, mousepos)
  848. repeat
  849. wait()
  850. bv.velocity = projectile.CFrame.lookVector * sped
  851. bg.cframe = CFrame.new(projectile.Position, lolaha)
  852. until projectile.Parent == nil
  853. end
  854. end
  855. end
  856.  
  857.  
  858.  
  859. bin = Instance.new("HopperBin",game.Players.LocalPlayer.Backpack)
  860. bin.Name = "Mini Rocket Launcher"
  861.  
  862. function select(mouse)
  863. selectmotion()
  864. mouse.Icon = "http://www.roblox.com/asset/?id=45117007"
  865. sel = true
  866. coroutine.resume(coroutine.create(function()
  867. for i=1,4 do
  868. bg.Parent = nil
  869. wait()
  870. bg.Parent = torso
  871. end
  872. end))
  873. coroutine.resume(coroutine.create(function()
  874. while sel do
  875. local po = torso.Position+Vector3.new(0,0.85,0)
  876. local offset=(po.Y-mouse.Hit.p.Y)/60
  877. local mag=(po-mouse.Hit.p).magnitude/80
  878. offset=offset/mag
  879. torso.Neck.C0 = necko * CFrame.Angles(offset,0,0)
  880. rw.C0 = rightbattle * CFrame.Angles(-offset, 0,0)
  881. lw.C0 = leftbattle * CFrame.Angles(-offset,0,0)
  882. for i,v in pairs(Jets) do
  883. v[1].C0 = CFrame.Angles(offset,0,0)
  884. end
  885. bg.cframe = GetCF(torso.Position, mouse.Hit.p)
  886. wait()
  887. end --Fenrier was here o3o
  888. rw.C0 = rightbattle
  889. lw.C0 = leftbattle
  890. torso.Neck.C0 = necko
  891. end))
  892. mouse.Button1Down:connect(function()
  893. hold = true
  894. while hold do
  895. coroutine.resume(coroutine.create(function() fire(mouse.Hit.p, tube.CFrame, mouse.Target) end))
  896. for i=0,mode[6],0.03 do
  897. if hold == false then break end
  898. wait()
  899. end
  900. end
  901. end)
  902. mouse.Button1Up:connect(function() hold = false end)
  903. mouse.KeyDown:connect(function(key)
  904. key = key:lower()
  905. if key == "e" then
  906. order = order + 1
  907. if order > #modes then
  908. order = 1
  909. end
  910. mode = modes[order]
  911. txt.Text = mode[1]
  912. elseif key == "q" then
  913. order = order - 1
  914. if order < 1 then
  915. order = #modes
  916. end
  917. mode = modes[order]
  918. txt.Text = mode[1]
  919. elseif key == string.char(48) then
  920. jethold = true
  921. fly()
  922. end
  923. end)
  924. mouse.KeyUp:connect(function(key)
  925. key = key:lower()
  926. if key == string.char(48) then
  927. jethold = false
  928. end
  929. end)
  930. end
  931.  
  932. function desel()
  933. sel = false
  934. bg.Parent = nil
  935. deselmotion()
  936. end
  937.  
  938. bin.Selected:connect(select)
  939. bin.Deselected:connect(desel)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement