Çözüldü loop all players yerine ne kullanabilirim?

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

SansarReisOfficial

Tasarımcı
Katılım
22 Şubat 2019
Mesajlar
1.063
Elmaslar
415
Puan
15.785
Yaş
27
Konum
Dünya
Minecraft
CrazySansar

Discord:

Corrsy#7006

Kod:
every 2 minutes:
    loop all players:
        if loop-player's world is "edit":
            set {kod} to a random integer between 1 and 9999
            execute console command "tm msg %loop-player% &f/ᴋᴏᴅ %{kod}%"
            execute console command "tm amsg %loop-player% &710 sᴀɴɪʏᴇ ɪᴄᴇʀɪsɪɴᴅᴇ ᴋᴏᴅᴜ ɢɪʀᴍᴇɴɪᴢ ɢᴇʀᴇᴋɪʏᴏʀ!"
            add "%{kod}%" to {codes::*}
            wait 2 seconds
            execute console command "tm msg %loop-player% &f/ᴋᴏᴅ %{kod}%"
            execute console command "tm amsg %loop-player% &710 sᴀɴɪʏᴇ ɪᴄᴇʀɪsɪɴᴅᴇ ᴋᴏᴅᴜ ɢɪʀᴍᴇɴɪᴢ ɢᴇʀᴇᴋɪʏᴏʀ!"
            wait 8 seconds
            if contains({codes::*}, "%{kod}%") is true:
                execute loop-player command "spawn"
                remove {kod} from {codes::*}
                execute console command "tm amsg %loop-player% &cᴅᴏɢʀᴜʟᴀᴍᴀʏɪ ɢᴇᴄᴇᴍᴇᴅɪɢɪɴɪᴢ ɪᴄɪɴ sᴘᴀᴡɴᴀ ɢᴏɴᴅᴇʀɪʟᴅɪɴɪᴢ!"
kodu okurken anlamışsınızdır neye yaradığını zaten. burda loop all players yerine ne kullanabilirim, sunucu için sorun yaşatmasını istemiyorum zaten çok geç loopluyor. ek olarak bunu skript in variables.csv sine kaydediyor işlem doğrulandıktan sonra ya da doğrulanmadıktan sonra (tamamen işlem bittikten sonra) variables.csv den silmesini istiyorum yardımcı olabilir misiniz?
 
Selam,
"loop all players" sunucu için bir sorun yaratmaz, bu geçtiğimiz senelerde Skript yazmayı bilmeyen 3-5 kişi tarafından uydurulmuş bir şey.

Skript ile daha zor looplama işlemleri yaparken bir sorun olmuyor da, sunucundaki 200 oyuncuyu looplarken mi bir sorun olacak?

Ki zaten loopladığın her oyuncu için bir işlem de yaptırmıyorsun, dünyasını kontrol ettiriyorsun, aynı anda 50 oyuncu editte bulunuyor desen, bu yine senin sunucunu yorabilecek bir işlem gücü kaplamayacaktır.

Bunların yanısıra,
set {codes::%loop-player%} to {_kod}
if {codes::%loop-player%} is set:
delete {codes::%loop-player%}

Şeklinde yapmanı tavsiye ederim.
 
Selam,
"loop all players" sunucu için bir sorun yaratmaz, bu geçtiğimiz senelerde Skript yazmayı bilmeyen 3-5 kişi tarafından uydurulmuş bir şey.

Skript ile daha zor looplama işlemleri yaparken bir sorun olmuyor da, sunucundaki 200 oyuncuyu looplarken mi bir sorun olacak?

Ki zaten loopladığın her oyuncu için bir işlem de yaptırmıyorsun, dünyasını kontrol ettiriyorsun, aynı anda 50 oyuncu editte bulunuyor desen, bu yine senin sunucunu yorabilecek bir işlem gücü kaplamayacaktır.

Bunların yanısıra,
set {codes::%loop-player%} to {_kod}
if {codes::%loop-player%} is set:
delete {codes::%loop-player%}

Şeklinde yapmanı tavsiye ederim.
hocam bu loop olayı çok yavaş çalışıyor ona nasıl bir çözüm bulabilirim, kodu silmesi için böyle bir kod yapmıştım;


Kod:
command /kod [<text>]:
    trigger:
        if contains({codes::*}, arg-1) is true:
            remove arg-1 from {codes::*}
            execute console command "tm amsg %player% &aᴋᴏᴅ ʙᴀsᴀʀɪʏʟᴀ ɢɪʀɪʟᴅɪ!"
        else:
            execute console command "tm amsg %player% &cʙᴏʏʟᴇ ʙɪʀ ᴋᴏᴅ ʙᴜʟᴜɴᴀᴍᴀᴅɪ!"
 
hocam bu loop olayı çok yavaş çalışıyor ona nasıl bir çözüm bulabilirim, kodu silmesi için böyle bir kod yapmıştım;


Kod:
command /kod [<text>]:
    trigger:
        if contains({codes::*}, arg-1) is true:
            remove arg-1 from {codes::*}
            execute console command "tm amsg %player% &aᴋᴏᴅ ʙᴀsᴀʀɪʏʟᴀ ɢɪʀɪʟᴅɪ!"
        else:
            execute console command "tm amsg %player% &cʙᴏʏʟᴇ ʙɪʀ ᴋᴏᴅ ʙᴜʟᴜɴᴀᴍᴀᴅɪ!"

Yavaş çalışmıyor,
Edit dünyasında bulunan her bir oyuncu için sen bu kodu 10 saniye bekletiyorsun, dolayısıyla bir sonraki oyuncuya geçmesi 10 saniye gecikiyor, daha "asenkron" bir şekilde yazmış olman gerekiyor.

Bunu dener misin?
Kod:
every 2 minutes:
    loop all players:
        if loop-player's world is "edit":
            kodCheck(player)
            
            
function kodCheck(p: player):
    
    set {_kod} to random integer between 1000 and 9999
    set {kodlar::%{_p}%} to {_kod}
    execute console command "tm msg %{_p}% &f/ᴋᴏᴅ %{_kod}%"
    execute console command "tm amsg %{_p}% &710 sᴀɴɪʏᴇ ɪᴄᴇʀɪsɪɴᴅᴇ ᴋᴏᴅᴜ ɢɪʀᴍᴇɴɪᴢ ɢᴇʀᴇᴋɪʏᴏʀ!"
    wait 2 seconds
    execute console command "tm msg %{_p}% &f/ᴋᴏᴅ %{_kod}%"
    execute console command "tm amsg %{_p}% &710 sᴀɴɪʏᴇ ɪᴄᴇʀɪsɪɴᴅᴇ ᴋᴏᴅᴜ ɢɪʀᴍᴇɴɪᴢ ɢᴇʀᴇᴋɪʏᴏʀ!"
    wait 8 seconds
    if {kodlar::%{_p}%} is set:
        execute {_p} command "spawn"
        delete {kodlar::%{_p}%}
        execute console command "tm amsg %{_p}% &cᴅᴏɢʀᴜʟᴀᴍᴀʏɪ ɢᴇᴄᴇᴍᴇᴅɪɢɪɴɪᴢ ɪᴄɪɴ sᴘᴀᴡɴᴀ ɢᴏɴᴅᴇʀɪʟᴅɪɴɪᴢ!"
        
command /kod [<integer>]:
    trigger:
        arg 1 is set:
            if {kodlar::%player%} is arg 1:
                delete {kodlar::%player%}
                send "başarılı"
            else:
                send "yanlış kod"
        else:
            send "kod gir"
 
Yavaş çalışmıyor,
Edit dünyasında bulunan her bir oyuncu için sen bu kodu 10 saniye bekletiyorsun, dolayısıyla bir sonraki oyuncuya geçmesi 10 saniye gecikiyor, daha "asenkron" bir şekilde yazmış olman gerekiyor.

Bunu dener misin?
Kod:
every 2 minutes:
    loop all players:
        if loop-player's world is "edit":
            kodCheck(player)
           
           
function kodCheck(p: player):
   
    set {_kod} to random integer between 1000 and 9999
    set {kodlar::%{_p}%} to {_kod}
    execute console command "tm msg %{_p}% &f/ᴋᴏᴅ %{_kod}%"
    execute console command "tm amsg %{_p}% &710 sᴀɴɪʏᴇ ɪᴄᴇʀɪsɪɴᴅᴇ ᴋᴏᴅᴜ ɢɪʀᴍᴇɴɪᴢ ɢᴇʀᴇᴋɪʏᴏʀ!"
    wait 2 seconds
    execute console command "tm msg %{_p}% &f/ᴋᴏᴅ %{_kod}%"
    execute console command "tm amsg %{_p}% &710 sᴀɴɪʏᴇ ɪᴄᴇʀɪsɪɴᴅᴇ ᴋᴏᴅᴜ ɢɪʀᴍᴇɴɪᴢ ɢᴇʀᴇᴋɪʏᴏʀ!"
    wait 8 seconds
    if {kodlar::%{_p}%} is set:
        execute {_p} command "spawn"
        delete {kodlar::%{_p}%}
        execute console command "tm amsg %{_p}% &cᴅᴏɢʀᴜʟᴀᴍᴀʏɪ ɢᴇᴄᴇᴍᴇᴅɪɢɪɴɪᴢ ɪᴄɪɴ sᴘᴀᴡɴᴀ ɢᴏɴᴅᴇʀɪʟᴅɪɴɪᴢ!"
       
command /kod [<integer>]:
    trigger:
        arg 1 is set:
            if {kodlar::%player%} is arg 1:
                delete {kodlar::%player%}
                send "başarılı"
            else:
                send "yanlış kod"
        else:
            send "kod gir"
çok teşekkür ederim son olarak

on load:
set {codes::*} to ""

bu kısım kod için doğru mu?
 
Bu sekilde looplamadan edit dunyasinda bulunan butun oyunculari alabilirsin:
JavaScript:
command test:
    trigger:
        send "Su anda edit dunyasindasin" to players where ["%input's world%" = "edit"]
 
Bu sekilde looplamadan edit dunyasinda bulunan butun oyunculari alabilirsin:
JavaScript:
command test:
    trigger:
        send "Su anda edit dunyasindasin" to players where ["%input's world%" = "edit"]
Selam,

Bu kod da teknik olarak arkaplanda looplama işlemi yapıyor ama, ha direkt looplamaktan daha verimli midir onu bilemem tabii.

Bu da güzel bir alternatif yol.
 
Selam,

Bu kod da teknik olarak arkaplanda looplama işlemi yapıyor ama, ha direkt looplamaktan daha verimli midir onu bilemem tabii.

Bu da güzel bir alternatif yol.
Eğer belirli bir grup insanı yönetmek istiyorsanız kullanabilirsiniz, benim belirli özellikleri taşıyan oyuncuları yönetmemde çok işime yarıyordu, örneğin:
Kod:
command para:
    trigger:
        set {_oyuncular::*} to players where ["%input's world%" = "orman"]
        set {_} to 0
        loop {_oyuncular::*}:
            add 1 to {_} if balance of loop-value parsed as player >= 500
        send "Orman dünyasında %{_}% kişinin bakiyesi 500’den yüksek." to player
 
Eğer belirli bir grup insanı yönetmek istiyorsanız kullanabilirsiniz, benim belirli özellikleri taşıyan oyuncuları yönetmemde çok işime yarıyordu, örneğin:
Kod:
command para:
    trigger:
        set {_oyuncular::*} to players where ["%input's world%" = "orman"]
        set {_} to 0
        loop {_oyuncular::*}:
            add 1 to {_} if balance of loop-value parsed as player >= 500
        send "Orman dünyasında %{_}% kişinin bakiyesi 500’den yüksek." to player
Yok yok hayır farkındayım, ancak [%input's world% = orman] tabiri arkaplanda bütün oyuncuların dünyalarını kontrol etmiyor mu? Yani teknik olarak "loop all players: if loop-player's world = orman" ile aynı mantıkta çalışan bir kod değil mi? Onu söylemeye çalışıyordum.
 
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