Roblox Studio'da yazdığım kodun neresinde hata var?

Ajan1

Hectopat
Katılım
18 Şubat 2021
Mesajlar
209
Daha fazla  
Cinsiyet
Erkek
Merhabalar öncelikle Roblox'ta 1 den 100e gitmesi için kod oluşturdum ve;
startergui\screenguı\textlabel\localscrıpt içine bu kodu yerleştirdim
Kod:
local countdownText = script.Parent

local startNumber = 1
local endNumber = 100

local function updateCounter()
    for i = startNumber, endNumber do
        countdownText.Text = tostring(i)
        wait(1)
    end
    countdownText.Text = "Sayaç Tamamlandı!"
end

updateCounter()

sayaç gayet iyi çalışıyor fakat sayaç tamamlandığında karakterin ölmesini istedim vede bunun için
serverscrıptservıce\scrıpt içine

function killCharacter(character)
    local humanoid = character:FindFirstChild("Humanoid")
    if humanoid then
        humanoid.Health = 0
    end
end

game.Players.PlayerAdded:Connect(function(player)
    player.CharacterAdded:Connect(function(character)
        character:WaitForChild("Humanoid").Died:Connect(function()
            killCharacter(character)
        end)
    end)
end)

Koydum fakat sayaç bittiğinde karakter ölmüyor neyi yanlış yaptım?
 
Son düzenleyen: Moderatör:
Hocam böyle dedi arkadaş:
İlk olarak, sayaç tamamlandığında karakterin ölmesini istiyorsunuz ancak mevcut kodunuzda bu işlevsellik entegre edilmedi. İkincisi, `updateCounter` fonksiyonunuz sayaç güncellendikten sonra bir bekleme süresi eklemiyor, bu yüzden sayaç hızlıca 1'den 100'e geçer.

Aşağıda düzeltilmiş kodları bulabilirsiniz:

1. **screengui > TextLabel > LocalScript** (Sayaç Kodu):
```lua
local countdownText = script.Parent

local startNumber = 1
local endNumber = 100

local function updateCounter()
for i = startNumber, endNumber do
countdownText.Text = tostring(i)
wait(1) -- Her sayıyı gösterdikten sonra 1 saniye bekle
end
countdownText.Text = "Sayaç Tamamlandı!"

local player = game.Players.LocalPlayer
local character = player.Character
if character then
local humanoid = character:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0 -- Karakteri öldür
end
end
end

updateCounter()
```

2. **ServerScriptService > Script** (Karakterin Ölmesi İçin):
```lua
function killCharacter(character)
local humanoid = character:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end

game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
character:WaitForChild("Humanoid").Died:Connect(function()
killCharacter(character)
end)
end)
end)
```

Bu düzeltilmiş kod, sayaç tamamlandığında karakterin ölmesini sağlamalıdır. Sayaç güncellendikçe her bir adımdan sonra 1 saniye beklenir ve sayılar gösterilir. Sayaç tamamlandığında, yerel oyuncunun karakteri alınarak "Humanoid" bileşeni ölü olarak işaretlenir ve karakter ölür.
 

Yeni konular

Geri
Yukarı