|
|
Private void scheduleNextSpawn()
{
Calendar nextStart = Calendar.getInstance();
// 1. 務必刪除或註解掉原本設定固定星期的這一行:
// nextStart.set(Calendar.DAY_OF_WEEK, RAID_DAY);
// 2. 設定重生的時間(例如晚上 21:00)
nextStart.set(Calendar.HOUR_OF_DAY, SPAWN_HOUR);
nextStart.set(Calendar.MINUTE, 0);
nextStart.set(Calendar.SECOND, 0);
// 3. 如果目前的系統時間已經過了今天的 21:00,就直接加上 2 天
if (Calendar.getInstance().after(nextStart))
{
nextStart.add(Calendar.DATE, 2); // 👈 這裡改成 2,就是兩天後
}
long delay = nextStart.getTimeInMillis() - System.currentTimeMillis();
StatSet info = GrandBossManager.getInstance().getStatSet(BAIUM);
info.set("respawn_time", nextStart.getTimeInMillis());
GrandBossManager.getInstance().setStatSet(BAIUM, info);
LOGGER.info("Baium AI: Next spawn scheduled for " + nextStart.getTime());
startQuestTimer("SCHEDULED_UNLOCK", delay, null, null);
}
------------------------------------------------------------------------------------------------------
private boolean isInsideAvailabilityWindow()
{
Calendar now = Calendar.getInstance();
int hour = now.get(Calendar.HOUR_OF_DAY);
// 拿掉原本的 (day == RAID_DAY) 判斷,只要小時符合 21~23 點就判定為開放
return (hour >= SPAWN_HOUR) && (hour < CLOSE_HOUR);
}
----------------------------------------------------------------------------------------------------------
private void checkHardClose()
{
final Calendar now = Calendar.getInstance();
// 刪除或註解掉原本檢查星期的條件,只保留小時檢查:
// if ((now.get(Calendar.DAY_OF_WEEK) == RAID_DAY) && (now.get(Calendar.HOUR_OF_DAY) >= CLOSE_HOUR))
if (now.get(Calendar.HOUR_OF_DAY) >= CLOSE_HOUR)
{
// ... 下方原本的代碼保持不變 ...
}
}
修改3段...
|
评分
-
查看全部评分
|