Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов 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. Хостинг MineCraft
    <
  3. Mr_RoboMan

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

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

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

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

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

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

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

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

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

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

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    потому, что их в тик спавнится очень много
     
  9. AtomicInteger

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

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

    alexandrage Администратор

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

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

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

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Ответы выше посмотри
     
  13. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Код:
    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) {}
            }
        }
    }
    
    кек
     
  14. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    а разве не spawnParticle?
     
  15. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Да не суть.
     
  16. AtomicInteger

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

    Баллы:
    46
    Вот ещё лучше, ведь для каждого игрока нужно:
    Код:
    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) {}
            }
        }
    }
     
  17. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    :D:D:D:D[DOUBLEPOST=1486244099,1486244057][/DOUBLEPOST]
    Нах? И так всем видно... Или ты хочешь сказать, что я та стрела, что летит на видио ?)
     
  18. Автор темы
    IcedwinterZ

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

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

    alexandrage Администратор

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

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    ООООООО[DOUBLEPOST=1486244330][/DOUBLEPOST]
    Я не знал, что так с фором можно делать
     
  21. AtomicInteger

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

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

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