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 |