Olympiada (пт, сб вс)

  • Автор темы Автор темы NightSun
  • Дата начала Дата начала

NightSun

Знаменитый
Участник
Сообщения
86
Розыгрыши
0
Решения
2
Репутация
26
Реакции
26
Баллы
1 278
Хроники
  1. Interlude
Исходники
Присутствуют
Сборка
Acis
Подскажите, не совсем понимаю как поменять код, чтобы олимпиада запускалась только в ПТ, СБ и ВС.

Полагаю, что нужно исходить из вот этого

Java:
_compStart = Calendar.getInstance();
        _compStart.set(Calendar.HOUR_OF_DAY, Config.OLY_START_TIME);
        _compStart.set(Calendar.MINUTE, Config.OLY_MIN);
        _compStart.set(Calendar.SECOND, 0);

Во сколько запускает олимпиада. Начал копать в сторону осады, там реализовано вот так:
Java:
public final void updateNextSiege()
    {
        Calendar c = Calendar.getInstance();
        c.add(Calendar.DAY_OF_YEAR, _scheduleConfig[0]);
        c.add(Calendar.MONTH, _scheduleConfig[1]);
        c.add(Calendar.YEAR, _scheduleConfig[2]);
        c.set(Calendar.HOUR_OF_DAY, _scheduleConfig[3]);
        c.set(Calendar.MINUTE, _scheduleConfig[4]);
        c.set(Calendar.SECOND, 0);
        
        setNextSiegeDate(c);
        
        updateDb();
    }
    
    public final void addAttacker(final Clan clan)
    {
        if (getSiege() != null)
            getSiege().getAttackerClans().add(clan);
    }
    
    public final void removeAttacker(final Clan clan)
    {
        if (getSiege() != null)
            getSiege().getAttackerClans().remove(clan);
    }
    
    public final boolean isRegistered(Clan clan)
    {
        return getSiege() != null && getSiege().getAttackerClans().contains(clan);
    }
    
    public final SiegeStatus getSiegeStatus()
    {
        return _status;
    }
    
    public final boolean isRegistering()
    {
        return _status == SiegeStatus.REGISTRATION_OPENED;
    }
    
    public final boolean isInSiege()
    {
        return _status == SiegeStatus.IN_PROGRESS;
    }
    
    public final boolean isWaitingBattle()
    {
        return _status == SiegeStatus.REGISTRATION_OVER;
    }
    
    public final void updateSiegeStatus(SiegeStatus status)
    {
        _status = status;
    }
    
    public final SiegeZone getSiegeZone()
    {
        return _siegeZone;
    }
    
    public final void spawnDoor()
    {
        spawnDoor(false);
    }

P.S> Файл в фулл кодом олимпиады прикрепил. Если кто-то шарит подскажите.
 

Вложения

А конфигов нету?
 
В конфигах только такие настройки

Код:
#=============================================================
#                          Олимпиада
#=============================================================
# Во сколько часов по системному времени начнется Олимпиада.
OlyStartTime = 18

# Минуты, когда начнется Олимпиада.
OlyMin = 00

# Период прохождения олимпиады.
OlyCPeriod = 21600000

# Время драки на стадионе Олимпиады. (Должно быть меньше чем  AltOlyBWait)
OlyBattle = 360000

# Недельный период олимпиады. (по умолчанию: 1 неделя).
OlyWPeriod = 604800000

# Период варификации. (по умолчанию: 24 часа).
OlyVPeriod = 86400000

# Время ожидания перед телепортацией на стадион. (по умолчанию: 60 секунд). (по ПТС)
OlyWaitTime = 30

# Время ожидания до начала битвы (на 1-с получают баффы). (по умолчанию: 1 секунд). (по ПТС)
OlyWaitBattle = 60

# Время ожидания, прежде чем телепортироваться обратно в город. (по умолчанию: 40 секунд).
OlyWaitEnd = 20

# Стартовое колличество очков. (по умолчанию 18 секунд).
OlyStartPoints = 18

# Очки дающиеся каждую неделю. (по умолчанию 3 секунд).
OlyWeeklyPoints = 3

# Колличество матчей чтобы стать Героем. (по умолчанию 9 секунд).
OlyMinMatchesToBeClassed = 5

# Минимальное количиство зарегистрированых в Классовых боях. (по умолчанию 5 секунд).
OlyClassedParticipants = 3

# Необходимое количество участников для неклассных игр.
OlyNonClassedParticipants = 4

# Награда за участие Классовых боях. Формат: itemId1,itemNum1;itemId2,itemNum2...
OlyClassedReward = 6651-50

# Награда за участие Внеклассовых боях. Формат: itemId1,itemNum1;itemId2,itemNum2...
OlyNonClassedReward = 6651-30

# Рейт обмена очков на награду. По умолчанию: 1000
OlyGPPerPoint = 1000

# Количество очков даваемых для героев в клане. По умолчанию: 300
OlyHeroPoints = 300

# Очками Дворянина награждается 1 ранг. По умолчанию: 100
OlyRank1Points = 100

# # Очками Дворянина награждается 2 ранг. По умолчанию: 75
OlyRank2Points = 75

# Очками Дворянина награждается 3 ранг. По умолчанию: 55
OlyRank3Points = 55

# Очками Дворянина награждается 4 ранг. По умолчанию: 40
OlyRank4Points = 40

# Очками Дворянина награждается 5 ранг. По умолчанию: 30
OlyRank5Points = 30

# Максимальное количество очков, что игрок может получить/потерять за матч. По умолчанию: 10
OlyMaxPoints = 50

# Мастер Олимпиады объявляет о начале боя. По умолчанию: True
OlyAnnounceGames = True

# Делитель очков на Классовые и Внеклассовые. По умолчанию: 3,5
OlyDividerClassed = 3
OlyDividerNonClassed = 5

# Лимит заточки для олимпиады.
# (Максимальный уровень модификации, разрешенный для экипировки предмета, -1 для отключения)
OlyMaxEnchant = 10
 
Мысли в слух
Код:
_compStart.set(Calendar .DAY_OF_YEAR, а тут значение );
Значение посмотреть бы в классе календаря . Там или массив. Или промежуток.
Может day of week

или т.п. есть…
 
Доброго дня суток форумчане , кстати солнулся с такой же проблемой , не могу запустить Оли что бы она была каждый день все прописанно во сколько и по дням но она не запускаеться ... Может кто подскажет или направит в какую сторону идт )) Главное что бы не ....
 

Вложения

  • Screenshot_1.webp
    Screenshot_1.webp
    127 КБ · Просмотры: 20
Доброго дня суток форумчане , кстати солнулся с такой же проблемой , не могу запустить Оли что бы она была каждый день все прописанно во сколько и по дням но она не запускаеться ... Может кто подскажет или направит в какую сторону идт )) Главное что бы не ....

Хорошо бы отдельную тему вместе с логами.
 
Вы думаете стоит отдельную тему ? .... ок сейчас запилю
 
Назад
Сверху Снизу