Skript Paylaşımı Geliştirilebilir Item Spawner | KSP Spawner |Tüm Minecraft Itemlerini Destekler!

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Level Arttırmayı kaldırıp çıkma hızını ayarlayabiliyor muyuz? çünkü ben örneğin hep aynı hızda çıkan ama level arttırılamayan bir kaktüs sp istiyorum yapılabiliyorsa kullanacağım
 
Level Arttırmayı kaldırıp çıkma hızını ayarlayabiliyor muyuz? çünkü ben örneğin hep aynı hızda çıkan ama level arttırılamayan bir kaktüs sp istiyorum yapılabiliyorsa kullanacağım
skript bilgin varsa editleyip yapabilirsin.
 
yapiyosun bu işi usta
 
Keşke konuyu okusaydın.... :(

Ben bu skripti uzun zaman önce başladım ve bitirip paylaştım, fakat skript bilgim yetersiz olduğundan o zamanlar bug lıydı fakat 2 gün önce
forumdaki yoğun spawner skripti ve "saçma skriptler*" yüzünden tekrar bu skripti yapmaya başladım.

"Herkez item spawner skripti yapıyor"
Ben bu skript'i herkezden önce yapmaya başladım.

"kendin ve hic yapılmamıs bir skript "
Bu skript'i bu forumda paylaşan 3 veya 4. kişiyim belki daha da düşük....

ben skripti yapmaya başladığımda furys java öğreniyordu :;p

ayrıca forumda geliştirilebilir spawner skripti varmı?
sanmıyorum.

Forumda her item'e ait spawner yapabilen bi skript varmı?
sanmıyorum.

Saçma skript= Loop blocks veya every eventini kullanarak gereksiz lagg yapan skriptlerdir.

Neden bu skripti yaptığımı anlamışsındır umarım... Başarılar.
Gönderi otomatik olarak birleştirildi:

Değerli yorumlarınız için Hepinize teşekkür ederim.
Gönderi otomatik olarak birleştirildi:




Neden böyle bişiy yapmalıyım?

Amacını anlamadım.
Gönderi otomatik olarak birleştirildi:


İlk olarak
Skript = Lagg kavramını çöpe atmanızı istiyorum

Yiğit var yiğit var, skript var skript var.

Mobspawner'ı yapmak nms istiyor ve nms ile item spawner'ı zorlaşıyor
ayrıca nms her sürümde değiştiği için ona göre API kullanılması gerekiyor ki bu sefer api kullanmış emek hırsızlığı diye mesajlar gelir...

Evet şu andaki halini plugin'e geçirebilriim fakat büyük bir etki göstermeyecektir çünkü performanslı olacak şekilde yazıldı.


Yinede yorumun için teşekkür ederim.
Gönderi otomatik olarak birleştirildi:


Evet, fikrinizi sormak için bir kaç kere discord'da paylaşıp, olumlu fikirler edinmiştim.
ne gerek vardı onca açıklamaya? boşver gitsin herkesi mutlu etmeye ne gerek var? zaten kimse mutlu değil.

Başarının sırrını bilmiyorum ama, başarısızlığın yolu herkesi memnun etmekten geçer
Bill Cosby
 
güzel olmuş tebrikler
 
cok iyi olmuş arayanlara cok iyi bir cevap :)
 
Nasil Adakkite Demir Sp yi ekleris
 
@kingOf0 Merhaba Efendim.
Ben Sizin vermiş olduğunuz bu skripti ekledim fakat şöyle bir hata aldım

Kod:
[INFO] [Skript] Reloading spawnerr.sk...

[ERROR] 'create a gui with id "spy" with chest with 5 rows named "&0[&6KSP&0]&8 Yükseltme Menüsü"' is not a boolean (yes/no) (spawnerr.sk, line 7: create a gui with id "spy" with chest with 5 rows named "&0[&6KSP&0]&8 Yükseltme Menüsü":')

[ERROR] 'editSPYM(p:player, location: location)' is not a text (spawnerr.sk, line 17: function editSPYM(p:player, location: location):')

[ERROR] 'seviyeYukselt(p:player, location: location)' is not a text (spawnerr.sk, line 76: function seviyeYukselt(p:player, location: location):')

[ERROR] 'saniyeDusur(p:player, location: location)' is not a text (spawnerr.sk, line 89: function saniyeDusur(p:player, location: location):')

[ERROR] 'setSpawner(player: player, location: location)' is not a text (spawnerr.sk, line 102: function setSpawner(player: player, location: location):')

[ERROR] 'a mob_spawner' is not an item type (spawnerr.sk, line 121: give a mob_spawner named "%colored arg-1% &7Spawner" with lore "&7Materyal: &8%arg-2%||&7Saniye: &8%arg-3%||&7Seviye: &8%arg-4%" to player')

[ERROR] '6 of mob_spawner named "%colored arg-1% &7Spawner" with lore "&7Materyal: &8%arg-2%||&7Saniye: &8%arg-3%||&7Seviye: &8%arg-4%"' is not a type (spawnerr.sk, line 130: give arg-6 of mob_spawner named "%colored arg-1% &7Spawner" with lore "&7Materyal: &8%arg-2%||&7Saniye: &8%arg-3%||&7Seviye: &8%arg-4%" to arg-5')

[ERROR] 'mob_spawner' is not an item type (spawnerr.sk, line 134: on place of mob_spawner:')

[ERROR] 'mob_spawner' is not an entity type (spawnerr.sk, line 185: on right click on mob_spawner:')

[ERROR] 'mob_spawner' is not an item type (spawnerr.sk, line 192: on break of mob_spawner:')

Hata nerede bilmiyorum
yardım ederseniz sevinirim.
Bu arada etiketlediğim için kusura bakmayın ben Kimseye Mesaj atamıyorum nedenininde bilmiyorum o yüzden etiketlemek zorunda kaldım..


Düzenleme :
Sorun Çözüldü Zaten Gerek Kalmadı Bunu Kullanmama Kendi Skriptimi Kodladım Bu Sorunun Hatası Şuymuş Skript Plugin Versiyonu Uyuşmuyormuş.
 
Son düzenleme:
İndirme yerini göremedim ?
 
Emeğinize Sağlık Gerçekten
 
Kod'u kopyalıyıp not defterine yapıştırdım sonra plugin paketinin içine koydum ve serveri açtıgımda skript çalışmıyor neden ?
 
Güzel Olmus Dostum
 
maalesef sadece 1.8R3 ve aşağısı için çalışır, 1.9R1 sonrası ve 1.13R1 sonrası için kodlarını düzenlemen gerekiyor, nbt bilgileri için koduma bakabilirsin
Java:
private static void setItemSpawner19R1(Player player, Location location) {
        try {
            Class<?> blockPosition = NMSUtils.getNMSClass("BlockPosition");

            Object craftWorld = NMSUtils.getOBCClass("CraftWorld").cast(location.getWorld());

            Object worldServer = NMSUtils.getHandle(craftWorld);

            Object blockPositionCons = blockPosition.
                    getConstructor(int.class, int.class, int.class).
                    newInstance(location.getBlockX(), location.getBlockY(), location.getBlockZ());

            Object tileEntityMobSpawner = NMSUtils.getMethod(worldServer.getClass(),"getTileEntity",blockPosition).invoke(worldServer,blockPositionCons);

            Class<?> nbtTagCompound = NMSUtils.getNMSClass("NBTTagCompound");
            Class<?> nbtBase = NMSUtils.getNMSClass("NBTBase");

            Object nbtTileEntity = nbtTagCompound.
                    getConstructor().
                    newInstance();

            NMSUtils.getMethod(tileEntityMobSpawner.getClass(),"save",nbtTagCompound).
                    invoke(tileEntityMobSpawner,nbtTileEntity);

            Object nbtItemStack = nbtTagCompound.
                    getConstructor().
                    newInstance();

            Object nbtItemStackTag = nbtTagCompound.
                    getConstructor().
                    newInstance();

            Class<?> craftItemStack = NMSUtils.getClassFromPath("org.bukkit.craftbukkit." + NMSUtils.getVersion() + "inventory.CraftItemStack");

            Object nmsItemStack = craftItemStack.getMethod("asNMSCopy",ItemStack.class).invoke(null,itemStack);

            NMSUtils.getMethod(nmsItemStack.getClass(),"save",nbtItemStackTag.getClass()).
                    invoke(nmsItemStack,nbtItemStackTag);

            NMSUtils.getMethod(nbtItemStack.getClass(), "setString",String.class,String.class).
                    invoke(nbtItemStack,"id","Item");

            NMSUtils.getMethod(nbtTagCompound,"set",String.class,nbtBase).
                    invoke(nbtItemStack,"Item",nbtBase.cast(nbtItemStackTag));

            NMSUtils.getMethod(nbtTagCompound, "set",String.class,nbtBase).
                    invoke(nbtTileEntity,"SpawnData",nbtBase.cast(nbtItemStack));

            NMSUtils.getMethod(nbtTagCompound, "remove",String.class).
                    invoke(nbtTileEntity,"SpawnPotentials");

            NMSUtils.getMethod(nbtTagCompound, "setShort",String.class,short.class).
                    invoke(nbtTileEntity,"SpawnCount",(short)2);

            NMSUtils.getMethod(nbtTagCompound, "setInt",String.class,int.class).
                    invoke(nbtTileEntity,"MinSpawnDelay",20);

            NMSUtils.getMethod(nbtTagCompound,"setInt",String.class,int.class).
                    invoke(nbtTileEntity,"MaxSpawnDelay",20);

            NMSUtils.getMethod(nbtTagCompound,"setShort",String.class,short.class).
                    invoke(nbtTileEntity,"SpawnRange",(short)2);

            NMSUtils.getMethod(nbtTagCompound,"setShort",String.class,short.class).
                    invoke(nbtTileEntity,"RequiredPlayerRange",(short)10);

            NMSUtils.getMethod(tileEntityMobSpawner.getClass(),"a",nbtTagCompound).
                    invoke(tileEntityMobSpawner,nbtTagCompound.cast(nbtTileEntity));

           // en son kısıma da en yukarıda oyuncunun elinde ki eski itemi burada geri yüklememiz gerekiyor
          // p.getInventory().setItemInMainHand(eskiItemStack); ile bunu methodu uyguluyoruz sonrasında
          //  p.updateInventory(); methodu ile envanterini yeniliyoruz playerın, methodumuz tamamdır.
    
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
javadır ancak sadece nbt kodlarına bakabilirsin, bu sadece 1.9R1 ve sonrası için 1.13R1 ve sonrası için ,
NMSUtils.getMethod(nbtItemStack.getClass(), "setString",String.class,String.class). invoke(nbtItemStack,"id","Item");
bu kısımdaki "id","Item" i = "id", "item" olarak değiştirmelisin
 
maalesef sadece 1.8R3 ve aşağısı için çalışır, 1.9R1 sonrası ve 1.13R1 sonrası için kodlarını düzenlemen gerekiyor, nbt bilgileri için koduma bakabilirsin
Java:
private static void setItemSpawner19R1(Player player, Location location) {
        try {
            Class<?> blockPosition = NMSUtils.getNMSClass("BlockPosition");

            Object craftWorld = NMSUtils.getOBCClass("CraftWorld").cast(location.getWorld());

            Object worldServer = NMSUtils.getHandle(craftWorld);

            Object blockPositionCons = blockPosition.
                    getConstructor(int.class, int.class, int.class).
                    newInstance(location.getBlockX(), location.getBlockY(), location.getBlockZ());

            Object tileEntityMobSpawner = NMSUtils.getMethod(worldServer.getClass(),"getTileEntity",blockPosition).invoke(worldServer,blockPositionCons);

            Class<?> nbtTagCompound = NMSUtils.getNMSClass("NBTTagCompound");
            Class<?> nbtBase = NMSUtils.getNMSClass("NBTBase");

            Object nbtTileEntity = nbtTagCompound.
                    getConstructor().
                    newInstance();

            NMSUtils.getMethod(tileEntityMobSpawner.getClass(),"save",nbtTagCompound).
                    invoke(tileEntityMobSpawner,nbtTileEntity);

            Object nbtItemStack = nbtTagCompound.
                    getConstructor().
                    newInstance();

            Object nbtItemStackTag = nbtTagCompound.
                    getConstructor().
                    newInstance();

            Class<?> craftItemStack = NMSUtils.getClassFromPath("org.bukkit.craftbukkit." + NMSUtils.getVersion() + "inventory.CraftItemStack");

            Object nmsItemStack = craftItemStack.getMethod("asNMSCopy",ItemStack.class).invoke(null,itemStack);

            NMSUtils.getMethod(nmsItemStack.getClass(),"save",nbtItemStackTag.getClass()).
                    invoke(nmsItemStack,nbtItemStackTag);

            NMSUtils.getMethod(nbtItemStack.getClass(), "setString",String.class,String.class).
                    invoke(nbtItemStack,"id","Item");

            NMSUtils.getMethod(nbtTagCompound,"set",String.class,nbtBase).
                    invoke(nbtItemStack,"Item",nbtBase.cast(nbtItemStackTag));

            NMSUtils.getMethod(nbtTagCompound, "set",String.class,nbtBase).
                    invoke(nbtTileEntity,"SpawnData",nbtBase.cast(nbtItemStack));

            NMSUtils.getMethod(nbtTagCompound, "remove",String.class).
                    invoke(nbtTileEntity,"SpawnPotentials");

            NMSUtils.getMethod(nbtTagCompound, "setShort",String.class,short.class).
                    invoke(nbtTileEntity,"SpawnCount",(short)2);

            NMSUtils.getMethod(nbtTagCompound, "setInt",String.class,int.class).
                    invoke(nbtTileEntity,"MinSpawnDelay",20);

            NMSUtils.getMethod(nbtTagCompound,"setInt",String.class,int.class).
                    invoke(nbtTileEntity,"MaxSpawnDelay",20);

            NMSUtils.getMethod(nbtTagCompound,"setShort",String.class,short.class).
                    invoke(nbtTileEntity,"SpawnRange",(short)2);

            NMSUtils.getMethod(nbtTagCompound,"setShort",String.class,short.class).
                    invoke(nbtTileEntity,"RequiredPlayerRange",(short)10);

            NMSUtils.getMethod(tileEntityMobSpawner.getClass(),"a",nbtTagCompound).
                    invoke(tileEntityMobSpawner,nbtTagCompound.cast(nbtTileEntity));

           // en son kısıma da en yukarıda oyuncunun elinde ki eski itemi burada geri yüklememiz gerekiyor
          // p.getInventory().setItemInMainHand(eskiItemStack); ile bunu methodu uyguluyoruz sonrasında
          //  p.updateInventory(); methodu ile envanterini yeniliyoruz playerın, methodumuz tamamdır.
  
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
javadır ancak sadece nbt kodlarına bakabilirsin, bu sadece 1.9R1 ve sonrası için 1.13R1 ve sonrası için ,
NMSUtils.getMethod(nbtItemStack.getClass(), "setString",String.class,String.class). invoke(nbtItemStack,"id","Item");
bu kısımdaki "id","Item" i = "id", "item" olarak değiştirmelisin
Bu attığın kısım bir nms tutorial apisinden alınmış, ve bunu benim skriptime uyarlamak imkansız.

skriptin 1.9+ çalışmayacağının farkındayım, nms dolayısıyla json lar her sürümde değişiklik gösteriyor, ve skript 1.8 için json
kodları içeriyor.

skript-mirror ile version kontrolü yapılarak, json kodlarını değiştirmesi sağlanabilir çözüm olarak. fakat şuan uğraşırmıyım bilmiyorum...
 
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