Vuruş uzaklığı ve efekti ayarlanabilir mi?

Blackixq

Ben artık biraz çöktüm albayım.
Mesajlar
258
En iyi cevaplar
1
Beğeniler
29
Puanları
180
Ruh hali
Selamlar Arkadaşlar,
Minecraft da biliyosunuz ki belirli bir vuruş uzaklığı var ( block olarak ) bu vuruş sınırı ( hit ) ayarlanabilir mi ? yani normal hali 5 Blocksa ben onu 3 e düşürmek istiyorum ayrıca vurduğumuzda çıkan efekti de değiştirebiliyor muyuz? Tabii bu dediklerimi sağlayan bir spigot ayarı veya plugin var mı? Skriptle pek olacağını düşünmüyorum açıkçası. İnternette bulamadım fakat derin bir araştırma yapmadım.

Hayırlı Bayramlar Dilerim.
 


Kovalski_Eyes

Kızıltaş Madencisi
Mesajlar
570
En iyi cevaplar
0
Beğeniler
938
Puanları
1,090
Ruh hali
yapılır skript ile ama kimse uğraşma buna. Ayrıca direkt olarak düz vuruşu değiştiremezsin sadece o kodların üstüne yeni kodlar ekleyerek gereksiz yük yaparsın sunucuya
 

VictoryAndGlory

Kızıltaş Madencisi
Mesajlar
502
En iyi cevaplar
0
Beğeniler
271
Puanları
790
Düz vuruş eventini iptal edip o event geçtiğinde önce hedef uzaklığını kontrol edip sonra hasarı verdirirsin, efekti de hedefe verebilirsin.. Pluginle de yapılır skript ile de.
 

utsukushihito

Marangoz
Mesajlar
50
En iyi cevaplar
0
Beğeniler
15
Puanları
40
Kod:
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (label.equalsIgnoreCase("investigate")) {
            if (!(sender instanceof Player)) {
                sender.sendMessage("Silly Robot, This command is for players!");
                return false;
            }
            Player player = (Player) sender;
            if (player.hasPermission("MMOClasses.mage.levitation")) {
                List<Entity> nearbyE = player.getNearbyEntities(10, 10, 10);
                ArrayList<LivingEntity> livingE = new ArrayList<LivingEntity>();
                for (Entity e : nearbyE) {
                    if (e instanceof LivingEntity) {
                        livingE.add((LivingEntity) e);
                    }
                }
                plugin.target = null;
                BlockIterator bItr = new BlockIterator(plugin.player, plugin.range);
                Block block;
                Location loc;
                int bx, by, bz;
                double ex, ey, ez;
                // loop through player's line of sight
                while (bItr.hasNext()) {
                    block = bItr.next();
                    bx = block.getX();
                    by = block.getY();
                    bz = block.getZ();
                    // check for entities near this block in the line of sight
                    for (LivingEntity e : livingE) {
                        loc = e.getLocation();
                        ex = loc.getX();
                        ey = loc.getY();
                        ez = loc.getZ();
                        if ((bx - .75 <= ex && ex <= bx + 1.75) && (bz - .75 <= ez && ez <= bz + 1.75) && (by - 1 <= ey && ey <= by + 2.5)) {
                            // entity is close enough, set target and stop
                            plugin.target = e;
                            break;
                        }
                    }
                }
            }
            return false;
        }
        return true;
    }

bu kodu anlayabilirsen yardımı olucaktır önemli olan kısmı;
'if (player.hasPermission("MMOClasses.mage.levitation")) {' bu if in altındaki kısım gerisi önemli değil konuyla alakası yok

[SOLVED]Get the Entity a Player is looking at | Bukkit Forums bu konuda yardımcı olur, ayrıca lineofsight methoduna bakmanıda öneririm ondanda yapılır
 

Axel102

Hayalet Avcısı
Mesajlar
2,564
En iyi cevaplar
6
Beğeniler
1,002
Puanları
3,390
spigotta ayarı var diye hatırlıyorum skript
Kod:
on damage of player:
 distance between location attacker and victim is bigger than 3:
  cancel event
 

Üst