Bulundu Oyuncu Belirli dünyaya girince ona koruma verme

  • Konuyu Başlatan Konuyu Başlatan Erenslslsl
  • Başlangıç tarihi Başlangıç tarihi
  • Görüntüleme 1.184
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
EN son verdiğin skripti yaptım oluyor demi reloadda attim
Bak şimdi son attğım kodu al .sk dosyana yapıştır. Sonra oyuna gelip /sk reload <dosyaismi> yap.

Ondan sonra lobiye git. /boxpvpprotectionresetfirstjoin komutunu çalıştır. Daha sonra yine testini yap, dünyaya gir koruma var mı diye kontrol et.
 
kral /boxpvpprotectionresetfirstjoin bunu yazdım hiç bişi demedi sonra boxpvp dünyasına gittim 2 saatlik koruman aktif gibi bişi demedi olmamışmı yani ?
 
kral /boxpvpprotectionresetfirstjoin bunu yazdım hiç bişi demedi sonra boxpvp dünyasına gittim 2 saatlik koruman aktif gibi bişi demedi olmamışmı yani ?
5-10 dakikaya geri dönüş yapacağım.
 
kral /boxpvpprotectionresetfirstjoin bunu yazdım hiç bişi demedi sonra boxpvp dünyasına gittim 2 saatlik koruman aktif gibi bişi demedi olmamışmı yani ?
Kodda birden fazla problem varmış. Kendi sunucumda en güzel hale getirip geri paylaşırım. Biraz bekleyebilirsen çok iyi olur :)
 
kral /boxpvpprotectionresetfirstjoin bunu yazdım hiç bişi demedi sonra boxpvp dünyasına gittim 2 saatlik koruman aktif gibi bişi demedi olmamışmı yani ?
Kendi testimde herhangi bir problem göremedim. Bir tek oyundan çıkıp girmen gerekiyor döngünün başlaması için. Kodu yenileyip tekrar o komutu girdikten sonra çık gir yap. Sonra tekrar boxpvp dünyasına git. Bu arada dünyanın doğru olduğundan emin ol. Eğer ki işe yararsa bir kaç geliştirme daha yapacağım.

Bir de 3 saniye bekleyip veriyor ondan kafan karışmış olabilir.

Aynı zamanda 720 dakika yanlış olmuş. 2 saat için 120 dakika girsen yeter.
 
ben /korumakapat komudunu denedim yazılar falan cıktı guzel olmuş en baştan korumamın gelmesi için nabıcağım
 
ben /korumakapat komudunu denedim yazılar falan cıktı guzel olmuş en baştan korumamın gelmesi için nabıcağım
Korumanın gelmesi için attığım komutu girip tekrar girmen gerekiyor dünyaya. Onun dışında başka bir yolu yok. Normalde /korumaaç getirecektim fakat gerek yok dedin o yüzden koymadım.


Bir de sunucudan ayrılıp tekrar girmeyi unutma yoksa sürede eksilme gerçekleşmez.
 
/boxpvpprotectionresetfirstjoin BU DEMİ attiğin komut bunu yazıcam sonra nabcam
 
senin verdiiğin skript kodunu silip tekrardan yapıp reload atsak olmazmı ?
 
/boxpvpprotectionresetfirstjoin BU DEMİ attiğin komut bunu yazıcam sonra nabcam
Aynen, bu komutu girdikten sonra:

1. Lobi dünyasına geri dön.
2. Sunucudan ayrıl & geri gir.
3. boxpvp dünyasına gir ve test et.
 
senin verdiiğin skript kodunu silip tekrardan yapıp reload atsak olmazmı ?
Olur. Koddaki bazı problemleri düzelttim. Aşağıdakini koy.


Python:
options:
    protectionDuration: 120 # dakika cinsinden
    worldName: "boxpvpdünyaismi" # dünya ismi

    protectionEndedMessage: "&cKoruman bitti! Artık diğer oyuncular sana saldırabilir."



on world change:
    if event-world is {@worldName}:
        if {boxpvp.playerProtectionLeft::%player%} isn't set:
            set {boxpvp.playerProtectionLeft::%player%} to 0

        if {boxpvp.firstJoinProtectionGiven::%player%} isn't set:
            set {boxpvp.firstJoinProtectionGiven::%player%} to true

            set {boxpvp.protection.protecting::%player%} to true
            set {boxpvp.playerProtectionLeft::%player%} to {@protectionDuration} * 60

            wait 0.5 second

            set {_t} to {@protectionDuration} / 60

            send "&a%{_t}% saat boyunca PvP'lere karşı korunacaksın!" to player


on damage:
    if victim is a player:
        if attacker is a player:
            if world of player is {@worldName}:
                if {boxpvp.protection.protecting::%attacker%} is true:
                    cancel event
                    
                    send "&cPvP koruman olduğu için saldırı yapamazsın!" to attacker
                    play sound "minecraft:item.shield.break" to attacker


                else if {boxpvp.protection.protecting::%victim%} is true:
                    cancel event
                    
                    send "&cBu oyuncu saldırılara karşı korunuyor!" to attacker
                    play sound "minecraft:item.shield.break" to attacker


on join:
    protectionHandler(player)



command /korumakapat:
    trigger:
        if {boxpvp.protection.protecting::%player%} is true:
            set {boxpvp.protection.protecting::%player%} to false
            send "&cKoruman başarıyla devre dışı bırakıldı!" to player
            play sound "entity.player.levelup" to player
        else:
            send "&cKoruman zaten aktif değil!" to player
            play sound "block.note_block.bass" at pitch 0.5 to player


command /boxpvpprotectionresetfirstjoin:
    permission: op
    permission message: &cBu komuta iznin yok.
    trigger:
        delete {boxpvp.firstJoinProtectionGiven::%player%}




local function protectionHandler(p: player):
    while {_p} is online:
        while {boxpvp.protection.protecting::%{_p}%} is true:
            if {boxpvp.playerProtectionLeft::%{_p}%} > 0:
                remove 1 from {boxpvp.playerProtectionLeft::%{_p}%}

            else:
                set {boxpvp.protection.protecting::%{_p}%} to false
                send {@protectionEndedMessage} to {_p}

            wait a second

        wait 10 second # lag çıkmasın diye 10, bunu düşürebilirsin istersen.
 
tamamdır 2 yöntemide denicem hemen
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst