Tool

Mostrar obsoleto

*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

Explode Tool Example

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)
Sword Tool Example

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

  • Leer paralelo

    Controla si el jugador puede dejar caer la herramienta.

  • Leer paralelo

    Se refiere a si la herramienta se puede usar o no.

  • Leer paralelo

    Almacena las propiedades "grip" de la herramienta como un CFrame .

  • Oculto
    No replicado
    Leer paralelo

    Representa los valores de R02, R12 y R22 de la matriz de rotación de 1> Datatype.CFrame1> .

  • Oculto
    No replicado
    Leer paralelo

    La desviación posicional de la matriz de soldadura de la herramienta.

  • Oculto
    No replicado
    Leer paralelo

    Representa los valores de R00, R10 y R20 de la matriz de rotación de 1> Datatype.CFrame1> .

  • Oculto
    No replicado
    Leer paralelo

    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() .

  • Leer paralelo

    Determina si una función de Tool funciona sin un controlador.

  • Leer paralelo

    Controla el mensaje que se muestra cuando el mouse del jugador se posiciona sobre la herramienta en su mochila.

Propiedades heredados de BackpackItem
  • TextureId:ContentId
    Leer paralelo

    El icono de textura que se muestra para una herramienta en la mochila del jugador.

Propiedades heredados de Model
  • 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.

  • Leer paralelo

    La parte principal de Model , o nil si no se establecerexplícitamente.

  • No replicado
    No programable
    Leer paralelo

    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 .

  • No replicado
    Leer paralelo

    Determina dónde se encuentra el eje de un Model que no tiene Class.Model.PrimaryPart establecido.

Propiedades heredados de PVInstance

Métodos

Métodos heredados de Model
  • AddPersistentPlayer(playerInstance : Player):void

    Establece 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 .

  • MoveTo(position : Vector3):void

    Mueve el PrimaryPart a la posición especificada. Si no se ha especificado una parte primaria, se utilizará la parte raíz del modelo.

  • RemovePersistentPlayer(playerInstance : Player):void

    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.

  • ScaleTo(newScaleFactor : number):void

    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.

  • TranslateBy(delta : Vector3):void

    Sin objetodisponible.

Métodos heredados de PVInstance

Eventos

Propiedades

CanBeDropped

Leer paralelo

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

Leer paralelo

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

Superjump Tool

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

Leer paralelo

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

Grip Stick

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

Oculto
No replicado
Leer paralelo

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

Grip Stick

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

Oculto
No replicado
Leer paralelo

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

Grip Stick

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

Oculto
No replicado
Leer paralelo

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

Grip Stick

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

Oculto
No replicado
Leer paralelo

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

Grip Stick

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

Leer paralelo

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

Sprint Tool

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

Leer paralelo

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

Leer paralelo

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

void

Esta función simula la activación del Tool . El objeto debe estar equipado para que esta función funcione.


Devuelve

void

Muestras de código

Invisibility Tool

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

void

Esta función simula la desactivación del Tool . La herramienta debe estar equipada para que esta función funcione.


Devuelve

void

Muestras de código

Invisibility Tool

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

mouse: Mouse

El ratóndel jugador.


Muestras de código

Print when a Player Equips a Tool

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.