From d62c67d9568caa26568e36476e15fdd8389e273f Mon Sep 17 00:00:00 2001
From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com>
Date: Fri, 3 Apr 2015 15:09:34 +0000
Subject: [PATCH] Updated Orbis Temple statue AI.
---
trunk/dist/game/config/Custom.properties | 12 +++--
trunk/dist/game/data/doors.xml | 4 +-
.../ai/group_template/OrbisTempleStatues.java | 46 ++++++++++++++-----
3 files changed, 46 insertions(+), 16 deletions(-)
diff --git a/trunk/dist/game/config/Custom.properties b/trunk/dist/game/config/Custom.properties
index 4c3a9a5ce0..4c489ddf9d 100644
--- a/trunk/dist/game/config/Custom.properties
+++ b/trunk/dist/game/config/Custom.properties
@@ -546,9 +546,15 @@ EnableRandomMonsterSpawns = True
# Default: 150
MaxSpawnMobRange = 150
-# Example: No random spawns for Kasha's Eye.
-# MobsSpawnNotRandom = 18812,18813,18814
-MobsSpawnNotRandom = 18812,18813,18814,22138,22913,22916,22919,22925
+# Kasha's Eye
+# 18812,18813,18814
+# Pagan Temple
+# 22138
+# Orbis Temple
+# 22911,22912,22913,22914,22915,22916,22917,22918,22919,22925,22927
+MobsSpawnNotRandom = 18812,18813,18814,\
+22138,\
+22911,22912,22913,22914,22915,22916,22917,22918,22919,22925,22927
# ---------------------------------------------------------------------------
diff --git a/trunk/dist/game/data/doors.xml b/trunk/dist/game/data/doors.xml
index a49995908c..7473eb42b1 100644
--- a/trunk/dist/game/data/doors.xml
+++ b/trunk/dist/game/data/doors.xml
@@ -1369,8 +1369,8 @@
-
-
+
+
diff --git a/trunk/dist/game/data/scripts/ai/group_template/OrbisTempleStatues.java b/trunk/dist/game/data/scripts/ai/group_template/OrbisTempleStatues.java
index 19197c153e..a27fcb1c94 100644
--- a/trunk/dist/game/data/scripts/ai/group_template/OrbisTempleStatues.java
+++ b/trunk/dist/game/data/scripts/ai/group_template/OrbisTempleStatues.java
@@ -30,10 +30,17 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
public class OrbisTempleStatues extends AbstractNpcAI
{
// Npcs
- private static final int VICTIM = 22913;
- private static final int GUARD = 22916;
- private static final int THROWER = 22919;
+ private static final int VICTIM_1 = 22911;
+ private static final int VICTIM_2 = 22912;
+ private static final int VICTIM_3 = 22913;
+ private static final int GUARD_1 = 22914;
+ private static final int GUARD_2 = 22915;
+ private static final int GUARD_3 = 22916;
+ private static final int THROWER_1 = 22917;
+ private static final int THROWER_2 = 22918;
+ private static final int THROWER_3 = 22919;
private static final int ANCIENT_HERO = 22925;
+ private static final int CHIEF_CURATOR = 22927;
// Items
private static final int SWORD = 15280;
private static final int SPEAR = 17372;
@@ -41,8 +48,8 @@ public class OrbisTempleStatues extends AbstractNpcAI
public OrbisTempleStatues()
{
super(OrbisTempleStatues.class.getSimpleName(), "ai/group_template");
- addSpawnId(VICTIM, GUARD, THROWER, ANCIENT_HERO);
- addAttackId(VICTIM, GUARD, THROWER, ANCIENT_HERO);
+ addSpawnId(VICTIM_1, VICTIM_2, VICTIM_3, GUARD_1, GUARD_2, GUARD_3, THROWER_1, THROWER_2, THROWER_3, ANCIENT_HERO, CHIEF_CURATOR);
+ addAttackId(VICTIM_1, VICTIM_2, VICTIM_3, GUARD_1, GUARD_2, GUARD_3, THROWER_1, THROWER_2, THROWER_3);
}
@Override
@@ -50,19 +57,32 @@ public class OrbisTempleStatues extends AbstractNpcAI
{
switch (npc.getId())
{
- case VICTIM:
- case GUARD:
+ case VICTIM_1:
+ case VICTIM_2:
+ case VICTIM_3:
+ case GUARD_1:
+ case GUARD_2:
+ case GUARD_3:
{
- npc.setRHandId(SWORD); // TODO: Find better way to change animation.
+ if (npc.isImmobilized())
+ {
+ npc.setIsImmobilized(false);
+ npc.setRHandId(SWORD);
+ }
break;
}
- case THROWER:
+ case THROWER_1:
+ case THROWER_2:
+ case THROWER_3:
{
- npc.setRHandId(SPEAR);
+ if (npc.isImmobilized())
+ {
+ npc.setIsImmobilized(false);
+ npc.setRHandId(SPEAR);
+ }
break;
}
}
-
return super.onAttack(npc, attacker, damage, isPet);
}
@@ -70,6 +90,10 @@ public class OrbisTempleStatues extends AbstractNpcAI
public String onSpawn(L2Npc npc)
{
npc.setIsNoRndWalk(true);
+ if (npc.getId() < ANCIENT_HERO)
+ {
+ npc.setIsImmobilized(true);
+ }
return super.onSpawn(npc);
}