Войти или зарегистрироваться

Помогите Не работает цикл for

Статус
Закрыто для дальнейших ответов.

MrSharky

Участник
Пользователь
Баллы
33
Пожалуйста помогите!
Вот так плагин не работает:
Код:
    @EventHandler
    public void onRespawn(PlayerRespawnEvent e){
    if(!e.isBedSpawn()){ 
          e.getPlayer().sendMessage("Произошла ошибка! Сейчас вы появитесь в случайной точке...");
          Ran ran = new Ran();
M1:      for(int i = 0; i > 100000; i++){
            Location player = new Location(e.getPlayer().getWorld(), ran.getX(), ran.getY(), ran.getZ());
            Location  block = new Location(e.getPlayer().getWorld(), ran.getX(), ran.getY() - 1, ran.getZ());
              if(player.getBlock().isEmpty() && !block.getBlock().isEmpty() && !block.getBlock().isLiquid() && ran.getY() > 60 && block.getBlock().getType() != Material.STONE){
                  e.getPlayer().teleport(player);           
                  e.getPlayer().sendMessage("Постоянная точка вашего появления установлена!");
                  e.getPlayer().setBedSpawnLocation(player);
                  break M1;
              }
          }
    }
}
Я убрал оператор if(который идет после for) и все строки связанные с посылкой сообщения к игроку(думал, что все дело в русских буквах), сделал чтобы был только один цикл и убрал break(на всякий случай),но все равно не работает...
Код:
  @EventHandler
  public void onRespawn(PlayerRespawnEvent e){
     if(!e.isBedSpawn()){
         for(int i = 0; i > 0; i++){
                         Ran r = new Ran();
                           Location player = new Location(e.getPlayer().getWorld(), r.getX(), r.getY(),r.getZ());
                           e.getPlayer().teleport(player);
       }
     }
  }
Только если убрать цикл for ,начинает работать:
Код:
    @EventHandler
    public void onJoin(PlayerRespawnEvent e){
        if(!e.getPlayer().hasPlayedBefore()){
                Ran r = new Ran();
                Location player = new Location(e.getPlayer().getWorld(), r.getX(), r.getY(),r.getZ());
                e.getPlayer().teleport(player);
        }
    }
 
Пожалуйста помогите!
Вот так плагин не работает:
Код:
    @EventHandler
 
M1:      for(int i = 0; i > 100000; i++){
Я убрал оператор if(который идет после for) и все строки связанные с посылкой сообщения к игроку(думал, что все дело в русских буквах), сделал чтобы был только один цикл и убрал break(на всякий случай),но все равно не работает...
Код:
         for(int i = 0; i > 0; i++){

иди учи циклы.
 
дык вроде все правильно...
Циклы написаны не правильно, всё потому, что у тебя в них условия стоят неправильные, всё потому, что у тебя знаний по нулям, а значит, иди учи базовую логику.
 
к чему это вообще?

Достаточно сказать, что цикл работает, пока условие истина, здесь в циклах этого не происходит никогда, поэтому даже и один раз зайти не может.
 
к чему это вообще?

Достаточно сказать, что цикл работает, пока условие истина, здесь в циклах этого не происходит никогда, поэтому даже и один раз зайти не может.
Сказать честно только сейчас до меня дошло, почему не работает...
 
Теперь поясни, на кой чёрт тебе надо бесконечно телепортировать игрока в одно и то же место?

MrSharky, поддерживаю вопрос. Чего Вы хотите достичь?

Дело в том, что Ваш цикл (когда заработает) будет выполнен в пределах одного тика. Соответственно это будет аналогично тому, что Вы телепортанёте игрока всего один раз.

Какой результат Вам нужен?
 
Последнее редактирование:
Сам сталкивался с такой проблемой когда учил ЯП.
Смотри, это твой код:
Код:
for(int i = 0; i > 10000; i++){
//...
}
получается что цикл будет выполнятся ПОКА i больше 10000, но у тебя i = 0;
поменяй знак > в for на < и всё будет работать :D
 
Последнее редактирование:
Сам сталкивался с такой проблемой когда учил ЯП.
Смотри, это твой код:
Код:
for(int i = 0; i > 10000; i++){
//...
}
получается что цикл будет выполнятся ПОКА i больше 10000, но у тебя i = 0;
поменяй знак > в for на < и всё будет работать :D
Может это его инновационная вариация шедулера?
 
Так я поэтому и спрашиваю чего автор хочет получить. Чтобы не гадать, а подсказать в случае чего.
if(player.getBlock().isEmpty() && !block.getBlock().isEmpty() && !block.getBlock().isLiquid() && ran.getY() > 60 && block.getBlock().getType() != Material.STONE){
Воздух, не воздух, не жидкость, выше 60 и не камень. Явно хочет телепортировать игрока в преисподню безопасное место и случайным образом
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх