Em Introdução à programação, você aprendeu a fazer alterações em uma experiência em um ciclo ao longo do tempo.E se você quiser fazer alterações com base no comportamento do usuário? Neste Tutorial, você aprenderá a fazer um chão de lava mortal que mata os usuários quando eles pisam nele.
Preparar
Você precisa de um lugar em seu mundo para colocar a lava mortal.Se você seguiu o curso de Introdução à programação, o piso de lava caberia bem no espaço coberto pelas plataformas desaparecidas.
Insira um Part e mova-o para o lugar em seu mundo. Chame-o de LavaFloor .
Redimensione-o para que ele cubra o chão do espaço de vedação.
Faça o chão parecer mais como lava definindo a propriedade Material para Neon e a Color para uma tonalidade laranja.
Insira um Script na parte LavaFloor e renomeie-o para Kill.
Remova o código padrão e crie uma variável para a lava.
local lava = script.Parent
Conectar a um evento
Use um evento evento para detectar quando um usuário toca a lava.Cada parte tem um evento Touched que dispara quando algo a toca.Você pode conectar a este evento para executar uma função quando ele disparar.
Declare uma nova função chamada kill .
Acesse o evento Touched na lava usando um ponto, assim como uma propriedade: lava.Touched.
Chame a função Connect na evento Touched, passando kill() como a função a ser chamada quando a peça for tocada.
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
Qualquer código que você escrever na função kill executará agora sempre que algo tocar a lava.Observe que um colon é usado para a função Connect , não um ponto - não se preocupe por que neste momento, apenas lembre-se da diferença.
Obtenha a parte tocante
Para matar o usuário, a função precisará de um objeto associado a esse usuário.O evento de uma peça Touched pode fornecer a "outra peça" que a tocou - mas apenas se você solicitá-la fazendo dela um parâmetro da função.
Os parâmetros são definições do que uma função espera receber quando chamada.Um parâmetro pode ser usado em uma função assim como qualquer outra variável.Você pode passar informações para um parâmetro incluindo-o nas vírgulas quando uma função for chamada.Os parâmetros são definidos nas vírgulas na primeira linha de uma função.Crie um parâmetro chamado otherPart para a função kill.
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
Quando a função kill é chamada, o parâmetro otherPart representará a parte que tocou o chão de lava e o código que você escreverá na função poderá usá-lo.
Personagem e humanoide
Quando um usuário toca a lava, o Roblox pode detectar a parte específica do corpo do usuário que a tocou, como a perna esquerda ou o pé direito.Esta parte está no modelo de personagem do usuário Caracteres , que contém todos os objetos que compõem o avatar do usuário na experiência, incluindo:
- As partes individuais do corpo do usuário, como a cabeça, os membros e o torso.
- Qualquer roupa e acessórios usados pelo usuário.
- O Humanoid , um objeto especial que contém muitas propriedades relacionadas ao usuário, incluindo a saúde do usuário.
- A HumanoidRootPart que controla o movimento do usuário.
Como observado anteriormente, qualquer parte do corpo que toca a lava faz parte do modelo de Personagem, então você pode obter uma referência a esse personagem com otherPart.Parent .Crie uma variável para armazenar o pai da peça que tocou o chão de lava.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)
Do modelo de personagem, você precisará obter o objeto Humanoide para matar o usuário.Você pode fazer isso com a função FindFirstChild()—apenas passe o nome da coisa que você está procurando e ela fornece a primeira criança correspondente que encontrar nesse Objeto.Chame FindFirstChild() na variável partParent com "Humanoid" como filho para encontrar e armazenar o resultado em uma nova variável chamada humanoid.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)
Verifique o humanóide
Você pode facilmente verificar se o Humanoide foi encontrado usando uma declaração se .O código em uma declaração if só será executado se a condição definida na primeira linha for verdadeira.
Existem uma variedade de operadores que podem ser usados para construir condições mais complexas que você encontrará em cursos futuros - por enquanto, apenas coloque a variável humanoid lá.Crie um se declaração com humanoid como condição.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)
Definir saúde do personagem
Agora que o Humanoid foi verificado, suas propriedades podem ser alteradas.Se você definir sua propriedade Health para 0 , o Personagem associado morre.No corpo da declaração if, defina a propriedade Health do humanoide para 0.
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)
Com isso, seu chão de lava está completo! Teste sua experiência e você deve encontrar que sua lava mortal mata com sucesso os usuários em contatar.Tente usar sua lava como um desafio extra em um obby, ou como um limite para um mundo.
Código final
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)