Las trampas que disminuyen la salud de los jugadores son un elemento de juego divertido que se puede codificar con declaraciones condicionales. Practica usando condicionales creando una parte que establece la salud del jugador en cero cuando se toca.
Configura la trampa
Las trampas funcionan excepcionalmente bien en juegos con desafíos basados en movimiento, como los obbies. Estos pasos comenzarán configurando las variables y funciones necesarias. Haz tanto como puedas sin mirar las cajas 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)
Verifica 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á a los jugadores y no destruirá elementos decorativos aleatorios, usa una declaración if/then para verificar si lo que está en otherPart contiene un objeto Humanoid.
Encuentra 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 de tipo Humanoid. 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 Humanoid 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)
Verifica con una declaración if
Si se encuentra un Humanoid, entonces establece la Salud del Humanoid en cero.
Usa una declaración if para verificar si un Humanoid 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 Humanoidif humanoid thenendendtrapPart.Touched:Connect(onTouch)Agrega una declaració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 Humanoidif humanoid thenprint("Se encontró un Humanoid")endendtrapPart.Touched:Connect(onTouch)Ejecuta el código y verifica que puedes ver la salida cada vez que un jugador toca la parte.
Cambia la salud del jugador
Si la declaración 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 Humanoidif humanoid thenprint("Se encontró un Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Prueba la trampa.
Resumen
Esta parte de trampa utilizó condicionales para detectar partes de Humanoid y establecer la salud del Humanoid en cero. Este script es una mejora sobre el script de trampa anterior, que destruía cualquier objeto que tocara sin importar lo que fuera.
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 es solo 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 más mejoras para dar un mayor control sobre cuánto se resta de la salud de los jugadores.