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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Пример запроса хотя-бы[DOUBLEPOST=1486291299,1486290573][/DOUBLEPOST]Крч, полазил, хочу сделать так:
    Код:
    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
     
  15. CatCoder

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

    Баллы:
    76
    Имя в Minecraft:
    CatCoder
    https://hastebin.com/amejawibij.java - партиклы.
    https://hastebin.com/jenoqogale.java - зависимый класс.
    Это как 2-ой вариант :D
     
  16. Автор темы
    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();
    Без потока - спаунит, в потоке - нет, как так?
     
  17. Mr_RoboMan

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

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

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

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

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    А по циклу все-равно провиснет сервер
    В новом потоке, вообще тогда не работает.[DOUBLEPOST=1486300428,1486300014][/DOUBLEPOST]Я понял ;D[DOUBLEPOST=1486300492][/DOUBLEPOST]Скорость стрелы - настолько большая, что добирается она до своей точки, за 1 тик, как уменьшить скорость стрелы, не потеряв при это ее точность?[DOUBLEPOST=1486302765][/DOUBLEPOST]Ура! Мы сделали это :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);
                     }
    Выше, код запуска стрелы...

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

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