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