Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
А как он обычный фейерверк на сервере спаунит? Тоже пакеты отсылает?anti344 написал(а):Это даже не энтити, а партикл, его спавнить нужно через EffectRenderer только на клиенте.Код:extends EntityFX
Значит идея с пакетами не так уж и плоха.
знаем, но почему-то держим в тайне. А может и вовсе не знаете?Dragon2488 написал(а):Мы тоже не спец, но почему то знаем.
Да я хочу сделать некое подобие фейерверка. Бросил гранату, она отсчитала несколько тиков и умерла, а в этом месте заспавнились разноцветные "fireworkSparks" и разлетелись в заданном направлении. Как в классе EntityFireworkSparkFXOldestkon написал(а):Опиши лучше, что за Entity ты хочешь сделать.
Если подобие фейерверка - все частицы надо будет спавнить на клиенте.
Вот это уже более понятно.anti344 написал(а):Отсылать на сервер, на сервере по принятию отсылать на все клиенты кроме того, что отослал.
Пересылать ту инфу, что нужна для спавна(коорды там, еще что-то).
А можно как то иначе?anti344 написал(а):Так а зачем наследовать EntityFX ?
А я разве не это делаю?anti344 написал(а):А если тебе нужна ентити, что просто спавнит частицы, то просто пилишь свою энтити и спавнишь в ней частицы.
Так нужно создавать отдельно ЕГО частицы и энтити, которая их спавнит.Majestic написал(а):У него есть энтити, которое спавнит ЕГО частицы.
Наверное каждый пришедший на этот форум со временем понимает, что "объясните пожалуйста построчно" - ЗДЕСЬ НЕ РАБОТАЕТ. Сам таким был.BlackCrafter написал(а):знаем, но почему-то держим в тайне. А может и вовсе не знаете?
Объясните три пункта:
1) в какой момент отправлять пакет?
2) что этот пакет должен содержать?
3) что делать, когда пакет пришел на сервер? Как спаунить мой EntityFX?
@Override
public void handleServerSide(EntityPlayer player) {
// Как видишь, этот метод берет player в качестве входного параметра,
// тем самым зная, кто его отправил. Ну и открывает игроку менюшку
player.openGui(TutorialMain.instance, id, player.worldObj, (int) player.posX, (int) player.posY, (int) player.posZ);
}
package mods.mod_fireworks;
import java.util.Random;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import mods.mod_fireworks.particles.EntityEffect1;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.world.World;
public class BlockFirework1 extends Block {
public BlockFirework1(int id, Material mat, String name) {
super(id, mat);
this.setUnlocalizedName(name);
this.setCreativeTab(CreativeTabs.tabBlock);
// TODO Auto-generated constructor stub
}
@SideOnly(Side.CLIENT)
public void registerIcons(IconRegister reg)
{
this.blockIcon = reg.registerIcon(ModInfo.modId+":bomb");
//particleHeartIcon = reg.registerIcon("mod_heartblock:heart");
}
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(World world, int x, int y, int z, Random rand)
{
if (world.isRemote){
for (int i=0; i<11; i++){
float mX = rand.nextFloat();
float mY = rand.nextFloat();
float mZ = rand.nextFloat();
float red = rand.nextFloat();
float green = rand.nextFloat();
float blue = rand.nextFloat();
float scale = rand.nextFloat();
int maxAge = 40;
EntitySpark spark = new EntitySpark(world,
x,y,z,mX,mY,mZ,Minecraft.getMinecraft().effectRenderer);
spark.setRBGColorF(red, green, blue);
Minecraft.getMinecraft().effectRenderer.addEffect((EntityFX)spark);
}
}
}
}
нет. Толку то с вас блин, умники. Ничему научить не можете! Зря кароче время на вас мотаю.Majestic написал(а):А то что randomDisplayTick клиентский тебя не смущает?