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.
Crea y nombra una parte de trampa. Inserta un script en la parte.
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 0local trapPart = script.ParentCrea una función llamada onTouch() con un parámetro llamado otherPart.
-- Si un jugador toca esta parte, establece su salud en 0local trapPart = script.Parentlocal function onTouch(otherPart)endConecta 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.Parentlocal function onTouch(otherPart)endtrapPart.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.
En onTouch(), escribe local character = otherPart.Parent.
local trapPart = script.Parentlocal function onTouch(otherPart)-- Encuentra el objeto padre de otherPartlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Verifica si character tiene un Humanoid escribiendo:
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
Verificar con una sentencia if
Si se encuentra un Humanoide, entonces establece la salud del Humanoide en cero.
Utiliza una sentencia if para verificar si un Humanoide fue asignado correctamente a local humanoid.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Evalúa si se encontró un Humanoideif humanoid thenendendtrapPart.Touched:Connect(onTouch)Agrega una instrucción de impresión y verifica el código hasta ahora.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Evalúa si se encontró un Humanoideif humanoid thenprint("Se encontró un Humanoide")endendtrapPart.Touched:Connect(onTouch)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.
Entre then y end, escribe humanoid.Health = 0.
Script completadolocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Evalúa si se encontró un Humanoideif humanoid thenprint("Se encontró un Humanoide")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)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.