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

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Rfg0, 8 май 2016.

Статус темы:
Закрыта.
  1. Автор темы
    Rfg0

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

    Баллы:
    46
    Имя в Minecraft:
    Rfg0
    Такая проблема. Я хочу, чтобы при ударе моба его подкидывало. Решил сделать через setVelocity().
    Вот код.
    Код:
        @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);
                }
            }}
        }
        }
    не работает именно вот эта строка -
    Код:
    en.setVelocity(vec);
    
    Пробовал моба телепортировать работает.
    Пробовал через другой Event эта падла работает.
    Код:
        @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 Старожил Пользователь

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

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

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

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

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

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

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

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

    Баллы:
    46
    Имя в Minecraft:
    Rfg0
    ща чекну.[DOUBLEPOST=1462722393,1462722155][/DOUBLEPOST]Спасибо! Тема Закрыта!
     
Статус темы:
Закрыта.

Поделиться этой страницей