Tool
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Araçlar, bir Humanoid nesnesinin donatabileceği nesnelerdir.Oyuncular için, bir Backpack nesneye bağlı bir Player nesneye depolanırlar.Oyun içinde, oyuncular ekranın altında simgeler olarak görünen çok sayıda alet olabilir.Bir aracı donatmak, onu sırt çantasından Player.Character bir modeline ve Workspace içine taşır.Varsayılan olarak, araçlar sağ elde tutulur ve içlerinde bir tutamaç vardır, ki bu bir Part içinde "Kullanıcı" olarak adlandırılır (bir tane gerekli değilse, Tool.RequiresHandle kapalı olduğunda).Oyunculara yeniden doğmak için sağlanacak araçların StarterPack depolanması gerekir.
Masaüstünde, bir sayı tuşuna basmak (1, 2, 3...) bir araç donatacaktır.Takılan araçlar, Geri gitme tuşuna basarak Çalışma Alanı'na bırakılabilir.Bir araç bırakmak, ölmek, yeniden doğmak ve araçları kopyalamak için tekrar düşürmek mümkün olmadığından Tool.CanBeDropped kapatmanız önerilir.Oyun masaüstü, LB ve RB düğmeleri araçları donatacaktır.Aktivasyonu sol tıklama ile (veya oyun kolu üzerinde sağ tetik ile) devre dışı bırakabilirsiniz, bunu yapmak için Tool.ManualActivationOnly üzerinde ayar yapabilirsiniz.Bunu yapmak, başka bir kullanıcının girişi aracılığıyla kendinizi etkinleştirmenizi gerektirir.
Araçlar, kullanıcı girişini yakalamanın tek yolu değildir.Ayrıca ContextActionService , UserInputService veya Player:GetMouse() kullanabilirsiniz.Bir araçta çok sayıda eylem yapmak için bir araç gerekiyorsa, aracı takılıyken bir tuşa basmak gibi, ve Bir LocalScript aracılığıyla bu eylemleri sunucuya gönderin RemoteFunction aracılığıyla Araç içinde.
Kod Örnekleri
This code is meant to be placed in a Script within a Tool. It allows a player to spawn explosions by equipping the tool and clicking on the ground. It does so by defining a function, explode, which creates a non-deadly explosion at a given point. Then, it defines a function, onActivated, that runs when the tool is activated. Finally, it connects the Activated event of the tool to the onActivated function.
To test this code out, try creating a Tool and put a Part inside it. Name the Part "Handle". Put a Script inside the Tool next, and paste the code into it. Finally, put the Tool in the StarterPack.
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)
This code sample is for a Tool object with a Part named Handle. It detects when Humanoids other than the current holder hit the handle, and deals some damage to them. In addition, when the Tool is activated, it triggers a slash animation in the default character animation scripts. Try out this script by creating a Tool object in the StarterPack. Put a Part inside it, and name it Handle. Paste this code into a Script inside the Tool, then try slashing at another Humanoid!
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)
Özet
Özellikler
Oyuncunun aleti bırakıp bırakmayacağını kontrol eder.
Araç kullanılabilir olup olmadığıyla ilgilidir.
Araçların "kavrama" özelliklerini bir CFrame olarak depolar.
Kavrama R02 , R12 ve R22 değerlerini temsil eder CFrame dönüş matrisi.
Araçın kaynak matrisinin pozisyonel ofseti.
Kavrama R00 , R10 ve R20 değerlerini temsil eder CFrame dönüş matrisi.
Kavrama R01 , R11 ve R21 değerlerini temsil eder CFrame dönüş matrisi.
ManualActivationOnly özelliği, Tool ın çalıştırılmadan etkinleştirilebilir olup olmadığını kontrol eder, Tool:Activate() .
Bir tutamaç olmadan bir Tool fonksiyonunun var olup olmadığını belirler.
oyuncufare işaretçisi aracın üzerine geldiğinde gösterilen mesajı kontrol eder.
Özellikler
oyuncusırt çantasında bir araç için gösterilen dokunma simgesi.
Özellikler
Aktif durum yayınıyla deneyimler için modeldeki ayrıntı seviyesini ayarlar.Sets the level of detail on the model for experiences with instance streaming enabled.
Instans yayını etkinleştirildiğinde model yayın davranışını Models kontrol eder.
Birincil parçası Model , veya nil eğer açıkça belirtilmediyse.
Modelin etrafındaki pivot etrafında ölçeklendirilmesi için yalnızca editör tarafından kullanılan özellik. Bu özelliği ayarlamak, ölçeğin sanki Model/ScaleTo çağrılmış gibi hareket edeceğini değiştirecektir.
Hangi noktada bir Model döndürme noktasının bulunduğunu belirler bulunmuyor ve bunun bir set Model.PrimaryPart içerdiği yer.
Özellikler
Yöntemler
Şuradan alınan Yöntemler: ModelYöntemler
Bu modeli belirtilen oyuncu için kalıcı olarak ayarlar. ModelStreamingMode eklemelerin sonucunda davranışın değiştirilmesi için değiştirilmesi gerekirse PersistentPerPlayer olarak ayarlanmalıdır.
Bir Model'in tüm parçalarını içeren bir hacmin açıklamasını döndürür.
'nin tümünü içeren en küçük sınırlayıcı kutunun boyutunu döndürür, eğer ayarlanırsa ile uyumlu olur.
Bu model nesnesi için kalıcı olan tüm Player nesnelerini döndürür.Davranış, bu yöntemin bir Script veya bir LocalScript 'dan çağrılıp çağrılmadığına bağlı olarak değişir.
Yeni oluşturulan modeller için varsayılan 1'e döner ve Model/ScaleTo aracılığıyla ölçeklendirildiğinde değişecektir.
PrimaryPart ı verilen pozisyona taşır. Birincil bir parça belirtilmediyse, modelin kök parçası kullanılacaktır.
Bu modeli belirtilen oyuncu için artık kalıcı olarak yapmaz. davranışın kaldırma sonucu değiştirilmesi için değiştirilmesi gerektiğinde değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiştirilmesi için değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin değiçin deçin değiçin değiçin değin değin değiçin değin değin değiçin değin değin değin değiçin değin değin değiçin değin değin değiçin değin değin değin değiçin değin değin değiçin değin değin değiçin değin değin değin değiçin değin değin değiçin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değin değ
Modelin ölçek faktörünü ayarlar, böylece tüm alt örneklerin boyutlandırma ve konumunu ayarlar ve ölçek faktörü 1 olduğunda ilk boyutları ve konumları ile ilgili bu ölçek faktörüne sahip olurlar.
Verilen Model ofsetiyle bir Vector3 değiştirir, modelin yönünü koruyarak.Yeni pozisyonda zaten başka bir BasePart veya Terrain varsa, Model o nesneyi üzerine geçecektir.
Yöntemler
Bir PVInstance 'nin merkezini alır.
Dönüştürür PVInstance tüm altındaki PVInstances ile birlikte pivotun şimdi belirtilen CFrame 'de yer aldığını, böylece dönüşüm aşağıdaki gibi gerçekleşir:
Olaylar
Araç takılıyken oyuncu tıkladığında ateş eder.
Araç donatıldığında ve etkinleştirildiğinde oyuncu tıkladığında ateş eder.
Araç donatıldığında ateş eder.
Araç çıkarıldığında ateş eder.
Özellikler
CanBeDropped
Enabled
Kod Örnekleri
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
Kod Örnekleri
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) -- Kahverengi
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)
GripForward
Kod Örnekleri
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) -- Kahverengi
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)
GripPos
Kod Örnekleri
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) -- Kahverengi
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)
GripRight
Kod Örnekleri
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) -- Kahverengi
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)
GripUp
Kod Örnekleri
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) -- Kahverengi
tool.Activated:Connect(function()
print(tool.Grip)
print(tool.GripUp)
print(tool.GripRight)
print(tool.GripForward)
print(tool.GripPos)
end)
ManualActivationOnly
Kod Örnekleri
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
ToolTip
Yöntemler
Activate
Dönüşler
Kod Örnekleri
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
Dönüşler
Kod Örnekleri
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)
Olaylar
Activated
Deactivated
Equipped
Parametreler
Kod Örnekleri
local Tool = script.Parent
local function onEquipped(_mouse)
print("The tool was equipped")
end
Tool.Equipped:Connect(onEquipped)