Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- plyr = game:GetService("Players").LocalPlayer
- --password
- plyr.Character["Right Arm"].TopSurface = "Smooth"
- plyr.Character["Right Arm"].BottomSurface = "Smooth"
- plyr.Character["Left Arm"].TopSurface = "Smooth"
- plyr.Character["Left Arm"].BottomSurface = "Smooth"
- DrillOut = false
- BattleEnd = false
- EDmg = math.random(10,50)
- EOn = false
- Spinning = false
- SpinDeb = false
- LineColor = "White"
- Shocks = false
- ShockDeb = false
- mod = Instance.new("Model")
- mod.Name = "Rainbow Dash's Drills"
- mod.Parent = plyr.Character
- welds = Instance.new("Model")
- welds.Name = "NotSparta(But close!)"
- welds.Parent = mod
- Lines = Instance.new("Model")
- Lines.Name = "Lines :>"
- Lines.Parent = mod
- function createPart(size,color,parent)
- Part = Instance.new("Part")
- Part.Size = size
- Part.BrickColor = BrickColor.new(color)
- Part.Parent = parent
- Part.TopSurface = "Smooth"
- Part.BottomSurface = "Smooth"
- Part.formFactor = "Symmetric"
- Part.CanCollide = false
- Part.Locked = true
- end
- function createMesh(type1,type2,scale,parent)
- if type1 == "Block" then
- Mesh = Instance.new("BlockMesh")
- Mesh.Scale = scale
- Mesh.Parent = parent
- elseif type1 == "Special" then
- Mesh = Instance.new("SpecialMesh")
- Mesh.MeshType = type2
- Mesh.Scale = scale
- Mesh.Parent = parent
- elseif type1 == "Cylinder" then
- Mesh = Instance.new("CylinderMesh")
- Mesh.Scale = scale
- Mesh.Parent = parent
- end
- end
- function createWeld(part0,part1,c0)
- Weld = Instance.new("Weld")
- Weld.Parent = welds
- Weld.Part0 = part0
- Weld.Part1 = part1
- Weld.C0 = c0
- end
- function setJoint(which)
- if which == "Right" then
- RightArmJoint.Parent = nil
- RightArmJoint.C1 = CFrame.new(0,0,0)*CFrame.Angles(0,0,0)
- RightArmJoint.C0 = CFrame.new(0,0.6,0)*CFrame.Angles(0,0,0)
- elseif which == "Left" then
- LeftArmJoint.Parent = nil
- LeftArmJoint.C1 = CFrame.new(0,0,0)*CFrame.Angles(0,0,0)
- LeftArmJoint.C0 = CFrame.new(0,0.6,0)*CFrame.Angles(0,0,0)
- elseif which == "Both" then
- RightArmJoint.Parent = nil
- LeftArmJoint.Parent = nil
- RightArmJoint.C1 = CFrame.new(0,0,0)*CFrame.Angles(0,0,0)
- RightArmJoint.C0 = CFrame.new(0,0.6,0)*CFrame.Angles(0,0,0)
- LeftArmJoint.C1 = CFrame.new(0,0,0)*CFrame.Angles(0,0,0)
- LeftArmJoint.C0 = CFrame.new(0,0.6,0)*CFrame.Angles(0,0,0)
- end
- end
- function backArms()
- NiceWeldRight.C0 = CFrame.new(-1.5,-0.6,0)*CFrame.Angles(0,0,0)
- NiceWeldLeft.C0 = CFrame.new(1.5,-0.6,0)*CFrame.Angles(0,0,0)
- RightArmJoint.Parent = plyr.Character["Right Arm"]
- RightArmJoint.C1 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(-40),math.rad(-20),math.rad(5))
- LeftArmJoint.Parent = plyr.Character["Left Arm"]
- LeftArmJoint.C1 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(-40),math.rad(20),math.rad(-5))
- end
- function armOut(which)
- if which == "Right" then
- RightArmJoint.Parent = plyr.Character["Right Arm"]
- RightArmJoint.C1 = RightArmJoint.C1*CFrame.fromEulerAnglesXYZ(math.rad(90),0,0)
- elseif which == "Left" then
- LeftArmJoint.Parent = plyr.Character["Left Arm"]
- LeftArmJoint.C1 = LeftArmJoint.C1*CFrame.fromEulerAnglesXYZ(math.rad(90),0,0)
- end
- end
- function effect1(thing)
- for i,v in pairs(Lines:GetChildren()) do
- v:Remove()
- end
- e1 = true
- pos1 = thing.Position
- what = thing
- pos2 = pos1
- end
- function effect2(thing)
- e1 = true
- posz1 = thing.Position
- what2 = thing
- posz2 = posz1
- end
- function addShock()
- createPart(Vector3.new(1,1,1),"White",mod)
- RightShock = Part
- RightShock.Transparency = 0.7
- RightShock.Reflectance = 0
- createMesh("Special","Brick",Vector3.new(0.3,1.2,0.3),Part)
- Mesh.MeshId = "http://www.roblox.com/asset/?id=1033714"
- createWeld(Part,RightDrill,CFrame.new(0,0,0)*CFrame.Angles(0,0,0))
- createPart(Vector3.new(1,1,1),"Pastal light blue",mod)
- LeftShock = Part
- LeftShock.Transparency = 0.7
- LeftShock.Reflectance = 0
- createMesh("Special","Brick",Vector3.new(0.3,1.2,0.3),Part)
- Mesh.MeshId = "http://www.roblox.com/asset/?id=1033714"
- createWeld(Part,LeftDrill,CFrame.new(0,0,0)*CFrame.Angles(0,0,0))
- LineColor = "Pastel light blue"
- Shocks = true
- function STouch(part)
- if math.random(1,5) == 5 and ShockDeb == false then
- print("STUNNED!")
- if part.Parent:findFirstChild("Humanoid") ~= nil then
- ShockDeb = true
- pcall(function()
- part.Parent.Humanoid.WalkSpeed = 0
- part.Parent.Torso.Anchored = true
- end)
- wait(2)
- pcall(function()
- part.Parent.Humanoid.WalkSpeed = 16
- part.Parent.Torso.Anchored = false
- end)
- ShockDeb = false
- end
- end
- end
- function onTouch(hit) STouch(hit) end RightShock.Touched:connect(onTouch)
- function onTouch(hit) STouch(hit) end LeftShock.Touched:connect(onTouch)
- end
- function removeShock()
- pcall(function()
- RightShock:Destroy()
- LeftShock:Destroy()
- end)
- LineColor = "White"
- Shocks = false
- end
- createPart(Vector3.new(1,1,1),"White",mod)
- RightHandle = Part
- createMesh("Cylinder","Brick",Vector3.new(0.5,0.05,0.5),Part)
- createWeld(Part,plyr.Character["Right Arm"],CFrame.new(0,1,0)*CFrame.Angles(0,0,0))
- createPart(Vector3.new(1,1,1),"White",mod)
- RightDrill = Part
- RightDrill.Reflectance = 0.2
- createMesh("Special","Brick",Vector3.new(0.2,1,0.2),Part)
- Mesh.MeshId = "http://www.roblox.com/asset/?id=1033714"
- createWeld(Part,RightHandle,CFrame.new(0,0.4,0)*CFrame.Angles(math.rad(180),0,0))
- RDWeld = Weld
- createPart(Vector3.new(1,1,1),"Pastel light blue",mod)
- LeftHandle = Part
- createMesh("Cylinder","Brick",Vector3.new(0.5,0.05,0.5),Part)
- createWeld(Part,plyr.Character["Left Arm"],CFrame.new(0,1,0)*CFrame.Angles(0,0,0))
- createPart(Vector3.new(1,1,1),"Pastel light blue",mod)
- LeftDrill = Part
- LeftDrill.Reflectance = 0.2
- createMesh("Special","Brick",Vector3.new(0.2,1,0.2),Part)
- Mesh.MeshId = "http://www.roblox.com/asset/?id=1033714"
- createWeld(Part,LeftHandle,CFrame.new(0,0.4,0)*CFrame.Angles(math.rad(180),0,0))
- LDWeld = Weld
- --Joints
- createPart(Vector3.new(1,1,1),"White",mod)
- RAJ = Part
- RAJ.Transparency = 1
- createMesh("Block","Brick",Vector3.new(0.2,0.2,0.2),Part)
- createWeld(Part,plyr.Character.Torso,CFrame.new(-1.5,-0.6,0)*CFrame.Angles(0,0,0))
- NiceWeldRight = Weld
- createWeld(plyr.Character["Right Arm"],RAJ,CFrame.new(0,0.6,0)*CFrame.Angles(0,0,0))
- RightArmJoint = Weld
- RightArmJoint.Parent = nil
- createPart(Vector3.new(1,1,1),"Pastel light blue",mod)
- LAJ = Part
- LAJ.Transparency = 1
- createMesh("Block","Brick",Vector3.new(0.2,0.2,0.2),Part)
- createWeld(Part,plyr.Character.Torso,CFrame.new(1.5,-0.6,0)*CFrame.Angles(0,0,0))
- NiceWeldLeft = Weld
- createWeld(plyr.Character["Left Arm"],LAJ,CFrame.new(0,0.6,0)*CFrame.Angles(0,0,0))
- LeftArmJoint = Weld
- LeftArmJoint.Parent = nil
- --JointEnd
- if script.Parent.className ~= "HopperBin" then
- hb = Instance.new("HopperBin")
- hb.Parent = plyr.Backpack
- hb.Name = "Rainbow Dash's Drills"
- script.Parent = hb
- end
- hb = script.Parent
- debounce = false
- function Select(mouse)
- BattleEnd = false
- mod.Parent = plyr.Character
- welds:MakeJoints()
- backArms()
- function onKeyDown(key)
- if debounce == false then debounce = true
- key:lower()
- -----------
- if string.byte(key) == 113 and Spinning == false then
- if DrillOut == false then
- DrillOut = true
- for i = 1,10 do
- RDWeld.C0 = RDWeld.C0 - Vector3.new(0,0.08,0)
- LDWeld.C0 = LDWeld.C0 - Vector3.new(0,0.08,0)
- wait()
- end
- effect1(RightDrill)
- effect2(LeftDrill)
- else
- e1 = false
- for i = 1,10 do
- RDWeld.C0 = RDWeld.C0 + Vector3.new(0,0.08,0)
- LDWeld.C0 = LDWeld.C0 + Vector3.new(0,0.08,0)
- wait()
- end
- DrillOut = false
- end
- --Teleport----------------------
- elseif string.byte(key) == 116 then
- if (plyr.Character.Torso.Position-mouse.Hit.p).magnitude < 2000 then
- e1 = false
- for i,v in pairs(Lines:GetChildren()) do
- v:Remove()
- end
- pos1 = plyr.Character.Torso.Position
- plyr.Character:MoveTo(mouse.Hit.p)
- wait()
- pos2 = plyr.Character.Torso.Position
- createPart(Vector3.new(1,1,1),"Pastel light blue",workspace)
- Partz = Part
- Partz.Name = "Line"
- Partz.Anchored = true
- Partz.Size = Vector3.new(1,(pos1-pos2).magnitude,1)
- Partz.CFrame = CFrame.new((pos1+pos2)/2,pos1)*CFrame.Angles(math.pi/2,0,0)
- createMesh("Cylinder","Brick",Vector3.new(0.5,1,0.5),Partz)
- wait()
- for i = 1,10 do
- pcall(function()
- Partz.Transparency = Partz.Transparency + 0.05
- end)
- wait()
- end
- game:getService("Debris"):AddItem(Partz,0.1)
- effect1(RightDrill)
- effect2(LeftDrill)
- end
- end
- if DrillOut == true then
- if string.byte(key) == 101 and Spinning == false then
- if math.random(1,2) == 1 then
- EOn = true
- function onTouch(hit)
- if hit.Parent:findFirstChild("Humanoid") ~= nil then
- if EOn == true then
- EOn = false
- hit.Parent.Humanoid:TakeDamage(EDmg)
- wait(0.5)
- EOn = true
- end
- end
- end
- RightDrill.Touched:connect(onTouch)
- backArms()
- for i = 1,5 do
- RightArmJoint.C1 = RightArmJoint.C1*CFrame.fromEulerAnglesXYZ(math.rad(30),0,0)
- wait()
- end
- for i = 1,5 do
- RightArmJoint.C1 = RightArmJoint.C1*CFrame.fromEulerAnglesXYZ(math.rad(-30),0,0)
- wait()
- end
- EOn = false
- else
- EOn = true
- function onTouch(hit)
- if hit.Parent:findFirstChild("Humanoid") ~= nil then
- if EOn == true then
- EOn = false
- hit.Parent.Humanoid:TakeDamage(EDmg)
- wait(0.5)
- EOn = true
- end
- end
- end
- LeftDrill.Touched:connect(onTouch)
- backArms()
- for i = 1,5 do
- LeftArmJoint.C1 = LeftArmJoint.C1*CFrame.fromEulerAnglesXYZ(math.rad(30),0,0)
- wait()
- end
- for i = 1,5 do
- LeftArmJoint.C1 = LeftArmJoint.C1*CFrame.fromEulerAnglesXYZ(math.rad(-30),0,0)
- wait()
- end
- EOn = false
- end
- --Spin win--------------
- elseif string.byte(key) == 114 then
- backArms()
- if Spinning == false then
- SpinDeb = true
- SpinT = true
- for i = 1,10 do
- RightArmJoint.C1 = RightArmJoint.C1*CFrame.fromEulerAnglesXYZ(math.rad(4),math.rad(2),math.rad(-0.5))
- LeftArmJoint.C1 = LeftArmJoint.C1*CFrame.fromEulerAnglesXYZ(math.rad(4),math.rad(-2),math.rad(0.5))
- wait()
- end
- for i = 1,10 do
- RightArmJoint.C1 = RightArmJoint.C1*CFrame.fromEulerAnglesXYZ(0,0,math.rad(8.5))
- LeftArmJoint.C1 = LeftArmJoint.C1*CFrame.fromEulerAnglesXYZ(0,0,math.rad(-8.5))
- wait()
- end
- NiceWeldRight.C0 = NiceWeldRight.C0 + Vector3.new(0.1,0,0)
- NiceWeldLeft.C0 = NiceWeldLeft.C0 - Vector3.new(0.1,0,0)
- function onTouch(hit)
- if hit.Parent:findFirstChild("Humanoid") ~= nil then
- if SpinT == true then
- SpinT = false
- hit.Parent.Humanoid:TakeDamage(EDmg)
- wait(0.1)
- SpinT = true
- end
- end
- end
- LeftDrill.Touched:connect(onTouch)
- function onTouch(hit)
- if hit.Parent:findFirstChild("Humanoid") ~= nil then
- if SpinT == true then
- SpinT = false
- hit.Parent.Humanoid:TakeDamage(EDmg)
- wait(0.1)
- SpinT = true
- end
- end
- end
- RightDrill.Touched:connect(onTouch)
- Spinning = true
- SpinDeb = false
- plyr.Character.Humanoid.WalkSpeed = 25
- else
- SpinT = false
- plyr.Character.Humanoid.WalkSpeed = 16
- Spinning = false
- end
- elseif string.byte(key) == 122 then
- if Shocks == false then
- addShock()
- else
- removeShock()
- end
- ---------
- end
- end
- EOn = false
- debounce = false
- end
- end
- mouse.KeyDown:connect(onKeyDown)
- end
- hb.Selected:connect(Select)
- function onDeselect(mouse)
- pcall(function()
- if DrillOut == true then
- for i = 1,10 do
- RDWeld.C0 = RDWeld.C0 + Vector3.new(0,0.08,0)
- LDWeld.C0 = LDWeld.C0 + Vector3.new(0,0.08,0)
- end
- end
- DrillOut = false
- BattleEnd = true
- EOn = false
- e1 = false
- Spinning = false
- setJoint("Both")
- SpinT = false
- plyr.Character.TLua.Humanoid.WalkSpeed = 16
- end)
- end
- hb.Deselected:connect(onDeselect)
- coroutine.resume(coroutine.create(function()
- while true do
- if Spinning then
- plyr.Character.Torso.CFrame = plyr.Character.Torso.CFrame*CFrame.fromEulerAnglesXYZ(0,math.rad(60),0)
- end
- wait()
- end
- end
- )
- )
- coroutine.resume(coroutine.create(function()
- for i = 1,math.huge do
- if e1 then
- posz1 = what2.Position
- createPart(Vector3.new(1,1,1),LineColor,Lines)
- Partz = Part
- Partz.Name = "LineD" .. i
- Partz.Transparency = 0
- Partz.Anchored = true
- Partz.Size = Vector3.new(1,(posz1-posz2).magnitude,1)
- Partz.CFrame = CFrame.new((posz1+posz2)/2,posz1)*CFrame.Angles(math.pi/2,0,0)
- createMesh("Cylinder","Brick",Vector3.new(0.2,1,0.2),Partz)
- delay(0,function()
- for iz = 0 , 1 , 0.1 do
- wait()
- Lines["LineD" .. i].Transparency = 1*iz
- end
- game:getService("Debris"):AddItem(Partz)
- end)
- posz2 = posz1
- end
- wait()
- end
- end
- )
- )
- coroutine.resume(coroutine.create(function()
- for i = 1,math.huge do
- if e1 then
- pos1 = what.Position
- createPart(Vector3.new(1,1,1),LineColor,Lines)
- Partz = Part
- Partz.Name = "Line" .. i
- Partz.Transparency = 0
- Partz.Anchored = true
- Partz.Size = Vector3.new(1,(pos1-pos2).magnitude,1)
- Partz.CFrame = CFrame.new((pos1+pos2)/2,pos1)*CFrame.Angles(math.pi/2,0,0)
- createMesh("Cylinder","Brick",Vector3.new(0.2,1,0.2),Partz)
- delay(0,function()
- for iz = 0 , 1 , 0.1 do
- wait()
- Lines["Line" .. i].Transparency = 1*iz
- end
- game:getService("Debris"):AddItem(Partz)
- end)
- pos2 = pos1
- end
- wait()
- end
- end
- )
- )
Add Comment
Please, Sign In to add comment