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

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

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    В общем, пробовал так:
    Спаунит только один партикл, потом, сервер висит.


    Код:
    Arrow a = (Arrow) p.launchProjectile(Arrow.class);
                a.setVelocity(p.getLocation().getDirection().multiply(200));
                if(c.getBoolean("effect-ammo")){
                    new ParticleThread().run();
                }
     
  2. alexandrage

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

    Баллы:
    173
    Потому что ты дурачек :D. new Scheduler().start();
     
  3. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Аааа... Да я тупой просто, сори
     
  4. AtomicInteger

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

    Баллы:
    76
    Отпишешь потом, как сервер себя чувствует.
     
  5. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Ты знаешь, шикарно, ведь партиклы не спаунятся
     
  6. CatCoder

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

    Баллы:
    76
    Имя в Minecraft:
    CatCoder
  7. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Он пакетом отправляет, я тоже так хотел, но, он может в пакет аргументы писать, я - нет...
    Там до 1.7 (включ.) можно было размещать аргументы в пакет, дальше, видимо, как то по другому, как?
     
  8. CatCoder

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

    Баллы:
    76
    Имя в Minecraft:
    CatCoder
    Ты какую версию используешь?
     
  9. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    1.9
     
  10. CatCoder

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

    Баллы:
    76
    Имя в Minecraft:
    CatCoder
    Хм, тогда в противном случае используй ProtocolLib либо посмотри как выглядит конструктор пакета партиклов.
     
  11. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Где?
     
  12. CatCoder

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

    Баллы:
    76
    Имя в Minecraft:
    CatCoder
    В гугле.
     
  13. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Пример запроса хотя-бы
    Крч, полазил, хочу сделать так:
    Код:
    public void sendToPlayer(Player player, Location location, float offsetX, float offsetY, float offsetZ, float speed, int count) throws Exception {
            Packet63WorldParticles packet = new Packet63WorldParticles();
            ReflectionUtilities.setValue(packet, "a", particleName);
            ReflectionUtilities.setValue(packet, "b", (float) location.getX());
            ReflectionUtilities.setValue(packet, "c", (float) location.getY());
            ReflectionUtilities.setValue(packet, "d", (float) location.getZ());
            ReflectionUtilities.setValue(packet, "e", offsetX);
            ReflectionUtilities.setValue(packet, "f", offsetY);
            ReflectionUtilities.setValue(packet, "g", offsetZ);
            ReflectionUtilities.setValue(packet, "h", speed);
            ReflectionUtilities.setValue(packet, "i", count);
            ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
        }
    Щас буду пробовать :D
     
  14. CatCoder

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

    Баллы:
    76
    Имя в Minecraft:
    CatCoder
    https://hastebin.com/amejawibij.java - партиклы.
    https://hastebin.com/jenoqogale.java - зависимый класс.
    Это как 2-ой вариант :D
     
  15. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Код:
    new Thread(){
                        public void run(){
                            while(!a.isOnGround() || !a.isDead() || a == null){
                                ParticleEffect.SMOKE_NORMAL.display(0, 0, 0, 1, 14, a.getLocation(), 1);
                            }
                        }
                    }.start();
    Без потока - спаунит, в потоке - нет, как так?
     
  16. Mr_RoboMan

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

    Баллы:
    123
    Насколько я знаю, не главный тред - не может использовать много чего из ВедроАПИ.
     
  17. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    А как мне партиклы тогда спаунить?
    Код:
    while(!a.isOnGround() || !a.isDead() || a == null){
                            ParticleEffect.SMOKE_NORMAL.display(0, 0, 0, 1, 14, a.getLocation(), 1);
                        }
    Делаю так, и остаюсь без сервера
     
  18. Blc_Dragon

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

    Баллы:
    76
    world.spawnParticle(Particle.FLAME, en.getLocation(), 0);
    ставь 0 - никогда не прогадаешь. у разных партиклов он отвечает за разное, но при 0 они дефолтные
     
  19. Автор темы
    IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    А по циклу все-равно провиснет сервер
    В новом потоке, вообще тогда не работает.
    Я понял ;D
    Скорость стрелы - настолько большая, что добирается она до своей точки, за 1 тик, как уменьшить скорость стрелы, не потеряв при это ее точность?
    Ура! Мы сделали это :D Спасибо вам!
    Сделал это так:

    Код:
    for(int i = 0; i <= 240; i++){
                         loc = loc.add(loc.getDirection().getX(), loc.getDirection().getY() - 0.05, loc.getDirection().getZ());
                         a.getWorld().spawnParticle(Particle.FLAME, loc, 0);
                     }
    Выше, код запуска стрелы...

    Еще раз спасибо, закрываю топик
     
Статус темы:
Закрыта.

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