Roblox пытается сделать зелье невидимости, но оно работает только один раз

#roblox

#roblox

Вопрос:

Я собирался спросить об этом на форуме разработчиков roblox, но у них есть какая-то система уровней

Я написал этот код, который должен сделать любого персонажа, который касается части «сок», невидимым, затем скопировать локальный скрипт в их персонажа игрока, который ждет, затем делает их видимыми и уничтожает себя. код работает один раз, однако, если вы попробуете это во второй раз, функция event запускается и даже печатает после каждой строки без ошибок, но это не меняет никаких прозрачных пленок игрока. вот основной сценарий.

 local healthpack = script.Parent.juice
healthpack.CanCollide = false
healthpack.Anchored = true
healthpack.Touched:Connect(function(hit)
print"hit"

if hit.Parent:FindFirstChild("Humanoid") and healthpack.Transparency ~= 1 then

    print"if"
    local scrip = script.Parent.LocalScript
    local player = game.Players:GetPlayerFromCharacter(hit.Parent)
    local copy = scrip:Clone()
    local tran = .99
    local efrem = script.Parent.effectremover:Clone()
    print"var"
    hit.Parent.LeftFoot.Transparency = tran
    print"1"
    hit.Parent.LeftHand.Transparency = tran
    print"2"
    hit.Parent.LeftLowerArm.Transparency = tran
    print"3"
    hit.Parent.LeftLowerLeg.Transparency = tran
    print"4"
    hit.Parent.LeftUpperArm.Transparency = tran
    print"5"
    hit.Parent.LeftUpperLeg.Transparency = tran
    print"6"
    hit.Parent.LowerTorso.Transparency = tran
    print"7"
    hit.Parent.RightFoot.Transparency = tran
    print"8"
    hit.Parent.RightHand.Transparency = tran
    print"9"
    hit.Parent.RightLowerArm.Transparency = tran
    print"10"
    hit.Parent.RightLowerLeg.Transparency = tran
    print"11"
    hit.Parent.RightUpperArm.Transparency = tran
    print"12"
    hit.Parent.RightUpperLeg.Transparency = tran
    print"13"
    hit.Parent.UpperTorso.Transparency = tran
    print"14"
    hit.Parent.Head.Transparency = tran
    print"15"
    hit.Parent["Pal Hair"].Handle.Transparency = tran
    print"16"
    efrem.Parent = hit.Parent.Humanoid
    print"17"
    copy.Parent = player.PlayerGui
    print"18"
    script.Parent.Heal:Play()
    print"19"
    healthpack.Transparency = 1
    script.Parent.stem.Transparency = 1
    script.Parent.bottle.Transparency = 1
    script.Parent.cork.Transparency = 1
    script.Parent.rim.Transparency = 1
    wait(10)
    healthpack.Transparency = 0
    script.Parent.stem.Transparency = .45
    script.Parent.bottle.Transparency = .45
    script.Parent.cork.Transparency = 0
    script.Parent.rim.Transparency = .35
    end
end)
  

Ответ №1:

Прежде всего, добро пожаловать в Stack Overflow! Я не уверен на 100%, чего вы хотите, но, похоже, есть проблема с вашим оператором if, где он говорит healthpack.Transparency ~= 1 . Похоже, что вы устанавливаете прозрачность на .99 :

 local tran = .99
  

а затем проверяет, не 1 :

 healthpack.Transparency ~= 1
  

Итак, если вы измените свое if утверждение:

 if hit.Parent:FindFirstChild("Humanoid") and healthpack.Transparency ~= .99 then
  

Я предлагаю определить вашу tran переменную вне вашего оператора if:

 -- Set transparency here instead:
local tran = .99

if (hit.Parent:FindFirstChild("Humanoid") and healthpack.Transparency == tran) then
    -- ...
end
  

Комментарии:

1. итак, что должен делать этот скрипт, когда объект «Healthpack» (скрипт. При прикосновении к Parent.juice) запускается функция, содержащая оператор if «при попадании. Родитель: найди первого ребенка («Гуманоид») и пакет здоровья. Прозрачность ~ = 1 тогда» если оба из них верны (первый проверяет, что объект, который его коснулся, является частью игрока, второй проверяет, что объект зелья все еще виден, потому что он становится невидимым в течение определенного времени после использования), тогда он делает частииз прозрачных пленок игрока «tran»

2. после установки для частей игроков значения «tran» сценарий клонирует два сценария и помещает их в игрока (один в playergui, а другой в персонаже под «Гуманоидом»). один скрипт отображает графический интерфейс «зелье подобрано» и удаляет себя. другой ждет 60 секунд и снова делает игрока видимым и удаляетсамо по себе. после того, как основной скрипт клонирует эти скрипты, он устанавливает healthpack. Прозрачность равна 1, поэтому зелье неактивно. проблема в том, что скрипт работает один раз идеально, но после того, как игрок использует его, он больше не делает их невидимыми без ошибок и при печати всех этих отпечатков.