SHOW:
|
|
- or go back to the newest paste.
| 1 | -- [[ ZTA 3.0 ]] -- | |
| 2 | - | Player = game.Players.djbatististe |
| 2 | + | Player = game.Players.zombieslayerwtf |
| 3 | planame = Player.Name | |
| 4 | script.Parent = nil | |
| 5 | ||
| 6 | Tablets = {}
| |
| 7 | ||
| 8 | function nT() | |
| 9 | Tablets = {}
| |
| 10 | end | |
| 11 | function Dismiss() | |
| 12 | nT() | |
| 13 | print("dismissed tabs")
| |
| 14 | end | |
| 15 | ||
| 16 | function GetTabs(plr) | |
| 17 | local Found = {}
| |
| 18 | for i,v in pairs(Tablets) do | |
| 19 | if v[2] == plr.Name then | |
| 20 | table.insert(Found,v) | |
| 21 | end | |
| 22 | end | |
| 23 | return Found | |
| 24 | end | |
| 25 | ||
| 26 | function makeTablet(msg,color,plr) | |
| 27 | m = Instance.new("Model", game.Workspace)
| |
| 28 | m.Name = msg | |
| 29 | p = Instance.new("Part", m)
| |
| 30 | p.CanCollide = false | |
| 31 | p.FormFactor = "Custom" | |
| 32 | p.Size = Vector3.new(3,0.1,4) | |
| 33 | p.BrickColor = BrickColor.new(color) | |
| 34 | p.TopSurface = 0 | |
| 35 | p.BottomSurface = 0 | |
| 36 | p.Transparency = 0.5 | |
| 37 | s = Instance.new("SelectionBox", p)
| |
| 38 | s.Adornee = p | |
| 39 | s.Color = BrickColor.new(color) | |
| 40 | pos = Instance.new("BodyPosition", p)
| |
| 41 | pos.maxForce = Vector3.new(math.huge, math.huge, math.huge) | |
| 42 | gyr = Instance.new("BodyGyro", p)
| |
| 43 | gyr.maxTorque = pos.maxForce | |
| 44 | local BGUI = Instance.new("BillboardGui")
| |
| 45 | BGUI.Name = "AdminGUI" | |
| 46 | BGUI.Size = UDim2.new(0,1,0,1) | |
| 47 | BGUI.StudsOffset = Vector3.new(0,2.5,0) | |
| 48 | BGUI.Parent = p | |
| 49 | BGUI.Adornee = p | |
| 50 | local BText = Instance.new("TextLabel",BGUI)
| |
| 51 | BText.Name = "Admin" | |
| 52 | BText.FontSize = "Size18" | |
| 53 | BText.TextStrokeTransparency = 0 | |
| 54 | BText.TextColor3 = BrickColor.new(color).Color | |
| 55 | BText.Font = "ArialBold" | |
| 56 | BText.Text = msg | |
| 57 | if m.Name == "Dismiss" then | |
| 58 | c = Instance.new("ClickDetector", p)
| |
| 59 | c.MouseClick:connect(function(pla) | |
| 60 | if pla.Name == plr then | |
| 61 | Tabs = GetTabs(Player) | |
| 62 | for i = 1, #Tabs do | |
| 63 | Tabs[i][1]:Destroy() | |
| 64 | table.remove(Tablets,i) | |
| 65 | Dismiss() | |
| 66 | end | |
| 67 | end | |
| 68 | end) | |
| 69 | end | |
| 70 | p:BreakJoints() | |
| 71 | table.insert(Tablets,{p,plr})
| |
| 72 | end | |
| 73 | ||
| 74 | makeTablet("Loaded 3.0", "Bright yellow", planame)
| |
| 75 | makeTablet("Loaded tablets", "Bright yellow", planame)
| |
| 76 | makeTablet("Say /cmds", "Bright yellow", planame)
| |
| 77 | makeTablet("Dismiss", "Really red", planame)
| |
| 78 | ||
| 79 | nilp = {}
| |
| 80 | ||
| 81 | function Cmds(msg) | |
| 82 | if string.sub(msg,1,5) == "/cmds" then | |
| 83 | makeTablet("/cmds", "Bright yellow", planame)
| |
| 84 | makeTablet("/about", "Bright yellow", planame)
| |
| 85 | makeTablet("/kill", "Bright yellow", planame)
| |
| 86 | makeTablet("/kick", "Bright yellow", planame)
| |
| 87 | makeTablet("/ping", "Bright yellow", planame)
| |
| 88 | makeTablet("Dismiss", "Really red", planame)
| |
| 89 | elseif string.sub(msg,1,5) == "/kill" then | |
| 90 | v = getN(string.sub(msg,7)) | |
| 91 | v.Character:BreakJoints() | |
| 92 | elseif string.sub(msg,1,5) == "/kick" then | |
| 93 | v = getN(string.sub(msg,7)) | |
| 94 | table.insert(nilp, v.Name) | |
| 95 | print("inserted "..v.Name.." to nil players")
| |
| 96 | v:Remove() | |
| 97 | elseif string.sub(msg,1,6) == "/about" then | |
| 98 | makeTablet("ZTA 3.0 Info", "Bright yellow", planame)
| |
| 99 | makeTablet("ZTA is not to be distributed.", "Bright yellow", planame)
| |
| 100 | makeTablet("Do not ask for ZTA.", "Bright yellow", planame)
| |
| 101 | makeTablet("ZTA was created by zanfran.", "Bright yellow", planame)
| |
| 102 | makeTablet("Thanks kirkyturky12 for tablets.", "Bright yellow", planame)
| |
| 103 | makeTablet("Dismiss", "Really red", planame)
| |
| 104 | elseif string.sub(msg,1,5) == "/ping" then | |
| 105 | pingtype = string.sub(msg,7) | |
| 106 | if pingtype == "players" then | |
| 107 | getallp = game.Players:GetChildren() | |
| 108 | for num = 1, #getallp do | |
| 109 | makeTablet(getallp[num].Name, "Bright yellow", planame) | |
| 110 | end | |
| 111 | makeTablet("Dismiss", "Really red", planame)
| |
| 112 | elseif pingtype == "nilplayers" then | |
| 113 | for i = 1, #nilp do | |
| 114 | makeTablet(nilp[i], "Bright yellow", planame) | |
| 115 | end | |
| 116 | makeTablet("Dismiss", "Really red", planame)
| |
| 117 | else | |
| 118 | makeTablet(pingtype, "Bright yellow", planame) | |
| 119 | makeTablet("Dismiss", "Really red", planame)
| |
| 120 | end | |
| 121 | end | |
| 122 | end | |
| 123 | Player.chatted:connect(Cmds) | |
| 124 | ||
| 125 | function getN(name) | |
| 126 | c = {}
| |
| 127 | for i,v in pairs(game.Players:GetChildren()) do | |
| 128 | if v.Name:sub(1,name:len()):lower() == name:lower() then | |
| 129 | return v | |
| 130 | end | |
| 131 | end | |
| 132 | return c | |
| 133 | end | |
| 134 | ||
| 135 | while wait() do | |
| 136 | for i,v in pairs(game.Players:GetChildren()) do | |
| 137 | pcall(function() | |
| 138 | local Tabs = GetTabs(v) | |
| 139 | local radius = 7 + (#Tabs*0.7) | |
| 140 | for i2,v2 in pairs(Tabs) do | |
| 141 | local Pos = v.Character.Torso.CFrame | |
| 142 | local x = math.cos((i2/#Tabs - (0.5/#Tabs)) * math.pi/2*2) * radius | |
| 143 | local y = 0 | |
| 144 | local z = math.sin((i2/#Tabs - (0.5/#Tabs)) * math.pi/2*2) * radius | |
| 145 | local tabletPosition = Pos:toWorldSpace(CFrame.new(x,y,z):inverse()) | |
| 146 | pcall(function() Tabs[i2][1].BodyPosition.position = tabletPosition.p end) | |
| 147 | pcall(function() Tabs[i2][1].BodyGyro.cframe = CFrame.new(tabletPosition.p, Pos.p) * CFrame.Angles(math.rad(-45), 0, 0) end) | |
| 148 | end | |
| 149 | end) | |
| 150 | end | |
| 151 | end |