Las trampas que disminuyen la salud de los jugadores son un elemento de juego divertido que se puede codificar con declaraciones condicionales.Practica el uso de condicionales creando una parte que establece la salud del jugador en cero cuando se toca.
Configura la trampa
Las trampas funcionan de manera excepcional bien en experiencias con desafíos basados en el movimiento, como obbies.Estos pasos comenzarán configurando las variables y funciones necesarias.Haz tanto como puedas sin mirar primero las cajas de código.
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 referenciar 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 ejecutarse cada vez que algo toque la parte.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Compruebe el toque del jugador
Recuerde, el parámetro otherPart registra cualquier cosa que toque la parte de la trampa, que puede ser una parte de un jugador o simplemente la placa base.
Para asegurarse de que la trampa solo destruirá jugadores y no destruirá objetos de decoración aleatorios, use una declaración if/then para verificar si cualquier cosa que esté en otherPart contiene un objeto humanoide.
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 Humanoide.Es probable que los jugadores toquen la trampa con solo una parte de su avatar, por lo que debe configurarse una variable para encontrar el padre de la parte que se toca y buscarlo por un Humanoide.
En onTouch() , escriba local character = otherPart.Parent .
local trapPart = script.Parentlocal function onTouch(otherPart)-- Encuentra el objeto padre de otra partelocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Compruebe 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)
Compruebe con una declaración if
Si se encuentra un humanoide, establece la salud del humanoide en cero.
Usa una declaración if para comprobar si un Humanoide se asignó con éxito 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)Añade una declaración de impresión y comprueba 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("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)Ejecuta el código y comprueba 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, escriba humanoid.Health = 0.
scriptcompletadolocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Evalúa si se encontró un Humanoideif humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Prueba la trampa.
Resumen
Esta parte de trampa usó condicionales para detectar partes humanoides y establecer la salud del humanoid en cero.Este script es una mejora del script de trampa anterior, que destruía cualquier objeto que tocara sin importar lo que fuera.
Sin embargo, todavía tiene algunas fallas.Los humanoides no solo están 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 la resta de 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ánta salud se resta de los jugadores.