Faire un random pour un scénarios UHC.

Sala85

Massacreur de Mouton
12 Octobre 2020
36
2
18
22
Bonsoir,
Je cherche à savoir comment faire un random pour le scénarios SuperHeroes sur Minecraft. En gros c'est un scénarios qui donnent un effet différent à chaque joueur parmis : Force ; Resistance ; Speed II ; Jump Boost IV ; Fire Resistance & Saturation. J'ai pas d'idée de comment faire (auparavant j'utilisais une manière nul de faire un random).
Si vous savez comment faire merci de votre aide !
Sala85
 
Bonsoir,

Dans un langage de programmation, en configurant un plugin déjà existant ou en redstone ?

Cordialement,
ShE3py
 
Tu crées une liste de n PotionEffect pour tes n effets différents, puis tu génères un indice aléatoire ?

Java:
private static List<PotionEffect> getPlayerBonusEffects() {
   return Arrays.asList(
      new PotionEffect(PotionEffectType.INCREASE_DAMAGE   , Integer.MAX_VALUE, 1),
      new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE , Integer.MAX_VALUE, 1),
      new PotionEffect(PotionEffectType.SPEED             , Integer.MAX_VALUE, 2),
      new PotionEffect(PotionEffectType.JUMP              , Integer.MAX_VALUE, 4),
      new PotionEffect(PotionEffectType.FIRE_RESISTANCE   , Integer.MAX_VALUE, 1),
      new PotionEffect(PotionEffectType.SATURATION        , Integer.MAX_VALUE, 1)
   );
}

public static void givePlayerBonusEffects(Iterable<Player> players) {
   final List<PotionEffect> effects = getPlayerBonusEffects();
   assert effects instanceof RandomAccess;
   
   final Random random = new Random();
   final int n = effects.size();
   
   for(Player player : players) {
      player.addPotionEffect(effects.get(random.nextInt(n)));
   }
}
 
Re-bonjour,
Merci beaucoup, ça marche ! Mais est-il possible de mettre plusieurs effets sur un joueur (en gros fire resistance et saturation compterait comme un effet pour le joueur) ?
 
Avec une liste de listes d'effets de potion (List<List<PotionEffect>>) et en utilisant Player#addPotionsEffects(...) à la place, oui.

Après ça devient un peu redondant pour l'initialiser, alors tu devrais plutôt mettre la liste des effets bonus avec ta classe descriptive d'un super héros.