Дата осады Территориальных Войн

Dadadada

Путник
Пользователь
Сообщения
10
Розыгрыши
0
Репутация
2
Реакции
4
Баллы
85
Хроники
  1. Chaotic Throne: High Five
Исходники
Присутствуют
Сборка
l2skripts
Всем товарищам здоровья!
Обсёрфил весь гугол до дыр, так же как и форум и сборку, но не могу найти где настроить даты и время осад для ТВ
Может кто сталкивался и подскажет где поискать ещё можно?
В конфигах присутствует функция которая меняет период осад с двух недель на неделю, но мне требуется сделать раз в 4 дня
Собственно он (конфиг):
DomminionSiegeEveryWeek = True
 

Обычно оно высчитывается автоматически от даты осад замков.
Так что лезть тебе в ядро и мучать методы расчета даты следующей осады/тв в глобал эвентах оных.
Под l2skripts же подразумеваются скрипты, т.е. сборка на базе овера?
Если да, то идешь в DominionSiegeRunnerEvent, смотришь метод reCalcNextTime и думаешь.
 
Обычно оно высчитывается автоматически от даты осад замков.
Так что лезть тебе в ядро и мучать методы расчета даты следующей осады/тв в глобал эвентах оных.
Под l2skripts же подразумеваются скрипты, т.е. сборка на базе овера?
Если да, то идешь в DominionSiegeRunnerEvent, смотришь метод reCalcNextTime и думаешь.
Ох, спасибо тебе! Ты всегда приходишь на помощь! Респект!

Да, скрипты
Но дело в том, что конфиг на простые осады замков я нашёл в gameserver\data\events\siege, где отредактировал даты осады каждого замка на 7 дней вместо 14:
Код:
<parameter name="start_time" value="00 20 +7:* * 7" />
<parameter name="additional_start_time" value="00 20 +7:* * 7" />
<parameter name="validation_date" value="2;4;2003"/>


А по поводу ТВ нашёл лишь данные настройки:

Код:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE list SYSTEM "events.dtd">
<list>
    <event id="1" name="dominion_siege_runner" impl="DominionSiegeRunner">
        <on_init>
            <start name="registration" />
        </on_init>
        <on_time>
            <on time="-7200">
                <stop name="registration" />
            </on>
            <on time="-1200">
                <announce id="1" value="-20" />
                <start name="battlefield" />
            </on>
            <on time="-600">
                <announce id="1" value="-10" />
            </on>
            <on time="-300">
                <announce id="1" value="-5" />
            </on>
            <on time="-60">
                <announce id="1" value="-1" />
            </on>
            <on time="0">
                <start name="event" />
            </on>
            <on time="3600">
                <announce id="1" value="3600" />
            </on>
            <on time="6600">
                <announce id="1" value="600" />
            </on>
            <on time="6900">
                <announce id="1" value="300" />
            </on>
            <on time="7140">
                <announce id="1" value="60" />
            </on>
            <on time="7190">
                <announce id="1" value="10" />
            </on>
            <on time="7195">
                <announce id="1" value="5" />
            </on>
            <on time="7196">
                <announce id="1" value="4" />
            </on>
            <on time="7197">
                <announce id="1" value="3" />
            </on>
            <on time="7198">
                <announce id="1" value="2" />
            </on>
            <on time="7199">
                <announce id="1" value="1" />
            </on>
            <on time="7200">
                <stop name="event" />
            </on>
        </on_time>
    </event>
</list>
 
Ох, спасибо тебе! Ты всегда приходишь на помощь! Респект!

Да, скрипты
Но дело в том, что конфиг на простые осады замков я нашёл в gameserver\data\events\siege, где отредактировал даты осады каждого замка на 7 дней вместо 14:
Код:
<parameter name="start_time" value="00 20 +7:* * 7" />
<parameter name="additional_start_time" value="00 20 +7:* * 7" />
<parameter name="validation_date" value="2;4;2003"/>


А по поводу ТВ нашёл лишь данные настройки:

Код:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE list SYSTEM "events.dtd">
<list>
    <event id="1" name="dominion_siege_runner" impl="DominionSiegeRunner">
        <on_init>
            <start name="registration" />
        </on_init>
        <on_time>
            <on time="-7200">
                <stop name="registration" />
            </on>
            <on time="-1200">
                <announce id="1" value="-20" />
                <start name="battlefield" />
            </on>
            <on time="-600">
                <announce id="1" value="-10" />
            </on>
            <on time="-300">
                <announce id="1" value="-5" />
            </on>
            <on time="-60">
                <announce id="1" value="-1" />
            </on>
            <on time="0">
                <start name="event" />
            </on>
            <on time="3600">
                <announce id="1" value="3600" />
            </on>
            <on time="6600">
                <announce id="1" value="600" />
            </on>
            <on time="6900">
                <announce id="1" value="300" />
            </on>
            <on time="7140">
                <announce id="1" value="60" />
            </on>
            <on time="7190">
                <announce id="1" value="10" />
            </on>
            <on time="7195">
                <announce id="1" value="5" />
            </on>
            <on time="7196">
                <announce id="1" value="4" />
            </on>
            <on time="7197">
                <announce id="1" value="3" />
            </on>
            <on time="7198">
                <announce id="1" value="2" />
            </on>
            <on time="7199">
                <announce id="1" value="1" />
            </on>
            <on time="7200">
                <stop name="event" />
            </on>
        </on_time>
    </event>
</list>
Тебе же сказали в ядро лезть. Зачем тормозишь)
Код:
    @Override
    public void reCalcNextTime(boolean onInit)
    {
        clearActions();

        if(onInit)
        {
            if(_startTime.getTimeInMillis() > 0)
                registerActions();
        }
        else
        {
            int add = 2;
            if(_startTime.getTimeInMillis() > 0)
            {
                if(Config.DOM_SIEGE_EVERY_WEEK)
                    add = 1;
                _startTime.add(Calendar.WEEK_OF_MONTH, add); //test it!!!
                registerActions();
            }
        }
    }
Вот твой код на недели, а вот на точное время
Код:
            if(terrSiegeDate == 0)
            {
                _startTime.setTimeInMillis(castle.getSiegeDate().getTimeInMillis());           
                _startTime.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
                _startTime.set(Calendar.HOUR_OF_DAY, 20);
                _startTime.set(Calendar.MINUTE, 0);
                _startTime.set(Calendar.SECOND, 0);
                _startTime.set(Calendar.MILLISECOND, 0);
                d.getSiegeDate().setTimeInMillis(_startTime.getTimeInMillis());
                reCalcNextTime(true);
                DominionDAO.getInstance().update01(d.getId(), _startTime.getTimeInMillis());
            }
Файл находится в исходниках здесь
Код:
gameserver\src\main\java\l2s\gameserver\model\entity\events\impl
Название файла DominionSiegeRunnerEvent тебе написали.
 
Спасибо!
 
Назад
Сверху Снизу