Trop de blocs posés
-
Bonjour,
J’ai créé un effet custom afin de poser des blocs de glace sous mes pieds :
public void onTickPlayer(TickEvent.PlayerTickEvent event) { event.player.worldObj.setBlock((int)event.player.posX+1, (int)event.player.posY-2, (int)event.player.posZ+1, Blocks.ice); event.player.worldObj.setBlock((int)event.player.posX+1, (int)event.player.posY-2, (int)event.player.posZ, Blocks.ice); event.player.worldObj.setBlock((int)event.player.posX, (int)event.player.posY-2, (int)event.player.posZ+1, Blocks.ice); event.player.worldObj.setBlock((int)event.player.posX, (int)event.player.posY-2, (int)event.player.posZ, Blocks.ice); }
Cependant, il me pose trop de blocs :
:::
(http://image.noelshack.com/fichiers/2017/15/1491939002-2017-04-11-21-22-57.png)
:::Pouvez-vous m’aider ?
Merci d’avance,
LP -
Il faut rajouter un compteur, une opération par modulo de World#getTotalWorldTime pourrait marcher.
-
J’ai pas trop compris ce que tu veux dire… Pourrais-tu me dis comment et pourquoi faire cela ?
-
if(event.player.worldObj.getTotalWorldTime() % 20 == 0)
{
// action
C’est pour éviter de faire l’action à chaque tick.Je trouve ça étrange qu’il pose 3 couches en dessous du joueur, vu ton code il devrait que en avoir une.
-
Ouais Je vais voir si ton code marche robin
EDIT :
Ca ne correspond pas a ce que je veux, maintenant il fait apparaître les trois couches tous les x ticks mais du coup si je me déplace, je risque de tomber de la plateforme créer. J’ai modifié “un peu” ma fonction :@SubscribeEvent public void onTickPlayer(TickEvent.PlayerTickEvent event) { if(event.player.isPotionActive(DeamonEffect.customEffectID)) { if(event.player.inventory.getStackInSlot(8) == null) { event.player.inventory.setInventorySlotContents(8, new ItemStack(Items.snowball,64)); } else if(event.player.inventory.getStackInSlot(8).getItem() == Items.snowball) { event.player.inventory.setInventorySlotContents(8, new ItemStack(Items.snowball,64)); } else { event.player.addChatMessage(new ChatComponentText("Merci de vider le 40ème slot qui est :")); event.player.addChatMessage(new ChatComponentText(event.player.inventory.getStackInSlot(40).getItem().getUnlocalizedName())); } if(event.player.isSneaking()) { if(event.player.worldObj.getTotalWorldTime() % 20 == 0) { if(event.player.worldObj.getBlock((int)event.player.posX+1, (int)event.player.posY-2, (int)event.player.posZ+1)==Blocks.ice) { event.player.worldObj.setBlock((int)event.player.posX+1, (int)event.player.posY-2, (int)event.player.posZ+1, Blocks.air); event.player.worldObj.setBlock((int)event.player.posX+1, (int)event.player.posY-3, (int)event.player.posZ+1, Blocks.ice); } if(event.player.worldObj.getBlock((int)event.player.posX+1, (int)event.player.posY-2, (int)event.player.posZ)==Blocks.ice) { event.player.worldObj.setBlock((int)event.player.posX+1, (int)event.player.posY-2, (int)event.player.posZ, Blocks.air); event.player.worldObj.setBlock((int)event.player.posX+1, (int)event.player.posY-3, (int)event.player.posZ, Blocks.ice); } if(event.player.worldObj.getBlock((int)event.player.posX, (int)event.player.posY-2, (int)event.player.posZ+1)==Blocks.ice) { event.player.worldObj.setBlock((int)event.player.posX, (int)event.player.posY-2, (int)event.player.posZ+1, Blocks.air); event.player.worldObj.setBlock((int)event.player.posX, (int)event.player.posY-3, (int)event.player.posZ+1, Blocks.ice); } if(event.player.worldObj.getBlock((int)event.player.posX, (int)event.player.posY-2, (int)event.player.posZ)==Blocks.ice) { event.player.worldObj.setBlock((int)event.player.posX, (int)event.player.posY-2, (int)event.player.posZ, Blocks.air); event.player.worldObj.setBlock((int)event.player.posX, (int)event.player.posY-3, (int)event.player.posZ, Blocks.ice); } } } else { if(event.player.worldObj.getTotalWorldTime() % 20 == 0) { event.player.worldObj.setBlock((int)event.player.posX+1, (int)event.player.posY-2, (int)event.player.posZ+1, Blocks.ice); event.player.worldObj.setBlock((int)event.player.posX+1, (int)event.player.posY-2, (int)event.player.posZ, Blocks.ice); event.player.worldObj.setBlock((int)event.player.posX, (int)event.player.posY-2, (int)event.player.posZ+1, Blocks.ice); event.player.worldObj.setBlock((int)event.player.posX, (int)event.player.posY-2, (int)event.player.posZ, Blocks.ice); } } } }