Здравствуйте, уважаемые администраторы портала!
Хотела бы получить поддержку по такому вопросу.
Задача:
Изменить время повторной осады на форт после его взятия.
А именно, мне не совсем понятны такие переменные.
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();
}
}
Здравствуйте, уважаемые администраторы портала!
Хотела бы получить поддержку по такому вопросу.
Задача:
Изменить время повторной осады на форт после его взятия.
А именно, мне не совсем понятны такие переменные.
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();
}
}
Здравствуйте!
Нпс для регистрации не пропадает после осады, хотя вроде бы должен. Он работает по принципу регистрации на замок. Как на проекте scryde.
Вот там так же можно фармить каждый час форты. И интересно то, что в нпс отображает когда будет осада.
Пример.
Я зарегистрировалась, взяла форт. Подхожу к нпс твинком, даю регистрацию, и пишет время следующей осады. (В моем случае 1 час).
Буд то код где написано о 4 часах просто не работает, или я чего то не понимаю.=/
Здравствуйте!
Нпс для регистрации не пропадает после осады, хотя вроде бы должен. Он работает по принципу регистрации на замок. Как на проекте scryde.
Вот там так же можно фармить каждый час форты. И интересно то, что в нпс отображает когда будет осада.
Пример.
Я зарегистрировалась, взяла форт. Подхожу к нпс твинком, даю регистрацию, и пишет время следующей осады. (В моем случае 1 час).
Буд то код где написано о 4 часах просто не работает, или я чего то не понимаю.=/