aniltr_
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?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
aniltr_
He bu tarz istiyorsan sorun yok yarın bununla ilgili bir script hazırlamaya çalşırım sanaŞ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
kardınal2121
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}
i5araxzq
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 silicekbö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:
- Sunucudaki tüm oyuncuları dolaşır
- Her oyuncunun envanterini kontrol eder
- 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}
kardınal2121
envanterdeki_miktar >= gerekli_miktarElinize 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
i5araxzq
evet bu arada skrıptte gerekli miktar b öyle {_m_t1}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
i5araxzq
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}
aniltr_
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}
kardınal2121
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}`);
}
i5araxzq
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 ediyorMerhabalar,
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
aniltr_
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}
kardınal2121
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}
Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!