Bulundu Büyü ve isim kontrolu

  • Konuyu Başlatan Konuyu Başlatan xRanche
  • Başlangıç tarihi Başlangıç tarihi
  • Görüntüleme 161
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

xRanche

Fırında Isıttığım İlk Taş
Katılım
2 Ağustos 2022
Mesajlar
76
Elmaslar
21
Puan
4.020
Konum
Samsun
Minecraft
isa_destroy

Discord:

i5araxzq

Dostlar şimdi oyuncudan bi eşya silen skript istiyorumda olmuuor mesrla eşya ismi "&aDeneme" ise ve bu eşyada unbreaking 1 buyusu varsa oyuncudam silsin
 
Dostlar şimdi oyuncudan bi eşya silen skript istiyorumda olmuuor mesrla eşya ismi "&aDeneme" ise ve bu eşyada unbreaking 1 buyusu varsa oyuncudam silsin
Böyle bir skriptin sunucuyu aşırı yoracağını düşünüyorum. Her item için geçerli bir kural ise düşünsene oyunda 100 oyuncunun aynı anda envanterinde yüzlerce şya bulunuyor skript sürekli bunları kontrol etse sunucu kafayı yer. Dediğin böyle bir şey değilse biraz daha detay verebilir misin?
 
Şimdi şöyle ben direk y7kseltme için istedim sizde haklisiniz ama plugin bulamadim olay bu mesrla 2 kasa anahtari vercek 100k para vercek ve %50 şans ile mesela 1m para alca örnek hangi plugin bu
 
H
Şimdi şöyle ben direk y7kseltme için istedim sizde haklisiniz ama plugin bulamadim olay bu mesrla 2 kasa anahtari vercek 100k para vercek ve %50 şans ile mesela 1m para alca örnek hangi plugin bu
He bu tarz istiyorsan sorun yok yarın bununla ilgili bir script hazırlamaya çalşırım sana

Bir komut olacak o komutı girdiğinde envanterinde bulunan 2 eşyayı ve 100 k parayı alcak bunlardan herhangi biri eksikse komut gerekli eşyalar eksik diyecek eğer var ise ödül olarak 1m vercek doğru mu
 
böyle birşey yaptım işini görür mü hocam görürse eğer hata alırsan paylaş benimle düzelteyim

Özet Mantık


Skript her 5 saniyede bir:


  1. Sunucudaki tüm oyuncuları dolaşır
  2. Her oyuncunun envanterini kontrol eder
  3. Eğer bir eşya:
    • İsmi "&aDeneme"
    • Üzerinde Unbreaking 1 büyüsü
      içeriyorsa → anında silinir

Tamamen otomatik, sessiz ve sürekli çalışan bir kontrol sistemidir.


JavaScript:
every 5 seconds:
    loop all players:
        set {_p} to loop-player
        loop all items in {_p}'s inventory:
            if loop-item is not air:
                if name of loop-item is "&aDeneme":
                    if loop-item is enchanted with unbreaking 1:
                        remove loop-item from {_p}'s inventory
                        send "&cÖzel eşyaların (&aDeneme &7+ &fUnbreaking I&c) envanterinden kaldırıldı!" to {_p}
 
böyle birşey yaptım işini görür mü hocam görürse eğer hata alırsan paylaş benimle düzelteyim

Özet Mantık


Skript her 5 saniyede bir:


  1. Sunucudaki tüm oyuncuları dolaşır
  2. Her oyuncunun envanterini kontrol eder
  3. Eğer bir eşya:
    • İsmi "&aDeneme"
    • Üzerinde Unbreaking 1 büyüsü
      içeriyorsa → anında silinir

Tamamen otomatik, sessiz ve sürekli çalışan bir kontrol sistemidir.


JavaScript:
every 5 seconds:
    loop all players:
        set {_p} to loop-player
        loop all items in {_p}'s inventory:
            if loop-item is not air:
                if name of loop-item is "&aDeneme":
                    if loop-item is enchanted with unbreaking 1:
                        remove loop-item from {_p}'s inventory
                        send "&cÖzel eşyaların (&aDeneme &7+ &fUnbreaking I&c) envanterinden kaldırıldı!" to {_p}
Elinize sağlık deneyip haber edicem bide şey nası yapabiliriz skriptte ben gerekli miktar için bi yer yaptıydım mesela envanterdeki (toplam) sayısı > (gerekli) den büyükse gereklide yazan sayı kadar envanterden silicek
 
Elinize sağlık deneyip haber edicem bide şey nası yapabiliriz skriptte ben gerekli miktar için bi yer yaptıydım mesela envanterdeki (toplam) sayısı > (gerekli) den büyükse gereklide yazan sayı kadar envanterden silicek
envanterdeki_miktar >= gerekli_miktar
→ Bu durumda envanterden gerekli_miktar kadar düş.
  • Eğer küçükse → işlem yapma / uyarı ver

    yanlış mı anladım bunu mu demeek istediniz
 
envanterdeki_miktar >= gerekli_miktar
→ Bu durumda envanterden gerekli_miktar kadar düş.
  • Eğer küçükse → işlem yapma / uyarı ver

    yanlış mı anladım bunu mu demeek istediniz
evet bu arada skrıptte gerekli miktar b öyle {_m_t1}
ornek verıyorum eşyayı kontrol etcek ya her 1 adeti için {_msayi} ya 1 eklicek ve sonra eğer
{_msayi} {_m_t1} den büyük olursa onaylasın
örnek
if amount of {_anahtar_normal} in player's inventory < {_m_t2}:
ama burda sadecce isim ile bkaıyor ben enchantıda b aksın istiyorum
 
set {_say1} to 0
loop items in player's inventory:
if loop-item is set:
if name of loop-item is "&x&F&1&F&F&0&0&lɢᴜɴʟᴜᴋ ᴋᴀsᴀ ᴀɴᴀʜᴛᴀʀı":
if loop-item is enchanted with unbreaking 1:
add amount of loop-item to {_say1}

beyler son durum bu calisiyor ama surasi hata veriyo hicbi yapay zeka dzenleyemedi
add amount of loop-item to {_say1}
 
Moderatör tarafından düzenlendi:
Merhabalar,


JavaScript:
every 5 seconds:
    loop all players:
        set {_p} to loop-player
        
        set {_gerekli_miktar} to 3

        # Oyuncunun envanterindeki özel itemları say
        set {_envanterdeki_miktar} to 0

        loop all items in {_p}'s inventory:
            if loop-item is not air:
                if name of loop-item is "&aDeneme":
                    if loop-item is enchanted with unbreaking 1:
                        add amount of loop-item to {_envanterdeki_miktar}

        # YETERLİ MİKTAR VARSA → ENVANTERDEN SİL
        if {_envanterdeki_miktar} >= {_gerekli_miktar}:
            set {_kalan} to {_gerekli_miktar}

            # Tek tek silme işlemi
            loop all items in {_p}'s inventory:
                if {_kalan} <= 0:
                    stop

                if loop-item is not air:
                    if name of loop-item is "&aDeneme":
                        if loop-item is enchanted with unbreaking 1:

                            if amount of loop-item <= {_kalan}:
                                remove loop-item from {_p}'s inventory
                                subtract amount of loop-item from {_kalan}
                            else:
                                remove {_kalan} of loop-item from {_p}'s inventory
                                set {_kalan} to 0

            send "&aİşlem başarılı! &7Envanterinden gerekli özel eşyalar silindi." to {_p}

        # YETERLİ YOKSA UYARI
        else:
            send "&cBu işlem için &f%{_gerekli_miktar}%x &aDeneme &7(Unbreaking I) &clazım!" to {_p}
            send "&7Sende sadece &f%{_envanterdeki_miktar}%x &7var." to {_p}

deneyip bilgi verir misin
 
JavaScript:
let envanterAdet = userData.envanter[item];   // Envanterdeki toplam
let gerekliAdet = craftData[item].gerekli;    // Gerekli miktar

if (envanterAdet >= gerekliAdet) {
    userData.envanter[item] -= gerekliAdet;

    console.log(`${gerekliAdet} adet ${item} envanterden silindi.`);
} else {
    console.log(`Yetersiz malzeme! Envanterde: ${envanterAdet}, Gereken: ${gerekliAdet}`);
}


bunu deneyin bi hocam
 
Merhabalar,


JavaScript:
every 5 seconds:
    loop all players:
        set {_p} to loop-player
       
        set {_gerekli_miktar} to 3

        # Oyuncunun envanterindeki özel itemları say
        set {_envanterdeki_miktar} to 0

        loop all items in {_p}'s inventory:
            if loop-item is not air:
                if name of loop-item is "&aDeneme":
                    if loop-item is enchanted with unbreaking 1:
                        add amount of loop-item to {_envanterdeki_miktar}

        # YETERLİ MİKTAR VARSA → ENVANTERDEN SİL
        if {_envanterdeki_miktar} >= {_gerekli_miktar}:
            set {_kalan} to {_gerekli_miktar}

            # Tek tek silme işlemi
            loop all items in {_p}'s inventory:
                if {_kalan} <= 0:
                    stop

                if loop-item is not air:
                    if name of loop-item is "&aDeneme":
                        if loop-item is enchanted with unbreaking 1:

                            if amount of loop-item <= {_kalan}:
                                remove loop-item from {_p}'s inventory
                                subtract amount of loop-item from {_kalan}
                            else:
                                remove {_kalan} of loop-item from {_p}'s inventory
                                set {_kalan} to 0

            send "&aİşlem başarılı! &7Envanterinden gerekli özel eşyalar silindi." to {_p}

        # YETERLİ YOKSA UYARI
        else:
            send "&cBu işlem için &f%{_gerekli_miktar}%x &aDeneme &7(Unbreaking I) &clazım!" to {_p}
            send "&7Sende sadece &f%{_envanterdeki_miktar}%x &7var." to {_p}

deneyip bilgi verir misin
aslında bu tarz skript yaptım calıstı ama sorun en biliyormsuun mesela gerekli 2 ya oyuncu envanterinde 1 stack olsa bile yok diyor ama 2 farklı slotta varsa kabul ediyor

add amount loop item bu kısımdan kaynaklı hep hata veriyo bu kısım çalışsa olay çözülcekte

bu arada skript sürümüm 2.9.5 tüm addonlarda yüklü
 
JavaScript:
every 5 seconds:
    loop all players:
        set {_p} to loop-player

        # Kaç tane lazım?
        set {_gerekli_miktar} to 2

        # Toplam miktarı buraya
        set {_envanterdeki_miktar} to 0

        # 1) ÖNCE TOPLAM KAÇ TANE VAR ONU HESAPLA
        loop all items in {_p}'s inventory:
            if loop-item is not air:
                if name of loop-item is "&aDeneme":
                    if loop-item is enchanted with unbreaking 1:
                        add amount of loop-item to {_envanterdeki_miktar}

        # 2) YETERLİYSE SİLME İŞLEMİNE GEÇ
        if {_envanterdeki_miktar} >= {_gerekli_miktar}:
            set {_kalan} to {_gerekli_miktar}

            loop all items in {_p}'s inventory:
                if {_kalan} <= 0:
                    stop

                if loop-item is not air:
                    if name of loop-item is "&aDeneme":
                        if loop-item is enchanted with unbreaking 1:

                            # Bu slottaki item sayısı, kalan gereksinimden AZ veya EŞİTSE:
                            if amount of loop-item <= {_kalan}:
                                subtract amount of loop-item from {_kalan}
                                remove loop-item from {_p}'s inventory

                            # Bu slottaki item sayısı, kalan gereksinimden FAZLAYSA:
                            else:
                                remove {_kalan} of loop-item from {_p}'s inventory
                                set {_kalan} to 0

            send "&aİşlem başarılı! &7Envanterinden &f%{_gerekli_miktar}%x &aDeneme &7(Unbreaking I) &asilindi." to {_p}

        else:
            send "&cBu işlem için &f%{_gerekli_miktar}%x &aDeneme &7(Unbreaking I) &clazım!" to {_p}
            send "&7Sende sadece &f%{_envanterdeki_miktar}%x &7var." to {_p}

Bunu dene bi doğru anlafım sanırım
 
Son düzenleme:
umarım bu skript işine yarar


JavaScript:
every 5 seconds:
    loop all players:
        set {_p} to loop-player
      
        set {_gerekli_miktar} to 3

        # Oyuncunun envanterindeki özel itemları say
        set {_envanterdeki_miktar} to 0

        loop all items in {_p}'s inventory:
            if loop-item is not air:
                if name of loop-item is "&aDeneme":
                    if loop-item is enchanted with unbreaking 1:
                        add item amount of loop-item to {_envanterdeki_miktar} # <--- BURASI

        
        if {_envanterdeki_miktar} >= {_gerekli_miktar}:
            set {_kalan} to {_gerekli_miktar}

            
            loop all items in {_p}'s inventory:
                if {_kalan} <= 0:
                    stop

                if loop-item is not air:
                    if name of loop-item is "&aDeneme":
                        if loop-item is enchanted with unbreaking 1:

                            if item amount of loop-item <= {_kalan}:
                                remove loop-item from {_p}'s inventory
                                subtract item amount of loop-item from {_kalan}
                            else:
                                remove {_kalan} of loop-item from {_p}'s inventory
                                set {_kalan} to 0

            send "&aİşlem başarılı! &7Envanterinden gerekli özel eşyalar silindi." to {_p}

        else:
            send "&cBu işlem için &f%{_gerekli_miktar}%x &aDeneme &7(Unbreaking I) &clazım!" to {_p}
            send "&7Sende sadece &f%{_envanterdeki_miktar}%x &7var." to {_p}
 
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