1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Дать эффект стреле

Тема в разделе "Разработка плагинов для новичков", создана пользователем IcedwinterZ, 4 фев 2017.

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

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Как дать эффект стреле, что бы за стрелой, тянулась тонкая нить огня, делал это так:
    Код:
     while(!a.isOnGround()){
                        a.getLocation().getWorld().spawnParticle(Particle.FLAME, a.getLocation(), 1, 0, 0, 0, 1);
                    }
    Но спаунился такой огрооомный, жирный шар, из за которого можно было остаться без сервера..
     
  2. Mr_RoboMan

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

    Баллы:
    123
    Ну так ясень пень, он же спавнится как только отработает цикл, а происходит это очень быстро, не удивлюсь если у тебя спавнится по 100 шаров в секунду. Задержку делай, Иванушка..
     
  3. AtomicInteger

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

    Баллы:
    76
    Можешь запустить шедулер, который с некоторым интервалом будем проверять, не коснулась ли стрела земли или нет ли рядом с ней блоков, если это так, убивай шедулер, иначе проигрывай эффект.
     
  4. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    А почему шары тогда идут не за стрелой, а появляются там где я выстрелил?
     
  5. AtomicInteger

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

    Баллы:
    76
    Потому что нужен шедулер, который будет работать как стробоскоп, на каждой позиции стрелы в конкретный момент времени проигрывать эффект.
     
  6. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Последний вопрос, почему шары огромные, как 5 меня (в майнкрафте)
     
  7. TheZefirrkka

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

    Баллы:
    76
    потому, что их в тик спавнится очень много
     
  8. AtomicInteger

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

    Баллы:
    76
    Возможно, потому что они рядом и их много.Кстати, если цикл работает, то лучше наладить получение локации(я думаю проблема в ней), нежели делать через шедулер.
     
  9. alexandrage

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

    Баллы:
    173
    Если уж лезть в nms, почему бы не создать свой класс стрелы и пусть он делает всю грязную работу.
     
  10. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Мне просто, что бы за стрелой, поганый огонь шел...
     
  11. TheZefirrkka

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

    Баллы:
    76
    Ответы выше посмотри
     
  12. alexandrage

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

    Баллы:
    173
    Код:
    package prefix;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Effect;
    import org.bukkit.World;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.EntityType;
    
    public class Scheduler3  extends Thread {
        @Override
        public void run() {
            for(;;) {
                try {
                    for(World w : Bukkit.getServer().getWorlds()) {
                        for(Entity en :w.getEntities()) {
                            if(en.getType() == EntityType.ARROW && !en.isOnGround()) {
                                w.playEffect(en.getLocation(), Effect.FLAME, 0);
                            }
                        }
                    }
                } catch (Exception e) {}
            }
        }
    }
    
    кек
     
  13. TheZefirrkka

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

    Баллы:
    76
    а разве не spawnParticle?
     
  14. alexandrage

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

    Баллы:
    173
    Да не суть.
     
  15. AtomicInteger

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

    Баллы:
    76
    Вот ещё лучше, ведь для каждого игрока нужно:
    Код:
    package prefix;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Effect;
    import org.bukkit.World;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.EntityType;
    
    public class Scheduler3  extends Thread {
        @Override
        public void run() {
            for(;;) {
                try {
                    for(World w : Bukkit.getServer().getWorlds()) {
                        for(Entity en :w.getEntities()) {
                            if(en.getType() == EntityType.ARROW && !en.isOnGround()) {
                               for(Player player : getServer().getOnlinePlayers())
                                   w.playEffect(en.getLocation(), Effect.FLAME, 0);
                            }
                        }
                    }
                } catch (Exception e) {}
            }
        }
    }
     
  16. alexandrage

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

    Баллы:
    173
    :D:D:D:D
    Нах? И так всем видно... Или ты хочешь сказать, что я та стрела, что летит на видио ?)
     
  17. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Да как так то, а?
     
  18. alexandrage

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

    Баллы:
    173
    Это виле труе. Ничего сложного.
     
  19. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    ООООООО
    Я не знал, что так с фором можно делать
     
  20. AtomicInteger

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

    Баллы:
    76
    Перепутал вызывающий обьект :D
    Неплохо, да?
     
Статус темы:
Закрыта.

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