01-05-2016, 07:36 PM
Здравствуйте, уважаемые администраторы портала!
Хотела бы получить поддержку по такому вопросу.
Задача:
Изменить время повторной осады на форт после его взятия.
А именно, мне не совсем понятны такие переменные.
Siege.java
На форт можно зарегистрироваться сразу же после осады, буд то код вообще не работает.
FortressSiege.java
Хотела бы получить поддержку по такому вопросу.
Задача:
Изменить время повторной осады на форт после его взятия.
А именно, мне не совсем понятны такие переменные.
Siege.java
На форт можно зарегистрироваться сразу же после осады, буд то код вообще не работает.
Код:
// Регистрация невозможна, если последняя осада проходила менее чем четыре часа назад
if(getSiegeUnit().getLastSiegeDate() * 1000 + 4 * 60 * 60 * 1000 > System.currentTimeMillis())
{
player.sendPacket(new SystemMessage(SystemMessage.THE_DEADLINE_TO_REGISTER_FOR_THE_SIEGE_OF_S1_HAS_PASSED).addString(getSiegeUnit().getName()));
return false;
}
if(TerritorySiege.getSiegeDate().getTimeInMillis() > System.currentTimeMillis() && TerritorySiege.getSiegeDate().getTimeInMillis() - System.currentTimeMillis() < 2 * 60 * 60 * 1000)
{
player.sendPacket(new SystemMessage(SystemMessage.THE_DEADLINE_TO_REGISTER_FOR_THE_SIEGE_OF_S1_HAS_PASSED).addString(getSiegeUnit().getName()));
return false;
}
FortressSiege.java
Код:
1.
L2GameThreadPools.getInstance().scheduleGeneral(new FortressSiegeEndTask(this), getSiegeLength() * 60 * 1000); // Prepare auto end task
_fameTask = L2GameThreadPools.getInstance().scheduleGeneralAtFixedRate(new SiegeFameTask(), Config.FORTRESS_ZONE_FAME_TASK_FREQUENCY, Config.FORTRESS_ZONE_FAME_TASK_FREQUENCY);
2.
// Schedule siege auto start, через 1 час
_siegeStartTask = L2GameThreadPools.getInstance().scheduleGeneral(new FortressSiegeStartTask(this, 3600), 1000);
3.
Тут так же не понятно работает это или нет, так как дать регистрацию можно сразу после осады.
// Осада не чаще, чем каждые 4 часа + 1 час на подготовку.
if(Calendar.getInstance().getTimeInMillis() - getSiegeUnit().getLastSiegeDate() * 1000 > 14400000)
_siegeDate.add(Calendar.HOUR_OF_DAY, 1);
else
{
_siegeDate.setTimeInMillis(getSiegeUnit().getLastSiegeDate() * 1000);
_siegeDate.add(Calendar.HOUR_OF_DAY, 5);
}
_database.saveSiegeDate();
}
}