ROBLOX — #2 Присвоение территории

Автор: | 23 октября, 2019
Поделиться...

Нечаянно нашёл глюк — если сделать объект не видимым и проходимым и при этом внутри него ничего нет, то объект вообще удаляется из игры и больше с ним ничего нельзя сделать. Ну а если точней, то как только вы делаете объект проходимым CanCollide = false, так он тут же пропадает.

И так. Переделываем старт с нуля. Бросаем плоскость Footer. Из неё делаем модель добавляем скрипт и строковую переменную (чтобы не удалилась модель)

local me = script.Parent -- указываем родителя скрипта
me.Transparency = 1 -- полная прозрачность
me.CanCollide=false -- обработка коллизий, чтобы он был проходимый

И немного исправляем скрипт застолбления территории:

trap = script.Parent -- работаем с родителем скрипта
trap.Touched:Connect(function(Part) -- вызываем событие, когда касаемся столбика
 local player = game.Players:GetPlayerFromCharacter(Part.Parent) -- сохраняем информацию об игроке
 if Part.Parent:FindFirstChild("Humanoid") and player.Neutral == true then -- если игрок Гуманоид и не состоит в команде
 trap.Parent.Name = Part.Parent.Name .. "'s Tycoon" -- задаём новое имя для столбика
 trap.Transparency = 0.95 -- выставляем прозрачность
 player.Team = game.Teams["Tycoon"] -- нашего игрока переносим в команду
 player.Neutral = false -- и убираем из нейтральных
 
 -- game.Workspace.Tycoons.Tycoon1:FindFirstChild("Owner").Value = Part.Parent.Name
 trap.Parent.Parent:FindFirstChild("Owner").Value = Part.Parent.Name -- прописываем владельца данного Tycoon

 
 -------------------------------------------------------------------
 --    Добавлено для восстановления отображения и физики пола     --
 -------------------------------------------------------------------
 trap.Parent.Parent.Footer:FindFirstChild("Footer").Transparency=0
 trap.Parent.Parent.Footer:FindFirstChild("Footer").CanCollide=true
 -------------------------------------------------------------------
 
 end -- конец if
end) -- конец function

Остальное остаётся неизменным. Я надеюсь смысл понятен? Добавляем первый скрипт к объекту, который изначально надо скрыть. После чего добавляем пару строк в скрипт присвоения территории, чтобы их обратно показать. Ну и если это просто блок или пустая модель, то добавляем левую переменную, чтобы оно не удалилось.

Ну и самое главное — данный метод применим только к базовым объектам, а не к самим моделям!


Поделиться...

ROBLOX — #2 Присвоение территории: 3 комментария

  1. Admin Автор записи

    Оказалось что это не глюк, а фича.
    Если у скрываемого объекта не будет установлен якорь Anchor, то тогда объект уничтожается.
    Или если он не будет привязан к объекту у которого есть якорь.

  2. Guest

    Я плохо знаю роблокс, но разве объект не упадёт вниз [в самое пекло], если он не будет заякорен и лишён коллизий?

  3. toosvc

    Добрый день! Когда создавал тайкун по вашей схеме, то заметил когда СПЕЦАЛЬНО создал 2 команды тоесть нейтральный(англ.) и Red то меня не кидало в команду и в итоге территория не моя дроппер не мой заработок не работает(наверное просто плохо разбираюсь) но Не понимаю как сделать дроппер не видимым! И с этими кружками не могу понять! Поможете плиз!
    Команда в команде красных:
    rap = script.Parent — работаем с родителем скрипта
    trap.Touched:Connect(function(Part) — вызываем событие, когда касаемся столбика
    local player = game.Players:GetPlayerFromCharacter(Part.Parent) — сохраняем информацию об игроке
    if Part.Parent:FindFirstChild(«Humanoid») and player.Neutral == true then — если игрок Гуманоид и не состоит в команде
    trap.Parent.Name = Part.Parent.Name .. «‘s Tycoon» — задаём новое имя для столбика
    trap.Transparency = 0.95 — выставляем прозрачность
    player.Team = game.Teams[«Red»] — нашего игрока переносим в команду
    player.Neutral = false — и убираем из нейтральных

    — game.Workspace.Tycoons.Tycoon1:FindFirstChild(«Owner»).Value = Part.Parent.Name
    trap.Parent.Parent.Parent:FindFirstChild(«Owner»).Value = Part.Parent.Name — прописываем владельца данного Tycoon

    end — конец if
    end) — конец function
    Команда нейтральных:
    trap = script.Parent — работаем с родителем скрипта
    trap.Touched:Connect(function(Part) — вызываем событие, когда касаемся столбика
    local player = game.Players:GetPlayerFromCharacter(Part.Parent) — сохраняем информацию об игроке
    if Part.Parent:FindFirstChild(«Humanoid») and player.Neutral == true then — если игрок Гуманоид и не состоит в команде
    trap.Parent.Name = Part.Parent.Name .. «‘s Tycoon» — задаём новое имя для столбика
    trap.Transparency = 0.95 — выставляем прозрачность
    player.Team = game.Teams[«Red»] — нашего игрока переносим в команду
    player.Neutral = false — и убираем из нейтральных

    — game.Workspace.Tycoons.Tycoon1:FindFirstChild(«Owner»).Value = Part.Parent.Name
    trap.Parent.Parent.Parent:FindFirstChild(«Owner»).Value = Part.Parent.Name — прописываем владельца данного Tycoon

    end — конец if
    end) — конец function
    Помогите плиз с созданием тайкуна!!!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *