Herhangi bir saldırı eventini cancellamak?

Xosmuits

Kızıltaş Madencisi
En iyi cevaplar
5
Örnek olarak;
Kod:
on leftclick:

    shoot a fireball from player
Buradaki ateş topunun hasarını nasıl kaldırabilirim, yardımcı olabilecek varsa sevinirim.
 

CoffeeBeat

Zindev
En iyi cevaplar
0
Java olsa atılan ateş topuna entity metadata koyup,EntityDamageByEntity event'de kontrol et derdim.

Metadata olayları hatırladığım kadarıyla skript'de vardı,fakat Skriptindeki olay baya sık yapılacak gibi duruyor.Sık yapılan olaylar ve Skript...
Ne kadar sağlıklı olur bilmem,entity metadata araştır.

Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
 

ShiodomeMiuna

Nether Yerlisi
En iyi cevaplar
11
Java olsa atılan ateş topuna entity metadata koyup,EntityDamageByEntity event'de kontrol et derdim.

Metadata olayları hatırladığım kadarıyla skript'de vardı,fakat Skriptindeki olay baya sık yapılacak gibi duruyor.Sık yapılan olaylar ve Skript...
Ne kadar sağlıklı olur bilmem,entity metadata araştır.

Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
O kadarda zor değil ._.
JavaScript:
leftclick:
    shoot a fireball
    set metadata of fireball to 1

damage:
    damage cause is fireball:
        metadata of fireball is 1:
            cancel event
Hata olabilir, telefondan yazdım. Birde RandomSK gerektiriyor.
 

Blueyescat

Bedrock Kaşifi
En iyi cevaplar
0
Son düzenleme:

Personinblack

YASAKLANDI
En iyi cevaplar
0

Bak hala anlatamıyorum.Entity'e veri saklarken NBT kullanmak sakat iş.
Mesela senin kullandığın key maksimum 127 olabilir.Fireball'ın patlama gücüne etki ediyor.


Bu değer 127'i aşarsa ve diğer client(istemciler,oyuncular)'ların bilgisayarları bu entity'i oyunlarına yüklerse,verilen aralıkta olmadığı için veri taşması olacak.Veritaşmasını gören minecraft amcada crash verecek.İşin kötü yanı bu entity silinene kadar oyundan atılan oyuncular tekrar girmeye çalıştıklarında da crash yiyecek.



Hayır Metadata bukkit'in içinde bulunan koca bir hashmap.Bu yüzden metadata belirtirken ,metadayı gönderen plugin'in objeside verilmek zorunda.(Skriptde verilmek zorunda değil,eklenti kendi yazıyor zaten onu).
Bukkit'i decompile ederek inceleyebilirsin.
Ufak bir araştırmayla buna ulaştım: "
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
" Bu arkadaşda yalan mı söylüyor acaba? Yanlış anlaşılmasın tam olarak bilgim yok fakat bildiğim kadarıyla böyle.

"
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
" removeMetadata kısmında plugini istiyor... I'm confused.
 

CoffeeBeat

Zindev
En iyi cevaplar
0
Ufak bir araştırmayla buna ulaştım: "
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
" Bu arkadaşda yalan mı söylüyor acaba? Yanlış anlaşılmasın tam olarak bilgim yok fakat bildiğim kadarıyla böyle.
Dostum yanlış anlamışsın.
Metadata programcılıkta kullanılan bi terim o yüzden kafan karışmış.
Alt bilgi anlamına geliyor,herhangi bir obje için verilen alt bilgilerin depolanmasında metadating diyebiliriz yani.

Minecraft entityleri için NBT'yi metadata sistemi olarak kullanıyor.
Bukkit entityleri için kendine ait bir metadata sistemi kullanıyor(İsmi yok ama herkes genelde Metadatable der)
Eşyalarda NBT kullanmak sorun çıkarmaz,fakat entitylerde nbt saklamak hoş olmayan sorunlara yol açabilir(Crashlar,eşyanın bozulup mor görünmesi vs)

Hani skript'de bukkit'i kullandığına göre,minecraft'ın kendi kodunda olan alt bilgileri kurcalayıp entityleri sapıttırmaktansa,bukkit'in metadatablesi ile hızlı bir şekilde kendi alt bilgilerini oluşturmak daha mantıklı değil mi ?
 

Personinblack

YASAKLANDI
En iyi cevaplar
0
Dostum yanlış anlamışsın.
Metadata programcılıkta kullanılan bi terim o yüzden kafan karışmış.
Alt bilgi anlamına geliyor,herhangi bir obje için verilen alt bilgilerin depolanmasında metadating diyebiliriz yani.

Minecraft entityleri için NBT'yi metadata sistemi olarak kullanıyor.
Bukkit entityleri için kendine ait bir metadata sistemi kullanıyor(İsmi yok ama herkes genelde Metadatable der)
Eşyalarda NBT kullanmak sorun çıkarmaz,fakat entitylerde nbt saklamak hoş olmayan sorunlara yol açabilir(Crashlar,eşyanın bozulup mor görünmesi vs)

Hani skript'de bukkit'i kullandığına göre,minecraft'ın kendi kodunda olan alt bilgileri kurcalayıp entityleri sapıttırmaktansa,bukkit'in metadatablesi ile hızlı bir şekilde kendi alt bilgilerini oluşturmak daha mantıklı değil mi ?
Sağol bu anlaşılır açıklaman için şimdi taşlar yerine oturuyor :) Ayrıca şu makaleyi buldum benim gibi kafası karışan varsa göz atabilir: '
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
'. Ayrıca "Metadatable" kelimesi metadatalanabilir anlamına geliyor diye biliyordum? Entityler için metadatable diyorlar genelde.

Edit: metadata kullanımı çok daha mantıklı geldi.
 

MrGorkemEfe

Zombi Katili
En iyi cevaplar
0
Kabalık? Delikanlılığa leke sürdürmemek? Sanırım sen çok yaşadın bu durumu. Bu noktada kendini aşmaman gerektiğini, terbiyeni korumanı ve fazla egolu olmamanı söyler konuyu terk ederim.

Gokdeniz ve sen haklisin bence fazla tartışmayın kisi ne istedi ise onu yapin.
Gokdeniz bunu engel kaldir diye soylemedim bunu bil!
 

karahanio

Peki Hocam
En iyi cevaplar
0
Ne NBT, ne Metadatable. Burada en temiz iş Entity UUID'sini alıp direkt onu karşılaştırmak olur ha ama NBT mi yoksa Metadatable mı derseniz Metadatable burada bariz döver. Bakın Skript veya Java demedim zira Skript zaten Java'dan kötü, hangi yöntem daha doğru olur onu konuşuyoruz şu kapanmış hesaplara tekrar dönmenin bir lüzmu olduğunu sanmıyorum. İyi forumlar ve iyi günler dilerim, Burak öpüyorum seni de :D
 
Son düzenleme:

GodofMilker

Nether Yerlisi
En iyi cevaplar
0
Vanilla diye bir şey yok craftbukkit vb. şeyleri kullanırken, NMS olmaz ise oynayamazsınız, vanilla olarak düşündüğünüz her şeyi teker teker NMS ekliyor, yani oyunun Vanilla'sında var gibi bir şey demek saçmalık :(
 

CoffeeBeat

Zindev
En iyi cevaplar
0
Kabalık? Delikanlılığa leke sürdürmemek? Sanırım sen çok yaşadın bu durumu. Bu noktada kendini aşmaman gerektiğini, terbiyeni korumanı ve fazla egolu olmamanı söyler konuyu terk ederim.
He diyelim olsun be yakışıklı kardeşim :ci:
Ne NBT, ne Metadatable. Burada en temiz iş Entity UUID'sini alıp direkt onu karşılaştırmak olur ha ama NBT mi yoksa Metadatable mı derseniz Metadatable burada bariz döver. Bakın Skript veya Java demedim zira Skript zaten Java'dan kötü, hangi yöntem daha doğru olur onu konuşuyoruz şu kapanmış hesaplara tekrar dönmenin bir lüzmu olduğunu sanmıyorum. İyi forumlar ve iyi günler dilerim, Burak öpüyorum seni de :D
O tarz bi işlemi Skript ile yapamıycağından, konu ile alakasız oluyor karahancım :D
 
Üst