- Баллы
- 66
- Имя в Minecraft
- DieF
@EventHandler
public void onShoot(EntityShootBowEvent e)
{
if(e.getEntity().getType() == EntityType.PLAYER)
{
Player player = (Player) e.getEntity();
Arrow arrow = player.getWorld().spawn(e.getProjectile().getLocation(), Arrow.class);
Vector BadVector = e.getProjectile().getLocation().getDirection();
Vector NewVector = new Vector (-BadVector.getX(), BadVector.getY(), BadVector.getZ());
Vector direction = VectorRotateY( NewVector, 10 );
arrow.setVelocity( direction );
}
}
public static Vector VectorRotateY(Vector dir, double angleD)
{
double angleR = Math.toRadians(angleD);
double x = dir.getX();
double z = dir.getZ();
double cos = Math.cos(angleR);
double sin = Math.sin(angleR);
return (new Vector(x*cos+z*(-sin), 0.0, x*sin+z*cos)).normalize();
}
public void onShoot(EntityShootBowEvent e)
{
if(e.getEntity().getType() == EntityType.PLAYER)
{
Player player = (Player) e.getEntity();
Arrow arrow = player.getWorld().spawn(e.getProjectile().getLocation(), Arrow.class);
Vector BadVector = e.getProjectile().getLocation().getDirection();
Vector NewVector = new Vector (-BadVector.getX(), BadVector.getY(), BadVector.getZ());
Vector direction = VectorRotateY( NewVector, 10 );
arrow.setVelocity( direction );
}
}
public static Vector VectorRotateY(Vector dir, double angleD)
{
double angleR = Math.toRadians(angleD);
double x = dir.getX();
double z = dir.getZ();
double cos = Math.cos(angleR);
double sin = Math.sin(angleR);
return (new Vector(x*cos+z*(-sin), 0.0, x*sin+z*cos)).normalize();
}