1. Si vous venez d'arriver sur le forum et que vous êtes un peu perdus, cliquez ici !
    Rejeter la notice

Résolu Génerer des coffres rempli de manière aléatoire

Discussion dans 'Aide à la création de mod' créé par Zhymra, 6 Août 2015.

  1. Zhymra

    Zhymra Bûcheron

    Inscrit:
    17 Juil 2015
    Messages:
    266
    Points:
    21
    Salut a tous,

    Dans le but de créer un mod 1.8 rajoutant des structures j'aimerais générer dans ma structure
    des coffres avec des loots aléatoires provenant de Minecraft et/ou de mon mod.
    par exemple une petite maison avec un coffre contenant des diamants ou autres à l'intérieur
    de plus est-il possible que ces Items soit enchantés, renommés, ect...?

    une dernière chose : est-il possible de mettre un spawner custom dans ma structure?
    ex : un Zombie nommé Bob ou autre

    merci de toutes les réponses que vous m'apporterez;)
     
  2. pifou92000

    pifou92000 Mineur de Diamants

    Inscrit:
    23 Juin 2011
    Messages:
    2 689
    Points:
    195
    Sexe:
    Homme
    Salut, oui, tout ce que tu as demandé est faisable, et je peux t'expliquer comment.
    Est-ce que tu sais déjà générer une structure avec des blocs simples ?
     
  3. Zhymra

    Zhymra Bûcheron

    Inscrit:
    17 Juil 2015
    Messages:
    266
    Points:
    21
    oui oui je l'ai déjà fait;)
     
  4. pifou92000

    pifou92000 Mineur de Diamants

    Inscrit:
    23 Juin 2011
    Messages:
    2 689
    Points:
    195
    Sexe:
    Homme
    Pour le coffre contenant des objets aléatoires, tu peux faire quelque chose comme ça :
    Code (cpp):
    world.setBlockState(pos, Blocks.chest.getDefaultState());
    TileEntityChest coffre = (TileEntityChest)world.getTileEntity(pos);

    for(int i=0; i<10; i++)
        coffre.setInventorySlotContents(rand.nextInt(coffre.getSizeInventory()), getRandomLoot(rand));
    Tu places un coffre, et tu places 10 fois un objet aléatoire dans un slot aléatoire. Bien sûr, il faut que tu crées la fonction getRandomLoot, qui doit renvoyer un ItemStack. Par exemple :
    Code (cpp):
    private ItemStack getRandomLoot(Random rand)
    {
        int lootId = rand.nextInt(10);
        switch(lootId)
        {
            case 0:
                return new ItemStack(Items.apple);
            case 1:
                return new ItemStack(Items.diamond);
            case 2:
           
            .....
        }
    }
    Après, pour enchanter ou renommer certains objets, il faut utiliser des fonctions d'ItemStack, que tu peux sûrement trouver en cherchant un peu. :)
     
  5. Zhymra

    Zhymra Bûcheron

    Inscrit:
    17 Juil 2015
    Messages:
    266
    Points:
    21
    ok je chercherais un peu pour les spawners et les items customs
    merci beaucoup de tes réponses rapides comme d'habitude ;)
    [résolu]
     
  6. pifou92000

    pifou92000 Mineur de Diamants

    Inscrit:
    23 Juin 2011
    Messages:
    2 689
    Points:
    195
    Sexe:
    Homme
    Pas de souci ! ;)
    Pour les spawners, c'est un peu comme les coffres en fait, tu dois récupérer un TileEntityMobSpawner sur la case où tu as placé le bloc, et tu peux le personnaliser.
     
  7. Zhymra

    Zhymra Bûcheron

    Inscrit:
    17 Juil 2015
    Messages:
    266
    Points:
    21
    [Edit] hummmmm tout se présenter bien dans eclipse : pas d'erreur
    et Minecraft démarre bien mais quand je load un monde le jeu crash et dans les logs
    on me dit que c'est une : "Exception ticking world" (Une clock infinie?)
    la classe de la structure :
    http://pastebin.com/JgqsTXDj

    une mauvaise manip de ma part?
     
    #7 Zhymra, 6 Août 2015
    Dernière édition: 6 Août 2015

Partager cette page