Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Задержка выполнения цыкла
#21
MHard Написал:че вы к ThreadPoolManager прицепились, от точно также слипит Триды ( разве есть другие методы сделать отложенный запуск ?).

Я про то, чтобы не расставлять костыли и дабл код. Товарищ Акванокс собственно запруфил то, что я хотел донести до ТС'а упомнинанием о TPM.
Ответ
#22
Удалив лишнее из когда, посмотрите я хоть правильно понял что нужно сделать?

Код:
package playercommands;


public class GoTo extends playerCommand {

    public GoTo() {
        super("goto");
    }

    @Override
    public void executeCommand(Player admin, String[] params) {
        if (admin.getAccessLevel() < AdminConfig.COMMAND_GOTO) {
            PacketSendUtility.sendMessage(admin, "You dont have enough rights to execute this command!");
            return;
        }


        if (params[0].toLowerCase().equals("pvp1")) {
            admin.getGameStats().setStat(StatEnum.SPEED, -2500);
            PacketSendUtility.broadcastPacket(admin, new SM_EMOTION(admin, EmotionType.START_EMOTE2, 0, 0), true);
            TeleportService.teleportTo(admin, 600010000, 831, 1040, 325, 7500);
            new delayTask().run();
        } else if (params[0].toLowerCase().equals("pvp2")) {
            admin.getGameStats().setStat(StatEnum.SPEED, -2500);
            PacketSendUtility.broadcastPacket(admin, new SM_EMOTION(admin, EmotionType.START_EMOTE2, 0, 0), true);
            TeleportService.teleportTo(admin, 600010000, 651, 1144, 323, 7500);
            new delayTask().run();
        }
    else
              PacketSendUtility.sendMessage(admin, "Такого места не существует, возможно вы ошиблись при написании.");
    }


    private class delayTask extends Thread
    {
        public void executeCommand(Player admin, String[] params)
        {
            try
            {
                Thread.sleep(750);
            }
            catch (InterruptedException e){}
                
            admin.getGameStats().setStat(StatEnum.SPEED, 6000);
            PacketSendUtility.broadcastPacket(admin, new SM_EMOTION(admin, EmotionType.START_EMOTE2, 0, 0), true);
            PacketSendUtility.sendMessage(admin, "Скорость востановлена.");
        }
    }
    
}
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Ответ
#23
изжоп какой то

Добавлено через 9 минут
Wolfas Написал:
Код:
    private class delayTask extends Thread
    {
        public void executeCommand(Player admin, String[] params)
        {
            try
            {
                Thread.sleep(750);
            }
            catch (InterruptedException e){}
                
            admin.getGameStats().setStat(StatEnum.SPEED, 6000);
            PacketSendUtility.broadcastPacket(admin, new SM_EMOTION(admin, EmotionType.START_EMOTE2, 0, 0), true);
            PacketSendUtility.sendMessage(admin, "Скорость востановлена.");
        }
    }

Это не будет работать.
[Изображение: l2nextgen.gif]
Ответ
#24
Wolfas Написал:Доброго времени суток.
В общем суть задачи, необходимо установить задержку выполнения скрипта.

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

Пиши в скайп galaxy.entertainment - помогу.
Ответ
#25
корректный метод
Код:
    public main()
    {
        new Thread(new delayTask()).start();
    }
    
    private class delayTask implements Runnable
    {
        public void run()
        {
            try
            {
                Thread.sleep(1000);
            }
            catch (InterruptedException e){}
        }
    }
Ответ
#26
в общем, выходит

Код:
public class main {

new Thread(new delayTask()).start();

}
private class delayTask extends Thread
    {
        public void run()
        {
            try
            {
                Thread.sleep(7500);
            }
            catch (InterruptedException e){}
            
            new Thread(new speedreload()).start();
        }
    }
    private class speedreload extends Thread
    {
        public void executeCommand(Player admin, String[] params)
        {
            admin.getGameStats().setStat(StatEnum.SPEED, 6000);
            PacketSendUtility.broadcastPacket(admin, new SM_EMOTION(admin, EmotionType.START_EMOTE2, 0, 0), true);
            PacketSendUtility.sendMessage(admin, "Скорость востановлена.");
        }
    }

private class speedreload не запускает
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Ответ
#27
Зачем Вы описание метода впихнули в раннейбл? От этого он выполнятся не станет Big Grin Там должен быть вызов или содержимое метода.

и как бы

private class delayTask extends Runnable
Ответ
#28
ANZO Написал:Зачем Вы описание метода впихнули в раннейбл? От этого он выполнятся не станет Big Grin Там должен быть вызов или содержимое метода.

и как бы

private class delayTask extends Runnable

Не понял, так что нужно сделать, лучше наглядноWink
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Ответ
#29
Wolfas Написал:Не понял, так что нужно сделать, лучше наглядноWink

не ленитесь http://b23.ru/3h9n
[Изображение: l2nextgen.gif]
Ответ
#30
Разбираясь я случайно обнаружил что у меня есть ThreadPoolManager
Вот собственно он:

ThreadPoolManager

Как там задержку написать при его помощи?
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  5-сек-я задержка при нажатии на кнопку Dementor 19 5,089 05-29-2013, 07:57 PM
Последний пост: kingzor

Перейти к форуму:


Пользователи, просматривающие эту тему: 3 Гость(ей)