Роблокс: Как убить игрока, если он не выполнил задание правильно?

Я использую заранее подготовленную дверь с кодом, в которой игрок (и) должен ввести правильные пароли, чтобы пройти. Я бы хотел, чтобы последняя дверь, через которую должен пройти местный игрок, убила их, если они угадали пароль неправильно. Дверь - дверь с кодом 2323. В нем уже есть сценарий. Я пытался отредактировать код неверного пароля:

Input = ""
local player = game.Players.LocalPlayer
local character = player.Character
character.health = 0
print("Wrong Code")

Однако я получаю значение Nil Character. Есть идеи, что я делаю неправильно? Спасибо.


person Programmer000    schedule 24.01.2021    source источник
comment
Это код в сценарии или локальном сценарии?   -  person Kylaaa    schedule 25.01.2021
comment
Похоже, что это просто сценарий, основанный на значке, который у него есть.   -  person Programmer000    schedule 25.01.2021


Ответы (1)


Вы не можете получить доступ к localplayer из серверного скрипта. Вот что вы можете сделать в качестве альтернативы:

  1. Сделать серверный скрипт
  2. Сделать удаленное мероприятие
  3. Запустить удаленное событие с паролем в качестве аргумента
  4. Поместите это в свой серверный скрипт:
local remoteevent = -- reference remote event path here
local correctpass = 2323

remoteevent.OnServerEvent:Connect(function(p, pass)
    -- p is player and pass is the password the user entered
    if tonumber(pass) == correctpass then
        -- User entered correct pass so open the door
    else
        p.Character.Humanoid.Health = 0
    end
end)

И, наконец, запустите удаленное событие из локального скрипта следующим образом:

local remoteevent = -- reference remote event path here
local userinput = -- get the password the user entered here
remoteevent:FireServer(userinput)
person Cottient    schedule 25.01.2021