Anakim and Lilith schedule improvements.
Contributed by gigilo1968.
This commit is contained in:
		@@ -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)
 | 
			
		||||
	{
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user