SHOW:
|
|
- or go back to the newest paste.
| 1 | -- This script has been converted to FE by iPxter | |
| 2 | ||
| 3 | ||
| 4 | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
| |
| 5 | local Player,Mouse,mouse,UserInputService,ContextActionService = owner | |
| 6 | do | |
| 7 | print("FE Compatibility code by Mokiros | Translated to FE by iPxter")
| |
| 8 | script.Parent = Player.Character | |
| 9 | ||
| 10 | --RemoteEvent for communicating | |
| 11 | local Event = Instance.new("RemoteEvent")
| |
| 12 | Event.Name = "UserInput_Event" | |
| 13 | ||
| 14 | --Fake event to make stuff like Mouse.KeyDown work | |
| 15 | local function fakeEvent() | |
| 16 | local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
| |
| 17 | t.connect = t.Connect | |
| 18 | return t | |
| 19 | end | |
| 20 | ||
| 21 | --Creating fake input objects with fake variables | |
| 22 | local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
| |
| 23 | local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
| |
| 24 | local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
| |
| 25 | CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
| |
| 26 | end} | |
| 27 | --Merged 2 functions into one by checking amount of arguments | |
| 28 | CAS.UnbindAction = CAS.BindAction | |
| 29 | ||
| 30 | --This function will trigger the events that have been :Connect()'ed | |
| 31 | local function te(self,ev,...) | |
| 32 | local t = m[ev] | |
| 33 | if t and t._fakeEvent and t.Function then | |
| 34 | t.Function(...) | |
| 35 | end | |
| 36 | end | |
| 37 | m.TrigEvent = te | |
| 38 | UIS.TrigEvent = te | |
| 39 | ||
| 40 | Event.OnServerEvent:Connect(function(plr,io) | |
| 41 | if plr~=Player then return end | |
| 42 | if io.isMouse then | |
| 43 | m.Target = io.Target | |
| 44 | m.Hit = io.Hit | |
| 45 | else | |
| 46 | local b = io.UserInputState == Enum.UserInputState.Begin | |
| 47 | if io.UserInputType == Enum.UserInputType.MouseButton1 then | |
| 48 | return m:TrigEvent(b and "Button1Down" or "Button1Up") | |
| 49 | end | |
| 50 | for _,t in pairs(CAS.Actions) do | |
| 51 | for _,k in pairs(t.Keys) do | |
| 52 | if k==io.KeyCode then | |
| 53 | t.Function(t.Name,io.UserInputState,io) | |
| 54 | end | |
| 55 | end | |
| 56 | end | |
| 57 | m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower()) | |
| 58 | UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false) | |
| 59 | end | |
| 60 | end) | |
| 61 | Event.Parent = NLS([==[ | |
| 62 | local Player = game:GetService("Players").LocalPlayer
| |
| 63 | local Event = script:WaitForChild("UserInput_Event")
| |
| 64 | ||
| 65 | local UIS = game:GetService("UserInputService")
| |
| 66 | local input = function(io,a) | |
| 67 | if a then return end | |
| 68 | --Since InputObject is a client-side instance, we create and pass table instead | |
| 69 | Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
| |
| 70 | end | |
| 71 | UIS.InputBegan:Connect(input) | |
| 72 | UIS.InputEnded:Connect(input) | |
| 73 | ||
| 74 | local Mouse = Player:GetMouse() | |
| 75 | local h,t | |
| 76 | --Give the server mouse data 30 times every second, but only if the values changed | |
| 77 | --If player is not moving their mouse, client won't fire events | |
| 78 | while wait(1/30) do | |
| 79 | if h~=Mouse.Hit or t~=Mouse.Target then | |
| 80 | h,t=Mouse.Hit,Mouse.Target | |
| 81 | Event:FireServer({isMouse=true,Target=t,Hit=h})
| |
| 82 | end | |
| 83 | end]==],Player.Character) | |
| 84 | Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS | |
| 85 | end | |
| 86 | ||
| 87 | ||
| 88 | ||
| 89 | --Player | |
| 90 | local player = owner | |
| 91 | ||
| 92 | repeat | |
| 93 | wait() | |
| 94 | until player.Character | |
| 95 | local character = player.Character | |
| 96 | local humanoid = character:WaitForChild("Humanoid")
| |
| 97 | local mouse = Mouse | |
| 98 | ||
| 99 | --Health | |
| 100 | coroutine.resume(coroutine.create(function() | |
| 101 | while true do | |
| 102 | wait() | |
| 103 | humanoid.PlatformStand = false | |
| 104 | humanoid.MaxHealth = 1000 | |
| 105 | end | |
| 106 | end)) | |
| 107 | ||
| 108 | --Other | |
| 109 | local mousedown = false | |
| 110 | local enabled = false | |
| 111 | local rightready = false | |
| 112 | local leftready = false | |
| 113 | local available = true | |
| 114 | local fastmode = 1 | |
| 115 | local rainbow = false | |
| 116 | local active = false | |
| 117 | local spacepress = false | |
| 118 | local regen = true | |
| 119 | local cooldown = 0.3 | |
| 120 | local firespeed = cooldown | |
| 121 | local heat = 50 | |
| 122 | local beat = 1 | |
| 123 | local order = 1 | |
| 124 | ||
| 125 | local mindamage = 27 | |
| 126 | local maxdamage = 43 | |
| 127 | local pierce = 3 | |
| 128 | ||
| 129 | --Sound | |
| 130 | local firesound = Instance.new("Sound")
| |
| 131 | firesound.SoundId = "rbxassetid://10209257" --rbxassetid://146830902 | |
| 132 | firesound.Volume = 10 | |
| 133 | firesound.EmitterSize = 3 | |
| 134 | firesound.Pitch = 1 | |
| 135 | local setupsound = Instance.new("Sound")
| |
| 136 | setupsound.SoundId = "rbxassetid://10209240" | |
| 137 | setupsound.Volume = 10 | |
| 138 | setupsound.EmitterSize = 3 | |
| 139 | setupsound.Pitch = 1 | |
| 140 | local lasersound = Instance.new("Sound")
| |
| 141 | lasersound.SoundId = "rbxassetid://1146690806" | |
| 142 | lasersound.Volume = 10 | |
| 143 | lasersound.EmitterSize = 3 | |
| 144 | lasersound.Pitch = 1 | |
| 145 | ||
| 146 | --Parts | |
| 147 | local head = character.Head | |
| 148 | local torso = character.Torso | |
| 149 | local rightarm = character["Right Arm"] | |
| 150 | local leftarm = character["Left Arm"] | |
| 151 | local rs = torso["Right Shoulder"] | |
| 152 | local ls = torso["Left Shoulder"] | |
| 153 | local neck = torso["Neck"] | |
| 154 | ||
| 155 | --Useful functions | |
| 156 | ||
| 157 | local function Weld(part0, part1, parent, anchored) | |
| 158 | part0.Anchored = true | |
| 159 | local weld = Instance.new("Weld")
| |
| 160 | weld.Name = "Weldy" | |
| 161 | weld.Part0 = part0 | |
| 162 | weld.Part1 = part1 | |
| 163 | weld.C0 = CFrame.new() | |
| 164 | weld.C1 = part1.CFrame:toObjectSpace(part0.CFrame) | |
| 165 | weld.Parent = parent | |
| 166 | if anchored == true then | |
| 167 | part0.Anchored = true | |
| 168 | elseif anchored == false then | |
| 169 | part0.Anchored = false | |
| 170 | end | |
| 171 | end | |
| 172 | ||
| 173 | local function Mesh(meshtype, parent, scale, id) | |
| 174 | local mesh = Instance.new("SpecialMesh")
| |
| 175 | mesh.MeshType = meshtype | |
| 176 | mesh.Name = "Meshy" | |
| 177 | if scale ~= nil then | |
| 178 | mesh.Scale = scale | |
| 179 | end | |
| 180 | if meshtype == "FileMesh" then | |
| 181 | mesh.MeshId = "http://www.roblox.com/asset?id="..id | |
| 182 | end | |
| 183 | mesh.Parent = parent | |
| 184 | end | |
| 185 | ||
| 186 | local function Light(range, brightness, color, parent) | |
| 187 | local light = Instance.new("PointLight")
| |
| 188 | light.Range = range | |
| 189 | light.Brightness = brightness | |
| 190 | light.Color = color | |
| 191 | light.Name = "Lighty" | |
| 192 | light.Parent = parent | |
| 193 | coroutine.resume(coroutine.create(function() | |
| 194 | while parent and light do | |
| 195 | if rainbow == true then | |
| 196 | light.Color = parent.Color | |
| 197 | else | |
| 198 | light.Color = color | |
| 199 | end | |
| 200 | wait() | |
| 201 | end | |
| 202 | end)) | |
| 203 | end | |
| 204 | ||
| 205 | --GuiText | |
| 206 | local bgui = Instance.new("BillboardGui",character)
| |
| 207 | bgui.Size = UDim2.new(0,100,0,40) | |
| 208 | bgui.StudsOffset = Vector3.new(0,2,0) | |
| 209 | bgui.Adornee = character.Head | |
| 210 | local text = Instance.new("TextLabel", bgui)
| |
| 211 | text.BackgroundTransparency = 1 | |
| 212 | text.BorderSizePixel = 0 | |
| 213 | - | text.Text = "By SlaveDash" |
| 213 | + | text.Text = "oof" |
| 214 | text.Font = "ArialBold" | |
| 215 | text.FontSize = "Size24" | |
| 216 | text.TextTransparency = 0 | |
| 217 | text.TextStrokeTransparency = 0 | |
| 218 | text.TextStrokeColor3 = Color3.new(255,0,0) | |
| 219 | text.TextColor3 = Color3.new(255,155,155) | |
| 220 | text.Size = UDim2.new(1,0,0.5,0) | |
| 221 | ||
| 222 | player.Chatted:connect(function(chat) | |
| 223 | chat = game.Chat:FilterStringForBroadcast(chat, player) | |
| 224 | for i=1,string.len(chat) do | |
| 225 | text.Text = string.sub(chat, 1, i) | |
| 226 | wait() | |
| 227 | end | |
| 228 | ||
| 229 | wait(0.5) | |
| 230 | for i=1,10 do | |
| 231 | text.TextTransparency = text.TextTransparency + 0.1 | |
| 232 | text.TextStrokeTransparency = text.TextStrokeTransparency + 0.1 | |
| 233 | wait() | |
| 234 | end | |
| 235 | text.TextTransparency = 0 | |
| 236 | text.TextStrokeTransparency = 0 | |
| 237 | text.Text = "" | |
| 238 | end) | |
| 239 | wait(1) | |
| 240 | text.Text = "" | |
| 241 | text.FontSize = "Size28" | |
| 242 | ||
| 243 | local function Chat(stringg, waitstart, waitend) | |
| 244 | for i=1,string.len(stringg) do | |
| 245 | text.Text = string.sub(stringg, 1, i) | |
| 246 | wait(waitstart) | |
| 247 | end | |
| 248 | wait(0.5) | |
| 249 | for i=1,10 do | |
| 250 | text.TextTransparency = text.TextTransparency + 0.1 | |
| 251 | text.TextStrokeTransparency = text.TextStrokeTransparency + 0.1 | |
| 252 | wait() | |
| 253 | end | |
| 254 | text.TextTransparency = 0 | |
| 255 | text.TextStrokeTransparency = 0 | |
| 256 | text.Text = "" | |
| 257 | end | |
| 258 | ||
| 259 | text.TextStrokeColor3 = Color3.new(255,0,0) | |
| 260 | text.TextColor3 = Color3.new(255,155,155) | |
| 261 | ||
| 262 | --Fix | |
| 263 | torso.Anchored = true | |
| 264 | local original_cframe = torso.CFrame | |
| 265 | torso.CFrame = CFrame.new(torso.Position, torso.Position + Vector3.new(0,0,-1)) | |
| 266 | ||
| 267 | --Main Model | |
| 268 | ||
| 269 | local minigun = Instance.new("Model")
| |
| 270 | minigun.Name = "Minigun" | |
| 271 | minigun.Parent = character | |
| 272 | ||
| 273 | local bullets = Instance.new("Model")
| |
| 274 | bullets.Name = "Bullets" | |
| 275 | bullets.Parent = character | |
| 276 | ||
| 277 | --Eye | |
| 278 | local eye = Instance.new("Part")
| |
| 279 | eye.Size = Vector3.new(0.2,0.3,0.2) | |
| 280 | eye.CFrame = CFrame.new((head.Position + Vector3.new(0.2,0.2,0)) + (head.CFrame.lookVector * 0.5), head.Position + (head.CFrame.lookVector * 12000)) | |
| 281 | eye.Material = Enum.Material.Neon | |
| 282 | eye.CanCollide = false | |
| 283 | eye.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0) | |
| 284 | eye.Name = "Eye" | |
| 285 | eye.BrickColor = BrickColor.new("Really red")
| |
| 286 | eye.Parent = character | |
| 287 | ||
| 288 | head.face.Texture = "" | |
| 289 | ||
| 290 | Weld(eye, torso, eye, false) | |
| 291 | Mesh("Sphere", eye, nil)
| |
| 292 | ||
| 293 | --Plates | |
| 294 | ||
| 295 | local barrels = Instance.new("Model")
| |
| 296 | barrels.Name = "Barrels" | |
| 297 | barrels.Parent = minigun | |
| 298 | ||
| 299 | local leftbarrels = Instance.new("Model")
| |
| 300 | leftbarrels.Name = "Left" | |
| 301 | leftbarrels.Parent = barrels | |
| 302 | local rightbarrels = Instance.new("Model")
| |
| 303 | rightbarrels.Name = "Right" | |
| 304 | rightbarrels.Parent = barrels | |
| 305 | ||
| 306 | --Barrels | |
| 307 | local barrel1 = Instance.new("Part") --Barrel 1
| |
| 308 | barrel1.BrickColor = BrickColor.new("Smoky grey")
| |
| 309 | barrel1.Size = Vector3.new(3,0.5,0.5) | |
| 310 | barrel1.Material = Enum.Material.Metal | |
| 311 | barrel1.CanCollide = true | |
| 312 | barrel1.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0) | |
| 313 | barrel1.CFrame = CFrame.new((torso.Position + Vector3.new(-0.5,0.3,0)) + (torso.CFrame.lookVector * 2), torso.Position + (torso.CFrame.lookVector * 2)) | |
| 314 | barrel1.Name = "Barrel 1" | |
| 315 | barrel1.Parent = leftbarrels | |
| 316 | ||
| 317 | Weld(barrel1, torso, barrel1, false) --Weld Barrel 1 | |
| 318 | Mesh("Cylinder", barrel1, nil) --Mesh Barrel 1
| |
| 319 | ||
| 320 | local barrel2 = Instance.new("Part") --Barrel 2
| |
| 321 | barrel2.BrickColor = BrickColor.new("Smoky grey")
| |
| 322 | barrel2.Size = Vector3.new(3,0.5,0.5) | |
| 323 | barrel2.Material = Enum.Material.Metal | |
| 324 | barrel2.CanCollide = true | |
| 325 | barrel2.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0) | |
| 326 | barrel2.CFrame = CFrame.new((torso.Position + Vector3.new(0.5,0.3,0)) + (torso.CFrame.lookVector * 2), torso.Position + (torso.CFrame.lookVector * 2)) | |
| 327 | barrel2.Name = "Barrel 2" | |
| 328 | barrel2.Parent = rightbarrels | |
| 329 | ||
| 330 | Weld(barrel2, torso, barrel2, false) --Weld Barrel 2 | |
| 331 | Mesh("Cylinder", barrel2, nil) --Mesh Barrel 2
| |
| 332 | ||
| 333 | --Barrelholes | |
| 334 | ||
| 335 | local barrelhole1 = Instance.new("Part") --Barrelhole 1
| |
| 336 | barrelhole1.BrickColor = BrickColor.new("Really black")
| |
| 337 | barrelhole1.Size = Vector3.new(3.05,0.45,0.45) | |
| 338 | barrelhole1.Material = Enum.Material.Metal | |
| 339 | barrelhole1.CanCollide = true | |
| 340 | barrelhole1.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0) | |
| 341 | barrelhole1.CFrame = CFrame.new((torso.Position + Vector3.new(-0.5,0.3,0)) + (torso.CFrame.lookVector * 1.9), torso.Position + (torso.CFrame.rightVector * -100)) | |
| 342 | barrelhole1.Name = "Barrelhole 1" | |
| 343 | barrelhole1.Parent = leftbarrels | |
| 344 | ||
| 345 | Weld(barrelhole1, barrel1, barrelhole1, false) --Weld Barrelhole 1 | |
| 346 | Mesh("Cylinder", barrelhole1, nil) --Mesh Barrelhole 1
| |
| 347 | ||
| 348 | local barrelhole2 = Instance.new("Part") --Barrelhole 2
| |
| 349 | barrelhole2.BrickColor = BrickColor.new("Really black")
| |
| 350 | barrelhole2.Size = Vector3.new(3.05,0.42,0.42) | |
| 351 | barrelhole2.Material = Enum.Material.Metal | |
| 352 | barrelhole2.CanCollide = true | |
| 353 | barrelhole2.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0) | |
| 354 | barrelhole2.CFrame = CFrame.new((torso.Position + Vector3.new(0.5,0.3,0)) + (torso.CFrame.lookVector * 1.9), torso.Position + (torso.CFrame.rightVector * -100)) | |
| 355 | barrelhole2.Name = "Barrelhole 2" | |
| 356 | barrelhole2.Parent = rightbarrels | |
| 357 | ||
| 358 | Weld(barrelhole2, barrel2, barrelhole2, false) --Weld Barrelhole 2 | |
| 359 | Mesh("Cylinder", barrelhole2, nil) --Mesh Barrelhole 2
| |
| 360 | ||
| 361 | firesound.Parent = torso | |
| 362 | setupsound.Parent = torso | |
| 363 | lasersound.Parent = torso | |
| 364 | ||
| 365 | --Turn Torso | |
| 366 | ||
| 367 | coroutine.resume(coroutine.create(function() | |
| 368 | while true do | |
| 369 | torso.CFrame = torso.CFrame:lerp(CFrame.new(torso.Position, Vector3.new(mouse.Hit.p.x, torso.Position.y, mouse.Hit.p.z)), 0.5) | |
| 370 | wait() | |
| 371 | end | |
| 372 | end)) | |
| 373 | ||
| 374 | local left = {barrel1, barrelhole1}
| |
| 375 | local right = {barrel2, barrelhole2}
| |
| 376 | local both = {barrel1, barrelhole1, barrel2, barrelhole2}
| |
| 377 | local bothgun = {barrel1, barrel2}
| |
| 378 | local bothhole = {barrelhole1, barrelhole2}
| |
| 379 | ||
| 380 | --Intro | |
| 381 | ||
| 382 | barrel1.Meshy.Scale = Vector3.new(0,1,1) | |
| 383 | barrel1.Meshy.Offset = Vector3.new(2,0,0) | |
| 384 | barrel2.Meshy.Scale = Vector3.new(0,1,1) | |
| 385 | barrel2.Meshy.Offset = Vector3.new(-2,0,0) | |
| 386 | barrelhole1.Meshy.Scale = Vector3.new(0,1,1) | |
| 387 | barrelhole1.Meshy.Offset = Vector3.new(2,0,0) | |
| 388 | barrelhole2.Meshy.Scale = Vector3.new(0,1,1) | |
| 389 | barrelhole2.Meshy.Offset = Vector3.new(-2,0,0) | |
| 390 | ||
| 391 | setupsound:Play() | |
| 392 | ||
| 393 | for i=1,10 do | |
| 394 | for b,v in pairs(both) do | |
| 395 | for c=1,2 do | |
| 396 | v.Meshy.Scale = v.Meshy.Scale:lerp(Vector3.new(1,1,1), i / 15) | |
| 397 | v.Meshy.Offset = v.Meshy.Offset:lerp(Vector3.new(0,0,0), i / 15) | |
| 398 | end | |
| 399 | end | |
| 400 | wait() | |
| 401 | end | |
| 402 | ||
| 403 | active = true | |
| 404 | ||
| 405 | torso.CFrame = original_cframe | |
| 406 | torso.Anchored = false | |
| 407 | ||
| 408 | rightready = true | |
| 409 | leftready = true | |
| 410 | ||
| 411 | --Fire function | |
| 412 | ||
| 413 | local function CreateBullet(place) | |
| 414 | local firepos = nil | |
| 415 | ||
| 416 | if order == 1 then | |
| 417 | firepos = barrel1.Position + (barrel1.CFrame.rightVector * -1.5) | |
| 418 | elseif order == 2 then | |
| 419 | firepos = barrel2.Position + (barrel2.CFrame.rightVector * 1.5) | |
| 420 | end | |
| 421 | ||
| 422 | --Ray | |
| 423 | local ray = Ray.new(firepos, (mouse.Hit.p - firepos).unit * 1000) | |
| 424 | local hit, pos = game.Workspace:FindPartOnRay(ray, character, true, false) | |
| 425 | ||
| 426 | local dist = (firepos - pos).magnitude | |
| 427 | ||
| 428 | --Bullet | |
| 429 | local beam = Instance.new("Part", bullets)
| |
| 430 | beam.Size = Vector3.new(0.5,0.5,dist) | |
| 431 | beam.CFrame = CFrame.new(firepos, pos) * CFrame.new(0,0,-dist/2) | |
| 432 | beam.CanCollide = false | |
| 433 | beam.Anchored = true | |
| 434 | beam.BrickColor = BrickColor.new("Bright yellow")
| |
| 435 | beam.Material = Enum.Material.Neon | |
| 436 | beam.Transparency = 0.3 | |
| 437 | ||
| 438 | local boosh = Instance.new("Part", bullets)
| |
| 439 | boosh.Size = Vector3.new(1,1,1) | |
| 440 | boosh.CFrame = CFrame.new(firepos) | |
| 441 | boosh.CanCollide = false | |
| 442 | boosh.Anchored = true | |
| 443 | boosh.BrickColor = BrickColor.new("Bright yellow")
| |
| 444 | boosh.Material = Enum.Material.Neon | |
| 445 | boosh.Transparency = 0.3 | |
| 446 | ||
| 447 | --Hit | |
| 448 | if hit then | |
| 449 | if hit.Parent then | |
| 450 | local hithuman = hit.Parent:FindFirstChild("Humanoid")
| |
| 451 | if hithuman then | |
| 452 | hit.Velocity = hit.Velocity + ((hit.Position - pos).unit * 50) | |
| 453 | hithuman:TakeDamage(math.random(mindamage, maxdamage)) | |
| 454 | end | |
| 455 | end | |
| 456 | end | |
| 457 | ||
| 458 | --Effect | |
| 459 | local change1 = Vector3.new(0,beam.Transparency,0) | |
| 460 | local change2 = Vector3.new(0,boosh.Transparency,0) | |
| 461 | for i=1,10 do | |
| 462 | beam.Transparency = change1.Y | |
| 463 | boosh.Transparency = change2.Y | |
| 464 | beam.Size = beam.Size:lerp(Vector3.new(0,0,dist), 0.05 * i) | |
| 465 | boosh.Size = boosh.Size:lerp(Vector3.new(0,0,0), 0.05 * i) | |
| 466 | boosh.CFrame = boosh.CFrame * CFrame.fromEulerAnglesXYZ(1,1,1) | |
| 467 | change1 = change1:lerp(Vector3.new(0,1,0), 0.05 * i) | |
| 468 | change2 = change2:lerp(Vector3.new(0,1,0), 0.05 * i) | |
| 469 | if rainbow then | |
| 470 | boosh.Color = boosh.Color:lerp(BrickColor.Random().Color, 0.3) | |
| 471 | beam.Color = beam.Color:lerp(BrickColor.Random().Color, 0.3) | |
| 472 | end | |
| 473 | wait() | |
| 474 | end | |
| 475 | beam:Destroy() | |
| 476 | boosh:Destroy() | |
| 477 | end | |
| 478 | ||
| 479 | local function Laser() | |
| 480 | lasersound:Play() | |
| 481 | if beat == 3 then | |
| 482 | lasersound.Pitch = 1 | |
| 483 | else | |
| 484 | lasersound.Pitch = 1.5 | |
| 485 | end | |
| 486 | local laser = Instance.new("Part")
| |
| 487 | laser.Size = Vector3.new(0.05,0.05, 1000) | |
| 488 | laser.CFrame = CFrame.new(eye.Position + (eye.CFrame.lookVector * 500), head.Position + (head.CFrame.lookVector * 12000)) | |
| 489 | laser.Transparency = 0 | |
| 490 | laser.Material = Enum.Material.Neon | |
| 491 | laser.Name = "Laser" | |
| 492 | laser.CanCollide = false | |
| 493 | laser.Anchored = true | |
| 494 | laser.BrickColor = BrickColor.new("Really red")
| |
| 495 | laser.Parent = workspace | |
| 496 | Mesh("Sphere", laser, Vector3.new(0.5,0.5,1))
| |
| 497 | ||
| 498 | mouse.TargetFilter = laser | |
| 499 | ||
| 500 | laser.Touched:connect(function(touched) | |
| 501 | if laser and touched ~= nil and touched.Parent ~= nil then | |
| 502 | local laserhumanoid = touched.Parent:FindFirstChild("Humanoid")
| |
| 503 | if laserhumanoid and laserhumanoid ~= humanoid then | |
| 504 | if beat == 3 then | |
| 505 | laserhumanoid.Health = laserhumanoid.Health - ((laserhumanoid.MaxHealth / 10) + (math.random(mindamage, maxdamage) * 0.1)) | |
| 506 | else | |
| 507 | laserhumanoid.Health = laserhumanoid.Health - (math.random(mindamage, maxdamage) * 0.1) | |
| 508 | end | |
| 509 | touched.Velocity = touched.Velocity + (laser.CFrame.lookVector * 5) | |
| 510 | end | |
| 511 | end | |
| 512 | end) | |
| 513 | if beat == 3 then | |
| 514 | beat = 1 | |
| 515 | for i=1,20 do | |
| 516 | laser.Transparency = laser.Transparency + (i / 70) | |
| 517 | laser.Size = laser.Size:lerp(Vector3.new(45,45,1000), i / 66) | |
| 518 | laser.CFrame = CFrame.new(eye.Position + (eye.CFrame.lookVector * 500), eye.Position + (eye.CFrame.lookVector * 12000)) | |
| 519 | wait() | |
| 520 | end | |
| 521 | else | |
| 522 | beat = beat + 1 | |
| 523 | for i=1,10 do | |
| 524 | laser.Transparency = laser.Transparency + (i / 25) | |
| 525 | laser.Size = laser.Size:lerp(Vector3.new(15,15,1000), i / 45) | |
| 526 | laser.CFrame = CFrame.new(eye.Position + (eye.CFrame.lookVector * 500), eye.Position + (eye.CFrame.lookVector * 12000)) | |
| 527 | wait() | |
| 528 | end | |
| 529 | end | |
| 530 | laser:Destroy() | |
| 531 | end | |
| 532 | ||
| 533 | local function Fire() | |
| 534 | firesound:Play() | |
| 535 | ||
| 536 | coroutine.resume(coroutine.create(function() | |
| 537 | CreateBullet(order) | |
| 538 | end)) | |
| 539 | if order == 1 then | |
| 540 | coroutine.resume(coroutine.create(function() | |
| 541 | local b = 0 | |
| 542 | local y = 2 | |
| 543 | order = 2 | |
| 544 | leftready = false | |
| 545 | ||
| 546 | if fastmode < 4 then | |
| 547 | rightready = true | |
| 548 | end | |
| 549 | ||
| 550 | for i=1,5 do | |
| 551 | for i=1,#left do | |
| 552 | for c=1,3 do | |
| 553 | left[i].Meshy.Scale = left[i].Meshy.Scale:lerp(Vector3.new(b,1,1), i / 6) | |
| 554 | left[i].Meshy.Offset = left[i].Meshy.Offset:lerp(Vector3.new(y,0,0), i / 6) | |
| 555 | end | |
| 556 | end | |
| 557 | b = 1 | |
| 558 | y = 0 | |
| 559 | wait() | |
| 560 | end | |
| 561 | leftready = true | |
| 562 | end)) | |
| 563 | if fastmode < 4 then | |
| 564 | wait(firespeed) | |
| 565 | end | |
| 566 | if fastmode < 4 then | |
| 567 | repeat | |
| 568 | wait() | |
| 569 | until rightready == true | |
| 570 | end | |
| 571 | elseif order == 2 then | |
| 572 | coroutine.resume(coroutine.create(function() | |
| 573 | local b = 0 | |
| 574 | local y = -2 | |
| 575 | order = 1 | |
| 576 | rightready = false | |
| 577 | ||
| 578 | if fastmode < 4 then | |
| 579 | leftready = true | |
| 580 | end | |
| 581 | ||
| 582 | for i=1,5 do | |
| 583 | for i=1,#right do | |
| 584 | for c=1,3 do | |
| 585 | right[i].Meshy.Scale = right[i].Meshy.Scale:lerp(Vector3.new(b,1,1), i / 6) | |
| 586 | right[i].Meshy.Offset = right[i].Meshy.Offset:lerp(Vector3.new(y,0,0), i / 6) | |
| 587 | end | |
| 588 | end | |
| 589 | b = 1 | |
| 590 | y = 0 | |
| 591 | wait() | |
| 592 | end | |
| 593 | rightready = true | |
| 594 | end)) | |
| 595 | if fastmode < 4 then | |
| 596 | wait(firespeed) | |
| 597 | end | |
| 598 | if fastmode < 4 then | |
| 599 | repeat | |
| 600 | wait() | |
| 601 | until leftready == true | |
| 602 | end | |
| 603 | end | |
| 604 | end | |
| 605 | ||
| 606 | --Main | |
| 607 | ||
| 608 | mouse.Button1Up:connect(function() | |
| 609 | mousedown = false | |
| 610 | end) | |
| 611 | ||
| 612 | mouse.Button1Down:connect(function() | |
| 613 | if active == false then | |
| 614 | return | |
| 615 | end | |
| 616 | if enabled == true then | |
| 617 | return | |
| 618 | else | |
| 619 | enabled = true | |
| 620 | end | |
| 621 | humanoid.WalkSpeed = 7 | |
| 622 | mousedown = true | |
| 623 | repeat | |
| 624 | Fire() | |
| 625 | wait() | |
| 626 | until mousedown == false | |
| 627 | humanoid.WalkSpeed = 16 | |
| 628 | wait(0.2) | |
| 629 | enabled = false | |
| 630 | end) | |
| 631 | ||
| 632 | mouse.KeyUp:connect(function(key) | |
| 633 | key = key:lower() | |
| 634 | if key:byte() == 32 then | |
| 635 | spacepress = false | |
| 636 | end | |
| 637 | end) | |
| 638 | ||
| 639 | mouse.KeyDown:connect(function(key) | |
| 640 | key = key:lower() | |
| 641 | if key == "q" then | |
| 642 | if fastmode == 4 then | |
| 643 | fastmode = 1 | |
| 644 | firespeed = cooldown | |
| 645 | else | |
| 646 | fastmode = fastmode + 1 | |
| 647 | firespeed = firespeed / 2 | |
| 648 | if fastmode == 4 then | |
| 649 | firespeed = 0 | |
| 650 | end | |
| 651 | end | |
| 652 | elseif key == "e" then | |
| 653 | if rainbow == false then | |
| 654 | rainbow = true | |
| 655 | else | |
| 656 | rainbow = false | |
| 657 | end | |
| 658 | print(rainbow) | |
| 659 | elseif key == "z" and available == true then | |
| 660 | available = false | |
| 661 | Laser() | |
| 662 | wait(0.5) | |
| 663 | available = true | |
| 664 | elseif key == "x" then | |
| 665 | if active == true then | |
| 666 | for i=1,10 do | |
| 667 | for i,v in pairs(both) do | |
| 668 | v.Transparency = v.Transparency + 0.1 | |
| 669 | end | |
| 670 | wait() | |
| 671 | end | |
| 672 | active = false | |
| 673 | else | |
| 674 | for i=1,10 do | |
| 675 | for i,v in pairs(both) do | |
| 676 | v.Transparency = v.Transparency - 0.1 | |
| 677 | end | |
| 678 | wait() | |
| 679 | end | |
| 680 | active = true | |
| 681 | end | |
| 682 | elseif key:byte() == 32 then | |
| 683 | spacepress = true | |
| 684 | ||
| 685 | wait(0.4) | |
| 686 | if spacepress and heat > 0 then | |
| 687 | regen = false | |
| 688 | repeat | |
| 689 | heat = heat * 0.9 | |
| 690 | heat = math.floor(heat) | |
| 691 | torso.Velocity = Vector3.new(torso.Velocity.x,heat * 1.5,torso.Velocity.z) | |
| 692 | local flame = Instance.new("Part")
| |
| 693 | flame.Size = Vector3.new(3,3,3) | |
| 694 | flame.CFrame = torso.CFrame - Vector3.new(math.random(-1.5,1.5),3,math.random(-1.5,1.5)) | |
| 695 | flame.Anchored = true | |
| 696 | flame.CanCollide = false | |
| 697 | flame.Transparency = 0.5 | |
| 698 | flame.BrickColor = BrickColor.new("Deep orange")
| |
| 699 | flame.Material = Enum.Material.Neon | |
| 700 | flame.Name = "Flame" | |
| 701 | flame.Parent = workspace | |
| 702 | Mesh("Sphere", flame, nil)
| |
| 703 | coroutine.resume(coroutine.create(function() | |
| 704 | for i=1,10 do | |
| 705 | flame.Transparency = flame.Transparency + (0.02 * i) | |
| 706 | flame.Meshy.Scale = flame.Meshy.Scale:lerp(Vector3.new(0.6 / i, 0.6 / i, 0.6 / i) * (heat / 50), 0.7) | |
| 707 | flame.CFrame = CFrame.new(flame.Position + (flame.CFrame.upVector * ((1.5 / i) * -1))) | |
| 708 | wait() | |
| 709 | end | |
| 710 | flame:Destroy() | |
| 711 | end)) | |
| 712 | wait() | |
| 713 | until heat == 0 or spacepress == false | |
| 714 | regen = true | |
| 715 | end | |
| 716 | end | |
| 717 | end) | |
| 718 | ||
| 719 | coroutine.resume(coroutine.create(function() | |
| 720 | while true do | |
| 721 | if rainbow == true then | |
| 722 | for i,v in pairs(bothgun) do | |
| 723 | v.Color = v.Color:lerp(BrickColor.Random().Color, 0.2) | |
| 724 | v.Material = Enum.Material.Neon | |
| 725 | end | |
| 726 | elseif rainbow == false then | |
| 727 | for i,v in pairs(bothgun) do | |
| 728 | v.Color = v.Color:lerp(BrickColor.new("Smoky grey").Color, 0.1)
| |
| 729 | v.Material = Enum.Material.Metal | |
| 730 | end | |
| 731 | end | |
| 732 | wait() | |
| 733 | end | |
| 734 | end)) | |
| 735 | ||
| 736 | --Eye Blink | |
| 737 | coroutine.resume(coroutine.create(function() | |
| 738 | local time = 180 | |
| 739 | while true do | |
| 740 | repeat | |
| 741 | time = time - 1 | |
| 742 | wait() | |
| 743 | until time == 0 | |
| 744 | print("blink")
| |
| 745 | coroutine.resume(coroutine.create(function() | |
| 746 | Chat("*blink*", 0, 0.3)
| |
| 747 | end)) | |
| 748 | time = 180 | |
| 749 | local goal = Vector3.new(2,0,1) | |
| 750 | local colorgoal = BrickColor.new("Really black").Color
| |
| 751 | for i=1,20 do | |
| 752 | eye.Meshy.Scale = eye.Meshy.Scale:lerp(goal, i / 35) | |
| 753 | eye.Color = eye.Color:lerp(colorgoal, 0.6) | |
| 754 | goal = Vector3.new(1,goal.y + 0.05,1) | |
| 755 | colorgoal = BrickColor.new("Really red").Color
| |
| 756 | wait() | |
| 757 | end | |
| 758 | end | |
| 759 | end)) | |
| 760 | ||
| 761 | --Regen Heat | |
| 762 | coroutine.resume(coroutine.create(function() | |
| 763 | while true do | |
| 764 | if regen == true then | |
| 765 | repeat | |
| 766 | heat = (heat * 1.3) + 0.1 | |
| 767 | wait() | |
| 768 | until heat >= 100 or regen == false | |
| 769 | if regen then | |
| 770 | heat = 100 | |
| 771 | end | |
| 772 | end | |
| 773 | wait() | |
| 774 | end | |
| 775 | end)) | |
| 776 | ||
| 777 | print([["-|- | |
| 778 | Q to change firing speed | |
| 779 | E to turn off or on rainbow mode | |
| 780 | Z to shoot a laser out of your eye | |
| 781 | X to hide or show guns | |
| 782 | Space to hover | |
| 783 | ||
| 784 | Firing Speeds: | |
| 785 | 1 = Slow | |
| 786 | 2 = Normal | |
| 787 | 3 = Fast | |
| 788 | 4 = Literally impossible | |
| 789 | -|-"]]) |