Tool

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Gli strumenti sono oggetti che un oggetto Class.H

On Desktop, pressing a number key (1, 2, 3...) will equip a strumento. Equipped tools can be dropped into the Workspace by pressing Backspace. It's recommended that you turn Tool.CanBeDropped off so it isn't possible to drop a strumento, die

Gli strumenti non sono l'unico modo per catturare l'input dell'utente. Puoi anche usare ContextActionService , UserInputService o Class

Campioni di codice

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)

Sommario

Proprietà

  • Lettura Parallela

    Controlla se il giocatore può lasciare il strumento.

  • Lettura Parallela

    Riguarda se lo strumento può essere utilizzato o meno.

  • Lettura Parallela

    memorizza le proprietà "grip" della strumentocome un CFrame .

  • Nascosto
    Non Replicato
    Lettura Parallela

    Rappresenta i valori R02, R12 e R22 della impugnatura 1> Datatype.CFrame1> della matrice di rotazione.

  • Nascosto
    Non Replicato
    Lettura Parallela

    La posizione di offset della matrice di saldatura dell'strumento.

  • Nascosto
    Non Replicato
    Lettura Parallela

    Rappresenta i valori R00 , R10 e R20 della impugnatura 1> Datatype.CFrame1> della matrice di rotazione.

  • Nascosto
    Non Replicato
    Lettura Parallela

    Rappresenta i valori R01, R11 e R21 della impugnatura 1> Datatype.CFrame1> della matrice di rotazione.

  • Lettura Parallela

    La proprietà ManualActivationOnly controlla se Tool può essere attivato senza eseguire Tool:Activate() .

  • Lettura Parallela

    Determina se una funzione Tool funziona senza un gestire.

  • Lettura Parallela

    Controlla il messaggio visualizzato quando il mouse del Giocatoresi posa sopra lo strumento nel suo zaino.

Proprietà provenienti da BackpackItem
  • TextureId:ContentId
    Lettura Parallela

    L'icona della texture che viene visualizzata per uno strumento nel zaino del Giocatore.

Proprietà provenienti da Model
  • Imposta il livello di dettaglio sul modello per le esperienze con la funzione di streaming in sessione abilitata.

  • Controlla il comportamento di streaming del modello su Models quando è abilitato lo streaming delle istanze.

  • Lettura Parallela

    La parte principale del Model, o nil se non è esplicitamente Impostare.

  • Non Replicato
    Non programmabile
    Lettura Parallela

    Proprietà utilizzata solo dall'editor per scalare il modello intorno al suo pivot. Impostando questa proprietà sposterà lo scala come se Model/ScaleTo fosse stata chiamata su di esso.

  • Non Replicato
    Lettura Parallela

    Determina dove si trova il punto di rotazione di un Model che non ha non un set Model.PrimaryPart è posizionato.

Proprietà provenienti da PVInstance

Metodi

Metodi provenienti da Model
  • AddPersistentPlayer(playerInstance : Player):void

    Imposta questo modello per essere persistente per il Giocatorespecificato. Model.ModelStreamingMode deve essere impostato su PersistentPerPlayer per il comportamento di modifica come risultato dell'aggiungimento.

  • Restituisce una descrizione di un volume che contiene tutte le parti di un modello.

  • Restituisce il valore della più piccola scatola di confezione che contiene tutti i BaseParts in the Model , allineato con il Model.PrimaryPart se è Impostare.

  • Restituisce tutti gli oggetti Player che questo oggetto modello è persistente. Il comportamento varia in base a se questo metodo viene chiamato da un Script o da un LocalScript .

  • Restituisce la scala di canone del modello, che predefinito è 1 per i nuovi modelli creati e cambierà man mano che viene scala via Model/ScaleTo .

  • MoveTo(position : Vector3):void

    Sposta il PrimaryPart alla posizione specificata. Se una parte primaria non è stata specificata, la parte di base del modello sarà utilizzata.

  • RemovePersistentPlayer(playerInstance : Player):void

    Questo modello non è più persistente per il Giocatorespecificato. Model.ModelStreamingMode deve essere impostato su PersistentPerPlayer per il comportamento di modifica come risultato della rimozione.

  • ScaleTo(newScaleFactor : number):void

    Imposta il fattore di escala del modello, regolando la dimensione e la posizione di tutte le istanze discendenti in modo che abbiano quel fattore di escala rispetto alle loro dimensioni e posizione iniziali quando il fattore di escala era 1.

  • TranslateBy(delta : Vector3):void

    Sposta un Model da un dato Vector3 OFFSET, preservando l'orientamento del modello. Se un altro BasePart o 1> Class.Terrain1> esiste già nella nuova posizione, allora il 4> Class.Model4> si sovrappone all'oggetto dichiarato.

Metodi provenienti da PVInstance

Eventi

Proprietà

CanBeDropped

Lettura Parallela

La proprietà CanBeDropped controlla se il giocatore può far cadere il Tool .

Se vero, quando viene premuto il pulsante backspace, lo strumento sarà affidato a Workspace e rimosso dal GiocatoreBackpack . Se falso, non accadrà nulla quando viene premuto il pulsante backspace e lo strumento rimarrà equipaggiato.

Enabled

Lettura Parallela

La proprietà Abilitato si riferisce a se o no lo strumento Tool può essere utilizzato. Questo è utile se vuoi impedire a un giocatore di utilizzare uno strumento, ma non vuoi rimuoverlo dal loro Backpack .

Quando impostato su true, il giocatore può utilizzare lo strumento. Quando impostato su false, lo strumento è disabilitato e il giocatore non può usarlo; questo impedisce che lo strumento venga attivato o disattivato dai metodi Class.Tool:Activate

Campioni di codice

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

Lettura Parallela

La proprietà Grip memorizza le proprietà "grip" dello strumento come un singolo CFrame . Queste proprietà posizionano il modo in cui il giocatore tiene lo strumento e includono GripUp

Campioni di codice

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

Nascosto
Non Replicato
Lettura Parallela

Una delle proprietà che specifica l'orientamento di uno strumento in una mano del personaggio. Questo rappresenta i valori R02 , R12 e R22 della impugnatura 1> Datatype.CFrame1> rotazione matrice.

Altre proprietà degli strumenti che controllano come un personaggio tiene uno strumento includono Tool.GripUp, Tool.GripRight e Tool.GripPos . Tutte queste proprietà vengono memorizzate in un singolo 2> Datatype.CFrame2> nella Proprietà5> Class.Tool.Grip5>.

Campioni di codice

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

Nascosto
Non Replicato
Lettura Parallela

Questa proprietà controlla l'Offset Posizionale della matrice di saldatura dello strumento. È una di diverse proprietà utilizzate per posizionare come il personaggio del giocatore tiene lo strumento.

Altre proprietà che controllano come un personaggio tiene uno strumento includono Tool.GripUp , Tool.GripRight e Tool.GripForward . Tutte queste proprietà vengono memorizzate in un singolo 1> Datatype.CFrame1> nella Proprietà4> Class.Tool.Grip4>.

Campioni di codice

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

Nascosto
Non Replicato
Lettura Parallela

Una delle proprietà che specifica l'orientamento di uno strumento in una mano del personaggio. Questo rappresenta i valori R00 , R10 e R20 della matrice di rotazione 1> Datatype.CFrame1> .

Altre proprietà degli strumenti che controllano come un personaggio tiene uno strumento includono Tool.GripUp, Tool.GripForward e Tool.GripPos . Tutte queste proprietà vengono memorizzate in un singolo 2> Datatype.CFrame2> nella Proprietà5> Class.Tool.Grip5>.

Campioni di codice

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

Nascosto
Non Replicato
Lettura Parallela

Una delle proprietà che specifica l'orientamento di uno strumento in una mano del personaggio. Questo rappresenta i valori R01 , R11 e R21 della matrice di rotazione 1> Datatype.CFrame1> .

Altre proprietà degli strumenti che controllano come un personaggio tiene uno strumento includono Tool.GripRight, Tool.GripForward e Tool.GripPos . Tutte queste proprietà vengono memorizzate in un singolo 2> Datatype.CFrame2> nella Proprietà5> Class.Tool.Grip5>.

Campioni di codice

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

Lettura Parallela

La proprietà ManualActivationOnly controlla se Tool può essere attivato senza eseguire esplicitamente Tool:Activate() in uno script.

Quando impostato su true, lo strumento sarà attivato solo quando Tool.Activated è chiamato. Questo supprime anche la funzione Tool:Activate().

Quando impostato su false, i clic del mouse (quando lo strumento è equipaggiato) attivano anche Tool.Activated .

Campioni di codice

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

Lettura Parallela

Questa proprietà determina se una funzione Tool funziona senza un gestire.

Un oggetto ha una maniglia quando contiene una parte figlia chiamata Maniglia . Gli strumenti con maniglie richiedono in genere che il giocatore li equipaggi per tenere un oggetto per usarlo, ad esempio le armi. Gli strumenti senza maniglie richiedono in genere che il giocatore le equipaggi per tenere qualcosa per usarlo, ad esempio strumenti "volare" o "evocare".

Quando impostato su true, lo strumento funzionerà solo con un gestire. Quando impostato su false, lo strumento funzionerà anche senza una gestire.

ToolTip

Lettura Parallela

La proprietà ToolTip controlla il messaggio che verrà visualizzato quando il GiocatoreMouse passa il mouse sul Tool nel loro Backpack .

In generale, il valore di questa proprietà dovrebbe descrivere cosa è lo strumento o il suo uso. Ad esempio, per uno strumento di scavo, potresti scegliere di impostare il ToolTip su:


tool.ToolTip = "Shovel"

or


tool.ToolTip = "Use to dig"

or


tool.ToolTip = "Shovel - Use to dig"

Metodi

Activate

void

Questa funzione simula l'attivazione del Tool . Lo strumento deve essere equipaggiato per che questa funzione funzioni.


Restituzioni

void

Campioni di codice

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

Questa funzione simula la disattivazione del Tool . Lo strumento deve essere equipaggiato per questo funzionamento.


Restituzioni

void

Campioni di codice

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)

Eventi

Activated

Questo evento si attiva quando il giocatore fa clic mentre il Tool è equipaggiato. Non è non attivato se viene premuto il Ctrl durante il clic.

Questo evento viene tipicamente utilizzato per eseguire un'azione quando il giocatore usa lo strumento, ad esempio per lanciare un razzo da uno strumento di lancio di razzi.

Il seguente codice, quando viene inserito in un LocalScript , crea uno strumento nel Giocatorelocale e stampa "Strumento attivato" quando il giocatore fa clic mentre lo strumento creato è equipaggiato.


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

Questo evento si attiva quando il giocatore rilascia il clic mentre il Tool è equipaggiato e attivato. Solitamente viene utilizzato per eseguire un'azione quando il giocatore smette di utilizzare uno strumento.

Il seguente codice, quando viene inserito in un LocalScript , crea uno strumento nel Giocatorelocale e stampa "Strumento disattivato" quando lo strumento è equipaggiato e attivato.


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

Questo evento si attiva quando un giocatore equipaggia il Tool (toglierlo dal loro Backpack ).

Il contrario di questo evento, Tool.Unequipped , può essere utilizzato per determinare quando il giocatore toglie l'equipaggiamento dal backpack.

Nota che questo evento non brucia quando Tool.RequiresHandle è abilitato e non è presente alcuna maniglia.

Parametri

mouse: Mouse

Il Topo, or mouse as computer mousedel Giocatore.


Campioni di codice

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

Questo evento si attiva quando un giocatore Tool (lo mette nel loro Backpack).

Il contrario di questo evento, Tool.Equipped , può essere utilizzato per determinare quando il giocatore equipaggia lo strumento togliendolo dal loro zaino.

Nota che questo evento non brucia quando Tool.RequiresHandle è abilitato e non è presente alcuna maniglia.