En Introducción a Programar Scripts, aprendiste cómo hacer cambios en una experiencia en un ciclo de tiempo. ¿Qué pasa si quieres hacer cambios basados en el comportamiento del usuario? En este tutorial, aprenderás cómo hacer un piso de lava mortal que mata a los usuarios cuando los usuarios lo pisan.
Configurando
Necesitas un lugar en tu mundo para colocar la lava mortal. Si sigues el curso Introducción a los Scripts, el suelo de lava encajaría bien en el espacio cubierto por las plataformas desaparecidas.
Inserta un Part y móvalo en su lugar en tu mundo. Póngale un nombre LavaFloor .
Ajustar el tamaño para que cubra el suelo del espacio de recinto.
Haz que el suelo se vea más como lava al establecer la propiedad Material a Neon y la propiedad Color a un tono naranja.
Inserta un Script en la parte LavaFloor y renombralo a Kill .
Elimina el código por defecto y crea una variable para la lava.
local lava = script.Parent
Conectar a un evento
Usa un evento para detectar cuando un usuario toca la lava. Cada parte tiene un evento Touched que se activa cuando algo la toca. Puedes conectar a este evento para ejecutar una función cuando se activa.
Declara una nueva función llamada kill .
Accede al evento Touched en el objeto de lava usando un punto, justo como una propiedad: lava.Touched .
Llamar la función Connect en el evento Touched, pasando la función kill.
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
Cualquier código que escriba en la función kill ahora se ejecutará siempre que algo toque la lava. Tenga en cuenta que un colon se usa para la función Connect, 2>no2> es una coma - no se preocupe por qué en este momento, solo recuerda la diferencia.
Obteniendo la Parte触れる
Para matar al usuario, la función necesitará un objeto asociado con ese usuario. Un evento de Touched de parte puede proporcionar el "otro lado" que lo tocó, pero solo si lo solicita haciéndolo un parámetro de la función.
Los parámetros son definiciones de lo que espera recibir una función cuando se llama. Un parámetro se puede usar en una función justo como cualquier otra variable. Puedes pasar información a un parámetro al incluirlo en las paréntesis cuando se llama una función. Los parámetros se definen en las paréntesis en la primera línea de una función. Crea un parámetro llamado otherPart para la
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
Cuando la función kill sea llamada, el parámetro otherPart representará la parte que tocó el suelo de lava, y el código que escribirás en la función podrá usarlo.
Personaje y humanoide
Cuando un usuario toca la lava, Roblox puede detectar la parte específica del cuerpo del usuario que la tocó, como la pierna izquierda o derecha. Esta parte está en el aplicación de modeladode personaje del usuario, que contiene todos los objetos que constituyen el avatar del usuario en la experiencia, incluida la siguiente:
- Las partes individuales del cuerpo del usuario, como la cabeza, los miembros y el torso.
- Cualquier ropa y accesorios usados por el usuario.
- El Humanoid, un objeto especial que contiene muchas propiedades relacionadas con el usuario, incluida la salud del usuario.
- La parte raíz humanoide que controla el movimiento del usuario.
Como se ha mencionado anteriormente, cualquier parte del cuerpo que toca la lava forma parte del aplicación de modeladode Personaje, por lo que puedes obtener una referencia a ese personaje con otherPart.Parent . Crear una variable para almacenar el padre de la parte que tocó el suelo de lava.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)
Desde el aplicación de modeladode personaje, necesitarás obtener el objeto Humanoide para matar al usuario. Puedes hacer esto con la función FindFirstChild() — solo pásale el nombre de la cosa que buscas y proporciona el primer hijo que encuentra en ese objeto. Llamar FindFirstChild</
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)
Revisando el humanoide
Puede verificar fácilmente si se ha encontrado el Humanoid usando una declaración si . El código en una declaración si solo se ejecutará si la condición definida en la primera línea es cierta.
Hay una variedad de operadores que se pueden usar para construir condiciones más complejas que encontrarás en futuros cursos - por ahora, simplemente pon la variable humanoid ahí. Crea una declaración if con 2>humanoid2> como condición.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)
Estableciendo la salud del personaje
Ahora que el Humanoid ha sido verificado, sus propiedades se pueden cambiar. Si establece su propiedad Health a 0, muere el personaje asociado. En el cuerpo de la declaración if, establece la propiedad 2> Health2> del humanoid a 0.
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)
Con eso, ¡tu suelo de lava está listo! Prueba tu experiencia y deberías encontrar que tu lava mortal mata con éxito a los usuarios en ponerse en contacto/ contactar con. Intenta usar tu lava como un desafío adicional en un obby/ carrera de obstaculos, o como un límite para un mundo.
Código Final
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)