block breaking

Yechwon

Marangoz
En iyi cevaplar
0
Yanlız o paketi değiştirirsen sanırım sadece gönderilen bilgiler değiştirilecek.
Client yönlü olduğu için zaten oyuncunun kendisi hariç herkeze gönderilecek.

Onun yerine oyuncu blok ile etkileşime geçtiğinde PacketPlayOutBlockBreakAnimation paketiyle etkileşime geçtiği bloğu hasar almamış gibi gösterebilirsin.
peki oyuncu block dig e başlayınca iptal etsem?
 

Yechwon

Marangoz
En iyi cevaplar
0
Player Digging:
Play Server


Sol tıklamayı iptal etsen olmuyor mu ._.
çok zeki olduğunu söylemiş miydim .-.

Yanlız o paketi değiştirirsen sanırım sadece gönderilen bilgiler değiştirilecek.
Client yönlü olduğu için zaten oyuncunun kendisi hariç herkeze gönderilecek.

Onun yerine oyuncu blok ile etkileşime geçtiğinde PacketPlayOutBlockBreakAnimation paketiyle etkileşime geçtiği bloğu hasar almamış gibi gösterebilirsin.
peki bişi sorucam ben bi pakete hem int hem block position nasıl yazıcam

PacketContainer breakPacket = new PacketContainer(PacketType.Play.Server.BLOCK_BREAK_ANIMATION);
breakPacket.getIntegers().write(0, player.getEntityId());
breakPacket.getBlockPositionModifier().write(1, new BlockPosition(block.getX(), block.getY(), block.getZ()));
breakPacket.getIntegers().write(2, 0);

bu işe yaramıyorda :/
 

TheMuhammed2188

Java <3
En iyi cevaplar
0
Player Digging:
Play Server



çok zeki olduğunu söylemiş miydim .-.


peki bişi sorucam ben bi pakete hem int hem block position nasıl yazıcam

PacketContainer breakPacket = new PacketContainer(PacketType.Play.Server.BLOCK_BREAK_ANIMATION);
breakPacket.getIntegers().write(0, player.getEntityId());
breakPacket.getBlockPositionModifier().write(1, new BlockPosition(block.getX(), block.getY(), block.getZ()));
breakPacket.getIntegers().write(2, 0);

bu işe yaramıyorda :/
Kod:
PacketContainer breakPacket = new PacketContainer(PacketType.Play.Server.BLOCK_BREAK_ANIMATION);
breakPacket.getIntegers().write(0, player.getEntityId());
breakPacket.getBlockPositionModifier().write(1, new BlockPosition(block.getX(), block.getY(), block.getZ()));
breakPacket.getIntegers().write(1, 0);
Bunu dene :D

ProtocolLib'de sending dinleme eventi var, orada iptal edersen çözebilir*
Yanlız animasyon Client yönlü bir şey :p
İptal edince öbür oyuncular göremez kendisi görebilir.
 

GodofMilker

Nether Yerlisi
En iyi cevaplar
0
Kod:
PacketContainer breakPacket = new PacketContainer(PacketType.Play.Server.BLOCK_BREAK_ANIMATION);
breakPacket.getIntegers().write(0, player.getEntityId());
breakPacket.getBlockPositionModifier().write(1, new BlockPosition(block.getX(), block.getY(), block.getZ()));
breakPacket.getIntegers().write(1, 0);
Bunu dene :D


Yanlız animasyon Client yönlü bir şey :p
İptal edince öbür oyuncular göremez kendisi görebilir.
Oyuncunun bloğa tıklaması sonucunda sunucunun gönderdiği şeydir animasyon ...
 

MCTDark

Marangoz
En iyi cevaplar
0
Bir blok kırmayı engellemek için niye bu kadar uğraşıyorsunuz anlamadım.
 

Blueyescat

Bedrock Kaşifi
En iyi cevaplar
0
block kırma engellemeye çalışmıyorum, blocku sadece eliyle kırmamasını istiyorum ama cancel olmuyor event çıvdıvıcam
Skript'te olay sadece şundan ibaret:
PHP:
on block damage:
    if player's tool is air:
        cancel event
#veya
on left click:
    if clicked block is set:
        if player's tool is air:
            cancel event

Siz başka konulara girdiniz bence :c
 
Son düzenleme:
Üst