View difference between Paste ID: sFVxza0W and 3yagXSdb
SHOW: | | - or go back to the newest paste.
1
--[[ Zeus Staff umad?                                                                       ]]--
2
local Players = game:GetService("Players")
3
local Lighting = game:GetService("Lighting")
4
local Debris = game:GetService("Debris")
5
local Player = Players.LocalPlayer
6
local Mouse = Player:GetMouse()
7
local Char = Player.Character
8
local RArm = Char["Right Arm"]
9
local MainColor = "Yellow"
10
local Model = Instance.new("Model",Char)
11
local Activated = false
12
local LightningEffectOn = false
13
Model.Name = "MasterBolt"
14
for i,v in pairs(Char:GetChildren()) do
15
        if v:IsA("Shirt") or v:IsA("Pants") or v:IsA("CharacterMesh") or v:IsA("BodyColors") then
16
                v:Destroy()
17
        elseif v:IsA("BasePart") then
18-
                v.BrickColor = BrickColor.new("White")
18+
                v.BrickColor = BrickColor.new("Green")
19
        end
20
end
21
local BG = Instance.new("BodyGyro",Char.Torso)
22
BG.maxTorque = Vector3.new(0,0,0)
23
local BG2 = Instance.new("BodyGyro",Char.Head)
24
BG2.maxTorque = Vector3.new(0,0,0)
25
local RW = Instance.new("Weld",Char.Torso)
26
RW.Part0 = Char.Torso
27
local Bolt = Instance.new("Part",Model)
28
Bolt.BrickColor = BrickColor.new("Yellow")
29
Bolt.CanCollide = false
30
Bolt.FormFactor = "Custom"
31
Bolt.TopSurface = "Smooth"
32
Instance.new("CylinderMesh",Bolt)
33
Bolt.BottomSurface = "Smooth"
34
Bolt.Size = Vector3.new(0.5,2,0.5)
35
Bolt:BreakJoints()
36
local BW = Instance.new("Weld",Bolt)
37
BW.Part0 = RArm
38
BW.Part1 = Bolt
39
BW.C1 = CFrame.new(0.2,0,1) * CFrame.Angles(math.rad(90),0,0)
40
local Tip = Instance.new("Part",Model)
41
Tip.BrickColor = BrickColor.new("Really White")
42
Tip.CanCollide = false
43
Tip.FormFactor = "Custom"
44
Tip.TopSurface = "Smooth"
45
Tip.BottomSurface = "Smooth"
46
local Mesh = Instance.new("SpecialMesh",Tip)
47
Mesh.MeshId = "http://www.roblox.com/asset/?id=1033714"
48
Mesh.Scale = Vector3.new(0.25,0.5,0.25)
49
Tip.Size = Vector3.new(0.48,0.5,0.48)
50
Tip:BreakJoints()
51
local TW = Instance.new("Weld",Tip)
52
TW.Part0 = Bolt
53
TW.Part1 = Tip
54
TW.C1 = CFrame.new(0,-1.175,0)
55
local Tip2 = Instance.new("Part",Model)
56
Tip2.BrickColor = BrickColor.new("Lime green")
57
Tip2.CanCollide = false
58
Tip2.FormFactor = "Custom"
59
Tip2.TopSurface = "Smooth"
60
Tip2.BottomSurface = "Smooth"
61
local Mesh2 = Instance.new("SpecialMesh",Tip2)
62
Mesh2.MeshId = "http://www.roblox.com/asset/?id=1033714"
63
Mesh2.Scale = Vector3.new(0.25,0.5,0.25)
64
Tip2.Size = Vector3.new(0.48,0.5,0.48)
65
Tip2:BreakJoints()
66
local TW2 = Instance.new("Weld",Tip2)
67
TW2.Part0 = Bolt
68
TW2.Part1 = Tip2
69
TW2.C1 = CFrame.new(0,-1.175,0) * CFrame.Angles(0,0,math.rad(180))
70
function ComputePos(pos1, pos2)
71
        return CFrame.new(pos1, Vector3.new(pos2.x, pos1.y, pos2.z))
72
end
73
function LightningEffect(Pos,Color,Size,Time)
74
        local Mod = Instance.new("Model",Char)
75
        Mod.Name = "Lightning"
76
        for i = 1,Size do
77
                local LastPos = Pos
78
                for i2 = 1,math.random(Size-1,Size+1) do
79
                        local Targ = LastPos * CFrame.new(math.random(-Size,Size),math.random(-Size,Size),math.random(-Size,Size))
80
                        local P = Instance.new("Part",Mod)
81
                        P.BrickColor = Color
82
                        P.FormFactor = "Custom"
83
                        Instance.new("CylinderMesh",P)
84
                        P.Size = Vector3.new(0,(Targ.p-LastPos.p).Magnitude,0)
85
                        P.CFrame = CFrame.new(LastPos.p, Targ.p) * CFrame.Angles(math.pi/2,0,0) * CFrame.new(0,-(Targ.p-LastPos.p).Magnitude/2,0)
86
                        P.Anchored = true
87
                        P.CanCollide = false
88
                        P.TopSurface = "Smooth"
89
                        P.BottomSurface = "Smooth"
90
                        P.Name = "LightningPart"
91
                        P:BreakJoints()
92
                        local P2 = Instance.new("Part",Mod)
93
                        P2.BrickColor = Color
94
                        P2.FormFactor = "Custom"
95
                        Instance.new("CylinderMesh",P2)
96
                        P2.Size = P.Size + Vector3.new(0.1,0.1,0.1)
97
                        P2.CFrame = P.CFrame
98
                        P2.Transparency = 0.7
99
                        P2.Anchored = true
100
                        P2.CanCollide = false
101
                        P2.TopSurface = "Smooth"
102
                        P2.BottomSurface = "Smooth"
103
                        P2.Name = "LightningPart"
104
                        P2:BreakJoints()
105
                        LastPos = Targ
106
                end
107
        end
108
        Debris:AddItem(Mod,Time or 0.1)
109
end
110
function Break(Obj,Base,Dis)
111
        for i,v in pairs(Obj:GetChildren()) do
112
                if v:IsA("BasePart") and (v.Position-Base.Position).Magnitude <= Dis then
113
                        if v.Name ~= "Base" and v.Parent ~= Char and v.Parent.Parent ~= Char and v ~= Base then
114-
                                v.BrickColor = BrickColor.new("Black")
114+
                                v.BrickColor = BrickColor.new("Orange")
115
                                v.Anchored = false
116
                                v:BreakJoints()
117
                                EXP = Instance.new("Explosion",workspace)
118
                                EXP.Position = v.Position
119
                                EXP.BlastRadius = 1
120
                        end
121
                end
122
                Break(v,Base,Dis)
123
        end
124
end
125
function ExplosionEffect(Pos)
126
        coroutine.resume(coroutine.create(function()
127
                local Base = Instance.new("Part",Char)
128
                Base.Anchored = true
129
                Base.Shape = "Ball"
130
                Base.FormFactor = "Custom"
131
                Base.Size = Vector3.new(10,10,10)
132
                Base.CFrame = Pos
133
                Base.Transparency = 0.25
134
                Base.BrickColor = BrickColor.new(MainColor)
135
                Base.TopSurface = "Smooth"
136
                Base.BottomSurface = "Smooth"
137
                Base.Name = "Explosion"
138
                for i = 1,100,2 do
139
                        Base.Size = Base.Size + Vector3.new(1,1,1)
140
                        Base.CFrame = Pos
141
                        Base.Transparency = i*0.01
142
                        Break(Workspace,Base,Base.Size.Y/2)
143
                        wait(0.0001)
144
                end
145
                Base:Destroy()
146
        end))
147
end
148
function LightningBeam(Pos1,Pos,Color,Size,Time)
149
        local Mod = Instance.new("Model",Char)
150
        Mod.Name = "Lightning"
151
        local LastPos = Pos1
152
        local End = math.floor((Pos.p-Pos1.p).Magnitude/3)
153
        local Targ = nil
154
        for i2 = 1,End do
155
                if i2 == End then
156
                        Targ = Pos
157
                else
158
                        for i = 1,100 do
159
                                Targ = LastPos * CFrame.new(math.random(-6,6),math.random(-6,6),math.random(-6,6))
160
                                if (Targ.p-Pos.p).Magnitude < (LastPos.p-Pos.p).Magnitude and (math.abs(Targ.Y-Pos.Y) - math.abs(LastPos.Y-Pos.Y)) < math.abs(Pos1.Y-Pos.Y) then
161
                                        break
162
                                end
163
                        end 
164
                end
165
                local P = Instance.new("Part",Mod)
166
                P.BrickColor = Color
167
                P.FormFactor = "Custom"
168
                Instance.new("CylinderMesh",P)
169
                P.Size = Vector3.new(Size,(Targ.p-LastPos.p).Magnitude,Size)
170
                P.CFrame = CFrame.new(LastPos.p, Targ.p) * CFrame.Angles(math.pi/2,0,0) * CFrame.new(0,-(Targ.p-LastPos.p).Magnitude/2,0)
171
                P.Anchored = true
172
                P.CanCollide = false
173
                P.TopSurface = "Smooth"
174
                P.BottomSurface = "Smooth"
175
                P.Name = "Main"
176
                P:BreakJoints()
177
                local P2 = Instance.new("Part",Mod)
178
                P2.BrickColor = Color
179
                P2.FormFactor = "Custom"
180
                Instance.new("CylinderMesh",P2)
181
                P2.Size = P.Size + Vector3.new(Size/4,Size/4,Size/4)
182
                P2.CFrame = P.CFrame
183
                P2.Transparency = 0.7
184
                P2.Anchored = true
185
                P2.CanCollide = false
186
                P2.TopSurface = "Smooth"
187
                P2.BottomSurface = "Smooth"
188
                P2.Name = "LightningPart"
189
                P2:BreakJoints()
190
                LastPos = Targ
191
        end
192
        coroutine.resume(coroutine.create(function()
193
                for i = 0,1,0.1 do
194
                        for i2,v in pairs(Mod:GetChildren()) do
195
                                if v:IsA("BasePart") then
196
                                        if v.Name == "Main" then
197
                                                v.Transparency = i
198
                                        else
199
                                                v.Transparency = Vector3.new(0,0.7,0):lerp(Vector3.new(0,1,0),i).Y
200
                                        end
201
                                end
202
                        end
203
                        wait(i*0.5)
204
                end
205
                Mod:Destroy()
206
        end))
207
end
208
TweenWeld = function(c,c1,step)
209
        local c0 = c.C1
210
        if c0 == c1 then
211
                step = 90
212
        end
213
        for i = -90,90,step do
214
                local r = ((math.sin(math.rad(i))+1)/2)
215
                local cf = matrixInterpolate(c0, c1, r)
216
                c.C1 = cf
217
                wait(0.000001)
218
        end
219
end
220
function lerp(a, b, t)
221
        return a + (b - a)*t
222
end
223
function slerp(a, b, t)
224
        local dot = a:Dot(b)
225
        if dot > 0.99999 or dot < -0.99999 then
226
                return t <= 0.5 and a or b
227
        else
228
                local r = math.acos(dot)
229
                return (a*math.sin((1 - t)*r) + b*math.sin(t*r)) / math.sin(r)
230
        end
231
end
232
function matrixInterpolate(a, b, t)
233
        local ax, ay, az, a00, a01, a02, a10, a11, a12, a20, a21, a22 = a:components()
234
        local bx, by, bz, b00, b01, b02, b10, b11, b12, b20, b21, b22 = b:components()
235
        local v0 = lerp(Vector3.new(ax , ay , az ), Vector3.new(bx , by , bz ), t) -- Position
236
        local v1 = slerp(Vector3.new(a00, a01, a02), Vector3.new(b00, b01, b02), t) -- Vector right
237
        local v2 = slerp(Vector3.new(a10, a11, a12), Vector3.new(b10, b11, b12), t) -- Vector up
238
        local v3 = slerp(Vector3.new(a20, a21, a22), Vector3.new(b20, b21, b22), t) -- Vector back
239
        return CFrame.new(
240
                v0.x, v0.y, v0.z,
241
                v1.x, v1.y, v1.z,
242
                v2.x, v2.y, v2.z,
243
                v3.x, v3.y, v3.z)
244
end
245
function KeyDown(Key)
246
        if Key:lower() == "q" and not DB then
247
                DB = true
248
                if Activated == false then
249
                        RW.Part1 = RArm
250
                        RW.C1 = CFrame.new(-1.5,0,0)
251
                        TweenWeld(RW,CFrame.new(-1,1.5,0.5) * CFrame.Angles(math.rad(-150),0,math.rad(10)),6)
252
                        for i = Bolt.Size.Y,5,0.1 do
253
                                Bolt.Size = Vector3.new(0.5,i,0.5)
254
                                BW.Part0 = RArm
255
                                BW.Part1 = Bolt
256
                                BW.C1 = CFrame.new(0.1,0,1) * CFrame.Angles(math.rad(90),0,0)
257
                                BW.Parent = Bolt
258
                                TW.Part0 = Bolt
259
                                TW.Part1 = Tip
260
                                Mesh.Scale = Mesh.Scale + Vector3.new(0,0.005,0)
261
                                TW.C1 = CFrame.new(0,-(i/2+0.175+(Mesh.Scale.Y-0.5)/2.75),0)
262
                                TW.Parent = Tip
263
                                TW2.Part0 = Bolt
264
                                TW2.Part1 = Tip2
265
                                Mesh2.Scale = Mesh2.Scale + Vector3.new(0,0.005,0)
266
                                TW2.C1 = CFrame.new(0,-(i/2+0.175+(Mesh2.Scale.Y-0.5)/2.75),0) * CFrame.Angles(0,0,math.rad(180))
267
                                TW2.Parent = Tip2
268
                                wait(0.000001)
269
                                BW.Part0 = RArm
270
                                BW.Part1 = Bolt
271
                                BW.C1 = CFrame.new(0.1,0,1) * CFrame.Angles(math.rad(90),0,0)
272
                                BW.Parent = Bolt
273
                                TW.Part0 = Bolt
274
                                TW.Part1 = Tip
275
                                TW.C1 = CFrame.new(0,-(i/2+0.175+(Mesh.Scale.Y-0.5)/2.75),0)
276
                                TW.Parent = Tip
277
                                TW2.Part0 = Bolt
278
                                TW2.Part1 = Tip2
279
                                TW2.C1 = CFrame.new(0,-(i/2+0.175+(Mesh2.Scale.Y-0.5)/2.75),0) * CFrame.Angles(0,0,math.rad(180))
280
                                TW2.Parent = Tip2
281
                                local Color = Vector3.new(BrickColor.new("Red").r,BrickColor.new("Red").g,BrickColor.new("Red").b):lerp(Vector3.new(BrickColor.new(MainColor).r,BrickColor.new(MainColor).g,BrickColor.new(MainColor).b),i/5)
282
                                Bolt.Color = Color3.new(Color.X,Color.Y,Color.Z)
283
                                Tip.Color = Bolt.Color
284
                                Tip2.Color = Bolt.Color
285
                        end
286
                        LightningEffectOn = true
287
                        TweenWeld(RW,CFrame.new(-1.2,0.5,0.5) * CFrame.Angles(math.rad(-40),math.rad(10),0),6)
288
                        Activated = true
289
                else
290
                        TweenWeld(RW,CFrame.new(-1.5,0,0),6)
291
                        RW.Part1 = nil
292
                        LightningEffectOn = false
293
                        for i = Bolt.Size.Y,2,-0.1 do
294
                                Bolt.Size = Vector3.new(0.5,i,0.5)
295
                                BW.Part0 = RArm
296
                                BW.Part1 = Bolt
297
                                BW.C1 = CFrame.new(0.1,0,1) * CFrame.Angles(math.rad(90),0,0)
298
                                BW.Parent = Bolt
299
                                TW.Part0 = Bolt
300
                                TW.Part1 = Tip
301
                                Mesh.Scale = Mesh.Scale - Vector3.new(0,0.005,0)
302
                                TW.C1 = CFrame.new(0,-(i/2+0.175+(Mesh.Scale.Y-0.5)/2.75),0)
303
                                TW.Parent = Tip
304
                                TW2.Part0 = Bolt
305
                                TW2.Part1 = Tip2
306
                                Mesh2.Scale = Mesh2.Scale - Vector3.new(0,0.005,0)
307
                                TW2.C1 = CFrame.new(0,-(i/2+0.175+(Mesh2.Scale.Y-0.5)/2.75),0) * CFrame.Angles(0,0,math.rad(180))
308
                                TW2.Parent = Tip2
309
                                wait(0.000001)
310
                                BW.Part0 = RArm
311
                                BW.Part1 = Bolt
312
                                BW.C1 = CFrame.new(0.1,0,1) * CFrame.Angles(math.rad(90),0,0)
313
                                BW.Parent = Bolt
314
                                TW.Part0 = Bolt
315
                                TW.Part1 = Tip
316
                                TW.C1 = CFrame.new(0,-(i/2+0.175+(Mesh.Scale.Y-0.5)/2.75),0)
317
                                TW.Parent = Tip
318
                                TW2.Part0 = Bolt
319
                                TW2.Part1 = Tip2
320
                                TW2.C1 = CFrame.new(0,-(i/2+0.175+(Mesh2.Scale.Y-0.5)/2.75),0) * CFrame.Angles(0,0,math.rad(180))
321
                                TW2.Parent = Tip2
322-
                                local Color = Vector3.new(BrickColor.new(MainColor).r,BrickColor.new(MainColor).g,BrickColor.new(MainColor).b):lerp(Vector3.new(BrickColor.new("WHite").r,BrickColor.new("Red").g,BrickColor.new("Red").b),(2/i))
322+
                                local Color = Vector3.new(BrickColor.new(MainColor).r,BrickColor.new(MainColor).g,BrickColor.new(MainColor).b):lerp(Vector3.new(BrickColor.new("Red").r,BrickColor.new("Red").g,BrickColor.new("Red").b),(2/i))
323
                                Bolt.Color = Color3.new(Color.X,Color.Y,Color.Z)
324
                                Tip.Color = Bolt.Color
325
                                Tip2.Color = Bolt.Color
326
                        end
327
                        TW.Part0 = Bolt
328
                        TW.Part1 = Tip
329
                        TW.C1 = CFrame.new(0,-1.175,0)
330
                        TW2.Part0 = Bolt
331
                        TW2.Part1 = Tip2
332
                        TW2.C1 = CFrame.new(0,-1.175,0) * CFrame.Angles(0,0,math.rad(180))
333
                        Activated = false
334
                end
335
                DB = false
336
        elseif Key:lower() == "e" and Activated and not DB then
337
                DB = true
338
                TweenWeld(RW,CFrame.new(-1,1.5,0.25) * CFrame.Angles(math.rad(-170),0,math.rad(10)),10)
339
                wait(0.1)
340
                TweenWeld(RW,CFrame.new(-1,2,-0.3) * CFrame.Angles(math.rad(-155),0,math.rad(10)),11)
341
                if (Mouse.Hit.p-Tip2.CFrame.p).Magnitude > 300 then
342
                        LightningBeam(Tip2.CFrame,(Mouse.Hit-Mouse.Hit.p) * CFrame.new(0,0,-300),BrickColor.new(MainColor),0.5,0.5)
343
                        ExplosionEffect((Mouse.Hit-Mouse.Hit.p) * CFrame.new(0,0,-300))
344
                else
345
                        LightningBeam(Tip2.CFrame,Mouse.Hit,BrickColor.new(MainColor),0.5,0.5)
346
                        ExplosionEffect(Mouse.Hit)
347
                end
348
                LightningEffectOn = false
349
                for i = 0,1,0.15 do
350-
                        local Color = Vector3.new(BrickColor.new(MainColor).r,BrickColor.new(MainColor).g,BrickColor.new(MainColor).b):lerp(Vector3.new(BrickColor.new("White").r,BrickColor.new("White").g,BrickColor.new("White").b),(i/1))
350+
                        local Color = Vector3.new(BrickColor.new(MainColor).r,BrickColor.new(MainColor).g,BrickColor.new(MainColor).b):lerp(Vector3.new(BrickColor.new("Green").r,BrickColor.new("Green").g,BrickColor.new("Orange").b),(i/1))
351
                        Bolt.Color = Color3.new(Color.X,Color.Y,Color.Z)
352
                        Tip.Color = Bolt.Color
353
                        Tip2.Color = Bolt.Color
354
                        wait(0.0001)
355
                end
356
                TweenWeld(RW,CFrame.new(-1.2,0.5,0.5) * CFrame.Angles(math.rad(-40),math.rad(10),0),10)
357
                for i = 0,1,0.15 do
358-
                        local Color = Vector3.new(BrickColor.new("White").r,BrickColor.new("White").g,BrickColor.new("White").b):lerp(Vector3.new(BrickColor.new(MainColor).r,BrickColor.new(MainColor).g,BrickColor.new(MainColor).b),i/1)
358+
                        local Color = Vector3.new(BrickColor.new("Green").r,BrickColor.new("Green").g,BrickColor.new("Red").b):lerp(Vector3.new(BrickColor.new(MainColor).r,BrickColor.new(MainColor).g,BrickColor.new(MainColor).b),i/1)
359
                        Bolt.Color = Color3.new(Color.X,Color.Y,Color.Z)
360
                        Tip.Color = Bolt.Color
361
                        Tip2.Color = Bolt.Color
362
                        wait(0.0001)
363
                end
364
                LightningEffectOn = true
365
                DB = false
366
        end
367
end
368
Mouse.KeyDown:connect(KeyDown)
369
Mouse.Button1Down:connect(Button1Down)
370
while true do
371
        if Activated and LightningEffectOn then
372
                LightningEffect(Tip2.CFrame,BrickColor.new(MainColor),math.random(0,2),0.12)
373
                LightningEffect(Tip.CFrame,BrickColor.new(MainColor),math.random(0,2),0.12)
374
                LightningEffect(Bolt.CFrame,BrickColor.new(MainColor),math.random(0,2),0.12)
375
        end
376
        if Activated then
377
                BG.maxTorque = Vector3.new(math.huge,math.huge,math.huge)
378
                BG.cframe = ComputePos(Char.Torso.Position,Mouse.Hit.p)
379
                BG2.maxTorque = Vector3.new(math.huge,math.huge,math.huge)
380
                BG2.cframe = ComputePos(Char.Head.Position,Mouse.Hit.p)
381
        else
382
                BG.maxTorque = Vector3.new(0,0,0)
383
                BG2.maxTorque = Vector3.new(0,0,0)
384
        end
385
        for i,v in pairs(Char:GetChildren()) do
386
                if (v:IsA("Shirt") or v:IsA("Pants") or v:IsA("CharacterMesh") or v:IsA("BodyColors")) then
387
                        v:Destroy()
388
                elseif v:IsA("BasePart") and v.Name ~= "Explosion" then
389
                        v.BrickColor = BrickColor.new("White")
390
                end
391
        end
392
        wait(math.random(0.05,0.15))
393
end