SHOW:
|
|
- or go back to the newest paste.
| 1 | - | Modelname = "Staff Of Disasterous Explosions" |
| 1 | + | Modelname = "Golden Staff Of Disasterous Explosions" |
| 2 | - | Toolname = "Staff Of Disasterous Explosions" |
| 2 | + | Toolname = "Golden Staff Of Disasterous Explosions" |
| 3 | Surfaces = {"FrontSurface", "BackSurface", "TopSurface", "BottomSurface", "LeftSurface", "RightSurface"}
| |
| 4 | local Selected = false | |
| 5 | local inuse = false | |
| 6 | local mousedown = false | |
| 7 | local Character = nil | |
| 8 | ||
| 9 | function Execute(f) | |
| 10 | return coroutine.resume(coroutine.create(function()f()end)) | |
| 11 | end | |
| 12 | ||
| 13 | function Part(Parent, Anchor, Collide, Tran, Ref, Color, X, Y, Z, Break) | |
| 14 | local p = Instance.new("Part")
| |
| 15 | p.formFactor = "Custom" | |
| 16 | p.Anchored = Anchor | |
| 17 | p.CanCollide = Collide | |
| 18 | p.Transparency = Tran | |
| 19 | p.Reflectance = Ref | |
| 20 | p.BrickColor = BrickColor.new(Color) | |
| 21 | p.Material = 272 | |
| 22 | ||
| 23 | for _, Surf in pairs(Surfaces) do | |
| 24 | p[Surf] = "Smooth" | |
| 25 | end | |
| 26 | ||
| 27 | p.Size = Vector3.new(X, Y, Z) | |
| 28 | ||
| 29 | if Break then | |
| 30 | p:BreakJoints() | |
| 31 | else | |
| 32 | p:MakeJoints() | |
| 33 | end | |
| 34 | ||
| 35 | p.Parent = Parent | |
| 36 | p.Locked = true | |
| 37 | ||
| 38 | return p | |
| 39 | end | |
| 40 | ||
| 41 | function Weld(p0, p1, x, y, z, a, b, c) | |
| 42 | local w = Instance.new("Weld")
| |
| 43 | w.Parent = p0 | |
| 44 | w.Part0 = p0 | |
| 45 | w.Part1 = p1 | |
| 46 | w.C1 = CFrame.new(x,y,z) * CFrame.Angles(a,b,c) | |
| 47 | return w | |
| 48 | end | |
| 49 | ||
| 50 | Add = {
| |
| 51 | Sphere = function(P) | |
| 52 | local m = Instance.new("SpecialMesh",P)
| |
| 53 | m.MeshType = "Sphere" | |
| 54 | return m | |
| 55 | end, | |
| 56 | Mesh = function(P, ID, x, y, z) | |
| 57 | local m = Instance.new("SpecialMesh")
| |
| 58 | m.MeshId = ID | |
| 59 | m.Scale = Vector3.new(x, y, z) | |
| 60 | m.Parent = P | |
| 61 | return m | |
| 62 | end, | |
| 63 | Sound = function(P, ID, vol, pitch) | |
| 64 | local s = Instance.new("Sound")
| |
| 65 | s.SoundId = ID | |
| 66 | s.Volume = vol | |
| 67 | s.Pitch = pitch | |
| 68 | s.Parent = P | |
| 69 | return s | |
| 70 | end | |
| 71 | } | |
| 72 | ||
| 73 | ||
| 74 | local Model,handle,toptip,bottip,HB,HW,TH,HBW,Crystal | |
| 75 | local player = game.Players.LocalPlayer | |
| 76 | local StaffModel = nil | |
| 77 | local Rarm = nil | |
| 78 | local RABrick, RABW, RAW | |
| 79 | ||
| 80 | function GenerateModel(Parent,Torso,Rarm) | |
| 81 | Model = Instance.new("Model")
| |
| 82 | Model.Name = Modelname | |
| 83 | - | handle = Part(Model, false, false, 0, 0, "Brown", 0.3, 4.4, 0.3, true) |
| 83 | + | handle = Part(Model, false, false, 0, 0, "Gold", 0.3, 4.4, 0.3, true) |
| 84 | handle.Name = "Handle" | |
| 85 | Instance.new("CylinderMesh",handle)
| |
| 86 | - | toptip = Part(Model, false, false, 0, 0, "Brown", 0.6, 0.2, 0.6, true) |
| 86 | + | toptip = Part(Model, false, false, 0, 0, "Gold", 0.6, 0.2, 0.6, true) |
| 87 | Weld(handle, toptip, 0, -2, 0, 0, 0, 0) | |
| 88 | Instance.new("CylinderMesh",toptip)
| |
| 89 | - | Crystal = Part(Model, false, false, 0, 0.2, "Bright blue", 0.5, 0.75, 0.5, true) |
| 89 | + | Crystal = Part(Model, false, false, 0, 0.2, "Bright orange", 0.5, 0.75, 0.5, true) |
| 90 | local w1 = Weld(handle, Crystal, 0, -2.2, 0, 0, 0, 0) | |
| 91 | Add.Mesh(Crystal, "http://www.roblox.com/asset/?id=9756362", 0.5, 0.75, 0.5) | |
| 92 | Crystal.Reflectance = 0.25 | |
| 93 | Crystal.Transparency = 0.25 | |
| 94 | - | local BotTip = Part(Model, false, false, 0, 0, "Brown", 0.2, 1.5, 0.2, true) |
| 94 | + | local BotTip = Part(Model, false, false, 0, 0, "Gold", 0.2, 1.5, 0.2, true) |
| 95 | local w1 = Weld(handle, BotTip, 0, 2.15, 0, 0, 0, 0) | |
| 96 | Add.Mesh(BotTip, "http://www.roblox.com/asset/?id=9756362", 0.4, 0.7, 0.4) | |
| 97 | Model.Parent = Parent | |
| 98 | StaffModel = Model | |
| 99 | ||
| 100 | RABrick = Part(Model, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true) | |
| 101 | RABW = Weld(Torso, RABrick, -1.5, -0.5, 0, 0, 0, 0) | |
| 102 | RAW = Weld(RABrick, nil, 0, 0.5, 0, 0, 0, 0) | |
| 103 | ||
| 104 | HB = Part(Model, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true) | |
| 105 | HBW = Weld(Rarm, HB, 0, 1, -1.5, 0, 0, 0) | |
| 106 | HW = Weld(HB, nil, 0, -1.3, 0, math.pi/2, 0, 0) | |
| 107 | TH = Weld(Torso, nil, -0.6, 0.1, 0, 0, math.pi/2, math.rad(-140)) | |
| 108 | TH.Part1 = handle | |
| 109 | ||
| 110 | end | |
| 111 | ||
| 112 | local tool = nil | |
| 113 | function GenerateTool() | |
| 114 | if player:IsA("Player") then
| |
| 115 | if player.Character ~= nil then | |
| 116 | if player.Character:FindFirstChild("Torso") ~= nil then
| |
| 117 | if player.Character:FindFirstChild(Modelname) == nil then | |
| 118 | if player.Character:FindFirstChild("Right Arm") then
| |
| 119 | GenerateModel(player.Character,player.Character:FindFirstChild("Torso"),player.Character:FindFirstChild("Right Arm"))
| |
| 120 | Rarm = player.Character:FindFirstChild("Right Arm")
| |
| 121 | Character = player.Character | |
| 122 | end | |
| 123 | else | |
| 124 | StaffModel = player.Character:FindFirstChild(Modelname) | |
| 125 | end | |
| 126 | if player.Character:FindFirstChild(Modelname) ~= nil then | |
| 127 | if player.Backpack:FindFirstChild(Toolname) == nil then | |
| 128 | tool = Instance.new("HopperBin",player.Backpack)
| |
| 129 | tool.Name = Toolname | |
| 130 | wait() | |
| 131 | script.Parent = tool | |
| 132 | end | |
| 133 | end | |
| 134 | end | |
| 135 | end | |
| 136 | end | |
| 137 | end | |
| 138 | ||
| 139 | function ToolAnimSelect() | |
| 140 | RAW.Part1 = Rarm | |
| 141 | local ah = CFrame.Angles(0, 0, math.rad(90)) | |
| 142 | RAW.Part1 = Rarm | |
| 143 | for i = 0, 270, 270/5 do | |
| 144 | RAW.C0 = CFrame.new(0, 0, -i/500) * CFrame.Angles(math.rad(i), math.rad(i/4), 0) | |
| 145 | wait() | |
| 146 | end | |
| 147 | HW.C0 = ah | |
| 148 | TH.Part1 = nil | |
| 149 | HW.Part1 = handle | |
| 150 | for i = 270, 70, -200/5 do | |
| 151 | RAW.C0 = CFrame.new(0, 0, -i/500) * CFrame.Angles(math.rad(i), math.rad(i/4), 0) | |
| 152 | wait() | |
| 153 | end | |
| 154 | RAW.C0 = CFrame.new(0, 0, -70/500) * CFrame.Angles(70,0,0) | |
| 155 | inuse = false | |
| 156 | end | |
| 157 | ||
| 158 | function ToolAnimUnSelect() | |
| 159 | RAW.Part1 = Rarm | |
| 160 | local ah = CFrame.Angles(0, 0, math.rad(90)) | |
| 161 | for i = 70, 270, 200/5 do | |
| 162 | RAW.C0 = CFrame.new(0, 0, -i/500) * CFrame.Angles(math.rad(i), math.rad(i/4), 0) | |
| 163 | wait() | |
| 164 | end | |
| 165 | HW.C0 = ah | |
| 166 | HW.Part1 = nil | |
| 167 | TH.Part1 = handle | |
| 168 | for i = 270, 0, -270/5 do | |
| 169 | RAW.C0 = CFrame.new(0, 0, -i/500) * CFrame.Angles(math.rad(i), math.rad(i/4), 0) | |
| 170 | wait() | |
| 171 | end | |
| 172 | RAW.Part1 = nil | |
| 173 | inuse = false | |
| 174 | end | |
| 175 | ||
| 176 | function prop(part, parent, collide, tran, ref, x, y, z, color) | |
| 177 | part.Parent = parent | |
| 178 | part.formFactor = 3 | |
| 179 | part.Anchored = true | |
| 180 | part.CanCollide = collide | |
| 181 | part.Transparency = tran | |
| 182 | part.Reflectance = ref | |
| 183 | part.Material = 288 | |
| 184 | part.Size = Vector3.new(x,y,z) | |
| 185 | part.BrickColor = BrickColor.new(color) | |
| 186 | part.TopSurface = 0 | |
| 187 | part.BottomSurface = 0 | |
| 188 | part:BreakJoints() | |
| 189 | end | |
| 190 | ||
| 191 | local a,b,c -- explosion | |
| 192 | function Selected(mouse) | |
| 193 | if inuse == false then | |
| 194 | inuse = true | |
| 195 | ToolAnimSelect() | |
| 196 | Selected = true | |
| 197 | end | |
| 198 | if Selected == true then | |
| 199 | mouse.Button1Down:connect(function() | |
| 200 | mousedown = true | |
| 201 | while mousedown do | |
| 202 | if Character:FindFirstChild("Humanoid") ~= nil then
| |
| 203 | if Character:FindFirstChild("Humanoid").Health > 0 then
| |
| 204 | if Character:FindFirstChild("ForceField") == nil then
| |
| 205 | c = Instance.new("ForceField",Character)
| |
| 206 | end | |
| 207 | b = Instance.new("Part")
| |
| 208 | - | prop(b, Character, false, 0.4, 0.25, 0.05, 0.05, (Crystal.Position - mouse.hit.p).magnitude, "Cyan") |
| 208 | + | prop(b, Character, false, 0.4, 0.25, 0.05, 0.05, (Crystal.Position - mouse.hit.p).magnitude, "Bright yellow") |
| 209 | b.CFrame = CFrame.new(Crystal.Position, mouse.hit.p) * CFrame.new(0,0,-b.Size.Z/2) | |
| 210 | local ex = Instance.new("Explosion")
| |
| 211 | ex.Parent = Character | |
| 212 | ex.DestroyJointRadiusPercent = 1 | |
| 213 | ex.ExplosionType = 2 | |
| 214 | ex.Position = mouse.hit.p | |
| 215 | ex.BlastRadius = 5 | |
| 216 | ex.BlastPressure = 100000 | |
| 217 | game:GetService("Debris"):AddItem(b,.25)
| |
| 218 | end | |
| 219 | end | |
| 220 | wait(0.1) | |
| 221 | ||
| 222 | end | |
| 223 | end) | |
| 224 | mouse.Button1Up:connect(function() | |
| 225 | if Character:FindFirstChild("ForceField") ~= nil then
| |
| 226 | game:GetService("Debris"):AddItem(Character:FindFirstChild("ForceField"),.5)
| |
| 227 | end | |
| 228 | mousedown = false | |
| 229 | end) | |
| 230 | end | |
| 231 | end | |
| 232 | ||
| 233 | ||
| 234 | ||
| 235 | ||
| 236 | function UnSelected() | |
| 237 | if inuse == false then | |
| 238 | if Character:FindFirstChild("ForceField") ~= nil then
| |
| 239 | game:GetService("Debris"):AddItem(Character:FindFirstChild("ForceField"),.5)
| |
| 240 | end | |
| 241 | mousedown = false | |
| 242 | inuse = true | |
| 243 | ToolAnimUnSelect() | |
| 244 | HW.Part1 = nil | |
| 245 | TH.Part1 = handle | |
| 246 | Selected = false | |
| 247 | end | |
| 248 | end | |
| 249 | ||
| 250 | GenerateTool() | |
| 251 | ||
| 252 | if tool ~= nil then | |
| 253 | tool.Selected:connect(Selected) | |
| 254 | tool.Deselected:connect(UnSelected) | |
| 255 | end |