Tool
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Las herramientas son objetos que un objeto Class.H
En el equipo de escritorio, presionando una tecla numérica (1, 2, 3...) se equipará una herramienta. Las herramientas equipadas se pueden dejar caer en el espacio de trabajo presionando Backspace. Se recomienda que dejes Class.Tool.
Las herramientas no son la única manera de capturar la entrada del usuario. También pued
Muestras de código
local tool = script.Parent
local function explode(point)
local e = Instance.new("Explosion")
e.DestroyJointRadiusPercent = 0 -- Make the explosion non-deadly
e.Position = point
e.Parent = workspace
end
local function onActivated()
-- Get the Humanoid that Activated the tool
local human = tool.Parent.Humanoid
-- Call explode with the current point the Humanoid is targetting
explode(human.TargetPoint)
end
tool.Activated:Connect(onActivated)
local tool = script.Parent
local function onTouch(partOther)
-- First, try to see if the part we touched was part of a Humanoid
local humanOther = partOther.Parent:FindFirstChild("Humanoid")
-- Ignore touches by non-humanoids
if not humanOther then
return
end
-- Ignore touches by the Humanoid carrying the sword
if humanOther.Parent == tool.Parent then
return
end
humanOther:TakeDamage(5)
end
-- Trigger a slash animation
local function slash()
-- Default character scripts will listen for a "toolanim" StringValue
local value = Instance.new("StringValue")
value.Name = "toolanim"
value.Value = "Slash" -- try also: Lunge
value.Parent = tool
end
tool.Activated:Connect(slash)
tool.Handle.Touched:Connect(onTouch)
Resumen
Propiedades
Controla si el jugador puede dejar caer la herramienta.
Se refiere a si la herramienta se puede usar o no.
Almacena las propiedades "grip" de la herramienta como un CFrame .
Representa los valores de R02, R12 y R22 de la matriz de rotación de 1> Datatype.CFrame1> .
La desviación posicional de la matriz de soldadura de la herramienta.
Representa los valores de R00, R10 y R20 de la matriz de rotación de 1> Datatype.CFrame1> .
Representa los valores de R01, R11 y R21 de la matriz de rotación de 1> Datatype.CFrame1> .
La propiedad ManualActivationOnly controla si el Tool se puede activar sin ejecutar Tool:Activate() .
Determina si una función de Tool funciona sin un controlador.
Controla el mensaje que se muestra cuando el mouse del jugador se posiciona sobre la herramienta en su mochila.
El icono de textura que se muestra para una herramienta en la mochila del jugador.
Establece el nivel de detalle en el modelo para las experiencias con transmisión de instancia habilitada.
Controla el comportamiento de streaming del modelo en Models cuando se habilita el streaming de instancia.
La parte principal de Model , o nil si no se establecerexplícitamente.
Propiedad de Editor únicamente usada para escalar el modelo alrededor de su eje. Al configurar esta propiedad, se moverá la escala como si se hubiera llamado a Model/ScaleTo .
Determina dónde se encuentra el eje de un Model que no tiene Class.Model.PrimaryPart establecido.
Métodos
Métodos heredados de ModelEstablece este modelo para ser persistente para el jugador especificado. Model.ModelStreamingMode debe establecerse en PersistentPerPlayer para que el comportamiento se cambie como resultado de la adición.
Restaura una descripción de un volumen que contiene todas las partes de un Modelo.
Restablece el tamaño de la caja de contorno más pequeña que contiene todos los BaseParts en el Model, alineado con el Model.PrimaryPart si se establecer.
Devuelve todos los objetos Player que son persistentes para este objeto de modelo. El comportamiento varía según sea que se llame a este método desde un Script o un LocalScript .
Devuelve la escala de canon del aplicación de modelado, que se establece por defecto en 1 para los modelos recién creados y cambiará a medida que se escala a través de Model/ScaleTo .
Mueve el PrimaryPart a la posición especificada. Si no se ha especificado una parte primaria, se utilizará la parte raíz del modelo.
Este modelo ya no es persistente para el jugador especificado. Model.ModelStreamingMode debe establecerse en PersistentPerPlayer para que el comportamiento cambie como resultado de la eliminación.
Establece el factor de escala del aplicación de modelado, ajustando el tamaño y la ubicación de todas las instancias descendientes para que tengan ese factor de escala en relación con sus tamaños y ubicaciones iniciales cuando el factor de escala era 1.
Sin objetodisponible.
Gets the pivot of a PVInstance.
Transforms the PVInstance along with all of its descendant PVInstances such that the pivot is now located at the specified CFrame.
Eventos
Dispara cuando el jugador hace clic mientras la herramienta está equipada.
Se activa cuando el jugador suelta su clic mientras la herramienta está equipada y activada.
Dispara cuando la herramienta está equipada.
Dispara cuando la herramienta no está equipada.
Propiedades
CanBeDropped
La propiedad CanBeDropped controla si el jugador puede soltar el Tool.
Si es así, cuando se presione el botón de retroceso, la herramienta se asociará a Workspace y se eliminará del jugador's Backpack . Si es falso, no pasará nada cuando se presione el retroceso y la herramienta seguirá estando equipada.
Enabled
La propiedad Habilitado se refiere a si se puede usar o no el Tool . Esto es útil si desea evitar que un jugador use una herramienta, pero no quiere eliminarla de su Backpack .
Cuando se establece a true , el jugador puede usar la herramienta. Cuando se establece a false , la herramienta está deshabilitada y el jugador no puede usarla; esto evita que la herramienta se active o se desactive por los métodos Class.
Muestras de código
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local tool = Instance.new("Tool")
tool.Name = "SuperJump"
tool.RequiresHandle = false
tool.Parent = player.Backpack
function toolActivated()
humanoid.JumpPower = 150
tool.Enabled = false
task.wait(5)
tool.Enabled = true
humanoid.JumpPower = 50
end
tool.Activated:Connect(toolActivated)
tool.Unequipped:Connect(function()
humanoid.JumpPower = 50
end)
Grip
La propiedad Grip almacena las propiedades "grip" de la herramienta como un solo CFrame . Estas propiedades posicionan cómo el jugador sostiene la herramienta y incluyen Class.Tool.GripUp|GripUp</
Muestras de código
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local tool = Instance.new("Tool")
tool.Name = "Stick"
tool.Parent = player.Backpack
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Parent = tool
handle.Size = Vector3.new(0.1, 3, 0.1)
handle.Color = Color3.fromRGB(108, 88, 75) -- Brown
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)
GripForward
Una de las propiedades que especifica la orientación de una herramienta en la mano de un personaje. Esto representa los valores de R02 , R12 y R22 de la matriz de rotación de la1> Datatype.CFrame1> rotación de la matriz.
Otras propiedades de herramientas que controlan cómo un personaje sostiene una herramienta incluyen Tool.GripUp , Tool.GripRight y Tool.GripPos . Todas estas propiedades se almacenan en un solo 1> Datatype.CFrame1> en la propiedad 4> Class.Tool.Grip
Muestras de código
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local tool = Instance.new("Tool")
tool.Name = "Stick"
tool.Parent = player.Backpack
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Parent = tool
handle.Size = Vector3.new(0.1, 3, 0.1)
handle.Color = Color3.fromRGB(108, 88, 75) -- Brown
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)
GripPos
Esta propiedad controla el desplazamiento posicional de la matriz de soldadura de la herramienta. Es una de varias propiedades utilizadas para posicionar cómo el personaje del jugador sostiene la herramienta.
Otras propiedades que controlan cómo un personaje sostiene una herramienta incluyen Tool.GripUp , Tool.GripRight y Tool.GripForward . Todas estas propiedades se almacenan en un solo 1> Datatype.CFrame1> en la propiedad 4> Class.Tool.Grip4>.
Muestras de código
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local tool = Instance.new("Tool")
tool.Name = "Stick"
tool.Parent = player.Backpack
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Parent = tool
handle.Size = Vector3.new(0.1, 3, 0.1)
handle.Color = Color3.fromRGB(108, 88, 75) -- Brown
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)
GripRight
Una de las propiedades que especifica la orientación de una herramienta en la mano de un personaje. Esto representa los valores de R00 , R10 y R20 de la matriz de rotación de la mano 1> Datatype.CFrame1> .
Otras propiedades de herramientas que controlan cómo un personaje sostiene una herramienta incluyen Tool.GripUp , Tool.GripForward y Tool.GripPos . Todas estas propiedades se almacenan en un solo 1> Datatype.CFrame1> en la propiedad 4> Class.Tool.Grip
Muestras de código
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local tool = Instance.new("Tool")
tool.Name = "Stick"
tool.Parent = player.Backpack
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Parent = tool
handle.Size = Vector3.new(0.1, 3, 0.1)
handle.Color = Color3.fromRGB(108, 88, 75) -- Brown
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)
GripUp
Una de las propiedades que especifica la orientación de una herramienta en la mano de un personaje. Esto representa los valores de R01, R11 y R21 de la matriz de rotación de la1> Datatype.CFrame1> rotación de la matriz.
Otras propiedades de herramientas que controlan cómo un personaje sostiene una herramienta incluyen Tool.GripRight , Tool.GripForward y Tool.GripPos . Todas estas propiedades se almacenan en un solo 1> Datatype.CFrame1> en la propiedad 4> Class.Tool.Grip
Muestras de código
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local tool = Instance.new("Tool")
tool.Name = "Stick"
tool.Parent = player.Backpack
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Parent = tool
handle.Size = Vector3.new(0.1, 3, 0.1)
handle.Color = Color3.fromRGB(108, 88, 75) -- Brown
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)
ManualActivationOnly
La propiedad ManualActivationOnly controla si el Tool se puede activar sin ejecutar explícitamente Tool:Activate() en un script.
Cuando se establece en verdadero, la herramienta solo se ejecutará Tool.Activated cuando se llame Tool:Activate(). Esto también suprime la función ContextActionService:BindActivate().
Cuando se establece en falso, los clics del mouse (cuando el instrumento está equipado) también dispararán Tool.Activated .
Muestras de código
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local tool = Instance.new("Tool")
tool.Name = "Sprint"
tool.RequiresHandle = false
tool.Parent = player:WaitForChild("Backpack")
function toolActivated()
humanoid.WalkSpeed = 30
tool.ManualActivationOnly = true
task.wait(5)
tool.ManualActivationOnly = false
humanoid.WalkSpeed = 16
end
tool.Activated:Connect(toolActivated)
tool.Unequipped:Connect(function()
humanoid.WalkSpeed = 16
end)
RequiresHandle
Esta propiedad determina si una función de Tool funciona sin un controlador.
Una herramienta tiene un mango cuando contiene una parte de hijo llamada Mango . Las herramientas con mangos generalmente requieren que el jugador las equipe para sostener un objeto para usarlas, por ejemplo, armas. Las herramientas sin mangos generalmente no requieren que el jugador las equipe para sostener algo para usarlas, por ejemplo, herramientas "fly" o " summon" .
Cuando se establece en <a href="/reference/engine/datatypes"> true</a>, la herramienta solo funcionará con un controlador. Cuando se establece en <a href="/reference/engine/datatypes"> false</a>, la herramienta funcionará incluso sin un controlador.
ToolTip
La propiedad ToolTip controla el mensaje que se mostrará cuando el jugador coloca el cursor sobre el Mouse en su Tool .
Por lo general, el valor de esta propiedad debería describir lo que es el objeto o su uso. Por instancia, para un herramientade pala, puede elegir establecer el ToolTip para:
tool.ToolTip = "Shovel"
o
tool.ToolTip = "Use to dig"
o
tool.ToolTip = "Shovel - Use to dig"
Métodos
Activate
Esta función simula la activación del Tool . El objeto debe estar equipado para que esta función funcione.
Devuelve
Muestras de código
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character
local tool = Instance.new("Tool")
tool.Name = "Invisibility Tool"
tool.RequiresHandle = false
tool.Parent = player.Backpack
local invisible = false
local function toolActivated()
if invisible then
return
end
invisible = true
for _, bodypart in pairs(character:GetChildren()) do
if bodypart:IsA("MeshPart") or bodypart:IsA("Part") then
bodypart.Transparency = 1
end
end
task.wait(3)
tool:Deactivate()
task.wait(1)
invisible = false
end
local function toolDeactivated()
if not invisible then
return
end
for _, bodypart in pairs(character:GetChildren()) do
if bodypart.Name ~= "HumanoidRootPart" then
if bodypart:IsA("MeshPart") or bodypart:IsA("Part") then
bodypart.Transparency = 0
end
end
end
end
local function toolEquipped()
tool:Activate()
end
tool.Equipped:Connect(toolEquipped)
tool.Activated:Connect(toolActivated)
tool.Deactivated:Connect(toolDeactivated)
tool.Unequipped:Connect(toolDeactivated)
Deactivate
Esta función simula la desactivación del Tool . La herramienta debe estar equipada para que esta función funcione.
Devuelve
Muestras de código
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character
local tool = Instance.new("Tool")
tool.Name = "Invisibility Tool"
tool.RequiresHandle = false
tool.Parent = player.Backpack
local invisible = false
local function toolActivated()
if invisible then
return
end
invisible = true
for _, bodypart in pairs(character:GetChildren()) do
if bodypart:IsA("MeshPart") or bodypart:IsA("Part") then
bodypart.Transparency = 1
end
end
task.wait(3)
tool:Deactivate()
task.wait(1)
invisible = false
end
local function toolDeactivated()
if not invisible then
return
end
for _, bodypart in pairs(character:GetChildren()) do
if bodypart.Name ~= "HumanoidRootPart" then
if bodypart:IsA("MeshPart") or bodypart:IsA("Part") then
bodypart.Transparency = 0
end
end
end
end
local function toolEquipped()
tool:Activate()
end
tool.Equipped:Connect(toolEquipped)
tool.Activated:Connect(toolActivated)
tool.Deactivated:Connect(toolDeactivated)
tool.Unequipped:Connect(toolDeactivated)
Eventos
Activated
Este evento se activa cuando el jugador hace clic mientras el Tool está equipado. No se activa si se presiona la tecla Ctrl durante el hcer clic.
Este evento se usa típicamente para realizar una acción cuando el jugador usa la herramienta, por ejemplo para lanzar un cohete desde una herramienta de lanzacohetes.
El código de abajo, cuando se coloca en un LocalScript , crea una herramienta en el jugador local y imprime "Herramienta activada" cuando el jugador hace clic mientras la herramienta creada está equipada.
local tool = Instance.new("Tool")
tool.RequiresHandle = false
tool.Parent = game.Players.LocalPlayer.Backpack
function onActivation()
print("Tool activated")
end
tool.Activated:Connect(onActivation)
Deactivated
Este evento se activa cuando el jugador suelta su clic mientras el Tool está equipado y activado. Por lo general, se usa para realizar una acción cuando el jugador deja de usar una herramienta.
El código de abajo, cuando se coloca en un LocalScript , crea una herramienta en el jugador local y imprime "Tool deactivado" cuando el jugador libera su clic mientras la herramienta está equipada y activada.
local tool = Instance.new("Tool")
tool.RequiresHandle = false
tool.Parent = game.Players.LocalPlayer.Backpack
function toolDeactivated()
print("Tool deactivated")
end
tool.Deactivated:Connect(toolDeactivated)
Equipped
Este evento se activa cuando un jugador equipa el Tool (lo saca de su Backpack).
El opuesto de este evento, Tool.Unequipped , se puede usar para determinar cuándo el jugador desequipa la herramienta poniéndola en su mochila.
Nota: este evento no dispara cuando se habilita Tool.RequiresHandle y no hay manija presente.
Parámetros
El ratóndel jugador.
Muestras de código
local Tool = script.Parent
local function onEquipped(_mouse)
print("The tool was equipped")
end
Tool.Equipped:Connect(onEquipped)
Unequipped
Este evento se activa cuando un jugador desequipa el Tool (lo pone en su Backpack).
El opuesto de este evento, Tool.Equipped , se puede usar para determinar cuándo el jugador equipa la herramienta sacándola de su mochila.
Nota: este evento no dispara cuando se habilita Tool.RequiresHandle y no hay manija presente.