Browse Source

BETA: Update Baium.java thanks UnAfraid ;)

Tan 14 năm trước cách đây
mục cha
commit
b7ec2ea84d
1 tập tin đã thay đổi với 42 bổ sung4 xóa
  1. 42 4
      L2J_DataPack_BETA/data/scripts/ai/individual/Baium.java

+ 42 - 4
L2J_DataPack_BETA/data/scripts/ai/individual/Baium.java

@@ -105,7 +105,7 @@ public class Baium extends L2AttackableAIScript
 	};
 	
 	private long _LastAttackVsBaiumTime = 0;
-	private List<L2Npc> _Minions = new ArrayList<L2Npc>(5);
+	private final List<L2Npc> _Minions = new ArrayList<L2Npc>(5);
 	private L2BossZone _Zone;
 	
 	public Baium (int questId, String name, String descr)
@@ -154,6 +154,7 @@ public class Baium extends L2AttackableAIScript
 			GrandBossManager.getInstance().addBoss(baium);
 			final L2Npc _baium = baium;
 			ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() {
+				@Override
 				public void run()
 				{
 					try
@@ -204,6 +205,7 @@ public class Baium extends L2AttackableAIScript
 				startQuestTimer("skill_range", 500, npc, null, true);
 				final L2Npc baium = npc;
 				ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() {
+					@Override
 					public void run()
 					{
 						try
@@ -257,7 +259,18 @@ public class Baium extends L2AttackableAIScript
 				{
 					npc.setIsCastingNow(false); //just in case
 					npc.setTarget(npc);
-					npc.doCast(SkillTable.getInstance().getInfo(4135,1));
+					L2Skill skill = SkillTable.getInstance().getInfo(4135, 1);
+					if (skill.isMagic())
+					{
+						if (npc.isMuted())
+							return super.onAdvEvent(event, npc, player);
+					}
+					else
+					{
+						if (npc.isPhysicalMuted())
+							return super.onAdvEvent(event, npc, player);
+					}
+					npc.doCast(skill);
 					npc.setIsCastingNow(true);
 				}
 				else if (!_Zone.isInsideZone(npc))
@@ -288,6 +301,7 @@ public class Baium extends L2AttackableAIScript
 				GrandBossManager.getInstance().addBoss(baium);
 				final L2Npc _baium = baium;
 				ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() {
+					@Override
 					public void run()
 					{
 						try
@@ -383,7 +397,18 @@ public class Baium extends L2AttackableAIScript
 				if (sk_4258 == 0)
 				{
 					npc.setTarget(attacker);
-					npc.doCast(SkillTable.getInstance().getInfo(4258,1));
+					L2Skill skill = SkillTable.getInstance().getInfo(4258,1);
+					if (skill.isMagic())
+					{
+						if (npc.isMuted())
+							return super.onAttack(npc, attacker, damage, isPet);
+					}
+					else
+					{
+						if (npc.isPhysicalMuted())
+							return super.onAttack(npc, attacker, damage, isPet);
+					}
+					npc.doCast(skill);
 				}
 			}
 			// update a variable with the last action against baium
@@ -472,7 +497,8 @@ public class Baium extends L2AttackableAIScript
 	
 	public synchronized void callSkillAI(L2Npc npc)
 	{
-		if (npc.isInvul() || npc.isCastingNow()) return;
+		if (npc.isInvul() || npc.isCastingNow())
+			return;
 		
 		if (_target == null || _target.isDead() || !(_Zone.isInsideZone(_target)))
 		{
@@ -485,6 +511,18 @@ public class Baium extends L2AttackableAIScript
 		L2Skill skill = _skill;
 		if (skill == null)
 			skill = SkillTable.getInstance().getInfo(getRandomSkill(npc),1);
+		
+		if (skill.isMagic())
+		{
+			if (npc.isMuted())
+				return;
+		}
+		else
+		{
+			if (npc.isPhysicalMuted())
+				return;
+		}
+		
 		if (target == null || target.isDead() || !(_Zone.isInsideZone(target)))
 		{
 			npc.setIsCastingNow(false);