Yerden item almayı engellemek?

BattukClashTR

Kömür Madencisi
En iyi cevaplar
0
Fikri olan var mı , hangi yolla yerden item almayı engelleyebilirim?
Yerden item alınca çalışan event bilen varsa bekliyorum...

Amacım: Otomatik bir yere item droplancak (oraya kadar hallettim), şimdide onu almamayı yapmam lazım.
Yani oyuncu üstüne gelince alamicak..

Destek bekliyorum..

EDİT: Galiba pickup eventi kullanılarak yapılıyormuş. Eğer tam olarak kullanmasını bilen varsa yazabilir, yoksa ben internetten araştırmaya başladım..
 

BattukClashTR

Kömür Madencisi
En iyi cevaplar
0
İstediğim şey ; şimdi ben bir plugin yapıyorum (yakında burda paylaşırım). Şimdi oyuncunun yakınına (önüne filan) bir blok düşüyor, onun üstüne gelince almaması lazım. Onu yapamamıştım ama şimdi yaptım. Kullandığım event ise PickUp eventi. Benim gibi yapmaya çalışan olursa bu eventi kullanabilir.

Yeni bir sorun çıktı

Belirli bir yerdeki itemlermi alınmıcak
sorunum halloldu sanıyordum ama hallolmamış. Senin dediğin gibi belii bir yerdeki itemin alınmaması için nasıl yöntem kullanabiliriz?
(Şuanki sistemde, yere attığı itemin adını rastgele sayı yapıp adını array'a ekliyor. Ve item pickup eventindede eğer almaya çalıştığı item array listesinde varsa almayı iptal et diye kod ayarladım. Fakat ne olursa olsun almaya başladı. Array list'e rastgele sayı verip item adını eklemesi lazım ama null olarak görüyor adını ve array list'e null olarak ekliyor. Ama pickup eventinde aalmaya çalıştığı item adı arraylistte varmı diye kontrol ederkende, kontrol ettiği itemin adını null olarak görüyor :( . Bu duruma göre array listte null isimli item adı olmasına rağmen almayı engellemesi lazımken yinede engellemiyor. Sıkıntı içinde sıkıntı.


Kısaca kodlarım şöyle:
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.

RESİME EKLEMEYİ UNUTTUĞUM EN ÖNEMLİ KOD:
items.add(player.getItemInHand().getItemMeta().getDisplayName()) ;
//BU KOD RESIMDE EN ALTTAKİ DROP KODUNUN ALTINDA DURUYOR. RESİME EKLİCEKTİM UNUTMUŞUM.
//ASIL HATA BUNDAN ÇIKIYO FARKETTİM AMA KOLAYCA BİR ÇÖZÜM YOLU BEKLİYORUM

şu an SORUN DEVAM EDİYOR. Konuya bakanlardan destek bekliyorum. Son yazdığım paragrafı okuyarak sorunu anlayabilirsiniz.
 

Yiğit_bee

Zombi Katili
En iyi cevaplar
0
İstediğim şey ; şimdi ben bir plugin yapıyorum (yakında burda paylaşırım). Şimdi oyuncunun yakınına (önüne filan) bir blok düşüyor, onun üstüne gelince almaması lazım. Onu yapamamıştım ama şimdi yaptım. Kullandığım event ise PickUp eventi. Benim gibi yapmaya çalışan olursa bu eventi kullanabilir.

Yeni bir sorun çıktı


sorunum halloldu sanıyordum ama hallolmamış. Senin dediğin gibi belii bir yerdeki itemin alınmaması için nasıl yöntem kullanabiliriz?
(Şuanki sistemde, yere attığı itemin adını rastgele sayı yapıp adını array'a ekliyor. Ve item pickup eventindede eğer almaya çalıştığı item array listesinde varsa almayı iptal et diye kod ayarladım. Fakat ne olursa olsun almaya başladı. Array list'e rastgele sayı verip item adını eklemesi lazım ama null olarak görüyor adını ve array list'e null olarak ekliyor. Ama pickup eventinde aalmaya çalıştığı item adı arraylistte varmı diye kontrol ederkende, kontrol ettiği itemin adını null olarak görüyor :( . Bu duruma göre array listte null isimli item adı olmasına rağmen almayı engellemesi lazımken yinede engellemiyor. Sıkıntı içinde sıkıntı.


Kısaca kodlarım şöyle:
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.

RESİME EKLEMEYİ UNUTTUĞUM EN ÖNEMLİ KOD:
items.add(player.getItemInHand().getItemMeta().getDisplayName()) ;
//BU KOD RESIMDE EN ALTTAKİ DROP KODUNUN ALTINDA DURUYOR. RESİME EKLİCEKTİM UNUTMUŞUM.
//ASIL HATA BUNDAN ÇIKIYO FARKETTİM AMA KOLAYCA BİR ÇÖZÜM YOLU BEKLİYORUM

şu an SORUN DEVAM EDİYOR. Konuya bakanlardan destek bekliyorum. Son yazdığım paragrafı okuyarak sorunu anlayabilirsiniz.
Eğer belirli bölgede item alınmamasını istiyorsanız skript ile yapabilirsiniz mesela bir world için ise:
Kod:
on pickup:
    player is in "dünyaismi":
        cancel event
 

BattukClashTR

Kömür Madencisi
En iyi cevaplar
0
@Yiğit_bee
amacım dünya içinde bir yerden, hatta belirli itemlerin alınmasını önlemekti ama yaptım.
Plugin kullanarak benim gibi yapmak isteyen olursa şu mantığı kullansın:
İlk önce array oluşturun, sonra alınmasını engelliyeceğiniz itemlere rastgele isim verin ve yere droplatın ama droplatırken array'a ismini ekleyin. Sonra pickUP Eventiyle geli alırken o itemin arrayda olup olmadığını kontrol ettirin. Eğer itemin adı array'da varsa onu alamasın. Bu kadar basit. Ben yukarıda doğru yapmışım fakat isim değiştirme kodunu yanlış yazdığımdan ismini rastgele bir şey yapamamışım.
 

Yiğit_bee

Zombi Katili
En iyi cevaplar
0
@Yiğit_bee
amacım dünya içinde bir yerden, hatta belirli itemlerin alınmasını önlemekti ama yaptım.
Plugin kullanarak benim gibi yapmak isteyen olursa şu mantığı kullansın:
İlk önce array oluşturun, sonra alınmasını engelliyeceğiniz itemlere rastgele isim verin ve yere droplatın ama droplatırken array'a ismini ekleyin. Sonra pickUP Eventiyle geli alırken o itemin arrayda olup olmadığını kontrol ettirin. Eğer itemin adı array'da varsa onu alamasın. Bu kadar basit. Ben yukarıda doğru yapmışım fakat isim değiştirme kodunu yanlış yazdığımdan ismini rastgele bir şey yapamamışım.
Dünyada belirli bir alan için on region eventi ile de yapılabilir.

on region:
set {pickup.%player%} to 1

on pickup:
if {pickup.%player%} is set:
cancel event
 
Üst