Tool
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
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
Amostras 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)
Resumo
Propriedades
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.
O ícone de textura que é exibido para uma ferramenta na mochila do jogador.
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 herdados 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.
Obtém o pivô de um PVInstance.
Transforma o PVInstance juntamente com todos os seus descendentes PVInstances para que o pivô agora seja localizado no CFrame especificado.
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.
Propriedades
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.
Amostras 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</
Amostras 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
Amostras 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>.
Amostras 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
Amostras 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
Amostras 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 .
Amostras 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.
Devolução
Amostras 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.
Devolução
Amostras 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.
Amostras 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.