1. Le forum de Minecraft-France va définitivement fermer ses portes. Celui-ci restera en lecture seule mais vous ne pourrez plus y apporter de nouveaux topics. Nous vous invitons à nous rejoindre sur le Discord de Minecraft-France qui permet de présenter vos projets, discuter avec la communauté etc.. Merci à tous d'avoir fait vivre ce forum de nombreuses années. Pour nous rejoindre sur Discord, Cliquez ici

Résolu Enlever des items aléatoirement de l'inventaire

Discussion dans 'Mapping' créé par Membre supprimé 67874, 14 Juil 2016.

Statut de la discussion:
N'est pas ouverte pour d'autres réponses.
  1. B'jour !

    C'pas possible ça ! J'demande encore de l'aide !

    J'essaye de faire un système qui permettrait de supprimer des items de manière aléatoire dans l'inventaire.
    J'explique le concept : Je voudrais créer plusieurs difficultés sur une map : Facile, Normal, Difficile.
    Le mode Facile permettant de ne pas perdre tes items. (avec la gamerule KeepInventory)
    Le mode Difficile qui fera perdre tout ses items lors s'un décès
    Et enfin le mode Normal qui, lui permettrait de ne perdre que la moitié des items que le joueur avait avant sa mort.
    Pour se faire j'ai besoin de faire un système qui fera perdre, donc la moitié des items mais aussi de manière aléatoire, ce qui rend la chose beaucoup plus complexe. Voilà tout.
    En espérant une solution à mon problème. Bon après-midi !

    Signé, lemecquiatoujoursbesoind'aide.
     
  2. luludatra

    luludatra Enter the World

    Inscrit:
    1 Oct 2014
    Messages:
    15
    Points:
    70
    Sexe:
    Homme
    J'vois qu'il y'a le tag [résolu] à coté de ton titre, mais j'vais quand même donnée une solution. Oui. Parce que.

    Bref, j'vais le faire un gros point, j'imagine que tu vas comprendre comment faire. Si jamais, tu me dis quel point je dois approfondir en t'expliquant les commandes que j'utiliserais.

    -Premièrement, tu captes la mort de ton joueur. (Le KeepInventory en False)
    -A sa mort, tu as normalement le temps de tp ses items à un lieu précis.
    -Maintenant, c'est plus technique: (sur une clock, toujours)

    *Tu vas ajouter un score 0 à tout les items du défunt
    *Puis set un score à tout les items ayant un score de 0 avec un count 1 (Soit /scrb set @e[score_Item_min=0,score_Item=0,c=1] Item 1)
    *Il faut ajouter, simplement, un score de 1 chaques ticks sur tout les items ayant un score Item_min=1 (Pas de c=1, cette fois.)
    *Tu vas test s'il reste des Item en Item=0
    *Si non, tu peux lancer en impulse une suite d'operation:

    *à l'aide du système précédent, tu peux facilement connaître ton item qui aura le plus grande score.
    *Cet item, tu vas diviser son score en 2 à l'aide d'une operation.
    *Maintenant, tu vas enlever à tous les items le nombre que tu auras obtenus.
    *Il te suffira de faire un joli petit /kill @e[type=Item,score_Item=0] pour supprimer tout les items qui seront sous la moitié du nombres d'items. (Puisque le score le plus haut correspondra au nombres d'items (et de stack, logiquement))
    *Les autres items, tu peux simplement les re-tp sur le joueur qui renaît de ses cendres.


    Voilà voilà, comme dit plus haut, tu peux me demander des précisions sur certaines parties. J'ai été assez concis... (J'peux même te faire le système sur une map vierge, okazou.)
     
  3. Mlakuss

    Mlakuss Rédacteur

    Inscrit:
    7 Sept 2013
    Messages:
    1 694
    Points:
    180
    Sexe:
    Homme
    Avec 60 objets, ton système aurait besoin de 5 secondes pour fonctionner (et il faut faire attention à ne pas prendre les objets naturellement présent dans le monde).
    Pour accélérer tout ça, il est possible d'obtenir directement le nombre d'objets via un /testfor que l'on combine à un /stats.

    Dans le cas où l'on veut juste la moitié, il est possible de faire ceci dans une horloge:
    Code (cpp):
    /tp @r[x,y,z,type=Item,r=] @p
    /kill @r[x,y,z,r,type=Item]
    60 objets traités en 1.5 secondes, pas de scoreboard.
     
  4. J'ai trouvé un système plus simple :
    J'ai fais un randomizer qui s'activera par exemple 10 fois, et sur ce randomizer, j'ai positionné 36 sorties (le nombre de slots disponibles dans l'inventaire). Ensuite, avec un spreadplayers, je tp une ArmorStand de manière aléatoire sur ces 36 sorties. Pour finir J’exécute une commande en dessous cette ArmorStand (Je remplace le slot concerné par de l'air avec un replaceitem).

    On peut même rajouter 9 sorties (donc 45), pour doubler la hotbar, ça augmente les chances de faire retirer les principaux items du joueur.
     
Statut de la discussion:
N'est pas ouverte pour d'autres réponses.

Partager cette page