Tool
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Narzędzia są obiektami, które Humanoid obiekt może założyć. Dla graczy są one przechowywane w obiekcie Backpack związanym z obiektem
Na komputer stacjonarny, pressing a number key (1, 2, 3...) will equip a tool. 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 tool, die,
Narzędzia nie są jedynym sposobem na z capture user input. Możesz również użyć ContextActionService , UserInputService lub Player:GetMouse(). Jeśli potrzebuj
Przykłady kodu
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)
Podsumowanie
Właściwości
Kontroluje, czy gracz może upuścić narzędzie.
Dotyczy czy narzędzie może być używane.
Przechowuje właściwości "Uchwyt" narzędzia jako jeden CFrame .
Reprezentuje wartości R02, R12 i R22 dla osi 1> Datatype.CFrame1> matrycy rotacyjnej.
Odległość pozycjonalna wiertarki.
Reprezentuje wartości R00 , R10 i R20 dla osi 1> Datatype.CFrame1> matrycy rotacyjnej.
Reprezentuje wartości R01 , R11 i R21 dla osi 1> Datatype.CFrame1> matrycy rotacyjnej.
Właściwość ManualActivationOnly kontroluje, czy Tool może być aktywowany bez uruchomienia Tool:Activate() .
Określa, czy funkcja Tool działa bez uchwytu.
Kontroluje wiadomość wyświetlaną, gdy myszka gracza położona jest na narzędziu w ich plecaku.
Ikona tekstury, która jest wyświetlana dla narzędzia w ekwipunku gracza.
Ustawia poziom szczegółowości na modelu dla doświadczeń z włączonym przesyłaniem instancji.
Kontroluje zachowanie przesyłania modelu na Models , gdy jest włączone przesyłanie instancji.
Główna część Model lub nil jeśli nie jest wyraźnie ustawiać.
Własność tylko dla edytora używana do skalowania modelu wokół jego osi. Ustawienie tej własności przeniesie skalę, tak jakby Model/ScaleTo zostało na nią wezwane.
Określa, gdzie pivot a Model , który nie ma nie ma zestawu Model.PrimaryPart jest położony.
Metody
Metody odziedziczeni z: ModelUstawia ten model na trwały dla określonego gracza. Model.ModelStreamingMode musi być ustawiony na PersistentPerPlayer , aby zachować zachowanie w wyniku dodania.
Opisuje poziom, który zawiera wszystkie części Modelu.
Zwraca rozmiar najmniejszego pola granicznego, które zawiera wszystkie BaseParts w Model, zgodnie z Model.PrimaryPart ustawionym, jeśli jest ustawiać.
Wróщает wszystkie obiekty Player, które ten obiekt modelu jest trwały. Zachowanie się zmienia w zależności od tego, czy ten metodowy jest wezwany z Script lub LocalScript.
Zwraca skalę kanoniczną modelu, która domyślnie wynosi 1 dla nowo utworzonych modeli i będzie się zmieniać w miarę skalowania poprzez Model/ScaleTo.
Przenieś PrimaryPart do określonej pozycji. Jeśli główna część nie została określona, zostanie użyta część korzeni modelu.
Nie czyni tego modelu już trwałym dla określonego gracza. Model.ModelStreamingMode musi być ustawiony na PersistentPerPlayer , aby zachować zachowanie w wyniku usunięcia.
Ustawia czynnik skalowania modelu, dostosowując rozmiar i lokalizację wszystkich potomnych Instancji, aby miały ten czynnik skalowania w stosunku do ich początkowych rozmiarów i lokalizacji, gdy czynnik skalowania był 1.
Przesunięty Model przez podany Vector3 OFFSET, zachowując orientację modelu. Jeśli kolejny BasePart lub 1> Class.Terrain1> już istnieje w nowej pozycji, to 4> Class.Model4> będzie się łączyć z powyższym obiektem.
Zdobadza pivot Class.PVInstance .
Transformuje PVInstance wraz z wszystkimi jego potomnymi PVInstances, tak aby pivot teraz znajdował się w CFrame .
Zdarzenia
Wystrzeliwany jest, gdy gracz kliknie, gdy narzędzie jest założone.
Wystrzela, gdy gracz uwolni swoje kliknięcie, gdy narzędzie jest założone i aktywowane.
Wystrzeliwany jest po założeniu narzędzia.
Wystrzeliwany jest po usunięciu narzędzia.
Właściwości
CanBeDropped
Właściwość CanBeDropped kontroluje, czy gracz może upuścić Tool.
Jeśli tak, gdy przycisk backspace zostanie naciśnięty, narzędzie zostanie przypisane do Workspace i usunięte z Backpack gracza. Jeśli fałszywe, nic się nie stanie, gdy przycisk backspace zostanie naciśnięty, a narzędzie pozostanie założone.
Enabled
Właściwość Włączone odnosi się do tego, czy Tool może być używany. To jest użyteczne, jeśli chcesz zapobiec graczowi użycia narzędzia, ale nie chcesz go usunąć z ich Backpack.
Gdy ustawiony na true , gracz może użyć narzędzia. Gdy ustawiony na false , narzędzie jest wyłączone i gracz nie może go użyć; to zapobiega aktywowaniu lub dezaktywowaniu narzędzia przez
Przykłady kodu
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
Właściwość Grip przechowuje właściwości "grip" narzędzia jako pojedynczy CFrame . Te właściwości położą, jak gracz trzyma narzędzie i obejmują Class.Tool.GripUp|Grip
Przykłady kodu
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
Jedną z właściwości, która określa orientację narzędzia w ręce charakteru. To przedstawia wartości R02, R12 i R22 dla matrycy rotacji 2>Datatype.CFrame2>.
Innymi właściwościami narzędzia, które kontrolują, jak postać trzyma narzędzie, są Tool.GripUp, Tool.GripRight i Tool.GripPos. Wszystkie te właściwości są przechowywane w pojedynczym 2>Datatype.CFrame2> w właściwości 5>Class.
Przykłady kodu
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
To właściwość kontroluje pozycyjny odchód matrycy spawalniczej narzędzia. Jest to jedna z kilku właściwości używanych do pozycjonowania, jak postępuje postać gracza narzędzie.
Innymi właściwościami, które kontrolują, jak postać trzyma narzędzie, są Tool.GripUp, Tool.GripRight i Tool.GripForward. Wszystkie te właściwości są przechowywane w pojedynczym 2>Datatype.CFrame2> w właściwości 5>Class.Tool.Grip
Przykłady kodu
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
Jedną z właściwości, która określa orientację narzędzia w ręce użytkownika. To przedstawia wartości R00, R10 i R20 dla matrycy rotacji 2>Datatype.CFrame2>.
Inne właściwości narzędzia, które kontrolują, jak postępuje postać z narzędziem, obejmują Tool.GripUp, Tool.GripForward i Tool.GripPos. Wszystkie te właściwości są przechowywane w pojedynczym 2>Datatype.CFrame2> w właściwości
Przykłady kodu
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
Jedną z właściwości, które określają orientację narzędzia w ręce charakteru. To przedstawia wartości R01, R11 i R21 dla matrycy rotacji 2>Datatype.CFrame2>.
Innymi właściwościami narzędzia, które kontrolują, jak postępuje postać z narzędziem, są Tool.GripRight, Tool.GripForward i Tool.GripPos. Wszystkie te właściwości są zapisane w pojedynczym 2>Datatype.CFrame2> w właściwości 5>Class
Przykłady kodu
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
Właściwość ManualActivationOnly kontroluje, czy Tool może być aktywowany bezpośrednio bez wykonania Tool:Activate() w skrypcie.
Gdy ustawiony na prawdę, narzędzie tylko zostanie zainicjowane, gdy Tool.Activated jest wezwany. To również suprimuje funkcję Tool:Activate().
Gdy ustawiony na fałszywy, kliknięcia myszy (gdy narzędzie jest założone) również uruchomią Tool.Activated .
Przykłady kodu
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
Ta właściwość określa, czy Tool funkcje bez uchwytu.
Narzędzie ma uchwyt, gdy zawiera część dziecka nazyającą się Uchwyt . Narzędzia z uchwytami zwykle wymagają, aby gracz je wyposażył, aby trzymać obiekt do użycia go, na przykład broń. Narzędzia bez uchwytów zwykle nie wymagają, aby gracz je wyposażył, aby użyć ich, na przykład narzędzia "latać" lub "wezwać" .
Gdy ustawiony na true, narzędzie będzie działać tylko za pomocą uchwytu. Gdy ustawiony na false, narzędzie będzie działać nawet bez uchwytu.
ToolTip
Właściwość ToolTip kontroluje wiadomość, która zostanie wyświetlona, gdy Mouse gracza położy się na Tool w ich Backpack .
Zwykle wartość tej właściwości powinna opisywać to, co jest narzędziem lub jego użyciem. Na instancjadla kopczyka narzędzia możesz ustawić ToolTip na:
tool.ToolTip = "Shovel"
lub
tool.ToolTip = "Use to dig"
lub
tool.ToolTip = "Shovel - Use to dig"
Metody
Activate
Funkcja ta simuluje aktywację Tool. Narzędzie musi być założone, aby funkcja działała.
Zwroty
Przykłady kodu
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
Funkcja ta simuluje niedziałalność Tool. Narzędzie musi być założone, aby funkcja działała.
Zwroty
Przykłady kodu
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)
Zdarzenia
Activated
Ten ewent zostaje uruchomiony, gdy gracz kliknie, gdy Tool jest założone. Jest to nie uruchomione, jeśli Ctrl klucz jest naciśnięty podczas klikać.
Ten wątek jest zwykle używany do wykonania akcji, gdy gracz używa narzędzia, na przykład do uruchomienia rakiety z narzędzia wyrzutni rakiet.
Poniższy kod, gdy jest umieszczony w LocalScript , tworzy narzędzie w lokalnym graczu's Class.Backpack i drukuje "Narzędzie aktywowane" gdy gracz kliknie, gdy narzędzie jest założone.
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
Ten ewent zostaje uruchomiony, gdy gracz uwalnia swoje kliknięcie, gdy Tool jest założone i aktywowane. Zazwyczaj używany jest do wykonania akcji, gdy gracz przestaje używania narzędzia.
Poniższy kod, gdy jest umieszczony w LocalScript , tworzy narzędzie w lokalnym graczu's Class.Backpack i drukuje "Narzędzie wyłączone" gdy gracz uwalnia swoje kliknięcie, gdy narzędzie jest wyposażone i aktywowane.
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
Ten wążdź się uruchamia, gdy gracz używa Tool (wychodzi z ich Backpack ).
Przeciwieństwem tego wydarzenia, Tool.Unequipped , można użyć do określenia czasu, w którym gracz zdjął narzędzie, umieszczając je w ich plecaku.
Uwaga, że to wydarzenie nie wystrzela, gdy Tool.RequiresHandle jest włączony i nie ma rękojmia.
Parametry
Myszka mysz.
Przykłady kodu
local Tool = script.Parent
local function onEquipped(_mouse)
print("The tool was equipped")
end
Tool.Equipped:Connect(onEquipped)
Unequipped
Ten wążek zdarzeń zostanie wywołany, gdy gracz zdjął Tool (wkłada go do ich Backpack ).
Przeciwieństwem tego wydarzenia, Tool.Equipped, można użyć do określenia czasu, w którym gracz wyposaż narzędzie, wyjąwszy je z ich plecaka.
Uwaga, że to wydarzenie nie wystrzela, gdy Tool.RequiresHandle jest włączony i nie ma rękojmia.