Tool
*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
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)
Sommario
Proprietà
Controlla se il giocatore può lasciare il strumento.
Riguarda se lo strumento può essere utilizzato o meno.
memorizza le proprietà "grip" della strumentocome un CFrame .
Rappresenta i valori R02, R12 e R22 della impugnatura 1> Datatype.CFrame1> della matrice di rotazione.
La posizione di offset della matrice di saldatura dell'strumento.
Rappresenta i valori R00 , R10 e R20 della impugnatura 1> Datatype.CFrame1> della matrice di rotazione.
Rappresenta i valori R01, R11 e R21 della impugnatura 1> Datatype.CFrame1> della matrice di rotazione.
La proprietà ManualActivationOnly controlla se Tool può essere attivato senza eseguire Tool:Activate() .
Determina se una funzione Tool funziona senza un gestire.
Controlla il messaggio visualizzato quando il mouse del Giocatoresi posa sopra lo strumento nel suo zaino.
L'icona della texture che viene visualizzata per uno strumento nel zaino del Giocatore.
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.
La parte principale del Model, o nil se non è esplicitamente Impostare.
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.
Determina dove si trova il punto di rotazione di un Model che non ha non un set Model.PrimaryPart è posizionato.
Metodi
Metodi provenienti da ModelImposta 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 .
Sposta il PrimaryPart alla posizione specificata. Se una parte primaria non è stata specificata, la parte di base del modello sarà utilizzata.
Questo modello non è più persistente per il Giocatorespecificato. Model.ModelStreamingMode deve essere impostato su PersistentPerPlayer per il comportamento di modifica come risultato della rimozione.
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.
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.
Ottiene il pivot di un PVInstance .
Transforms the PVInstance along with all of its descendant PVInstances such that the pivot is now located at the specified CFrame .
Eventi
Si attiva quando il giocatore fa clic mentre lo strumento è equipaggiato.
Si attiva quando il giocatore rilascia il clic mentre lo strumento è equipaggiato e attivato.
Si attiva quando lo strumento è equipaggiato.
Si attiva quando lo strumento non è equipaggiato.
Proprietà
CanBeDropped
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
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
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 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
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 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
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
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
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 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
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 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
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 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
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
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
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
Questa funzione simula l'attivazione del Tool . Lo strumento deve essere equipaggiato per che questa funzione funzioni.
Restituzioni
Campioni di codice
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
Questa funzione simula la disattivazione del Tool . Lo strumento deve essere equipaggiato per questo funzionamento.
Restituzioni
Campioni di codice
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
Il Topo, or mouse as computer mousedel Giocatore.
Campioni di codice
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.