Anakim and Lilith schedule improvements.
Contributed by gigilo1968.
This commit is contained in:
parent
7aeb4eeb90
commit
cf0a83d622
@ -17,6 +17,7 @@
|
||||
package ai.bosses.Anakim;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
@ -617,8 +618,7 @@ public class Anakim extends AbstractNpcAI
|
||||
addSpawn(EXIST_CUBIC, 185082, -12606, -5499, 6133, false, 900000); // 15min
|
||||
|
||||
GrandBossManager.getInstance().setBossStatus(ANAKIM, DEAD);
|
||||
// TODO Retail Raid Respawn time: Tuesday (21:00) and Saturday (16:00).
|
||||
final long respawnTime = (Config.ANAKIM_SPAWN_INTERVAL + getRandom(-Config.ANAKIM_SPAWN_RANDOM, Config.ANAKIM_SPAWN_RANDOM)) * 3600000;
|
||||
final long respawnTime = getRespawnTime();
|
||||
final StatsSet info = GrandBossManager.getInstance().getStatsSet(ANAKIM);
|
||||
info.set("respawn_time", System.currentTimeMillis() + respawnTime);
|
||||
GrandBossManager.getInstance().setStatsSet(ANAKIM, info);
|
||||
@ -669,6 +669,41 @@ public class Anakim extends AbstractNpcAI
|
||||
return super.onSkillSee(npc, caster, skill, targets, isPet);
|
||||
}
|
||||
|
||||
private int getRespawnTime()
|
||||
{
|
||||
return (int) calcReuseFromDays(0, 21, Calendar.TUESDAY, 0, 16, Calendar.SATURDAY);
|
||||
}
|
||||
|
||||
private long calcReuseFromDays(int day1Minute, int day1Hour, int day1Day, int day2Minute, int day2Hour, int day2Day)
|
||||
{
|
||||
Calendar now = Calendar.getInstance();
|
||||
Calendar day1 = (Calendar) now.clone();
|
||||
day1.set(Calendar.MINUTE, day1Minute);
|
||||
day1.set(Calendar.HOUR_OF_DAY, day1Hour);
|
||||
day1.set(Calendar.DAY_OF_WEEK, day1Day);
|
||||
|
||||
Calendar day2 = (Calendar) day1.clone();
|
||||
day2.set(Calendar.MINUTE, day2Minute);
|
||||
day2.set(Calendar.HOUR_OF_DAY, day2Hour);
|
||||
day2.set(Calendar.DAY_OF_WEEK, day2Day);
|
||||
|
||||
if (now.after(day1))
|
||||
{
|
||||
day1.add(Calendar.WEEK_OF_MONTH, 1);
|
||||
}
|
||||
if (now.after(day2))
|
||||
{
|
||||
day2.add(Calendar.WEEK_OF_MONTH, 1);
|
||||
}
|
||||
|
||||
Calendar reenter = day1;
|
||||
if (day2.before(day1))
|
||||
{
|
||||
reenter = day2;
|
||||
}
|
||||
return reenter.getTimeInMillis() - System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Anakim();
|
||||
|
@ -17,6 +17,7 @@
|
||||
package ai.bosses.Lilith;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
@ -633,8 +634,7 @@ public class Lilith extends AbstractNpcAI
|
||||
addSpawn(EXIST_CUBIC, 185062, -9605, -5499, 15640, false, 900000); // 15min
|
||||
|
||||
GrandBossManager.getInstance().setBossStatus(LILITH, DEAD);
|
||||
// TODO Retail Raid Respawn time: Thursday (21:00) and Saturday (14:00).
|
||||
final long respawnTime = (Config.LILITH_SPAWN_INTERVAL + getRandom(-Config.LILITH_SPAWN_RANDOM, Config.LILITH_SPAWN_RANDOM)) * 3600000;
|
||||
final long respawnTime = getRespawnTime();
|
||||
final StatsSet info = GrandBossManager.getInstance().getStatsSet(LILITH);
|
||||
info.set("respawn_time", System.currentTimeMillis() + respawnTime);
|
||||
GrandBossManager.getInstance().setStatsSet(LILITH, info);
|
||||
@ -685,6 +685,41 @@ public class Lilith extends AbstractNpcAI
|
||||
return super.onSkillSee(npc, caster, skill, targets, isPet);
|
||||
}
|
||||
|
||||
private int getRespawnTime()
|
||||
{
|
||||
return (int) calcReuseFromDays(0, 21, Calendar.THURSDAY, 0, 14, Calendar.SATURDAY);
|
||||
}
|
||||
|
||||
private long calcReuseFromDays(int day1Minute, int day1Hour, int day1Day, int day2Minute, int day2Hour, int day2Day)
|
||||
{
|
||||
Calendar now = Calendar.getInstance();
|
||||
Calendar day1 = (Calendar) now.clone();
|
||||
day1.set(Calendar.MINUTE, day1Minute);
|
||||
day1.set(Calendar.HOUR_OF_DAY, day1Hour);
|
||||
day1.set(Calendar.DAY_OF_WEEK, day1Day);
|
||||
|
||||
Calendar day2 = (Calendar) day1.clone();
|
||||
day2.set(Calendar.MINUTE, day2Minute);
|
||||
day2.set(Calendar.HOUR_OF_DAY, day2Hour);
|
||||
day2.set(Calendar.DAY_OF_WEEK, day2Day);
|
||||
|
||||
if (now.after(day1))
|
||||
{
|
||||
day1.add(Calendar.WEEK_OF_MONTH, 1);
|
||||
}
|
||||
if (now.after(day2))
|
||||
{
|
||||
day2.add(Calendar.WEEK_OF_MONTH, 1);
|
||||
}
|
||||
|
||||
Calendar reenter = day1;
|
||||
if (day2.before(day1))
|
||||
{
|
||||
reenter = day2;
|
||||
}
|
||||
return reenter.getTimeInMillis() - System.currentTimeMillis();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
|
@ -17,6 +17,7 @@
|
||||
package ai.bosses.Anakim;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
@ -617,8 +618,7 @@ public class Anakim extends AbstractNpcAI
|
||||
addSpawn(EXIST_CUBIC, 185082, -12606, -5499, 6133, false, 900000); // 15min
|
||||
|
||||
GrandBossManager.getInstance().setBossStatus(ANAKIM, DEAD);
|
||||
// TODO Retail Raid Respawn time: Tuesday (21:00) and Saturday (16:00).
|
||||
final long respawnTime = (Config.ANAKIM_SPAWN_INTERVAL + getRandom(-Config.ANAKIM_SPAWN_RANDOM, Config.ANAKIM_SPAWN_RANDOM)) * 3600000;
|
||||
final long respawnTime = getRespawnTime();
|
||||
final StatsSet info = GrandBossManager.getInstance().getStatsSet(ANAKIM);
|
||||
info.set("respawn_time", System.currentTimeMillis() + respawnTime);
|
||||
GrandBossManager.getInstance().setStatsSet(ANAKIM, info);
|
||||
@ -669,6 +669,41 @@ public class Anakim extends AbstractNpcAI
|
||||
return super.onSkillSee(npc, caster, skill, targets, isPet);
|
||||
}
|
||||
|
||||
private int getRespawnTime()
|
||||
{
|
||||
return (int) calcReuseFromDays(0, 21, Calendar.TUESDAY, 0, 16, Calendar.SATURDAY);
|
||||
}
|
||||
|
||||
private long calcReuseFromDays(int day1Minute, int day1Hour, int day1Day, int day2Minute, int day2Hour, int day2Day)
|
||||
{
|
||||
Calendar now = Calendar.getInstance();
|
||||
Calendar day1 = (Calendar) now.clone();
|
||||
day1.set(Calendar.MINUTE, day1Minute);
|
||||
day1.set(Calendar.HOUR_OF_DAY, day1Hour);
|
||||
day1.set(Calendar.DAY_OF_WEEK, day1Day);
|
||||
|
||||
Calendar day2 = (Calendar) day1.clone();
|
||||
day2.set(Calendar.MINUTE, day2Minute);
|
||||
day2.set(Calendar.HOUR_OF_DAY, day2Hour);
|
||||
day2.set(Calendar.DAY_OF_WEEK, day2Day);
|
||||
|
||||
if (now.after(day1))
|
||||
{
|
||||
day1.add(Calendar.WEEK_OF_MONTH, 1);
|
||||
}
|
||||
if (now.after(day2))
|
||||
{
|
||||
day2.add(Calendar.WEEK_OF_MONTH, 1);
|
||||
}
|
||||
|
||||
Calendar reenter = day1;
|
||||
if (day2.before(day1))
|
||||
{
|
||||
reenter = day2;
|
||||
}
|
||||
return reenter.getTimeInMillis() - System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Anakim();
|
||||
|
@ -17,6 +17,7 @@
|
||||
package ai.bosses.Lilith;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
@ -633,8 +634,7 @@ public class Lilith extends AbstractNpcAI
|
||||
addSpawn(EXIST_CUBIC, 185062, -9605, -5499, 15640, false, 900000); // 15min
|
||||
|
||||
GrandBossManager.getInstance().setBossStatus(LILITH, DEAD);
|
||||
// TODO Retail Raid Respawn time: Thursday (21:00) and Saturday (14:00).
|
||||
final long respawnTime = (Config.LILITH_SPAWN_INTERVAL + getRandom(-Config.LILITH_SPAWN_RANDOM, Config.LILITH_SPAWN_RANDOM)) * 3600000;
|
||||
final long respawnTime = getRespawnTime();
|
||||
final StatsSet info = GrandBossManager.getInstance().getStatsSet(LILITH);
|
||||
info.set("respawn_time", System.currentTimeMillis() + respawnTime);
|
||||
GrandBossManager.getInstance().setStatsSet(LILITH, info);
|
||||
@ -685,6 +685,41 @@ public class Lilith extends AbstractNpcAI
|
||||
return super.onSkillSee(npc, caster, skill, targets, isPet);
|
||||
}
|
||||
|
||||
private int getRespawnTime()
|
||||
{
|
||||
return (int) calcReuseFromDays(0, 21, Calendar.THURSDAY, 0, 14, Calendar.SATURDAY);
|
||||
}
|
||||
|
||||
private long calcReuseFromDays(int day1Minute, int day1Hour, int day1Day, int day2Minute, int day2Hour, int day2Day)
|
||||
{
|
||||
Calendar now = Calendar.getInstance();
|
||||
Calendar day1 = (Calendar) now.clone();
|
||||
day1.set(Calendar.MINUTE, day1Minute);
|
||||
day1.set(Calendar.HOUR_OF_DAY, day1Hour);
|
||||
day1.set(Calendar.DAY_OF_WEEK, day1Day);
|
||||
|
||||
Calendar day2 = (Calendar) day1.clone();
|
||||
day2.set(Calendar.MINUTE, day2Minute);
|
||||
day2.set(Calendar.HOUR_OF_DAY, day2Hour);
|
||||
day2.set(Calendar.DAY_OF_WEEK, day2Day);
|
||||
|
||||
if (now.after(day1))
|
||||
{
|
||||
day1.add(Calendar.WEEK_OF_MONTH, 1);
|
||||
}
|
||||
if (now.after(day2))
|
||||
{
|
||||
day2.add(Calendar.WEEK_OF_MONTH, 1);
|
||||
}
|
||||
|
||||
Calendar reenter = day1;
|
||||
if (day2.before(day1))
|
||||
{
|
||||
reenter = day2;
|
||||
}
|
||||
return reenter.getTimeInMillis() - System.currentTimeMillis();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
|
@ -17,6 +17,7 @@
|
||||
package ai.bosses.Anakim;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
@ -617,8 +618,7 @@ public class Anakim extends AbstractNpcAI
|
||||
addSpawn(EXIST_CUBIC, 185082, -12606, -5499, 6133, false, 900000); // 15min
|
||||
|
||||
GrandBossManager.getInstance().setBossStatus(ANAKIM, DEAD);
|
||||
// TODO Retail Raid Respawn time: Tuesday (21:00) and Saturday (16:00).
|
||||
final long respawnTime = (Config.ANAKIM_SPAWN_INTERVAL + getRandom(-Config.ANAKIM_SPAWN_RANDOM, Config.ANAKIM_SPAWN_RANDOM)) * 3600000;
|
||||
final long respawnTime = getRespawnTime();
|
||||
final StatsSet info = GrandBossManager.getInstance().getStatsSet(ANAKIM);
|
||||
info.set("respawn_time", System.currentTimeMillis() + respawnTime);
|
||||
GrandBossManager.getInstance().setStatsSet(ANAKIM, info);
|
||||
@ -669,6 +669,41 @@ public class Anakim extends AbstractNpcAI
|
||||
return super.onSkillSee(npc, caster, skill, targets, isPet);
|
||||
}
|
||||
|
||||
private int getRespawnTime()
|
||||
{
|
||||
return (int) calcReuseFromDays(0, 21, Calendar.TUESDAY, 0, 16, Calendar.SATURDAY);
|
||||
}
|
||||
|
||||
private long calcReuseFromDays(int day1Minute, int day1Hour, int day1Day, int day2Minute, int day2Hour, int day2Day)
|
||||
{
|
||||
Calendar now = Calendar.getInstance();
|
||||
Calendar day1 = (Calendar) now.clone();
|
||||
day1.set(Calendar.MINUTE, day1Minute);
|
||||
day1.set(Calendar.HOUR_OF_DAY, day1Hour);
|
||||
day1.set(Calendar.DAY_OF_WEEK, day1Day);
|
||||
|
||||
Calendar day2 = (Calendar) day1.clone();
|
||||
day2.set(Calendar.MINUTE, day2Minute);
|
||||
day2.set(Calendar.HOUR_OF_DAY, day2Hour);
|
||||
day2.set(Calendar.DAY_OF_WEEK, day2Day);
|
||||
|
||||
if (now.after(day1))
|
||||
{
|
||||
day1.add(Calendar.WEEK_OF_MONTH, 1);
|
||||
}
|
||||
if (now.after(day2))
|
||||
{
|
||||
day2.add(Calendar.WEEK_OF_MONTH, 1);
|
||||
}
|
||||
|
||||
Calendar reenter = day1;
|
||||
if (day2.before(day1))
|
||||
{
|
||||
reenter = day2;
|
||||
}
|
||||
return reenter.getTimeInMillis() - System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Anakim();
|
||||
|
@ -17,6 +17,7 @@
|
||||
package ai.bosses.Lilith;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
@ -633,8 +634,7 @@ public class Lilith extends AbstractNpcAI
|
||||
addSpawn(EXIST_CUBIC, 185062, -9605, -5499, 15640, false, 900000); // 15min
|
||||
|
||||
GrandBossManager.getInstance().setBossStatus(LILITH, DEAD);
|
||||
// TODO Retail Raid Respawn time: Thursday (21:00) and Saturday (14:00).
|
||||
final long respawnTime = (Config.LILITH_SPAWN_INTERVAL + getRandom(-Config.LILITH_SPAWN_RANDOM, Config.LILITH_SPAWN_RANDOM)) * 3600000;
|
||||
final long respawnTime = getRespawnTime();
|
||||
final StatsSet info = GrandBossManager.getInstance().getStatsSet(LILITH);
|
||||
info.set("respawn_time", System.currentTimeMillis() + respawnTime);
|
||||
GrandBossManager.getInstance().setStatsSet(LILITH, info);
|
||||
@ -685,6 +685,41 @@ public class Lilith extends AbstractNpcAI
|
||||
return super.onSkillSee(npc, caster, skill, targets, isPet);
|
||||
}
|
||||
|
||||
private int getRespawnTime()
|
||||
{
|
||||
return (int) calcReuseFromDays(0, 21, Calendar.THURSDAY, 0, 14, Calendar.SATURDAY);
|
||||
}
|
||||
|
||||
private long calcReuseFromDays(int day1Minute, int day1Hour, int day1Day, int day2Minute, int day2Hour, int day2Day)
|
||||
{
|
||||
Calendar now = Calendar.getInstance();
|
||||
Calendar day1 = (Calendar) now.clone();
|
||||
day1.set(Calendar.MINUTE, day1Minute);
|
||||
day1.set(Calendar.HOUR_OF_DAY, day1Hour);
|
||||
day1.set(Calendar.DAY_OF_WEEK, day1Day);
|
||||
|
||||
Calendar day2 = (Calendar) day1.clone();
|
||||
day2.set(Calendar.MINUTE, day2Minute);
|
||||
day2.set(Calendar.HOUR_OF_DAY, day2Hour);
|
||||
day2.set(Calendar.DAY_OF_WEEK, day2Day);
|
||||
|
||||
if (now.after(day1))
|
||||
{
|
||||
day1.add(Calendar.WEEK_OF_MONTH, 1);
|
||||
}
|
||||
if (now.after(day2))
|
||||
{
|
||||
day2.add(Calendar.WEEK_OF_MONTH, 1);
|
||||
}
|
||||
|
||||
Calendar reenter = day1;
|
||||
if (day2.before(day1))
|
||||
{
|
||||
reenter = day2;
|
||||
}
|
||||
return reenter.getTimeInMillis() - System.currentTimeMillis();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user