Помогите Рандомизация инвентаря игрока.

  • Автор темы Автор темы Grazy
  • Дата начала Дата начала

Grazy

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Prost
Вот нахимичил такой код.
Код:
    public void Chest(Player p){
        ArrayList<ItemStack[]> list = new ArrayList<ItemStack[]>();                
        list.add(p.getInventory().getContents());
        Collections.shuffle(list);
        p.getInventory().clear();
        for(int i=0;i < list.size();i++) {
        Нужно как-то перебрать все слоты инвентаря игрока, и расставить предметы в рандомном месте.
        }
      }
    }
 
Последнее редактирование:
В идеале это должно происходить так. Игрок который оказался в нужном радиусе от босса перемешиваються все предметы в инвентаре, то есть у игрока в инвентаре будут разбросаны все его вещи. Но так как я привык работать по большой части с готовым кодом, я смог только написать тот код что выше.
 
По сути в твоем коде ты кидаешь в список 1 инвентарь, потом перемешиваешь все инвентари (1) и с фором перебираешь все инвентари. Тебе нужно взять контент с инвентаря, преобразовать в список, перемешать, а потом уже расставлять фором. Вот примерно так:
Код:
public void Chest(Player p) {
        ArrayList<ItemStack> list = Arrays.asList(p.getInventory().getContents());
        Collections.shuffle(list);
        p.getInventory().clear();
        for (int i = 0; i < list.size(); i++) {
                p.getInventory().setItem(i, list.get(i));
        }
}
 
p.getInventory().setItem(i, list.get(i)); Сможет расставить предмет не поочередно а рандомно, оставляя иногда пустые слоты?
 
p.getInventory().setItem(i, list.get(i)); Сможет расставить предмет не поочередно а рандомно, оставляя иногда пустые слоты?
Ну используй рандом, в чем проблема? Вместо i, у тебя будет new Random().nextInt(number)
 
Ну используй рандом, в чем проблема? Вместо i, у тебя будет new Random().nextInt(number)
Ой хреново чето каждый раз рандом юзать проверять не занят ли слот. Не легче так?
Код:
        List<Integer> indexes = new ArrayList<>();
        for (int i = 0; i < inv.getSize(); i++) {
            indexes.add(i);
        }
        Collections.shuffle(indexes);
        Iterator<Integer> iter = indexes.iterator();
 
Назад
Верх