http://forum.mcmodding.ru/%D0%A2%D0%B5%D0%BC%D0%B0-1-5-2-%D0%94%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE-%D0%BA%D1%80%D1%83%D0%B3%D1%83Lobotino написал(а):По кругу от игрока:
timaxa007 написал(а):http://forum.mcmodding.ru/%D0%A2%D0%B5%D0%BC%D0%B0-1-5-2-%D0%94%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE-%D0%BA%D1%80%D1%83%D0%B3%D1%83Lobotino написал(а):По кругу от игрока:
double y = player.posY;
double x;
double z;
int r = 2;
//От центра патиклы летят в разные стороны
for (float l = 0; l < 2*Math.PI; l += 2*Math.PI/50)
{
x = player.posX + r*Math.cos(l);
z = player.posZ + r*Math.sin(l);
w.spawnParticle("flame", player.posX, y, player.posZ, (x - player.posX) * 0.2d, 0.00D, (z- player.posZ) * 0.2d);
}
//Вариант со спиралью вверх
for (float l = 0; l < 4*Math.PI; l += 2*Math.PI/50)
{
y += 0.03d;
x = player.posX + (r*Math.cos(l)*(l*0.1));
z = player.posZ + (r*Math.sin(l) * (l*0.1));
w.spawnParticle("flame", x, y - 0.5d, z, 0.0d, 0.00D, 0.0d);
}
Напиши и обучи нейросеть - пусть предсказывает когда надо партиклы спаунить, чтобы заранее пакеты слатьLobotino написал(а):На клиенте все работало шикарно, так как нужно, но на сервере ввиду задержек и всякого рода пакетов общая картина искажалась и со стороны других игроков частицы спавнились не в то время и не в том месте.
Есть у кого идеи как можно сделать таймер в частицах?
double multiplier = 0.3d;
Random random1 = new Random(50);
for (int i = 0; i < 30; i++) {
Vec3 vec3 = player.getLook(1.0F);
effectRenderer.addEffect(new CustomParticle(world, player.posX, player.posY, player.posZ, (vec3.xCoord / 2 * multiplier) + random1.nextDouble() * 0.1, (vec3.yCoord / 2 * multiplier) + random1.nextDouble() * 0.1,(vec3.zCoord/2 * multiplier) + random1.nextDouble() * 0.1, 2).setScale(0.8d).setMaxAge(50));
svk2140 написал(а):Тебе надо создать вектор, сначала повернуть на углы игрока, а затем дополнительно повернуть, как тебе нужно и соединить с мировыми координатами. А ты просто прибавляешь, и хочешь, что-бы оно летело в нужную тебе сторону?
Если подходит рандомизация по всем координатам (вних-вверх и ближе-дальше) то достаточно просто прикрутить rand.nextDouble ? (прибавлять) : (отнимать)
Dahaka написал(а):Кароче, если ты хочешь именно идеальным конусом, то у меня не особо получилось. Если смотреть вперед, то все нормально, но если вниз или вверх, то все слетается в одну линию.
Можно рандомить, как ты, но это уже не конус. Только рандомить нужно не равномерную величину (0; 1), а нормальную. rand.nextGauss(). К тому же тут диапазон (-6; 6)