Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Java (https://forum.zone-game.info/forumdisplay.php?f=126)
-   -   Задержка выполнения цыкла (https://forum.zone-game.info/showthread.php?t=16420)

Wolfas 22.10.2011 19:35

Задержка выполнения цыкла
 
Доброго времени суток.
В общем суть задачи, необходимо установить задержку выполнения скрипта.

То есть после выполнения одной функции нужна задержка, затем выполнение следующей функции.

hex1r0 22.10.2011 20:05

Re: Задержка выполнения цыкла
 
Код:

Thread.sleep(millis);
millis - время в миллисекундах

ANZO 22.10.2011 21:08

Re: Задержка выполнения цыкла
 
О да ) Треды слипать это по мужицки)

P.S:
Код:

ScheduledFuture<?> Task = ThreadPoolManager.getInstance().scheduleGeneral(new RunnableTask(), Interval);
Где RunnableTask() Runnable метод который будет выполняться через Interval - миллисекунд.

hex1r0 22.10.2011 21:23

Re: Задержка выполнения цыкла
 
Цитата:

Сообщение от ANZO (Сообщение 144697)
О да ) Треды слипать это по мужицки)

P.S:
Код:

ScheduledFuture<?> Task = ThreadPoolManager.getInstance().scheduleGeneral(new RunnableTask(), Interval);
Где RunnableTask() Runnable метод который будет выполняться через Interval - миллисекунд.

такс, стоп где тема находится в л2 разделе что ли? ты объясни где ему взять тред пул менеджер, если он пишет прогу у него его нет :)

ANZO 22.10.2011 21:27

Re: Задержка выполнения цыкла
 
А епт, сорри :D привычка ) Откланиваюсь)

Wolfas 23.10.2011 00:37

Re: Задержка выполнения цыкла
 
Цитата:

Сообщение от hex1r0 (Сообщение 144689)
Код:

Thread.sleep(millis);
millis - время в миллисекундах

Спасибо, но в чистом виде, без указания импортов, и свойств, использовать не возможно, я их не знаю.

hex1r0 23.10.2011 00:44

Re: Задержка выполнения цыкла
 
Цитата:

Сообщение от Wolfas (Сообщение 144734)
Спасибо, но в чистом виде, без указания импортов, и свойств, использовать не возможно, я их не знаю.

Код:

java.lang.Thread

Wolfas 23.10.2011 01:02

Re: Задержка выполнения цыкла
 
Функция нужна для игрового сервера.

Вот таким образом получилось, но по моему она устанавливает паузу не только в в нужной мне функции.
Код:

    for (int i = 0; i < 10; i++) {
      try {
        Thread.sleep(750);
      } catch (InterruptedException ie) {
        ie.printStackTrace();
      }
    }


Deazer 23.10.2011 01:23

Re: Задержка выполнения цыкла
 
слипать триды на онлайн игровых серверах , как минимум очень глупо. Если конечно у вас играет не более 1 го человека.
Советую перечитай пост Анзо.

Wolfas 23.10.2011 01:26

Re: Задержка выполнения цыкла
 
В общем виде получается вот так:

Код:

if(params[0].toLowerCase().equals("pvp1"))
        {
                if(admin.getAccessLevel() >= AdminConfig.COMMAND_GOTOGM)
                {
                        if ((admin.getCommonData().getRace() == Race.ELYOS))
                        {
                        TeleportService.teleportTo(admin, 600010000, 475, 454, 330, 1000);
                        PacketSendUtility.sendMessage(admin, "Вы телепортируетесь в PVP Зону: форт Элийцев.  \n Приятной работы!");
                        return;
                        }
                        if ((admin.getCommonData().getRace() == Race.ASMODIANS))
                        {
                        TeleportService.teleportTo(admin, 600010000, 478, 1093, 335, 1000);
                        PacketSendUtility.sendMessage(admin, "Вы телепортируетесь в PVP Зону: форт Асмодиан.  \n Приятной работы!");
                        return;
                        }
                }
                        if ((admin.getCommonData().getRace() == Race.ELYOS))
                        {
                        admin.getGameStats().setStat(StatEnum.SPEED, -2500);
                        PacketSendUtility.broadcastPacket(admin, new SM_EMOTION(admin, EmotionType.START_EMOTE2, 0, 0), true);
                        TeleportService.teleportTo(admin, 600010000, 475, 454, 330, 7500);
                        PacketSendUtility.sendMessage(admin, "Вы телепортируетесь в PVP Зону: форт Элийцев.  \n Удачных боёв!");
                        for (int i = 0; i < 10; i++) {
      try {
        Thread.sleep(750);
      } catch (InterruptedException ie) {
        ie.printStackTrace();
      }
    }
                        admin.getGameStats().setStat(StatEnum.SPEED, 6000);
                        PacketSendUtility.broadcastPacket(admin, new SM_EMOTION(admin, EmotionType.START_EMOTE2, 0, 0), true);
                        PacketSendUtility.sendMessage(admin, "Скорость востановлена.");
                        return;
                        }
                        if ((admin.getCommonData().getRace() == Race.ASMODIANS))
                        {
                        admin.getGameStats().setStat(StatEnum.SPEED, -2500);
                        PacketSendUtility.broadcastPacket(admin, new SM_EMOTION(admin, EmotionType.START_EMOTE2, 0, 0), true);
                        TeleportService.teleportTo(admin, 600010000, 478, 1093, 335, 7500);
                        PacketSendUtility.sendMessage(admin, "Вы телепортируетесь в PVP Зону: форт Асмодиан.  \n Удачных боёв!");
                        for (int i = 0; i < 10; i++) {
      try {
        Thread.sleep(750);
      } catch (InterruptedException ie) {
        ie.printStackTrace();
      }
    }
                        admin.getGameStats().setStat(StatEnum.SPEED, 6000);
                        PacketSendUtility.broadcastPacket(admin, new SM_EMOTION(admin, EmotionType.START_EMOTE2, 0, 0), true);
                        PacketSendUtility.sendMessage(admin, "Скорость востановлена.");
                        return;
                        }
        }



Текущее время: 18:41. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot