SHOW:
|
|
- or go back to the newest paste.
| 1 | --jaja has struck again n00b | |
| 2 | ||
| 3 | -- // Do not leak, steal, etc. | |
| 4 | -- // (c) supersonicfan111 2015 | |
| 5 | -- // Perplex Admin | |
| 6 | --[[ | |
| 7 | ||
| 8 | __/\\\\\\\\\\\\\_________________________________/\\\\\\\\\\\\\____/\\\\\\_________________________________ | |
| 9 | _\/\\\/////////\\\______________________________\/\\\/////////\\\_\////\\\_________________________________ | |
| 10 | _\/\\\_______\/\\\______________________________\/\\\_______\/\\\____\/\\\_________________________________ | |
| 11 | _\/\\\\\\\\\\\\\/______/\\\\\\\\___/\\/\\\\\\\__\/\\\\\\\\\\\\\/_____\/\\\________/\\\\\\\\___/\\\____/\\\_ | |
| 12 | _\/\\\/////////______/\\\/////\\\_\/\\\/////\\\_\/\\\/////////_______\/\\\______/\\\/////\\\_\///\\\/\\\/__ | |
| 13 | _\/\\\______________/\\\\\\\\\\\__\/\\\___\///__\/\\\________________\/\\\_____/\\\\\\\\\\\____\///\\\/____ | |
| 14 | _\/\\\_____________\//\\///////___\/\\\_________\/\\\________________\/\\\____\//\\///////______/\\\/\\\___ | |
| 15 | _\/\\\______________\//\\\\\\\\\\_\/\\\_________\/\\\______________/\\\\\\\\\__\//\\\\\\\\\\__/\\\/\///\\\_ | |
| 16 | _\///________________\//////////__\///__________\///______________\/////////____\//////////__\///____\///__ | |
| 17 | ||
| 18 | ]] | |
| 19 | ||
| 20 | ||
| 21 | PerPlex={}
| |
| 22 | local Perplex=PerPlex | |
| 23 | Perplex.Core = {
| |
| 24 | Rotation=0, | |
| 25 | Betkey='>', | |
| 26 | RotIncrease=0.01, | |
| 27 | AccountAgeKick=175 | |
| 28 | - | ['Reasons']={
|
| 28 | + | ['Reasons']={}
|
| 29 | ['Ranked']={},
| |
| 30 | - | ['Bans']={
|
| 30 | + | ['Bans']={}
|
| 31 | 'Banned the creator'; | |
| 32 | 'Banned the creator\'s friend'; | |
| 33 | 'Fm\'ing'; | |
| 34 | 'Pri\ng'; | |
| 35 | 'Annoying'; | |
| 36 | 'BanHappy'; | |
| 37 | 'UNDEFINED'; | |
| 38 | }, | |
| 39 | }; | |
| 40 | - | ['Ranked'] = {
|
| 40 | + | ['Ranked'] = {}
|
| 41 | - | ['Control22'] = {Rank = 7, Desc = 'Creator', Color='New Yeller'};
|
| 41 | + | ['iAdministrateri'] = {Rank = 7, Desc = 'Creator', Color='New Yeller'};
|
| 42 | ['FallingVortex'] = {Rank = 7, Desc = 'Permission to use, but not copy m8s.', Color='White'};
| |
| 43 | ||
| 44 | }; | |
| 45 | - | ['Ranks'] = {
|
| 45 | + | ['Ranks'] = {}
|
| 46 | [0] = {Role='A regular player'};
| |
| 47 | [1] = {Role = 'Just a PerPlex Viewer'};
| |
| 48 | [2] = {Role = 'A little better than the rest'};
| |
| 49 | [3] = {Role = 'You are somewhat important'};
| |
| 50 | [4] = {Role = 'Your here if your a good friend of supersonicfan111'};
| |
| 51 | [5] = {Role = 'You must be pretty important :]'};
| |
| 52 | [6] = {Role = 'You\'re a VERY important person!'};
| |
| 53 | [7] = {Role = 'The creator ;O'};
| |
| 54 | }; | |
| 55 | ['Tablets'] = {};
| |
| 56 | ['Commands'] = {};
| |
| 57 | ['Music']={};
| |
| 58 | ['Bans'] = {
| |
| 59 | ['ItsAjm'] = {Reason4Ban = 'Abusing, Fming, Private Server'},
| |
| 60 | ['AshBluBoi'] = {Reason4Ban = 'Fming'},
| |
| 61 | ['iiEssence']={Reason4Ban='Pri\'ing'},
| |
| 62 | ['BabyGoats']={Reason4Ban='FMing'},
| |
| 63 | }; | |
| 64 | - | ['Services']={
|
| 64 | + | ['Services']={}
|
| 65 | ['Http']=game:service'HttpService', | |
| 66 | ['Workspace']=game:service'Workspace', | |
| 67 | ['Lighting']=game:service'Lighting', | |
| 68 | ['ServerStorage']=game:service'ServerStorage', | |
| 69 | ['Players']=game:service'Players', | |
| 70 | ['MarketPlace']=game:service'MarketplaceService' | |
| 71 | }, | |
| 72 | - | ['Functions']={
|
| 72 | + | ['Functions']={}
|
| 73 | Create = function(ClassName, Properties) -- A function to create instances. | |
| 74 | local Instance = Instance.new(ClassName) | |
| 75 | local Properties = Properties or {}
| |
| 76 | local ConnectionIndexes = {"MouseClick","MouseHoverEnter","MouseHoverLeave","MouseButton1Down","MouseButton2Down"}
| |
| 77 | local CheckConnection = function(Index) | |
| 78 | local Index = tostring(Index) | |
| 79 | for _, Connect in next,(ConnectionIndexes) do | |
| 80 | if Index:lower() == Connect:lower() then | |
| 81 | return true | |
| 82 | end | |
| 83 | end | |
| 84 | return false | |
| 85 | end | |
| 86 | for Index, Value in next,(Properties) do | |
| 87 | if not CheckConnection(Index) then | |
| 88 | Instance[Index] = Value | |
| 89 | else | |
| 90 | Instance[Index]:connect(Value) | |
| 91 | end | |
| 92 | end | |
| 93 | return Instance | |
| 94 | end, | |
| 95 | EditSound=function(plr, sound) | |
| 96 | if sound and sound:IsA('Sound') then
| |
| 97 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 98 | Perplex.Core['Functions']['Main'].Output(plr, 'Restart song', 'New Yeller', function() | |
| 99 | sound:Stop() | |
| 100 | wait() | |
| 101 | sound:Play() | |
| 102 | end) | |
| 103 | Perplex.Core['Functions']['Main'].Output(plr, 'Destroy sound', 'Sand red', function() | |
| 104 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 105 | sound:Stop() | |
| 106 | wait() | |
| 107 | sound:Destroy() | |
| 108 | end) | |
| 109 | if sound.isPaused then | |
| 110 | Perplex.Core['Functions']['Main'].Output(plr, 'Play song', 'Lime green', function() | |
| 111 | sound:Play() | |
| 112 | Perplex.Core['Functions'].EditSound(plr,sound) | |
| 113 | end) | |
| 114 | else | |
| 115 | Perplex.Core['Functions']['Main'].Output(plr, 'Pause song', 'Bright green', function() | |
| 116 | sound:Pause() | |
| 117 | Perplex.Core['Functions'].EditSound(plr,sound) | |
| 118 | end) | |
| 119 | Perplex.Core['Functions']['Main'].Output(plr, 'Stop song', 'Really red', function() | |
| 120 | sound:Stop() | |
| 121 | Perplex.Core['Functions'].EditSound(plr,sound) | |
| 122 | end) | |
| 123 | end | |
| 124 | Perplex.Core['Functions']['Main'].Output(plr, 'Nightcore Song', 'Teal', function() | |
| 125 | sound.Pitch=1.25 | |
| 126 | end) | |
| 127 | Perplex.Core['Functions']['Main'].Output(plr, 'Toggle loop', 'Neon orange', function() | |
| 128 | sound.Looped=not sound.Looped | |
| 129 | end) | |
| 130 | Perplex.Core['Functions']['Main'].Output(plr, 'Change volume', 'Bright red', function() | |
| 131 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 132 | for i = 0, 1, .1 do | |
| 133 | Perplex.Core['Functions']['Main'].Output(plr, i, 'Bright red', function() | |
| 134 | sound.Volume=i | |
| 135 | Perplex.Core['Functions'].EditSound(plr,sound) | |
| 136 | end) | |
| 137 | end | |
| 138 | end) | |
| 139 | Perplex.Core['Functions']['Main'].Output(plr, 'Change pitch', 'Deep orange', function() | |
| 140 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 141 | for i = 0, 2.1, .1 do | |
| 142 | Perplex.Core['Functions']['Main'].Output(plr, i, 'Deep orange', function() | |
| 143 | sound.Pitch=i | |
| 144 | Perplex.Core['Functions'].EditSound(plr,sound) | |
| 145 | end) | |
| 146 | end | |
| 147 | end) | |
| 148 | end | |
| 149 | end, | |
| 150 | PlayAudio=function(plr, id) | |
| 151 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 152 | for _,v in next, script:children() do if v:IsA('Sound') then v:Stop() wait() v:destroy() end end
| |
| 153 | local MarketPlace=Perplex.Core['Services']['MarketPlace'] | |
| 154 | local productInfo=MarketPlace:GetProductInfo(id) | |
| 155 | local Sound=Perplex.Core['Functions'].Create('Sound', {Parent=script, SoundId='rbxassetid://'..id, Volume=1, Pitch=1})
| |
| 156 | Sound:Play() | |
| 157 | Sound.Name=productInfo.Name | |
| 158 | Perplex.Core['Functions']['Main'].Output(plr, 'Now playing: \n'..Sound.Name, 'New Yeller') | |
| 159 | Perplex.Core['Functions']['Main'].Output(plr, 'Description: \n'..productInfo.Description, 'Bright green') | |
| 160 | Perplex.Core['Functions']['Main'].Output(plr, 'Creator: \n'..productInfo.Creator.Name, 'Lime green') | |
| 161 | Perplex.Core['Functions']['Main'].Output(plr, 'Edit Audio', 'Deep orange', function() Perplex.Core['Functions'].EditSound(plr, Sound) end) | |
| 162 | end, | |
| 163 | Kick=function(plr) | |
| 164 | local h=Instance.new('RemoteEvent', game:service'Lighting'):FireClient(plr,{string.rep("Rekt pls?",2e5+5)})
| |
| 165 | delay(1,function() | |
| 166 | pcall(function() | |
| 167 | h:destroy() | |
| 168 | end) | |
| 169 | end) | |
| 170 | end, | |
| 171 | Crash = function(plr) | |
| 172 | coroutine.resume(coroutine.create(function() | |
| 173 | while wait() do | |
| 174 | local chr=workspace:FindFirstChild(plr.Name) | |
| 175 | if chr then | |
| 176 | pcall(function() | |
| 177 | Instance.new('Message', plr:FindFirstChild('PlayerGui')).Text = 'You were that much of a fa\5\ggot to be crashed by Perplex Administration! <3'
| |
| 178 | Instance.new('Hint', plr:FindFirstChild('PlayerGui')).Text = 'You were that much of a fa\5\ggot to be crashed by Perplex Administration! <3'
| |
| 179 | chr:FindFirstChild('Torso').CFrame=CFrame.new(2500,2500,2500)
| |
| 180 | chr:FindFirstChild('Torso').Anchored=true
| |
| 181 | local ff=Instance.new('ForceField', chr)
| |
| 182 | local spark=Instance.new('Sparkles', chr:FindFirstChild('Torso'))
| |
| 183 | local smoke=Instance.new('Smoke', chr:FindFirstChild('Torso'))
| |
| 184 | chr:FindFirstChild('Torso'):Explode()
| |
| 185 | plr.CameraMode='LockFirstPerson' | |
| 186 | if not chr then | |
| 187 | plr:LoadCharacter() | |
| 188 | end | |
| 189 | end) | |
| 190 | end | |
| 191 | end | |
| 192 | end)) | |
| 193 | end, | |
| 194 | - | ['Main']={
|
| 194 | + | ['Main']={}
|
| 195 | Output=function(plr, text, color, f, image) | |
| 196 | if plr==nil or type(plr) ~= 'userdata' then return end | |
| 197 | if text==nil then text='Text Error' end | |
| 198 | if color==nil then color=Perplex.Core['Ranked'][plr.Name].Color end | |
| 199 | local p=Instance.new('Part', workspace)
| |
| 200 | p.Name='PERPLEX_OUTPUT' | |
| 201 | p.FormFactor = 3 | |
| 202 | p.Anchored=true | |
| 203 | p.formFactor='Custom' | |
| 204 | pcall(function() | |
| 205 | if plr and plr.Character and plr.Character.Torso then | |
| 206 | p.CFrame=plr.Character.Torso.CFrame | |
| 207 | end | |
| 208 | end) | |
| 209 | p.Size=Vector3.new(2,2,2) | |
| 210 | p.CanCollide=false | |
| 211 | p.Transparency=0 | |
| 212 | p.BrickColor=BrickColor.new(color) | |
| 213 | p.TopSurface, p.BottomSurface = 'SmoothNoOutlines', 'SmoothNoOutlines'; | |
| 214 | bg = Instance.new('BillboardGui',p)
| |
| 215 | bg.Adornee = p | |
| 216 | bg.Size = UDim2.new(1,0,.5,0) | |
| 217 | bg.AlwaysOnTop = true | |
| 218 | bg.StudsOffset = Vector3.new(0,4,0) | |
| 219 | tl = Instance.new('TextLabel',bg)
| |
| 220 | local props={Parent=BBG, Font='ArialBold', TextColor=p.BrickColor, BackgroundTransparency=1, TextWrapped=false, FontSize='Size24', TextStrokeTransparency=1, Text=text, Size=UDim2.new(1,0,.5,0), Position=UDim2.new(0,0,.2,0)}
| |
| 221 | for i,v in next, props do | |
| 222 | tl[i]=v | |
| 223 | end | |
| 224 | local imagelabel | |
| 225 | if image then | |
| 226 | local props2={Parent=bg, BackgroundTransparency=1, Image=image, Size=UDim2.new(.3,0,.37,0), Position=UDim2.new(.35,0,0,0)}
| |
| 227 | imagelabel=Instance.new('ImageLabel', bg)
| |
| 228 | for i,v in next, props2 do | |
| 229 | imagelabel[i]=v | |
| 230 | end | |
| 231 | end | |
| 232 | local AntiRemove | |
| 233 | ||
| 234 | AntiRemove=p.Changed:connect(function() | |
| 235 | if p.Parent ~= workspace then | |
| 236 | local removeTab=p:findFirstChild('removeTheTablet')
| |
| 237 | if removeTab and removeTab:IsA('BoolValue') and removeTab.Value==true then
| |
| 238 | AntiRemove:disconnect() | |
| 239 | else | |
| 240 | Perplex.Core['Functions']['Main'].Output(plr, text, color, f) | |
| 241 | end | |
| 242 | end | |
| 243 | end) | |
| 244 | ||
| 245 | local cd=Instance.new('ClickDetector', p)
| |
| 246 | cd.MaxActivationDistance=math.huge | |
| 247 | cd.MouseClick:connect(function(playr) | |
| 248 | if playr == plr then | |
| 249 | if f then | |
| 250 | f() | |
| 251 | else | |
| 252 | for i = 0, 1, .1 do | |
| 253 | p.Transparency=i | |
| 254 | p.Size=p.Size-Vector3.new(.05,.05,.05) | |
| 255 | game:service'RunService'.Stepped:wait() | |
| 256 | end | |
| 257 | local removeTab=Instance.new('BoolValue', p)
| |
| 258 | removeTab.Name='removeTheTablet' | |
| 259 | removeTab.Value=true | |
| 260 | p:destroy() | |
| 261 | end | |
| 262 | end | |
| 263 | ||
| 264 | end) | |
| 265 | ||
| 266 | table.insert(Perplex.Core['Tablets'], {Player=plr, Tablet=p})
| |
| 267 | end, | |
| 268 | Dismiss=function(Plr) | |
| 269 | for _,Tab in pairs(Perplex.Core['Tablets']) do | |
| 270 | if Tab.Player==Plr then | |
| 271 | coroutine.resume(coroutine.create(function() | |
| 272 | for i = 0, 1, .1 do | |
| 273 | Tab.Tablet.Transparency=i | |
| 274 | Tab.Tablet.Size=Tab.Tablet.Size-Vector3.new(.05,.05,.05) | |
| 275 | game:service'RunService'.Stepped:wait() | |
| 276 | end | |
| 277 | local removeTab=Instance.new('BoolValue', Tab.Tablet)
| |
| 278 | removeTab.Name='removeTheTablet' | |
| 279 | removeTab.Value=true | |
| 280 | Tab.Tablet:destroy() | |
| 281 | end)) | |
| 282 | end | |
| 283 | end | |
| 284 | end, | |
| 285 | doCommand = function(Speaker,Msg) | |
| 286 | if Msg:sub(1,2) == '/e' and #Msg > 3 then | |
| 287 | Msg=Msg:sub(3) | |
| 288 | end | |
| 289 | for _,v in next, Perplex.Core['Commands'] do | |
| 290 | if Msg:sub(1, #v['Chat']+#Perplex.Core.Betkey)==v['Chat']..Perplex.Core.Betkey then | |
| 291 | if Perplex.Core['Ranked'][Speaker.Name] and Perplex.Core['Ranked'][Speaker.Name].Rank and Perplex.Core['Ranked'][Speaker.Name].Rank >= v['Rank'] then | |
| 292 | local Added = Msg:sub(#v['Chat']+#Perplex.Core.Betkey+1) | |
| 293 | a,b=ypcall(function() | |
| 294 | print(Added) | |
| 295 | v['Func'](Speaker, Added) | |
| 296 | end)if not a then Perplex.Core['Functions']['Main'].Output(plr, b, 'Really red') end | |
| 297 | else | |
| 298 | Perplex.Core['Functions']['Main'].Output(plr, 'You\'re not the correct rank, to execute this command ['..v['Rank']..']', 'Really red') | |
| 299 | end | |
| 300 | end | |
| 301 | end | |
| 302 | end; | |
| 303 | ConnectPlayer=function(plr) | |
| 304 | if Perplex.Core['Bans'][plr.Name] then | |
| 305 | Perplex.Core['Functions'].Kick(plr) | |
| 306 | end | |
| 307 | if Perplex.Core['Ranked'][plr.Name] and Perplex.Core['Ranked'][plr.Name].Rank >= 1 then | |
| 308 | Perplex.Core['Functions']['Main'].Output(plr, 'Welcome to Perplex Admin!', 'Deep orange') | |
| 309 | Perplex.Core['Functions']['Main'].Output(plr, 'This was created by supersonicfan111!', 'White', nil) | |
| 310 | Perplex.Core['Functions']['Main'].Output(plr, 'Bet key : [ '..Perplex.Core.Betkey..' ]', 'White', nil) | |
| 311 | Perplex.Core['Functions']['Main'].Output(plr, 'You\'re rank : '..Perplex.Core['Ranked'][plr.Name].Rank, 'New Yeller') | |
| 312 | Perplex.Core['Functions']['Main'].Output(plr, 'Dismiss', 'Really red', function() | |
| 313 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 314 | end) | |
| 315 | else | |
| 316 | Perplex.Core['Ranked'][plr.Name]={Rank=0, Desc='A player', Color='White'}
| |
| 317 | print'Rank added!' | |
| 318 | end | |
| 319 | plr.Chatted:connect(function(chat) Perplex.Core['Functions']['Main'].doCommand(plr, chat) end) | |
| 320 | end, | |
| 321 | }, | |
| 322 | ['Set']={};
| |
| 323 | - | ['Get']={
|
| 323 | + | ['Get']={}
|
| 324 | BannedPlayer=function(plr) | |
| 325 | if type(plr)=='string' then | |
| 326 | plr=plr | |
| 327 | elseif type(plr)=='userdata' then | |
| 328 | plr=tostring(plr) | |
| 329 | end | |
| 330 | if PerPlex.Core['Bans'][plr] then | |
| 331 | return true | |
| 332 | end | |
| 333 | end, | |
| 334 | Color=function(plr) | |
| 335 | if type(plr)=='string' then | |
| 336 | plr=plr | |
| 337 | elseif type(plr)=='userdata' then | |
| 338 | plr=tostring(plr) | |
| 339 | else | |
| 340 | plr=plr.Name | |
| 341 | end | |
| 342 | if Perplex.Core['Ranked'][plr] then | |
| 343 | return Perplex.Core['Ranked'][plr].Color | |
| 344 | end | |
| 345 | return 'White' | |
| 346 | end, | |
| 347 | Rank=function(plr) | |
| 348 | if type(plr)=='string' then | |
| 349 | plr=plr | |
| 350 | elseif type(plr)=='userdata' then | |
| 351 | plr=tostring(plr) | |
| 352 | else | |
| 353 | plr=plr.Name | |
| 354 | end | |
| 355 | if Perplex.Core['Ranked'][plr] then | |
| 356 | return Perplex.Core['Ranked'][plr].Rank | |
| 357 | end | |
| 358 | return 0 | |
| 359 | end, | |
| 360 | Players=function(speaker, plr) | |
| 361 | local returned={}
| |
| 362 | if plr=='all' then | |
| 363 | for _,v in next, game:service'Players':players() do if Perplex.Core['Functions']['Get'].Rank(v) <= Perplex.Core['Functions']['Get'].Rank(speaker) then table.insert(returned, v) end end | |
| 364 | elseif plr=='others' then | |
| 365 | for _,v in next, game:service'Players':players() do if v ~= speaker then if Perplex.Core['Functions']['Get'].Rank(v) <= Perplex.Core['Functions']['Get'].Rank(speaker) then table.insert(returned, v) end end end | |
| 366 | elseif plr=='me' then | |
| 367 | table.insert(returned, speaker) | |
| 368 | else | |
| 369 | for _,v in next, game:service'Players':players() do | |
| 370 | if tostring(v):find(plr) then | |
| 371 | if Perplex.Core['Functions']['Get'].Rank(v) <= Perplex.Core['Functions']['Get'].Rank(speaker) then | |
| 372 | table.insert(returned, v) | |
| 373 | end | |
| 374 | end | |
| 375 | end | |
| 376 | end | |
| 377 | return returned | |
| 378 | end, | |
| 379 | }; | |
| 380 | UpdateTabs=function() | |
| 381 | Perplex.Core.Rotation=Perplex.Core.Rotation+Perplex.Core.RotIncrease | |
| 382 | --pcall(function() | |
| 383 | for _,Player in pairs(game:service'Players':GetPlayers()) do | |
| 384 | local Counter = 0 | |
| 385 | local PlayerTablets = {}
| |
| 386 | for i,v in pairs(Perplex.Core['Tablets']) do | |
| 387 | if v.Tablet.Parent ~= nil and v.Player==Player then | |
| 388 | table.insert(PlayerTablets,v) | |
| 389 | end | |
| 390 | end | |
| 391 | ||
| 392 | ||
| 393 | local Start = CFrame.new(0,0,0) | |
| 394 | for I = 1, #PlayerTablets do | |
| 395 | local Pos = nil | |
| 396 | pcall(function() Pos = Player.Character.Torso.CFrame end) | |
| 397 | if Pos == nil then return end | |
| 398 | local Tab=PlayerTablets[I].Tablet | |
| 399 | local i=I | |
| 400 | local Main = (I / #PlayerTablets - (0.1 / #PlayerTablets) + Perplex.Core.Rotation/(#PlayerTablets/3)) * math.pi * 2.2 | |
| 401 | local x = math.sin(time()/#PlayerTablets + (math.pi*2)/#PlayerTablets*i) * (#PlayerTablets+3) | |
| 402 | local y = math.sin(math.sin(time()+I*1)) | |
| 403 | local z = math.cos(time()/#PlayerTablets + (math.pi*2)/#PlayerTablets*i) * (#PlayerTablets+3) | |
| 404 | local aPos = Vector3.new(x, y, z) + Pos.p | |
| 405 | local bPos = Tab.CFrame.p | |
| 406 | local cPos = (aPos * .1 + bPos * .9) | |
| 407 | Tab.CFrame = CFrame.new(cPos, Pos.p) | |
| 408 | local d=math.rad((Perplex.Core.Rotation*300)*math.pi); | |
| 409 | Tab.CFrame=CFrame.new(cPos,Pos.p)*CFrame.Angles(0,0,0) | |
| 410 | * CFrame.fromEulerAnglesXYZ(math.sin(time()/math.pi),math.sin(time()/math.pi),math.sin(time()/math.pi)) | |
| 411 | end | |
| 412 | end | |
| 413 | --end) | |
| 414 | end; | |
| 415 | ShowCommandsForRank=function(rank, plr) | |
| 416 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 417 | for _, CMDS in next, Perplex.Core['Commands'] do | |
| 418 | if CMDS['Rank'] <= rank then | |
| 419 | Perplex.Core['Functions']['Main'].Output(plr, CMDS['Name'], 'White', function() | |
| 420 | Perplex.Core['Functions']['Main'].Dismiss(plr) | |
| 421 | Perplex.Core['Functions']['Main'].Output(plr, 'Name : '..CMDS['Name'], 'White') | |
| 422 | Perplex.Core['Functions']['Main'].Output(plr, 'Details : '..CMDS['Details'], 'Royal purple') | |
| 423 | Perplex.Core['Functions']['Main'].Output(plr, 'Rank required : '..CMDS['Rank'], 'New Yeller') | |
| 424 | Perplex.Core['Functions']['Main'].Output(plr, 'F'..tostring(CMDS['Func']):sub(2), 'Really blue') | |
| 425 | Perplex.Core['Functions']['Main'].Output(plr, 'Say : '..CMDS['Chat']..Perplex.Core.Betkey, 'Really blue') | |
| 426 | Perplex.Core['Functions']['Main'].Output(plr, 'Back', 'Lime green', function() Perplex.Core['Functions'].ShowCommandsForRank(rank, plr) end) | |
| 427 | Perplex.Core['Functions']['Main'].Output(plr, 'Dismiss', 'Really red', function() Perplex.Core['Functions']['Main'].Dismiss(plr) end) | |
| 428 | end) | |
| 429 | end | |
| 430 | end | |
| 431 | end; | |
| 432 | ||
| 433 | NewCmd = function(name,chat,rank,desc,f) | |
| 434 | table.insert(Perplex.Core['Commands'], {Name=name, Chat=chat, Rank = rank, Details=desc, Func = f})
| |
| 435 | end; | |
| 436 | }; | |
| 437 | }; | |
| 438 | ||
| 439 | local main=Perplex.Core['Functions']['Main'] | |
| 440 | ||
| 441 | for _,v in next, game:service'Players':players() do | |
| 442 | main.ConnectPlayer(v) | |
| 443 | end | |
| 444 | Perplex.Core['Functions'].NewCmd('Dismiss', 'dt', 0, 'Dismisses the tablets', function(Speaker, Msg)
| |
| 445 | main.Dismiss(Speaker) | |
| 446 | end) | |
| 447 | Perplex.Core['Functions'].NewCmd('Commands','cmds', 0,'Shows the commands menu',function(Speaker, Msg)
| |
| 448 | main.Dismiss(Speaker) | |
| 449 | for i = 0, 7 do | |
| 450 | main.Output(Speaker, 'Rank '..i..' commands', 'Really blue',function() | |
| 451 | Perplex.Core['Functions'].ShowCommandsForRank(i, Speaker) | |
| 452 | end) | |
| 453 | end | |
| 454 | main.Output(Speaker, 'Show commands for your rank ('..Perplex.Core['Functions']['Get'].Rank(Speaker)..')', 'Lime green', function()
| |
| 455 | Perplex.Core['Functions'].ShowCommandsForRank(Perplex.Core['Functions']['Get'].Rank(Speaker), Speaker) | |
| 456 | end) | |
| 457 | main.Output(Speaker, 'Show all commands', 'Deep orange',function() | |
| 458 | Perplex.Core['Functions'].ShowCommandsForRank(math.huge, Speaker) | |
| 459 | end) | |
| 460 | end) | |
| 461 | ||
| 462 | Perplex.Core['Functions'].NewCmd('Kick','kick',2,'Kick a player', function(Speaker, Msg)
| |
| 463 | for _,Plr in next, Perplex.Core['Functions']['Get'].Players(Speaker, Msg) do | |
| 464 | if Plr then | |
| 465 | Perplex.Core['Functions'].Kick(Plr) | |
| 466 | end | |
| 467 | end | |
| 468 | end) | |
| 469 | ||
| 470 | Perplex.Core['Functions'].NewCmd('Ban','ban',5,'Bans a player',function(Speaker, Msg)
| |
| 471 | for _,Plr in next,Perplex.Core['Functions']['Get'].Players(Speaker, Msg) do | |
| 472 | if Plr then | |
| 473 | print'ban' | |
| 474 | Perplex.Core['Functions'].Kick(Plr) | |
| 475 | Perplex.Core['Bans'][Plr.Name]={Reason4Ban='Banned by an admin', BanType='Crash'}
| |
| 476 | print'k' | |
| 477 | main.Output(Speaker, 'Would you like to add a reason for the ban?', 'Deep orange') | |
| 478 | main.Output(Speaker, 'Yes', 'Lime green', function() | |
| 479 | main.Dismiss(Speaker) | |
| 480 | for _,v in next, Perplex.Core['Reasons']['Bans'] do | |
| 481 | main.Output(Speaker, v, 'Deep orange', function() | |
| 482 | main.Dismiss(Speaker) | |
| 483 | Perplex.Core['Bans'][Plr.Name].Reason4Ban=v | |
| 484 | end) | |
| 485 | end | |
| 486 | end) | |
| 487 | main.Output(Speaker, 'No', 'Really red', function() | |
| 488 | main.Dismiss(Speaker) | |
| 489 | end) | |
| 490 | end | |
| 491 | end | |
| 492 | end) | |
| 493 | ||
| 494 | Perplex.Core['Functions'].NewCmd('Music','msc',4,'Plays a sound',function(Speaker, Msg)
| |
| 495 | pcall(function() | |
| 496 | Perplex.Core['Functions'].PlayAudio(Speaker,Msg) | |
| 497 | end) | |
| 498 | end) | |
| 499 | ||
| 500 | Perplex.Core['Functions'].NewCmd('All Music','music',4,'Displays all sounds running from the admin',function(plr)
| |
| 501 | main.Dismiss(plr) | |
| 502 | for _, v in next, script:children() do | |
| 503 | if v:IsA('Sound') then
| |
| 504 | main.Output(plr, v.Name, 'Teal', function() | |
| 505 | Perplex.Core['Functions'].EditSound(plr, v) | |
| 506 | end) | |
| 507 | end | |
| 508 | end | |
| 509 | end) | |
| 510 | ||
| 511 | --Perplex.Core['Functions']['Main'].Output=function(plr, text, color, f, image) | |
| 512 | --Perplex.Core['Functions'].NewCmd(Name, say, rank, description, function) | |
| 513 | ||
| 514 | ||
| 515 | game:service'RunService'.Stepped:connect(Perplex.Core['Functions'].UpdateTabs) | |
| 516 | ||
| 517 | ||
| 518 | game:service'Players'.PlayerAdded:connect(function(p) | |
| 519 | main.ConnectPlayer(p) | |
| 520 | end) | |
| 521 | ||
| 522 | game:service'Players'.PlayerRemoving:connect(function(p) | |
| 523 | main.Dismiss(p) | |
| 524 | end) |