SHOW:
|
|
- or go back to the newest paste.
| 1 | - | --Time Stop Again script by basstracker1970 |
| 1 | + | -- This script has been converted to FE by iPxter |
| 2 | - | plr = game:service'Players'.LocalPlayer |
| 2 | + | |
| 3 | ||
| 4 | - | char = plr.Character |
| 4 | + | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
|
| 5 | local Player,Mouse,mouse,UserInputService,ContextActionService = owner | |
| 6 | - | mouse = plr:GetMouse() |
| 6 | + | do |
| 7 | print("FE Compatibility code by Mokiros | Translated to FE by iPxter")
| |
| 8 | - | mouse.KeyDown:connect(function(k) |
| 8 | + | script.Parent = Player.Character |
| 9 | - | if k == "z" then |
| 9 | + | |
| 10 | - | sound = Instance.new("Sound",char)
|
| 10 | + | --RemoteEvent for communicating |
| 11 | - | sound.SoundId = "rbxassetid://849861238" |
| 11 | + | local Event = Instance.new("RemoteEvent")
|
| 12 | - | sound:Play() |
| 12 | + | Event.Name = "UserInput_Event" |
| 13 | - | for i,v in next, game.Players:GetChildren() do |
| 13 | + | |
| 14 | - | v.Character.Torso.Anchored = true |
| 14 | + | --Fake event to make stuff like Mouse.KeyDown work |
| 15 | - | if v.Character.Torso.Anchored == false then --Add R15 Support |
| 15 | + | local function fakeEvent() |
| 16 | - | v.Character.UpperTorso.Anchored = true |
| 16 | + | local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
|
| 17 | t.connect = t.Connect | |
| 18 | return t | |
| 19 | end | |
| 20 | - | end) |
| 20 | + | |
| 21 | - | mouse.KeyDown:connect(function(k) |
| 21 | + | --Creating fake input objects with fake variables |
| 22 | - | if k == "x" then |
| 22 | + | local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
|
| 23 | - | for i,v in next, game.Players:GetChildren() do |
| 23 | + | local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
|
| 24 | - | v.Character.Torso.Anchored = false |
| 24 | + | local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
|
| 25 | - | if v.Character.Torso.Anchored == false then --R15 Support Again |
| 25 | + | CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
|
| 26 | - | v.Character.UpperTorso.Anchored = false |
| 26 | + | end} |
| 27 | --Merged 2 functions into one by checking amount of arguments | |
| 28 | CAS.UnbindAction = CAS.BindAction | |
| 29 | ||
| 30 | - | end) |
| 30 | + | --This function will trigger the events that have been :Connect()'ed |
| 31 | - | while true do |
| 31 | + | local function te(self,ev,...) |
| 32 | - | wait(0) |
| 32 | + | local t = m[ev] |
| 33 | - | if plr.Character.Torso.Anchored == true then |
| 33 | + | if t and t._fakeEvent and t.Function then |
| 34 | - | plr.Character.Torso.Anchored = false |
| 34 | + | t.Function(...) |
| 35 | end | |
| 36 | - | end |
| 36 | + | end |
| 37 | m.TrigEvent = te | |
| 38 | UIS.TrigEvent = te | |
| 39 | ||
| 40 | Event.OnServerEvent:Connect(function(plr,io) | |
| 41 | if plr~=Player then return end | |
| 42 | if io.isMouse then | |
| 43 | m.Target = io.Target | |
| 44 | m.Hit = io.Hit | |
| 45 | else | |
| 46 | local b = io.UserInputState == Enum.UserInputState.Begin | |
| 47 | if io.UserInputType == Enum.UserInputType.MouseButton1 then | |
| 48 | return m:TrigEvent(b and "Button1Down" or "Button1Up") | |
| 49 | end | |
| 50 | for _,t in pairs(CAS.Actions) do | |
| 51 | for _,k in pairs(t.Keys) do | |
| 52 | if k==io.KeyCode then | |
| 53 | t.Function(t.Name,io.UserInputState,io) | |
| 54 | end | |
| 55 | end | |
| 56 | end | |
| 57 | m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower()) | |
| 58 | UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false) | |
| 59 | end | |
| 60 | end) | |
| 61 | Event.Parent = NLS([==[ | |
| 62 | local Player = game:GetService("Players").LocalPlayer
| |
| 63 | local Event = script:WaitForChild("UserInput_Event")
| |
| 64 | ||
| 65 | local UIS = game:GetService("UserInputService")
| |
| 66 | local input = function(io,a) | |
| 67 | if a then return end | |
| 68 | --Since InputObject is a client-side instance, we create and pass table instead | |
| 69 | Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
| |
| 70 | end | |
| 71 | UIS.InputBegan:Connect(input) | |
| 72 | UIS.InputEnded:Connect(input) | |
| 73 | ||
| 74 | local Mouse = Player:GetMouse() | |
| 75 | local h,t | |
| 76 | --Give the server mouse data 30 times every second, but only if the values changed | |
| 77 | --If player is not moving their mouse, client won't fire events | |
| 78 | while wait(1/30) do | |
| 79 | if h~=Mouse.Hit or t~=Mouse.Target then | |
| 80 | h,t=Mouse.Hit,Mouse.Target | |
| 81 | Event:FireServer({isMouse=true,Target=t,Hit=h})
| |
| 82 | end | |
| 83 | end]==],Player.Character) | |
| 84 | Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS | |
| 85 | end | |
| 86 | function() | |
| 87 | local plr = owner | |
| 88 | local deb = false | |
| 89 | ||
| 90 | while not plr.Character do wait() end | |
| 91 | wait(0.1) | |
| 92 | ||
| 93 | warn("Timestop loaded. R to toggle time.")
| |
| 94 | ||
| 95 | local tstab = {}
| |
| 96 | local tsstab = {}
| |
| 97 | local ignlist = {}
| |
| 98 | local stab = {}
| |
| 99 | ||
| 100 | function plrIgnore(char) | |
| 101 | for i,v in pairs(char:GetChildren()) do | |
| 102 | if #v:GetChildren() >= 1 then | |
| 103 | plrIgnore(v) | |
| 104 | end | |
| 105 | table.insert(ignlist,v) | |
| 106 | end | |
| 107 | end | |
| 108 | ||
| 109 | function timeStop(target) | |
| 110 | for i,v in pairs(target:GetChildren()) do | |
| 111 | if #v:GetChildren() >= 1 then | |
| 112 | timeStop(v) | |
| 113 | end | |
| 114 | local isinign = false | |
| 115 | for i,b in pairs(ignlist) do | |
| 116 | if b == v then | |
| 117 | isinign = true | |
| 118 | end | |
| 119 | end | |
| 120 | if isinign == false then | |
| 121 | if v:IsA("Part") or v:IsA("WedgePart") or v:IsA("UnionOperation") then
| |
| 122 | if v.Anchored == false then | |
| 123 | table.insert(tstab,v) | |
| 124 | v.Anchored = true | |
| 125 | end | |
| 126 | end | |
| 127 | if v:IsA("Sound") then
| |
| 128 | local isintab = false | |
| 129 | for i,b in pairs(stab) do | |
| 130 | if v == b[1] then | |
| 131 | isintab = true | |
| 132 | end | |
| 133 | end | |
| 134 | if isintab == false then | |
| 135 | table.insert(stab,{v,v.Pitch})
| |
| 136 | end | |
| 137 | end | |
| 138 | --[[if v:IsA("Script") or v:IsA("LocalScript") then
| |
| 139 | if v.Disabled == false then | |
| 140 | table.insert(tsstab,v) | |
| 141 | v.Disabled = true | |
| 142 | end | |
| 143 | end]] | |
| 144 | end | |
| 145 | end | |
| 146 | local isinign = false | |
| 147 | for i,b in pairs(ignlist) do | |
| 148 | if b == target then | |
| 149 | isinign = true | |
| 150 | end | |
| 151 | end | |
| 152 | if isinign == false then | |
| 153 | if target:IsA("Part") or target:IsA("WedgePart") or target:IsA("UnionOperation") then
| |
| 154 | if target.Anchored == false then | |
| 155 | table.insert(tstab,target) | |
| 156 | target.Anchored = true | |
| 157 | end | |
| 158 | end | |
| 159 | if target:IsA("Sound") then
| |
| 160 | table.insert(stab,{target,target.Pitch})
| |
| 161 | end | |
| 162 | end | |
| 163 | end | |
| 164 | ||
| 165 | plr:GetMouse().KeyDown:connect(function(key) | |
| 166 | if key == "r" then | |
| 167 | if deb == true then | |
| 168 | deb = false | |
| 169 | else | |
| 170 | deb = true | |
| 171 | local cc = Instance.new("ColorCorrectionEffect",game:GetService("Lighting"))
| |
| 172 | spawn(function() | |
| 173 | plr.Character.Humanoid.WalkSpeed = 0 | |
| 174 | plr.Character.Humanoid.JumpPower = 0 | |
| 175 | local p = Instance.new("Part",plr.Character)
| |
| 176 | p.Transparency = 0.5 | |
| 177 | p.BrickColor = BrickColor.new("Institutional white")
| |
| 178 | p.Size = Vector3.new(0.2,0.2,0.2) | |
| 179 | p.Anchored = true | |
| 180 | p.CanCollide = false | |
| 181 | p.CFrame = plr.Character.Torso.CFrame | |
| 182 | local m = Instance.new("SpecialMesh",p)
| |
| 183 | m.MeshType = Enum.MeshType.Sphere | |
| 184 | ||
| 185 | local r = 255 | |
| 186 | local g = 255 | |
| 187 | local b = 255 | |
| 188 | local contrast = 0 | |
| 189 | ||
| 190 | for i=1,50 do | |
| 191 | m.Scale = m.Scale + Vector3.new(50,50,50) | |
| 192 | p.Transparency = p.Transparency + 0.5/50 | |
| 193 | r = r - ((255-42)/50) | |
| 194 | g = g - ((255-0)/50) | |
| 195 | b = b - ((255-255)/50) | |
| 196 | contrast = contrast - 2/50 | |
| 197 | --cc.TintColor = Color3.fromRGB(r,g,b) | |
| 198 | cc.Contrast = contrast | |
| 199 | for i,v in pairs(stab) do | |
| 200 | v[1].Pitch = v[1].Pitch - (v[2]/50) | |
| 201 | end | |
| 202 | wait() | |
| 203 | end | |
| 204 | p:Destroy() | |
| 205 | plr.Character.Humanoid.WalkSpeed = 16 | |
| 206 | plr.Character.Humanoid.JumpPower = 50 | |
| 207 | end) | |
| 208 | ||
| 209 | local aNew = game:GetService("Workspace").ChildAdded:connect(function(c)
| |
| 210 | timeStop(c) | |
| 211 | end) | |
| 212 | ||
| 213 | for i,v in pairs(ignlist) do | |
| 214 | table.remove(ignlist,1) | |
| 215 | end | |
| 216 | plrIgnore(plr.Character) | |
| 217 | timeStop(game:GetService("Workspace"))
| |
| 218 | while deb ~= false do wait() end | |
| 219 | --spawn(function() | |
| 220 | local r = 42 | |
| 221 | local g = 0 | |
| 222 | local b = 255 | |
| 223 | local contrast = -2 | |
| 224 | for i=1,50 do | |
| 225 | r = r + ((255-42)/50) | |
| 226 | g = g + ((255-0)/50) | |
| 227 | b = b + ((255-255)/50) | |
| 228 | contrast = contrast + 2/50 | |
| 229 | --cc.TintColor = Color3.fromRGB(r,g,b) | |
| 230 | cc.Contrast = contrast | |
| 231 | for i,v in pairs(stab) do | |
| 232 | v[1].Pitch = v[1].Pitch + (v[2]/50) | |
| 233 | end | |
| 234 | wait() | |
| 235 | end | |
| 236 | cc:Destroy() | |
| 237 | --end) | |
| 238 | for i,v in pairs(tstab) do | |
| 239 | v.Anchored = false | |
| 240 | end | |
| 241 | for i,v in pairs(tstab) do | |
| 242 | table.remove(tstab,1) | |
| 243 | end | |
| 244 | --table.foreach(stab,print) | |
| 245 | for i,v in pairs(stab) do | |
| 246 | table.remove(stab,1) | |
| 247 | end | |
| 248 | --print("---------")
| |
| 249 | --table.foreach(stab,print) | |
| 250 | --[[for i,v in pairs(tsstab) do | |
| 251 | v.Disabled = false | |
| 252 | end | |
| 253 | for i,v in pairs(tsstab) do | |
| 254 | table.remove(tsstab,1) | |
| 255 | end]] | |
| 256 | aNew:disconnect() | |
| 257 | deb = false | |
| 258 | end | |
| 259 | end | |
| 260 | end) | |
| 261 | end | |
| 262 | }, | |
| 263 | {
| |
| 264 | "Egg", | |
| 265 | function() | |
| 266 | wait(3) | |
| 267 | ||
| 268 | local plr = owner | |
| 269 | ||
| 270 | while not plr.Character do wait() end | |
| 271 | ||
| 272 | local char,jtab,ceqpt,bsy,isaim,cd,drawf,state = plr.Character,{},false,false,false,false,false,"loading"
| |
| 273 | ||
| 274 | local hdp = Instance.new("Part",script.Parent)
| |
| 275 | hdp.Name = "HandlePart" | |
| 276 | hdp.Size = Vector3.new(0.2,0.2,0.2) | |
| 277 | ||
| 278 | local meshTab = {
| |
| 279 | {"rbxassetid://705224299","rbxassetid://705224727",Vector3.new(0.4,0.4,0.4)},
| |
| 280 | {"rbxassetid://705216303","rbxassetid://705216927",Vector3.new(1.8,1.8,1.8)},
| |
| 281 | {"rbxassetid://705209239","rbxassetid://705209459",Vector3.new(0.8,0.8,0.8)},
| |
| 282 | {"rbxassetid://705247407","rbxassetid://705246950",Vector3.new(1,1,1)},
| |
| 283 | {"rbxassetid://705242967","rbxassetid://705243300",Vector3.new(0.44,0.44,0.44)},
| |
| 284 | {"rbxassetid://705197095","rbxassetid://705197292",Vector3.new(1.25,1.25,1.25)},
| |
| 285 | {"rbxassetid://676836968","rbxassetid://676837441",Vector3.new(0.5,0.5,0.5)},
| |
| 286 | {"rbxassetid://698838167","rbxassetid://698838688",Vector3.new(1.6,1.6,1.6)},
| |
| 287 | {"rbxassetid://698827858","rbxassetid://698828143",Vector3.new(1.4,1.4,1.5)},
| |
| 288 | {"rbxassetid://705202806","rbxassetid://705207716",Vector3.new(1,1,1)},
| |
| 289 | {"rbxassetid://676840078","rbxassetid://676839351",Vector3.new(1.2,1.2,1.2)},
| |
| 290 | {"rbxassetid://717179708","rbxassetid://705199414",Vector3.new(1,0.95,1.05)},
| |
| 291 | {"rbxassetid://724420662","rbxassetid://705195915",Vector3.new(0.8,0.8,0.8)},
| |
| 292 | {"rbxassetid://676841945","rbxassetid://676842522",Vector3.new(1.7,1.7,1.8)},
| |
| 293 | {"rbxassetid://705315624","rbxassetid://705315897",Vector3.new(0.4,0.4,0.4)},
| |
| 294 | {"rbxassetid://698835993","rbxassetid://698836260",Vector3.new(1,1,1)},
| |
| 295 | {"rbxassetid://698813624","rbxassetid://698813905",Vector3.new(1.6,1.6,1.6)},
| |
| 296 | {"rbxassetid://706712283","rbxassetid://705202233",Vector3.new(2.1,2.1,2.1)},
| |
| 297 | {"rbxassetid://705208513","rbxassetid://705208760",Vector3.new(1.05,1.05,1.05)},
| |
| 298 | {"rbxassetid://676843975","rbxassetid://676844191",Vector3.new(1.6,1.6,1.6)},
| |
| 299 | {"rbxassetid://676846031","rbxassetid://676846800",Vector3.new(0.6,0.6,0.6)},
| |
| 300 | {"rbxassetid://676848204","rbxassetid://676848680",Vector3.new(0.5,0.5,0.5)},
| |
| 301 | {"rbxassetid://705217565","rbxassetid://705218075",Vector3.new(1,1,1)},
| |
| 302 | {"rbxassetid://698829950","rbxassetid://698830608",Vector3.new(0.5,0.5,0.5)},
| |
| 303 | {"rbxassetid://705200619","rbxassetid://705200948",Vector3.new(2,2,2)},
| |
| 304 | {"rbxassetid://698816291","rbxassetid://698816601",Vector3.new(0.45,0.45,0.45)},
| |
| 305 | {"rbxassetid://705245424","rbxassetid://705245604",Vector3.new(1,1,1)},
| |
| 306 | {"rbxassetid://698839252","rbxassetid://698839539",Vector3.new(1.5,1.55,1.55)},
| |
| 307 | {"rbxassetid://676850168","rbxassetid://676850427",Vector3.new(1,1,1)},
| |
| 308 | {"rbxassetid://698836963","rbxassetid://698837211",Vector3.new(2.3,2,2)},
| |
| 309 | {"rbxassetid://705219281","rbxassetid://705219747",Vector3.new(1.7,1.7,1.7)},
| |
| 310 | {"rbxassetid://698822829","rbxassetid://698823375",Vector3.new(1.5,1.5,1.5)},
| |
| 311 | {"rbxassetid://698824115","rbxassetid://698824851",Vector3.new(2.4,2.4,2.4)},
| |
| 312 | {"rbxassetid://698825712","rbxassetid://698825959",Vector3.new(1.5,1.5,1.5)},
| |
| 313 | {"rbxassetid://676851481","rbxassetid://676851716",Vector3.new(1,1,1)},
| |
| 314 | {"rbxassetid://676854360","rbxassetid://676854795",Vector3.new(0.55,0.55,0.55)},
| |
| 315 | {"rbxassetid://676856626","rbxassetid://676856930",Vector3.new(0.6,0.6,0.6)},
| |
| 316 | {"rbxassetid://676858618","rbxassetid://676858897",Vector3.new(1.4,1.4,1.4)},
| |
| 317 | {"rbxassetid://698835348","rbxassetid://698831630",Vector3.new(1.8,1.8,1.8)},
| |
| 318 | {"rbxassetid://676859903","rbxassetid://676860203",Vector3.new(1.2,1.2,1.2)},
| |
| 319 | {"rbxassetid://698829304","rbxassetid://698828946",Vector3.new(1.3,1.3,1.3)},
| |
| 320 | {"rbxassetid://698811815","rbxassetid://698812183",Vector3.new(1,1,1)},
| |
| 321 | {"rbxassetid://705225654","rbxassetid://705228740",Vector3.new(1,1,1)}
| |
| 322 | } | |
| 323 | ||
| 324 | local mlgTab = {
| |
| 325 | "rbxassetid://566672836", | |
| 326 | "rbxassetid://306356119", | |
| 327 | "rbxassetid://10524802", | |
| 328 | "rbxassetid://166285971", | |
| 329 | "rbxassetid://217185480", | |
| 330 | "rbxassetid://198329363", | |
| 331 | "rbxassetid://286279066", | |
| 332 | "rbxassetid://175843771", | |
| 333 | "rbxassetid://165053954", | |
| 334 | "rbxassetid://603718340", | |
| 335 | "rbxassetid://133727996" | |
| 336 | } | |
| 337 | ||
| 338 | local msh = Instance.new("SpecialMesh",script.Parent.HandlePart)
| |
| 339 | msh.MeshType = Enum.MeshType.FileMesh | |
| 340 | local rnd = math.random(1,#meshTab) | |
| 341 | msh.MeshId = meshTab[rnd][1] | |
| 342 | msh.TextureId = meshTab[rnd][2] | |
| 343 | msh.Scale = meshTab[rnd][3]/2 | |
| 344 | ||
| 345 | local gyro = Instance.new("BodyGyro",char:WaitForChild("HumanoidRootPart"))
| |
| 346 | gyro.MaxTorque = Vector3.new(0,0,0) | |
| 347 | gyro.D = 0 | |
| 348 | gyro.P = 100000000 | |
| 349 | ||
| 350 | print(script.Parent.Name.." Loaded.") | |
| 351 | ||
| 352 | plr:GetMouse().KeyDown:connect(function(key) | |
| 353 | if key == "f" then | |
| 354 | if ceqpt == false then | |
| 355 | ceqpt = true | |
| 356 | bsy = false | |
| 357 | ||
| 358 | spawn(function() | |
| 359 | for i=1,10 do | |
| 360 | script.Parent.HandlePart.Transparency = script.Parent.HandlePart.Transparency - 0.1 | |
| 361 | wait() | |
| 362 | end | |
| 363 | end) | |
| 364 | local rnd = math.random(1,#meshTab) | |
| 365 | msh.MeshId = meshTab[rnd][1] | |
| 366 | msh.TextureId = meshTab[rnd][2] | |
| 367 | msh.Scale = meshTab[rnd][3]/2 | |
| 368 | ||
| 369 | print("Saving old joints")
| |
| 370 | for i,v in pairs(char.Torso:GetChildren()) do | |
| 371 | if v:IsA("Motor6D") and v.Name ~= "Neck" then
| |
| 372 | print(v.Name.." saved!") | |
| 373 | table.insert(jtab,v) | |
| 374 | end | |
| 375 | end | |
| 376 | ||
| 377 | local aWeld = Instance.new("Weld",char["Right Arm"])
| |
| 378 | aWeld.Name = "aWeld" | |
| 379 | aWeld.Part0 = script.Parent.HandlePart | |
| 380 | aWeld.Part1 = char["Right Arm"] | |
| 381 | aWeld.C0 = CFrame.new(0,0,1)*CFrame.Angles(math.rad(90),math.rad(0),math.rad(0)) | |
| 382 | ||
| 383 | local bWeld = Instance.new("Weld",char["Torso"])
| |
| 384 | bWeld.Name = "bWeld" | |
| 385 | bWeld.Part0 = char["Torso"] | |
| 386 | bWeld.Part1 = char["Right Arm"] | |
| 387 | bWeld.C0 = CFrame.new(1.5,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0)) | |
| 388 | ||
| 389 | local cWeld = Instance.new("Weld",char["Torso"])
| |
| 390 | cWeld.Name = "cWeld" | |
| 391 | cWeld.Part0 = char["Torso"] | |
| 392 | cWeld.Part1 = char["Left Arm"] | |
| 393 | cWeld.C0 = CFrame.new(-1.5,0,0)*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0)) | |
| 394 | ||
| 395 | else | |
| 396 | ||
| 397 | ceqpt = false | |
| 398 | spawn(function() | |
| 399 | for i=1,10 do | |
| 400 | script.Parent.HandlePart.Transparency = script.Parent.HandlePart.Transparency + 0.1 | |
| 401 | wait() | |
| 402 | end | |
| 403 | end) | |
| 404 | for i,v in pairs(char.Torso:GetChildren()) do | |
| 405 | if v:IsA("Weld") or v:IsA("Motor6D") then
| |
| 406 | if v.Name ~= "Neck" then | |
| 407 | v:Destroy() | |
| 408 | end | |
| 409 | end | |
| 410 | end | |
| 411 | for i,v in pairs(jtab) do | |
| 412 | v:Clone().Parent = char.Torso | |
| 413 | end | |
| 414 | for i,v in pairs(jtab) do | |
| 415 | table.remove(jtab,1) | |
| 416 | end | |
| 417 | ||
| 418 | char.HumanoidRootPart.RootJoint.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(0),math.rad(180)) | |
| 419 | gyro.MaxTorque = Vector3.new(0,0,0) | |
| 420 | char.Torso.Neck.C0 = CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(0),math.rad(180)) | |
| 421 | end | |
| 422 | end | |
| 423 | end) |