Wonkru
skript bilgin varsa editleyip yapabilirsin.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
ne gerek vardı onca açıklamaya? boşver gitsin herkesi mutlu etmeye ne gerek var? zaten kimse mutlu değil.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.
Angel Of Death ©#0896
kullanıcı adımı kabul etmedi sunucu linkim d.gg/fugaEQN
[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:')
Emirhan0535#4201
Emirhan0535#4201
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();
}
}
kingOf0!#4055
Bu attığın kısım bir nms tutorial apisinden alınmış, ve bunu benim skriptime uyarlamak imkansız.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
javadır ancak sadece nbt kodlarına bakabilirsin, bu sadece 1.9R1 ve sonrası için 1.13R1 ve sonrası için ,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(); } }
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
Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!