Как мне сделать рабочий графический интерфейс чейнджера в roblox? - PullRequest
0 голосов
/ 17 сентября 2018

В 2018 году переключенные платформы кодирования Roblox, я полагаю, большинство сценариев выжили, однако я не смог найти работающего сменщика команды для себя в этом году, который меняет вашу команду при нажатии в зависимости от того, находитесь ли вы в определенных группах или нет. Мой сценарий говорит, что он работает в студии, но в игре появляется сообщение об ошибке: TeamColor не является действительным членом PlayerGui Стек Начало Скрипт 'Players.Benyal.PlayerGui.Starter GUI.TeamGui.Frame.Research and Development.LocalScript', строка 8 Stack End " Мой scipter пробовал много разных способов, но он просто не будет работать! Есть ли какие-то сеггестии?

1 Ответ

0 голосов
/ 22 сентября 2018

В этом решении используются два сценария (один LocalScript и один Script), следуйте приведенным ниже инструкциям, чтобы заставить команду изменить GUI!

local teams = game:GetService("Teams")
local settings = {
    ["GUIHeight"] = 30, --put in a number over 20, or 100 if you want it to fill the screen
    ["GUIWidth"] = 40, --put in a number over 20, or 100 if you want it to fill the screen
    ["GUIColor"] = Color3.fromRGB(240,240,240), --color of the team changer gui

    ["TitleText"] = "Team Changer", --title text in the gui
    ["TitleFont"] = "ArialBold", --font of title
}

repeat wait() until game.Players.LocalPlayer and game.Players.LocalPlayer.PlayerGui
local plr = game.Players.LocalPlayer

local teamGUI = Instance.new("ScreenGui",plr.PlayerGui)
local frame = Instance.new("Frame",teamGUI)
frame.AnchorPoint,frame.Size,frame.Position,frame.BackgroundColor3 = Vector2.new(0.5,0.5),UDim2.new(settings.GUIWidth/100,0,settings.GUIHeight/100,0),UDim2.new(0.5,0,0.5,0),settings.GUIColor

local title = Instance.new("TextLabel",frame)
title.Text,title.Font,title.Size,title.TextScaled,title.BackgroundTransparency = settings.TitleText,settings.TitleFont,UDim2.new(1,0,0.15,0),true,0.5

local closebutton = Instance.new("TextButton",title)
closebutton.Size,closebutton.Position,closebutton.BackgroundColor3,closebutton.Text = UDim2.new(0.1,0,1,0),UDim2.new(0.9,0,0,0),Color3.fromRGB(255,155,155),"Close"

local list = Instance.new("ScrollingFrame",frame)
list.Size,list.Position,list.BackgroundTransparency = UDim2.new(1,0,0.85,0),UDim2.new(0,0,0.15,0),1

local UILayout = Instance.new("UIListLayout",list)

local serverTeamHandler = game.ReplicatedStorage:WaitForChild("teamChanger")
local getTeams = teams:GetChildren() --this part checks if you have teams in your game (you need to have put the teams in your game already)
for i,v in pairs(getTeams) do
    print("[Team " .. i .. " found]: " .. v:GetFullName())
    local teamButton = Instance.new("TextButton",list)
    teamButton.BackgroundColor3 = v.TeamColor.Color
    teamButton.Size = UDim2.new(1,0,0,40)

    teamButton.Text,teamButton.TextColor3,teamButton.TextStrokeTransparency,teamButton.TextScaled = v.Name,Color3.fromRGB(255,255,255),0.7,true
    teamButton.MouseButton1Down:connect(function()
        print("You changed teams. You are now in: " .. v.Name)
        serverTeamHandler:InvokeServer(v)
    end)
end

closebutton.MouseButton1Click:connect(function()
    frame:TweenPosition(UDim2.new(0.5,0,2,0),"Out","Quad",0.5)
    local returnButton = Instance.new("TextButton",teamGUI)
    returnButton.Size,returnButton.Position,returnButton.Text,returnButton.TextScaled = UDim2.new(0,200,0,50),UDim2.new(0.5,-100,1,-50),"Open Team Changer",true
    returnButton.MouseButton1Down:connect(function()
        returnButton:Destroy()
        frame:TweenPosition(UDim2.new(0.5,0,0.5,0),"Out","Elastic",1,true)
    end)
end)

Шаг 1 Вставьте LocalScript в StarterGui

Шаг 2 Скопируйте вышеуказанный материал и вставьте его в этот LocalScript

Шаг 3 Вставьте скрипт в рабочую область илиServerScriptService (на ваш выбор)

Шаг 4 Скопируйте приведенный ниже материал и вставьте его в сценарий

local teamChanger = Instance.new("RemoteFunction",game.ReplicatedStorage)
teamChanger.Name = "teamChanger"

local function changeTeam(client,team)
    print(client.Name .. "changed teams: now in" .. team.Name)
    client.Team = team
end

teamChanger.OnServerInvoke = changeTeam

Если вы правильно выполнили эти шаги, вам следуеттеперь работающая команда меняет графический интерфейс в вашей игре! Это работает, если вы уже вставили команды в свою игру.Первые несколько строк в LocalScript также могут быть настроены!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...