Помогите Анимация эффектов

Energy warrior

Активный участник
Пользователь
Баллы
76
Привет ребята! Я конечно понимаю что лучше подождать и поучиться но к сожалению я человек который любит всё и сразу. Поэтому я хочу чтобы мне подсказали как сделать пакетами эффект и чтобы он кружил вокруг игрока. как эффект делать я знаю а вот как нужно его спавнить чтобы он крутился нет?
 
Тригонометрия. Так что быстро не получится. Иди закончи школу.
 
Тригонометрия. Так что быстро не получится. Иди закончи школу.
maxresdefault.jpg
 
В общем я немного покрутил снус x и косинус z, покрутил ранеблы и циклы и получил вот это
Ребят, чё сделать чтобы само крутилось а не когда я y координату меняю
Вот код если чё.
Код:
Player p = (Player) sender;
                Bukkit.getScheduler().runTaskTimer(this, ()->{
                        for(int i = 0; i < 360; i++)
                        {
                            Location loc = p.getLocation();
                            float newz = (float) Math.cos(loc.getY()+ 0.01);
                            float newx = (float) Math.sin(loc.getY()+ 0.01);
                            float newy = (float) (Math.sin(newx) + Math.cos(newz));
                            PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(EnumParticle.FLAME, true,
                                    (float)loc.getX() + newx,(float)loc.getY() + newy,(float)loc.getZ() + newz, 0, 0, 0, 0, 0);
                            PlayerConnection pc = ((CraftPlayer)p).getHandle().playerConnection;
                            pc.sendPacket(packet);
                        }
                }, 0, 1);
 
Последнее редактирование:
В общем я немного покрутил снус x и косинус z, покрутил ранеблы и циклы и получил вот это
Ребят, чё сделать чтобы само крутилось а не когда я y координату меняю
Вот код если чё.
Код:
Player p = (Player) sender;
                Bukkit.getScheduler().runTaskTimer(this, ()->{
                        for(int i = 0; i < 360; i++)
                        {
                            Location loc = p.getLocation();
                            float newz = (float) Math.cos(loc.getY()+ 0.01);
                            float newx = (float) Math.sin(loc.getY()+ 0.01);
                            float newy = (float) (Math.sin(newx) + Math.cos(newz));
                            PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(EnumParticle.FLAME, true,
                                    (float)loc.getX() + newx,(float)loc.getY() + newy,(float)loc.getZ() + newz, 0, 0, 0, 0, 0);
                            PlayerConnection pc = ((CraftPlayer)p).getHandle().playerConnection;
                            pc.sendPacket(packet);
                        }
                }, 0, 1);
Рандомить координаты
 
Код:
package Example.runs;

import java.util.List;

import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;

public class Scheduler extends BukkitRunnable {
    List<Player> ps;

    public Scheduler(List<Player> ps) {
        this.ps = ps;
    }

    @Override
    public void run() {
        for(Player p : ps) {
            runs(p.getLocation(), p);
        }
    }
    
    public void runs(Location start, Player p) {
        start = start.add(new Vector(0,0,-1.7));
        for (double t = 0; t < 2 * Math.PI; t += 0.1) {
            try {
                Thread.sleep(20);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            Location news = start.add(0.2 * Math.cos(t), 0, 0.2 * Math.sin(t));
            p.spawnParticle(Particle.LAVA, news.clone(), 1, 0.1, 0.1, 0.1, 0);
        }
    }
}
 
Код:
package Example.runs;

import java.util.List;

import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;

public class Scheduler extends BukkitRunnable {
    List<Player> ps;

    public Scheduler(List<Player> ps) {
        this.ps = ps;
    }

    @Override
    public void run() {
        for(Player p : ps) {
            runs(p.getLocation(), p);
        }
    }
   
    public void runs(Location start, Player p) {
        start = start.add(new Vector(0,0,-1.7));
        for (double t = 0; t < 2 * Math.PI; t += 0.1) {
            try {
                Thread.sleep(20);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            Location news = start.add(0.2 * Math.cos(t), 0, 0.2 * Math.sin(t));
            p.spawnParticle(Particle.LAVA, news.clone(), 1, 0.1, 0.1, 0.1, 0);
        }
    }
}
+ в копилку знаний.
 
Код:
package Example.runs;

import java.util.List;

import org.bukkit.Location;
import org.bukkit.Particle;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;

public class Scheduler extends BukkitRunnable {
    List<Player> ps;

    public Scheduler(List<Player> ps) {
        this.ps = ps;
    }

    @Override
    public void run() {
        for(Player p : ps) {
            runs(p.getLocation(), p);
        }
    }
  
    public void runs(Location start, Player p) {
        start = start.add(new Vector(0,0,-1.7));
        for (double t = 0; t < 2 * Math.PI; t += 0.1) {
            try {
                Thread.sleep(20);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            Location news = start.add(0.2 * Math.cos(t), 0, 0.2 * Math.sin(t));
            p.spawnParticle(Particle.LAVA, news.clone(), 1, 0.1, 0.1, 0.1, 0);
        }
    }
}
Не пойдёт. У моей спиральки анимация лучше. Я когда двигаюсь она за мной бегает. А эта просто обновляется.
Хоть она и стоит на месте пока я корды не поменяю
 
Не пойдёт. У моей спиральки анимация лучше. Я когда двигаюсь она за мной бегает. А эта просто обновляется.
Хоть она и стоит на месте пока я корды не поменяю
А ты че думал, в сказку попал? Этот код юзался для статических координат с арморстендами.
Для кастома учи тригонометрию сам.
 
А ты че думал, в сказку попал? Этот код юзался для статических координат с арморстендами.
Для кастома учи тригонометрию сам.
Крайне интересное видео, что вызывает неотложный вопрос, как менять угол поворота частей армор стенда и сам армор стенд? гугл молчит
 
Назад
Верх