SOLVED Spawn mob avec item perso


  • Bonjour, j’aimerais savoir comment faire spawn un mob avec un objet exemple j’ai mon lingot de titanium (c’est un exemple) et si je clique sur le sol sa sapwn mon mob un nouvel oeuf en gros 😉
    je sais qu’il y a ce genre de systeme dans orespawn mai j’ai rien trouver dans les classes

  • Administrateurs Rédacteurs Moddeurs confirmés

    Regardes comment fonctionne l’œuf.


  • justement j’y ai déja penser mais je ne trouve pas la classe

  • Administrateurs Rédacteurs Moddeurs confirmés

    ItemMonsterPlacer.java

    ​    public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_)
    
        {
            if (p_77648_3_.isRemote)
            {
                return true;
            }
            else
            {
                Block block = p_77648_3_.getBlock(p_77648_4_, p_77648_5_, p_77648_6_);
                p_77648_4_ += Facing.offsetsXForSide[p_77648_7_];
                p_77648_5_ += Facing.offsetsYForSide[p_77648_7_];
                p_77648_6_ += Facing.offsetsZForSide[p_77648_7_];
                double d0 = 0.0D;
    
                if (p_77648_7_ == 1 && block.getRenderType() == 11)
                {
                    d0 = 0.5D;
                }
    
                Entity entity = ItemMonsterPlacer.spawnCreature(p_77648_3_, p_77648_1_.getItemDamage(), (double)p_77648_4_ + 0.5D, (double)p_77648_5_ + d0, (double)p_77648_6_ + 0.5D);
    
                if (entity != null)
                {
                    if (entity instanceof EntityLivingBase && p_77648_1_.hasDisplayName())
                    {
                        ((EntityLiving)entity).setCustomNameTag(p_77648_1_.getDisplayName());
                    }
    
                    if (!p_77648_2_.capabilities.isCreativeMode)
                    {
                        –p_77648_1_.stackSize;
                    }
                }
    
                return true;
            }
        }
    

  • ok merci mais ou je place le monstre  dans le code que je veux spawn?
    à la place de EntityLivingBase?

  • Administrateurs Rédacteurs Moddeurs confirmés

    En fait c’est la fonction ItemMonsterPlacer.spawnCreature(p_77648_3_, p_77648_1_.getItemDamage(), (double)p_77648_4_ + 0.5D, (double)p_77648_5_ + d0, (double)p_77648_6_ + 0.5D);

    qui s’occupe de faire apparaître le mob et trouve quel est le mob à faire spawner en fonctino du metadata de l’item. Donc il faudrait que tu reprennes cette fonction en mettant ton mob à la place.


  • ok merci mais j’ai pas tout compris car le metadata change non ?
    si par exemple mon mob c’est darkmob.java je fait quoi ?


  • Libra, tu as des base en java (ou en autre langage) ?


  • oui en vb et je debute en java donc dsl si sa vous parait simple


  • je croyais que le code etait spawn.lemob (world,world,int x,int y, int z) un truc comme sa


  • @‘Libra’:

    je croyais que le code etait spawn.lemob (world,world,int x,int y, int z) un truc comme sa

    En java ça ne se passe pas comme çà…

    Il faut faire ceci :

    • variable.uneFonction(desParamètres), ou
    • Classe.uneFonctionStatique(desParamètres)

    Dans ce cas précis, il faut rajouter ce code dans ta fonction :
    uneInstanceDeLaClasseWorld.spawnEntity(new TonEntitée(), x, y, etc).