Skip to content
Snippets Groups Projects
Commit 8c7a646d authored by Zoey76's avatar Zoey76
Browse files

Minor fix for Beleth AI

Patch by: sahar (@petpal)

http://www.l2jserver.com/forum/viewtopic.php?f=77&t=31179
parent 2a4f5966
No related branches found
No related tags found
No related merge requests found
......@@ -28,10 +28,12 @@ import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.data.xml.impl.DoorData;
import com.l2jserver.gameserver.instancemanager.GrandBossManager;
import com.l2jserver.gameserver.instancemanager.MapRegionManager;
import com.l2jserver.gameserver.instancemanager.ZoneManager;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.TeleportWhereType;
import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
......@@ -93,6 +95,7 @@ public final class Beleth extends AbstractNpcAI
private L2PcInstance _killer;
private int _allowedObjId;
private int _killedCount;
private long _lastAttack;
private final List<L2Npc> _minions = new CopyOnWriteArrayList<>();
private Beleth()
......@@ -372,11 +375,17 @@ public final class Beleth extends AbstractNpcAI
c.setIsImmobilized(false);
}
_lastAttack = System.currentTimeMillis();
startQuestTimer("CHECK_ATTACK", 60000, null, null);
startQuestTimer("SPAWN25", 60000, null, null);
break;
}
case "SPAWN25":
{
_minions.clear();
int a = 0;
for (int i = 0; i < 16; i++)
{
......@@ -534,6 +543,33 @@ public final class Beleth extends AbstractNpcAI
}
break;
}
case "CHECK_ATTACK":
{
if ((_lastAttack + 900000) < System.currentTimeMillis())
{
GrandBossManager.getInstance().setBossStatus(REAL_BELETH, ALIVE);
for (L2Character charInside : ZONE.getCharactersInside())
{
if (charInside != null)
{
if (charInside.isNpc())
{
charInside.deleteMe();
}
else if (charInside.isPlayer())
{
charInside.teleToLocation(MapRegionManager.getInstance().getTeleToLocation(charInside, TeleportWhereType.TOWN));
}
}
}
cancelQuestTimer("CHECK_ATTACK", null, null);
}
else
{
startQuestTimer("CHECK_ATTACK", 60000, null, null);
}
break;
}
}
return super.onAdvEvent(event, npc, player);
}
......@@ -718,6 +754,8 @@ public final class Beleth extends AbstractNpcAI
{
if (npc.getId() == REAL_BELETH)
{
cancelQuestTimer("CHECK_ATTACK", null, null);
setBelethKiller(killer);
GrandBossManager.getInstance().setBossStatus(REAL_BELETH, DEAD);
final long respawnTime = (Config.BELETH_SPAWN_INTERVAL + getRandom(-Config.BELETH_SPAWN_RANDOM, Config.BELETH_SPAWN_RANDOM)) * 3600000;
......@@ -749,7 +787,7 @@ public final class Beleth extends AbstractNpcAI
startQuestTimer("SPAWN26", 1000, null, null);
}
else if ((npc.getId() == FAKE_BELETH) && (npc.getObjectId() == _allowedObjId))
else if (npc.getObjectId() == _allowedObjId)
{
deleteAll();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment