Ejercicio de if/then con trampas

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Las trampas que disminuyen la salud de los jugadores son un elemento de juego divertido que se puede codificar con sentencias condicionales. Practica usando condicionales creando una parte que establece la salud del jugador en cero al ser tocada.

Configurar la trampa

Las trampas funcionan excepcionalmente bien en experiencias con desafíos de movimiento, como los obbies. Estos pasos comenzarán configurando las variables y funciones necesarias. Haz tanto como puedas sin mirar los cuadros de código primero.

  1. Crea y nombra una parte de trampa. Inserta un script en la parte.

  2. En el script, agrega un comentario descriptivo y luego usa una variable para hacer referencia al padre del script.


    -- Si un jugador toca esta parte, establece su salud en 0
    local trapPart = script.Parent
  3. Crea una función llamada onTouch() con un parámetro llamado otherPart.


    -- Si un jugador toca esta parte, establece su salud en 0
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. Conecta la función al evento Touched de la parte de trampa para que se ejecute cada vez que algo toque la parte.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
    trapPart.Touched:Connect(onTouch)

Verificar el toque del jugador

Recuerda, el parámetro otherPart registra lo que toca la parte de trampa, que podría ser una parte de un jugador o simplemente la base.

Para asegurarte de que la trampa solo destruirá jugadores y no elementos decorativos aleatorios, utiliza una sentencia if/then para verificar si lo que hay en otherPart contiene un objeto Humanoide.

Encontrar un objeto específico

La función FindFirstChildWhichIsA() se puede usar para buscar tipos de objetos específicos, lo cual es útil porque estamos buscando un objeto del tipo Humanoide. Es probable que los jugadores toquen la trampa solo con una parte de su avatar, por lo que se debe configurar una variable para encontrar el padre de la parte que toca y buscar un Humanoide en él.

  1. En onTouch(), escribe local character = otherPart.Parent.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- Encuentra el objeto padre de otherPart
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. Verifica si character tiene un Humanoid escribiendo:

    local humanoid = character:FindFirstChildWhichIsA("Humanoid")


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    end
    trapPart.Touched:Connect(onTouch)

Verificar con una sentencia if

Si se encuentra un Humanoide, entonces establece la salud del Humanoide en cero.

  1. Utiliza una sentencia if para verificar si un Humanoide fue asignado correctamente a local humanoid.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Evalúa si se encontró un Humanoide
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Agrega una instrucción de impresión y verifica el código hasta ahora.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Evalúa si se encontró un Humanoide
    if humanoid then
    print("Se encontró un Humanoide")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. Ejecuta el código y verifica que puedes ver la salida cada vez que un jugador toca la parte.

Cambiar la salud del jugador

Si la sentencia es verdadera, puedes usar la misma variable humanoide para establecer la salud del jugador en 0.

  1. Entre then y end, escribe humanoid.Health = 0.

    Script completado

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Evalúa si se encontró un Humanoide
    if humanoid then
    print("Se encontró un Humanoide")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Prueba la trampa.

Resumen

Esta parte de la trampa utilizó condicionales para detectar partes Humanoides y establecer la salud del Humanoide en cero. Este script es una mejora sobre el script de trampa anterior, que destruía cualquier objeto tocante sin importar qué era.

Sin embargo, todavía tiene algunos defectos. Los Humanoides no están solo en los jugadores. Los Humanoides también se encuentran en personajes no jugables. El script también solo es bueno para establecer la salud del jugador en cero. Puedes experimentar con restar una pequeña cantidad de salud, pero es probable que reste la salud más rápido de lo deseado. Las lecciones posteriores proporcionan mejoras adicionales para dar un mayor control sobre cuánto se resta de la salud de los jugadores.

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.