Tool
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Công cụ là những thứ mà một Humanoid đối t
Trên máy tính, nhấn một nút số (1, 2, 3...) sẽ trang bị một công cụ. Các công cụ được trang bị có thể được thả vào Work
Công cụ không phải là cách duy nhất để thu thập dữ liệu người d
Mẫu mã
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)
Tóm Tắt
Thuộc Tính
Kiểm tra xem người chơi có thể thả công cụ.
Quyết định whether or not the tool can be used.
Lưu các thuộc tính "grip" của công cụ như một CFrame .
Đại diện các giá trị R02, R12 và R22 của mặt cầm 1> Datatype.CFrame1> rotation matrix.
Độ dịch chuyển của trụ cắt.
Đại diện các giá trị R00, R10 và R20 của mặt cầm 1> Datatype.CFrame1> rotation matrix.
Đại diện các giá trị R01, R11 và R21 của mặt cầm 1> Datatype.CFrame1> rotation matrix.
Thuộc tính ManualActivationOnly kiểm soát apakah Tool có thể được kích hoạt mà không cần thi hành Tool:Activate() .
Xác định có phải một Tool chức năng mà không có tay cầm.
Điều khiển thông điệp hiển thị khi chuột người chơi hovers trên công cụ trong học bục.
Biểu tượng vải để hiển thị cho một công cụ trong trang phục người chơi.
Đặt cấp độ chi tiết trên mô hình cho các trải nghiệm có hỗ trợ dòng chảy trên tài nguyên.
Xác định hành vi phát sóng mô hình trên Models khi mô hình phát sóng được bật.
Phần chính của Model , hoặc nil nếu không được cài đặtmột cách rõ ràng.
Đối tượng chỉnh sửa được sử dụng để thay đổi kích thước mô hình xung quanh cầu nối của nó. Việc cài đặt đối tượng này sẽ di chuyển kích thước như thể Model/ScaleTo đã được gọi trên nó.
Xác định vị trí pivot của một Model có pivot không có set Model.PrimaryPart được đặt.
Phương Pháp
Phương Pháp kế thừa từ ModelĐặt mô hình này để trở nên bền vững cho người chơi được chỉ định. Model.ModelStreamingMode phải được đặt để PersistentPerPlayer để hành động được thay đổi khi kết hợp với nhau.
Trả lại một mô tả của một khối lượng có chứa tất cả các bộ phận của một Mô hình.
Trả lại kích thước của chiếc hộp giới hạn nhỏ nhất mà chứa tất cả các BaseParts trong Model, bên cạnh với Model.PrimaryPart nếu nó được cài đặt.
Điều tra tất cả các Player đối tượng mà đối tượng này được duy trì cho. Hành vi biến đổi dựa trênWhether this method is called from a Script or a LocalScript .
Trả lại kích thước tham chiếu của mô hình, mặc định là 1 cho những mô hình mới tạo và sẽ thay đổi khi nó được thiết lập thông qua Model/ScaleTo .
Di chuyển PrimaryPart đến vị trí đã định. Nếu một phần chính chưa được xác định, phần chính của model sẽ được sử dụng.
Làm cho mô hình này không còn bền vững cho người chơi được chỉ định. Model.ModelStreamingMode phải được cài đặt thành PersistentPerPlayer để hành động này được thay đổi khi kết thúc.
Điều chỉnh yếu tố thước đo của mô hình, điều chỉnh kích thước và vị trí của tất cả các Instance con cháu của mô hình để có được yếu tố thước đo tương ứng với kích thước và vị trí ban đầu của mô hình khi yếu tố thước đo được 1.
Đổi một Model bằng cách đưa ra một Vector3 Offset, giữ gìn hướng của mô hình. Nếu một BasePart hoặc 1> Class.Terrain1> đã tồn tại ở vị trí mới thì
Nhận pivot của một PVInstance .
Biến hình PVInstance cùng với tất cả các con cháu của nó PVInstances để pivot được đặt ở CFrame đã định.
Sự Kiện
Bắt đầu khi người chơi nhấp vào khi công cụ được trang bị.
Kích hoạt khi người chơi thả chuột khi công cụ được trang bị và kích hoạt.
Bắt lửa khi công cụ được trang bị.
Bắt lửa khi công cụ không được trang bị.
Thuộc Tính
CanBeDropped
Thuộc tính CanBeDropped kiểm tra xem người chơi có thể thả Tool .
Nếu đúng, khi nhấn nút quay lại, công cụ sẽ được gắn với Workspace và bị loại bỏ khỏi Class.Backpack của người chơi. Nếu sai, không có gì xảy ra khi bạn nhấn vào nút quay lại, và công cụ sẽ được trang bị.
Enabled
Thuộc tính Đã bật liên quan đến việc có thể sử dụng Tool hay không. Điều này hữu ích nếu bạn muốn ngăn chặn một người sử dụng công cụ, nhưng không muốn loại bỏ nó khỏi mũ của họ.
Khi đặt để true , người chơi có thể sử dụng công cụ. Khi đặt để false , công cụ bị vô hiệu hóa và người chơi không thể
Mẫu mã
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
The Grip property stores the tool's "grip" properties as a single CFrame . These properties position how the player holds the tool and include GripUp , 1> Class.Tool.GripRight
Mẫu mã
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
Một trong những thuộc tính đặc biệt định hướng của một công cụ trong tay một nhân vật. Điều này đại diện cho giá trị R02 , R12 và R22 của hàng 1> Datatype.CFrame1> hệ trục.
Các thuộc tính công cụ khác mà điều khiển cách một nhân vật giữ một công cụ bao gồm Tool.GripUp , Tool.GripRight và Tool.GripPos . Tất cả các thuộc tính
Mẫu mã
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
Điều này điều khiển thiết bị cắt giải phẫu học. Nó là một trong những thuộc tính được sử dụng để định vị cách người chơi nhận công cụ.
Các thuộc tính khác điều khiển cách một nhân vật giữ một công cụ bao gồm Tool.GripUp , Tool.GripRight và Tool.GripForward . Tất cả các thuộc tính này đư
Mẫu mã
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
Một trong những thuộc tính đặc biệt định hướng của một công cụ trong tay một nhân vật. Điều này đại diện cho giá trị R00 , R10 và R20 của hàng 1> Datatype.CFrame1> hệ trục.
Các thuộc tính công cụ khác mà điều khiển cách một nhân vật giữ một công cụ bao gồm Tool.GripUp , Tool.GripForward và Tool.GripPos . Tất cả các thuộc tính
Mẫu mã
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
Một trong những thuộc tính đặc biệt định hướng của một công cụ trong tay một nhân vật. Điều này đại diện cho giá trị R01 , R11 và R21 của hàng 1> Datatype.CFrame1> hệ trục quay.
Các thuộc tính công cụ khác mà điều khiển cách một nhân vật giữ một công cụ bao gồm Tool.GripRight , Tool.GripForward và Tool.GripPos . Tất cả các thuộc tính
Mẫu mã
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
Thuộc tính ManualActivationOnly kiểm soát apakah Tool có thể được kích hoạt mà không cần phải thực hiện Tool:Activate() 명시적으로 trong một script.
Khi đặt để true, công cụ sẽ chỉ bắn Tool.Activated khi Tool:Activate() được gọi. Điều này cũng tắt ContextActionService:BindActivate() 함수.
Khi đặt thành sai, những lần nhấp chuột (khi công cụ được trang bị) cũng sẽ bắn Tool.Activated .
Mẫu mã
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
Điều này xác định có nên sử dụng một Tool chức năng mà không có tay cầm.
Một công cụ có một tay cầm khi nó chứa một phần con cái có tên là Tay cầm . Công cụ có tay cầm thường yêu cầu người chơi trang bị chúng để giữ một đối tượng để sử dụng chúng, ví dụ như vũ khí. Công cụ không có tay cầm thường không yêu cầu ng
Khi đặt về true, công cụ sẽ chỉ hoạt động với một tay cầm. Khi đặt về false, công cụ sẽ hoạt động bất kể mà không có tay cầm.
ToolTip
Thuộc tính ToolTip kiểm soát thông điệp sẽ được hiển thị khi người chơi giữ Mouse trên Tool trong Backpack của họ.
Nói chung, giá trị của thuộc tính này nên mô tả những gì công cụ là hoặc sử dụng. Ví ví dụ / trường hợp, cho một công cụ cúp, bạn có thể chọn để cài đặt ToolTip:
tool.ToolTip = "Shovel"
hoặc
tool.ToolTip = "Use to dig"
hoặc
tool.ToolTip = "Shovel - Use to dig"
Phương Pháp
Activate
Hàm này tương tự như hàm Tool . Công cụ này phải được trang bị cho công cụ này để công cụ này hoạt động.
Lợi Nhuận
Mẫu mã
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
Hàm này tương tự như khi bạn bỏ Tool . Công cụ này phải được trang bị để công cụ này hoạt động.
Lợi Nhuận
Mẫu mã
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)
Sự Kiện
Activated
Sự kiện này bắt đầu khi người chơi nhấp vào khi Tool đang được trang bị. Nó không bắt đầu khi Ctrl được nhấn trong khi người chơi nhấp chuột.
Sự kiện này thường được sử dụng để thực hiện một hành động khi người chơi sử dụng công cụ, ví dụ để khởi chạy một tên lửa từ công cụ khởi chạy tên lửa.
Mã mãdưới, khi được đặt trong một LocalScript , tạo một công cụ trong local người chơi's Backpack và in "Tool activated" khi người dùng nhấp vào khi công cụ được trang bị.
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
Sự kiện này bắt đầu khi người chơi thả nút khi Tool được trang bị và kích hoạt. Nó thường được sử dụng để thực hiện một hành động khi người chơi ngừng sử dụng một công cụ.
Mã mãđây, khi được đặt trong một LocalScript , tạo một công cụ trong local người chơi's Backpack và in "Tool deactivated" khi player thả một click trong khi công cụ được trang bị và kích hoạt.
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
Sự kiện này bắt đầu khi một người chơi trang bị Tool (lấy nó ra khỏi Class.Backpack của họ).
Ngược lại với sự kiện này, Tool.Unequipped, có thể được sử dụng để xác định khi người chơi thuộc về công cụ bỏ nó ra khỏi họ khi đặt nó vào họ.
Ghi chú rằng sự kiện này không bắt lửa khi Class.Tool.RequiresHandle được kích hoạt và không có tay cầm hiện hữu.
Tham Số
chuộtcủa người chơi.
Mẫu mã
local Tool = script.Parent
local function onEquipped(_mouse)
print("The tool was equipped")
end
Tool.Equipped:Connect(onEquipped)
Unequipped
Sự kiện này bắt đầu khi một người bỏ đồ Tool (đặt nó vào trong Backpack của họ).
Ngược lại với sự kiện này, Tool.Equipped , có thể được sử dụng để xác định khi người chơi trang bị công cụ bằng cách lấy nó ra khỏi họ.
Ghi chú rằng sự kiện này không bắt lửa khi Class.Tool.RequiresHandle được kích hoạt và không có tay cầm hiện hữu.