If ifadeleri, kodu çalıştırmadan önce doğru olması gereken birden fazla gereksinime sahip olabilir. and anahtar kelimesi, ifadeleri birleştirmenizi sağlar. Aşağıdaki kod, önce iki artı ikinin altı olup olmadığını değerlendirir ve sonra dört ile altı eşit olmadığı durumunu kontrol eder. İki ifade de doğruysa, kod çalışır.
-- çalışmazif 2 + 2 == 6 and 4 ~= 6 thenprint("Her iki ifade de doğru")end-- çalışırif 4 + 2 == 6 and 4 ~= 6 thenprint("Her iki ifade de doğru")end
Bir güçlendirme oluşturma
Güçlendirmeler, oyunculara uçma, görünmezlik veya hız gibi özel yetenekler veren deneyim içi öğelerdir. Bu güçlendirme, güçlendirme her dokunduğunda oyuncunun yürüyüş hızını artıracaktır. Sürekli uygulanan güçlendirmeler, oyuncunun çok hızlı gitmesine neden olabilir, bu yüzden and üst yürüyüş hızı sınırını kontrol etmek için kullanılacaktır.
Güçlendirmeyi ayarlama
Bu kodu basit bir parça veya bir model ile kullanın, örneğin bir kristal, madeni para veya parlayan bir neon küre.
Powerup adıyla yeni bir parça oluşturun ve WalkSpeedManager adlı bir script ekleyin.
speedBoost adında bir değişken tanımlayın ve script'in ana nesnesini atayın.
-- dokunulduğunda geçici bir hız artırımı sağlarlocal speedBoost = script.ParentonTouch adında bir fonksiyon oluşturun ve bunu ana nesnenin Touched olayına bağlayın. Daha sonra oyun test edin ve yaptıklarınızı kontrol edin.
local speedBoost = script.Parentlocal function onTouch(otherPart)print("Bir şey speedBoost'a dokundu")endspeedBoost.Touched:Connect(onTouch)WalkSpeed özelliği, Humanoid nesnelerinde bulunur. Bir tuzak parçası oluştururken kullanılan aynı kalıbı kullanarak Humanoid nesnelerini kontrol eden bir koşul oluşturun.
Humanoid parçalarını ararlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenprint("Bir Humanoid bulundu")endend
Oyuncuları hızlandırma
Hız artırımı, hız artırımı dokunulduğunda avatarların daha hızlı yürümesini sağlayacak. Bu çok, çok hızlı hale gelecektir. and anahtar kelimesi, oyuncuların çok hızlı gitmemesini sağlamak için hız artırımı yalnızca oyuncunun belirli bir hızın altında olması durumunda etkinleştirilecektir.
Bir Humanoid bulunduğunda, mevcut WalkSpeed değerini alın ve üzerine 10 ekleyin. Oyun test edin ve avatarınız hız artırımına her dokunduğunda daha hızlı gidecektir.
Mevcut WalkSpeed'i artırırlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenhumanoid.WalkSpeed += 10endendspeedBoost.Touched:Connect(onTouch)If ifadesinde, mevcut WalkSpeed değerinin 50'den az olduğu ikinci bir koşul eklemek için and anahtar kelimesini kullanın. Artırımı ekledikten sonra, en yüksek WalkSpeed değeri 60 olacaktır.
Mevcut WalkSpeed'in 50 veya daha az olup olmadığını kontrol ederif humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10end
Hız artırımını ince ayar yapma
OnTouch, hız artırımı her dokunulduğunda çağrılır. Her adım veya en hafif zıplama, Touched olayını tetikler ve bağlı fonksiyonu çağırır. Parçanın özelliği CanTouch, Touched olayının ateşlenmesini engelleyebilir. CanTouch'dan faydalanarak, hız artırımı etkinleştirildikten sonra bir saniye boyunca kapalı tutun.
Artırımı uyguladıktan sonra, parçanın CanTouch özelliğini false olarak ayarlayın. Oyun test edin ve artırmanın yalnızca bir kez uygulanmasını sağlayın.
Hız artırımını devre dışı bırakırlocal speedBoost = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10speedBoost.CanTouch = falseendendspeedBoost.Touched:Connect(onTouch)task.wait(1) kullanarak script'i bir saniye boyunca duraklatın, ardından CanTouch'u true olarak ayarlayın. Oyun test edin ve hız artırımının bir saniye sonra tekrar uygulanabilir olmasını sağlayın.
Tamamlanmış scriptlocal speedBoost = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10speedBoost.CanTouch = falsetask.wait(1)speedBoost.CanTouch = trueendendspeedBoost.Touched:Connect(onTouch)Tamamlanmış script içerisindeki değerlerle oynayın. WalkSpeed 100'e kadar çıkabilir. Varsayılan WalkSpeed değeri 16'dır.
Özet
and anahtar kelimesi, bir değer 0'dan büyük ve 100'den küçük gibi bir kod parçasını çalıştırmadan önce birden fazla koşul gerektirmek için kullanılabilir. Veya bir Humanoid mevcutsa ve WalkSpeed'i 50 veya daha az ise.