Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

Крайне интересное видео, что вызывает неотложный вопрос, как менять угол поворота частей армор стенда и сам армор стенд? гугл молчит
тригонометрия + sin cos в ней. Рассчитай угол и добавляй его ранеблом. P.s дибильно как-то объяснил.
 
PHP:
package ru.nms;

import java.util.List;

import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;

import net.minecraft.server.v1_12_R1.EnumParticle;
import net.minecraft.server.v1_12_R1.PacketPlayOutWorldParticles;

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

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

    @Override
    public void run() {
        for(Player p : ps) {
            conus(p.getLocation(), p);
        }
    }
    
    public void conus(Location loc, Player p) {
        
        final double radius = 1.01;
        loc = loc.add(new Vector(0,2,0));
        for(double i = 0; i < 2 * Math.PI; i+=0.2){
            try {     
                Thread.sleep(10);
            }catch(Exception e) {
                e.printStackTrace();
            }
            float newx = (float) Math.cos(i * radius);
            float newy = (float) Math.sin(radius);
            float newz = (float) Math.sin(i * radius);
               PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(EnumParticle.FIREWORKS_SPARK, true,
                    (float)loc.getX() + newx, (float)loc.getY() + newy, (float)loc.getZ() + newz, 25,13,8,0,0);
            ((CraftPlayer)p).getHandle().playerConnection.sendPacket(packet);
        }
            
       }
}
На.
 
PHP:
package ru.nms;

import java.util.List;

import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;

import net.minecraft.server.v1_12_R1.EnumParticle;
import net.minecraft.server.v1_12_R1.PacketPlayOutWorldParticles;

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

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

    @Override
    public void run() {
        for(Player p : ps) {
            conus(p.getLocation(), p);
        }
    }
   
    public void conus(Location loc, Player p) {
       
        final double radius = 1.01;
        loc = loc.add(new Vector(0,2,0));
        for(double i = 0; i < 2 * Math.PI; i+=0.2){
            try {    
                Thread.sleep(10);
            }catch(Exception e) {
                e.printStackTrace();
            }
            float newx = (float) Math.cos(i * radius);
            float newy = (float) Math.sin(radius);
            float newz = (float) Math.sin(i * radius);
               PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(EnumParticle.FIREWORKS_SPARK, true,
                    (float)loc.getX() + newx, (float)loc.getY() + newy, (float)loc.getZ() + newz, 25,13,8,0,0);
            ((CraftPlayer)p).getHandle().playerConnection.sendPacket(packet);
        }
           
       }
}
На.
Спасибо.
Как я понимаю, это без команды /spin код?
 
29.gif

Намек понял?
как же мне повезло что я в 9 классе и понел это на 40% (память не запомнила норм)
 

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

Назад
Верх