Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
расписание эвентов
#1
Как уже писал в одной из тем на форуме, использую исходники Rebellion 688.
Возникла проблема, менеджер эвентов парсирит все расписание эвентов твт и цтф, 20 и 10 штук соответсвенно (парс заключается в нахождение времени, бафа и т.п.) Но факт в том что запускает только 4 из них наиболее близкие к старту сервера, не знаю в чем проблема... Может в конфигах нужно увеличить размер пула (хотя уже пробывал) или еще что нибудь подобное.

Вот строчки парсинга времени:
Код:
Configs _config = new Configs();

                    NamedNodeMap attrs = d.getAttributes();

                    _date.set(11, Integer.parseInt(attrs.getNamedItem("hour").getNodeValue()));
                    _date.set(12, Integer.parseInt(attrs.getNamedItem("min").getNodeValue()));

                    _config.START_TIME = (_date.getTimeInMillis() > System.currentTimeMillis() ? _date.getTimeInMillis() / 1000L : _date.getTimeInMillis() / 1000L + 86400L);

                    _config.TIME_TO_END_BATTLE = Integer.parseInt(attrs.getNamedItem("TimeToEvent").getNodeValue());

date.set(11, date.set(12, - что означают эти цифры.

Заранее благодарен

Добавлено через 6 минут
К примеру, расписание твт - 05:00, 05:30, 06:00, 06:30, 07:00, 07:30, 08:00
Сервер стартует в 05:45 далее по расписанию запускаются только 06:00, 06:30, 07:00, 07:30, а уже 08:00 и далее не берет, хотя в логирование четко написано что восприняло все 30 шт. расписаний
Ответ
#2
В public void finish() закомментируйте строку setNextEvent(); (т.к. уже есть выполнение на следующий ивент GameEventManager.getInstance().nextEvent();)
[Изображение: Z.png][Изображение: S.gif]
Ответ
#3
если я правильно вас понял, то это уже прописано:
Код:
    public void finish()
    {
        sayToAll("scripts.events.CtF_New.CtF_New.AnnounceEventEnd", new String[0], false);

        if (_state == 2)
        {
            int WinTeam = -1;
            int max = 0;
            int count = 0;

            for (int i = 0; i < _score.length - 1; i++)
            {
                max = Math.max(_score[i], _score[(i + 1)]);
            }
            for (int i = 0; i < _score.length; i++)
            {
                if (_score[i] != max)
                    continue;
                WinTeam = i;
                count++;
            }

            if ((count != 1) || (WinTeam == -1) || (_score[WinTeam] == 0))
            {
                sayToAll("scripts.events.CtF_New.CtF_New.EventDraw", new String[0], false);
            }
            else
            {
                rewardToWinTeam(WinTeam);
            }

            ThreadPoolManager.getInstance().schedule(new TaskVoid("restorePlayers", null), 1000);
            ThreadPoolManager.getInstance().schedule(new TaskVoid("teleportPlayersToSavedCoords", null), 2000);
        }
        ReflectionUtils.getDoor(24190002).openMe();
        ReflectionUtils.getDoor(24190003).openMe();
        ThreadPoolManager.getInstance().schedule(new TaskVoid("clearAll", null), 3500);
        setNextEvent();
        GameEventManager.getInstance().nextEvent();
        _state = 0;
    }
Ответ
#4
Эм???!!!!!!
Krasavella Написал:В public void finish() закомментируйте строку setNextEvent();
[Изображение: Z.png][Изображение: S.gif]
Ответ
#5
Krasavella Написал:Эм???!!!!!!
зайдите в скайп... увы только начал учить java, опишите подробнее, если можно

Добавлено через 6 минут
Код:
public void finish()
    {
        sayToAll("scripts.events.CtF_New.CtF_New.AnnounceEventEnd", new String[0], false);

        if (_state == 2)
        {
            int WinTeam = -1;
            int max = 0;
            int count = 0;

            for (int i = 0; i < _score.length - 1; i++)
            {
                max = Math.max(_score[i], _score[(i + 1)]);
            }
            for (int i = 0; i < _score.length; i++)
            {
                if (_score[i] != max)
                    continue;
                WinTeam = i;
                count++;
            }

            if ((count != 1) || (WinTeam == -1) || (_score[WinTeam] == 0))
            {
                sayToAll("scripts.events.CtF_New.CtF_New.EventDraw", new String[0], false);
            }
            else
            {
                rewardToWinTeam(WinTeam);
            }

            ThreadPoolManager.getInstance().schedule(new TaskVoid("restorePlayers", null), 1000);
            ThreadPoolManager.getInstance().schedule(new TaskVoid("teleportPlayersToSavedCoords", null), 2000);
        }
        ReflectionUtils.getDoor(24190002).openMe();
        ReflectionUtils.getDoor(24190003).openMe();
        ThreadPoolManager.getInstance().schedule(new TaskVoid("clearAll", null), 3500);
        //setNextEvent();
        GameEventManager.getInstance().nextEvent();
        _state = 0;
    }

протупил, cпасибо

Добавлено через 1 час 35 минут
Подскажи еще тогда почему рестарт (который прописывается в конфигах) тоже через раз работает?

Добавлено через 17 часов 44 минуты
проблема актуальна, теперь запускается вообще только один эвент, ко следующему даже не переходит
Ответ
#6
Нашел в чем проблема, но не могу решить, если не было набрано минимальное кол-во участников то к след. эвенту не переходит
Ответ
#7
После какого именно ивента? Или у Вас один TeamVsTeam настроен?
[Изображение: Z.png][Изображение: S.gif]
Ответ
#8
да, после твт, у вас есь какой нибудь контакт для связи? скиньте в пм
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Конфинг Эвентов Sensation 2 1,287 01-06-2013, 02:10 PM
Последний пост: Sensation
  Анонсы эвентов LastNight 1 1,483 12-13-2012, 04:43 PM
Последний пост: Zubastic
  Импорт Эвентов bujhm1706 9 2,803 04-01-2012, 12:07 AM
Последний пост: ProDev
  Включение эвентов kpuc 5 3,015 01-28-2010, 12:28 AM
Последний пост: Devilop

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


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