SHOW:
|
|
- or go back to the newest paste.
1 | - | --[[Aerx Tabs, by PointCoded and nguyenjimbo and The Plutonium Creators]]-- |
1 | + | local p = game.Players.LocalPlayer |
2 | local char = p.Character | |
3 | - | local RunService = game:service'RunService' |
3 | + | local mouse = p:GetMouse() |
4 | - | local Camera = Workspace.CurrentCamera or nil |
4 | + | local larm = char["Left Arm"] |
5 | - | local Lighting = game.Lighting |
5 | + | local rarm = char["Right Arm"] |
6 | - | local Version = "Doge" |
6 | + | local lleg = char["Left Leg"] |
7 | - | local AdminSourceCl = script:Clone() |
7 | + | local rleg = char["Right Leg" |
8 | - | local Pserver = false |
8 | + | ]local hed = char.Head |
9 | - | local asm = false |
9 | + | local torso = char.Torso |
10 | local hum = char.Humanoid | |
11 | local cam = game.Workspace.CurrentCamera | |
12 | local root = char.HumanoidRootPart | |
13 | - | --[[Customization]]-- |
13 | + | local deb = false |
14 | - | local OutlineColor = BrickColor.new("Really red") |
14 | + | local shot = 0 |
15 | local debris=game:service"Debris" | |
16 | local l = game:GetService("Lighting") | |
17 | local rs = game:GetService("RunService").RenderStepped | |
18 | ptz = {0.8, 0.85, 0.9, 0.95, 1, 1.05, 1.1} | |
19 | math.randomseed(os.time()) | |
20 | for i,v in pairs(char:children()) do | |
21 | if v:IsA("Hat") then | |
22 | - | local Player = game.Players.LocalPlayer |
22 | + | |
23 | - | local LocalPlayer = Player |
23 | + | |
24 | - | local UserInterface = game:service'UserInputService' |
24 | + | |
25 | - | local RF = game.ReplicatedStorage:findFirstChild("GKAttachment") or nil |
25 | + | for i,v in pairs (hed:GetChildren()) do |
26 | - | local bannedlist = {"Kazhar","MrDCL","Trollmon123"}; |
26 | + | if v:IsA("Sound") then |
27 | - | local changecamonpossess = false |
27 | + | v:Destroy() |
28 | - | local Debris = game:service'Debris' |
28 | + | |
29 | - | local Mouse = Player:GetMouse() or nil |
29 | + | |
30 | - | local Players = game.Players |
30 | + | |
31 | - | local chatAdornee = Player.Character.Head |
31 | + | |
32 | - | local RbxUtility = LoadLibrary("RbxUtility") |
32 | + | ---------------------------------------------------- |
33 | - | local CMDS = {}; |
33 | + | Debounces = { |
34 | - | local InsertService = game:service'InsertService' |
34 | + | CanAttack = true; |
35 | - | local math = { |
35 | + | NoIdl = false; |
36 | - | abs = math.abs, |
36 | + | Slashing = false; |
37 | - | acos = math.acos, |
37 | + | Slashed = false; |
38 | - | asin = math.asin, |
38 | + | RPunch = false; |
39 | - | atan = math.atan, |
39 | + | RPunched = false; |
40 | - | atan2 = math.atan2, |
40 | + | LPunch = false; |
41 | - | ceil = math.ceil, |
41 | + | LPunched = false; |
42 | - | cos = math.cos, |
42 | + | |
43 | - | cosh = math.cosh, |
43 | + | local Touche = {char.Name, } |
44 | - | deg = math.deg, |
44 | + | ---------------------------------------------------- |
45 | - | exp = math.exp, |
45 | + | hed.face.Texture = "rbxassetid://110112292" |
46 | - | floor = math.floor, |
46 | + | char["Body Colors"].HeadColor = BrickColor.new("Pastel brown") |
47 | - | fmod = math.fmod, |
47 | + | char["Body Colors"].TorsoColor = BrickColor.new("Pastel brown") |
48 | - | frexp = math.frexp, |
48 | + | char["Body Colors"].LeftArmColor = BrickColor.new("Pastel brown") |
49 | - | huge = math.huge, |
49 | + | char["Body Colors"].RightArmColor = BrickColor.new("Pastel brown") |
50 | - | ldexp = math.ldexp, |
50 | + | ---------------------------------------------------- |
51 | - | log = math.log, |
51 | + | ypcall(function() |
52 | - | log10 = math.log10, |
52 | + | char.Shirt:Destroy() |
53 | - | max = math.max, |
53 | + | char.Pants:Destroy() |
54 | - | min = math.min, |
54 | + | shirt = Instance.new("Shirt", char) |
55 | - | modf = math.modf, |
55 | + | shirt.Name = "Shirt" |
56 | - | phi = 1.618033988749895, |
56 | + | pants = Instance.new("Pants", char) |
57 | - | pi = math.pi, |
57 | + | pants.Name = "Pants" |
58 | - | pow = math.pow, |
58 | + | char.Shirt.ShirtTemplate = "rbxassetid://246438816" |
59 | - | rad = math.rad, |
59 | + | char.Pants.PantsTemplate = "rbxassetid://267068334" |
60 | - | random = math.random, |
60 | + | |
61 | - | randomseed = math.randomseed, |
61 | + | ---------------------------------------------------- |
62 | - | sin = math.sin, |
62 | + | function lerp(a, b, t) -- Linear interpolation |
63 | - | sinh = math.sinh, |
63 | + | return a + (b - a)*t |
64 | - | sqrt = math.sqrt, |
64 | + | |
65 | - | tan = math.tan, |
65 | + | |
66 | - | tanh = math.tanh, |
66 | + | function slerp(a, b, t) --Spherical interpolation |
67 | - | tau = 2 * math.pi |
67 | + | dot = a:Dot(b) |
68 | if dot > 0.99999 or dot < -0.99999 then | |
69 | - | rainbow = false |
69 | + | return t <= 0.5 and a or b |
70 | else | |
71 | - | while Pserver == true do |
71 | + | r = math.acos(dot) |
72 | return (a*math.sin((1 - t)*r) + b*math.sin(t*r)) / math.sin(r) | |
73 | - | PserverEnable() |
73 | + | |
74 | - | wait(0.2) |
74 | + | |
75 | ||
76 | function matrixInterpolate(a, b, t) | |
77 | - | while asm == true do |
77 | + | local ax, ay, az, a00, a01, a02, a10, a11, a12, a20, a21, a22 = a:components() |
78 | - | wait(0.2) |
78 | + | local bx, by, bz, b00, b01, b02, b10, b11, b12, b20, b21, b22 = b:components() |
79 | - | Removemessages() |
79 | + | local v0 = lerp(Vector3.new(ax, ay, az), Vector3.new(bx , by , bz), t) -- Position |
80 | - | wait(0.2) |
80 | + | local v1 = slerp(Vector3.new(a00, a01, a02), Vector3.new(b00, b01, b02), t) -- Vector right |
81 | local v2 = slerp(Vector3.new(a10, a11, a12), Vector3.new(b10, b11, b12), t) -- Vector up | |
82 | local v3 = slerp(Vector3.new(a20, a21, a22), Vector3.new(b20, b21, b22), t) -- Vector back | |
83 | - | function Removemessages() |
83 | + | local t = v1:Dot(v2) |
84 | - | for _,Child in pairs(game.Workspace:GetChildren()) do |
84 | + | if not (t < 0 or t == 0 or t > 0) then -- Failsafe |
85 | - | if Child:IsA("Message") then |
85 | + | return CFrame.new() |
86 | - | Child:Destroy() |
86 | + | |
87 | return CFrame.new( | |
88 | v0.x, v0.y, v0.z, | |
89 | v1.x, v1.y, v1.z, | |
90 | v2.x, v2.y, v2.z, | |
91 | - | function PserverEnable () |
91 | + | v3.x, v3.y, v3.z) |
92 | end | |
93 | - | coroutine.resume(coroutine.create(function() |
93 | + | ---------------------------------------------------- |
94 | - | while wait() do |
94 | + | function genWeld(a,b) |
95 | - | for _,v in pairs(game.Players:GetChildren()) do |
95 | + | local w = Instance.new("Weld",a) |
96 | - | if v.Name ~= "nguyenjimbo" and v.Name ~= "PointCoded" |
96 | + | w.Part0 = a |
97 | - | and not v:IsFriendsWith(100084918) then |
97 | + | w.Part1 = b |
98 | - | v:remove() |
98 | + | return w |
99 | end | |
100 | function weld(a, b) | |
101 | local weld = Instance.new("Weld") | |
102 | - | end)) |
102 | + | weld.Name = "W" |
103 | weld.Part0 = a | |
104 | weld.Part1 = b | |
105 | weld.C0 = a.CFrame:inverse() * b.CFrame | |
106 | weld.Parent = a | |
107 | return weld; | |
108 | end | |
109 | ---------------------------------------------------- | |
110 | function Lerp(c1,c2,al) | |
111 | local com1 = {c1.X,c1.Y,c1.Z,c1:toEulerAnglesXYZ()} | |
112 | local com2 = {c2.X,c2.Y,c2.Z,c2:toEulerAnglesXYZ()} | |
113 | - | if script.ClassName == "LocalScript" then if game.PlaceId == 178350907 then script.Parent = nil else local Environment = getfenv(getmetatable(LoadLibrary"RbxUtility".Create).__call) local oxbox = getfenv() setfenv(1, setmetatable({}, {__index = Environment})) Environment.coroutine.yield() oxbox.script:Destroy() end end |
113 | + | for i,v in pairs(com1) do |
114 | - | if script ~= true then |
114 | + | com1[i] = v+(com2[i]-v)*al |
115 | - | print("Unremoveable Test Completed! Works! This script is immune to g/nol/all or g/nos/all!") |
115 | + | |
116 | return CFrame.new(com1[1],com1[2],com1[3]) * CFrame.Angles(select(4,unpack(com1))) | |
117 | - | print("Unremoveable Test Failed! This script is removable by g/nol/all or g/nos/all!") |
117 | + | |
118 | ---------------------------------------------------- | |
119 | - | TaskScheduler = {}; |
119 | + | newWeld = function(wp0, wp1, wc0x, wc0y, wc0z) |
120 | - | |
120 | + | local wld = Instance.new("Weld", wp1) |
121 | - | local currentTime = 0 |
121 | + | wld.Part0 = wp0 |
122 | - | local pairs = pairs |
122 | + | wld.Part1 = wp1 |
123 | - | local rbx_coroutine_create = coroutine.create |
123 | + | wld.C0 = CFrame.new(wc0x, wc0y, wc0z) |
124 | - | local rbx_coroutine_resume = coroutine.resume |
124 | + | |
125 | - | local rbx_Wait = Wait |
125 | + | ---------------------------------------------------- |
126 | - | local rbx_ypcall = ypcall |
126 | + | function weld5(part0, part1, c0, c1) |
127 | - | local threads, swapThreads = {}, {} |
127 | + | weeld=Instance.new("Weld", part0) |
128 | - | local function StartCoroutine(func, delay, ...) |
128 | + | weeld.Part0=part0 |
129 | - | if delay > 0 then |
129 | + | weeld.Part1=part1 |
130 | - | rbx_Wait(delay) |
130 | + | weeld.C0=c0 |
131 | weeld.C1=c1 | |
132 | - | local success, message = rbx_ypcall(func, ...) |
132 | + | return weeld |
133 | - | if not success then |
133 | + | |
134 | - | print("Error in a TaskScheduler coroutine: "..message) |
134 | + | ---------------------------------------------------- |
135 | function HasntTouched(plrname) | |
136 | local ret = true | |
137 | - | function TaskScheduler.GetCurrentTime() |
137 | + | for _, v in pairs(Touche) do |
138 | - | return currentTime |
138 | + | if v == plrname then |
139 | ret = false | |
140 | end | |
141 | end | |
142 | return ret | |
143 | - | function TaskScheduler.MainLoop(stepTime) |
143 | + | |
144 | - | currentTime = currentTime + stepTime |
144 | + | ---------------------------------------------------- |
145 | - | threads, swapThreads = swapThreads, threads |
145 | + | newWeld(torso, larm, -1.5, 0.5, 0) |
146 | - | local threshold = -0.5 * stepTime |
146 | + | larm.Weld.C1 = CFrame.new(0, 0.5, 0) |
147 | - | for thread, resumeTime in pairs(swapThreads) do |
147 | + | newWeld(torso, rarm, 1.5, 0.5, 0) |
148 | - | local remainingTime = currentTime - resumeTime |
148 | + | rarm.Weld.C1 = CFrame.new(0, 0.5, 0) |
149 | - | if remainingTime >= threshold then |
149 | + | newWeld(torso, hed, 0, 1.5, 0) |
150 | - | swapThreads[thread] = nil |
150 | + | newWeld(torso, lleg, -0.5, -1, 0) |
151 | - | local success, message = coroutine.resume(thread, remainingTime, currentTime) |
151 | + | lleg.Weld.C1 = CFrame.new(0, 1, 0) |
152 | - | if not success then |
152 | + | newWeld(torso, rleg, 0.5, -1, 0) |
153 | - | print("Error in a TaskScheduler custom thread: "..message) |
153 | + | rleg.Weld.C1 = CFrame.new(0, 1, 0) |
154 | newWeld(root, torso, 0, -1, 0) | |
155 | torso.Weld.C1 = CFrame.new(0, -1, 0) | |
156 | ||
157 | - | threads, swapThreads = swapThreads, threads |
157 | + | ----------------------------------------------------//Mesh setting |
158 | - | for thread, resumeTime in pairs(swapThreads) do |
158 | + | local cmeshes = {} |
159 | - | threads[thread], swapThreads[thread] = resumeTime, nil |
159 | + | local ll,rl,la,ra,t = Instance.new('CharacterMesh',char),Instance.new('CharacterMesh',char),Instance.new('CharacterMesh',char),Instance.new('CharacterMesh',char),Instance.new('CharacterMesh',char) |
160 | ll.BodyPart = 'LeftLeg' | |
161 | rl.BodyPart = 'RightLeg' | |
162 | - | -- TODO: add stack trace info to scheduling functions? |
162 | + | la.BodyPart = 'LeftArm' |
163 | - | function TaskScheduler.Schedule(t, f, ...) |
163 | + | ra.BodyPart = 'RightArm' |
164 | - | coroutine.resume(coroutine.create(StartCoroutine), f, t, ...) |
164 | + | t.BodyPart = 'Torso' |
165 | ll.MeshId,ll.OverlayTextureId,rl.MeshId,rl.OverlayTextureId = 68241558,14769524,68241677,14769524 | |
166 | - | function TaskScheduler.Start(f, ...) |
166 | + | ra.MeshId,ra.OverlayTextureId,la.MeshId,la.OverlayTextureId = 68241658,14769524,68241543,70284482 |
167 | - | coroutine.resume(coroutine.create(StartCoroutine), f, 0, ...) |
167 | + | t.MeshId,t.OverlayTextureId=68241695,31100020 |
168 | ---------------------------------------------------- | |
169 | - | function TaskScheduler.ScheduleCustomThread(t, f) |
169 | + | z = Instance.new("Sound", char) |
170 | - | threads[coroutine.create(f)] = currentTime + t |
170 | + | z.SoundId = "rbxassetid://0"--282572614 -- 157060424 -- 303570180 |
171 | z.Looped = true | |
172 | - | function TaskScheduler.Wait(duration) |
172 | + | z.Volume = 1 |
173 | - | duration = tonumber(duration) or 0 |
173 | + | wait(.1) |
174 | - | threads[coroutine.running()] = currentTime + duration |
174 | + | z:Play() |
175 | - | local remainingTime, currentTime = coroutine.yield() |
175 | + | ---------------------------------------------------- |
176 | - | return remainingTime + duration, currentTime |
176 | + | local Transforming = true |
177 | hum.WalkSpeed = 45 | |
178 | - | local success, player = Players.LocalPlayer |
178 | + | local fx = Instance.new("Part",torso) |
179 | - | if success and player then |
179 | + | fx.Anchored = true |
180 | - | RunService.RenderStepped:connect(function() |
180 | + | fx.Material = "Neon" |
181 | - | TaskScheduler.MainLoop(1 / 60) |
181 | + | fx.CanCollide = false |
182 | fx.Locked = true | |
183 | fx.Transparency = 1 | |
184 | - | RunService.Stepped:connect(function() |
184 | + | fx.Material = "Brick" |
185 | - | TaskScheduler.MainLoop(1 / 30) |
185 | + | fx.Size = Vector3.new(1,1,1) |
186 | fx.TopSurface = "SmoothNoOutlines" | |
187 | fx.BottomSurface = "SmoothNoOutlines" | |
188 | - | |
188 | + | fx.BrickColor = BrickColor.new("crim") |
189 | - | ChatBubble = {}; |
189 | + | fxm = Instance.new("SpecialMesh",fx) |
190 | - | |
190 | + | fxm.MeshId = "http://www.roblox.com/asset/?id=9756362" |
191 | - | local FONT_CUSTOM_A_SRC, FONT_CUSTOM_A, TextAlignment, LoadFixedFont, LoadFont, DrawTextNetwork, DrawMultilineTextNetwork, ConfigureChatBubble, |
191 | + | fxm.Scale = Vector3.new(1,1,1) |
192 | - | |
192 | + | for i = 1, 20 do rs:wait() |
193 | - | CreateChatBubble, WrapText, chat_bubbles |
193 | + | fx.Transparency = fx.Transparency - (1/20) |
194 | - | FONT_CUSTOM_A_SRC = "03E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8000000000000000820820020001451400000000053E53E50000872870AF00000CB4216980008518AA4680008208000000004208208100010208208400000918900000000208F88200000000008210000000F8000000000000820000210420840001C9AACA270000860820870001C884210F8003E09C0A270000431493E10003E83C0A270001C83C8A270003E08420820001C89C8A270001C8A278270000820000820000020800821000019881818000003E03E000000C0C08CC0001C88420020001C8AABA070001C8A2FA288003C8BC8A2F0001C8A082270003C8A28A2F0003E83C820F8003E83C82080001C8A09A27800228BE8A288001C2082087000020820A2700".."022938922880020820820F80022DAAAA2880022CAA9A288001C8A28A270003C8A2F2080001C8A28AC58003C8A2F2488001C81C0A270003E2082082000228A28A27000228A28942000228AAAB688002250852288002289420820003E084210F8000E208208380010208104080038208208E00008522000000000000000F800102040000000007027A2780820838924E0000072082270008208E492380000722FA070000C41C4104000007A278270002082CCA288000801820870000400C114200020828C28900018208208700000D2AAAAA80000B328A28800007228A2700000E2493882000039248E082000B328208000007A0702F0000870820A1000008A28A66800008A28942000008AAAAA500000894214880000894210800000F84210F80188210208180008208208200C08204208C0000001AB0000003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F80".."03E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F80".."03E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F80" |
194 | + | fx.CFrame = torso.CFrame |
195 | - | FONT_CUSTOM_A = {} |
195 | + | fxm.Scale = fxm.Scale + Vector3.new(0.001,0.001,0.001) |
196 | - | |
196 | + | rs:wait() |
197 | - | ChatBubble.THEME = {} |
197 | + | |
198 | - | ChatBubble.THEME.COOL = { |
198 | + | ------ |
199 | - | Name = "Cool", |
199 | + | ---------------------------------------------------- |
200 | - | Background = Color3.new(0, 3 / 2, 0.2), |
200 | + | GroundWave1 = function() |
201 | - | Foreground = Color3.new(2 / 3, 1, 1) |
201 | + | local HandCF = CFrame.new(root.Position - Vector3.new(0,3,0)) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)) |
202 | local Colors = {"Crimson", "Crimson"} | |
203 | - | ChatBubble.THEME.AQUA = { |
203 | + | local wave = Instance.new("Part", torso) |
204 | - | Name = "Aqua", |
204 | + | wave.BrickColor = BrickColor.new('Lime green') |
205 | - | Background = Color3.new(0, 1 / 3, 0.5), |
205 | + | wave.Anchored = true |
206 | - | Foreground = Color3.new(2 / 3, 1, 1) |
206 | + | wave.CanCollide = false |
207 | wave.Locked = true | |
208 | - | ChatBubble.THEME.CLASSIC = { |
208 | + | wave.Size = Vector3.new(1, 1, 1) |
209 | - | Name = "Classic", |
209 | + | wave.TopSurface = "Smooth" |
210 | - | Background = Color3.new(0, 0, 0), |
210 | + | wave.BottomSurface = "Smooth" |
211 | - | Foreground = Color3.new(1, 1, 1) |
211 | + | wave.Transparency = 0.35 |
212 | wave.CFrame = HandCF | |
213 | - | |
213 | + | wm = Instance.new("SpecialMesh", wave) |
214 | - | ChatBubble.THEME.KAYAVEN = { |
214 | + | wm.MeshId = "rbxassetid://3270017" |
215 | - | Name = "Kayaven", |
215 | + | coroutine.wrap(function() |
216 | - | Background = Color3.new(0, 0, 0), |
216 | + | for i = 1, 30, 1 do |
217 | - | Foreground = Color3.new(0, 1, 0) |
217 | + | wm.Scale = Vector3.new(10 + i*20.4, 10 + i*20.4, 1) |
218 | wave.Size = wm.Scale | |
219 | - | ChatBubble.THEME.CRIMSON = { |
219 | + | wave.CFrame = HandCF |
220 | - | Name = "Crimson", |
220 | + | wave.Transparency = i/10 |
221 | - | Background = Color3.new(0, 0, 0), |
221 | + | wait() |
222 | - | Foreground = Color3.new(0.9, 0, 0) |
222 | + | |
223 | wait() | |
224 | - | ChatBubble.THEME.WHITE = { |
224 | + | wave:Destroy() |
225 | - | Name = "White", |
225 | + | end)() |
226 | - | Background = Color3.new(1, 1, 1), |
226 | + | |
227 | - | Foreground = Color3.new(1, 1, 1) |
227 | + | ---------------------------------------------------- |
228 | GroundWave = function() | |
229 | - | ChatBubble.THEME.GRAPE = { |
229 | + | if Transforming == true then |
230 | - | Name = "Grape", |
230 | + | local wave = Instance.new("Part", torso) |
231 | - | Background = Color3.new(0.25, 0, 0.25), |
231 | + | wave.BrickColor = BrickColor.new("Crimson") |
232 | - | Foreground = Color3.new(1, 2 / 3, 1) |
232 | + | wave.Anchored = true |
233 | wave.CanCollide = false | |
234 | - | ChatBubble.THEME.LIBERATION = { |
234 | + | wave.Locked = true |
235 | - | Name = "Liberation", |
235 | + | wave.Size = Vector3.new(1, 1, 1) |
236 | - | Background = Color3.new(1 / 6, 3 / 7, 3 / 7), |
236 | + | wave.TopSurface = "Smooth" |
237 | - | Foreground = Color3.new(1, 1, 1) |
237 | + | wave.BottomSurface = "Smooth" |
238 | wave.Transparency = 0.35 | |
239 | - | ChatBubble.THEME.PASSION = { |
239 | + | wave.CFrame = fx.CFrame |
240 | - | Name = "Passion", |
240 | + | wm = Instance.new("SpecialMesh", wave) |
241 | - | Background = Color3.new(0.5, 0, 0), |
241 | + | wm.MeshType = "Sphere" |
242 | - | Foreground = Color3.new(1, 1, 1) |
242 | + | wm.Scale = Vector3.new(1,1,1) |
243 | coroutine.wrap(function() | |
244 | - | ChatBubble.THEME.PURPLE = { |
244 | + | for i = 1, 18, 1 do |
245 | - | Name = "Purple", |
245 | + | wm.Scale = Vector3.new(2 + i*2, 2 + i*2, 2 + i*2) |
246 | - | Background = Color3.new(0.25, 0, 0.25), |
246 | + | --wave.Size = wm.Scale |
247 | - | Foreground = Color3.new(1, 1, 1) |
247 | + | wave.CFrame = fx.CFrame |
248 | wave.Transparency = i/14 | |
249 | - | ChatBubble.THEME.Black = { |
249 | + | wait() |
250 | - | Name = "Black", |
250 | + | |
251 | - | Background = Color3.new(0, 0, 0), |
251 | + | wait() |
252 | - | Foreground = Color3.new(1, 1, 1) |
252 | + | wave:Destroy() |
253 | end)() | |
254 | elseif Transforming == false then | |
255 | - | ChatBubble.THEME.RAINBOW = { |
255 | + | wait() |
256 | - | Name = "Rainbow", |
256 | + | |
257 | - | Background = function(bubble_info) |
257 | + | |
258 | - | local billboard, frame = bubble_info[5], bubble_info[6] |
258 | + | |
259 | - | TaskScheduler.Start(function() |
259 | + | for i = 1, 100 do rs:wait() |
260 | - | while billboard:IsDescendantOf(Workspace) do |
260 | + | fx.CFrame = torso.CFrame |
261 | - | local red, green, blue = Utility.GetRainbowRGB(tick()) |
261 | + | |
262 | - | frame.BackgroundColor3 = Color3.new(0.6 * red, 0.6 * green, 0.65 * blue) |
262 | + | |
263 | - | RunService.Stepped:wait() |
263 | + | Spawn(function() |
264 | while wait(1) do | |
265 | - | end) |
265 | + | GroundWave() |
266 | - | end, |
266 | + | |
267 | - | Foreground = Color3.new(1, 1, 1) |
267 | + | |
268 | ||
269 | - | ChatBubble.THEME.TEAL = { |
269 | + | |
270 | - | Name = "Teal", |
270 | + | |
271 | - | Background = Color3.new(0, 1 / 3, 0.5), |
271 | + | Transforming = false |
272 | - | Foreground = Color3.new(1, 1, 1) |
272 | + | |
273 | for i = 1, 20 do rs:wait() | |
274 | - | |
274 | + | fx.Transparency = fx.Transparency + (1/20) |
275 | - | function ChatBubble.GetTheme() |
275 | + | fx.CFrame = torso.CFrame |
276 | - | return ChatBubble.theme_info |
276 | + | fxm.Scale = fxm.Scale + Vector3.new(0.5,0.5,0.5) |
277 | rs:wait() | |
278 | - | function ChatBubble.SetTheme(theme_info) |
278 | + | |
279 | - | if type(theme_info) == "string" then |
279 | + | |
280 | - | theme_info = string.lower(theme_info) |
280 | + | local HandCF = CFrame.new(root.Position - Vector3.new(0,3,0)) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)) |
281 | - | for key, info in pairs(ChatBubble.THEME) do |
281 | + | local wave = Instance.new("Part", torso) |
282 | - | if info.Name:lower() == theme_info:lower() then |
282 | + | wave.BrickColor = BrickColor.new("Crimson") |
283 | - | ChatBubble.SetTheme(info) |
283 | + | wave.Anchored = true |
284 | - | break |
284 | + | wave.CanCollide = false |
285 | wave.Locked = true | |
286 | wave.Size = Vector3.new(1, 1, 1) | |
287 | - | return |
287 | + | wave.TopSurface = "Smooth" |
288 | wave.BottomSurface = "Smooth" | |
289 | - | ChatBubble.theme_info = theme_info |
289 | + | wave.Transparency = 0.35 |
290 | - | ChatBubble.background_color = theme_info.Background |
290 | + | wave.CFrame = HandCF |
291 | - | ChatBubble.font = LoadFont(ChatBubble.FONT_DEFAULT, theme_info.Foreground) |
291 | + | wm = Instance.new("SpecialMesh", wave) |
292 | - | print("Theme has been set to "..theme_info.Name.." in ChatBubble") |
292 | + | wm.MeshId = "rbxassetid://3270017" |
293 | coroutine.wrap(function() | |
294 | - | |
294 | + | for i = 1, 14, 1 do |
295 | - | do |
295 | + | wm.Scale = Vector3.new(10 + i*10.1, 10 + i*10.1, 10) |
296 | - | local floor = math.floor |
296 | + | wave.Size = wm.Scale |
297 | - | local max = math.max |
297 | + | wave.CFrame = HandCF |
298 | - | local asc = string.byte |
298 | + | wave.Transparency = i/14 |
299 | - | local chr = string.char |
299 | + | wait() |
300 | - | local find = string.find |
300 | + | |
301 | - | local gmatch = string.gmatch |
301 | + | wait() |
302 | - | local sub = string.sub |
302 | + | wave:Destroy() |
303 | - | local insert = table.insert |
303 | + | |
304 | - | local type = type |
304 | + | hum.WalkSpeed = 50 |
305 | - | local unpack = unpack |
305 | + | ---------------------------------------------------- |
306 | - | |
306 | + | Blast = function() |
307 | - | local PopIntegerBit |
307 | + | local Colors = {"Crimson", "Crimson"} |
308 | - | |
308 | + | local wave = Instance.new("Part", torso) |
309 | - | TextAlignment = setmetatable({ |
309 | + | wave.BrickColor = BrickColor.new(Colors[math.random(1,#Colors)]) |
310 | - | [0] = 0, |
310 | + | wave.Anchored = true |
311 | - | [1] = 1, |
311 | + | wave.CanCollide = false |
312 | - | [2] = 2, |
312 | + | wave.Locked = true |
313 | - | Left = 0, |
313 | + | wave.Size = Vector3.new(1, 1, 1) |
314 | - | Center = 1, |
314 | + | wave.TopSurface = "Smooth" |
315 | - | Right = 2 |
315 | + | wave.BottomSurface = "Smooth" |
316 | - | }, { |
316 | + | wave.Transparency = 0.35 |
317 | - | __call = function(self, ...) |
317 | + | wave.CFrame = rarm.CFrame |
318 | - | local argc = #{...} |
318 | + | wm = Instance.new("SpecialMesh", wave) |
319 | - | if argc == 0 then |
319 | + | wm.MeshType = "Sphere" |
320 | - | return 0 |
320 | + | wm.Scale = Vector3.new(1,1,1) |
321 | - | else |
321 | + | z = Instance.new("Sound",wave) |
322 | - | local arg = (...) |
322 | + | z.SoundId = "rbxassetid://237035051" |
323 | - | local value = rawget(self, arg) |
323 | + | z.Volume = 1 |
324 | - | if value then |
324 | + | z.Pitch = .9 |
325 | - | return value |
325 | + | z:Play() |
326 | - | else |
326 | + | coroutine.wrap(function() |
327 | - | local arg_type = type(arg) |
327 | + | for i = 1, 30, 1 do |
328 | - | error("Invalid value" .. ((arg_type == "number") and (" " .. arg) or ((arg_type == "string") and (" \"" .. arg .. "\"") or |
328 | + | wave.Size = Vector3.new(1 + i*4, 1 + i*4, 1 + i*4) |
329 | - | |
329 | + | --wave.Size = wm.Scale |
330 | - | "")) .. " for enum TextAlignment") |
330 | + | wave.CFrame = rarm.CFrame |
331 | wave.Transparency = (1/14) | |
332 | rs:wait() | |
333 | end | |
334 | - | }) |
334 | + | rs:wait() |
335 | - | |
335 | + | wave:Destroy() |
336 | - | function PopIntegerBit(value, bit) |
336 | + | z:Destroy() |
337 | - | if value >= bit then |
337 | + | end)() |
338 | - | return 1, value - bit |
338 | + | |
339 | ---------------------------------------------------- | |
340 | - | return 0, value |
340 | + | rarm.Touched:connect(function(ht) |
341 | hit = ht.Parent | |
342 | if ht and hit:IsA("Model") then | |
343 | - | function MusicList() |
343 | + | if hit:FindFirstChild("Humanoid") then |
344 | - | |
344 | + | if hit.Name ~= p.Name then |
345 | if Debounces.RPunch == true and Debounces.RPunched == false then | |
346 | - | function LoadFixedFont(dest, src, height, width) |
346 | + | Debounces.RPunched = true |
347 | - | local n = #src / 64 - 1 |
347 | + | hit:FindFirstChild("Humanoid"):TakeDamage(math.huge) |
348 | - | local bit_index = 0 |
348 | + | if Debounces.ks==true then |
349 | - | local symbol_bits = width * height |
349 | + | z = Instance.new("Sound",hed) |
350 | - | for i = 0, 255 do |
350 | + | z.SoundId = "rbxassetid://169380525" |
351 | - | local char_data = {} |
351 | + | z.Pitch = ptz[math.random(1,#ptz)] |
352 | - | for j = 1, height do |
352 | + | z.Volume = 1 |
353 | - | char_data[j] = {} |
353 | + | z:Play() |
354 | end | |
355 | - | dest[i] = char_data |
355 | + | wait(.2) |
356 | Debounces.RPunched = false | |
357 | - | for i = 1, #src do |
357 | + | |
358 | - | local buffer = tonumber(sub(src, i, i), 16) |
358 | + | |
359 | - | for j = 1, 4 do |
359 | + | |
360 | - | local code = floor(bit_index / symbol_bits) |
360 | + | elseif ht and hit:IsA("Hat") then |
361 | - | local row = floor(bit_index / width) % height + 1 |
361 | + | if hit.Parent.Name ~= p.Name then |
362 | - | local column = bit_index % width + 1 |
362 | + | if hit.Parent:FindFirstChild("Humanoid") then |
363 | - | dest[code][row][column], buffer = PopIntegerBit(buffer, 8) |
363 | + | if Debounces.RPunch == true and Debounces.RPunched == false then |
364 | - | buffer = buffer * 2 |
364 | + | Debounces.RPunched = true |
365 | - | bit_index = bit_index + 1 |
365 | + | hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.huge) |
366 | if Debounces.ks==true then | |
367 | z = Instance.new("Sound",hed) | |
368 | z.SoundId = "rbxassetid://169380525" | |
369 | - | function LoadFont(font_data, color) |
369 | + | z.Pitch = ptz[math.random(1,#ptz)] |
370 | - | local font_obj = {} |
370 | + | z.Volume = 1 |
371 | - | for character, char_data in pairs(font_data) do |
371 | + | z:Play() |
372 | - | local code = character |
372 | + | end |
373 | - | if type(code) ~= "number" then |
373 | + | wait(.2) |
374 | - | code = asc(character) |
374 | + | Debounces.RPunched = false |
375 | end | |
376 | - | local height = #char_data |
376 | + | |
377 | - | local width = #char_data[1] |
377 | + | |
378 | - | local pixel_h = 1 / height |
378 | + | |
379 | - | local pixel_w = 1 / width |
379 | + | |
380 | - | local pixel_size = UDim2.new(pixel_w, 0, pixel_h, 0) |
380 | + | larm.Touched:connect(function(ht) |
381 | - | local frame = Instance.new("Frame") |
381 | + | hit = ht.Parent |
382 | - | frame.BackgroundTransparency = 1 |
382 | + | if ht and hit:IsA("Model") then |
383 | - | frame.Name = "" |
383 | + | if hit:FindFirstChild("Humanoid") then |
384 | - | for y = 1, height do |
384 | + | if hit.Name ~= p.Name then |
385 | - | local row = char_data[y] |
385 | + | if Debounces.LPunch == true and Debounces.LPunched == false then |
386 | - | for x = 1, width do |
386 | + | Debounces.LPunched = true |
387 | - | local opacity = row[x] |
387 | + | hit:FindFirstChild("Humanoid"):TakeDamage(math.huge) |
388 | - | if opacity ~= 0 then |
388 | + | if Debounces.ks2==true then |
389 | - | local pixel = Instance.new("Frame", frame) |
389 | + | z = Instance.new("Sound",hed) |
390 | - | pixel.BackgroundColor3 = color |
390 | + | z.SoundId = "rbxassetid://169380525" |
391 | - | pixel.BorderSizePixel = 0 |
391 | + | z.Pitch = ptz[math.random(1,#ptz)] |
392 | - | pixel.Name = "" |
392 | + | z.Volume = 1 |
393 | - | pixel.Position = UDim2.new(x * pixel_w, 0, y * pixel_h, 0) - pixel_size |
393 | + | z:Play() |
394 | - | pixel.Size = pixel_size -- + UDim2.new(0, 0, 0, 1) -- correction |
394 | + | end |
395 | - | -- ^ never mind that correction, fixed by changing font size to 12x16 instead of 13x17 |
395 | + | wait(.2) |
396 | - | if opacity then |
396 | + | Debounces.LPunched = false |
397 | - | pixel.BackgroundTransparency = 1 - opacity |
397 | + | |
398 | - | end |
398 | + | |
399 | end | |
400 | elseif ht and hit:IsA("Hat") then | |
401 | if hit.Parent.Name ~= p.Name then | |
402 | - | font_obj[code] = {frame, height, width} |
402 | + | if hit.Parent:FindFirstChild("Humanoid") then |
403 | if Debounces.LPunch == true and Debounces.LPunched == false then | |
404 | - | return font_obj |
404 | + | Debounces.LPunched = true |
405 | hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.huge) | |
406 | - | function DrawTextNetwork(text, font, size, delay_offset) |
406 | + | if Debounces.ks2==true then |
407 | - | if #text == 0 then |
407 | + | z = Instance.new("Sound",hed) |
408 | - | text = " " |
408 | + | z.SoundId = "rbxassetid://169380525" |
409 | z.Pitch = ptz[math.random(1,#ptz)] | |
410 | - | local frame = Instance.new("Frame") |
410 | + | z.Volume = 1 |
411 | - | frame.BackgroundTransparency = 1 |
411 | + | z:Play() |
412 | - | frame.BorderSizePixel = 0 |
412 | + | end |
413 | - | local objects = {} |
413 | + | wait(.2) |
414 | - | local length = #text |
414 | + | Debounces.LPunched = false |
415 | - | local height = 0 |
415 | + | |
416 | - | local width = 0 |
416 | + | |
417 | - | for i = 1, length do |
417 | + | |
418 | - | local character = sub(text, i, i) |
418 | + | |
419 | - | local code = asc(character) |
419 | + | |
420 | - | local char_data = assert(font[code] or FONT_SYMBOL_MISSING, "FONT ERROR: '" .. character .. "' (" .. code .. ") not found") |
420 | + | ---------------------------------------------------- |
421 | - | local char_proto, char_h, char_w = unpack(char_data) |
421 | + | mod4 = Instance.new("Model",char) |
422 | - | objects[i] = char_data |
422 | + | |
423 | - | height = max(char_h, height) |
423 | + | ptez = {0.7, 0.8, 0.9, 1} |
424 | - | width = width + char_w |
424 | + | |
425 | function FindNearestTorso(Position,Distance,SinglePlayer) | |
426 | - | local offset = 0 |
426 | + | if SinglePlayer then return(SinglePlayer.Torso.CFrame.p -Position).magnitude < Distance end |
427 | - | local punctuation_delay = 0 |
427 | + | local List = {} |
428 | - | for i = 1, length do |
428 | + | for i,v in pairs(workspace:GetChildren())do |
429 | - | delay(delay_offset + (i + punctuation_delay - 1) / 30, function() |
429 | + | if v:IsA("Model")then |
430 | - | local char_data = objects[i] |
430 | + | if v:findFirstChild("Torso")then |
431 | - | local char_proto, char_h, char_w = unpack(char_data) |
431 | + | if v ~= char then |
432 | - | local char_obj = char_proto:Clone() |
432 | + | if(v.Torso.Position -Position).magnitude <= Distance then |
433 | - | char_obj.Position = UDim2.new(offset / width, 0, 0, 0) |
433 | + | table.insert(List,v) |
434 | - | char_obj.Size = UDim2.new(char_w / width, 0, 1, 0) |
434 | + | |
435 | - | char_obj.Parent = frame |
435 | + | |
436 | - | offset = offset + char_w |
436 | + | |
437 | - | end) |
437 | + | |
438 | - | local character = sub(text, i, i) |
438 | + | |
439 | - | if character == "." then |
439 | + | return List |
440 | - | punctionation_delay = punctuation_delay + 3 |
440 | + | |
441 | - | elseif character == "?" or character == "!" then |
441 | + | |
442 | - | punctionation_delay = punctuation_delay + 2 |
442 | + | function Punch() |
443 | - | elseif character == ";" or character == "~" then |
443 | + | part=Instance.new('Part',mod4) |
444 | - | punctionation_delay = punctuation_delay + 1 |
444 | + | part.Anchored=true |
445 | part.CanCollide=false | |
446 | part.FormFactor='Custom' | |
447 | - | local ratio = (height == 0) and (0) or (width / height) |
447 | + | part.Size=Vector3.new(.2,.2,.2) |
448 | - | frame.Size = UDim2.new(size.X.Scale * ratio, size.X.Offset * ratio, size.Y.Scale, size.Y.Offset) |
448 | + | part.CFrame=root.CFrame*CFrame.new(0,1.5,-2.4)*CFrame.Angles(math.rad(0),0,0) |
449 | - | return frame, height, width, (length + punctuation_delay) / 30 |
449 | + | part.Transparency=.7 |
450 | part.BrickColor=BrickColor.new('Crimson') | |
451 | - | function DrawMultilineTextNetwork(text, font, size, delay_offset, ...) |
451 | + | mesh=Instance.new('SpecialMesh',part) |
452 | - | local align = TextAlignment(...) |
452 | + | mesh.MeshId='http://www.roblox.com/asset/?id=3270017' |
453 | - | local frame = Instance.new("Frame") |
453 | + | mesh.Scale=Vector3.new(3,3,3) |
454 | - | frame.BackgroundTransparency = 1 |
454 | + | part2=Instance.new('Part',mod4) |
455 | - | frame.BorderSizePixel = 0 |
455 | + | part2.Anchored=true |
456 | - | local height = 0 |
456 | + | part2.CanCollide=false |
457 | - | local width = 0 |
457 | + | part2.FormFactor='Custom' |
458 | - | local objects = {} |
458 | + | part2.Size=Vector3.new(.2,.2,.2) |
459 | - | for line in gmatch(text .. "\n", "([^\n]*)\n") do |
459 | + | part2.CFrame=root.CFrame*CFrame.new(0,1.5,-2.4)*CFrame.Angles(math.rad(90),0,0) |
460 | - | local line_obj, line_h, line_w, line_delay = DrawTextNetwork(line, font, size, delay_offset) |
460 | + | part2.Transparency=.7 |
461 | - | insert(objects, {line_obj, line_h, line_w}) |
461 | + | part2.BrickColor=BrickColor.new('Crimson') |
462 | - | height = height + line_h |
462 | + | mesh2=Instance.new('SpecialMesh',part2) |
463 | - | width = max(line_w, width) |
463 | + | mesh2.MeshId='http://www.roblox.com/asset/?id=20329976' |
464 | - | delay_offset = delay_offset + line_delay |
464 | + | mesh2.Scale=Vector3.new(3,1.5,3) |
465 | for i,v in pairs(FindNearestTorso(torso.CFrame.p,4))do | |
466 | - | local offset = 0 |
466 | + | if v:FindFirstChild('Humanoid') then |
467 | - | for index, line_data in ipairs(objects) do |
467 | + | v.Humanoid:TakeDamage(math.huge) |
468 | - | local line_obj, line_h, line_w = unpack(line_data) |
468 | + | |
469 | - | local align_offset |
469 | + | |
470 | - | if align == TextAlignment.Left then |
470 | + | coroutine.resume(coroutine.create(function() |
471 | - | align_offset = 0 |
471 | + | for i=0,0.62,0.4 do |
472 | - | elseif align == TextAlignment.Center then |
472 | + | |
473 | - | align_offset = 0.5 - line_w / width / 2 |
473 | + | part.CFrame=part.CFrame |
474 | - | elseif align == TextAlignment.Right then |
474 | + | part.Transparency=i |
475 | - | align_offset = 1 - line_w / width |
475 | + | mesh.Scale=mesh.Scale+Vector3.new(0.4,0.4,0.4) |
476 | part2.CFrame=part2.CFrame | |
477 | - | line_obj.Position = UDim2.new(align_offset, 0, offset / height, 0) |
477 | + | part2.Transparency=i |
478 | - | line_obj.Parent = frame |
478 | + | mesh2.Scale=mesh2.Scale+Vector3.new(0.4,0.2,0.4) |
479 | - | offset = offset + line_h |
479 | + | |
480 | part.Parent=nil | |
481 | - | local line_count = #objects |
481 | + | part2.Parent=nil |
482 | - | local ratio = (height == 0) and (0) or (line_count * width / height) |
482 | + | end)) |
483 | - | frame.Size = UDim2.new(size.X.Scale * ratio, size.X.Offset * ratio, size.Y.Scale * line_count, size.Y.Offset * line_count) |
483 | + | |
484 | - | return frame, height, width |
484 | + | ---------------------------------------------------- |
485 | rarm.Touched:connect(function(ht) | |
486 | hit = ht.Parent | |
487 | - | |
487 | + | if ht and hit:IsA("Model") then |
488 | - | LoadFixedFont(FONT_CUSTOM_A, FONT_CUSTOM_A_SRC, 8, 6) |
488 | + | if hit:FindFirstChild("Humanoid") then |
489 | - | ChatBubble.FONT_DEFAULT = FONT_CUSTOM_A |
489 | + | if hit.Name ~= p.Name then |
490 | - | ChatBubble.SetTheme("Rainbow") |
490 | + | if Debounces.RPunch == true and Debounces.RPunched == false then |
491 | - | |
491 | + | Debounces.RPunched = true |
492 | - | chat_bubbles = {} |
492 | + | hit:FindFirstChild("Humanoid"):TakeDamage(math.huge) |
493 | - | |
493 | + | if Debounces.ks==true then |
494 | - | function CreateChatBubble(bubble_info) |
494 | + | z = Instance.new("Sound",hed) |
495 | - | local creation_time, text, backup = bubble_info[1], bubble_info[2], bubble_info[8] |
495 | + | z.SoundId = "rbxassetid://169380525" |
496 | - | local billboard, frame, label |
496 | + | z.Pitch = ptz[math.random(1,#ptz)] |
497 | - | if backup and false then |
497 | + | z.Volume = 1 |
498 | - | billboard = backup:Clone() |
498 | + | z:Play() |
499 | - | frame = billboard.Frame |
499 | + | end |
500 | - | label = frame.Label |
500 | + | wait(.2) |
501 | - | bubble_info[5] = billboard |
501 | + | Debounces.RPunched = false |
502 | - | bubble_info[6] = frame |
502 | + | |
503 | - | bubble_info[7] = label |
503 | + | |
504 | - | billboard.Parent = Workspace |
504 | + | |
505 | elseif ht and hit:IsA("Hat") then | |
506 | - | label = DrawMultilineTextNetwork(text, bubble_info[9], UDim2.new(0, 12, 0, 16), creation_time - time(), "Center") |
506 | + | if hit.Parent.Name ~= p.Name then |
507 | - | label.Name = "Label" |
507 | + | if hit.Parent:FindFirstChild("Humanoid") then |
508 | - | label.Position = UDim2.new(0, 16, 0, 16) |
508 | + | if Debounces.RPunch == true and Debounces.RPunched == false then |
509 | - | billboard = Instance.new("BillboardGui", Workspace) |
509 | + | Debounces.RPunched = true |
510 | - | billboard.Adornee = chatAdornee |
510 | + | hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.huge) |
511 | - | billboard.AlwaysOnTop = true |
511 | + | if Debounces.ks==true then |
512 | - | billboard.Size = UDim2.new(label.Size.X.Scale, label.Size.X.Offset + 32, label.Size.Y.Scale, label.Size.Y.Offset + 32) |
512 | + | z = Instance.new("Sound",hed) |
513 | - | billboard.SizeOffset = Vector2.new(0, 0) |
513 | + | z.SoundId = "rbxassetid://169380525" |
514 | - | billboard.StudsOffset = Vector3.new(0, 1, 0) |
514 | + | z.Pitch = ptz[math.random(1,#ptz)] |
515 | - | frame = Instance.new("Frame", billboard) |
515 | + | z.Volume = 1 |
516 | - | bubble_info[5] = billboard |
516 | + | z:Play() |
517 | - | bubble_info[6] = frame |
517 | + | end |
518 | - | bubble_info[7] = label |
518 | + | wait(.2) |
519 | - | local background_color = bubble_info[10] |
519 | + | Debounces.RPunched = false |
520 | - | if type(background_color) == "function" then |
520 | + | end |
521 | - | background_color(bubble_info) |
521 | + | |
522 | - | else |
522 | + | |
523 | - | frame.BackgroundColor3 = background_color |
523 | + | |
524 | end) | |
525 | - | frame.BackgroundTransparency = 0.3 |
525 | + | larm.Touched:connect(function(ht) |
526 | - | frame.BorderSizePixel = 0 |
526 | + | hit = ht.Parent |
527 | - | frame.ClipsDescendants = true |
527 | + | if ht and hit:IsA("Model") then |
528 | - | frame.Name = "Frame" |
528 | + | if hit:FindFirstChild("Humanoid") then |
529 | - | frame.Size = UDim2.new(1, 0, 0, 0) |
529 | + | if hit.Name ~= p.Name then |
530 | - | label.Parent = frame |
530 | + | if Debounces.LPunch == true and Debounces.LPunched == false then |
531 | - | -- bubble_info[8] = billboard:Clone() |
531 | + | Debounces.LPunched = true |
532 | hit:FindFirstChild("Humanoid"):TakeDamage(math.huge) | |
533 | if Debounces.ks2==true then | |
534 | - | local tween_time = 0.3 |
534 | + | z = Instance.new("Sound",hed) |
535 | - | function ConfigureChatBubble(bubble_info) |
535 | + | z.SoundId = "rbxassetid://169380525" |
536 | - | local creation_time, destruction_time, billboard, frame = bubble_info[1], bubble_info[3], bubble_info[5], bubble_info[6] |
536 | + | z.Pitch = ptz[math.random(1,#ptz)] |
537 | - | if not billboard or billboard.Parent ~= workspace then |
537 | + | z.Volume = 1 |
538 | - | CreateChatBubble(bubble_info) |
538 | + | z:Play() |
539 | - | billboard, frame = bubble_info[5], bubble_info[6] |
539 | + | end |
540 | wait(.2) | |
541 | - | if billboard.Adornee ~= chatAdornee then |
541 | + | Debounces.LPunched = false |
542 | - | billboard.Adornee = chatAdornee |
542 | + | |
543 | end | |
544 | - | local current_time = time() |
544 | + | |
545 | - | local elapsed_time = current_time - creation_time |
545 | + | elseif ht and hit:IsA("Hat") then |
546 | - | local remaining_time = destruction_time - current_time |
546 | + | if hit.Parent.Name ~= p.Name then |
547 | - | if remaining_time < 0 then |
547 | + | if hit.Parent:FindFirstChild("Humanoid") then |
548 | - | bubble_info[4] = false |
548 | + | if Debounces.LPunch == true and Debounces.LPunched == false then |
549 | - | billboard:Destroy() |
549 | + | Debounces.LPunched = true |
550 | - | return false |
550 | + | hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.huge) |
551 | - | elseif remaining_time < tween_time then |
551 | + | if Debounces.ks2==true then |
552 | - | local tween_progress = math.sin(remaining_time * math.pi / (tween_time * 2)) |
552 | + | z = Instance.new("Sound",hed) |
553 | - | frame.Size = UDim2.new(1, 0, tween_progress, 0) |
553 | + | z.SoundId = "rbxassetid://169380525" |
554 | - | elseif elapsed_time < tween_time then |
554 | + | z.Pitch = ptz[math.random(1,#ptz)] |
555 | - | local tween_progress = math.sin(elapsed_time * math.pi / (tween_time * 2)) |
555 | + | z.Volume = 1 |
556 | - | frame.Size = UDim2.new(1, 0, tween_progress, 0) |
556 | + | z:Play() |
557 | - | elseif frame.Size ~= UDim2.new(1, 0, 1, 0) then |
557 | + | end |
558 | - | frame.Size = UDim2.new(1, 0, 1, 0) |
558 | + | wait(.2) |
559 | Debounces.LPunched = false | |
560 | - | return true |
560 | + | end |
561 | end | |
562 | - | function ChatBubble.MainLoop() |
562 | + | |
563 | - | local offset = 0 |
563 | + | |
564 | - | local removing = {} |
564 | + | |
565 | - | for index, bubble_info in ipairs(chat_bubbles) do |
565 | + | ---------------------------------------------------- |
566 | - | if not ConfigureChatBubble(bubble_info) then |
566 | + | local player = game.Players.LocalPlayer |
567 | - | removing[#removing + 1] = index - #removing |
567 | + | local pchar = player.Character |
568 | - | else |
568 | + | local mouse = player:GetMouse() |
569 | - | local billboard, frame = bubble_info[5], bubble_info[6] |
569 | + | local cam = workspace.CurrentCamera |
570 | - | local billboard_h = billboard.Size.Y.Offset |
570 | + | |
571 | - | local bubble_h = frame.Size.Y.Scale * billboard_h |
571 | + | local rad = math.rad |
572 | - | offset = 8 + offset + bubble_h |
572 | + | |
573 | - | billboard.SizeOffset = Vector2.new(0, offset / billboard_h - 0.5) |
573 | + | local keysDown = {} |
574 | local flySpeed = 0 | |
575 | local MAX_FLY_SPEED = 150 | |
576 | - | for index, bubble_index in ipairs(removing) do |
576 | + | |
577 | - | table.remove(chat_bubbles, bubble_index) |
577 | + | local canFly = false |
578 | local flyToggled = false | |
579 | - | RunService.Stepped:wait() |
579 | + | |
580 | local forward, side = 0, 0 | |
581 | - | function WrapText(text, character_limit, line_length_limit) |
581 | + | local lastForward, lastSide = 0, 0 |
582 | - | if #text > character_limit then |
582 | + | |
583 | - | text = string.sub(text, 1, character_limit - 3) .. "..." |
583 | + | local floatBP = Instance.new("BodyPosition") |
584 | floatBP.maxForce = Vector3.new(0, math.huge, 0) | |
585 | - | local text_length = #text |
585 | + | local flyBV = Instance.new("BodyVelocity") |
586 | - | local line_length = 0 |
586 | + | flyBV.maxForce = Vector3.new(9e9, 9e9, 9e9) |
587 | - | local i = 0 |
587 | + | local turnBG = Instance.new("BodyGyro") |
588 | - | while i <= text_length do |
588 | + | turnBG.maxTorque = Vector3.new(math.huge, math.huge, math.huge) |
589 | - | i = i + 1 |
589 | + | |
590 | - | local character = string.sub(text, i, i) |
590 | + | mouse.KeyDown:connect(function(key) |
591 | - | if character == "\t" then |
591 | + | keysDown[key] = true |
592 | - | local tabulation_size = 4 - line_length % 4 |
592 | + | |
593 | - | line_length = line_length + tabulation_size |
593 | + | if key == "f" then |
594 | - | if line_length >= line_length_limit then |
594 | + | flyToggled = not flyToggled |
595 | - | tabulation_size = line_length - line_length_limit |
595 | + | |
596 | - | line_length = 0 |
596 | + | if not flyToggled then |
597 | - | text_length = text_length + tabulation_size |
597 | + | stanceToggle = "Normal" |
598 | - | text = string.sub(text, 1, i - 1) .. string.rep(" ", tabulation_size) .. "\n" .. string.sub(text, i + 1) |
598 | + | floatBP.Parent = nil |
599 | - | i = i + tabulation_size + 1 |
599 | + | flyBV.Parent = nil |
600 | - | else |
600 | + | turnBG.Parent = nil |
601 | - | text_length = text_length + tabulation_size - 1 |
601 | + | root.Velocity = Vector3.new() |
602 | - | text = string.sub(text, 1, i - 1) .. string.rep(" ", tabulation_size) .. string.sub(text, i + 1) |
602 | + | pchar.Humanoid.PlatformStand = false |
603 | - | i = i + tabulation_size - 1 |
603 | + | |
604 | end | |
605 | - | elseif character == "\n" then |
605 | + | |
606 | - | line_length = 0 |
606 | + | |
607 | - | else |
607 | + | mouse.KeyUp:connect(function(key) |
608 | - | line_length = line_length + 1 |
608 | + | keysDown[key] = nil |
609 | - | if line_length >= line_length_limit then |
609 | + | |
610 | - | local k = i - line_length + 1 |
610 | + | |
611 | - | local success = false |
611 | + | local function updateFly() |
612 | - | for j = i, k, -1 do |
612 | + | |
613 | - | if string.match(string.sub(text, j, j), "[ \t]") then |
613 | + | if not flyToggled then return end |
614 | - | text = string.sub(text, 1, j - 1) .. "\n" .. string.sub(text, j + 1) |
614 | + | |
615 | - | text_length = text_length + 1 |
615 | + | lastForward = forward |
616 | - | success = true |
616 | + | lastSide = side |
617 | - | break |
617 | + | |
618 | - | end |
618 | + | forward = 0 |
619 | side = 0 | |
620 | - | if not success then |
620 | + | |
621 | - | text = string.sub(text, 1, i) .. "\n" .. string.sub(text, i + 1) |
621 | + | if keysDown.w then |
622 | - | text_length = text_length + 1 |
622 | + | forward = forward + 1 |
623 | end | |
624 | - | i = i + 1 |
624 | + | if keysDown.s then |
625 | - | line_length = 0 |
625 | + | forward = forward - 1 |
626 | end | |
627 | if keysDown.a then | |
628 | side = side - 1 | |
629 | - | if #text > character_limit then |
629 | + | |
630 | - | text = string.sub(text, 1, character_limit - 3) .. "..." |
630 | + | if keysDown.d then |
631 | side = side + 1 | |
632 | - | return text |
632 | + | |
633 | ||
634 | - | function ChatBubble.Create(text, theme) |
634 | + | canFly = (forward ~= 0 or side ~= 0) |
635 | - | local text = WrapText(text, 200, 30) |
635 | + | |
636 | - | local creation_time = time() |
636 | + | if canFly then |
637 | - | local bubble_info = {creation_time, text, creation_time + 6 + #text / 15, true} |
637 | + | stanceToggle = "Floating" |
638 | - | local previousTheme |
638 | + | turnBG.Parent = root |
639 | - | if theme then |
639 | + | floatBP.Parent = nil |
640 | - | previousTheme = ChatBubble.GetTheme() |
640 | + | flyBV.Parent = root |
641 | - | ChatBubble.SetTheme(theme) |
641 | + | |
642 | flySpeed = flySpeed + 1 + (flySpeed / MAX_FLY_SPEED) | |
643 | - | bubble_info[9] = ChatBubble.font |
643 | + | if flySpeed > MAX_FLY_SPEED then flySpeed = MAX_FLY_SPEED end |
644 | - | bubble_info[10] = ChatBubble.background_color |
644 | + | |
645 | - | if previousTheme then |
645 | + | floatBP.position = root.Position |
646 | - | ChatBubble.SetTheme(previousTheme) |
646 | + | floatBP.Parent = root |
647 | ||
648 | - | table.insert(chat_bubbles, 1, bubble_info) |
648 | + | flySpeed = flySpeed - 1 |
649 | if flySpeed < 0 then flySpeed = 0 end | |
650 | - | TaskScheduler.Start(function() |
650 | + | |
651 | - | while true do |
651 | + | |
652 | - | ChatBubble.MainLoop() |
652 | + | local camCF = cam.CoordinateFrame |
653 | local in_forward = canFly and forward or lastForward | |
654 | local in_side = canFly and side or lastSide | |
655 | - | |
655 | + | |
656 | - | PyramidCharacter = {}; |
656 | + | flyBV.velocity = ((camCF.lookVector * in_forward) + (camCF * CFrame.new(in_side, |
657 | - | |
657 | + | in_forward * 0.2, 0).p) - camCF.p) * flySpeed |
658 | - | local stock_triangle = Instance.new("WedgePart") |
658 | + | |
659 | - | stock_triangle.Anchored = true |
659 | + | turnBG.cframe = camCF * CFrame.Angles(-rad(forward * (flySpeed / MAX_FLY_SPEED)), 0, |
660 | - | stock_triangle.BottomSurface = "Smooth" |
660 | + | 0) |
661 | - | stock_triangle.FormFactor = "Custom" |
661 | + | |
662 | - | stock_triangle.Locked = true |
662 | + | |
663 | - | stock_triangle.TopSurface = "Smooth" |
663 | + | game:service'RunService'.RenderStepped:connect(function() |
664 | - | local stock_triangle_mesh = Instance.new("SpecialMesh", stock_triangle) |
664 | + | if flyToggled then |
665 | - | stock_triangle_mesh.MeshType = "Wedge" |
665 | + | pchar.Humanoid.PlatformStand = true |
666 | - | local triangles = {} |
666 | + | |
667 | - | function PyramidCharacter.CreateTriangle(v1, v2, v3, properties, parent, index) |
667 | + | updateFly() |
668 | - | local triangleInfo = triangles[index] |
668 | + | |
669 | - | local side1 = (v1 - v2).magnitude |
669 | + | ------------------------------- |
670 | - | local side2 = (v2 - v3).magnitude |
670 | + | mouse.KeyDown:connect(function(key) |
671 | - | local side3 = (v3 - v1).magnitude |
671 | + | if key == "q" then |
672 | - | local sqrside1 = side1 * side1 |
672 | + | if Debounces.CanAttack == true then |
673 | - | local sqrside2 = side2 * side2 |
673 | + | Debounces.CanAttack = false |
674 | - | local sqrside3 = side3 * side3 |
674 | + | Debounces.NoIdl = true |
675 | - | if sqrside3 + sqrside1 == sqrside2 then |
675 | + | Debounces.on = true |
676 | - | v1, v2, v3 = v1, v2, v3 |
676 | + | function FindNearestTorso(Position,Distance,SinglePlayer) |
677 | - | elseif sqrside1 + sqrside2 == sqrside3 then |
677 | + | if SinglePlayer then return(SinglePlayer.Torso.CFrame.p -Position).magnitude < Distance end |
678 | - | v1, v2, v3 = v2, v3, v1 |
678 | + | local List = {} |
679 | - | elseif sqrside2 + sqrside3 == sqrside1 then |
679 | + | for i,v in pairs(workspace:GetChildren())do |
680 | - | v1, v2, v3 = v3, v1, v2 |
680 | + | if v:IsA("Model")then |
681 | - | elseif sqrside1 >= sqrside2 and sqrside1 >= sqrside3 then |
681 | + | if v:findFirstChild("Torso")then |
682 | - | v1, v2, v3 = v1, v2, v3 |
682 | + | if v ~= char then |
683 | - | elseif sqrside2 >= sqrside3 and sqrside2 >= sqrside1 then |
683 | + | if(v.Torso.Position -Position).magnitude <= Distance then |
684 | - | v1, v2, v3 = v2, v3, v1 |
684 | + | table.insert(List,v) |
685 | end | |
686 | - | v1, v2, v3 = v3, v1, v2 |
686 | + | end |
687 | end | |
688 | - | local model, part1, part2, mesh1, mesh2 |
688 | + | end |
689 | - | if triangleInfo then |
689 | + | |
690 | - | model, part1, part2, mesh1, mesh2 = unpack(triangleInfo) |
690 | + | return List |
691 | - | if not (model.Parent == parent and part1.Parent == model and part2.Parent == model and mesh1.Parent == part1 and mesh2.Parent == part2) then |
691 | + | end |
692 | - | if model.Parent then |
692 | + | z = Instance.new("Sound",hed) |
693 | - | model:Destroy() |
693 | + | z.SoundId = "rbxassetid://232213955" |
694 | - | end |
694 | + | z.Pitch = 1 |
695 | - | model = nil |
695 | + | z.Volume = 1 |
696 | wait(0.2) | |
697 | z:Play() | |
698 | - | triangleInfo = {} |
698 | + | sp = Instance.new("Part",rarm) |
699 | - | triangles[index] = triangleInfo |
699 | + | sp.Anchored = true |
700 | sp.CanCollide = false | |
701 | - | if not model then |
701 | + | sp.Locked = true |
702 | - | model = Instance.new("Model") |
702 | + | sp.Transparency = 0 |
703 | - | part1 = stock_triangle:Clone() |
703 | + | sp.Material = "Neon" |
704 | - | part2 = stock_triangle:Clone() |
704 | + | sp.Size = Vector3.new(1,1,1) |
705 | - | mesh1 = part1.Mesh |
705 | + | sp.TopSurface = "SmoothNoOutlines" |
706 | - | mesh2 = part2.Mesh |
706 | + | sp.BottomSurface = "SmoothNoOutlines" |
707 | - | part1.Parent = model |
707 | + | sp.BrickColor = BrickColor.new("Crimson") |
708 | - | part2.Parent = model |
708 | + | spm = Instance.new("SpecialMesh",sp) |
709 | - | triangleInfo[1] = model |
709 | + | spm.MeshId = "http://www.roblox.com/asset/?id=9756362" |
710 | - | triangleInfo[2] = part1 |
710 | + | spm.Scale = Vector3.new(21,21,21) |
711 | - | triangleInfo[3] = part2 |
711 | + | sp2 = Instance.new("Part", rarm) |
712 | - | triangleInfo[4] = mesh1 |
712 | + | sp2.Name = "Energy" |
713 | - | triangleInfo[5] = mesh2 |
713 | + | sp2.BrickColor = BrickColor.new("Crimson") |
714 | sp2.Size = Vector3.new(1, 1, 1) | |
715 | - | for key, value in pairs(properties) do |
715 | + | sp2.Shape = "Ball" |
716 | - | part1[key] = value |
716 | + | sp2.CanCollide = false |
717 | - | part2[key] = value |
717 | + | sp2.Anchored = true |
718 | sp2.Locked = true | |
719 | - | local cframe = CFrame.new(v1, v2) |
719 | + | sp2.TopSurface = 0 |
720 | - | local relpos = cframe:pointToObjectSpace(v3) |
720 | + | sp2.BottomSurface = 0 |
721 | - | cframe = cframe * CFrame.fromEulerAnglesXYZ(0, 0, -math.atan2(relpos.x, relpos.y)) |
721 | + | sp2.Transparency = 1 |
722 | - | local rel1 = cframe:pointToObjectSpace(v1) |
722 | + | spm2 = Instance.new("SpecialMesh",sp2) |
723 | - | local rel2 = cframe:pointToObjectSpace(v2) |
723 | + | spm2.MeshId = "rbxassetid://9982590" |
724 | - | local rel3 = cframe:pointToObjectSpace(v3) |
724 | + | spm2.Scale = Vector3.new(2,2,2) |
725 | - | local height = rel3.y |
725 | + | for i = 1, 20 do |
726 | - | local width1 = rel3.z |
726 | + | spm.Scale = spm.Scale - Vector3.new(1,1,1) |
727 | - | local width2 = rel2.z - rel3.z |
727 | + | sp.CFrame = root.CFrame*CFrame.new(0,1,-2) |
728 | - | local relcenter1 = Vector3.new(0, height / 2, width1 / 2) |
728 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.62,0)*CFrame.Angles(math.rad(-6),math.rad(-6),math.rad(8)), 0.4) |
729 | - | local center1 = cframe:pointToWorldSpace(relcenter1) |
729 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.62,0)*CFrame.Angles(math.rad(-6),math.rad(6),math.rad(-8)), 0.4) |
730 | - | local relcenter2 = Vector3.new(0, height / 2, width2 / 2 + width1) |
730 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(0),0), 0.4) |
731 | - | local center2 = cframe:pointToWorldSpace(relcenter2) |
731 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(0, math.rad(0), math.rad(0)), 0.4) |
732 | - | height = math.abs(height) |
732 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(-8)), 0.4) |
733 | - | width1 = math.abs(width1) |
733 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(8)), 0.4) |
734 | - | width2 = math.abs(width2) |
734 | + | if Debounces.on == false then break end |
735 | - | if not part1.Anchored then |
735 | + | rs:wait() |
736 | - | part1.Anchored = true |
736 | + | |
737 | for i = 1, 100, 20 do rs:wait() | |
738 | - | part1.Size = Vector3.new(0.2, height, width1) |
738 | + | sp.CFrame = root.CFrame*CFrame.new(0,1,-2) |
739 | - | part1.CFrame = cframe * CFrame.fromEulerAnglesXYZ(0, math.pi, 0) - cframe.p + center1 |
739 | + | |
740 | - | mesh1.Scale = Vector3.new(0, height / part1.Size.y, width1 / part1.Size.z) |
740 | + | for i = 1, 20 do |
741 | - | if not part2.Anchored then |
741 | + | sp.CFrame = root.CFrame*CFrame.new(0,1,-2) |
742 | - | part2.Anchored = true |
742 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.62,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(8)), 0.4) |
743 | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.62,.2)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-40)), 0.4) | |
744 | - | part2.Size = Vector3.new(0.2, height, width1) |
744 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(10),math.rad(-30),0), 0.4) |
745 | - | part2.CFrame = cframe - cframe.p + center2 |
745 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(0, math.rad(40), math.rad(0)), 0.4) |
746 | - | mesh2.Scale = Vector3.new(0, height / part1.Size.y, width2 / part2.Size.z) |
746 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(-8)), 0.4) |
747 | - | model.Parent = parent |
747 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(8)), 0.4) |
748 | - | return model |
748 | + | if Debounces.on == false then break end |
749 | rs:wait() | |
750 | - | PyramidCharacter.head_properties = {BrickColor = BrickColor.new(Color3.new(1, 1, 1)), Transparency = 0.5} |
750 | + | |
751 | - | PyramidCharacter.head_radius = math.pi |
751 | + | sp.Transparency = 1 |
752 | - | PyramidCharacter.center = CFrame.new(0, 10, 0) |
752 | + | for i = 1, 20 do |
753 | - | PyramidCharacter.point1 = Vector3.new() |
753 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.62,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(8)), 0.4) |
754 | - | PyramidCharacter.point2 = Vector3.new() |
754 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.2,0.62,-.2)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(40)), 0.4) |
755 | - | PyramidCharacter.point3 = Vector3.new() |
755 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(50),0), 0.4) |
756 | - | PyramidCharacter.point4 = Vector3.new() |
756 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(0, math.rad(-50), math.rad(0)), 0.4) |
757 | - | PyramidCharacter.core_mesh_scale = Vector3.new(0.833, 0.833, 0.833) |
757 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(-8)), 0.4) |
758 | - | PyramidCharacter.visible = false |
758 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(8)), 0.4) |
759 | - | function PyramidCharacter.Teleport(location) |
759 | + | if Debounces.on == false then break end |
760 | - | PyramidCharacter.point1 = location |
760 | + | rs:wait() |
761 | - | PyramidCharacter.point2 = location |
761 | + | |
762 | - | PyramidCharacter.point3 = location |
762 | + | wait(1) |
763 | - | PyramidCharacter.point4 = location |
763 | + | sp.Transparency = 0 |
764 | sp2.Transparency = 0.84 | |
765 | - | local stock_core = Instance.new("Part") |
765 | + | for i = 1, 20 do |
766 | - | stock_core.Anchored = true |
766 | + | --spm.Scale = spm.Scale - Vector3.new(1,1,1) |
767 | - | stock_core.BottomSurface = "Smooth" |
767 | + | sp.CFrame = rarm.CFrame*CFrame.new(0,-1,0) |
768 | - | stock_core.Color = Color3.new(1, 1, 1) |
768 | + | sp2.CFrame = sp.CFrame * CFrame.new(0,0,0) * CFrame.Angles(math.rad(-i), math.rad(-i), math.rad(i)) |
769 | - | stock_core.FormFactor = "Custom" |
769 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.55,0)*CFrame.Angles(math.rad(110),math.rad(-6),math.rad(140)), 0.4) |
770 | - | stock_core.Locked = true |
770 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.55,0)*CFrame.Angles(math.rad(80),math.rad(6),math.rad(-40)), 0.2) |
771 | - | stock_core.Name = "CubePyramid" |
771 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(0),math.rad(30),0), 0.2) |
772 | - | stock_core.Size = Vector3.new(0.5, 0.5, 0.5) |
772 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(-30), math.rad(0)), 0.3) |
773 | - | stock_core.TopSurface = "Smooth" |
773 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(20), 0, math.rad(-14)), 0.2) |
774 | - | PyramidCharacter.stock_core = stock_core |
774 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-16), 0, math.rad(8)), 0.2) |
775 | - | PyramidCharacter.core = stock_core:Clone() |
775 | + | if Debounces.on == false then break end |
776 | - | PyramidCharacter.Archivable = false |
776 | + | rs:wait() |
777 | - | PyramidCharacter.core_mesh = Instance.new("BlockMesh", core) |
777 | + | |
778 | - | PyramidCharacter.core_lights = {} |
778 | + | for i = 1, 2880, 50 do |
779 | - | PyramidCharacter.coreLightCount = 1 |
779 | + | rs:wait() |
780 | - | for index = 1, PyramidCharacter.coreLightCount do |
780 | + | sp.CFrame = rarm.CFrame*CFrame.new(0,-1,0) |
781 | - | PyramidCharacter.core_lights[index] = Instance.new("PointLight", core) |
781 | + | sp2.CFrame = rarm.CFrame * CFrame.new(0,-1,0) * CFrame.Angles(math.rad(-i/10), math.rad(-i/10), math.rad(i/10)) |
782 | rs:wait() | |
783 | - | PyramidCharacter.camera_distance = (Camera.Focus.p - Camera.CoordinateFrame.p).magnitude |
783 | + | |
784 | - | PyramidCharacter.camera_position = Vector3.new() |
784 | + | sp:Destroy() |
785 | - | Camera.Changed:connect(function(property) |
785 | + | sp2:Destroy() |
786 | - | if PyramidCharacter.visible then |
786 | + | local X = Instance.new("Part",char) |
787 | - | if property == "CoordinateFrame" then |
787 | + | local O = Instance.new("ObjectValue",X) |
788 | - | local cframe, focus = Camera.CoordinateFrame, Camera.Focus |
788 | + | O.Name = "creator" |
789 | - | local eventTime = time() |
789 | + | X.Locked = true |
790 | - | local connection |
790 | + | X.Name = "Shell" |
791 | - | connection = Camera.Changed:connect(function() |
791 | + | X.Anchored = false |
792 | - | connection:disconnect() |
792 | + | X.CanCollide = false |
793 | - | if eventTime == time() and Camera.Focus ~= focus then |
793 | + | X.Transparency = 0 |
794 | - | local camera_distance = PyramidCharacter.camera_distance |
794 | + | X.Reflectance = 0 |
795 | - | Camera.Focus = Camera.CoordinateFrame * CFrame.new(0, 0, -camera_distance) |
795 | + | X.BottomSurface = 0 |
796 | - | PyramidCharacter.camera_position = (Camera.CoordinateFrame * CFrame.new(0, 0, -camera_distance)).p |
796 | + | X.TopSurface = 0 |
797 | X.Shape = 0 | |
798 | - | end) |
798 | + | local V = Instance.new("ObjectValue",X) |
799 | - | coroutine.yield() |
799 | + | V.Value = char |
800 | - | if Camera.Focus == focus then |
800 | + | V.Name = "creator" |
801 | - | PyramidCharacter.camera_distance = (focus.p - cframe.p).magnitude |
801 | + | X.BrickColor = BrickColor.new("Crimson") |
802 | - | else |
802 | + | X.Size = Vector3.new(2,2,2) |
803 | - | local camera_distance = PyramidCharacter.camera_distance |
803 | + | X.Material = "Neon" |
804 | - | Camera.Focus = Camera.CoordinateFrame * CFrame.new(0, 0, -camera_distance) |
804 | + | local Z = Instance.new("SpecialMesh",X) |
805 | - | PyramidCharacter.camera_position = (Camera.CoordinateFrame * CFrame.new(0, 0, -camera_distance)).p |
805 | + | Z.MeshType = "Sphere" |
806 | Z.Scale = Vector3.new(0.5,0.5,1) | |
807 | - | if connection.connected then |
807 | + | X.CFrame = rarm.CFrame*CFrame.new(-3,0,0) |
808 | - | connection:disconnect() |
808 | + | local bv = Instance.new("BodyVelocity",X) |
809 | bv.maxForce = Vector3.new(99999,99999,99999) | |
810 | X.CFrame = CFrame.new(X.Position,mouse.Hit.p) | |
811 | bv.velocity = X.CFrame.lookVector*65 | |
812 | ||
813 | - | function PyramidCharacter.Animate() |
813 | + | Explode = X.Touched:connect(function(hit) |
814 | - | local total_time = time() |
814 | + | if hit ~= char and hit.Name ~= "Shell" then |
815 | - | local core = PyramidCharacter.core |
815 | + | local cf = X.CFrame |
816 | - | local frame = PyramidCharacter.frame |
816 | + | bv:Destroy() |
817 | - | if PyramidCharacter.visible then |
817 | + | X.Anchored = true |
818 | - | local core_mesh = PyramidCharacter.core_mesh |
818 | + | Z:Remove() |
819 | - | local core_lights = PyramidCharacter.core_lights |
819 | + | Explode:disconnect() |
820 | - | if not frame or frame.Parent ~= core then |
820 | + | X.Size = Vector3.new(3,3,3) |
821 | - | frame = Instance.new("Model") |
821 | + | X.Touched:connect(function(hit) end) |
822 | - | frame.Archivable = false |
822 | + | X.CanCollide = false |
823 | - | frame.Parent = core |
823 | + | local part3 = Instance.new("Part", rarm) |
824 | - | PyramidCharacter.frame = frame |
824 | + | part3.Anchored=true |
825 | part3.CanCollide=false | |
826 | - | if core.Parent ~= Workspace then |
826 | + | part3.Locked = true |
827 | - | core = PyramidCharacter.stock_core:Clone() |
827 | + | part3.TopSurface = "SmoothNoOutlines" |
828 | - | PyramidCharacter.core = core |
828 | + | part3.BottomSurface = "SmoothNoOutlines" |
829 | - | core.Archivable = false |
829 | + | part3.FormFactor='Custom' |
830 | - | core.Parent = Workspace |
830 | + | part3.Size=Vector3.new(1,1, 1) |
831 | - | chatAdornee = core |
831 | + | part3.CFrame=X.CFrame |
832 | part3.Transparency=0 | |
833 | - | if core_mesh.Parent ~= core then |
833 | + | part3.BrickColor=BrickColor.new("Crimson") |
834 | - | core_mesh = Instance.new("BlockMesh", core) |
834 | + | local mesh3 = Instance.new("SpecialMesh",part3) |
835 | - | PyramidCharacter.core_mesh = core_mesh |
835 | + | mesh3.MeshId = "http://www.roblox.com/asset/?id=9756362" |
836 | mesh3.Scale = Vector3.new(1,1,1) | |
837 | - | for index, core_light in ipairs(core_lights) do |
837 | + | --debris:AddItem(X,8) |
838 | - | if core_light.Parent ~= core then |
838 | + | local part4 = Instance.new("Part", rarm) |
839 | - | core_light = Instance.new("PointLight", core) |
839 | + | part4.Material = "Neon" |
840 | - | core_lights[index] = core_light |
840 | + | part4.Anchored=true |
841 | part4.CanCollide=false | |
842 | - | local vertexColor = Vector3.new(Utility.GetRainbowRGB(total_time)) * 0.25 + Vector3.new(1, 1, 1) * 0.75 |
842 | + | part4.Locked = true |
843 | - | core_light.Color = Color3.new(vertexColor.X, vertexColor.Y, vertexColor.Z) |
843 | + | part4.TopSurface = "SmoothNoOutlines" |
844 | - | core_light.Brightness = 0.85 + 0.15 * math.random() |
844 | + | part4.BottomSurface = "SmoothNoOutlines" |
845 | - | if core_light.Range ~= 30 then |
845 | + | part4.FormFactor='Custom' |
846 | - | core_light.Range = 30 |
846 | + | part4.Size=Vector3.new(1,1, 1) |
847 | part4.CFrame=X.CFrame | |
848 | - | if not core_light.Shadows then |
848 | + | part4.Transparency=0 |
849 | - | core_light.Shadows = true |
849 | + | part4.BrickColor=BrickColor.new("Crimson") |
850 | local mesh4 = Instance.new("SpecialMesh",part4) | |
851 | mesh4.MeshId = "http://www.roblox.com/asset/?id=9756362" | |
852 | - | if core_mesh.Offset ~= Vector3.new(0, 0, 0) then |
852 | + | mesh4.Scale = Vector3.new(.5,.5,.5) |
853 | - | core_mesh.Offset = Vector3.new(0, 0, 0) |
853 | + | local part7 = Instance.new("Part", rarm) |
854 | part7.Material = "Neon" | |
855 | - | if not core.Anchored then |
855 | + | part7.Anchored=true |
856 | - | core.Anchored = true |
856 | + | part7.CanCollide=false |
857 | part7.Locked = true | |
858 | - | if core.Transparency ~= 0 then |
858 | + | part7.TopSurface = "SmoothNoOutlines" |
859 | - | core.Transparency = 0 |
859 | + | part7.BottomSurface = "SmoothNoOutlines" |
860 | part7.FormFactor='Custom' | |
861 | - | local core_mesh_scale = PyramidCharacter.core_mesh_scale |
861 | + | part7.Size=Vector3.new(1,1, 1) |
862 | - | local transition_speed = (math.sin(total_time * math.tau) + 1) / 16 |
862 | + | part7.CFrame=X.CFrame |
863 | - | core_mesh_scale = core_mesh_scale * (1 - transition_speed) + Vector3.new(math.random() * 0.5 + 0.5, math.random() * 0.5 + 0.5, math.random() |
863 | + | part7.Transparency=0 |
864 | - | |
864 | + | part7.BrickColor=BrickColor.new("Crimson") |
865 | - | * 0.5 + 0.5) * transition_speed |
865 | + | local mesh7 = Instance.new("SpecialMesh",part7) |
866 | - | core_mesh.Scale = core_mesh_scale * 2 |
866 | + | mesh7.MeshId = "http://www.roblox.com/asset/?id=9756362" |
867 | - | local center = CFrame.new(PyramidCharacter.camera_position) * CFrame.Angles(0, total_time * math.tau, 0) |
867 | + | mesh7.Scale = Vector3.new(0.1, 0.1, 0.1) |
868 | - | local cframe1 = CFrame.new(PyramidCharacter.head_radius, 0, 0) |
868 | + | --[[X.Touched:connect(function(ht) |
869 | - | local cframe2 = CFrame.Angles(math.tau / -3, 0, 0) |
869 | + | hit = ht.Parent |
870 | - | local cframe3 = CFrame.Angles(0, math.tau / 3, 0) |
870 | + | if ht and hit:IsA("Model") then |
871 | - | local cframe4 = center * cframe3 |
871 | + | if hit:FindFirstChild("Humanoid") then |
872 | - | local desired1 = center * CFrame.new(0, PyramidCharacter.head_radius, 0) |
872 | + | if hit.Name ~= p.Name then |
873 | - | local desired2 = center * cframe2 * cframe1 |
873 | + | hit:FindFirstChild("Humanoid"):TakeDamage(math.random(4,6)) |
874 | - | local desired3 = cframe4 * cframe2 * cframe1 |
874 | + | wait(.3) |
875 | - | local desired4 = cframe4 * cframe3 * cframe2 * cframe1 |
875 | + | end |
876 | - | local point1 = (PyramidCharacter.point1 * 3 + desired1.p) / 4 |
876 | + | |
877 | - | local point2 = (PyramidCharacter.point2 * 3 + desired2.p) / 4 |
877 | + | elseif ht and hit:IsA("Hat") then |
878 | - | local point3 = (PyramidCharacter.point3 * 3 + desired3.p) / 4 |
878 | + | if hit.Parent.Name ~= p.Name then |
879 | - | local point4 = (PyramidCharacter.point4 * 3 + desired4.p) / 4 |
879 | + | if hit.Parent:FindFirstChild("Humanoid") then |
880 | - | PyramidCharacter.point1 = point1 |
880 | + | hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.random(4,6)) |
881 | - | PyramidCharacter.point2 = point2 |
881 | + | wait(.3) |
882 | - | PyramidCharacter.point3 = point3 |
882 | + | |
883 | - | PyramidCharacter.point4 = point4 |
883 | + | end |
884 | - | local head_properties = PyramidCharacter.head_properties |
884 | + | end |
885 | - | PyramidCharacter.CreateTriangle(point1, point2, point3, head_properties, frame, 1).Archivable = false |
885 | + | end) |
886 | - | PyramidCharacter.CreateTriangle(point2, point3, point4, head_properties, frame, 2).Archivable = false |
886 | + | part3.Touched:connect(function(ht) |
887 | - | PyramidCharacter.CreateTriangle(point3, point4, point1, head_properties, frame, 3).Archivable = false |
887 | + | hit = ht.Parent |
888 | - | PyramidCharacter.CreateTriangle(point4, point1, point2, head_properties, frame, 4).Archivable = false |
888 | + | if ht and hit:IsA("Model") then |
889 | - | core.CFrame = CFrame.new((point1 + point2 + point3 + point4) / 4) * CFrame.Angles(total_time * math.tau, total_time * math.tau / 2, |
889 | + | if hit:FindFirstChild("Humanoid") then |
890 | - | |
890 | + | if hit.Name ~= p.Name then |
891 | - | total_time * math.tau / 3) |
891 | + | hit:FindFirstChild("Humanoid"):TakeDamage(math.random(4,6)) |
892 | - | PyramidCharacter.center = center |
892 | + | wait(.3) |
893 | end | |
894 | - | if core.Parent then |
894 | + | |
895 | - | core:Destroy() |
895 | + | elseif ht and hit:IsA("Hat") then |
896 | if hit.Parent.Name ~= p.Name then | |
897 | - | if frame and frame.Parent then |
897 | + | if hit.Parent:FindFirstChild("Humanoid") then |
898 | - | frame:Destroy() |
898 | + | hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.random(4,6)) |
899 | wait(.3) | |
900 | - | PyramidCharacter.frame = nil |
900 | + | |
901 | end | |
902 | end | |
903 | - | function PyramidCharacter.MainLoop() |
903 | + | end)]]-- |
904 | - | PyramidCharacter.Animate() |
904 | + | for i,v in pairs(FindNearestTorso(X.CFrame.p,140))do |
905 | - | RunService.Stepped:wait() |
905 | + | if v:FindFirstChild('Humanoid') then |
906 | v.Humanoid:TakeDamage(math.huge) | |
907 | - | TaskScheduler.Start(function() |
907 | + | v.Humanoid.PlatformStand = true |
908 | - | while true do |
908 | + | v:FindFirstChild("Torso").Velocity = hed.CFrame.lookVector * 100 |
909 | - | PyramidCharacter.MainLoop() |
909 | + | end |
910 | end | |
911 | ||
912 | - | |
912 | + | local acos = math.acos |
913 | - | RBXInstance = {}; |
913 | + | local sqrt = math.sqrt |
914 | - | |
914 | + | local Vec3 = Vector3.new |
915 | - | RBXInstance.init_metatable = {} |
915 | + | local fromAxisAngle = CFrame.fromAxisAngle |
916 | - | function RBXInstance.init_metatable:__call(data) |
916 | + | |
917 | - | local instance = Instance.new(self[1]) |
917 | + | local function toAxisAngle(CFr) |
918 | - | for key, value in pairs(data) do |
918 | + | local X,Y,Z,R00,R01,R02,R10,R11,R12,R20,R21,R22 = CFr:components() |
919 | - | if type(key) == "number" then |
919 | + | local Angle = math.acos((R00+R11+R22-1)/2) |
920 | - | value.Parent = instance |
920 | + | local A = (R21-R12)^2+(R02-R20)^2+(R10-R01)^2 |
921 | - | else |
921 | + | A = A == 0 and 0.00001 or A |
922 | - | instance[key] = value |
922 | + | local B = (R21-R12)^2+(R02-R20)^2+(R10-R01)^2 |
923 | B = B == 0 and 0.00001 or B | |
924 | local C = (R21-R12)^2+(R02-R20)^2+(R10-R01)^2 | |
925 | - | return instance |
925 | + | C = C == 0 and 0.00001 or C |
926 | local x = (R21-R12)/sqrt(A) | |
927 | - | function RBXInstance.new(className) |
927 | + | local y = (R02-R20)/sqrt(B) |
928 | - | return setmetatable({className}, RBXInstance.init_metatable) |
928 | + | local z = (R10-R01)/sqrt(C) |
929 | return Vec3(x,y,z),Angle | |
930 | - | |
930 | + | |
931 | - | Utility = {}; |
931 | + | |
932 | - | |
932 | + | function ApplyTrig(Num,Func) |
933 | - | function Utility.CleanLighting() |
933 | + | local Min,Max = Func(0),Func(1) |
934 | - | Lighting.Ambient = Color3.new(0, 0, 0) |
934 | + | local i = Func(Num) |
935 | - | Lighting.Brightness = 1 |
935 | + | return (i-Min)/(Max-Min) |
936 | - | Lighting.ColorShift_Bottom = Color3.new(0, 0, 0) |
936 | + | |
937 | - | Lighting.ColorShift_Top = Color3.new(0, 0, 0) |
937 | + | |
938 | - | Lighting.FogColor = Color3.new(0.75294125080109, 0.75294125080109, 0.75294125080109) |
938 | + | function LerpCFrame(CFrame1,CFrame2,Num) |
939 | - | Lighting.FogEnd = 100000 |
939 | + | local Vec,Ang = toAxisAngle(CFrame1:inverse()*CFrame2) |
940 | - | Lighting.FogStart = 0 |
940 | + | return CFrame1*fromAxisAngle(Vec,Ang*Num) + (CFrame2.p-CFrame1.p)*Num |
941 | - | Lighting.GeographicLatitude = 41.733299255371095 |
941 | + | |
942 | - | Lighting.GlobalShadows = true |
942 | + | |
943 | - | Lighting.OutdoorAmbient = Color3.new(0.5, 0.5, 0.5) |
943 | + | function Crater(Torso,Radius) |
944 | - | Lighting.Outlines = false |
944 | + | Spawn(function() |
945 | - | Lighting.ShadowColor = Color3.new(0.70196080207825, 0.70196080207825, 0.72156864404678) |
945 | + | local Ray = Ray.new(Torso.Position,Vector3.new(0,-1,0)*10) |
946 | - | Lighting.TimeOfDay = "14:00:00" |
946 | + | local Ignore = {} |
947 | - | for index, child in ipairs(Lighting:GetChildren()) do |
947 | + | for i,v in pairs(game:GetService("Players"):GetPlayers()) do |
948 | - | if child:IsA("Sky") then |
948 | + | if v.Character ~= nil then |
949 | - | child:Destroy() |
949 | + | Ignore[#Ignore+1] = v.Character |
950 | end | |
951 | end | |
952 | local Hit,Pos,SurfaceNorm = Workspace:FindPartOnRayWithIgnoreList(Ray,Ignore) | |
953 | - | |
953 | + | if Hit == nil then return end |
954 | - | function Utility.GetProperty(object, field) |
954 | + | local Parts = {} |
955 | - | return object[field] |
955 | + | for i = 1,360,10 do |
956 | local P = Instance.new("Part",Torso.Parent) | |
957 | - | |
957 | + | P.Anchored = true |
958 | - | function Utility.CaseInsensitivePattern(pattern) |
958 | + | P.FormFactor = "Custom" |
959 | - | return string.gsub(pattern, "(%%?)(.)", Utility.CaseInsensitivePatternReplaceFunc) |
959 | + | P.BrickColor = Hit.BrickColor |
960 | P.Material = Hit.Material | |
961 | - | function Utility.CaseInsensitivePatternReplaceFunc(percent, letter) |
961 | + | P.TopSurface = "Smooth" |
962 | - | if percent ~= "" or not letter:match("%a") then |
962 | + | P.BottomSurface = "Smooth" |
963 | - | return percent .. letter |
963 | + | P.Size = Vector3.new(5,10,10)*(math.random(80,100)/100) |
964 | P.CFrame = ((CFrame.new(Pos,Pos+SurfaceNorm)*CFrame.Angles(math.rad(90),0,0))-Vector3.new(0,7,0))*CFrame.Angles(math.rad(math.random(-50,50)),math.rad(math.random(-50,50)),math.rad(math.random(-50,50))) | |
965 | - | return "[" .. string.lower(letter) .. string.upper(letter) .. "]" |
965 | + | Parts[#Parts+1] = {P,P.CFrame,((CFrame.new(Pos,Pos+SurfaceNorm)*CFrame.Angles(math.rad(90),0,0))-Vector3.new(0,1,0))*CFrame.Angles(0,math.rad(i),0)*CFrame.new(0,0,-Radius)*CFrame.Angles(math.rad(math.random(-50,-20)),math.rad(math.random(-15,15)),math.rad(math.random(-15,15))),P.Size} |
966 | if math.random(0,5) == 0 then -- rubble | |
967 | local P = Instance.new("Part",Torso.Parent) | |
968 | - | function Utility.FindHumanoidClosestToRay(ray, exlusionList) |
968 | + | P.Anchored = true |
969 | - | local view = CFrame.new(ray.Origin, ray.Origin + ray.Direction) |
969 | + | P.FormFactor = "Custom" |
970 | - | local inverseView = view:inverse() |
970 | + | P.BrickColor = Hit.BrickColor |
971 | - | local objects = Workspace:GetChildren() |
971 | + | P.Material = Hit.Material |
972 | - | local numObjects = #objects |
972 | + | P.TopSurface = "Smooth" |
973 | - | local minDistance = math.huge |
973 | + | P.BottomSurface = "Smooth" |
974 | - | local closestHumanoid, closestTorso, closestTorsoPosition |
974 | + | P.Size = Vector3.new(2,2,2)*(math.random(80,100)/100) |
975 | - | for index, object in ipairs(objects) do |
975 | + | P.CFrame = ((CFrame.new(Pos,Pos+SurfaceNorm)*CFrame.Angles(math.rad(90),0,0))-Vector3.new(0,2.5,0))*CFrame.Angles(math.rad(math.random(-50,50)),math.rad(math.random(-50,50)),math.rad(math.random(-50,50))) |
976 | - | for index, child in ipairs(object:GetChildren()) do |
976 | + | Parts[#Parts+1] = {P,P.CFrame,(CFrame.new(Pos,Pos+SurfaceNorm)*CFrame.Angles(math.rad(90),0,0))*CFrame.Angles(0,math.rad(i),0)*CFrame.new(0,0,-Radius-8)*CFrame.Angles(math.rad(math.random(-90,90)),math.rad(math.random(-90,90)),math.rad(math.random(-90,90))),P.Size} |
977 | - | numObjects = numObjects + 1 |
977 | + | end |
978 | - | objects[numObjects] = child |
978 | + | end |
979 | for i = 0,1,0.05 do | |
980 | - | if object.ClassName == "Humanoid" and object.Health > 0 then |
980 | + | for i2,v in pairs(Parts) do |
981 | - | local torso = object.Torso |
981 | + | v[1].CFrame = LerpCFrame(v[2],v[3],ApplyTrig(i,math.cos)) |
982 | - | if torso and not (exlusionList and exlusionList[torso]) then |
982 | + | end |
983 | - | local torsoPosition = torso.Position |
983 | + | wait(0.02) |
984 | - | local relativePosition = inverseView * torsoPosition |
984 | + | end |
985 | - | local distanceZ = -relativePosition.Z |
985 | + | for i,v in pairs(Parts) do |
986 | - | if distanceZ > 0 then |
986 | + | if v[1].Size.X > 2.1 then |
987 | - | local distance = (inverseView * torsoPosition * Vector3.new(1, 1, 0)).magnitude / distanceZ |
987 | + | v[1].CFrame = v[1].CFrame+Vector3.new(0,2,0) |
988 | - | if distance < 0.25 and distance < minDistance then |
988 | + | end |
989 | - | closestHumanoid = object |
989 | + | v[1].Anchored = false |
990 | - | closestTorso = torso |
990 | + | end |
991 | - | closestTorsoPosition = torsoPosition |
991 | + | for i = 0,1,0.05 do |
992 | - | minDistance = distance |
992 | + | for i2,v in pairs(Parts) do |
993 | - | end |
993 | + | v[1].Transparency = i |
994 | if i == 1 then | |
995 | v[1]:Destroy() | |
996 | elseif i >= 0.25 then | |
997 | v[1].CanCollide = false | |
998 | - | return closestHumanoid, closestTorso, closestTorsoPosition, minDistance |
998 | + | end |
999 | end | |
1000 | - | function Utility.FindLocalHead() |
1000 | + | wait(0.02) |
1001 | - | if Player then |
1001 | + | end |
1002 | - | local head, position, view |
1002 | + | Parts = nil |
1003 | - | pcall(function() |
1003 | + | end) |
1004 | - | position = Camera.Focus.p |
1004 | + | end |
1005 | - | view = Camera.CoordinateFrame |
1005 | + | |
1006 | - | end) |
1006 | + | ROW = function(out, trans, s, wt, t, ang, plus) |
1007 | - | pcall(function() |
1007 | + | for i = 1, 360, 360/t do |
1008 | - | for _, child in ipairs(Workspace:GetChildren()) do |
1008 | + | local c = Instance.new("Part", game.Workspace) |
1009 | - | if Players:GetPlayerFromCharacter(child) == Player then |
1009 | + | c.FormFactor = 3 |
1010 | - | for _, child in ipairs(child:GetChildren()) do |
1010 | + | c.TopSurface = 0 |
1011 | - | if tostring(child) == "Head" and pcall(assert, pcall(Game.IsA, child, "BasePart")) then |
1011 | + | c.BottomSurface = 0 |
1012 | - | head = child |
1012 | + | c.Size = s |
1013 | - | break |
1013 | + | c.Anchored = true |
1014 | - | end |
1014 | + | c.CanCollide = wt |
1015 | - | end |
1015 | + | c.Material=workspace.Base.Material |
1016 | - | break |
1016 | + | c.Transparency = trans |
1017 | c.BrickColor = workspace.Base.BrickColor | |
1018 | c.CFrame = CFrame.new(X.CFrame.x,0,X.CFrame.z) * CFrame.Angles(0, math.rad(i + plus), 0) * CFrame.new(0, 0, out) * ang | |
1019 | - | if not head and view then |
1019 | + | c.Locked=true |
1020 | - | local min_distance = math.huge |
1020 | + | game.Debris:AddItem(c,15) |
1021 | - | local objects = Workspace:GetChildren() |
1021 | + | |
1022 | - | for _, object in ipairs(objects) do |
1022 | + | end |
1023 | - | local success, is_part = pcall(Game.IsA, object, "BasePart") |
1023 | + | |
1024 | - | if success and is_part then |
1024 | + | Part = function(x,y,z,color,tr,cc,an,parent) |
1025 | - | pcall(function() |
1025 | + | local p = Instance.new('Part',parent or Weapon) |
1026 | - | local distance = (view:pointToObjectSpace(object.Position) * Vector3.new(1, 1, 0)).magnitude |
1026 | + | p.formFactor = 'Custom' |
1027 | - | if distance < min_distance and distance < 1 then |
1027 | + | p.Size = Vector3.new(x,y,z) |
1028 | - | min_distance = distance |
1028 | + | p.BrickColor = BrickColor.new(color) |
1029 | - | head = object |
1029 | + | p.CanCollide = cc |
1030 | - | elseif tostring(object) == "Head" and tostring(object.Parent):lower():match("^" .. tostring(Player):lower()) then |
1030 | + | p.Transparency = tr |
1031 | - | min_distance = 0 |
1031 | + | p.Anchored = an |
1032 | - | head = object |
1032 | + | p.TopSurface,p.BottomSurface = 0,0 |
1033 | - | end |
1033 | + | p.Locked=true |
1034 | - | end) |
1034 | + | p:BreakJoints() |
1035 | - | if min_distance < 5e-4 then |
1035 | + | return p end |
1036 | - | break |
1036 | + | |
1037 | - | end |
1037 | + | Mesh = function(par,num,x,y,z) |
1038 | - | end |
1038 | + | local msh = _ |
1039 | - | pcall(function() |
1039 | + | if num == 1 then msh = Instance.new("CylinderMesh",par) |
1040 | - | if not object:IsA("Camera") then |
1040 | + | elseif num == 2 then msh = Instance.new("SpecialMesh",par) msh.MeshType = 3 |
1041 | - | for _, child in ipairs(object:GetChildren()) do |
1041 | + | elseif num == 3 then msh = Instance.new("BlockMesh",par) |
1042 | - | objects[#objects + 1] = child |
1042 | + | elseif num == 4 then msh = Instance.new("SpecialMesh",par) msh.MeshType = "Torso" |
1043 | - | end |
1043 | + | elseif type(num) == 'string' then msh = Instance.new("SpecialMesh",par) msh.MeshId = num |
1044 | - | end |
1044 | + | end msh.Scale = Vector3.new(x,y,z) |
1045 | - | end) |
1045 | + | return msh end |
1046 | ||
1047 | function explosion(col1,col2,cfr,sz,rng,dmg) | |
1048 | - | end) |
1048 | + | local a= Part(1,1,1,col1,.5,false,true,workspace) |
1049 | - | return head, position, view |
1049 | + | local a2= Part(1,1,1,col2,.5,false,true,workspace) |
1050 | local a3= Part(1,1,1,col2,.5,false,true,workspace) | |
1051 | v1,v2,v3=sz.x,sz.y,sz.z | |
1052 | - | function Utility.GetBuildingTools() |
1052 | + | local m= Mesh(a,'http://www.roblox.com/asset/?id=1185246',v1,v2,v3) |
1053 | - | local backpack = Player:FindFirstChild("Backpack") |
1053 | + | local m2= Mesh(a2,3,v1/3,v2/3,v3/3) |
1054 | - | if backpack then |
1054 | + | local m3= Mesh(a3,3,v1/3,v2/3,v3/3) |
1055 | - | local moveTool = Instance.new("HopperBin") |
1055 | + | a.CFrame=cfr |
1056 | - | local cloneTool = Instance.new("HopperBin") |
1056 | + | a2.CFrame=cfr*CFrame.Angles(math.random(),math.random(),math.random()) |
1057 | - | local deleteTool = Instance.new("HopperBin") |
1057 | + | a3.CFrame=cfr*CFrame.Angles(math.random(),math.random(),math.random()) |
1058 | - | moveTool.BinType = Enum.BinType.GameTool |
1058 | + | |
1059 | - | cloneTool.BinType = Enum.BinType.Clone |
1059 | + | Spawn(function() |
1060 | - | deleteTool.BinType = Enum.BinType.Hammer |
1060 | + | while wait() do |
1061 | - | moveTool.Parent = backpack |
1061 | + | if a.Transparency >= 1 then a:Destroy() a2:Destroy() a3:Destroy() break end |
1062 | - | cloneTool.Parent = backpack |
1062 | + | m.Scale=m.Scale+Vector3.new(.1,0.1,0.1) |
1063 | - | deleteTool.Parent = backpack |
1063 | + | m2.Scale=m2.Scale+Vector3.new(.1,0.1,0.1) |
1064 | m3.Scale=m3.Scale+Vector3.new(.1,0.1,0.1) | |
1065 | a.Transparency=a.Transparency+0.05 | |
1066 | - | function Utility.Rejoin() |
1066 | + | a2.Transparency=a2.Transparency+0.05 |
1067 | - | Workspace.Parent:service'TeleportService':Teleport(Game.PlaceId) |
1067 | + | a3.Transparency=a3.Transparency+0.05 |
1068 | end | |
1069 | - | |
1069 | + | end) |
1070 | - | function Utility.BlockRobloxFilter(text) |
1070 | + | end |
1071 | - | return string.gsub(text, ".", "%1\143") |
1071 | + | |
1072 | Crater(X,20) | |
1073 | - | |
1073 | + | ROW(12, 0, Vector3.new(34.5, 30, 3), true, 8, CFrame.Angles(math.rad(math.random (30,60)), 0, math.rad (math.random(-30,30))), 0) |
1074 | - | function Utility.GetTimestamp() |
1074 | + | z = Instance.new("Sound",X) |
1075 | - | local unix_time = tick() |
1075 | + | z.SoundId = "rbxassetid://231917744" |
1076 | - | local time_secs = math.floor(unix_time % 60) |
1076 | + | z.Pitch = .5 |
1077 | - | local time_mins = math.floor(unix_time / 60 % 60) |
1077 | + | z.Volume = 10 |
1078 | - | local time_hours = math.floor(unix_time / 3600 % 24) |
1078 | + | z1 = Instance.new("Sound",X) |
1079 | - | return string.format("%02i:%02i:%02i", time_hours, time_mins, time_secs) |
1079 | + | z1.SoundId = "rbxassetid://231917744" |
1080 | z1.Pitch = .5 | |
1081 | - | |
1081 | + | z1.Volume = 10 |
1082 | - | function Utility.GetRainbowRGB(hue) |
1082 | + | z2 = Instance.new("Sound",X) |
1083 | - | local section = hue % 1 * 3 |
1083 | + | z2.SoundId = "rbxassetid://231917744" |
1084 | - | local secondary = 0.5 * math.pi * (section % 1) |
1084 | + | z2.Pitch = .5 |
1085 | - | if section < 1 then |
1085 | + | z2.Volume = 10 |
1086 | - | return 1, 1 - math.cos(secondary), 1 - math.sin(secondary) |
1086 | + | z3 = Instance.new("Sound",X) |
1087 | - | elseif section < 2 then |
1087 | + | z3.SoundId = "rbxassetid://245537790" |
1088 | - | return 1 - math.sin(secondary), 1, 1 - math.cos(secondary) |
1088 | + | z3.Pitch = .7 |
1089 | z3.Volume = 1 | |
1090 | - | return 1 - math.cos(secondary), 1 - math.sin(secondary), 1 |
1090 | + | z4 = Instance.new("Sound",X) |
1091 | z4.SoundId = "rbxassetid://245537790" | |
1092 | z4.Pitch = .7 | |
1093 | - | |
1093 | + | z4.Volume = 1 |
1094 | - | function Utility.SetProperty(object, field, value) |
1094 | + | wait(0.1) |
1095 | - | object[field] = value |
1095 | + | z:Play() |
1096 | z1:Play() | |
1097 | - | |
1097 | + | z2:Play() |
1098 | - | function Utility.CleanWorkspace() |
1098 | + | z3:Play() |
1099 | - | for index, child in ipairs(Workspace:GetChildren()) do |
1099 | + | z4:Play() |
1100 | - | if not (Players:GetPlayerFromCharacter(child) or child.ClassName == "Camera" or child:IsA("Script") or child.ClassName == "Terrain") then |
1100 | + | |
1101 | - | pcall(child.Destroy, child) |
1101 | + | local part=Instance.new('Part',rarm) |
1102 | part.Anchored=true | |
1103 | part.CanCollide=false | |
1104 | - | Workspace.Terrain:Clear() |
1104 | + | part.Locked = true |
1105 | - | local base = Instance.new("Part") |
1105 | + | part.FormFactor='Custom' |
1106 | - | base.Anchored = true |
1106 | + | part.Size=Vector3.new(1,1,1) |
1107 | - | base.BrickColor = BrickColor.new("Earth green") |
1107 | + | part.CFrame=X.CFrame*CFrame.new(0,0,0) |
1108 | - | base.Locked = true |
1108 | + | part.Transparency=0 |
1109 | - | base.Name = "Base" |
1109 | + | part.BrickColor=BrickColor.new('Lime green') |
1110 | - | base.Size = Vector3.new(512, 1.2, 512) |
1110 | + | local mesh=Instance.new('SpecialMesh',part) |
1111 | - | base.Parent = Workspace |
1111 | + | mesh.MeshId='http://www.roblox.com/asset/?id=20329976' |
1112 | mesh.Scale=Vector3.new(2,2,2) | |
1113 | - | |
1113 | + | local part2=part:clone() |
1114 | - | function Utility.CleanWorkspaceAndScripts() |
1114 | + | part2.Parent = rarm |
1115 | - | for index, child in ipairs(Workspace:GetChildren()) do |
1115 | + | part2.BrickColor=BrickColor.new("Lime green") |
1116 | - | if not (Players:GetPlayerFromCharacter(child) or child.ClassName == "Camera" or child.ClassName == "Terrain") then |
1116 | + | local part5=part:clone() |
1117 | - | pcall(child.Destroy, child) |
1117 | + | part5.Parent = rarm |
1118 | part5.BrickColor=BrickColor.new("Lime green") | |
1119 | local part6=part:clone() | |
1120 | - | Workspace.Terrain:Clear() |
1120 | + | part6.Parent = rarm |
1121 | - | local base = Instance.new("Part") |
1121 | + | part6.BrickColor=BrickColor.new("Black") |
1122 | - | base.Anchored = true |
1122 | + | local mesh2=mesh:clone() |
1123 | - | base.BrickColor = BrickColor.new("Earth green") |
1123 | + | mesh2.Parent=part2 |
1124 | - | base.Locked = true |
1124 | + | mesh2.Scale=Vector3.new(3, 3, 3) |
1125 | - | base.Name = "Base" |
1125 | + | local mesh5=mesh:clone() |
1126 | - | base.Size = Vector3.new(512, 1.2, 512) |
1126 | + | mesh5.Parent=part5 |
1127 | - | base.Parent = Workspace |
1127 | + | mesh5.Scale=Vector3.new(3, 3, 3) |
1128 | local mesh6=mesh:clone() | |
1129 | - | |
1129 | + | mesh6.Parent=part6 |
1130 | - | function Utility.CreateDummy(cframe, name, parent) |
1130 | + | mesh6.Scale=Vector3.new(3, 3, 3) |
1131 | - | local model = Instance.new("Model") |
1131 | + | local blast = Instance.new("Part", rarm) |
1132 | - | model.Archivable = false |
1132 | + | blast.BrickColor = BrickColor.new("Lime green") |
1133 | - | model.Name = name |
1133 | + | blast.Anchored = true |
1134 | - | local humanoid = Instance.new("Humanoid", model) |
1134 | + | blast.CanCollide = false |
1135 | - | local head = Instance.new("Part", model) |
1135 | + | blast.Locked = true |
1136 | - | local face = Instance.new("Decal", head) |
1136 | + | blast.Size = Vector3.new(1, 1, 1) |
1137 | - | local head_mesh = Instance.new("SpecialMesh", head) |
1137 | + | blast.TopSurface = "Smooth" |
1138 | - | local torso = Instance.new("Part", model) |
1138 | + | blast.BottomSurface = "Smooth" |
1139 | - | local right_arm = Instance.new("Part", model) |
1139 | + | blast.Transparency = 0 |
1140 | - | local left_arm = Instance.new("Part", model) |
1140 | + | blast.CFrame = HandCF |
1141 | - | local right_leg = Instance.new("Part", model) |
1141 | + | local bm = Instance.new("SpecialMesh", blast) |
1142 | - | local left_leg = Instance.new("Part", model) |
1142 | + | bm.Scale = Vector3.new(5,1,5) |
1143 | - | local neck = Instance.new("Motor", torso) |
1143 | + | bm.MeshId = "rbxassetid://156292343" |
1144 | - | local right_shoulder = Instance.new("Motor", torso) |
1144 | + | local blast2 = Instance.new("Part", rarm) |
1145 | - | local left_shoulder = Instance.new("Motor", torso) |
1145 | + | blast2.BrickColor = BrickColor.new("Lime green") |
1146 | - | local right_hip = Instance.new("Motor", torso) |
1146 | + | blast2.Anchored = true |
1147 | - | local left_hip = Instance.new("Motor", torso) |
1147 | + | blast2.CanCollide = false |
1148 | - | head.BrickColor = BrickColor.Yellow() |
1148 | + | blast2.Locked = true |
1149 | - | head.CFrame = cframe * CFrame.new(0, 1.5, 0) |
1149 | + | blast2.Size = Vector3.new(1, 1, 1) |
1150 | - | head.FormFactor = "Symmetric" |
1150 | + | blast2.TopSurface = "Smooth" |
1151 | - | head.Locked = true |
1151 | + | blast2.BottomSurface = "Smooth" |
1152 | - | head.Name = "Head" |
1152 | + | blast2.Transparency = 0 |
1153 | - | head.Size = Vector3.new(2, 1, 1) |
1153 | + | blast2.CFrame = HandCF |
1154 | - | head.TopSurface = "Smooth" |
1154 | + | local bm2 = Instance.new("SpecialMesh", blast2) |
1155 | - | face.Texture = "rbxasset://textures/face.png" |
1155 | + | bm2.Scale = Vector3.new(3,1,3) |
1156 | - | head_mesh.Scale = Vector3.new(1.25, 1.25, 1.25) |
1156 | + | bm2.MeshId = "rbxassetid://156292343" |
1157 | - | torso.BrickColor = BrickColor.Blue() |
1157 | + | local blast3 = Instance.new("Part", rarm) |
1158 | - | torso.CFrame = cframe |
1158 | + | blast3.BrickColor = BrickColor.new("Lime green") |
1159 | - | torso.FormFactor = "Symmetric" |
1159 | + | blast3.Anchored = true |
1160 | - | torso.LeftSurface = "Weld" |
1160 | + | blast3.CanCollide = false |
1161 | - | torso.Locked = true |
1161 | + | blast3.Locked = true |
1162 | - | torso.RightSurface = "Weld" |
1162 | + | blast3.Size = Vector3.new(1, 1, 1) |
1163 | - | torso.Name = "Torso" |
1163 | + | blast3.TopSurface = "Smooth" |
1164 | - | torso.Size = Vector3.new(2, 2, 1) |
1164 | + | blast3.BottomSurface = "Smooth" |
1165 | - | right_arm.BrickColor = BrickColor.Yellow() |
1165 | + | blast3.Transparency = 0 |
1166 | - | right_arm.CanCollide = false |
1166 | + | blast3.CFrame = HandCF |
1167 | - | right_arm.CFrame = cframe * CFrame.new(1.5, 0, 0) |
1167 | + | local bm3 = Instance.new("SpecialMesh", blast3) |
1168 | - | right_arm.FormFactor = "Symmetric" |
1168 | + | bm3.Scale = Vector3.new(3,1,3) |
1169 | - | right_arm.Locked = true |
1169 | + | bm3.MeshId = "rbxassetid://3270017" |
1170 | - | right_arm.Name = "Right Arm" |
1170 | + | for i = 1,120 do rs:wait() |
1171 | - | right_arm.Size = Vector3.new(1, 2, 1) |
1171 | + | X.Transparency = X.Transparency + (1/120) |
1172 | - | left_arm.BrickColor = BrickColor.Yellow() |
1172 | + | part.Transparency = part.Transparency + (1/120) |
1173 | - | left_arm.CanCollide = false |
1173 | + | part2.Transparency = part2.Transparency + (1/120) |
1174 | - | left_arm.CFrame = cframe * CFrame.new(-1.5, 0, 0) |
1174 | + | part3.Transparency = part3.Transparency + (1/120) |
1175 | - | left_arm.FormFactor = "Symmetric" |
1175 | + | part4.Transparency = part4.Transparency + (1/120) |
1176 | - | left_arm.Locked = true |
1176 | + | part5.Transparency = part5.Transparency + (1/120) |
1177 | - | left_arm.Name = "Left Arm" |
1177 | + | part6.Transparency = part6.Transparency + (1/120) |
1178 | - | left_arm.Size = Vector3.new(1, 2, 1) |
1178 | + | part7.Transparency = part7.Transparency + (1/120) |
1179 | - | right_leg.BrickColor = BrickColor.new("Br. yellowish green") |
1179 | + | blast.Transparency = blast.Transparency + (1/120) |
1180 | - | right_leg.BottomSurface = "Smooth" |
1180 | + | blast2.Transparency = blast2.Transparency + (1/120) |
1181 | - | right_leg.CanCollide = false |
1181 | + | blast3.Transparency = blast3.Transparency + (1/120) |
1182 | - | right_leg.CFrame = cframe * CFrame.new(0.5, -2, 0) |
1182 | + | X.Size = X.Size + Vector3.new(.8,.8,.8) |
1183 | - | right_leg.FormFactor = "Symmetric" |
1183 | + | --part3.Size = part3.Size + Vector3.new(3,3,3) |
1184 | - | right_leg.Locked = true |
1184 | + | mesh.Scale = mesh.Scale + Vector3.new(1,.2,1) |
1185 | - | right_leg.Name = "Right Leg" |
1185 | + | mesh2.Scale = mesh2.Scale + Vector3.new(1.1,.2,1.1) |
1186 | - | right_leg.Size = Vector3.new(1, 2, 1) |
1186 | + | mesh3.Scale = mesh3.Scale + Vector3.new(3,3,3) |
1187 | - | right_leg.TopSurface = "Smooth" |
1187 | + | mesh4.Scale = mesh4.Scale + Vector3.new(1.7,1.7,1.7) |
1188 | - | left_leg.BrickColor = BrickColor.new("Br. yellowish green") |
1188 | + | mesh5.Scale = mesh5.Scale + Vector3.new(1.6,.2,1.6) |
1189 | - | left_leg.BottomSurface = "Smooth" |
1189 | + | mesh6.Scale = mesh6.Scale + Vector3.new(2,.2,2) |
1190 | - | left_leg.CanCollide = false |
1190 | + | mesh7.Scale = mesh7.Scale + Vector3.new(4,4,4) |
1191 | - | left_leg.CFrame = cframe * CFrame.new(-0.5, -2, 0) |
1191 | + | bm.Scale = bm.Scale + Vector3.new(6,6,.2) |
1192 | - | left_leg.FormFactor = "Symmetric" |
1192 | + | bm2.Scale = bm2.Scale + Vector3.new(4,4,.2) |
1193 | - | left_leg.Locked = true |
1193 | + | bm3.Scale = bm3.Scale + Vector3.new(4,4,.2) |
1194 | - | left_leg.Name = "Left Leg" |
1194 | + | X.CFrame = cf |
1195 | - | left_leg.Size = Vector3.new(1, 2, 1) |
1195 | + | part.CFrame=X.CFrame * CFrame.Angles(0,math.rad(i*2),0) |
1196 | - | left_leg.TopSurface = "Smooth" |
1196 | + | part2.CFrame=X.CFrame * CFrame.Angles(0,math.rad(-i*2),0) |
1197 | - | neck.C0 = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) |
1197 | + | part3.CFrame=X.CFrame |
1198 | - | neck.C1 = CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) |
1198 | + | part4.CFrame=X.CFrame |
1199 | - | neck.Name = "Neck" |
1199 | + | part7.CFrame=X.CFrame |
1200 | - | neck.Part0 = torso |
1200 | + | part5.CFrame=X.CFrame * CFrame.Angles(0,math.rad(i*2.6),0) |
1201 | - | neck.Part1 = head |
1201 | + | part6.CFrame=X.CFrame * CFrame.Angles(0,math.rad(-i*2.4),0) |
1202 | - | right_shoulder.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) |
1202 | + | blast.CFrame=X.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)) |
1203 | - | right_shoulder.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) |
1203 | + | blast2.CFrame=X.CFrame * CFrame.Angles(math.rad(-i*4), math.rad(i*4), math.rad(0)) |
1204 | - | right_shoulder.MaxVelocity = 0.15 |
1204 | + | blast3.CFrame=X.CFrame * CFrame.Angles(math.rad(180+i*4), math.rad(90-i*4), math.rad(0)) |
1205 | - | right_shoulder.Name = "Right Shoulder" |
1205 | + | rs:wait() |
1206 | - | right_shoulder.Part0 = torso |
1206 | + | |
1207 | - | right_shoulder.Part1 = right_arm |
1207 | + | X:Destroy() |
1208 | - | left_shoulder.C0 = CFrame.new(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
1208 | + | part:Destroy() |
1209 | - | left_shoulder.C1 = CFrame.new(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
1209 | + | part2:Destroy() |
1210 | - | left_shoulder.MaxVelocity = 0.15 |
1210 | + | part3:Destroy() |
1211 | - | left_shoulder.Name = "Left Shoulder" |
1211 | + | part4:Destroy() |
1212 | - | left_shoulder.Part0 = torso |
1212 | + | part5:Destroy() |
1213 | - | left_shoulder.Part1 = left_arm |
1213 | + | part6:Destroy() |
1214 | - | right_hip.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) |
1214 | + | blast:Destroy() |
1215 | - | right_hip.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) |
1215 | + | blast2:Destroy() |
1216 | - | right_hip.MaxVelocity = 0.1 |
1216 | + | blast3:Destroy() |
1217 | - | right_hip.Name = "Right Hip" |
1217 | + | z:Destroy() |
1218 | - | right_hip.Part0 = torso |
1218 | + | z1:Destroy() |
1219 | - | right_hip.Part1 = right_leg |
1219 | + | z2:Destroy() |
1220 | - | left_hip.C0 = CFrame.new(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
1220 | + | z3:Destroy() |
1221 | - | left_hip.C1 = CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
1221 | + | z4:Destroy() |
1222 | - | left_hip.MaxVelocity = 0.1 |
1222 | + | end |
1223 | - | left_hip.Name = "Left Hip" |
1223 | + | end) |
1224 | - | left_hip.Part0 = torso |
1224 | + | for i = 1, 20 do |
1225 | - | left_hip.Part1 = left_leg |
1225 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.55,0)*CFrame.Angles(math.rad(70),math.rad(-6),math.rad(-20)), 0.2) |
1226 | - | humanoid.Died:connect(function() |
1226 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.55,0)*CFrame.Angles(math.rad(-6),math.rad(6),math.rad(-8)), 0.2) |
1227 | - | wait(5) |
1227 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(0),math.rad(0),0), 0.2) |
1228 | - | model:Destroy() |
1228 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(30), math.rad(0)), 0.4) |
1229 | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(10), 0, math.rad(-8)), 0.2) | |
1230 | - | model.Parent = parent |
1230 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-6), 0, math.rad(8)), 0.2) |
1231 | - | return model |
1231 | + | if Debounces.on == false then break end |
1232 | rs:wait() | |
1233 | - | |
1233 | + | end |
1234 | - | Serializer = {}; |
1234 | + | if Debounces.CanAttack == false then |
1235 | - | |
1235 | + | Debounces.CanAttack = true |
1236 | - | Serializer.NAN = math.abs(0 / 0) |
1236 | + | Debounces.NoIdl = false |
1237 | - | |
1237 | + | Debounces.on = false |
1238 | - | function Serializer.DecodeFloatArray(metadata_size, lookup, data, index) |
1238 | + | end |
1239 | - | local metadata_bytes = math.ceil(metadata_size * 0.25) |
1239 | + | |
1240 | - | local metadata = {string.byte(data, index, index + metadata_bytes - 1)} |
1240 | + | |
1241 | - | local components = {} |
1241 | + | |
1242 | - | local start_index = index |
1242 | + | ---------------------------------------------------- |
1243 | - | index = index + metadata_bytes |
1243 | + | mouse.KeyDown:connect(function(key) |
1244 | - | for byte_index, byte in ipairs(metadata) do |
1244 | + | if key == "e" then |
1245 | - | local last_offset = 3 |
1245 | + | if Debounces.CanAttack == true then |
1246 | - | if byte_index == metadata_bytes then |
1246 | + | Debounces.CanAttack = false |
1247 | - | last_offset = (metadata_size - 1) % 4 |
1247 | + | Debounces.on = true |
1248 | Debounces.NoIdl = true | |
1249 | - | for value_offset = 0, last_offset do |
1249 | + | pt = {1, 1.1, 1.2, 1.3, 1.4, 1.5} |
1250 | - | local value_code = byte * 0.25 ^ value_offset % 4 |
1250 | + | z = Instance.new("Sound", rarm) |
1251 | - | value_code = value_code - value_code % 1 |
1251 | + | z.SoundId = "http://www.roblox.com/asset/?id=206083107"--160867463, 161006212 |
1252 | - | if value_code == 0 then |
1252 | + | z.Volume = .6 |
1253 | - | table.insert(components, Serializer.DecodeFloat32(string.byte(data, index, index + 3))) |
1253 | + | z.Pitch = pt[math.random(1,#pt)] |
1254 | - | index = index + 4 |
1254 | + | z.Looped = false |
1255 | - | else |
1255 | + | z:Play() |
1256 | - | table.insert(components, lookup[value_code]) |
1256 | + | Debounces.RPunch = true |
1257 | Debounces.LPunch = true | |
1258 | Debounces.ks = true | |
1259 | Debounces.ks2 = true | |
1260 | - | return components, index - start_index |
1260 | + | for i = 1, 3 do |
1261 | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(20),math.rad(20)), 0.92) | |
1262 | - | function Serializer.EncodeFloatArray(values, common) |
1262 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(50)), 0.92) |
1263 | - | local lookup = {[common[1]] = 1, [common[2]] = 2, [common[3]] = 3} |
1263 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-50),0), 0.92) |
1264 | - | local value_count = #values |
1264 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(50), 0), 0.92) |
1265 | - | local metadata_bytes = math.ceil(value_count * 0.25) |
1265 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(-50), math.rad(-15)), 0.92) |
1266 | - | local metadata = {} |
1266 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(-50), math.rad(15)), 0.92) |
1267 | - | local buffer = {} |
1267 | + | if Debounces.on == false then break end |
1268 | - | for byte_index = 1, metadata_bytes do |
1268 | + | |
1269 | - | local last_offset = 3 |
1269 | + | |
1270 | - | if byte_index == metadata_bytes then |
1270 | + | z2 = Instance.new("Sound", larm) |
1271 | - | last_offset = (value_count - 1) % 4 |
1271 | + | z2.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1272 | z2.Volume = .6 | |
1273 | - | local metadata_byte = 0 |
1273 | + | z2.Pitch = pt[math.random(1,#pt)] |
1274 | - | local offset_multiplier = 1 |
1274 | + | z2.Looped = false |
1275 | - | local byte_offset = (byte_index - 1) * 4 + 1 |
1275 | + | z2:Play() |
1276 | - | for value_offset = 0, last_offset do |
1276 | + | for i = 1, 3 do |
1277 | - | local value_index = byte_offset + value_offset |
1277 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-50)), 0.92) |
1278 | - | local value = values[value_index] |
1278 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(120),math.rad(20),math.rad(-20)), 0.92) |
1279 | - | local code = lookup[value] or 0 |
1279 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(50),0), 0.92) |
1280 | - | metadata_byte = metadata_byte + code * offset_multiplier |
1280 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(-50), 0), 0.92) |
1281 | - | offset_multiplier = offset_multiplier * 4 |
1281 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(50), math.rad(-15)), 0.92) |
1282 | - | if code == 0 then |
1282 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(50), math.rad(15)), 0.92) |
1283 | - | table.insert(buffer, Serializer.EncodeFloat32(value)) |
1283 | + | if Debounces.on == false then break end |
1284 | wait() | |
1285 | end | |
1286 | - | metadata[byte_index] = string.char(metadata_byte) |
1286 | + | z3 = Instance.new("Sound", rarm) |
1287 | z3.SoundId = "http://www.roblox.com/asset/?id=206083107" | |
1288 | - | return table.concat(metadata) .. table.concat(buffer) |
1288 | + | z3.Volume = 0.6 |
1289 | z3.Pitch = pt[math.random(1,#pt)] | |
1290 | - | |
1290 | + | z3.Looped = false |
1291 | - | function Serializer.DecodeColor3(data, index) |
1291 | + | z3:Play() |
1292 | - | local components, size = Serializer.DecodeFloatArray(3, {0, 0.5, 1}, data, index) |
1292 | + | for i = 1, 3 do |
1293 | - | return Color3.new(unpack(components)), size |
1293 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(-20),math.rad(20)), 0.92) |
1294 | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(0),math.rad(50)), 0.92) | |
1295 | - | function Serializer.DecodeFloat32(b0, b1, b2, b3) |
1295 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-50),0), 0.92) |
1296 | - | local b2_low = b2 % 128 |
1296 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(50), 0), 0.92) |
1297 | - | local mantissa = b0 + (b1 + b2_low * 256) * 256 |
1297 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(-50), math.rad(-15)), 0.92) |
1298 | - | local exponent = (b2 - b2_low) / 128 + b3 % 128 * 2 |
1298 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(-50), math.rad(15)), 0.92) |
1299 | - | local number |
1299 | + | if Debounces.on == false then break end |
1300 | - | if mantissa == 0 then |
1300 | + | |
1301 | - | if exponent == 0 then |
1301 | + | |
1302 | - | number = 0 |
1302 | + | z4 = Instance.new("Sound", larm) |
1303 | - | elseif exponent == 0xFF then |
1303 | + | z4.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1304 | - | number = math.huge |
1304 | + | z4.Volume = .6 |
1305 | - | else |
1305 | + | z4.Pitch = pt[math.random(1,#pt)] |
1306 | - | number = 2 ^ (exponent - 127) |
1306 | + | z4.Looped = false |
1307 | z4:Play() | |
1308 | - | elseif exponent == 255 then |
1308 | + | for i = 1, 3 do |
1309 | - | number = Serializer.NAN |
1309 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-50)), 0.92) |
1310 | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(20),math.rad(-20)), 0.92) | |
1311 | - | number = (1 + mantissa / 8388608) * 2 ^ (exponent - 127) |
1311 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(50),0), 0.92) |
1312 | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(-50), 0), 0.92) | |
1313 | - | if b3 >= 128 then |
1313 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(50), math.rad(-15)), 0.92) |
1314 | - | return -number |
1314 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(50), math.rad(15)), 0.92) |
1315 | if Debounces.on == false then break end | |
1316 | - | return number |
1316 | + | |
1317 | end | |
1318 | z5 = Instance.new("Sound", rarm) | |
1319 | - | function Serializer.EncodeColor3(color3) |
1319 | + | z5.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1320 | - | return Serializer.EncodeFloatArray({color3.r, color3.g, color3.b}, {0, 0.5, 1}) |
1320 | + | z5.Volume = .6 |
1321 | z5.Pitch = pt[math.random(1,#pt)] | |
1322 | - | function Serializer.EncodeFloat32(number) |
1322 | + | z5.Looped = false |
1323 | - | if number == 0 then |
1323 | + | z5:Play() |
1324 | - | if 1 / number > 0 then |
1324 | + | for i = 1, 3 do |
1325 | - | return "\0\0\0\0" |
1325 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(110),math.rad(30),math.rad(20)), 0.9) |
1326 | - | else |
1326 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(50)), 0.9) |
1327 | - | return "\0\0\0\128" |
1327 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-50),0), 0.9) |
1328 | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(50), 0), 0.9) | |
1329 | - | elseif number ~= number then |
1329 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(-50), math.rad(-15)), 0.9) |
1330 | - | if string.sub(tostring(number), 1, 1) == "-" then |
1330 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(-50), math.rad(15)), 0.9) |
1331 | - | return "\255\255\255\255" |
1331 | + | if Debounces.on == false then break end |
1332 | - | else |
1332 | + | |
1333 | - | return "\255\255\255\127" |
1333 | + | |
1334 | z6 = Instance.new("Sound", larm) | |
1335 | - | elseif number == math.huge then |
1335 | + | z6.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1336 | - | return "\0\0\128\127" |
1336 | + | z6.Volume = .6 |
1337 | - | elseif number == -math.huge then |
1337 | + | z6.Pitch = pt[math.random(1,#pt)] |
1338 | - | return "\0\0\128\255" |
1338 | + | z6.Looped = false |
1339 | z6:Play() | |
1340 | - | local b3 = 0 |
1340 | + | for i = 1, 3 do |
1341 | - | if number < 0 then |
1341 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-50)), 0.92) |
1342 | - | number = -number |
1342 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(20),math.rad(-20)), 0.92) |
1343 | - | b3 = 128 |
1343 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(50),0), 0.92) |
1344 | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(-50), 0), 0.92) | |
1345 | - | local mantissa, exponent = math.frexp(number) |
1345 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(50), math.rad(-15)), 0.92) |
1346 | - | exponent = exponent + 126 |
1346 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(50), math.rad(15)), 0.92) |
1347 | - | if exponent < 0 then |
1347 | + | if Debounces.on == false then break end |
1348 | - | return "\0\0\0" .. string.char(b3) |
1348 | + | |
1349 | - | elseif exponent >= 255 then |
1349 | + | |
1350 | - | return "\0\0\128" .. string.char(b3 + 0x7F) |
1350 | + | z7 = Instance.new("Sound", rarm) |
1351 | - | else |
1351 | + | z7.SoundId = "http://www.roblox.com/asset/?id=206083107"--160867463, 161006212 |
1352 | - | local fraction = mantissa * 16777216 - 8388608 + 0.5 |
1352 | + | z7.Volume = .6 |
1353 | - | fraction = fraction - fraction % 1 |
1353 | + | z7.Pitch = pt[math.random(1,#pt)] |
1354 | - | local exponent_low = exponent % 2 |
1354 | + | z7.Looped = false |
1355 | - | local b0 = fraction % 256 |
1355 | + | z7:Play() |
1356 | - | local b1 = fraction % 65536 |
1356 | + | for i = 1, 3 do |
1357 | - | local b2 = (fraction - b1) / 65536 + exponent_low * 128 |
1357 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(20),math.rad(20)), 0.92) |
1358 | - | b1 = (b1 - b0) / 256 |
1358 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(50)), 0.92) |
1359 | - | b3 = b3 + (exponent - exponent_low) / 2 |
1359 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-50),0), 0.92) |
1360 | - | return string.char(b0, b1, b2, b3) |
1360 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(50), 0), 0.92) |
1361 | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(-50), math.rad(-15)), 0.92) | |
1362 | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(-50), math.rad(15)), 0.92) | |
1363 | if Debounces.on == false then break end | |
1364 | - | |
1364 | + | |
1365 | - | LuaEnum = {}; |
1365 | + | |
1366 | - | |
1366 | + | z8 = Instance.new("Sound", larm) |
1367 | - | LuaEnum.enum_metatable = { |
1367 | + | z8.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1368 | - | __call = function(self, value) |
1368 | + | z8.Volume = .6 |
1369 | - | local valueType = type(value) |
1369 | + | z8.Pitch = pt[math.random(1,#pt)] |
1370 | - | if valueType == "table" and getmetatable(value) == LuaEnum.enum_item_metatable then |
1370 | + | z8.Looped = false |
1371 | - | return value |
1371 | + | z8:Play() |
1372 | - | else |
1372 | + | for i = 1, 3 do |
1373 | - | return self[value] |
1373 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-50)), 0.92) |
1374 | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(120),math.rad(20),math.rad(-20)), 0.92) | |
1375 | - | end, |
1375 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(50),0), 0.92) |
1376 | - | __index = function(self, key) |
1376 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(-50), 0), 0.92) |
1377 | - | local enumItem = self.ItemsByName[key] or self.ItemsByValue[key] |
1377 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(50), math.rad(-15)), 0.92) |
1378 | - | if enumItem == nil then |
1378 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(50), math.rad(15)), 0.92) |
1379 | - | local default = self.Default |
1379 | + | if Debounces.on == false then break end |
1380 | - | if default then |
1380 | + | |
1381 | - | Logger.printf("Warning", "%s is not a valid EnumItem, returning default (%s)", Utility.ToString(key), tostring(default)) |
1381 | + | |
1382 | - | enumItem = default |
1382 | + | z9 = Instance.new("Sound", rarm) |
1383 | - | else |
1383 | + | z9.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1384 | - | Logger.errorf(2, "%s is not a valid EnumItem", Utility.ToString(key)) |
1384 | + | z9.Volume = 0.6 |
1385 | z9.Pitch = pt[math.random(1,#pt)] | |
1386 | z9.Looped = false | |
1387 | - | return enumItem |
1387 | + | z9:Play() |
1388 | - | end, |
1388 | + | for i = 1, 3 do |
1389 | - | __tostring = function(self) |
1389 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(-20),math.rad(20)), 0.92) |
1390 | - | return self.Name |
1390 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(0),math.rad(50)), 0.92) |
1391 | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-50),0), 0.92) | |
1392 | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(50), 0), 0.92) | |
1393 | - | LuaEnum.enum_item_metatable = { |
1393 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(-50), math.rad(-15)), 0.92) |
1394 | - | __tostring = function(self) |
1394 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(-50), math.rad(15)), 0.92) |
1395 | - | return self.Enum.Name .. "." .. self.Name |
1395 | + | if Debounces.on == false then break end |
1396 | wait() | |
1397 | end | |
1398 | - | LuaEnum.init_metatable = { |
1398 | + | z10 = Instance.new("Sound", larm) |
1399 | - | __call = function(self, items) |
1399 | + | z10.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1400 | - | local enumItemsByName = {} |
1400 | + | z10.Volume = .6 |
1401 | - | local enumItemsByValue = {} |
1401 | + | z10.Pitch = pt[math.random(1,#pt)] |
1402 | - | local enum = { |
1402 | + | z10.Looped = false |
1403 | - | ItemsByName = enumItemsByName, |
1403 | + | z10:Play() |
1404 | - | ItemsByValue = enumItemsByValue, |
1404 | + | for i = 1, 3 do |
1405 | - | Name = self[1] |
1405 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-50)), 0.92) |
1406 | - | } |
1406 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(20),math.rad(-20)), 0.92) |
1407 | - | local default = items.Default |
1407 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(50),0), 0.92) |
1408 | - | if default ~= nil then |
1408 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(-50), 0), 0.92) |
1409 | - | items.Default = nil |
1409 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(50), math.rad(-15)), 0.92) |
1410 | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(50), math.rad(15)), 0.92) | |
1411 | - | for value, name in pairs(items) do |
1411 | + | if Debounces.on == false then break end |
1412 | - | local enumItem = setmetatable({ |
1412 | + | |
1413 | - | Enum = enum, |
1413 | + | |
1414 | - | Name = name, |
1414 | + | z11 = Instance.new("Sound", rarm) |
1415 | - | Value = value |
1415 | + | z11.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1416 | - | }, LuaEnum.enum_item_metatable) |
1416 | + | z11.Volume = .6 |
1417 | - | enumItemsByName[name] = enumItem |
1417 | + | z11.Pitch = pt[math.random(1,#pt)] |
1418 | - | enumItemsByValue[value] = enumItem |
1418 | + | z11.Looped = false |
1419 | - | if name == default or value == default then |
1419 | + | z11:Play() |
1420 | - | enum.Default = enumItem |
1420 | + | for i = 1, 3 do |
1421 | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(110),math.rad(30),math.rad(20)), 0.9) | |
1422 | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(50)), 0.9) | |
1423 | - | return setmetatable(enum, LuaEnum.enum_metatable) |
1423 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-50),0), 0.9) |
1424 | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(50), 0), 0.9) | |
1425 | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(-50), math.rad(-15)), 0.9) | |
1426 | - | function LuaEnum.new(name) |
1426 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(-50), math.rad(15)), 0.9) |
1427 | - | return setmetatable({name}, LuaEnum.init_metatable) |
1427 | + | if Debounces.on == false then break end |
1428 | wait() | |
1429 | - | |
1429 | + | |
1430 | - | Logger = {}; |
1430 | + | z12 = Instance.new("Sound", larm) |
1431 | - | |
1431 | + | z12.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1432 | - | Logger.entries = {0} |
1432 | + | z12.Volume = .6 |
1433 | - | Logger.MessageType = LuaEnum.new "MessageType" { |
1433 | + | z12.Pitch = pt[math.random(1,#pt)] |
1434 | - | "Output", |
1434 | + | z12.Looped = false |
1435 | - | "Info", |
1435 | + | z12:Play() |
1436 | - | "Warning", |
1436 | + | for i = 1, 3 do |
1437 | - | "Severe", |
1437 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-50)), 0.92) |
1438 | - | "Error", |
1438 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(120),math.rad(20),math.rad(-20)), 0.92) |
1439 | - | Default = "Severe" |
1439 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(50),0), 0.92) |
1440 | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(-50), 0), 0.92) | |
1441 | - | Logger.MESSAGE_TYPE_SETTINGS = { |
1441 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(50), math.rad(-15)), 0.92) |
1442 | - | { -- Output |
1442 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(50), math.rad(15)), 0.92) |
1443 | - | Font = "Arial", |
1443 | + | if Debounces.on == false then break end |
1444 | - | TextColor3 = Color3.new(0, 0, 0) |
1444 | + | |
1445 | - | }, |
1445 | + | |
1446 | - | { -- Info |
1446 | + | z13 = Instance.new("Sound", rarm) |
1447 | - | Font = "Arial", |
1447 | + | z13.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1448 | - | TextColor3 = Color3.new(0, 0, 1) |
1448 | + | z13.Volume = 0.6 |
1449 | - | }, |
1449 | + | z13.Pitch = pt[math.random(1,#pt)] |
1450 | - | { -- Warning |
1450 | + | z13.Looped = false |
1451 | - | Font = "ArialBold", |
1451 | + | z13:Play() |
1452 | - | TextColor3 = Color3.new(1, 0.5, 0) |
1452 | + | for i = 1, 3 do |
1453 | - | }, |
1453 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(-20),math.rad(20)), 0.92) |
1454 | - | { -- Severe/Error |
1454 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(0),math.rad(50)), 0.92) |
1455 | - | Font = "ArialBold", |
1455 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-50),0), 0.92) |
1456 | - | TextColor3 = Color3.new(1, 0, 0) |
1456 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(50), 0), 0.92) |
1457 | - | } |
1457 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(-50), math.rad(-15)), 0.92) |
1458 | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(-50), math.rad(15)), 0.92) | |
1459 | - | Logger.MAX_ENTRIES = 160 |
1459 | + | if Debounces.on == false then break end |
1460 | - | Logger.WARNING_TRACE_ITEM_COUNT = 5 |
1460 | + | |
1461 | - | Logger.rbxPrint = getfenv(RbxUtility.CreateSignal).print |
1461 | + | |
1462 | - | function Logger.error(level, message) |
1462 | + | z14 = Instance.new("Sound", larm) |
1463 | - | message = message .. "\n" .. Logger.StackTraceToString(Logger.GenerateStackTrace(level + 1)) |
1463 | + | z14.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1464 | - | Logger.AddEntry {Logger.MessageType.Error, message} |
1464 | + | z14.Volume = .6 |
1465 | - | error(level + 1, message) |
1465 | + | z14.Pitch = pt[math.random(1,#pt)] |
1466 | z14.Looped = false | |
1467 | - | function Logger.errorf(level, messageFormat, ...) |
1467 | + | z14:Play() |
1468 | - | Logger.error(level + 1, string.format(messageFormat, ...)) |
1468 | + | for i = 1, 3 do |
1469 | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-50)), 0.92) | |
1470 | - | function Logger.print(messageType, message, level) |
1470 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(20),math.rad(-20)), 0.92) |
1471 | - | messageType = Logger.MessageType(messageType) |
1471 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(50),0), 0.92) |
1472 | - | local entry = {messageType, message} |
1472 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(-50), 0), 0.92) |
1473 | - | Logger.rbxPrint(Logger.EntryToString(entry)) |
1473 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(50), math.rad(-15)), 0.92) |
1474 | - | Logger.AddEntry(entry) |
1474 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(50), math.rad(15)), 0.92) |
1475 | - | if level ~= false and messageType.Value >= Logger.MessageType.Warning.Value then |
1475 | + | if Debounces.on == false then break end |
1476 | - | local maxItems |
1476 | + | |
1477 | - | if messageType.Value >= Logger.MessageType.Severe.Value then |
1477 | + | |
1478 | - | maxItems = math.huge |
1478 | + | z15 = Instance.new("Sound", rarm) |
1479 | - | else |
1479 | + | z15.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1480 | - | maxItems = Logger.WARNING_TRACE_ITEM_COUNT |
1480 | + | z15.Volume = .6 |
1481 | z15.Pitch = pt[math.random(1,#pt)] | |
1482 | - | local trace = Logger.GenerateStackTrace((level or 1) + 1, math.huge, 10, maxItems + 1) |
1482 | + | z15.Looped = false |
1483 | - | local traceLength = #trace |
1483 | + | z15:Play() |
1484 | - | local stackTraceMessage |
1484 | + | for i = 1, 3 do |
1485 | - | local suffix = "" |
1485 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(110),math.rad(30),math.rad(20)), 0.9) |
1486 | - | if traceLength > maxItems then |
1486 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(50)), 0.9) |
1487 | - | trace[traceLength] = nil |
1487 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-50),0), 0.9) |
1488 | - | suffix = "\n..." |
1488 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(50), 0), 0.9) |
1489 | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(-50), math.rad(-15)), 0.9) | |
1490 | - | Logger.print("Info", "Stack trace:\n" .. Logger.StackTraceToString(trace) .. suffix .. "\nStack end", false) |
1490 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(-50), math.rad(15)), 0.9) |
1491 | if Debounces.on == false then break end | |
1492 | wait() | |
1493 | - | function Logger.printf(messageType, messageFormat, ...) |
1493 | + | |
1494 | - | Logger.print(messageType, string.format(messageFormat, ...), 2) |
1494 | + | z16 = Instance.new("Sound", larm) |
1495 | z16.SoundId = "http://www.roblox.com/asset/?id=206083107" | |
1496 | - | function Logger.AddEntry(entry) |
1496 | + | z16.Volume = .6 |
1497 | - | local entries = Logger.entries |
1497 | + | z16.Pitch = pt[math.random(1,#pt)] |
1498 | - | if entries[1] >= Logger.MAX_ENTRIES then |
1498 | + | z16.Looped = false |
1499 | - | local first = entries[2] |
1499 | + | z16:Play() |
1500 | - | local nextFirst = first[2] |
1500 | + | for i = 1, 3 do |
1501 | - | first[1] = nil |
1501 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-50)), 0.92) |
1502 | - | first[2] = nil |
1502 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(20),math.rad(-20)), 0.92) |
1503 | - | entries[1] = entries[1] - 1 |
1503 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(50),0), 0.92) |
1504 | - | entries[2] = nextFirst |
1504 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(-50), 0), 0.92) |
1505 | - | if not nextFirst then |
1505 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(50), math.rad(-15)), 0.92) |
1506 | - | entries[3] = nil |
1506 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(50), math.rad(15)), 0.92) |
1507 | if Debounces.on == false then break end | |
1508 | wait() | |
1509 | - | local last = entries[3] |
1509 | + | |
1510 | - | local node = {entry} |
1510 | + | z17 = Instance.new("Sound", rarm) |
1511 | - | if last then |
1511 | + | z17.SoundId = "http://www.roblox.com/asset/?id=206083107"--160867463, 161006212 |
1512 | - | entries[3] = node |
1512 | + | z17.Volume = .6 |
1513 | - | last[2] = node |
1513 | + | z17.Pitch = pt[math.random(1,#pt)] |
1514 | z17.Looped = false | |
1515 | - | entries[2] = node |
1515 | + | z17:Play() |
1516 | - | entries[3] = node |
1516 | + | for i = 1, 3 do |
1517 | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(20),math.rad(20)), 0.92) | |
1518 | - | entries[1] = entries[1] + 1 |
1518 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(50)), 0.92) |
1519 | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-50),0), 0.92) | |
1520 | - | function Logger.NodeIterator(list, node) |
1520 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(50), 0), 0.92) |
1521 | - | if node then |
1521 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(-50), math.rad(-15)), 0.92) |
1522 | - | node = node[2] |
1522 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(-50), math.rad(15)), 0.92) |
1523 | if Debounces.on == false then break end | |
1524 | - | node = list[2] |
1524 | + | |
1525 | end | |
1526 | - | if node then |
1526 | + | z18 = Instance.new("Sound", larm) |
1527 | - | return node, node[1] |
1527 | + | z18.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1528 | z18.Volume = .6 | |
1529 | z18.Pitch = pt[math.random(1,#pt)] | |
1530 | - | function Logger.EntryToString(entry) |
1530 | + | z18.Looped = false |
1531 | - | local messageType, message = entry[1], tostring(entry[2]) |
1531 | + | z18:Play() |
1532 | - | if messageType and messageType.Value >= Logger.MessageType.Info.Value then |
1532 | + | for i = 1, 3 do |
1533 | - | return messageType.Name .. ": " .. message |
1533 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-50)), 0.92) |
1534 | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(120),math.rad(20),math.rad(-20)), 0.92) | |
1535 | - | return message |
1535 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(50),0), 0.92) |
1536 | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(-50), 0), 0.92) | |
1537 | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(50), math.rad(-15)), 0.92) | |
1538 | - | function Logger.GenerateStackTrace(level, maxLevel, maxTailCalls, maxTraceItems) |
1538 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(50), math.rad(15)), 0.92) |
1539 | - | level = level + 2 |
1539 | + | if Debounces.on == false then break end |
1540 | - | if maxLevel == nil then |
1540 | + | |
1541 | - | maxLevel = math.huge |
1541 | + | |
1542 | z19 = Instance.new("Sound", rarm) | |
1543 | - | maxLevel = maxLevel + 2 |
1543 | + | z19.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1544 | z19.Volume = 0.6 | |
1545 | - | maxTailCalls = maxTailCalls or 10 |
1545 | + | z19.Pitch = pt[math.random(1,#pt)] |
1546 | - | maxTraceItems = maxTraceItems or math.huge |
1546 | + | z19.Looped = false |
1547 | - | local trace = {} |
1547 | + | z19:Play() |
1548 | - | local numTailCalls = 0 |
1548 | + | for i = 1, 3 do |
1549 | - | while level <= maxLevel and numTailCalls <= maxTailCalls and #trace < maxTraceItems do |
1549 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(-20),math.rad(20)), 0.92) |
1550 | - | local success, errorMessage = xpcall(function() error("-", level + 1) end, function(...) return ... end) |
1550 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(0),math.rad(50)), 0.92) |
1551 | - | if errorMessage == "-" then |
1551 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-50),0), 0.92) |
1552 | - | numTailCalls = numTailCalls + 1 |
1552 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(50), 0), 0.92) |
1553 | - | else |
1553 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(-50), math.rad(-15)), 0.92) |
1554 | - | if numTailCalls > 0 then |
1554 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(-50), math.rad(15)), 0.92) |
1555 | - | local traceSize = #trace |
1555 | + | if Debounces.on == false then break end |
1556 | - | if traceSize > 0 then |
1556 | + | |
1557 | - | trace[#trace][3] = numTailCalls |
1557 | + | |
1558 | z20 = Instance.new("Sound", larm) | |
1559 | - | numTailCalls = 0 |
1559 | + | z20.SoundId = "http://www.roblox.com/asset/?id=206083107" |
1560 | z20.Volume = .6 | |
1561 | - | local script, line = string.match(errorMessage, "(.*):(%d+)") |
1561 | + | z20.Pitch = pt[math.random(1,#pt)] |
1562 | - | trace[#trace + 1] = {script, tonumber(line), 0} |
1562 | + | z20.Looped = false |
1563 | z20:Play() | |
1564 | - | level = level + 1 |
1564 | + | for i = 1, 3 do |
1565 | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.5,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-50)), 0.92) | |
1566 | - | return trace |
1566 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.5,0)*CFrame.Angles(math.rad(60),math.rad(20),math.rad(-20)), 0.92) |
1567 | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(50),0), 0.92) | |
1568 | - | function Logger.StackTraceToString(trace) |
1568 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(math.rad(0), math.rad(-50), 0), 0.92) |
1569 | - | local buffer = {} |
1569 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.6, -1, 0) * CFrame.Angles(math.rad(10), math.rad(50), math.rad(-15)), 0.92) |
1570 | - | for _, data in ipairs(trace) do |
1570 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.6, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(50), math.rad(15)), 0.92) |
1571 | - | buffer[#buffer + 1] = string.format("Script %q, line %d", data[1], data[2]) |
1571 | + | if Debounces.on == false then break end |
1572 | - | local numTailCalls = data[3] |
1572 | + | |
1573 | - | if numTailCalls == 1 then |
1573 | + | |
1574 | - | buffer[#buffer + 1] = "... 1 tail call" |
1574 | + | z:Destroy() |
1575 | - | elseif numTailCalls > 1 then |
1575 | + | z2:Destroy() |
1576 | - | buffer[#buffer + 1] = string.format("... %d tail calls", numTailCalls) |
1576 | + | z3:Destroy() |
1577 | z4:Destroy() | |
1578 | z5:Destroy() | |
1579 | - | return table.concat(buffer, "\n") |
1579 | + | z6:Destroy() |
1580 | z7:Destroy() | |
1581 | - | function Logger.MessageOutFunc(message, messageType) |
1581 | + | z8:Destroy() |
1582 | - | if AdvancedGUI and AdvancedGUI.Print then |
1582 | + | z9:Destroy() |
1583 | - | local messageTypeValue |
1583 | + | z10:Destroy() |
1584 | - | if messageType == Enum.MessageType.MessageOutput then |
1584 | + | z11:Destroy() |
1585 | - | local tagName, untaggedMessage = string.match(message, "(%a+): (.*)") |
1585 | + | z12:Destroy() |
1586 | - | if tagName == "Info" or tagName == "Warning" or tagName == "Severe" then |
1586 | + | z13:Destroy() |
1587 | - | messageTypeValue = Logger.MessageType[tagName].Value |
1587 | + | z14:Destroy() |
1588 | - | message = untaggedMessage |
1588 | + | z15:Destroy() |
1589 | - | else |
1589 | + | z16:Destroy() |
1590 | - | messageTypeValue = Logger.MessageType.Output.Value |
1590 | + | z17:Destroy() |
1591 | z18:Destroy() | |
1592 | - | else |
1592 | + | z19:Destroy() |
1593 | - | messageTypeValue = messageType.Value + 1 |
1593 | + | z20:Destroy() |
1594 | Debounces.LPunch = false | |
1595 | - | AdvancedGUI.PrintFormat(Logger.MESSAGE_TYPE_SETTINGS[messageTypeValue], message) |
1595 | + | Debounces.RPunch = false |
1596 | Debounces.ks = false | |
1597 | Debounces.ks2 = false | |
1598 | - | function print(...) |
1598 | + | if Debounces.CanAttack == false then |
1599 | - | local args = {...} |
1599 | + | Debounces.CanAttack = true |
1600 | - | local buffer = {} |
1600 | + | Debounces.on = false |
1601 | - | for index = 1, select("#", ...) do |
1601 | + | Debounces.NoIdl = false |
1602 | - | buffer[index] = tostring(args[index]) |
1602 | + | |
1603 | end | |
1604 | - | local message = table.concat(buffer, "\t") |
1604 | + | |
1605 | - | Logger.print("Output", message) |
1605 | + | |
1606 | ------------------------------- | |
1607 | - | |
1607 | + | mouse.KeyDown:connect(function(key) |
1608 | - | CharacterAppearance = {}; |
1608 | + | if key == "t" then |
1609 | - | |
1609 | + | if Debounces.CanAttack == true then |
1610 | - | CharacterAppearance.defaultAppearanceId = 2 |
1610 | + | Debounces.CanAttack = false |
1611 | - | CharacterAppearance.stock = {} |
1611 | + | Debounces.NoIdl = true |
1612 | - | function CharacterAppearance.Create(properties) |
1612 | + | Debounces.on = true |
1613 | - | local id = properties.Id |
1613 | + | Debounces.ks = true |
1614 | - | local bodyColors = Instance.new("BodyColors") |
1614 | + | kik = rleg.Touched:connect(function(ht) |
1615 | - | bodyColors.HeadColor = properties.HeadColor |
1615 | + | hit = ht.Parent |
1616 | - | bodyColors.TorsoColor = properties.TorsoColor |
1616 | + | if ht and hit:IsA("Model") then |
1617 | - | bodyColors.RightArmColor = properties.RightArmColor |
1617 | + | if hit:FindFirstChild("Humanoid") then |
1618 | - | bodyColors.LeftArmColor = properties.LeftArmColor |
1618 | + | if hit.Name ~= p.Name then |
1619 | - | bodyColors.RightLegColor = properties.RightLegColor |
1619 | + | --[[if Debounces.Slashing == true and Debounces.Slashed == false then |
1620 | - | bodyColors.LeftLegColor = properties.LeftLegColor |
1620 | + | Debounces.Slashed = true]]-- |
1621 | - | local characterObjects = {bodyColors} |
1621 | + | if Debounces.ks==true then |
1622 | - | local headObjects = {} |
1622 | + | z = Instance.new("Sound",hed) |
1623 | - | local data = { |
1623 | + | z.SoundId = "rbxassetid://169380525" |
1624 | - | characterObjects = characterObjects, |
1624 | + | z.Volume = 1 |
1625 | - | headObjects = headObjects, |
1625 | + | z:Play() |
1626 | - | tshirt = properties.TShirt |
1626 | + | Debounces.ks=false |
1627 | - | } |
1627 | + | end |
1628 | - | for _, assetId in ipairs(properties.CharacterAssets) do |
1628 | + | hit:FindFirstChild("Humanoid"):TakeDamage(math.huge) |
1629 | - | TaskScheduler.Start(CharacterAppearance.LoadAsset, characterObjects, assetId) |
1629 | + | hit:FindFirstChild("Torso").Velocity = hit:FindFirstChild("Torso").CFrame.lookVector * -300 |
1630 | --Debounces.Slashed = false | |
1631 | - | for _, assetId in ipairs(properties.HeadAssets) do |
1631 | + | --end |
1632 | - | TaskScheduler.Start(CharacterAppearance.LoadAsset, headObjects, assetId) |
1632 | + | |
1633 | end | |
1634 | - | CharacterAppearance.stock[id] = data |
1634 | + | elseif ht and hit:IsA("Hat") then |
1635 | if hit.Parent.Name ~= p.Name then | |
1636 | - | function CharacterAppearance.GetDefaultAppearance() |
1636 | + | if hit.Parent:FindFirstChild("Humanoid") then |
1637 | - | return CharacterAppearance.stock[CharacterAppearance.defaultAppearanceId] |
1637 | + | --[[if Debounces.Slashing == true and Debounces.Slashed == false then |
1638 | Debounces.Slashed = true]]-- | |
1639 | - | function CharacterAppearance.LoadAsset(objects, assetId) |
1639 | + | hit.Parent:FindFirstChild("Humanoid"):TakeDamage(math.huge) |
1640 | - | local asset = InsertService:LoadAsset(assetId) |
1640 | + | hit:FindFirstChild("Torso").Velocity = hit:FindFirstChild("Torso").CFrame.lookVector * -300 |
1641 | - | for _, child in ipairs(asset:GetChildren()) do |
1641 | + | --Debounces.Slashed = false |
1642 | - | child.Archivable = true |
1642 | + | --end |
1643 | - | table.insert(objects, child:Clone()) |
1643 | + | |
1644 | end | |
1645 | end | |
1646 | - | CharacterAppearance.Create { |
1646 | + | |
1647 | - | Id = 1, |
1647 | + | for i = 1,20 do |
1648 | - | HeadColor = BrickColor.new("Institutional white"), |
1648 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.62,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(8)), 0.4) |
1649 | - | TorsoColor = BrickColor.new("Institutional white"), |
1649 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.62,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-110)), 0.4) |
1650 | - | RightArmColor = BrickColor.new("Institutional white"), |
1650 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(0),math.rad(0),0), 0.4) |
1651 | - | LeftArmColor = BrickColor.new("Institutional white"), |
1651 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(0, math.rad(90), math.rad(90)), 0.4) |
1652 | - | RightLegColor = BrickColor.new("Institutional white"), |
1652 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(-90)), 0.4) |
1653 | - | LeftLegColor = BrickColor.new("Institutional white"), |
1653 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(10)), 0.4) |
1654 | - | CharacterAssets = { |
1654 | + | if Debounces.on == false then break end |
1655 | - | 90825058, 90825211, |
1655 | + | rs:wait() |
1656 | - | 27112056, 27112052, |
1656 | + | end |
1657 | - | 27112039, 27112025, |
1657 | + | kik:disconnect() |
1658 | - | 27112068, 38322996 |
1658 | + | if Debounces.CanAttack == false then |
1659 | - | }, |
1659 | + | Debounces.CanAttack = true |
1660 | - | HeadAssets = { |
1660 | + | Debounces.NoIdl = false |
1661 | - | 20722130, |
1661 | + | Debounces.on = false |
1662 | - | 8330576 |
1662 | + | |
1663 | - | } |
1663 | + | |
1664 | end | |
1665 | - | CharacterAppearance.Create { |
1665 | + | |
1666 | - | Id = 2, |
1666 | + | ---------------------------------------------------- |
1667 | - | HeadColor = BrickColor.new("Institutional white"), |
1667 | + | mouse.KeyDown:connect(function(key) |
1668 | - | TorsoColor = BrickColor.new("Institutional white"), |
1668 | + | if key == "y" then |
1669 | - | RightArmColor = BrickColor.new("Institutional white"), |
1669 | + | if Debounces.CanAttack == true then |
1670 | - | LeftArmColor = BrickColor.new("Institutional white"), |
1670 | + | Debounces.CanAttack = false |
1671 | - | RightLegColor = BrickColor.new("Institutional white"), |
1671 | + | Debounces.on = true |
1672 | - | LeftLegColor = BrickColor.new("Institutional white"), |
1672 | + | Debounces.NoIdl = true |
1673 | - | CharacterAssets = { |
1673 | + | for i = 1, 15 do |
1674 | - | 90825058, 90825211, |
1674 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,.6,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(30)), 0.2) |
1675 | - | 11748356, 1029025, |
1675 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,.6,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-90)), 0.6) |
1676 | - | 1235488, 27112056, |
1676 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(-14),math.rad(90),0), 0.2) |
1677 | - | 27112052, 27112039, |
1677 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-90), 0), 0.4) |
1678 | - | 27112025, 27112068 |
1678 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(-10)), 0.2) |
1679 | - | }, |
1679 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(10)), 0.2) |
1680 | - | HeadAssets = { |
1680 | + | if Debounces.on == false then break end |
1681 | - | 20722130 |
1681 | + | rs:wait(2.7) |
1682 | - | } |
1682 | + | |
1683 | x = Instance.new("Sound",char) | |
1684 | - | CharacterAppearance.Create { |
1684 | + | x.SoundId = "rbxassetid://345052019" |
1685 | - | Id = 3, |
1685 | + | x.Pitch = 0.8 |
1686 | - | HeadColor = BrickColor.new("Pastel brown"), |
1686 | + | x.Volume = 1 |
1687 | - | TorsoColor = BrickColor.new("Pastel brown"), |
1687 | + | x:Play() |
1688 | - | RightArmColor = BrickColor.new("Pastel brown"), |
1688 | + | wait(1.5) |
1689 | - | LeftArmColor = BrickColor.new("Pastel brown"), |
1689 | + | Debounces.on = false |
1690 | - | RightLegColor = BrickColor.new("White"), |
1690 | + | Debounces.Here = false |
1691 | - | LeftLegColor = BrickColor.new("White"), |
1691 | + | shot = shot + 1 |
1692 | - | CharacterAssets = { |
1692 | + | local rng = Instance.new("Part", larm) |
1693 | - | 134289125, 48474356, |
1693 | + | rng.Anchored = true |
1694 | - | 100339040, 46302558, |
1694 | + | rng.BrickColor = BrickColor.new("Crimson") |
1695 | - | 153955895 |
1695 | + | rng.CanCollide = false |
1696 | - | }, |
1696 | + | rng.FormFactor = 3 |
1697 | - | HeadAssets = {}, |
1697 | + | rng.Name = "Ring" |
1698 | - | TShirt = "rbxassetid://148856353" |
1698 | + | rng.Size = Vector3.new(1, 1, 1) |
1699 | rng.Transparency = 0.35 | |
1700 | - | CharacterAppearance.Create { |
1700 | + | rng.TopSurface = 0 |
1701 | - | Id = 4, |
1701 | + | rng.BottomSurface = 0 |
1702 | - | HeadColor = BrickColor.new("Pastel brown"), |
1702 | + | rng2 = rng:clone() |
1703 | - | TorsoColor = BrickColor.new("Pastel brown"), |
1703 | + | rng3 = rng2:clone() |
1704 | - | RightArmColor = BrickColor.new("Pastel brown"), |
1704 | + | rng4 = rng2:clone() |
1705 | - | LeftArmColor = BrickColor.new("Pastel brown"), |
1705 | + | local rngm = Instance.new("SpecialMesh", rng) |
1706 | - | RightLegColor = BrickColor.new("White"), |
1706 | + | rngm.MeshId = "http://www.roblox.com/asset?id=156292355" |
1707 | - | LeftLegColor = BrickColor.new("White"), |
1707 | + | rngm.Scale = Vector3.new(10, 10, 1) |
1708 | - | CharacterAssets = { |
1708 | + | rngm2 = rngm:clone() |
1709 | - | 129458426, 96678344, 184489190 |
1709 | + | rngm2.Scale = Vector3.new(6, 6, 4) |
1710 | - | }, |
1710 | + | rngm3=rngm2:clone() |
1711 | - | HeadAssets = {}, |
1711 | + | rngm3.Parent = rng3 |
1712 | - | TShirt = "rbxassetid://160146697" |
1712 | + | rngm3.Scale = Vector3.new(9, 9, 2) |
1713 | rngm4 = rngm2:clone() | |
1714 | - | |
1714 | + | rngm4.Parent = rng4 |
1715 | - | GraphicalEffects = {}; |
1715 | + | rngm4.Scale = Vector3.new(7, 7, 2) |
1716 | - | |
1716 | + | local bem = Instance.new("Part", larm) |
1717 | - | local MESH_IDS = {"rbxassetid://15310891"} |
1717 | + | bem.Anchored = true |
1718 | - | local SOUND_IDS = {"rbxassetid://2248511", "rbxassetid://1369158"} |
1718 | + | bem.BrickColor = BrickColor.new("Crimson") |
1719 | - | local TEXTURE_IDS = {"rbxassetid://36527089", "rbxassetid://122610943", "rbxassetid://126561317", "rbxassetid://127033719"} |
1719 | + | bem.CanCollide = false |
1720 | - | local preloadConnections = {} |
1720 | + | bem.FormFactor = 3 |
1721 | - | local reloadingPreloads = false |
1721 | + | bem.Name = "Beam" .. shot |
1722 | - | function GraphicalEffects.InitPreloads() |
1722 | + | bem.Size = Vector3.new(1, 1, 1) |
1723 | - | local preload_part = Instance.new("Part") |
1723 | + | bem.Transparency = 0.35 |
1724 | - | GraphicalEffects.preload_part = preload_part |
1724 | + | bem.TopSurface = 0 |
1725 | - | preload_part.Anchored = true |
1725 | + | bem.BottomSurface = 0 |
1726 | - | preload_part.Archivable = false |
1726 | + | local bemm = Instance.new("SpecialMesh", bem) |
1727 | - | preload_part.BottomSurface = "Smooth" |
1727 | + | bemm.MeshType = 4 |
1728 | - | preload_part.CanCollide = false |
1728 | + | bemm.Scale = Vector3.new(1, 10, 10) |
1729 | - | preload_part.CFrame = CFrame.new(math.huge, math.huge, math.huge) |
1729 | + | local out = Instance.new("Part", larm) |
1730 | - | preload_part.FormFactor = "Custom" |
1730 | + | out.Anchored = true |
1731 | - | preload_part.Locked = true |
1731 | + | out.BrickColor = BrickColor.new("Crimson") |
1732 | - | preload_part.Name = "Asset Preloader" |
1732 | + | out.CanCollide = false |
1733 | - | preload_part.Size = Vector3.new(0.2, 0.2, 0.2) |
1733 | + | out.FormFactor = 3 |
1734 | - | preload_part.TopSurface = "Smooth" |
1734 | + | out.Name = "Out" |
1735 | - | preload_part.Transparency = 1 |
1735 | + | out.Size = Vector3.new(4, 4, 4) |
1736 | - | preloadConnections[preload_part] = preload_part.AncestryChanged:connect(GraphicalEffects.PreloadsAncestryChanged) |
1736 | + | out.Transparency = 0.35 |
1737 | - | for _, mesh_id in ipairs(MESH_IDS) do |
1737 | + | out.TopSurface = 0 |
1738 | - | local mesh = Instance.new("SpecialMesh") |
1738 | + | out.BottomSurface = 0 |
1739 | - | mesh.MeshType = "FileMesh" |
1739 | + | local outm = Instance.new("SpecialMesh", out) |
1740 | - | mesh.MeshId = mesh_id |
1740 | + | outm.MeshId = "http://www.roblox.com/asset/?id=1033714" |
1741 | - | preloadConnections[mesh] = mesh.AncestryChanged:connect(GraphicalEffects.PreloadsAncestryChanged) |
1741 | + | outm.Scale = Vector3.new(10, 10, 10) |
1742 | - | mesh.Parent = preload_part |
1742 | + | local bnd = Instance.new("Part", larm) |
1743 | bnd.Anchored = true | |
1744 | - | for _, sound_id in ipairs(SOUND_IDS) do |
1744 | + | bnd.BrickColor = BrickColor.new("Crimson") |
1745 | - | local sound = Instance.new("Sound") |
1745 | + | bnd.CanCollide = false |
1746 | - | sound.SoundId = sound_id |
1746 | + | bnd.FormFactor = 3 |
1747 | - | sound.Volume = 0 |
1747 | + | bnd.Name = "Bend" |
1748 | - | preloadConnections[sound] = sound.AncestryChanged:connect(GraphicalEffects.PreloadsAncestryChanged) |
1748 | + | bnd.Size = Vector3.new(1, 1, 1) |
1749 | - | sound.Parent = preload_part |
1749 | + | bnd.Transparency = 1 |
1750 | bnd.TopSurface = 0 | |
1751 | - | for _, texture_id in ipairs(TEXTURE_IDS) do |
1751 | + | bnd.BottomSurface = 0 |
1752 | - | local decal = Instance.new("Decal") |
1752 | + | local bndm = Instance.new("SpecialMesh", bnd) |
1753 | - | decal.Texture = texture_id |
1753 | + | bndm.MeshType = 3 |
1754 | - | preloadConnections[decal] = decal.AncestryChanged:connect(GraphicalEffects.PreloadsAncestryChanged) |
1754 | + | bndm.Scale = Vector3.new(8, 8, 8) |
1755 | - | decal.Parent = preload_part |
1755 | + | out.CFrame = larm.CFrame * CFrame.new(0, -2.7, 0) |
1756 | bem.CFrame = out.CFrame * CFrame.new(0, -2.5, 0) * CFrame.Angles(0, 0, math.rad(90)) | |
1757 | - | preload_part.Parent = Workspace |
1757 | + | bnd.CFrame = bem.CFrame * CFrame.new(0, 0, 0) |
1758 | rng.CFrame = out.CFrame * CFrame.Angles(math.rad(90), 0, 0) | |
1759 | - | function GraphicalEffects.PreloadsAncestryChanged(child, parent) |
1759 | + | rng3.CFrame = rng.CFrame * CFrame.new(0, -.5, 0) |
1760 | - | if not reloadingPreloads and parent ~= GraphicalEffects.preload_part and parent ~= Workspace then |
1760 | + | rng4.CFrame = rng.CFrame * CFrame.new(0, -1, 0) |
1761 | - | reloadingPreloads = true |
1761 | + | Debounces.Shewt = true |
1762 | - | for _, connection in pairs(preloadConnections) do |
1762 | + | |
1763 | - | connection:disconnect() |
1763 | + | for i = 1, 20, 0.2 do |
1764 | - | preloadConnections[_] = nil |
1764 | + | rngm.Scale = Vector3.new(50 + i*5, 50 + i*5, 1) |
1765 | rngm3.Scale = Vector3.new(30 + i*25, 30 + i*25, 1) | |
1766 | - | wait(1) |
1766 | + | rngm4.Scale = Vector3.new(27 + i*30, 27 + i*30, 1) |
1767 | - | reloadingPreloads = false |
1767 | + | rng.Transparency = i/30 |
1768 | - | GraphicalEffects.InitPreloads() |
1768 | + | rng3.Transparency = 1/34 |
1769 | rng4.Transparency = i/36 | |
1770 | wait() | |
1771 | - | GraphicalEffects.InitPreloads() |
1771 | + | |
1772 | - | -- Hyper beam |
1772 | + | |
1773 | - | function GraphicalEffects.FireSpaceHyperBeam(target, power, duration, radius, height, deviation) |
1773 | + | rng:Destroy() |
1774 | - | local stepTime, gameTime = 1 / 30, TaskScheduler.GetCurrentTime() |
1774 | + | |
1775 | - | local frames = duration * 30 |
1775 | + | if Debounces.Shewt == true then |
1776 | - | local beamColorOffset = 0.75 * tick() -- math.random() |
1776 | + | larm:WaitForChild("Beam" .. shot).Touched:connect(function(ht) |
1777 | - | local blastPressure = power * 62500 + 250000 |
1777 | + | hit = ht.Parent |
1778 | - | local beamPart = Instance.new("Part") |
1778 | + | if hit:IsA("Model") and hit:findFirstChild("Humanoid") then |
1779 | - | local beamMesh = Instance.new("SpecialMesh", beamPart) |
1779 | + | if HasntTouched(hit.Name) == true and deb == false then |
1780 | - | local explosion = Instance.new("Explosion") |
1780 | + | deb = true |
1781 | - | local sound = Instance.new("Sound", beamPart) |
1781 | + | |
1782 | - | beamPart.Anchored = true |
1782 | + | hit:FindFirstChild("Humanoid").PlatformStand = true |
1783 | - | beamPart.CanCollide = false |
1783 | + | hit:FindFirstChild("Torso").Velocity = char.Head.CFrame.lookVector * 200 |
1784 | - | beamPart.CFrame = CFrame.new(target, target + Vector3.new(deviation * (math.random() - 0.5), deviation * (math.random() - 0.5), height)) |
1784 | + | hit:FindFirstChild("Humanoid"):TakeDamage(math.huge) |
1785 | - | beamPart.FormFactor = "Custom" |
1785 | + | |
1786 | - | beamPart.Locked = true |
1786 | + | table.insert(Touche, hit.Name) |
1787 | - | beamPart.Size = Vector3.new(0.2, 0.2, 0.2) |
1787 | + | deb = false |
1788 | - | beamMesh.MeshId = "rbxassetid://15310891" |
1788 | + | |
1789 | - | beamMesh.MeshType = "FileMesh" |
1789 | + | elseif hit:IsA("Hat") and hit.Parent:findFirstChild("Humanoid") then |
1790 | - | beamMesh.TextureId = "rbxassetid://36527089" |
1790 | + | if HasntTouched(hit.Parent.Name) == true and deb == false then |
1791 | - | local beamGlowPart1 = beamPart:Clone() |
1791 | + | deb = true |
1792 | - | local beamGlowMesh1 = beamMesh:Clone() |
1792 | + | |
1793 | - | local beamGlowPart2 = beamPart:Clone() |
1793 | + | hit.Parent:FindFirstChild("Humanoid").PlatformStand = true |
1794 | - | local beamGlowMesh2 = beamMesh:Clone() |
1794 | + | hit.Parent:FindFirstChild("Torso").Velocity = char.Head.CFrame.lookVector * 200 |
1795 | - | local beamLight = Instance.new("PointLight", beamPart) |
1795 | + | |
1796 | - | beamLight.Range = power * 2 |
1796 | + | hit.Parent:FindFirstChild("Humanoid").PlatformStand = false |
1797 | - | beamLight.Shadows = true |
1797 | + | |
1798 | - | explosion.BlastPressure = blastPressure |
1798 | + | table.insert(Touche, hit.Parent.Name) |
1799 | - | explosion.BlastRadius = power |
1799 | + | deb = false |
1800 | - | explosion.Position = target |
1800 | + | for i, v in pairs(Touche) do |
1801 | - | sound.SoundId = "rbxassetid://2248511" |
1801 | + | print(v) |
1802 | - | sound.Volume = 1 |
1802 | + | |
1803 | - | local explosionHitConnection = explosion.Hit:connect(function(part, distance) |
1803 | + | |
1804 | - | if not part.Anchored and part:GetMass() < power * power then |
1804 | + | |
1805 | - | pcall(part.BreakJoints, part) |
1805 | + | |
1806 | - | part.Color = Color3.new(Utility.GetRainbowRGB(1.5 * gameTime + beamColorOffset)) |
1806 | + | |
1807 | for i = 0, 260, 8 do | |
1808 | bem.Size = Vector3.new(i, 10, 10) | |
1809 | - | beamPart.Transparency = 0.5 |
1809 | + | out.CFrame = larm.CFrame * CFrame.new(0, -2.7, 0) |
1810 | - | beamPart.Archivable = false |
1810 | + | bem.CFrame = larm.CFrame * CFrame.new(0, -4.2 -(i/2), 0) * CFrame.Angles(0, 0, math.rad(90)) |
1811 | - | beamGlowPart1.Transparency = 0.75 |
1811 | + | bnd.CFrame = bem.CFrame * CFrame.new(-i/2, 0, 1.2) |
1812 | - | beamGlowPart2.Transparency = 0.75 |
1812 | + | bnd.Size = Vector3.new(1,1,1) |
1813 | - | beamGlowMesh1.Parent = beamGlowPart1 |
1813 | + | bndm.Scale = Vector3.new(8,8,8) |
1814 | - | beamGlowPart1.Parent = beamPart |
1814 | + | if i % 10 == 0 then |
1815 | - | beamGlowMesh2.Parent = beamGlowPart2 |
1815 | + | local newRng = rng2:Clone() |
1816 | - | beamGlowPart2.Parent = beamPart |
1816 | + | newRng.Parent = larm |
1817 | - | beamPart.Parent = workspace |
1817 | + | newRng.CFrame = larm.CFrame * CFrame.new(0, -4.2-i, 0) * CFrame.Angles(math.rad(90), 0, 0) |
1818 | - | explosion.Parent = workspace |
1818 | + | local newRngm = rngm2:clone() |
1819 | - | for frame = 1, frames do |
1819 | + | newRngm.Parent=newRng |
1820 | - | local progress = frame / frames |
1820 | + | |
1821 | - | local alpha = 1 - math.sin(0.5 * math.pi * progress) |
1821 | + | for i = 1, 10, 0.2 do |
1822 | - | local scale = 0.4 * alpha |
1822 | + | newRngm.Scale = Vector3.new(50 + i*30, 50 + i*30, 3) |
1823 | - | local glowScale1 = alpha * (0.5 + 0.5 * math.sin(math.tau * (8 * gameTime + beamColorOffset))) |
1823 | + | newRng.Transparency = i/10 |
1824 | - | local glowScale2 = alpha * (0.5 + 0.5 * math.cos(math.tau * (8 * gameTime + beamColorOffset))) |
1824 | + | |
1825 | - | local vertexColor = Vector3.new(Utility.GetRainbowRGB(1.5 * gameTime + beamColorOffset)) |
1825 | + | |
1826 | - | beamLight.Brightness = 1 - progress |
1826 | + | |
1827 | - | beamLight.Color = Color3.new(vertexColor.x, vertexColor.y, vertexColor.z) |
1827 | + | newRng:Destroy() |
1828 | - | beamMesh.Scale = Vector3.new(radius * scale, 9000, radius * scale) |
1828 | + | |
1829 | - | beamMesh.VertexColor = vertexColor |
1829 | + | |
1830 | - | beamGlowMesh1.Scale = Vector3.new(1.2 * radius * glowScale1, 9000, 1.2 * radius * glowScale1) |
1830 | + | |
1831 | - | beamGlowMesh1.VertexColor = vertexColor |
1831 | + | |
1832 | - | beamGlowMesh2.Scale = Vector3.new(1.2 * radius * glowScale2, 9000, 1.2 * radius * glowScale2) |
1832 | + | |
1833 | - | beamGlowMesh2.VertexColor = vertexColor |
1833 | + | Debounces.Shewt = false |
1834 | - | RunService.Stepped:wait() |
1834 | + | bem:Destroy() |
1835 | - | gameTime = TaskScheduler.GetCurrentTime() |
1835 | + | out:Destroy() |
1836 | - | if frame <= 2 then |
1836 | + | bnd:Destroy() |
1837 | - | local explosion = Instance.new("Explosion") |
1837 | + | Debounces.Ready = false |
1838 | - | explosion.BlastPressure = (1 - progress) * blastPressure |
1838 | + | for i, v in pairs(Touche) do |
1839 | - | explosion.BlastRadius = (1 - progress) * power |
1839 | + | table.remove(Touche, i) |
1840 | - | explosion.Position = target |
1840 | + | |
1841 | - | explosion.Parent = Workspace |
1841 | + | |
1842 | - | if frame == 2 then |
1842 | + | table.insert(Touche, char.Name) |
1843 | - | sound:Play() |
1843 | + | Debounces.NoIdl = false |
1844 | if Debounces.CanAttack == false then | |
1845 | Debounces.CanAttack = true | |
1846 | end | |
1847 | - | pcall(beamPart.Destroy, beamPart) |
1847 | + | |
1848 | - | explosionHitConnection:disconnect() |
1848 | + | |
1849 | end) | |
1850 | - | function GraphicalEffects.SpaceHyperBeam(target, power, duration, radius, height, deviation) |
1850 | + | ---------------------------------------------------- |
1851 | - | TaskScheduler.Start(GraphicalEffects.FireSpaceHyperBeam, target, power or 12, duration or 1.5, radius or 6, height or 600, deviation or 20) |
1851 | + | Charging = false |
1852 | mouse.KeyDown:connect(function(key) | |
1853 | - | |
1853 | + | if key == "r" then |
1854 | - | function GraphicalEffects.CrystalRing(data) |
1854 | + | if Charging == false then |
1855 | - | data = data or {} |
1855 | + | Charging = true |
1856 | - | local crystal_count = data.crystal_count or 10 |
1856 | + | if Debounces.CanAttack == true then |
1857 | - | local crystal_color = data.crystal_color or BrickColor.new("Bright red") |
1857 | + | Debounces.CanAttack = false |
1858 | - | local crystal_scale = data.crystal_scale or Vector3.new(2 / 3, 2, 2 / 3) |
1858 | + | Debounces.NoIdl = true |
1859 | - | local fade_out_color = data.fade_out_color or BrickColor.new("Really black") |
1859 | + | Debounces.on = true |
1860 | - | local radius = radius or 1.25 * crystal_count / math.pi |
1860 | + | for i = 1,20 do |
1861 | - | local spawn_duration = data.spawn_duration or 0.065 |
1861 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.2,0.65,-.4)*CFrame.Angles(math.rad(130),math.rad(0),math.rad(-40)), 0.2) |
1862 | - | local full_spawn_duration = spawn_duration * crystal_count |
1862 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.2,0.65,-.4)*CFrame.Angles(math.rad(130),math.rad(0),math.rad(40)), 0.2) |
1863 | - | local float_duration = data.float_duration or 5 |
1863 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(0),0), 0.2) |
1864 | - | local wave_amplitude = data.wave_amplitude or 0.5 |
1864 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(-10), math.rad(0), 0), 0.2) |
1865 | - | local wave_period = data.wave_period or 1 |
1865 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, .4, -0.8) * CFrame.Angles(math.rad(-6), math.rad(0), math.rad(0)), 0.2) |
1866 | - | local appear_duration = data.appear_duration or 0.1 |
1866 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, .4, -0.8) * CFrame.Angles(math.rad(-6), math.rad(0), math.rad(0)), 0.2) |
1867 | - | local disappear_duration = data.disappear_duration or 0.5 |
1867 | + | if Debounces.on == false then break end |
1868 | - | local base_part = data.base_part |
1868 | + | rs:wait() |
1869 | - | local offset_cframe |
1869 | + | end |
1870 | - | if data.position then |
1870 | + | --[[for i = 1,20 do |
1871 | - | offset_cframe = CFrame.new(data.position) |
1871 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.65,0)*CFrame.Angles(math.rad(-20),math.rad(-20),math.rad(50)), 0.4) |
1872 | - | if base_part then |
1872 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.65,0)*CFrame.Angles(math.rad(-20),math.rad(20),math.rad(-50)), 0.4) |
1873 | - | offset_cframe = base_part.CFrame:toObjectSpace(offset_cframe) |
1873 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,.1)*CFrame.Angles(math.rad(34),math.rad(0),0), 0.4) |
1874 | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(15), math.rad(0), math.rad(0)), 0.4) | |
1875 | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-10), 0, math.rad(-10)), 0.4) | |
1876 | - | offset_cframe = CFrame.new() |
1876 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-10), 0, math.rad(10)), 0.4) |
1877 | if Debounces.on == false then break end | |
1878 | - | local crystal_template = Instance.new("Part") |
1878 | + | rs:wait() |
1879 | - | crystal_template.Anchored = true |
1879 | + | end]]-- |
1880 | - | crystal_template.Locked = true |
1880 | + | pt=Instance.new('Part',torso) |
1881 | - | crystal_template.CanCollide = false |
1881 | + | pt.Anchored=true |
1882 | - | crystal_template.BottomSurface = "Smooth" |
1882 | + | pt.CanCollide=false |
1883 | - | crystal_template.TopSurface = "Smooth" |
1883 | + | pt.Locked = true |
1884 | - | crystal_template.BrickColor = crystal_color |
1884 | + | pt.FormFactor='Custom' |
1885 | - | crystal_template.FormFactor = "Symmetric" |
1885 | + | pt.Size=Vector3.new(1,1,1) |
1886 | - | crystal_template.Size = Vector3.new(1, 1, 1) |
1886 | + | pt.CFrame=root.CFrame*CFrame.new(0,-1,0) |
1887 | - | local crystal_light = Instance.new("PointLight", crystal_template) |
1887 | + | pt.Transparency=.6 |
1888 | - | crystal_light.Brightness = 0.1 / crystal_count |
1888 | + | pt.BrickColor=BrickColor.new('Crimson') |
1889 | - | crystal_light.Color = crystal_color.Color |
1889 | + | msh=Instance.new('SpecialMesh',pt) |
1890 | - | crystal_light.Name = "Light" |
1890 | + | msh.MeshId='http://www.roblox.com/asset/?id=20329976' |
1891 | - | crystal_light.Range = radius |
1891 | + | msh.Scale=Vector3.new(9.5,9.5,9.5) |
1892 | - | crystal_light.Shadows = true |
1892 | + | pt2=pt:clone() |
1893 | - | local crystal_mesh = Instance.new("SpecialMesh", crystal_template) |
1893 | + | pt2.Parent = torso |
1894 | - | crystal_mesh.MeshId = "rbxassetid://9756362" |
1894 | + | pt2.CFrame=root.CFrame*CFrame.new(0,-1,0) |
1895 | - | crystal_mesh.MeshType = "FileMesh" |
1895 | + | pt2.BrickColor=BrickColor.new("Crimson") |
1896 | - | crystal_mesh.Name = "Mesh" |
1896 | + | msh2=msh:clone() |
1897 | - | crystal_mesh.Scale = crystal_scale |
1897 | + | msh2.Parent=pt2 |
1898 | - | local crystal_model = Instance.new("Model") |
1898 | + | msh2.Scale=Vector3.new(9.5,9.5,9.5) |
1899 | - | crystal_model.Archivable = false |
1899 | + | |
1900 | - | crystal_model.Name = "Crystal Model" |
1900 | + | custommath={25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-63,-64,-65,-66,-67,-68,-69,-70,-71,-72,-73,-74,-75,-76,-77,-78,-79,-80,-81,-82,-83,-84,-85,-86,-87,-88,-89,-90,-91,-92,-93,-94,-95,-96,-97,-98,-99,-100} |
1901 | - | crystal_model.Parent = Workspace |
1901 | + | |
1902 | - | local crystals = {} |
1902 | + | bl = Instance.new("Part", char) |
1903 | - | local lights = {} |
1903 | + | bl.Locked = true |
1904 | - | local meshes = {} |
1904 | + | bl.Name = "Shell" |
1905 | - | for index = 1, crystal_count do |
1905 | + | bl.BrickColor = BrickColor.new("Crimson") |
1906 | - | local crystal = crystal_template:Clone() |
1906 | + | bl.Anchored = true |
1907 | - | crystal.Parent = crystal_model |
1907 | + | bl.CanCollide = false |
1908 | - | crystals[index] = crystal |
1908 | + | bl.Transparency = 0 |
1909 | - | lights[index] = crystal.Light |
1909 | + | bl.Reflectance = 0 |
1910 | - | meshes[index] = crystal.Mesh |
1910 | + | bl.BottomSurface = 0 |
1911 | bl.TopSurface = 0 | |
1912 | - | local start_time = tick() |
1912 | + | bl.Shape = 0 |
1913 | - | repeat |
1913 | + | blm = Instance.new("SpecialMesh",bl) |
1914 | - | local base_cframe = offset_cframe |
1914 | + | blm.MeshType = "Sphere" |
1915 | - | if base_part then |
1915 | + | blm.Scale = Vector3.new(9.5,9.5,9.5) |
1916 | - | base_cframe = base_part.CFrame * base_cframe |
1916 | + | blm.MeshId = "rbxassetid://9982590" |
1917 | ||
1918 | - | local elapsed_time = tick() - start_time |
1918 | + | coroutine.resume(coroutine.create(function() |
1919 | - | for index, crystal in ipairs(crystals) do |
1919 | + | for i=1, math.huge, 4 do |
1920 | - | local crystal_time = elapsed_time - index * spawn_duration |
1920 | + | if Charging == true then |
1921 | - | local disappear_time = crystal_time - float_duration |
1921 | + | rs:wait() |
1922 | - | local offset |
1922 | + | bl.CFrame = root.CFrame * CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(-i/10), math.rad(-i/10), math.rad(i/10)) |
1923 | - | if crystal_time < 0 then |
1923 | + | blm.Scale = blm.Scale + Vector3.new(9.5,9.5,9.5) |
1924 | - | offset = 0 |
1924 | + | bl.Transparency = bl.Transparency + 0.1 |
1925 | - | elseif crystal_time < appear_duration then |
1925 | + | pt.CFrame = root.CFrame*CFrame.new(0,-1,0) * CFrame.Angles(0,math.rad(i*2),0) |
1926 | - | offset = radius * crystal_time / appear_duration |
1926 | + | pt2.CFrame = root.CFrame*CFrame.new(0,-1,0) * CFrame.Angles(0,math.rad(-i*2),0) |
1927 | - | else |
1927 | + | msh.Scale = msh.Scale + Vector3.new(9.5,0,9.5) |
1928 | - | offset = radius |
1928 | + | msh2.Scale = msh2.Scale + Vector3.new(9.5,0,9.5) |
1929 | elseif Charging == false then break | |
1930 | - | local wave_offset |
1930 | + | end |
1931 | - | if disappear_time >= 0 then |
1931 | + | |
1932 | - | local disappear_progress = disappear_time / disappear_duration |
1932 | + | end)) |
1933 | - | if disappear_progress > 1 then |
1933 | + | |
1934 | - | if crystal.Parent then |
1934 | + | repeat |
1935 | - | crystal:Destroy() |
1935 | + | local p = Instance.new('Part',torso) |
1936 | - | end |
1936 | + | p.formFactor = 'Custom' |
1937 | - | else |
1937 | + | p.Size = Vector3.new(1,1,1) |
1938 | - | local inverse_progress = 1 - disappear_progress |
1938 | + | p.BrickColor = BrickColor.new('Crimson') |
1939 | - | local light = lights[index] |
1939 | + | p.CanCollide = false |
1940 | - | local mesh = meshes[index] |
1940 | + | p.Transparency = 0 |
1941 | - | crystal.BrickColor = fade_out_color |
1941 | + | p.Anchored = true |
1942 | - | light.Brightness = 2 * inverse_progress |
1942 | + | p.Locked=true |
1943 | - | light.Range = 2 * radius |
1943 | + | p.Material = workspace.Base.Material |
1944 | - | mesh.Scale = crystal_scale * inverse_progress |
1944 | + | s = math.random(1,40)/10 |
1945 | local m = Instance.new("BlockMesh",p) | |
1946 | - | wave_offset = 0 |
1946 | + | m.Scale = Vector3.new(s,s,s) |
1947 | - | else |
1947 | + | p.CFrame = torso.CFrame*CFrame.new(custommath[math.random(1,#custommath)]/10,-math.random(5,7),custommath[math.random(1,#custommath)]/10)*CFrame.Angles(math.random(),math.random(),math.random()) |
1948 | - | wave_offset = wave_amplitude * math.sin(math.tau * (elapsed_time - index / crystal_count * 3) / wave_period) |
1948 | + | --[[coroutine.wrap(function() |
1949 | wait(2) | |
1950 | - | local rotation_angle = (tick() * 0.5 + (index - 1) / crystal_count) % 1 * math.tau |
1950 | + | while Charging == true do |
1951 | - | crystal.CFrame = base_cframe * CFrame.Angles(0, rotation_angle, 0) * CFrame.new(0, wave_offset, -offset) |
1951 | + | wait(2) |
1952 | GroundWave1() | |
1953 | - | RunService.Stepped:wait() |
1953 | + | wait(2) |
1954 | - | until elapsed_time >= float_duration + full_spawn_duration + disappear_duration |
1954 | + | |
1955 | - | if crystal_model.Parent then |
1955 | + | end)()]]-- |
1956 | - | crystal_model:Destroy() |
1956 | + | Spawn(function() |
1957 | while rs:wait() do | |
1958 | if Charging == true then | |
1959 | - | |
1959 | + | rarm.Weld.C0 = CFrame.new(1.5,0.65,0)*CFrame.Angles(math.rad(math.random(-36,-20)),math.rad(math.random(-30,-20)),math.rad(math.random(30,50))) |
1960 | - | GraphicalEffects.magicCircleData = {} |
1960 | + | larm.Weld.C0 = CFrame.new(-1.5,0.65,0)*CFrame.Angles(math.rad(math.random(-36,-20)),math.rad(math.random(20,30)),math.rad(math.random(-50,-30))) |
1961 | - | GraphicalEffects.MAGIC_CIRCLE_DEFAULT_OFFSET = 6.25 |
1961 | + | hed.Weld.C0 = CFrame.new(0,1.5,.1)*CFrame.Angles(math.rad(math.random(26,34)),math.rad(math.random(-5,5)),math.rad(0)) |
1962 | - | function GraphicalEffects.AnimateMagicCircle(data) |
1962 | + | torso.Weld.C0 = CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(10), math.rad(math.random(-4,4)), math.rad(0)) |
1963 | - | local frame, direction, magic_circle_model, magic_circle_part, magic_circle_light, magic_circle_decal_back, magic_circle_decal_front, duration, |
1963 | + | lleg.Weld.C0 = CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(math.random(-10,-6)), math.rad(math.random(10,20)), math.rad(math.random(-20,-10))) |
1964 | - | |
1964 | + | rleg.Weld.C0 = CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(math.random(-10,-6)), math.rad(math.random(-20,-10)), math.rad(math.random(10,20))) |
1965 | - | stay, magic_circle_adornee_func, magic_circle_offset = unpack(data) |
1965 | + | elseif Charging == false then break |
1966 | - | frame = frame + 1 |
1966 | + | end |
1967 | - | data[1] = frame |
1967 | + | |
1968 | - | local transparency = (frame / duration) ^ stay |
1968 | + | end) |
1969 | - | local opacity = 1 - transparency |
1969 | + | Spawn(function() |
1970 | - | if frame == duration then |
1970 | + | while rs:wait() do |
1971 | - | pcall(Game.Destroy, magic_circle_model) |
1971 | + | if p.Transparency >= 1 then p:Destroy() break end |
1972 | - | GraphicalEffects.magicCircleData[data] = nil |
1972 | + | p.CFrame = p.CFrame*CFrame.Angles(math.rad(2),math.rad(2),math.rad(2))+Vector3.new(0,0.2,0) |
1973 | p.Transparency = p.Transparency+0.01 | |
1974 | - | if magic_circle_model.Parent ~= Workspace then |
1974 | + | |
1975 | - | pcall(Utility.SetProperty, magic_circle_model, "Parent", Workspace) |
1975 | + | |
1976 | wait(.3) | |
1977 | - | local magic_circle_adornee = magic_circle_adornee_func() |
1977 | + | until Charging == false |
1978 | - | magic_circle_position = magic_circle_adornee.Position + direction * magic_circle_offset |
1978 | + | end |
1979 | - | local magic_circle_cframe = CFrame.new(magic_circle_position, magic_circle_position + direction) * CFrame.Angles(0, 0, math.tau * frame / |
1979 | + | |
1980 | - | |
1980 | + | |
1981 | - | 25) |
1981 | + | |
1982 | - | magic_circle_part.CFrame = magic_circle_cframe |
1982 | + | ---------------------------------------------------- |
1983 | - | magic_circle_light.Brightness = opacity |
1983 | + | mouse.KeyUp:connect(function(key) |
1984 | - | magic_circle_decal_back.Transparency = transparency |
1984 | + | if key == "r" then |
1985 | - | magic_circle_decal_front.Transparency = transparency |
1985 | + | if Charging == true then |
1986 | Charging = false | |
1987 | pt:Destroy() | |
1988 | - | function GraphicalEffects.CreateMagicCircle(target, magic_circle_scale, magic_circle_image, light_color, duration, stay, magic_circle_adornee_func, |
1988 | + | pt2:Destroy() |
1989 | - | |
1989 | + | bl:Destroy() |
1990 | - | magic_circle_offset) |
1990 | + | if Debounces.CanAttack == false then |
1991 | - | local magic_circle_adornee = magic_circle_adornee_func() |
1991 | + | Debounces.CanAttack = true |
1992 | - | if magic_circle_adornee then |
1992 | + | Debounces.NoIdl = false |
1993 | - | local origin = magic_circle_adornee.Position |
1993 | + | Debounces.on = false |
1994 | - | local direction = (target - origin).unit |
1994 | + | end |
1995 | - | local magic_circle_position = origin + direction * magic_circle_offset |
1995 | + | |
1996 | - | local magic_circle_cframe = CFrame.new(magic_circle_position, magic_circle_position + direction) |
1996 | + | |
1997 | - | local magic_circle_model = Instance.new("Model") |
1997 | + | |
1998 | - | local magic_circle_part = Instance.new("Part", magic_circle_model) |
1998 | + | ---------------------------------------------------- |
1999 | - | local magic_circle_mesh = Instance.new("BlockMesh", magic_circle_part) |
1999 | + | mouse.KeyDown:connect(function(key) |
2000 | - | local magic_circle_light = Instance.new("PointLight", magic_circle_part) |
2000 | + | if key == "g" then |
2001 | - | local magic_circle_decal_back = Instance.new("Decal", magic_circle_part) |
2001 | + | if Debounces.CanAttack == true then |
2002 | - | local magic_circle_decal_front = Instance.new("Decal", magic_circle_part) |
2002 | + | Debounces.CanAttack = false |
2003 | - | magic_circle_model.Archivable = false |
2003 | + | Debounces.NoIdl = true |
2004 | - | magic_circle_part.Anchored = true |
2004 | + | Debounces.on = true |
2005 | - | magic_circle_part.BottomSurface = "Smooth" |
2005 | + | local shell = Instance.new("Part",torso) |
2006 | - | magic_circle_part.CanCollide = false |
2006 | + | shell.BrickColor = BrickColor.new("Crimson") |
2007 | - | magic_circle_part.CFrame = magic_circle_cframe |
2007 | + | shell.Anchored = true |
2008 | - | magic_circle_part.FormFactor = "Custom" |
2008 | + | shell.CanCollide = false |
2009 | - | magic_circle_part.Locked = true |
2009 | + | shell.Locked = true |
2010 | - | magic_circle_part.Size = Vector3.new(0.2, 0.2, 0.2) |
2010 | + | shell.TopSurface = "SmoothNoOutlines" |
2011 | - | magic_circle_part.TopSurface = "Smooth" |
2011 | + | shell.BottomSurface = "SmoothNoOutlines" |
2012 | - | magic_circle_part.Transparency = 1 |
2012 | + | shell.Size = Vector3.new(1,1,1) |
2013 | - | magic_circle_mesh.Scale = Vector3.new(60, 60, 0) * magic_circle_scale |
2013 | + | shellm = Instance.new("SpecialMesh",shell) |
2014 | - | magic_circle_light.Color = light_color |
2014 | + | shellm.MeshType = "Sphere" |
2015 | - | magic_circle_light.Range = 16 * magic_circle_scale |
2015 | + | shellm.Scale = Vector3.new(1,1,1) |
2016 | - | magic_circle_light.Shadows = true |
2016 | + | local shell2 = Instance.new("Part",torso) |
2017 | - | magic_circle_decal_back.Face = "Back" |
2017 | + | shell2.BrickColor = BrickColor.new("Crimson") |
2018 | - | magic_circle_decal_back.Texture = magic_circle_image |
2018 | + | shell2.Anchored = true |
2019 | - | magic_circle_decal_front.Face = "Front" |
2019 | + | shell2.CanCollide = false |
2020 | - | magic_circle_decal_front.Texture = magic_circle_image |
2020 | + | shell2.Locked = true |
2021 | - | magic_circle_model.Parent = Workspace |
2021 | + | shell2.TopSurface = "SmoothNoOutlines" |
2022 | - | local data = {0, direction, magic_circle_model, magic_circle_part, magic_circle_light, magic_circle_decal_back, magic_circle_decal_front, |
2022 | + | shell2.BottomSurface = "SmoothNoOutlines" |
2023 | - | |
2023 | + | shell2.Size = Vector3.new(1,1,1) |
2024 | - | duration, stay, magic_circle_adornee_func, magic_circle_offset} |
2024 | + | shellm2 = Instance.new("SpecialMesh",shell2) |
2025 | - | GraphicalEffects.magicCircleData[data] = true |
2025 | + | shellm2.MeshType = "Sphere" |
2026 | - | return data |
2026 | + | shellm2.Scale = Vector3.new(1,1,1) |
2027 | ||
2028 | function FindNearestTorso(Position,Distance,SinglePlayer) | |
2029 | - | |
2029 | + | if SinglePlayer then return(SinglePlayer.Torso.CFrame.p -Position).magnitude < Distance end |
2030 | - | GraphicalEffects.missileData = {} |
2030 | + | local List = {} |
2031 | - | GraphicalEffects.missileParts = {} |
2031 | + | for i,v in pairs(workspace:GetChildren())do |
2032 | - | function GraphicalEffects.AnimateMissile(data) |
2032 | + | if v:IsA("Model")then |
2033 | - | local frame, missilePart, targetPart, timeCreated, direction, touchedConnection, explodeRequested, bodyGyro, swooshSound, magicCircleData, lifeTime, |
2033 | + | if v:findFirstChild("Torso")then |
2034 | - | |
2034 | + | if v ~= char then |
2035 | - | pointOnPart, flipped = unpack(data) |
2035 | + | if(v.Torso.Position -Position).magnitude <= Distance then |
2036 | - | frame = frame + 1 |
2036 | + | table.insert(List,v) |
2037 | - | data[1] = frame |
2037 | + | |
2038 | - | if flipped then |
2038 | + | |
2039 | - | direction = -direction |
2039 | + | |
2040 | end | |
2041 | - | if frame <= 10 then |
2041 | + | |
2042 | - | if frame == 2 then |
2042 | + | return List |
2043 | - | swooshSound:Play() |
2043 | + | |
2044 | ||
2045 | - | missilePart.Anchored = true |
2045 | + | Shell = function() |
2046 | - | local progress = frame / 10 |
2046 | + | local X = Instance.new("Part",char) |
2047 | - | missilePart.Size = Vector3.new(1, 1, progress * 4) |
2047 | + | local O = Instance.new("ObjectValue",X) |
2048 | - | local magicCirclePart = magicCircleData[4] |
2048 | + | O.Name = "creator" |
2049 | - | local magicCirclePosition = magicCirclePart.Position |
2049 | + | X.Locked = true |
2050 | - | local missileOffset = 2 * progress * direction |
2050 | + | X.Name = "Shell" |
2051 | - | local missilePosition = magicCirclePosition + missileOffset |
2051 | + | X.Anchored = false |
2052 | - | missilePart.CFrame = CFrame.new(missilePosition, missilePosition + direction) |
2052 | + | X.CanCollide = false |
2053 | - | --missilePart.Transparency = 0.5 * (1 - progress) |
2053 | + | X.Transparency = 0 |
2054 | - | if frame == 10 then |
2054 | + | X.Reflectance = 0 |
2055 | - | touchedConnection = missilePart.Touched:connect(function(hit) |
2055 | + | X.BottomSurface = 0 |
2056 | - | if hit.CanCollide and hit.Parent and not GraphicalEffects.missileParts[hit] then |
2056 | + | X.TopSurface = 0 |
2057 | - | touchedConnection:disconnect() |
2057 | + | X.Shape = 0 |
2058 | - | data[7] = true |
2058 | + | local V = Instance.new("ObjectValue",X) |
2059 | V.Value = char | |
2060 | - | end) |
2060 | + | V.Name = "creator" |
2061 | - | data[6] = touchedConnection |
2061 | + | X.BrickColor = BrickColor.new("Crimson") |
2062 | X.Size = Vector3.new(1,1,1) | |
2063 | --X.Material = "Neon" | |
2064 | - | missilePart.Anchored = false |
2064 | + | local Z = Instance.new("SpecialMesh",X) |
2065 | - | local missilePosition = missilePart.Position |
2065 | + | Z.MeshType = "Sphere" |
2066 | - | local targetPosition = targetPart.CFrame * pointOnPart |
2066 | + | Z.Scale = Vector3.new(1,1,1) |
2067 | - | local distanceVector = targetPosition - missilePosition |
2067 | + | X.CFrame = rarm.CFrame*CFrame.new(0,-6,0) |
2068 | - | local elapsedTime = time() - timeCreated |
2068 | + | local bv = Instance.new("BodyVelocity",X) |
2069 | - | local targetParent = targetPart.Parent |
2069 | + | bv.maxForce = Vector3.new(99999,99999,99999) |
2070 | - | if explodeRequested or (targetParent and distanceVector.magnitude < 10) or elapsedTime > lifeTime then |
2070 | + | X.CFrame = CFrame.new(X.Position,root.CFrame.lookVector*10) |
2071 | - | GraphicalEffects.missileData[data] = nil |
2071 | + | bv.velocity = root.CFrame.lookVector*65 |
2072 | - | GraphicalEffects.missileParts[missilePart] = nil |
2072 | + | Explode = X.Touched:connect(function(hit) |
2073 | - | touchedConnection:disconnect() |
2073 | + | if hit ~= char and hit.Name ~= "Shell" and hit:IsA("Part") or hit:IsA("BasePart}") then |
2074 | - | if missilePart.Parent then |
2074 | + | local cf = X.CFrame |
2075 | - | missilePart:Destroy() |
2075 | + | bv:Destroy() |
2076 | - | local explosion = Instance.new("Explosion") |
2076 | + | X.Anchored = true |
2077 | - | explosion.BlastRadius = 12.5 |
2077 | + | Z:Remove() |
2078 | - | explosion.Position = missilePosition |
2078 | + | Explode:disconnect() |
2079 | - | local explosionHitConnection = explosion.Hit:connect(function(hit, distance) |
2079 | + | X.Size = Vector3.new(3,3,3) |
2080 | - | local missileData = GraphicalEffects.missileParts[hit] |
2080 | + | X.Touched:connect(function(hit) end) |
2081 | - | if missileData and distance < 3 then |
2081 | + | X.CanCollide = false |
2082 | - | missileData[7] = true |
2082 | + | for i,v in pairs(FindNearestTorso(X.CFrame.p,40))do |
2083 | - | else |
2083 | + | if v:FindFirstChild('Humanoid') then |
2084 | - | pcall(hit.BreakJoints, hit) |
2084 | + | v.Humanoid:TakeDamage(math.huge) |
2085 | - | end |
2085 | + | end |
2086 | - | end) |
2086 | + | |
2087 | - | explosion.Parent = Workspace |
2087 | + | for i = 1, (40) do rs:wait() |
2088 | - | TaskScheduler.Schedule(1, explosionHitConnection.disconnect, explosionHitConnection) |
2088 | + | X.Transparency = X.Transparency + (1/40) |
2089 | X.Size = X.Size + Vector3.new(1,1,1) | |
2090 | - | else |
2090 | + | X.CFrame = cf |
2091 | - | local targetInWorkspace = targetPart:IsDescendantOf(Workspace) |
2091 | + | end |
2092 | - | if targetInWorkspace then |
2092 | + | X:Destroy() |
2093 | - | direction = distanceVector.unit |
2093 | + | |
2094 | - | data[5] = direction |
2094 | + | end) |
2095 | end | |
2096 | - | local speed = 14 + elapsedTime * 10 |
2096 | + | Shell() |
2097 | - | local gyroD |
2097 | + | for i = 1, 10 do |
2098 | - | if elapsedTime < 42.5 and targetInWorkspace then |
2098 | + | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) |
2099 | - | gyroD = 1000 - elapsedTime * 15 |
2099 | + | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) |
2100 | - | else |
2100 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(110)), 0.7) |
2101 | - | gyroD = 100 |
2101 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-110)), 0.7) |
2102 | - | bodyGyro.maxTorque = Vector3.new(0, 0, 0) |
2102 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(0),0), 0.7) |
2103 | - | if elapsedTime + 7.5 < lifeTime then |
2103 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(0), 0), 0.7) |
2104 | - | data[11] = elapsedTime + 7.5 |
2104 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-20)), 0.7) |
2105 | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(20)), 0.7) | |
2106 | if Debounces.on == false then break end | |
2107 | - | bodyGyro.D = gyroD |
2107 | + | rs:wait() |
2108 | - | bodyGyro.cframe = CFrame.new(Vector3.new(), direction) |
2108 | + | end |
2109 | - | missilePart.Velocity = missilePart.CFrame.lookVector * speed |
2109 | + | Shell() |
2110 | shell.Transparency = 1 | |
2111 | for i = 1, 10 do | |
2112 | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) | |
2113 | - | function GraphicalEffects.ShootMissile(targetPart, pointOnPart, direction, magic_circle_adornee_func, magic_circle_offset, flipped) |
2113 | + | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) |
2114 | - | if not magic_circle_offset then |
2114 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-40)), 0.7) |
2115 | - | magic_circle_offset = GraphicalEffects.MAGIC_CIRCLE_DEFAULT_OFFSET |
2115 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-110)), 0.7) |
2116 | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(-50),0), 0.7) | |
2117 | - | local targetPosition = targetPart.Position |
2117 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(50), 0), 0.7) |
2118 | - | local headPosition = chatAdornee.Position |
2118 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(0), math.rad(-20)), 0.7) |
2119 | - | local origin = CFrame.new(headPosition, headPosition + direction) + direction * magic_circle_offset |
2119 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(0), math.rad(20)), 0.7) |
2120 | - | local missilePart = Instance.new("Part") |
2120 | + | if Debounces.on == false then break end |
2121 | - | local antiGravityForce = Instance.new("BodyForce", missilePart) |
2121 | + | rs:wait() |
2122 | - | local bodyGyro = Instance.new("BodyGyro", missilePart) |
2122 | + | end |
2123 | - | local explosionSound = Instance.new("Sound", missilePart) |
2123 | + | Shell() |
2124 | - | local swooshSound = Instance.new("Sound", missilePart) |
2124 | + | shell.Transparency = 0 |
2125 | - | antiGravityForce.force = Vector3.new(0, 196.2 * 4, 0) |
2125 | + | shell2.Transparency = 1 |
2126 | - | bodyGyro.D = 1000 |
2126 | + | for i = 1, 10 do |
2127 | - | bodyGyro.maxTorque = Vector3.new(1, 1, 1) |
2127 | + | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) |
2128 | - | explosionSound.PlayOnRemove = true |
2128 | + | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) |
2129 | - | explosionSound.SoundId = "rbxasset://sounds/collide.wav" |
2129 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(110)), 0.7) |
2130 | - | explosionSound.Volume = 1 |
2130 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(40)), 0.7) |
2131 | - | missilePart.Anchored = true |
2131 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(50),0), 0.7) |
2132 | - | missilePart.BackSurface = "Studs" |
2132 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-50), 0), 0.7) |
2133 | - | missilePart.BottomSurface = "Studs" |
2133 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(0), math.rad(-20)), 0.7) |
2134 | - | missilePart.BrickColor = BrickColor.Red() |
2134 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(0), math.rad(20)), 0.7) |
2135 | - | missilePart.CFrame = origin |
2135 | + | if Debounces.on == false then break end |
2136 | - | missilePart.FormFactor = "Custom" |
2136 | + | rs:wait() |
2137 | - | missilePart.FrontSurface = "Studs" |
2137 | + | end |
2138 | - | missilePart.LeftSurface = "Studs" |
2138 | + | Shell() |
2139 | - | missilePart.Locked = true |
2139 | + | shell2.Transparency = 0 |
2140 | - | missilePart.RightSurface = "Studs" |
2140 | + | shell.Transparency = 1 |
2141 | - | missilePart.Size = Vector3.new(1, 1, 0.2) |
2141 | + | for i = 1, 10 do |
2142 | - | missilePart.TopSurface = "Studs" |
2142 | + | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) |
2143 | - | --missilePart.Transparency = 0.5 |
2143 | + | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) |
2144 | - | swooshSound.Looped = true |
2144 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-40)), 0.7) |
2145 | - | swooshSound.SoundId = "rbxasset://sounds/Rocket whoosh 01.wav" |
2145 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-110)), 0.7) |
2146 | - | swooshSound.Volume = 0.7 |
2146 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(-50),0), 0.7) |
2147 | - | local magicCircleData = GraphicalEffects.CreateMagicCircle(headPosition + direction * 1000, 0.875, "rbxassetid://127033719", Color3.new(1, 1, 1), |
2147 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(50), 0), 0.7) |
2148 | - | |
2148 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(0), math.rad(-20)), 0.7) |
2149 | - | 40, 4, magic_circle_adornee_func or function() return chatAdornee end, magic_circle_offset) |
2149 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(0), math.rad(20)), 0.7) |
2150 | - | local data = {0, missilePart, targetPart, time(), direction, false, false, bodyGyro, swooshSound, magicCircleData, 50, pointOnPart, flipped} |
2150 | + | if Debounces.on == false then break end |
2151 | - | missilePart.Parent = Workspace |
2151 | + | rs:wait() |
2152 | - | GraphicalEffects.missileData[data] = true |
2152 | + | end |
2153 | - | GraphicalEffects.missileParts[missilePart] = data |
2153 | + | Shell() |
2154 | shell.Transparency = 0 | |
2155 | - | |
2155 | + | shell2.Transparency = 1 |
2156 | - | function GraphicalEffects.CubicInterpolate(y0, y1, y2, y3, mu) |
2156 | + | for i = 1, 10 do |
2157 | - | local a0, a1, a2, a3, mu2 |
2157 | + | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) |
2158 | - | mu2 = mu * mu |
2158 | + | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) |
2159 | - | a0 = y3 - y2 - y0 + y1 |
2159 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(110)), 0.7) |
2160 | - | a1 = y0 - y1 - a0 |
2160 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(40)), 0.7) |
2161 | - | a2 = y2 - y0 |
2161 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(50),0), 0.7) |
2162 | - | a3 = y1 |
2162 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-50), 0), 0.7) |
2163 | - | return a0 * mu * mu2 + a1 * mu2 + a2 * mu + a3 |
2163 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(0), math.rad(-20)), 0.7) |
2164 | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(0), math.rad(20)), 0.7) | |
2165 | - | function GraphicalEffects.JointCrap(model, cycletime) |
2165 | + | if Debounces.on == false then break end |
2166 | - | if model then |
2166 | + | rs:wait() |
2167 | - | local cycletime = cycletime or (0.75 * (1 + math.random() * 4)) |
2167 | + | end |
2168 | - | local offsetradius = 0.75 |
2168 | + | Shell() |
2169 | - | local rotationoffset = math.pi |
2169 | + | shell2.Transparency = 0 |
2170 | - | local joints = {} |
2170 | + | shell.Transparency = 1 |
2171 | - | local stack = model:GetChildren() |
2171 | + | for i = 1, 10 do |
2172 | - | while #stack ~= 0 do |
2172 | + | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) |
2173 | - | local object = stack[#stack] |
2173 | + | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) |
2174 | - | table.remove(stack) |
2174 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-40)), 0.7) |
2175 | - | for index, child in ipairs(object:GetChildren()) do |
2175 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-110)), 0.7) |
2176 | - | table.insert(stack, child) |
2176 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(-50),0), 0.7) |
2177 | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(50), 0), 0.7) | |
2178 | - | if object:IsA("JointInstance") then |
2178 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(0), math.rad(-20)), 0.7) |
2179 | - | table.insert(joints, object) |
2179 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(0), math.rad(20)), 0.7) |
2180 | if Debounces.on == false then break end | |
2181 | rs:wait() | |
2182 | - | local rot0 = {} |
2182 | + | end |
2183 | - | local rot1 = {} |
2183 | + | Shell() |
2184 | - | local rot2 = {} |
2184 | + | shell.Transparency = 0 |
2185 | - | local rot3 = {} |
2185 | + | shell2.Transparency = 1 |
2186 | - | local rot4 = {} |
2186 | + | for i = 1, 10 do |
2187 | - | for index, joint in ipairs(joints) do |
2187 | + | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) |
2188 | - | local pos = Vector3.new(math.random() - 0.5, math.random() - 0.5, math.random() - 0.5).unit * offsetradius |
2188 | + | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) |
2189 | - | local rot = Vector3.new(math.random(), math.random(), math.random()) * rotationoffset |
2189 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(110)), 0.7) |
2190 | - | rot0[index] = {joint.C0, joint.C1} |
2190 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(50),0), 0.5) |
2191 | - | rot = Vector3.new(rot.x % (math.tau), rot.y % (math.tau), rot.z % (math.tau)) |
2191 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(40)), 0.7) |
2192 | - | rot2[index] = {pos, rot} |
2192 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-50), 0), 0.7) |
2193 | - | pos = Vector3.new(math.random() - 0.5, math.random() - 0.5, math.random() - 0.5).unit * offsetradius |
2193 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(0), math.rad(-20)), 0.7) |
2194 | - | rot = rot + Vector3.new(math.random(), math.random(), math.random()) * rotationoffset |
2194 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(0), math.rad(20)), 0.7) |
2195 | - | rot = Vector3.new(rot.x % (math.tau), rot.y % (math.tau), rot.z % (math.tau)) |
2195 | + | if Debounces.on == false then break end |
2196 | - | rot3[index] = {pos, rot} |
2196 | + | rs:wait() |
2197 | - | pos = Vector3.new(math.random() - 0.5, math.random() - 0.5, math.random() - 0.5).unit * offsetradius |
2197 | + | end |
2198 | - | rot = rot + Vector3.new(math.random(), math.random(), math.random()) * rotationoffset |
2198 | + | Shell() |
2199 | - | rot = Vector3.new(rot.x % (math.tau), rot.y % (math.tau), rot.z % (math.tau)) |
2199 | + | shell2.Transparency = 0 |
2200 | - | rot4[index] = {pos, rot} |
2200 | + | shell.Transparency = 1 |
2201 | for i = 1, 10 do | |
2202 | - | while model.Parent do |
2202 | + | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) |
2203 | - | for i, j in ipairs(joints) do |
2203 | + | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) |
2204 | - | local pos = Vector3.new(math.random() - 0.5, math.random() - 0.5, math.random() - 0.5).unit * offsetradius |
2204 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-40)), 0.7) |
2205 | - | local rot = rot4[i][2] + Vector3.new(math.random(), math.random(), math.random()) * rotationoffset |
2205 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-110)), 0.7) |
2206 | - | rot = Vector3.new(rot.x % (math.tau), rot.y % (math.tau), rot.z % (math.tau)) |
2206 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(-50),0), 0.7) |
2207 | - | rot1[i], rot2[i], rot3[i], rot4[i] = rot2[i], rot3[i], rot4[i], {pos, rot} |
2207 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(50), 0), 0.7) |
2208 | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(0), math.rad(-20)), 0.7) | |
2209 | - | local start = tick() |
2209 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(0), math.rad(20)), 0.7) |
2210 | - | while true do |
2210 | + | if Debounces.on == false then break end |
2211 | - | local ctime = tick() |
2211 | + | rs:wait() |
2212 | - | local elapsed = ctime - start |
2212 | + | end |
2213 | - | if elapsed > cycletime then |
2213 | + | Shell() |
2214 | - | break |
2214 | + | shell.Transparency = 0 |
2215 | shell2.Transparency = 1 | |
2216 | - | local progress = elapsed / cycletime |
2216 | + | for i = 1, 10 do |
2217 | - | for index, joint in ipairs(joints) do |
2217 | + | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) |
2218 | - | local v0, v1, v2, v3, v4 = rot0[index], rot1[index], rot2[index], rot3[index], rot4[index] |
2218 | + | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) |
2219 | - | local p1, p2, p3, p4, r1, r2, r3, r4 = v1[1], v2[1], v3[1], v4[1], v1[2], v2[2], v3[2], v4[2] |
2219 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(110)), 0.7) |
2220 | - | local px = GraphicalEffects.CubicInterpolate(p1.x, p2.x, p3.x, p4.x, progress) |
2220 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(40)), 0.7) |
2221 | - | local py = GraphicalEffects.CubicInterpolate(p1.y, p2.y, p3.y, p4.y, progress) |
2221 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(50),0), 0.7) |
2222 | - | local pz = GraphicalEffects.CubicInterpolate(p1.z, p2.z, p3.z, p4.z, progress) |
2222 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-50), 0), 0.7) |
2223 | - | local rx = GraphicalEffects.CubicInterpolate(r1.x, r2.x, r3.x, r4.x, progress) |
2223 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(0), math.rad(-20)), 0.7) |
2224 | - | local ry = GraphicalEffects.CubicInterpolate(r1.y, r2.y, r3.y, r4.y, progress) |
2224 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(0), math.rad(20)), 0.7) |
2225 | - | local rz = GraphicalEffects.CubicInterpolate(r1.z, r2.z, r3.z, r4.z, progress) |
2225 | + | if Debounces.on == false then break end |
2226 | - | local cframe = CFrame.new(px, py, pz) * CFrame.Angles(rx, ry, rz) |
2226 | + | rs:wait() |
2227 | - | joint.C0 = v0[1] * cframe |
2227 | + | end |
2228 | - | joint.C1 = v0[2] * cframe:inverse() |
2228 | + | Shell() |
2229 | shell2.Transparency = 0 | |
2230 | - | RunService.Stepped:wait() |
2230 | + | shell.Transparency = 1 |
2231 | for i = 1, 10 do | |
2232 | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) | |
2233 | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) | |
2234 | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-40)), 0.7) | |
2235 | - | |
2235 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-110)), 0.7) |
2236 | - | GraphicalEffects.LASER_WIDTH = 0.15 |
2236 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(-50),0), 0.7) |
2237 | - | GraphicalEffects.LASER_MAGIC_CIRCLE_DISTANCE = 6.25 |
2237 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(50), 0), 0.7) |
2238 | - | GraphicalEffects.laser_data = {} |
2238 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(0), math.rad(-20)), 0.7) |
2239 | - | --GraphicalEffects.fragmentation = {} |
2239 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(0), math.rad(20)), 0.7) |
2240 | - | function GraphicalEffects.AnimateLaserOfDeath(data) |
2240 | + | if Debounces.on == false then break end |
2241 | - | local frame, directionOrientation, direction, magic_circle_model, laser_part, laser_mesh, magic_circle_part, magic_circle_light, |
2241 | + | rs:wait() |
2242 | - | |
2242 | + | end |
2243 | - | magic_circle_decal_back, magic_circle_decal_front, sound, laser_scale, fragmentation_size, duration, laser_lights, laser_effects, stay, light_effects = |
2243 | + | Shell() |
2244 | - | |
2244 | + | shell.Transparency = 0 |
2245 | - | unpack(data) |
2245 | + | shell2.Transparency = 1 |
2246 | - | local laser_color = laser_part.Color |
2246 | + | for i = 1, 10 do |
2247 | - | frame = frame + 1 |
2247 | + | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) |
2248 | - | data[1] = frame |
2248 | + | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) |
2249 | - | local transparency = (frame / duration) ^ stay |
2249 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(110)), 0.7) |
2250 | - | local opacity = 1 - transparency |
2250 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(40)), 0.7) |
2251 | - | if frame == 2 then |
2251 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(50),0), 0.7) |
2252 | - | sound:Play() |
2252 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-50), 0), 0.7) |
2253 | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(0), math.rad(-20)), 0.7) | |
2254 | - | if frame == duration then |
2254 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(0), math.rad(20)), 0.7) |
2255 | - | pcall(Game.Destroy, magic_circle_model) |
2255 | + | if Debounces.on == false then break end |
2256 | - | GraphicalEffects.laser_data[data] = nil |
2256 | + | rs:wait() |
2257 | end | |
2258 | - | if magic_circle_model.Parent ~= Workspace then |
2258 | + | Shell() |
2259 | - | pcall(Utility.SetProperty, magic_circle_model, "Parent", Workspace) |
2259 | + | shell2.Transparency = 0 |
2260 | shell.Transparency = 1 | |
2261 | - | local laser_distance = 0 |
2261 | + | for i = 1, 10 do |
2262 | - | local origin = chatAdornee.CFrame |
2262 | + | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) |
2263 | - | if not light_effects then |
2263 | + | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) |
2264 | - | direction = (origin * directionOrientation - origin.p).unit |
2264 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-40)), 0.7) |
2265 | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-110)), 0.7) | |
2266 | - | local magic_circle_position = origin.p + direction * GraphicalEffects.LASER_MAGIC_CIRCLE_DISTANCE |
2266 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(-50),0), 0.7) |
2267 | - | local magic_circle_cframe = CFrame.new(magic_circle_position, magic_circle_position + direction) * CFrame.Angles(0, 0, math.tau * frame / |
2267 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(50), 0), 0.7) |
2268 | - | |
2268 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(0), math.rad(-20)), 0.7) |
2269 | - | 25) |
2269 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(0), math.rad(20)), 0.7) |
2270 | - | local loop_scale = (laser_scale - 1) / 10 |
2270 | + | if Debounces.on == false then break end |
2271 | - | for x_offset = -loop_scale, loop_scale, 2 do |
2271 | + | rs:wait() |
2272 | - | for y_offset = -loop_scale, loop_scale, 2 do |
2272 | + | end |
2273 | - | local origin_position = magic_circle_cframe * Vector3.new(x_offset, y_offset, 0) |
2273 | + | Shell() |
2274 | - | for index = 1, 8 do |
2274 | + | shell.Transparency = 0 |
2275 | - | local part, position |
2275 | + | shell2.Transparency = 1 |
2276 | - | for ray_index = 1, 10 do |
2276 | + | for i = 1, 10 do |
2277 | - | local ray = Ray.new(origin_position + direction * (999 * (ray_index - 1)), direction * 999) |
2277 | + | shell.CFrame = rarm.CFrame * CFrame.new(0,-1,0) |
2278 | - | part, position = Workspace:FindPartOnRay(ray, magic_circle_model) |
2278 | + | shell2.CFrame = larm.CFrame * CFrame.new(0,-1,0) |
2279 | - | if part then |
2279 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(110)), 0.7) |
2280 | - | break |
2280 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.6,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(40)), 0.7) |
2281 | - | end |
2281 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(50),0), 0.7) |
2282 | - | end |
2282 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-50), 0), 0.7) |
2283 | - | if part then |
2283 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(0), math.rad(-20)), 0.7) |
2284 | - | laser_distance = (position - origin_position).magnitude |
2284 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(0), math.rad(20)), 0.7) |
2285 | - | if frame % 8 == 1 and index == 1 then |
2285 | + | if Debounces.on == false then break end |
2286 | - | Instance.new("Explosion", Workspace).Position = position |
2286 | + | rs:wait() |
2287 | - | end |
2287 | + | end |
2288 | - | if not part:IsA("Terrain") then |
2288 | + | shell.Transparency = 1 |
2289 | - | pcall(part.BreakJoints, part) |
2289 | + | if Debounces.CanAttack == false then |
2290 | - | local is_block = part:IsA("Part") and part.Shape == Enum.PartType.Block |
2290 | + | Debounces.CanAttack = true |
2291 | - | local mass = part:GetMass() |
2291 | + | Debounces.NoIdl = false |
2292 | - | local size = part.Size |
2292 | + | Debounces.on = false |
2293 | - | if (is_block and ((size.X < fragmentation_size and size.Y < fragmentation_size and size.Z < |
2293 | + | end |
2294 | - | |
2294 | + | |
2295 | - | fragmentation_size) or (not part.Anchored and mass < 750))) or (not is_block and mass < 250000) then |
2295 | + | |
2296 | - | local part_transparency = math.max(part.Transparency + 0.007 * fragmentation_size, 0.5) |
2296 | + | |
2297 | - | if part_transparency >= 0.5 then -- temporarily to minimize debris |
2297 | + | ---------------------------------------------------- |
2298 | - | pcall(Game.Destroy, part) |
2298 | + | Search = false |
2299 | - | else |
2299 | + | mouse.KeyDown:connect(function(key) |
2300 | - | local cframe = part.CFrame |
2300 | + | if key == "n" then |
2301 | - | part.Anchored = false |
2301 | + | if Search == false then |
2302 | - | part.BrickColor = BrickColor.new("Medium stone grey") |
2302 | + | Search = true |
2303 | - | part.CanCollide = true |
2303 | + | for i,v in pairs(game.Players:getPlayers()) do |
2304 | - | if part:IsA("FormFactorPart") then |
2304 | + | if v.Name~=char.Name then |
2305 | - | part.FormFactor = "Custom" |
2305 | + | for j,k in pairs(v.Character:GetChildren()) do |
2306 | - | end |
2306 | + | if k:IsA("BasePart") and k.Transparency >= 1 then |
2307 | - | part.Size = size - Vector3.new(0.135, 0.135, 0.135) * fragmentation_size |
2307 | + | bawx=Instance.new("SelectionBox",cam) |
2308 | - | part.Transparency = part_transparency |
2308 | + | bawx.Color = BrickColor.new("Bright red") |
2309 | - | part.CFrame = cframe + direction * 5 |
2309 | + | bawx.Transparency = .5 |
2310 | - | part.Velocity = part.Velocity + direction * 40 |
2310 | + | bawx.Adornee = k |
2311 | - | end |
2311 | + | end |
2312 | - | elseif is_block then |
2312 | + | |
2313 | - | local parts = {part} |
2313 | + | |
2314 | - | local model = Instance.new("Model", part.Parent) |
2314 | + | |
2315 | - | model.Name = "Fragments" |
2315 | + | elseif Search == true then |
2316 | - | if size.X >= fragmentation_size then |
2316 | + | Search = false |
2317 | - | size = Vector3.new(0.5, 1, 1) * size |
2317 | + | for i, v in pairs(cam:GetChildren()) do |
2318 | - | local archivable = part.Archivable |
2318 | + | if v:IsA("SelectionBox") then |
2319 | - | local cframe = part.CFrame |
2319 | + | v:Destroy() |
2320 | - | part.FormFactor = "Custom" |
2320 | + | end |
2321 | - | part.Size = size |
2321 | + | end |
2322 | - | part.Archivable = true |
2322 | + | end |
2323 | - | local part_clone = part:Clone() |
2323 | + | |
2324 | - | part.Archivable = archivable |
2324 | + | |
2325 | - | part_clone.Archivable = archivable |
2325 | + | ---------------------------------------------------- |
2326 | - | part.CFrame = cframe * CFrame.new(-0.5 * size.X, 0, 0) |
2326 | + | Grab = false |
2327 | - | part_clone.CFrame = cframe * CFrame.new(0.5 * size.X, 0, 0) |
2327 | + | mouse.KeyDown:connect(function(key) |
2328 | - | part_clone.Parent = model |
2328 | + | if key == "z" then |
2329 | - | parts[2] = part_clone |
2329 | + | Debounces.on = true |
2330 | - | end |
2330 | + | Debounces.NoIdl = true |
2331 | - | if size.Y >= fragmentation_size then |
2331 | + | Debounces.ks = true |
2332 | - | size = Vector3.new(1, 0.5, 1) * size |
2332 | + | if Grab == false then |
2333 | - | for part_index = 1, #parts do |
2333 | + | gp = nil |
2334 | - | local part = parts[part_index] |
2334 | + | for i = 1, 20 do |
2335 | - | local archivable = part.Archivable |
2335 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.65,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(110)), 0.2) |
2336 | - | local cframe = part.CFrame |
2336 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.65,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-110)), 0.2) |
2337 | - | part.FormFactor = "Custom" |
2337 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(0),0), 0.2) |
2338 | - | part.Size = size |
2338 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(0), 0), 0.2) |
2339 | - | part.Archivable = true |
2339 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(30), math.rad(-20)), 0.2) |
2340 | - | local part_clone = part:Clone() |
2340 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(-15), math.rad(20)), 0.2) |
2341 | - | part.Archivable = archivable |
2341 | + | if Debounces.on == false then break end |
2342 | - | part_clone.Archivable = archivable |
2342 | + | rs:wait() |
2343 | - | part.CFrame = cframe * CFrame.new(0, -0.5 * size.Y, 0) |
2343 | + | |
2344 | - | part_clone.CFrame = cframe * CFrame.new(0, 0.5 * size.Y, 0) |
2344 | + | con1=larm.Touched:connect(function(hit) -- this is grab |
2345 | - | part_clone.Parent = model |
2345 | + | ht = hit.Parent |
2346 | - | table.insert(parts, part_clone) |
2346 | + | hum1=ht:FindFirstChild('Humanoid') |
2347 | - | end |
2347 | + | if hum1 ~= nil then |
2348 | - | end |
2348 | + | if Debounces.ks==true then |
2349 | - | if size.Z >= fragmentation_size then |
2349 | + | z = Instance.new("Sound",hed) |
2350 | - | size = Vector3.new(1, 1, 0.5) * size |
2350 | + | z.SoundId = "rbxassetid://169380525" |
2351 | - | for part_index = 1, #parts do |
2351 | + | z.Volume = 1 |
2352 | - | local part = parts[part_index] |
2352 | + | z:Play() |
2353 | - | local archivable = part.Archivable |
2353 | + | Debounces.ks=false |
2354 | - | local cframe = part.CFrame |
2354 | + | end |
2355 | - | part.FormFactor = "Custom" |
2355 | + | hum1.PlatformStand=true |
2356 | - | part.Size = size |
2356 | + | gp = ht |
2357 | - | part.Archivable = true |
2357 | + | Grab = true |
2358 | - | local part_clone = part:Clone() |
2358 | + | asd=weld5(root,ht:FindFirstChild("Torso"),CFrame.new(0,0,-2.4),CFrame.new(0,0,0)) |
2359 | - | part.Archivable = archivable |
2359 | + | asd.Parent = larm |
2360 | - | part_clone.Archivable = archivable |
2360 | + | asd.Name = "asd" |
2361 | - | part.CFrame = cframe * CFrame.new(0, 0, -0.5 * size.Z) |
2361 | + | asd.C0=asd.C0*CFrame.Angles(math.rad(0),math.rad(180),0) |
2362 | - | part_clone.CFrame = cframe * CFrame.new(0, 0, 0.5 * size.Z) |
2362 | + | --[[elseif hum1 == nil then |
2363 | - | part_clone.Parent = model |
2363 | + | con1:disconnect() |
2364 | - | table.insert(parts, part_clone) |
2364 | + | wait() return]]-- |
2365 | - | end |
2365 | + | |
2366 | - | end |
2366 | + | |
2367 | - | for _, part in ipairs(parts) do |
2367 | + | for i = 1, 20 do |
2368 | - | part:MakeJoints() |
2368 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.3,0.65,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(-40)), 0.2) |
2369 | - | end |
2369 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.3,0.65,0)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(40)), 0.2) |
2370 | - | else |
2370 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-10),math.rad(0),0), 0.2) |
2371 | - | break |
2371 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(0), 0), 0.2) |
2372 | - | end |
2372 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(10), math.rad(30), math.rad(-20)), 0.2) |
2373 | - | end |
2373 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-10), math.rad(-15), math.rad(20)), 0.2) |
2374 | - | else |
2374 | + | if Debounces.on == false then break end |
2375 | - | laser_distance = 9990 |
2375 | + | rs:wait() |
2376 | - | break |
2376 | + | |
2377 | - | end |
2377 | + | if hum1 == nil then |
2378 | Debounces.on = false | |
2379 | Debounces.NoIdl = false | |
2380 | end | |
2381 | - | local laser_cframe = magic_circle_cframe * CFrame.Angles(-0.5 * math.pi, 0, 0) |
2381 | + | con1:disconnect() |
2382 | - | local laser_width = GraphicalEffects.LASER_WIDTH * opacity * laser_scale |
2382 | + | elseif Grab == true then |
2383 | - | local laser_mesh_offset = Vector3.new(0, 0.5 * laser_distance, 0) |
2383 | + | Grab = false |
2384 | - | laser_part.CFrame = laser_cframe |
2384 | + | Punch() |
2385 | - | if laser_effects then |
2385 | + | z = Instance.new("Sound",hed) |
2386 | - | local laser_effect_data_1, laser_effect_data_2 = laser_effects[1], laser_effects[2] |
2386 | + | z.SoundId = "rbxassetid://169380525" |
2387 | - | local laser_effect_1, laser_effect_mesh_1 = laser_effect_data_1[1], laser_effect_data_1[2] |
2387 | + | z.Pitch = ptz[math.random(1,#ptz)] |
2388 | - | local laser_effect_2, laser_effect_mesh_2 = laser_effect_data_2[1], laser_effect_data_2[2] |
2388 | + | z.Volume = 1 |
2389 | - | laser_effect_1.CFrame = laser_cframe |
2389 | + | z:Play() |
2390 | - | laser_effect_2.CFrame = laser_cframe |
2390 | + | for i = 1, 10 do |
2391 | - | laser_effect_mesh_1.Offset = laser_mesh_offset |
2391 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.2,0.4,-.5)*CFrame.Angles(math.rad(80),math.rad(0),math.rad(-50)), 0.7) |
2392 | - | laser_effect_mesh_2.Offset = laser_mesh_offset |
2392 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.7,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-110)), 0.7) |
2393 | - | local game_time = time() |
2393 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(90),0), 0.4) |
2394 | - | local effect_scale_1 = 0.5 + 0.5 * math.sin(16 * math.pi * game_time) |
2394 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-90), 0), 0.6) |
2395 | - | local effect_scale_2 = 0.5 + 0.5 * math.cos(16 * math.pi * game_time) |
2395 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), 0.2) |
2396 | - | laser_effect_mesh_1.Scale = 5 * Vector3.new(laser_width * effect_scale_1, laser_distance, laser_width * effect_scale_1) |
2396 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)), 0.2) |
2397 | - | laser_effect_mesh_2.Scale = 5 * Vector3.new(laser_width * effect_scale_2, laser_distance, laser_width * effect_scale_2) |
2397 | + | if Debounces.on == false then break end |
2398 | - | laser_width = laser_width * 0.25 |
2398 | + | rs:wait() |
2399 | end | |
2400 | - | laser_mesh.Offset = laser_mesh_offset |
2400 | + | Punch() |
2401 | - | laser_mesh.Scale = 5 * Vector3.new(laser_width, laser_distance, laser_width) |
2401 | + | z = Instance.new("Sound",hed) |
2402 | - | magic_circle_part.CFrame = magic_circle_cframe |
2402 | + | z.SoundId = "rbxassetid://169380525" |
2403 | - | magic_circle_light.Brightness = opacity |
2403 | + | z.Pitch = ptz[math.random(1,#ptz)] |
2404 | - | magic_circle_decal_back.Transparency = transparency |
2404 | + | z.Volume = 1 |
2405 | - | magic_circle_decal_front.Transparency = transparency |
2405 | + | z:Play() |
2406 | - | if light_effects then |
2406 | + | for i = 1, 10 do |
2407 | - | for index, data in ipairs(laser_lights) do |
2407 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.7,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(110)), 0.6) |
2408 | - | local laser_spotlight_part, laser_spotlight = data[1], data[2] |
2408 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.7,0)*CFrame.Angles(math.rad(-40),math.rad(0),math.rad(20)), 0.7) |
2409 | - | local laser_spotlight_offset = 30 * (index - 1) |
2409 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-90),0), 0.4) |
2410 | - | if laser_spotlight_offset <= laser_distance then |
2410 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(90), 0), 0.65) |
2411 | - | laser_spotlight_part.CFrame = magic_circle_cframe * CFrame.new(0, 0, -laser_spotlight_offset) |
2411 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), 0.2) |
2412 | - | laser_spotlight.Brightness = opacity |
2412 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)), 0.2) |
2413 | - | laser_spotlight.Enabled = true |
2413 | + | if Debounces.on == false then break end |
2414 | - | else |
2414 | + | rs:wait() |
2415 | - | laser_spotlight.Enabled = false |
2415 | + | |
2416 | Punch() | |
2417 | z = Instance.new("Sound",hed) | |
2418 | z.SoundId = "rbxassetid://169380525" | |
2419 | z.Pitch = ptz[math.random(1,#ptz)] | |
2420 | z.Volume = 1 | |
2421 | - | function GraphicalEffects.ShootLaserOfDeath(target, data) |
2421 | + | z:Play() |
2422 | - | if chatAdornee then |
2422 | + | for i = 1, 10 do |
2423 | - | data = data or {} |
2423 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.2,0.4,-.5)*CFrame.Angles(math.rad(80),math.rad(0),math.rad(-50)), 0.7) |
2424 | - | local brickcolor = data.brickcolor or BrickColor.new("Really black") |
2424 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.7,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-110)), 0.7) |
2425 | - | local duration = data.duration or 40 |
2425 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(90),0), 0.4) |
2426 | - | local fragmentation_size = data.fragmentation_size or 3 |
2426 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-90), 0), 0.6) |
2427 | - | local laser_scale = data.laser_scale or 1 |
2427 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), 0.2) |
2428 | - | local light_color = data.light_color or Color3.new(1, 0.5, 1) |
2428 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)), 0.2) |
2429 | - | local magic_circle_image = data.magic_circle_image or "rbxassetid://122610943" |
2429 | + | if Debounces.on == false then break end |
2430 | - | local magic_circle_scale = data.magic_circle_scale or 1 |
2430 | + | rs:wait() |
2431 | - | local sound_volume = data.sound_volume or 1 / 3 |
2431 | + | |
2432 | - | local special_effects = data.special_effects |
2432 | + | Punch() |
2433 | - | local stay = data.stay or 4 |
2433 | + | z = Instance.new("Sound",hed) |
2434 | - | local origin = chatAdornee.CFrame |
2434 | + | z.SoundId = "rbxassetid://169380525" |
2435 | - | local directionOrientation = origin:pointToObjectSpace(target) |
2435 | + | z.Pitch = ptz[math.random(1,#ptz)] |
2436 | - | local direction = (target - origin.p).unit |
2436 | + | z.Volume = 1 |
2437 | - | local magic_circle_position = origin.p + direction * GraphicalEffects.LASER_MAGIC_CIRCLE_DISTANCE |
2437 | + | z:Play() |
2438 | - | local magic_circle_cframe = CFrame.new(magic_circle_position, magic_circle_position + direction) |
2438 | + | for i = 1, 10 do |
2439 | - | local magic_circle_model = Instance.new("Model") |
2439 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.7,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(110)), 0.6) |
2440 | - | local laser_part = Instance.new("Part", magic_circle_model) |
2440 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.7,0)*CFrame.Angles(math.rad(-40),math.rad(0),math.rad(20)), 0.7) |
2441 | - | local laser_mesh = Instance.new("CylinderMesh", laser_part) |
2441 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-90),0), 0.4) |
2442 | - | local magic_circle_part = Instance.new("Part", magic_circle_model) |
2442 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(90), 0), 0.65) |
2443 | - | local magic_circle_mesh = Instance.new("BlockMesh", magic_circle_part) |
2443 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), 0.2) |
2444 | - | local magic_circle_light = Instance.new("PointLight", magic_circle_part) |
2444 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)), 0.2) |
2445 | - | local magic_circle_decal_back = Instance.new("Decal", magic_circle_part) |
2445 | + | if Debounces.on == false then break end |
2446 | - | local magic_circle_decal_front = Instance.new("Decal", magic_circle_part) |
2446 | + | rs:wait() |
2447 | - | local sound = Instance.new("Sound", magic_circle_part) |
2447 | + | |
2448 | - | sound.Pitch = 1.25 |
2448 | + | Punch() |
2449 | - | sound.SoundId = "rbxassetid://2248511" |
2449 | + | z = Instance.new("Sound",hed) |
2450 | - | sound.Volume = sound_volume |
2450 | + | z.SoundId = "rbxassetid://169380525" |
2451 | - | magic_circle_model.Archivable = false |
2451 | + | z.Pitch = ptz[math.random(1,#ptz)] |
2452 | - | laser_part.Anchored = true |
2452 | + | z.Volume = 1 |
2453 | - | laser_part.BottomSurface = "Smooth" |
2453 | + | z:Play() |
2454 | - | laser_part.BrickColor = brickcolor |
2454 | + | for i = 1, 10 do |
2455 | - | laser_part.CanCollide = false |
2455 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.2,0.4,-.5)*CFrame.Angles(math.rad(80),math.rad(0),math.rad(-50)), 0.7) |
2456 | - | laser_part.CFrame = magic_circle_cframe * CFrame.Angles(-0.5 * math.pi, 0, 0) |
2456 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.7,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-110)), 0.7) |
2457 | - | laser_part.FormFactor = "Custom" |
2457 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(90),0), 0.4) |
2458 | - | laser_part.Locked = true |
2458 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-90), 0), 0.6) |
2459 | - | laser_part.Size = Vector3.new(0.2, 0.2, 0.2) |
2459 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), 0.2) |
2460 | - | laser_part.TopSurface = "Smooth" |
2460 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)), 0.2) |
2461 | - | laser_mesh.Offset = Vector3.new(0, 0, 0) |
2461 | + | if Debounces.on == false then break end |
2462 | - | laser_mesh.Name = "Mesh" |
2462 | + | rs:wait() |
2463 | - | laser_mesh.Scale = 5 * laser_scale * Vector3.new(GraphicalEffects.LASER_WIDTH, 0, GraphicalEffects.LASER_WIDTH) |
2463 | + | |
2464 | - | magic_circle_part.Anchored = true |
2464 | + | Punch() |
2465 | - | magic_circle_part.BottomSurface = "Smooth" |
2465 | + | z = Instance.new("Sound",hed) |
2466 | - | magic_circle_part.CanCollide = false |
2466 | + | z.SoundId = "rbxassetid://169380525" |
2467 | - | magic_circle_part.CFrame = magic_circle_cframe |
2467 | + | z.Pitch = ptz[math.random(1,#ptz)] |
2468 | - | magic_circle_part.FormFactor = "Custom" |
2468 | + | z.Volume = 1 |
2469 | - | magic_circle_part.Locked = true |
2469 | + | z:Play() |
2470 | - | magic_circle_part.Size = Vector3.new(0.2, 0.2, 0.2) |
2470 | + | for i = 1, 10 do |
2471 | - | magic_circle_part.TopSurface = "Smooth" |
2471 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.7,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(110)), 0.6) |
2472 | - | magic_circle_part.Transparency = 1 |
2472 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.7,0)*CFrame.Angles(math.rad(-40),math.rad(0),math.rad(20)), 0.7) |
2473 | - | magic_circle_mesh.Scale = Vector3.new(60, 60, 0) * magic_circle_scale |
2473 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-90),0), 0.4) |
2474 | - | magic_circle_light.Color = light_color |
2474 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(90), 0), 0.65) |
2475 | - | magic_circle_light.Range = 16 * magic_circle_scale |
2475 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), 0.2) |
2476 | - | magic_circle_light.Shadows = true |
2476 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)), 0.2) |
2477 | - | magic_circle_decal_back.Face = "Back" |
2477 | + | if Debounces.on == false then break end |
2478 | - | magic_circle_decal_back.Texture = magic_circle_image |
2478 | + | rs:wait() |
2479 | - | magic_circle_decal_front.Face = "Front" |
2479 | + | |
2480 | - | magic_circle_decal_front.Texture = magic_circle_image |
2480 | + | Punch() |
2481 | - | magic_circle_model.Parent = Workspace |
2481 | + | z = Instance.new("Sound",hed) |
2482 | - | local laser_color = brickcolor.Color |
2482 | + | z.SoundId = "rbxassetid://169380525" |
2483 | - | local laser_lights = {} |
2483 | + | z.Pitch = ptz[math.random(1,#ptz)] |
2484 | - | local light_effects = laser_color.r + laser_color.g + laser_color.b > 0.25 |
2484 | + | z.Volume = 1 |
2485 | - | if light_effects then |
2485 | + | z:Play() |
2486 | - | local laser_spotlight_part_template = Instance.new("Part") |
2486 | + | for i = 1, 10 do |
2487 | - | local laser_spotlight_light_template = Instance.new("SpotLight", laser_spotlight_part_template) |
2487 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.2,0.4,-.5)*CFrame.Angles(math.rad(80),math.rad(0),math.rad(-50)), 0.7) |
2488 | - | laser_spotlight_part_template.Anchored = true |
2488 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.7,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-110)), 0.7) |
2489 | - | laser_spotlight_part_template.Anchored = true |
2489 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(90),0), 0.4) |
2490 | - | laser_spotlight_part_template.BottomSurface = "Smooth" |
2490 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-90), 0), 0.6) |
2491 | - | laser_spotlight_part_template.CanCollide = false |
2491 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), 0.2) |
2492 | - | laser_spotlight_part_template.FormFactor = "Custom" |
2492 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)), 0.2) |
2493 | - | laser_spotlight_part_template.Locked = true |
2493 | + | if Debounces.on == false then break end |
2494 | - | laser_spotlight_part_template.Size = Vector3.new(0.2, 0.2, 0.2) |
2494 | + | rs:wait() |
2495 | - | laser_spotlight_part_template.TopSurface = "Smooth" |
2495 | + | |
2496 | - | laser_spotlight_part_template.Transparency = 1 |
2496 | + | Punch() |
2497 | - | laser_spotlight_light_template.Angle = 45 |
2497 | + | z = Instance.new("Sound",hed) |
2498 | - | laser_spotlight_light_template.Color = laser_color |
2498 | + | z.SoundId = "rbxassetid://169380525" |
2499 | - | laser_spotlight_light_template.Enabled = true |
2499 | + | z.Pitch = ptz[math.random(1,#ptz)] |
2500 | - | laser_spotlight_light_template.Name = "Light" |
2500 | + | z.Volume = 1 |
2501 | - | laser_spotlight_light_template.Range = 60 |
2501 | + | z:Play() |
2502 | - | for index = 1, 40 do |
2502 | + | for i = 1, 10 do |
2503 | - | local laser_spotlight_part = laser_spotlight_part_template:Clone() |
2503 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.7,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(110)), 0.6) |
2504 | - | laser_spotlight_part.CFrame = magic_circle_cframe * CFrame.new(0, 0, -30 * (index - 1)) |
2504 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.7,0)*CFrame.Angles(math.rad(-40),math.rad(0),math.rad(20)), 0.7) |
2505 | - | laser_spotlight_part.Parent = magic_circle_model |
2505 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-90),0), 0.4) |
2506 | - | laser_lights[index] = {laser_spotlight_part, laser_spotlight_part.Light} |
2506 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(90), 0), 0.65) |
2507 | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), 0.2) | |
2508 | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)), 0.2) | |
2509 | - | local laser_effects |
2509 | + | if Debounces.on == false then break end |
2510 | - | if special_effects then |
2510 | + | rs:wait() |
2511 | - | laser_effects = {} |
2511 | + | |
2512 | - | local laser_effect_1 = laser_part:Clone() |
2512 | + | Punch() |
2513 | - | laser_effect_1.BrickColor = special_effects |
2513 | + | z = Instance.new("Sound",hed) |
2514 | - | laser_effect_1.Transparency = 0.5 |
2514 | + | z.SoundId = "rbxassetid://169380525" |
2515 | - | local laser_effect_2 = laser_effect_1:Clone() |
2515 | + | z.Pitch = ptz[math.random(1,#ptz)] |
2516 | - | laser_effects[1], laser_effects[2] = {laser_effect_1, laser_effect_1.Mesh}, {laser_effect_2, laser_effect_2.Mesh} |
2516 | + | z.Volume = 1 |
2517 | - | laser_effect_1.Parent = magic_circle_model |
2517 | + | z:Play() |
2518 | - | laser_effect_2.Parent = magic_circle_model |
2518 | + | for i = 1, 10 do |
2519 | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.2,0.4,-.5)*CFrame.Angles(math.rad(80),math.rad(0),math.rad(-50)), 0.7) | |
2520 | - | GraphicalEffects.laser_data[{0, directionOrientation, direction, magic_circle_model, laser_part, laser_mesh, magic_circle_part, |
2520 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.7,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-110)), 0.7) |
2521 | - | |
2521 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(90),0), 0.4) |
2522 | - | magic_circle_light, magic_circle_decal_back, magic_circle_decal_front, sound, laser_scale, fragmentation_size, duration, laser_lights, laser_effects, stay, |
2522 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-90), 0), 0.6) |
2523 | - | |
2523 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), 0.2) |
2524 | - | light_effects}] = true |
2524 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)), 0.2) |
2525 | if Debounces.on == false then break end | |
2526 | rs:wait() | |
2527 | - | |
2527 | + | |
2528 | - | function GraphicalEffects.SpawnSapientRock(position) |
2528 | + | Punch() |
2529 | - | local part = Instance.new("Part", Workspace) |
2529 | + | z = Instance.new("Sound",hed) |
2530 | - | local size = 8 + math.random(0, 5) |
2530 | + | z.SoundId = "rbxassetid://169380525" |
2531 | - | part.BottomSurface = "Smooth" |
2531 | + | z.Pitch = ptz[math.random(1,#ptz)] |
2532 | - | part.TopSurface = "Smooth" |
2532 | + | z.Volume = 1 |
2533 | - | part.Material = "Slate" |
2533 | + | z:Play() |
2534 | - | part.Locked = true |
2534 | + | for i = 1, 10 do |
2535 | - | part.Shape = "Ball" |
2535 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.7,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(110)), 0.6) |
2536 | - | part.FormFactor = "Custom" |
2536 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.7,0)*CFrame.Angles(math.rad(-40),math.rad(0),math.rad(20)), 0.7) |
2537 | - | part.Size = Vector3.new(size, size, size) |
2537 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-90),0), 0.4) |
2538 | - | part.Position = position |
2538 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(90), 0), 0.65) |
2539 | - | local bodypos = Instance.new("BodyPosition", part) |
2539 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), 0.2) |
2540 | - | bodypos.maxForce = Vector3.new(0, 0, 0) |
2540 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)), 0.2) |
2541 | - | local angry = false |
2541 | + | if Debounces.on == false then break end |
2542 | - | local damage_ready = true |
2542 | + | rs:wait() |
2543 | - | local torso_following |
2543 | + | |
2544 | - | local torso_changed = -1000 |
2544 | + | Punch() |
2545 | - | local touched_conn = part.Touched:connect(function(hit) |
2545 | + | z = Instance.new("Sound",hed) |
2546 | - | local character = hit.Parent |
2546 | + | z.SoundId = "rbxassetid://169380525" |
2547 | - | if character then |
2547 | + | z.Pitch = ptz[math.random(1,#ptz)] |
2548 | - | local humanoid |
2548 | + | z.Volume = 1 |
2549 | - | for _, child in ipairs(character:GetChildren()) do |
2549 | + | z:Play() |
2550 | - | if child:IsA("Humanoid") then |
2550 | + | for i = 1, 10 do |
2551 | - | humanoid = child |
2551 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.2,0.4,-.5)*CFrame.Angles(math.rad(80),math.rad(0),math.rad(-50)), 0.7) |
2552 | - | break |
2552 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.7,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-110)), 0.7) |
2553 | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(90),0), 0.4) | |
2554 | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(-90), 0), 0.6) | |
2555 | - | if humanoid then |
2555 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), 0.2) |
2556 | - | if angry then |
2556 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)), 0.2) |
2557 | - | if damage_ready then |
2557 | + | if Debounces.on == false then break end |
2558 | - | damage_ready = false |
2558 | + | rs:wait() |
2559 | - | humanoid:TakeDamage(100) |
2559 | + | |
2560 | - | wait(1) |
2560 | + | Punch() |
2561 | - | damage_ready = true |
2561 | + | z = Instance.new("Sound",hed) |
2562 | - | angry = false |
2562 | + | z.SoundId = "rbxassetid://169380525" |
2563 | - | part.BrickColor = BrickColor.new("Medium stone grey") |
2563 | + | z.Pitch = ptz[math.random(1,#ptz)] |
2564 | - | end |
2564 | + | z.Volume = 1 |
2565 | - | else |
2565 | + | z:Play() |
2566 | - | local torso = humanoid.Torso |
2566 | + | for i = 1, 10 do |
2567 | - | if torso then |
2567 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.7,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(110)), 0.6) |
2568 | - | torso_following = torso |
2568 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.7,0)*CFrame.Angles(math.rad(-40),math.rad(0),math.rad(20)), 0.7) |
2569 | - | torso_changed = tick() |
2569 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(-90),0), 0.4) |
2570 | - | end |
2570 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1, 0) * CFrame.Angles(0, math.rad(90), 0), 0.65) |
2571 | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), 0.2) | |
2572 | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)), 0.2) | |
2573 | if Debounces.on == false then break end | |
2574 | rs:wait() | |
2575 | - | TaskScheduler.Start(function() |
2575 | + | |
2576 | - | while part.Parent == Workspace do |
2576 | + | con1:disconnect() |
2577 | - | if torso_following then |
2577 | + | Debounces.on = false |
2578 | - | bodypos.position = torso_following.Position |
2578 | + | Debounces.NoIdl = false |
2579 | - | if tick() - torso_changed > 60 or not torso_following.Parent then |
2579 | + | if gp ~= nil then |
2580 | - | torso_following = nil |
2580 | + | gp:FindFirstChild("Torso").Velocity = hed.CFrame.lookVector * 140 |
2581 | - | bodypos.maxForce = Vector3.new(0, 0, 0) |
2581 | + | for i,v in pairs(larm:GetChildren()) do |
2582 | - | angry = false |
2582 | + | if v.Name == "asd" and v:IsA("Weld") then |
2583 | - | part.BrickColor = BrickColor.new("Medium stone grey") |
2583 | + | v:Remove() |
2584 | - | else |
2584 | + | end |
2585 | - | local speed = angry and Vector3.new(16, 16, 16) or Vector3.new(6, 0, 6) |
2585 | + | |
2586 | - | bodypos.maxForce = part:GetMass() * speed |
2586 | + | --[[bv = Instance.new("BodyVelocity",gp:FindFirstChild("Torso")) |
2587 | - | if part.Position.Y < -250 then |
2587 | + | bv.maxForce = Vector3.new(400000, 400000, 400000) |
2588 | - | part.Velocity = Vector3.new() |
2588 | + | bv.P = 125000 |
2589 | - | part.Position = torso_following.Position + Vector3.new(0, 80, 0) |
2589 | + | bv.velocity = char.Head.CFrame.lookVector * 200]]-- |
2590 | - | part.BrickColor = BrickColor.new("Bright red") |
2590 | + | hum1=nil |
2591 | - | angry = true |
2591 | + | ht=nil |
2592 | - | torso_changed = tick() |
2592 | + | Debounces.on = false |
2593 | - | end |
2593 | + | Debounces.NoIdl = false |
2594 | elseif ht == nil then wait() | |
2595 | Grab = false | |
2596 | - | RunService.Stepped:wait() |
2596 | + | Debounces.on = false |
2597 | Debounces.NoIdl = false | |
2598 | - | touched_conn:disconnect() |
2598 | + | |
2599 | end | |
2600 | - | TaskScheduler.Start(function() |
2600 | + | |
2601 | - | while part.Parent == Workspace do |
2601 | + | |
2602 | - | wait(25 + math.random() * 10) |
2602 | + | ---------------------------------------------------- |
2603 | - | local next_size = 8 + math.random() * 5 |
2603 | + | mouse.KeyDown:connect(function(key) |
2604 | - | if math.random(100) == 1 then |
2604 | + | if string.byte(key) == 52 then |
2605 | - | next_size = next_size * (2 + 6 * math.random()) |
2605 | + | char.Humanoid.WalkSpeed = 60 |
2606 | end | |
2607 | - | next_size = math.floor(next_size + 0.5) |
2607 | + | |
2608 | - | local start_time = tick() |
2608 | + | mouse.KeyUp:connect(function(key) |
2609 | - | local mesh = Instance.new("SpecialMesh", part) |
2609 | + | if string.byte(key) == 52 then |
2610 | - | mesh.MeshType = "Sphere" |
2610 | + | char.Humanoid.WalkSpeed = 8 |
2611 | - | repeat |
2611 | + | |
2612 | - | local elapsed_time = tick() - start_time |
2612 | + | |
2613 | - | local alpha = math.cos(elapsed_time * math.pi * 0.5) |
2613 | + | ------------------------------- |
2614 | - | local interpolated_size = size * alpha + next_size * (1 - alpha) |
2614 | + | local animpose = "Idle" |
2615 | - | local size_vector = Vector3.new(interpolated_size, interpolated_size, interpolated_size) |
2615 | + | local lastanimpose = "Idle" |
2616 | - | local cframe = part.CFrame |
2616 | + | local sine = 0 |
2617 | - | part.Size = size_vector |
2617 | + | local change = 1 |
2618 | - | part.CFrame = cframe |
2618 | + | local val = 0 |
2619 | - | mesh.Scale = size_vector / part.Size |
2619 | + | local ffing = false |
2620 | - | RunService.Stepped:wait() |
2620 | + | ------------------------------- |
2621 | - | until tick() - start_time >= 1 |
2621 | + | game:GetService("RunService").RenderStepped:connect(function() |
2622 | - | mesh:Destroy() |
2622 | + | --[[if char.Humanoid.Jump == true then |
2623 | - | local cframe = part.CFrame |
2623 | + | jump = true |
2624 | - | part.Size = Vector3.new(next_size, next_size, next_size) |
2624 | + | |
2625 | - | part.CFrame = cframe |
2625 | + | jump = false |
2626 | - | size = next_size |
2626 | + | end]] |
2627 | char.Humanoid.FreeFalling:connect(function(f) | |
2628 | if f then | |
2629 | ffing = true | |
2630 | - | |
2630 | + | |
2631 | - | function GraphicalEffects.MainLoop() |
2631 | + | ffing = false |
2632 | - | RunService.Stepped:wait() |
2632 | + | |
2633 | - | for data in pairs(GraphicalEffects.magicCircleData) do |
2633 | + | |
2634 | - | GraphicalEffects.AnimateMagicCircle(data) |
2634 | + | sine = sine + change |
2635 | if jumpn == true then | |
2636 | - | for data in pairs(GraphicalEffects.laser_data) do |
2636 | + | animpose = "Jumping" |
2637 | - | GraphicalEffects.AnimateLaserOfDeath(data) |
2637 | + | elseif ffing == true then |
2638 | animpose = "Freefalling" | |
2639 | - | for data in pairs(GraphicalEffects.missileData) do |
2639 | + | elseif (torso.Velocity*Vector3.new(1, 0, 1)).magnitude < 2 then |
2640 | - | GraphicalEffects.AnimateMissile(data) |
2640 | + | animpose = "Idle" |
2641 | elseif (torso.Velocity*Vector3.new(1, 0, 1)).magnitude < 20 then | |
2642 | animpose = "Walking" | |
2643 | - | TaskScheduler.Start(function() |
2643 | + | elseif (torso.Velocity*Vector3.new(1, 0, 1)).magnitude > 20 then |
2644 | - | while true do |
2644 | + | animpose = "Running" |
2645 | - | GraphicalEffects.MainLoop() |
2645 | + | |
2646 | if animpose ~= lastanimpose then | |
2647 | sine = 0 | |
2648 | - | |
2648 | + | if Debounces.NoIdl == false then |
2649 | - | PlayerControl = {}; |
2649 | + | if animpose == "Idle" then |
2650 | - | |
2650 | + | for i = 1, 2 do |
2651 | - | PlayerControl.fly_acceleration = 10 |
2651 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.62,0)*CFrame.Angles(math.rad(-6),math.rad(-6),math.rad(8)), 0.4) |
2652 | - | PlayerControl.fly_basespeed = 250 |
2652 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.62,0)*CFrame.Angles(math.rad(-6),math.rad(6),math.rad(-8)), 0.4) |
2653 | - | PlayerControl.fly_speed = PlayerControl.fly_basespeed |
2653 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14),math.rad(0),0), 0.4) |
2654 | - | PlayerControl.featherfallEnabled = true |
2654 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(0, math.rad(0), math.rad(0)), 0.4) |
2655 | - | PlayerControl.pushable = false |
2655 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(-8)), 0.4) |
2656 | - | PlayerControl.rolling = false |
2656 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(8)), 0.4) |
2657 | - | PlayerControl.rollingAngle = 0 |
2657 | + | |
2658 | - | PlayerControl.rollingOffset = 0 |
2658 | + | elseif animpose == "Walking" then |
2659 | - | PlayerControl.rollingMaxOffset = 3 |
2659 | + | for i = 1, 2 do |
2660 | - | PlayerControl.rollingSpeed = 1 / 50 |
2660 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.55,0)*CFrame.Angles(math.rad(-16),math.rad(-12),math.rad(10+2*math.cos(sine/14))), 0.2) |
2661 | - | PlayerControl.characterEnabled = false |
2661 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.55,0)*CFrame.Angles(math.rad(-16),math.rad(12),math.rad(-10-2*math.cos(sine/14))), 0.2) |
2662 | - | PlayerControl.characterMode = "normal" |
2662 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0, 1.5, -.2) * CFrame.Angles(math.rad(-14),0,0), 0.4) |
2663 | - | local character = nil |
2663 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(-10),0, math.rad(0)), 0.05) |
2664 | - | local flying, flyingMomentum, flyingTilt = false, Vector3.new(), 0 |
2664 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-8), 0, math.rad(-8)), 0.4) |
2665 | - | local pose, regeneratingHealth, jumpDebounce = "Standing", false, false |
2665 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-8), 0, math.rad(8)), 0.4) |
2666 | - | -- TODO: make local variables public |
2666 | + | |
2667 | - | local model, bodyColors, leftArmMesh, leftLegMesh, rightArmMesh, rightLegMesh, torsoMesh, wildcardHat, wildcardHandle, wildcardMesh, pants, shirt, humanoid, |
2667 | + | elseif animpose == "Running" then |
2668 | - | |
2668 | + | for i = 1, 2 do |
2669 | - | head, leftArm, leftLeg, rightArm, rightLeg, torso, rootPart, rootJoint, face, soundFreeFalling, soundGettingUp, soundRunning, leftHip, leftShoulder, |
2669 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.55,0)*CFrame.Angles(math.rad(-20),math.rad(-14),math.rad(8+2*math.cos(sine/14))), 0.2) |
2670 | - | |
2670 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.55,0)*CFrame.Angles(math.rad(-20),math.rad(14),math.rad(-8-2*math.cos(sine/14))), 0.2) |
2671 | - | rightHip, rightShoulder, neck, wildcardWeld, feetPart, feetWeld, feetTouchInterest, bodyGyro, bodyVelocity, headMesh, torsoLight |
2671 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0, 1.5, -.2) * CFrame.Angles(math.rad(-10),0,0), 0.4) |
2672 | - | local AnimateCharacter |
2672 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(-20),0, math.rad(0)), 0.4) |
2673 | - | local UserInterface = game:service'UserInputService' |
2673 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-12), 0, math.rad(-7)), 0.4) |
2674 | - | local chatBubbles = {} |
2674 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-12), 0, math.rad(7)), 0.4) |
2675 | - | local chatCharacterLimit = 240 |
2675 | + | |
2676 | - | function PlayerControl.CreateCharacter() |
2676 | + | |
2677 | - | local characterMode = PlayerControl.characterMode |
2677 | + | |
2678 | - | if characterMode == "normal" then |
2678 | + | |
2679 | - | if not PlayerControl.characterEnabled then |
2679 | + | |
2680 | - | return |
2680 | + | |
2681 | lastanimpose = animpose | |
2682 | - | local appearance = CharacterAppearance.GetDefaultAppearance() |
2682 | + | if Debounces.NoIdl == false then |
2683 | - | local active = true |
2683 | + | if animpose == "Idle" then |
2684 | - | local torsoCFrame = (torso and torso.CFrame) or PlayerControl.torso_cframe or CFrame.new(0, 10, 0) |
2684 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.62+0.1*math.cos(sine/14),0)*CFrame.Angles(math.rad(-6),math.rad(-6),math.rad(8+2*math.cos(sine/14))), 0.4) |
2685 | - | if torsoCFrame.p.Y < -450 then |
2685 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.62+0.1*math.cos(sine/14),0)*CFrame.Angles(math.rad(-6),math.rad(6),math.rad(-8-2*math.cos(sine/14))), 0.4) |
2686 | - | torsoCFrame = CFrame.new(0, 10, 0) |
2686 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0,1.5,-.2)*CFrame.Angles(math.rad(-14+1*math.cos(sine/14)),math.rad(0),0), 0.2) |
2687 | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0-0.1*math.cos(sine/14), 0) * CFrame.Angles(0, math.rad(0), math.rad(0)), 0.05) | |
2688 | - | local rootPartCFrame = (rootPart and rootPart.CFrame) or PlayerControl.torso_cframe or CFrame.new(0, 10, 0) |
2688 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(-8-2*math.cos(sine/14))), 0.4) |
2689 | - | if rootPartCFrame.p.Y < -450 then |
2689 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(0, 0, math.rad(8+2*math.cos(sine/14))), 0.4) |
2690 | - | rootPartCFrame = CFrame.new(0, 10, 0) |
2690 | + | elseif animpose == "Walking" then |
2691 | change = 1 | |
2692 | - | local cameraCFrame = Camera.CoordinateFrame |
2692 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.55,0)*CFrame.Angles(math.rad(-16),math.rad(-12),math.rad(10+2*math.cos(sine/14))), 0.2) |
2693 | - | local connections = {} |
2693 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.55,0)*CFrame.Angles(math.rad(-16),math.rad(12),math.rad(-10-2*math.cos(sine/14))), 0.2) |
2694 | - | local feetTouching = {} |
2694 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0, 1.5, -.2) * CFrame.Angles(math.rad(-14),0,0), 0.4) |
2695 | - | local previousWalkSpeed = 0 |
2695 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 0-0.1*math.cos(sine/14), 0) * CFrame.Angles(math.rad(-10),0, math.rad(0)), 0.05) |
2696 | - | local prevLeftHip, prevLeftShoulder, prevRightHip, prevRightShoulder = leftHip, leftShoulder, rightHip, rightShoulder |
2696 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-8), 0, math.rad(-8)), 0.4) |
2697 | - | model = Instance.new("Model") |
2697 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-8), 0, math.rad(8)), 0.4) |
2698 | - | humanoid = Instance.new("Humanoid", model) |
2698 | + | elseif animpose == "Running" then |
2699 | - | head = Instance.new("Part", model) |
2699 | + | change = 1 |
2700 | - | leftArm = Instance.new("Part", model) |
2700 | + | hed.Weld.C0 = Lerp(hed.Weld.C0, CFrame.new(0, 1.5, 0) * CFrame.Angles (math.rad(44), math.rad (0), math.rad(0)), 0.15) |
2701 | - | leftLeg = Instance.new("Part", model) |
2701 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, 1-0.1*math.cos(sine/14), -1) * CFrame.Angles(math.rad(- 80), math.rad(0), 0), 0.15) |
2702 | - | rightArm = Instance.new("Part", model) |
2702 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5, 0.5, 0) * CFrame.Angles(math.rad (0), math.rad(50), math.rad(-40)), 0.15) |
2703 | - | rightLeg = Instance.new("Part", model) |
2703 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(0), math.rad(-50), math.rad(40)), 0.15) |
2704 | - | torso = Instance.new("Part", model) |
2704 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(8), math.rad(0), math.rad(- 10)), .15) |
2705 | - | rootPart = Instance.new("Part", model) |
2705 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(8), math.rad(0), math.rad(10)), .15) |
2706 | - | soundFallingDown = Instance.new("Sound", head) |
2706 | + | elseif stanceToggle == "Floating" then |
2707 | - | soundFreeFalling = Instance.new("Sound", head) |
2707 | + | rarm.Weld.C0 = Lerp(rarm.Weld.C0, CFrame.new(1.5,0.62+0.1*math.cos(sine/14),0)*CFrame.Angles(math.rad(-16),math.rad(-12),math.rad(10+2*math.cos(sine/14))), 0.2) |
2708 | - | soundGettingUp = Instance.new("Sound", head) |
2708 | + | larm.Weld.C0 = Lerp(larm.Weld.C0, CFrame.new(-1.5,0.62+0.1*math.cos(sine/14),0)*CFrame.Angles(math.rad(-16),math.rad(12),math.rad(-10-2*math.cos(sine/14))), 0.2) |
2709 | - | soundJumping = Instance.new("Sound", head) |
2709 | + | hed.Weld.C0 = CFrame.new(0,1.5,0)*CFrame.Angles(math.rad(-14-4*math.cos(sine/14)),0,0) |
2710 | - | soundRunning = Instance.new("Sound", head) |
2710 | + | lleg.Weld.C0 = Lerp(lleg.Weld.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.rad(-10-12*math.cos(sine/16)), 0, math.rad(-8)), 0.4) |
2711 | - | leftHip = Instance.new("Motor", torso) |
2711 | + | rleg.Weld.C0 = Lerp(rleg.Weld.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.rad(-10-12*math.cos(sine/16)), 0, math.rad(8)), 0.4) |
2712 | - | leftShoulder = Instance.new("Motor", torso) |
2712 | + | torso.Weld.C0 = Lerp(torso.Weld.C0, CFrame.new(0, -1-0.4*math.cos(sine/14), -.2) * CFrame.Angles(math.rad(-15),0, math.rad(0)), 0.05) |
2713 | - | rightHip = Instance.new("Motor", torso) |
2713 | + | |
2714 | - | rightShoulder = Instance.new("Motor", torso) |
2714 | + | |
2715 | - | neck = Instance.new("Motor", torso) |
2715 | + | |
2716 | - | rootJoint = Instance.new("Motor", rootPart) |
2716 | + | game.Workspace.OMGITABIRD.Humanoid.MaxHealth = math.huge |
2717 | - | feetPart = Instance.new("Part", model) |
2717 | + | local a = Instance.new("ForceField") |
2718 | - | feetWeld = Instance.new("Weld", torso) |
2718 | + | a.Parent = workspace.CancerousBleach |
2719 | - | bodyGyro = Instance.new("BodyGyro", rootPart) |
2719 | + | wait(0) |
2720 | - | bodyVelocity = Instance.new("BodyVelocity", rootPart) |
2720 | + | game.Workspace.OMGITABIRD.Humanoid.Health = math.huge |
2721 | - | model.Archivable = false |
2721 | + | ----------------------------------------------------------------------------- |
2722 | - | model.Name = user_name or Player.Name |
2722 | + | |
2723 | - | model.PrimaryPart = head |
2723 | + | function Lightning(Part0,Part1,Times,Offset,Color,Thickness,Trans) -- Lightning module |
2724 | - | humanoid.LeftLeg = leftLeg |
2724 | + | --[[Part0 = Vector3 (Start pos) |
2725 | - | humanoid.RightLeg = rightLeg |
2725 | + | Part1 = Vector3 (End pos) |
2726 | - | humanoid.Torso = rootPart |
2726 | + | Times = number (Amount of lightning parts) |
2727 | - | head.CFrame = torsoCFrame * CFrame.new(0, 1.5, 0) |
2727 | + | Offset = number (Offset) |
2728 | - | head.FormFactor = "Symmetric" |
2728 | + | Color = color (brickcolor value) |
2729 | - | head.Locked = true |
2729 | + | Thickness = number (thickness) |
2730 | - | head.Name = "Head" |
2730 | + | Trans = number (transparency) |
2731 | - | head.Size = Vector3.new(2, 1, 1) |
2731 | + | ]]-- |
2732 | - | head.TopSurface = "Smooth" |
2732 | + | local magz = (Part0 - Part1).magnitude |
2733 | - | leftArm.CanCollide = false |
2733 | + | local curpos = Part0 |
2734 | - | leftArm.CFrame = torsoCFrame * CFrame.new(-1.5, 0, 0) |
2734 | + | local trz = {-Offset,Offset} |
2735 | - | leftArm.FormFactor = "Symmetric" |
2735 | + | for i=1,Times do |
2736 | - | leftArm.Locked = true |
2736 | + | local li = Instance.new("Part", torso) |
2737 | - | leftArm.Name = "Left Arm" |
2737 | + | li.Name = "Lightning" |
2738 | - | leftArm.Size = Vector3.new(1, 2, 1) |
2738 | + | li.TopSurface =0 |
2739 | - | leftLeg.BottomSurface = "Smooth" |
2739 | + | li.Material = "Neon" |
2740 | - | leftLeg.CanCollide = false |
2740 | + | li.BottomSurface = 0 |
2741 | - | leftLeg.CFrame = torsoCFrame * CFrame.new(-0.5, -2, 0) |
2741 | + | li.Anchored = true |
2742 | - | leftLeg.FormFactor = "Symmetric" |
2742 | + | li.Locked = true |
2743 | - | leftLeg.Locked = true |
2743 | + | li.Transparency = Trans or 0.4 |
2744 | - | leftLeg.Name = "Left Leg" |
2744 | + | li.BrickColor = BrickColor.new(Color) |
2745 | - | leftLeg.Size = Vector3.new(1, 2, 1) |
2745 | + | li.formFactor = "Custom" |
2746 | - | leftLeg.TopSurface = "Smooth" |
2746 | + | li.CanCollide = false |
2747 | - | rightArm.CanCollide = false |
2747 | + | li.Size = Vector3.new(Thickness,Thickness,magz/Times) |
2748 | - | rightArm.CFrame = torsoCFrame * CFrame.new(1.5, 0, 0) |
2748 | + | local Offzet = Vector3.new(trz[math.random(1,2)],trz[math.random(1,2)],trz[math.random(1,2)]) |
2749 | - | rightArm.FormFactor = "Symmetric" |
2749 | + | local trolpos = CFrame.new(curpos,Part1)*CFrame.new(0,0,magz/Times).p+Offzet |
2750 | - | rightArm.Locked = true |
2750 | + | if Times == i then |
2751 | - | rightArm.Name = "Right Arm" |
2751 | + | local magz2 = (curpos - Part1).magnitude |
2752 | - | rightArm.Size = Vector3.new(1, 2, 1) |
2752 | + | li.Size = Vector3.new(Thickness,Thickness,magz2) |
2753 | - | rightLeg.BottomSurface = "Smooth" |
2753 | + | li.CFrame = CFrame.new(curpos,Part1)*CFrame.new(0,0,-magz2/2) |
2754 | - | rightLeg.CanCollide = false |
2754 | + | |
2755 | - | rightLeg.CFrame = torsoCFrame * CFrame.new(0.5, -2, 0) |
2755 | + | li.CFrame = CFrame.new(curpos,trolpos)*CFrame.new(0,0,magz/Times/2) |
2756 | - | rightLeg.FormFactor = "Symmetric" |
2756 | + | |
2757 | - | rightLeg.Locked = true |
2757 | + | curpos = li.CFrame*CFrame.new(0,0,magz/Times/2).p |
2758 | - | rightLeg.Name = "Right Leg" |
2758 | + | game.Debris:AddItem(li,.1) |
2759 | - | rightLeg.Size = Vector3.new(1, 2, 1) |
2759 | + | |
2760 | - | rightLeg.TopSurface = "Smooth" |
2760 | + | |
2761 | - | torso.CFrame = torsoCFrame |
2761 | + | |
2762 | - | torso.FormFactor = "Symmetric" |
2762 | + | BodyParts = {} -- Parts to emit lightning effects from |
2763 | - | torso.LeftSurface = "Weld" |
2763 | + | for _, v in pairs(char:GetChildren()) do |
2764 | - | torso.Locked = true |
2764 | + | if v:IsA("Part") then |
2765 | - | torso.RightSurface = "Weld" |
2765 | + | table.insert(BodyParts, v) |
2766 | - | torso.Name = "Torso" |
2766 | + | |
2767 | - | torso.Size = Vector3.new(2, 2, 1) |
2767 | + | |
2768 | - | rootPart.BottomSurface = "Smooth" |
2768 | + | |
2769 | - | rootPart.BrickColor = BrickColor.Blue() |
2769 | + | Bounding = {} -- Calculate the bounding boxes |
2770 | - | rootPart.CFrame = rootPartCFrame |
2770 | + | for _, v in pairs(BodyParts) do |
2771 | - | rootPart.FormFactor = "Symmetric" |
2771 | + | local temp = {X=nil, Y=nil, Z=nil} |
2772 | - | rootPart.LeftSurface = "Weld" |
2772 | + | temp.X = v.Size.X/2 * 1 |
2773 | - | rootPart.Locked = true |
2773 | + | temp.Y = v.Size.Y/2 * 1 |
2774 | - | rootPart.RightSurface = "Weld" |
2774 | + | temp.Z = v.Size.Z/2 * 1 |
2775 | - | rootPart.Name = "HumanoidRootPart" |
2775 | + | Bounding[v.Name] = temp |
2776 | - | rootPart.Size = Vector3.new(2, 2, 1) |
2776 | + | --table.insert(Bounding, v.Name, temp) |
2777 | - | rootPart.TopSurface = "Smooth" |
2777 | + | |
2778 | - | rootPart.Transparency = 1 |
2778 | + | |
2779 | - | soundFreeFalling.Archivable = false |
2779 | + | while wait(0) do -- Emit the Lightning effects randomly, (math.random(1,10)/10) if you want original |
2780 | - | soundFreeFalling.SoundId = "rbxasset://sounds/swoosh.wav" |
2780 | + | local Body1 = BodyParts[math.random(#BodyParts)] |
2781 | - | soundGettingUp.Archivable = false |
2781 | + | local Body2 = BodyParts[math.random(#BodyParts)] |
2782 | - | soundGettingUp.SoundId = "rbxasset://sounds/hit.wav" |
2782 | + | local Pos1 = Vector3.new( |
2783 | - | soundRunning.Archivable = false |
2783 | + | math.random(-Bounding[Body1.Name].X, Bounding[Body1.Name].X)/10, |
2784 | - | soundRunning.SoundId = "rbxasset://sounds/bfsl-minifigfoots1.mp3" |
2784 | + | math.random(-Bounding[Body1.Name].Y, Bounding[Body1.Name].Y)/10, |
2785 | - | soundRunning.Looped = true |
2785 | + | math.random(-Bounding[Body1.Name].Z, Bounding[Body1.Name].Z)/10 |
2786 | - | leftHip.C0 = CFrame.new(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
2786 | + | |
2787 | - | leftHip.C1 = CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
2787 | + | local Pos2 = Vector3.new( |
2788 | - | leftHip.MaxVelocity = 0.1 |
2788 | + | math.random(-Bounding[Body2.Name].X, Bounding[Body2.Name].X)/10, |
2789 | - | leftHip.Name = "Left Hip" |
2789 | + | math.random(-Bounding[Body2.Name].Y, Bounding[Body2.Name].Y)/10, |
2790 | - | leftHip.Part0 = torso |
2790 | + | math.random(-Bounding[Body2.Name].Z, Bounding[Body2.Name].Z)/10 |
2791 | - | leftHip.Part1 = leftLeg |
2791 | + | |
2792 | - | leftShoulder.C0 = CFrame.new(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
2792 | + | local SPos1 = Body1.Position + Pos1 |
2793 | - | leftShoulder.C1 = CFrame.new(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
2793 | + | local SPos2 = Body2.Position + Pos2 |
2794 | - | leftShoulder.MaxVelocity = 0.15 |
2794 | + | Lightning(SPos1, SPos2, 4, 3, "Crimson", .80, .99) |
2795 | - | leftShoulder.Name = "Left Shoulder" |
2795 | + |