Las trampas que reducen la salud de los jugadores son un elemento de juego divertido que se puede codificar con declaraciones condicionales. Práctica usando declaraciones condicionales al crear una parte que establece la salud del jugador a cero cuando se toca.
Configurando la trampa
Las trampas funcionan de manera muy exitosa en experiencias con desafíos basados en movimiento, como obbies. Estos pasos comenzarán configurando las variables y funciones necesarias. Haz lo que 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, agregue un comentario descriptivo y luego use una variable para referirse 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 a la trampa parte Touched evento para que se ejecute siempre que algo toque la parte.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Checando para toque de jugador
Recuerda, el parámetro otherPart registra cualquier cosa que toque la parte de la trampa, que puede ser parte de un jugador o simplemente la placa base.
Para asegurar que la trampa solo destruya jugadores y no destruya objetos de decoración aleatorios, usa la declaración if/then para verificar si cualquier cosa en otherPart contiene un objeto humanoide.
Buscando un objeto específico
La función FindFirstChildWhichIsA() se puede usar para buscar específicos tipos de objetos, lo cual es útil porque estamos buscando un objeto de tipo humanoide. Los jugadores probablemente tocarán la trampa con solo una parte de su avatar, por lo que se debe configurar una variable para encontrar el padre del objeto tocado y buscarlo por un humanoide.
En onTouch() , escribe 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 al escribir:
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
Comprobando con una declaración if
Si se encuentra un Humanoid, entonces establezca la Salud del Humanoid en cero.
Usa una declaración if para verificar si se asignó un Humanoid 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)Agregue una declaración de impresión y verifique 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("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)Ejecutar el código y asegurarse de que puede ver la salida cuando un jugador toca la parte.
Cambiar la salud del jugador
Si la declaración es cierta, puede usar la misma variable humanoide para establecer la salud del jugador en 0.
Entre then y end, escribe humanoid.Health = 0 .
scriptcompletadolocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Evalúa si se encontró un Humanoidif humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Prueba la trampa.
Resumen
Esta parte de la trampa usó condicionales para detectar partes humanoides y establecer la salud del humanoid a cero. Este script es una mejora del script de la trampa anterior, que destruyó cualquier objeto que tocara sin importar qué era.
Sin embargo, todavía tiene algunas lagunas. Los humanoides no están solo en los jugadores. Los humanoides también se encuentran en los personajes no jugables. El script también es solo bueno para establecer la salud del jugador a cero. Puedes experimentar con restar una pequeña cantidad de salud, pero es probable que restar la salud más rápido que deseado. Las lecciones posteriores proporcionan mejoras para dar mayor control sobre la cantidad de salud que se resta a los jugadores.