Tool

Artık kullanılmayanları göster

*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 nesneyi takabilen bir araçtır. Oyuncular için, araçlar bir ekranın altındaki bir Class.Player nesnesine bağ

Masaüstünde, bir sayı tuşuna basılır (1, 2, 3...) bir alet takılır. Takılan aletler Workspace'e BACKSPACE'e basarak bırakılabilir. Bu, aletleri yeniden

Araçlar, kullanıcının girdiğini yakalamak için tek bir yol değildir. Ayrıca ContextActionService ve Class.Tool.Unequipped|Une

Kod Örnekleri

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)

Özet

Özellikler

  • Paralel oku

    Oyuncunun aleti bırakabileceğini kontrol eder.

  • Paralel oku

    Araç kullanılabilir olup olmadığına ilişkin.

  • Paralel oku

    Araçların "Sap" özelliklerini bir CFrame olarak saklar.

  • Gizli
    Çoğaltılmamış
    Paralel oku

    Sarılma matrisinin R02, R12 ve R22 değerlerini temsil eder.

  • Gizli
    Çoğaltılmamış
    Paralel oku

    Aletin kaynak matrisinin pozisyon ofseti.

  • Gizli
    Çoğaltılmamış
    Paralel oku

    Sarılma matrisinin R00, R10 ve R20 değerlerini temsil eder.

  • Gizli
    Çoğaltılmamış
    Paralel oku

    Sarılma matrisinin R01, R11 ve R21 değerlerini temsil eder.

  • ManualActivationOnly özelliği, Tool 'i Tool:Activate() olmadan etkinleştirilebilir olup olmadığını kontrol eder.

  • Paralel oku

    Bir el ile olmadan bir Tool işlevinin işlevini belirler.

  • Paralel oku

    oyuncufareyi sırt çantasındaki aletin üzerine getirdiğinde gösterilen mesajı kontrol eder.

Şuradan alınan Özellikler: BackpackItem
  • TextureId:ContentId
    Paralel oku

    oyuncusırt çantasındaki bir araç için görüntülenen dokunmatik ikon.

Şuradan alınan Özellikler: Model
  • Eklenti Güvenliği
    Paralel oku

    Etkisizleştirilmiş senaryolarla ilgili deneyimler için modeldeki ayrıntı seviyesini ayarlar.

  • İstemci yayınlanma davranışını Models üzerinde kontrol eder.

  • Class.Model veya nil , aksi belirtilmediyse özelliklerinin temel kısmı.

  • Çoğaltılmamış
    Betiklenemez
    Paralel oku

    Modell'in etrafındaki çizgiyi ölçmek için kullanılan sadece modeller için özellik. Bu özelliği ayarlamak, ölçeği Model/ScaleTo çağırdığı gibi hareket ettirecektir.

  • Çoğaltılmamış
    Paralel oku

    Bir Model ın pivot'unun nerede bulunduğunu belirler. Bu, bir Class.Model ın pivot'unun bir seti olmadığını gösterir.

Şuradan alınan Özellikler: PVInstance

Yöntemler

  • Activate():void

    Class.Tool 'in etkinleştirilmesini simüle eder.

  • Deactivate():void

    Class.Tool 'in deaktivasyonunu simüle eder.

Şuradan alınan Yöntemler: Model
  • AddPersistentPlayer(playerInstance : Player):void

    Bu modeli belirli oyuncunun için kalıcı olarak tutmak için ayarlar. Model.ModelStreamingMode eklenen davranışın sonucu olarak PersistentPerPlayer olarak ayarlanmalıdır.

  • Bir Model'in tüm parçalarını içeren bir hacimin açıklamasını iade eder.

  • Class.BasePart|BaseParts tüm Model ile aynıdır. Model.PrimaryPart ile aynıdır.

  • Bu model objesi için persistanslı olan tüm Player nesneleri iade eder. Davranış, bu yöntemin bir Script veya bir LocalScript から çekildiğine bağlı olarak değişir.

  • Yeni oluşturulan modeller için varsayılan modelin kanal ölçeğini iade eder ve Model/ScaleTo aracılığıyla ölçeklenir.

  • MoveTo(position : Vector3):void

    Class.Model.PrimaryPart|PrimaryPartı verilen pozisyona hareket ettirir. Bir ilk parça belirtilmediyse, modelin kök parçası kullanılır.

  • RemovePersistentPlayer(playerInstance : Player):void

    Bu model artık belirli oyuncunun için sürükleyici değil. Model.ModelStreamingMode değerini PersistentPerPlayer olarak ayarlanmalıdır, böylece eylemin kaldırma sonucu olarak değiştirilmesi gerekir.

  • ScaleTo(newScaleFactor : number):void

    Modelin ölçek faktörünü ayarlar, böylece ölçek faktörü 1 olduğunda tüm yok edici Instanstanların boyut ve konumlarının ölçek faktörüyle ilgili olarak kendi başlangıç boyutları ve yerleriyle ölçek faktörüne kadar kendi başına sahip olur.

  • TranslateBy(delta : Vector3):void

    Şekillendiriciyi Model ile bir Vector3 ofseti arttırır, modelin yönünü korur. Eğer bir başka BasePart veya 2> Class.Terrain2> zaten mevcutsa, 5> Class.Model5> ile şekillendiriciyi çakal

Şuradan alınan Yöntemler: PVInstance

Etkinlikler

Özellikler

CanBeDropped

Paralel oku

CanBeDropped özelliği oyuncunun Tool 'ı bırakabileceğini kontrol eder.

Eğer doğruysa, geri alma düğmesine basıldığında araç Workspace ile ebeveyn olacak ve oyuncunun Backpack ile ayrılacaktır. Eğer doğruysa, geri alma düğmesine basılmadığında araç takık kalacaktır.

Enabled

Paralel oku

Etkinleştirilmiş özelliği, Tool 'ın kullanılabilir olup olmadığına ilişkin bir özelliktir. Bu, bir oyuncunun bir araç kullanmasını önlemek istediğinizde yararlıdır, ancak Backpack 'ınızı kaldırmak istemez.

Oyuncuya açık bir true ile ayarlandığında, araç kullanılabilir. Ayarlanmış false ile, araç etkinleştirilmiş ve oyuncu kullanılamaz; bu, araç et

Kod Örnekleri

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

Paralel oku

The Grip özelliği, aletin "grip" özelliklerini tek bir CFrame olarak saklar. Bu özellikler, oyuncunun aleti nasıl tutacağını ve Class.Tool.

Kod Örnekleri

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

Gizli
Çoğaltılmamış
Paralel oku

Bir araçnın bir karakterin elindeki yönünü belirtir. Bu, şu anda R02, R12 ve R22 değerlerini temsil eder. Bu, şu anda 1> Datatype.CFrame1> döndürme matrisindeki çerçevelerin 4> R224> değerlerini temsil eder.

Bir karakterin bir aleti nasıl tutacağını kontrol eden diğer araç özellikleri arasında Tool.GripUp, Tool.GripRight ve Tool.GripPos bulunur. Tüm bu özellikler 2>Class.Tool.Grip2> özelliğinin tek bir <

Kod Örnekleri

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

Gizli
Çoğaltılmamış
Paralel oku

Bu özellik, araç öğesi matrisinin pozisyon ofsetini kontrol eder. Araç karakterinin aleti nasıl tutacağını yerleştirmek için birkaç özellikten biridir.

Bir karakterin bir aleti nasıl tutacağını kontrol eden diğer özellikler arasında Tool.GripUp, Tool.GripRight ve Tool.GripForward bulunur. Tüm bu özellikler 2> Datatype.CFrame2> içindeki tek bir 5>

Kod Örnekleri

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

Gizli
Çoğaltılmamış
Paralel oku

Bir araçnın bir karakterin elindeki yönünü belirtir. Bu, şu anda R00 , R10 ve R20 değerlerini temsil eder. Bu, şu anda 1> Datatype.CFrame1> döndürme matrisindeki çerçevelerin 4> R204> değerlerini temsil eder.

Bir karakterin bir aleti nasıl tutacağını kontrol eden diğer araç özellikleri arasında Tool.GripUp, Tool.GripForward ve Tool.GripPos bulunur. Tüm bu özellikler 2>Class.Tool.Grip2> özelliğinin tek bir <

Kod Örnekleri

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

Gizli
Çoğaltılmamış
Paralel oku

Bir araçnın bir karakterin elindeki yönünü belirtir. Bu, şu anda çalıştığınız çubuğun R01 , R11 ve R21 değerlerini temsil eder. Bu, şu anda çalıştığınız çubuğun rotasyon matrisindeki 2>R22> değerlerine dek kadar

Bir karakterin bir aleti nasıl tutacağını kontrol eden diğer araç özellikleri arasında Tool.GripRight, Tool.GripForward ve Tool.GripPos bulunur. Tüm bu özellikler 2>Class.Tool.Grip2> özelliğinin tek bir <

Kod Örnekleri

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

Paralel oku

ManualActivationOnly özelliği, Tool 'i bir senaryoda Tool:Activate() olarak açık/kapalı olabilir.

Açık olarak ayarlandığında, araç sadece Tool.Activated ile çağrıldığında çalışacaktır. Bu ayrıca Tool:Activate() işlevini susturur.

Alternatif olarak, fare tıklamaları (alet takıldığında) ayrıca Tool.Activated ı da ateş eder.

Kod Örnekleri

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

Paralel oku

Bu özellik, bir Tool işlevinin bir kolu olmadan işlevini belirler.

Bir araç, Handle adındaki bir çocuk parçayı içerirken bir kolu vardır. Çubuk araçlar genellikle kullanıcının kullanımını tutmak için bir nesneyi tutmak için kullanıcıyı donatmasını gerektirir. Çubuk araçların kolu genellikle silah gibi kullanımları için gereklidir.

Arayüzü belirlenmişken true , arayüz sadece bir başlıkla işlevseldir. Arayüz false ile bile işlevseldir.

ToolTip

Paralel oku

ToolTip öğesi, oyuncunun Mouse 'inin üzerinde durduğu Tool ile ilgili mesajı kontrol eder.

Genel olarak, bu öğenin değeri araçların veya kullanımlarının ne olduğunu açıklamalıdır. durum, bir kürek aleti için, AletTip'i şu şekilde ayarlayabilirsiniz:


tool.ToolTip = "Shovel"

veya


tool.ToolTip = "Use to dig"

veya


tool.ToolTip = "Shovel - Use to dig"

Yöntemler

Activate

void

Bu işlev, Tool 'in etkinleştirilmesini simüle eder. Alet bu işlevi çalıştırmak için donanımlı olmalıdır.


Dönüşler

void

Kod Örnekleri

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

Bu işlev, Tool 'nın deaktivasyonunu simüle eder. Alet bu işlevin çalışması için donatılmalıdır.


Dönüşler

void

Kod Örnekleri

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)

Etkinlikler

Activated

Bu olay oyuncu oyunu oynarken Tool takılırken başlar. Oyuncu oyunu tıklaCtrl tuşu basılırsa oyun değil oyunu durdurur.

Bu olay genellikle oyuncu araç kullandığında bir eylem yapmak için kullanılır, örneğin bir roket fırlatıcı silahından bir rokete başlatmak için.

Aşağıdaki kod, bir LocalScript içine yerleştirildiğinde, oyuncunun yerleştirildiği Backpack içinde bir araç oluşturur ve oyuncu oluşturulan araç takıkken "Araç aktifleştirildi" yazıyor.


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

Bu olay oyuncu bir Tool ile tıklamayı serbest bıraktığında başlar. Genellikle oyuncu bir araç kullanmayı bıraktığında eylem yapmak için kullanılır.

Aşağıdaki kod, bir LocalScript içine yerleştirildiğinde, lokal oyuncunun Backpack 'ında bir araç oluşturur ve oyuncu serbest bıraktığında araç "Alet etkisizleştirildi" olarak yazılır.


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

Bu olay oyuncu şu Tool (onu Backpack dışından çıkarır) takınca çıkar.

Bu olayın tersi, Tool.Unequipped, oyuncunun aleti çantasına koyarak ne zaman çantasından çıkaracağını belirlemek için kullanılabilir.

Not et Class.Tool.RequiresHandle kullanılıyor ve hiçbir kullanıcı yoksa Tool.RequiresHandle kullanılıyor.

Parametreler

mouse: Mouse

oyuncufareniz.


Kod Örnekleri

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

Bu olay, bir oyuncu Tool (onu Backpack ) çıkarırken çalışır.

Bu olayın tersi, Tool.Equipped, oyuncunun eşyayı çantasından çıkararak eşyayı kullanmasını belirlemek için kullanılabilir.

Not et Class.Tool.RequiresHandle kullanılıyor ve hiçbir kullanıcı yoksa Tool.RequiresHandle kullanılıyor.