Помогите Рандом не работает.

Beginner1567

Новичок
Пользователь
Баллы
11
Имя в Minecraft
Begginer1567
public void onblock(final BlockBreakEvent e) {
final Player p = e.getPlayer();
if (getRandom(0.009)) {
p.sendMessage("1");
}

}
сам ивент, но 1 пишется всегда. сам метод рандома:
public static boolean getRandom(final double chance) {
return Math.random() < chance;
}
 
Код:
Random random = new Random();
int number = random.nextInt(100);
if(number >= 75)
{
   p.sendMessage("1");
}
 
Последнее редактирование:
Извиняюсь, random.nextInt(100); *
public void onblock(final BlockBreakEvent e) {
final Player p = e.getPlayer();
Random random = new Random();
int number = random.nextInt(100);
if(number >= 100)
{
TitleAPI.sendTitle(p, 45, 45, 45, ChatColor.GREEN + "Зачем ты это делаешь?!", " ");
}
}
не работает.
 
public void onblock(final BlockBreakEvent e) {
final Player p = e.getPlayer();
Random random = new Random();
int number = random.nextInt(100);
if(number >= 100)
{
TitleAPI.sendTitle(p, 45, 45, 45, ChatColor.GREEN + "Зачем ты это делаешь?!", " ");
}
}
не работает.
Ошибка есть?
 
public void onblock(final BlockBreakEvent e) {
final Player p = e.getPlayer();
Random random = new Random();
int number = random.nextInt(100);
if(number >= 100)
{
TitleAPI.sendTitle(p, 45, 45, 45, ChatColor.GREEN + "Зачем ты это делаешь?!", " ");
}
}
не работает.
Ну дак а что ты хочешь, random.nextInt(100) возвращает от 0 до 99 включительно, а ты проверяешь, если оно будет 100 или больше, никогда оно не будет. Если нужно от 1 до 100 включительно, тогда делай
int number = random.nextInt(100) + 1;
 
Ну дак а что ты хочешь, random.nextInt(100) возвращает от 0 до 99 включительно, а ты проверяешь, если оно будет 100 или больше, никогда оно не будет. Если нужно от 1 до 100 включительно, тогда делай
int number = random.nextInt(100) + 1;
Он наверное думал, что это 100% шанс😆
 
public void onblock(final BlockBreakEvent e) {
final Player p = e.getPlayer();
Random random = new Random();
int number = random.nextInt(100);
if(number >= 99)
{
p.sendMessage("1");
}
}
Всё ещё не работает.
 
public void onblock(final BlockBreakEvent e) {
final Player p = e.getPlayer();
Random random = new Random();
int number = random.nextInt(100);
if(number >= 99)
{
p.sendMessage("1");
}
}
Всё ещё не работает.
Что у тебя не работает?
@EventHandler добавил? Событие зарегистрировал? Сделай вывод сообщения еще в начале метода.
 
Что у тебя не работает?
@EventHandler добавил? Событие зарегистрировал? Сделай вывод сообщения еще в начале метода.
Ну так там очевидно, что у него вылетает тайтл с шансом в 1%. Чел выше фигню посоветовал, теперь он от нее отталкиваться будет.
 
Ну так там очевидно, что у него вылетает тайтл с шансом в 1%. Чел выше фигню посоветовал, теперь он от нее отталкиваться будет.
Ну я лично люблю Random. Я с ним согласен
 
Ну так там очевидно, что у него вылетает тайтл с шансом в 1%. Чел выше фигню посоветовал, теперь он от нее отталкиваться будет.
public void onblock(final BlockBreakEvent e) {
final Player p = e.getPlayer();
if (getRandom(0.009)) {
p.sendMessage("1");
}

}
сам ивент, но 1 пишется всегда. сам метод рандома:
public static boolean getRandom(final double chance) {
return Math.random() < chance;
}
Так у меня другого выхода нет, код выше не работает.
 
public void onblock(final BlockBreakEvent e) {
final Player p = e.getPlayer();
if (getRandom(0.009)) {
p.sendMessage("1");
}

}
сам ивент, но 1 пишется всегда. сам метод рандома:
public static boolean getRandom(final double chance) {
return Math.random() < chance;
}
Так у меня другого выхода нет, код выше не работает.
Что у тебя не работает?
@EventHandler добавил? Событие зарегистрировал? Сделай вывод сообщения еще в начале метода.
То что ты говоришь не работает, ничего нам не дает. Пиши как оно работает. Какая реакция и что делаешь.
 
я так рандом пишу и у меня всё работает:
Код:
int i = new Random().nextInt(100);
switch (data.getInt("playersData." + name + ".CritLevel")) {
            case 1:
                if (i <= 5) {
                                          e.setDamage(e.getDamage() * 1.5);
                        e.getEntity().getWorld().playEffect(e.getEntity().getLocation(), Effect.BOW_FIRE, 2);
                        e.getEntity().getWorld().spawnParticle(Particle.LAVA, e.getEntity().getLocation().add(0, 1, 0),
                                10);

                    
                }
                break;
            case 2:
                if (i <= 10) {
                    e.setDamage(e.getDamage() * 1.75);
                    e.getEntity().getWorld().playEffect(e.getEntity().getLocation(), Effect.BOW_FIRE, 3);
                    e.getEntity().getWorld().spawnParticle(Particle.LAVA, e.getEntity().getLocation().add(0, 1, 0), 10);

                }
                break;
            case 3:
                if (i <= 15) {
                    e.setDamage(e.getDamage() * 2);
                    e.getEntity().getWorld().playEffect(e.getEntity().getLocation(), Effect.BOW_FIRE, 4);
                    e.getEntity().getWorld().spawnParticle(Particle.LAVA, e.getEntity().getLocation().add(0, 1, 0), 10);

                }
                break;
            case 4:
  if (i <= 100) {
                    e.setDamage(e.getDamage() * 2);
                    e.getEntity().getWorld().playEffect(e.getEntity().getLocation(), Effect.BOW_FIRE, 4);
                    e.getEntity().getWorld().spawnParticle(Particle.LAVA, e.getEntity().getLocation().add(0, 1, 0), 10);
                break;
            }
public void onblock(final BlockBreakEvent e) {
final Player p = e.getPlayer();
if (getRandom(0.009)) {
p.sendMessage("1");
}

}
сам ивент, но 1 пишется всегда. сам метод рандома:
public static boolean getRandom(final double chance) {
return Math.random() < chance;
}
Так у меня другого выхода нет, код выше не работает.
 
PHP:
Random rand = new Random();
int number = rand.nextInt(100) + 1;
if(number <= 75) {
//TODO
}
Выполнение кода с шансом в 75%
 
Назад
Верх