From 8c7a646d546f92a8a54591532ec6c0a6c5593f0d Mon Sep 17 00:00:00 2001 From: Zoey76 <zoey_76@msn.com> Date: Sun, 24 May 2015 23:37:15 -0300 Subject: [PATCH] Minor fix for Beleth AI Patch by: sahar (@petpal) http://www.l2jserver.com/forum/viewtopic.php?f=77&t=31179 --- .../data/scripts/ai/individual/Beleth.java | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/L2J_DataPack/dist/game/data/scripts/ai/individual/Beleth.java b/L2J_DataPack/dist/game/data/scripts/ai/individual/Beleth.java index 1f50ef102d..b3acc0452b 100644 --- a/L2J_DataPack/dist/game/data/scripts/ai/individual/Beleth.java +++ b/L2J_DataPack/dist/game/data/scripts/ai/individual/Beleth.java @@ -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(); -- GitLab