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 | + |