Перейти к содержанию
Авторизация  
Somon

Как включить неделную осаду

Рекомендуемые сообщения

Как включить осаду на каждую неделю?

# Время от которого идет валидация времени осады замков(ТВ)
CastleValidationDate = 1;9;2016
# Масив времени которые генерится после осады замка, дает юзеру выбор времени осады
CastleSelectHours = 16;20

# Альтернативное время осад
# Включить альтернативное время осад?
CastleGenerateAlternativeTime = false
CastleGenerateTimeLow = 46800000
CastleGenerateTimeHigh = 61200000

включить алтернативную времю осад?

 

вообщем нужно чтобы каждую неделю в субботу и в пятницу были осады.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В файле Siege.java меняешь

			cal.set(Calendar.DAY_OF_WEEK, holder.getDay());
			cal.set(Calendar.HOUR_OF_DAY, holder.getHour());
			cal.set(Calendar.MINUTE, 0);
			cal.set(Calendar.SECOND, 0);
			if (cal.before(Calendar.getInstance()))
			{
				cal.add(Calendar.DAY_OF_WEEK, 14);
			}

на

			cal.set(Calendar.DAY_OF_WEEK, holder.getDay());
			cal.set(Calendar.HOUR_OF_DAY, holder.getHour());
			cal.set(Calendar.MINUTE, 0);
			cal.set(Calendar.SECOND, 0);
			if (cal.before(Calendar.getInstance()))
			{
				cal.add(Calendar.DAY_OF_WEEK, 7);
			}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

В файле Siege.java меняешь

			cal.set(Calendar.DAY_OF_WEEK, holder.getDay());
			cal.set(Calendar.HOUR_OF_DAY, holder.getHour());
			cal.set(Calendar.MINUTE, 0);
			cal.set(Calendar.SECOND, 0);
			if (cal.before(Calendar.getInstance()))
			{
				cal.add(Calendar.DAY_OF_WEEK, 14);
			}

на

			cal.set(Calendar.DAY_OF_WEEK, holder.getDay());
			cal.set(Calendar.HOUR_OF_DAY, holder.getHour());
			cal.set(Calendar.MINUTE, 0);
			cal.set(Calendar.SECOND, 0);
			if (cal.before(Calendar.getInstance()))
			{
				cal.add(Calendar.DAY_OF_WEEK, 7);
			}

в ядре?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у меня хф - гринд тим нету такого файла походу(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

/**
     * Генерирует даты для следующей осады замка, и запускает таймер на автоматическую установку даты
     */
    public void generateNextSiegeDates()
    {
        if(getResidence().getSiegeDate().getTimeInMillis() != 0)
            return;

        final Calendar calendar = (Calendar) Config.CASTLE_VALIDATION_DATE.clone();
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        if(calendar.before(Config.CASTLE_VALIDATION_DATE))
            calendar.add(Calendar.WEEK_OF_YEAR, 2);
        validateSiegeDate(calendar, 2);
        _nextSiegeTimes = new TreeIntSet();
        for(int h : Config.CASTLE_SELECT_HOURS)
        {
            calendar.set(Calendar.HOUR_OF_DAY, h);
            _nextSiegeTimes.add((int) (calendar.getTimeInMillis() / 1000L));
        }

        long diff = getResidence().getOwnDate().getTimeInMillis() + DAY_IN_MILISECONDS - System.currentTimeMillis();
        _nextSiegeDateSetTask = ThreadPoolManager.getInstance().schedule(new NextSiegeDateSet(), diff);
    }

    /**
     * Ставит осадное время вручну, вызывается с пакета {@link core.gameserver.network.l2.c2s.RequestSetCastleSiegeTime}
     * @param id
     */
    public void setNextSiegeTime(int id)
    {
        if(!_nextSiegeTimes.contains(id) || _nextSiegeDateSetTask == null)
            return;

        _nextSiegeTimes = Containers.EMPTY_INT_SET;
        _nextSiegeDateSetTask.cancel(false);
        _nextSiegeDateSetTask = null;

        setNextSiegeTime(id * 1000L);
    }

    /**
     * Автоматически генерит и устанавливает дату осады
     */
    private void setNextSiegeTime()
    {
        final Calendar calendar = (Calendar) Config.CASTLE_VALIDATION_DATE.clone();
        calendar.set(Calendar.DAY_OF_WEEK, _dayOfWeek);
        calendar.set(Calendar.HOUR_OF_DAY, _hourOfDay);
        if(calendar.before(Config.CASTLE_VALIDATION_DATE))
            calendar.add(Calendar.WEEK_OF_YEAR, 2);
        validateSiegeDate(calendar, 2);
        if(Config.CASTLE_GENERATE_TIME_ALTERNATIVE)
        {
            if (getId() == 3 || getId() == 4 || getId() == 6 || getId() == 7)
                setNextSiegeTime(calendar.getTimeInMillis() + Config.CASTLE_GENERATE_TIME_HIGH);
            else
                setNextSiegeTime(calendar.getTimeInMillis() + Config.CASTLE_GENERATE_TIME_LOW);
        }
        else
            setNextSiegeTime(calendar.getTimeInMillis());
    }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В ядре. Везде есть. 

выше пост в ядре нашёл.

Изменено пользователем Somon

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
calendar.add(Calendar.WEEK_OF_YEAR, 2);

меняй на

calendar.add(Calendar.DAY_OF_WEEK, 7);
Изменено пользователем zGosu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

validateSiegeDate(calendar, 2); - Еще это глянь, если предыдущее работать не будет. Т.к. я хз за что это функция отвечает. 

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
calendar.add(Calendar.WEEK_OF_YEAR, 2);

меняй на

calendar.add(Calendar.DAY_OF_WEEK, 7);

там же YEAR а не WEEK.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

там же YEAR а не WEEK.

И? Вы даже не знаете что оно обозначает? 

 

DAY_OF_YEAR — день года (0- 365)

DAY_OF_MONTH — день месяца( какой по счету день в месяце 0 — 31)

WEEK_OF_MONTH — неделя месяца

WEEK_OF_YEAR — неделя в году

MONTH — номер месяца

Year — номер года

Calendar.ERA — эра

 

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И? Вы даже не знаете что оно обозначает? 

 

DAY_OF_YEAR — день года (0- 365)

DAY_OF_MONTH — день месяца( какой по счету день в месяце 0 — 31)

WEEK_OF_MONTH — неделя месяца

WEEK_OF_YEAR — неделя в году

MONTH — номер месяца

Year — номер года

Calendar.ERA — эра

 

спасибо, щас компил сделаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...