Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

[ЗАКРЫТО]не работает setVelocity

Discussion in 'Разработка плагинов для новичков' started by Rfg0, May 8, 2016.

Thread Status:
Not open for further replies.
  1. Автор темы
    Rfg0

    Rfg0 Активный участник Пользователь

    Trophy Points:
    46
    Имя в Minecraft:
    Rfg0
    Такая проблема. Я хочу, чтобы при ударе моба его подкидывало. Решил сделать через setVelocity().
    Вот код.
    Code:
        @EventHandler
        public void onDamage(EntityDamageByEntityEvent e){
            if(e.getDamager() instanceof Player){
                Player p = (Player) e.getDamager();
                ItemStack is = p.getItemInHand();
                if(is.hasItemMeta()){
                ItemMeta im = is.getItemMeta();
                String name = im.getDisplayName();
                if((is.getType() == Material.DIAMOND_SWORD) && (name.equalsIgnoreCase("§6§lПодкидывающий меч"))){
                    Entity en = e.getEntity();
                    if(p.hasPermission("systemcommands.giveweapons.throwsword.use")){
                        Vector vec = new Vector(p.getVelocity().getX(), p.getVelocity().getY() + 2, p.getVelocity().getZ());
                        en.setVelocity(vec);
                }
            }}
        }
        }
    не работает именно вот эта строка -
    Code:
    en.setVelocity(vec);
    
    Пробовал моба телепортировать работает.
    Пробовал через другой Event эта падла работает.
    Code:
        @EventHandler
        public void onDamage(PlayerInteractEntityEvent e){
                Player p =  e.getPlayer();
                ItemStack is = p.getItemInHand();
                if(is.hasItemMeta()){
                ItemMeta im = is.getItemMeta();
                String name = im.getDisplayName();
                if((is.getType() == Material.DIAMOND_SWORD) && (name.equalsIgnoreCase("§6§lПодкидывающий меч"))){
                    Entity en = e.getRightClicked();
                    if(p.hasPermission("systemcommands.giveweapons.throwsword.use")){
                        Vector vec = new Vector(p.getVelocity().getX(), p.getVelocity().getY() + 2, p.getVelocity().getZ());
                        en.setVelocity(vec);
                }
          }   }
        }
     
  2. Хостинг MineCraft
    <
  3. Sirse

    Sirse Старожил Пользователь

    Trophy Points:
    173
    Имя в Minecraft:
    Sirse
    Пробовал velocity добавлять не только по Y, но и по X/Z?
     
  4. Shevchik

    Shevchik Старожил Пользователь

    Trophy Points:
    173
    Имя в Minecraft:
    _Shevchik_
    Ты задал скорость 2блока/секунду наверх, тебе тупо сам сервер такое скорее всего не дал сделать, либо античит.
     
  5. Автор темы
    Rfg0

    Rfg0 Активный участник Пользователь

    Trophy Points:
    46
    Имя в Minecraft:
    Rfg0
    X Z отталкивается. Но Y не трогает.[DOUBLEPOST=1462720761,1462720614][/DOUBLEPOST]
     
  6. Shevchik

    Shevchik Старожил Пользователь

    Trophy Points:
    173
    Имя в Minecraft:
    _Shevchik_
    А, точно EntityDamageEvent это один из тэх эвентов где есть своя логика обработки скорости. Придётся тебе скорость на тик позже выставлять.
     
  7. Автор темы
    Rfg0

    Rfg0 Активный участник Пользователь

    Trophy Points:
    46
    Имя в Minecraft:
    Rfg0
    ща чекну.[DOUBLEPOST=1462722393,1462722155][/DOUBLEPOST]Спасибо! Тема Закрыта!
     
Thread Status:
Not open for further replies.

Share This Page