Tool

Veraltete anzeigen

*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

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)

Zusammenfassung

Eigenschaften

  • Parallel lesen

    Steuert, ob der Spieler das Toolfallen lassen kann.

  • Parallel lesen

    Bezieht sich auf die Frage, ob das Werkzeug verwendet werden kann oder nicht.

  • Parallel lesen

    Speichert die Eigenschaften des "Griffs" des Toolals ein CFrame .

  • Verborgen
    Nicht repliziert
    Parallel lesen

    Repräsentiert die Werte R02 , R12 und R22 der Griff-Rotation-Matrix.

  • Verborgen
    Nicht repliziert
    Parallel lesen

    Der positoriale Offset der Weld-Matrix des Tool.

  • Verborgen
    Nicht repliziert
    Parallel lesen

    Repräsentiert die Werte R00 , R10 und R20 der Griff-Rotation-Matrix.

  • Verborgen
    Nicht repliziert
    Parallel lesen

    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.

  • Parallel lesen

    Bestimmt, ob eine Tool Funktion ohne einen Ziehpunktfunktioniert.

  • Parallel lesen

    Steuert die Nachricht, die angezeigt wird, wenn die Maus des Spieler:inüber das Werkzeug in seinem Rucksack schwebt.

Eigenschaften von BackpackItem übernommen
  • TextureId:ContentId
    Parallel lesen

    Das Texture-Symbol, das für ein Werkzeug im Rucksack des Spieler:inangezeigt wird.

Eigenschaften von Model übernommen
  • 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.

  • Parallel lesen

    Der Hauptteil des Model , oder nil wenn nicht explizit festlegen.

  • Nicht repliziert
    Nicht skriptfähig
    Parallel lesen

    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.

  • Nicht repliziert
    Parallel lesen

    Bestimmt, wo sich der Pivot eines Model , der nicht hat, befindet.

Eigenschaften von PVInstance übernommen

Methoden

Methoden von Model übernommen
  • AddPersistentPlayer(playerInstance : Player):void

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

  • MoveTo(position : Vector3):void

    Bewegt den PrimaryPart an die angegebene Position. Wenn eine Primärteil nicht angegeben wurde, wird die Wurzelteil des Modells verwendet.

  • RemovePersistentPlayer(playerInstance : Player):void

    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.

  • ScaleTo(newScaleFactor : number):void

    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.

  • TranslateBy(delta : Vector3):void

    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.

Methoden von PVInstance übernommen

Ereignisse

Eigenschaften

CanBeDropped

Parallel lesen

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

Parallel lesen

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

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

Parallel lesen

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

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

Verborgen
Nicht repliziert
Parallel lesen

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

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

Verborgen
Nicht repliziert
Parallel lesen

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

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

Verborgen
Nicht repliziert
Parallel lesen

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

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

Verborgen
Nicht repliziert
Parallel lesen

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

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

Parallel lesen

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

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

Parallel lesen

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

Parallel lesen

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

void

Diese Funktion simuliert die Aktivierung des Tool. Das Werkzeug muss für diese Funktion ausgerüstet sein.


Rückgaben

void

Code-Beispiele

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

Diese Funktion simuliert die Deaktivierung des Tool. Das Werkzeug muss für diese Funktion ausgerüstet sein.


Rückgaben

void

Code-Beispiele

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)

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

mouse: Mouse

Die Maus des Spieler:in.


Code-Beispiele

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

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.