Tool
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Tools sind Objekte, die ein Humanoid -Objekt ausrüsten kann. Für Spieler werden sie in einem Backpack -Objekt mit einem Player -Objekt
Auf dem Desktop, indem Sie eine Zahlertaste (1, 2, 3...) drücken, wird ein Toolausgerüstet. Ausgerüstete Werkzeuge können in den Workspace durch Drücken von Rücktaste fallen gelassen werden. Es wird empfohlen, Class
Tools sind nicht die einzigen Möglichkeiten, Benutzereingaben zu erfassen. Sie können auch ContextActionService , UserInputService oder Class.Player:GetMouse() verwenden. Wenn Sie ein Werkzeug verwenden
Code-Beispiele
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)
Zusammenfassung
Eigenschaften
Steuert, ob der Spieler das Toolfallen lassen kann.
Bezieht sich auf die Frage, ob das Werkzeug verwendet werden kann oder nicht.
Speichert die Eigenschaften des "Griffs" des Toolals ein CFrame .
Repräsentiert die Werte R02 , R12 und R22 der Griff-Rotation-Matrix.
Der positoriale Offset der Weld-Matrix des Tool.
Repräsentiert die Werte R00 , R10 und R20 der Griff-Rotation-Matrix.
Repräsentiert die Werte R01 , R11 und R21 der Griff-Rotation-Matrix.
Die ManualActivationOnly-Eigenschaftsteuert, ob die Tool aktiviert werden kann, ohne Tool:Activate() auszuführen.
Bestimmt, ob eine Tool Funktion ohne einen Ziehpunktfunktioniert.
Steuert die Nachricht, die angezeigt wird, wenn die Maus des Spieler:inüber das Werkzeug in seinem Rucksack schwebt.
Das Texture-Symbol, das für ein Werkzeug im Rucksack des Spieler:inangezeigt wird.
Setzt die Detaillierungsstufe auf dem Modell für Erlebnisse mit eingeschaltetem Instanz- Streaming.
Steuert das Modell- Streaming-Verhalten auf Models, wenn das Instanz- Streaming aktiviert ist.
Der Hauptteil des Model , oder nil wenn nicht explizit festlegen.
Editor-only-Eigenschaft, die verwendet wird, um das Modell um seine Achse zu skalieren. Wenn Sie diese Eigenschaft einstellen, bewegt sich die Skala, als ob Model/ScaleTo auf sie aufgerufen wurde.
Bestimmt, wo sich der Pivot eines Model , der nicht hat, befindet.
Methoden
Methoden von Model übernommenSetzt dieses Modell so ein, dass es für den angegebenen Spieler:indauerhaft ist. Model.ModelStreamingMode muss so eingestellt sein, dass PersistentPerPlayer für das Verhalten als Ergebnis der Zugabe geändert wird.
Bietet eine Beschreibung eines Volumes, das alle Teile eines Modells enthält.
Gibt die Größe der kleinsten Kernkiste zurück, die alle BaseParts in der Model enthält, mit dem Alignment auf die Model.PrimaryPart , wenn es festlegenist.
Rückgibt alle Player -Objekte, für die dieses Modell-Objekt persistent ist. Das Verhalten variiert basierend darauf, ob diese Methode aus einem Script oder einem LocalScript aufgerufen wird.
Gibt die Skalierung des Modells zurück, die standardmäßig 1 für neu erstellte Modelle beträgt und sich ändern wird, wenn sie über Model/ScaleTo skaliert wird.
Bewegt den PrimaryPart an die angegebene Position. Wenn eine Primärteil nicht angegeben wurde, wird die Wurzelteil des Modells verwendet.
Macht dieses Modell für bestimmten Spieler:innicht mehr persistent. Model.ModelStreamingMode muss auf PersistentPerPlayer eingestellt sein, damit das Verhalten als Ergebnis der Entfernung geändert wird.
Setzt den Skalierungsfaktor des Modells, um die Größe und den Standort aller Nachkommen zuzuschneiden, damit sie diesen Skalierungsfaktor in Relation zu ihren ursprünglichen Größen und Standorten haben, wenn der Skalierungsfaktor 1 war.
Verschiebt ein Model durch den angegebenen Vector3 Versatz, wobei die Orientierung des Modells erhalten bleibt. Wenn ein weiterer BasePart oder 2>Class.Terrain2> bereits in der neuen Position existiert, wird das 5>Class.Model5> mit dem überschriebenen 8>Class.Model8> kollidieren.
Erhalten Sie die Ausrichtung einer PVInstance.
Transformiert die PVInstance zusammen mit all ihren Nachkommen PVInstances, wodurch der Pivot jetzt an der angegebenen CFrame liegt.
Ereignisse
Feuert, wenn der Spieler zugleich die Werkzeug ausrüstet, wenn es aktiviert ist.
Feuert, wenn der Spieler seine Click freigibt, während das Werkzeug ausgerüstet und aktiviert ist.
Feuert, wenn das Werkzeug ausgerüstet ist.
Feuert, wenn das Werkzeug nicht ausgerüstet ist.
Eigenschaften
CanBeDropped
Die CanBeDropped-Eigenschaftsteuert, ob der Spieler das Tool fallen lassen kann.
Wenn true, wenn der Rücktaste-Button gedrückt wird, wird das Werkzeug in Workspace übergeordnet und aus dem Spieler:inClass.Backpack entfernt. Wenn false, wird nichts passieren, wenn die Rücktaste gedrückt wird, und das Werkzeug wird weiterhin ausgerüstet bleiben.
Enabled
Die aktiviert Eigenschaft bezieht sich darauf, ob das Tool verwendet werden kann. Dies ist nützlich, wenn Sie einen Spieler daran hindern möchten, ein Werkzeug zu verwenden, aber es nicht aus seinem Backpack entfernen möchten.
Wenn auf "<a href=\"# true\">true</a>" eingestellt ist, kann der Spieler das Toolverwenden. Wenn auf"<a href=\"# false\">false</a>" eingestellt ist, ist das Werkzeug deaktiviert und der Spieler kann es nicht verwenden; dies verhindert, dass das Werkzeug durch die Methoden "<
Code-Beispiele
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
Die Grip-Eigenschaft speichert die "grip"-Eigenschaften des Werkzeugs als einzelnes CFrame . Diese Eigenschaften positionieren, wie der Spieler das Werkzeug hält, und enthalten GripUp
Code-Beispiele
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
Eine der Eigenschaften, die die Ausrichtung eines Toolin der Hand eines Charakters spezifiziert. Dies repräsentiert die R02 , R12 und R22 Werte der Griff-Rotation-Matrix.
Andere Werkzeug属性, die die Art und Weise steuern, wie ein Charakter ein Werkzeug hält, einschließlich Tool.GripUp, Tool.GripRight und Tool.GripPos, werden in einem einzigen 2>Datatype.CFrame2> in der 5>Class.Tool.Grip5> Eigenschaftengespeichert. Alle diese E
Code-Beispiele
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
Dieses Eigenschaften kontrolliert den positionalen Offset der Weld-Matrix des Tool. Es ist eine von mehreren Eigenschaften, die verwendet werden, um zu positionieren, wie der Spieler-Charakter das Toolhält.
Andere Eigenschaften, die die Art und Weise steuern, wie ein Charakter ein Werkzeug hält, enthalten Tool.GripUp, Tool.GripRight und Tool.GripForward. Alle diese Eigenschaften werden in einer einzigen 2> Datatype.CFrame2> in der 5> Class.Tool.Grip5>
Code-Beispiele
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
Eine der Eigenschaften, die die Ausrichtung eines Toolin der Hand eines Charakters spezifiziert. Dies repräsentiert die R00 , R10 und R20 Werte der Griff-Rotation-Matrix.
Andere Werkzeug属性, die die Art und Weise steuern, wie ein Charakter ein Werkzeug hält, einschließlich Tool.GripUp, Tool.GripForward und Tool.GripPos, werden in einem einzigen 2>Datatype.CFrame2> in der 5>Class.Tool.Grip5> Eigenschaftengespeichert. Alle diese E
Code-Beispiele
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
Eine der Eigenschaften, die die Ausrichtung eines Toolin der Hand eines Charakters spezifiziert. Dies repräsentiert die R01 , R11 und R21 Werte der Griff-Rotation-Matrix.
Andere Werkzeug属性, die die Art und Weise steuern, wie ein Charakter ein Werkzeug hält, einschließlich Tool.GripRight, Tool.GripForward und Tool.GripPos, werden in einem einzigen 2>Datatype.CFrame2> in der 5>Class.Tool.Grip5> Eigenschaftengespeichert. Alle diese E
Code-Beispiele
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
Die ManualActivationOnly-Eigenschaftsteuert, ob die Tool ohne ausdrückliche Ausführung von Tool:Activate() in einem Skript, das. PL: die Skriptsaktiviert werden kann.
Wenn auf wahr gesetzt, wird das Werkzeug nur Tool.Activated ausgeführt, wenn Tool:Activate() aufgerufen wird. Dies unterdrückt auch die ContextActionService:BindActivate()-Funktion.
Wenn auf falsch gesetzt, mausklicks (wenn das tool ausgerüstet ist) werden auch Tool.Activated feuern.
Code-Beispiele
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
Dieses Eigenschaft bestimmt, ob eine Tool Funktion ohne einen Ziehpunktfunktioniert.
Ein Werkzeug hat einen Griff, wenn es ein Kind-Teil enthält, der als Griff benannt ist. Werkzeuge mit Griffen benötigen normalerweise, dass der Spieler sie ausrüstet, um ein Objekt zu halten, um sie zu verwenden, z. B. Waffen. Werkzeuge ohne Griff benötigen normalerweise nicht, dass der Spieler sie ausrüstet, um ein Objekt zu halten, um sie zu verwenden, z. B. "Fly" oder "Summon"-Werkzeuge.
Wenn auf true eingestellt, funktioniert das Werkzeug nur mit einem Ziehpunkt. Wenn auf false eingestellt, funktioniert das Werkzeug sogar ohne Ziehpunkt.
ToolTip
Die ToolTip-Eigenschaft kontrolliert die Nachricht, die angezeigt wird, wenn der Spieler:inmit der Mouse über die Tool in ihrem Backpack schwebt.
Im Allgemeinen sollte der Wert dieser Eigenschaft die darum geht, was das Werkzeug ist oder seine Verwendung. Zum Instanzfür einen Schaufel-Werkzeug, können Sie die ToolTip so einstellen:
tool.ToolTip = "Shovel"
oder
tool.ToolTip = "Use to dig"
oder
tool.ToolTip = "Shovel - Use to dig"
Methoden
Activate
Diese Funktion simuliert die Aktivierung des Tool. Das Werkzeug muss für diese Funktion ausgerüstet sein.
Rückgaben
Code-Beispiele
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
Diese Funktion simuliert die Deaktivierung des Tool. Das Werkzeug muss für diese Funktion ausgerüstet sein.
Rückgaben
Code-Beispiele
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)
Ereignisse
Activated
Dieses Ereignis wird ausgelöst, wenn der Spieler klickt, während das Tool ausgerüstet ist. Es wird nicht nicht ausgeführt, wenn die Ctrl-Taste während des klickengedrückt wird.
Dieses Ereignis wird normalerweise verwendet, um eine Aktion auszuführen, wenn der Spieler das Toolverwendet, z. B. um eine Rakete aus einer Toolzu starten.
Der folgende Codes, wenn er in ein LocalScript platziert wird, erstellt ein Werkzeug in dem lokalen Spieler:inBackpack und druckt "Tool aktiviert" an, wenn der Benutzer zugleich das erstellte Werkzeug trägt.
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
Dieses Ereignis wird ausgelöst, wenn der Spieler seine Click freigibt, während das Tool ausgerüstet und aktiviert ist. Es wird in der Regel verwendet, um eine Aktion auszuführen, wenn der Spieler ein Werkzeug aufgibt.
Der folgende Codes, wenn er in einem LocalScript platziert wird, erstellt ein Werkzeug in dem lokalen Spieler:in's Backpack und druckt "Tool deaktiviert" aus, wenn der Spieler seine Klicks freigibt, während das Werkzeug ausgerüstet und aktiviert ist.
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
Dieses Ereignis wird ausgelöst, wenn ein Spieler die Tool (sie aus ihrem Backpack ) ausrüstet.
Das Gegenteil dieses Ereignisses, Tool.Unequipped, kann verwendet werden, um zu bestimmen, wann der Spieler das Werkzeug ablegt, indem er es in seinen Rucksack steckt.
Beachten Sie, dass dieses Ereignis nicht feuert, wenn Tool.RequiresHandle aktiviert ist und kein Griff vorhanden ist.
Parameter
Die Maus des Spieler:in.
Code-Beispiele
local Tool = script.Parent
local function onEquipped(_mouse)
print("The tool was equipped")
end
Tool.Equipped:Connect(onEquipped)
Unequipped
Dieses Ereignis wird ausgelöst, wenn ein Spieler das Tool (in seinem Backpack ) ablegen.
Das Gegenteil dieses Ereignisses, Tool.Equipped , kann verwendet werden, um zu bestimmen, wann der Spieler das Werkzeug aus seinem Rucksack entfernt, um es auszurüsten.
Beachten Sie, dass dieses Ereignis nicht feuert, wenn Tool.RequiresHandle aktiviert ist und kein Griff vorhanden ist.