Method initSeenCreatures is not needed to be called from scripts.

This commit is contained in:
MobiusDevelopment
2021-06-22 23:33:10 +00:00
parent 3cc620ba43
commit 72c7d5f563
121 changed files with 175 additions and 981 deletions

View File

@@ -45,7 +45,7 @@ public class Wisp extends AbstractNpcAI
private Wisp() private Wisp()
{ {
addSpawnId(WISP, LARGE_WISP); addSpawnId(WISP);
setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP); setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP);
} }
@@ -76,10 +76,7 @@ public class Wisp extends AbstractNpcAI
addSpawn(LARGE_WISP, npc); addSpawn(LARGE_WISP, npc);
npc.deleteMe(); npc.deleteMe();
} }
else
{
npc.initSeenCreatures();
}
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -103,7 +103,6 @@ public class BalokWarzone extends AbstractInstance
addSkillSeeId(BALOK); addSkillSeeId(BALOK);
addKillId(BALOK, MINION); addKillId(BALOK, MINION);
addSpellFinishedId(BALOK); addSpellFinishedId(BALOK);
addSpawnId(INVISIBLE_NPC_1);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1); setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1);
} }
@@ -322,16 +321,6 @@ public class BalokWarzone extends AbstractInstance
return super.onSkillSee(npc, caster, skill, targets, isSummon); return super.onSkillSee(npc, caster, skill, targets, isSummon);
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
public static void main(String[] args) public static void main(String[] args)
{ {
new BalokWarzone(); new BalokWarzone();

View File

@@ -316,16 +316,6 @@ public class BaylorWarzone extends AbstractInstance
} }
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
/** /**
* Broadcasts SocialAction packet to self and known players. * Broadcasts SocialAction packet to self and known players.
* @param creature * @param creature

View File

@@ -75,7 +75,7 @@ public class KimerianCommon extends AbstractInstance
addStartNpc(NOETI_KASHERON); addStartNpc(NOETI_KASHERON);
addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE); addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE);
addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE); addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE);
addSpawnId(FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); addSpawnId(FAIRY_REBEL, NEOMI_KASHERON);
addAttackId(KIMERIAN); addAttackId(KIMERIAN);
addKillId(KIMERIAN_GHOST, KIMERIAN); addKillId(KIMERIAN_GHOST, KIMERIAN);
setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN);
@@ -301,16 +301,9 @@ public class KimerianCommon extends AbstractInstance
case FAIRY_REBEL: case FAIRY_REBEL:
case NEOMI_KASHERON: case NEOMI_KASHERON:
{ {
npc.initSeenCreatures();
npc.setRunning(); npc.setRunning();
break; break;
} }
case INVISIBLE_NPC:
case KIMERIAN:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -108,7 +108,6 @@ public class OctavisWarzone extends AbstractInstance
super(TEMPLATE_ID, EXTREME_TEMPLATE_ID); super(TEMPLATE_ID, EXTREME_TEMPLATE_ID);
addStartNpc(LYDIA); addStartNpc(LYDIA);
addTalkId(LYDIA); addTalkId(LYDIA);
addSpawnId(DOOR_MANAGER);
addSpawnId(GLADIATORS); addSpawnId(GLADIATORS);
addAttackId(OCTAVIS_STAGE_1); addAttackId(OCTAVIS_STAGE_1);
addAttackId(OCTAVIS_STAGE_2); addAttackId(OCTAVIS_STAGE_2);
@@ -539,7 +538,6 @@ public class OctavisWarzone extends AbstractInstance
world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true); world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true);
getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null); getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null);
} }
npc.initSeenCreatures();
} }
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -96,7 +96,7 @@ public class TeredorWarzone extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(FILAUR); addStartNpc(FILAUR);
addTalkId(FILAUR); addTalkId(FILAUR);
addSpawnId(BEETLE, POS_CHECKER, EGG_2, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON); addSpawnId(BEETLE, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON);
addSpellFinishedId(BEETLE); addSpellFinishedId(BEETLE);
addEventReceivedId(EGG_2); addEventReceivedId(EGG_2);
addAttackId(TEREDOR); addAttackId(TEREDOR);
@@ -112,7 +112,6 @@ public class TeredorWarzone extends AbstractInstance
{ {
final StatSet npcVars = npc.getVariables(); final StatSet npcVars = npc.getVariables();
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (event) switch (event)
{ {
case "EGG_SPAWN_TIMER": case "EGG_SPAWN_TIMER":
@@ -242,7 +241,6 @@ public class TeredorWarzone extends AbstractInstance
WalkingManager.getInstance().startMoving(npc, "trajan5"); WalkingManager.getInstance().startMoving(npc, "trajan5");
getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null); getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null);
((Attackable) npc).setCanReturnToSpawnPoint(false); ((Attackable) npc).setCanReturnToSpawnPoint(false);
npc.initSeenCreatures();
break; break;
} }
case BEETLE: case BEETLE:
@@ -251,14 +249,12 @@ public class TeredorWarzone extends AbstractInstance
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", ""));
} }
npc.initSeenCreatures();
break; break;
} }
case FAKE_TEREDOR: case FAKE_TEREDOR:
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", ""));
npc.setRHandId(FAKE_TEREDOR_WEAPON); npc.setRHandId(FAKE_TEREDOR_WEAPON);
npc.initSeenCreatures();
getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null); getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null);
break; break;
} }
@@ -271,11 +267,6 @@ public class TeredorWarzone extends AbstractInstance
getTimers().addTimer("DELETE_ME", 22000, npc, null); getTimers().addTimer("DELETE_ME", 22000, npc, null);
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -289,7 +280,6 @@ public class TeredorWarzone extends AbstractInstance
if (isInInstance(instance)) if (isInInstance(instance))
{ {
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (npc.getId()) switch (npc.getId())
{ {
case BEETLE: case BEETLE:

View File

@@ -373,7 +373,6 @@ public class CrystalCavernsEmeraldSquare extends AbstractInstance
{ {
getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null); getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null);
} }
npc.initSeenCreatures();
break; break;
} }
} }

View File

@@ -74,7 +74,7 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
addTalkId(CAVERNS_ENTRACE); addTalkId(CAVERNS_ENTRACE);
addAttackId(TRAP_1, TRAP_2); addAttackId(TRAP_1, TRAP_2);
addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED); addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED);
addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION, PLAYER_DETECTOR); addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION);
addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN); addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addInstanceEnterId(TEMPLATE_ID); addInstanceEnterId(TEMPLATE_ID);
@@ -208,11 +208,6 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
npc.disableCoreAI(true); npc.disableCoreAI(true);
break; break;
} }
case PLAYER_DETECTOR:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -373,25 +368,17 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
final Instance instance = npc.getInstanceWorld(); final Instance instance = npc.getInstanceWorld();
if (isInInstance(instance) && creature.isPlayer()) if (isInInstance(instance) && creature.isPlayer())
{ {
final StatSet npcParams = npc.getParameters(); if (npc.isScriptValue(0))
switch (npc.getId())
{ {
case PLAYER_DETECTOR: npc.setScriptValue(1);
final StatSet npcParams = npc.getParameters();
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{ {
if (npc.isScriptValue(0)) final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
{ trap.getVariables().set("TIMER_VAL", 4);
npc.setScriptValue(1);
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{
final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
trap.getVariables().set("TIMER_VAL", 4);
}
npc.deleteMe();
}
break;
} }
npc.deleteMe();
} }
} }
} }

View File

@@ -869,7 +869,6 @@ public class KartiasLabyrinth extends AbstractInstance
onTimerEvent("MOVE_TO_MIDDLE", null, monster, null); onTimerEvent("MOVE_TO_MIDDLE", null, monster, null);
} }
((Attackable) monster).setCanReturnToSpawnPoint(false); ((Attackable) monster).setCanReturnToSpawnPoint(false);
monster.initSeenCreatures();
} }
} }
} }

View File

@@ -197,7 +197,7 @@ public class MemoryOfDisaster extends AbstractInstance
{ {
super(TEMPLATE_ID); super(TEMPLATE_ID);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addSpawnId(INVISIBLE_NPC, TENTACLE, SOLDIER, SOLDIER2, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON, CONTROL_DARKELF_AWAKE); addSpawnId(INVISIBLE_NPC, SOLDIER, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA); addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA);
addMoveFinishedId(DWARVES); addMoveFinishedId(DWARVES);
addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON); addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
@@ -286,23 +286,11 @@ public class MemoryOfDisaster extends AbstractInstance
npc.setRunning(); npc.setRunning();
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
break; break;
} }
case TENTACLE:
case SOLDIER2:
{
npc.initSeenCreatures();
break;
}
case TEREDOR: case TEREDOR:
{ {
npc.initSeenCreatures();
if (npc.isScriptValue(2)) if (npc.isScriptValue(2))
{ {
addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId()); addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId());
@@ -312,7 +300,6 @@ public class MemoryOfDisaster extends AbstractInstance
} }
case SIEGE_GOLEM: case SIEGE_GOLEM:
{ {
npc.initSeenCreatures();
for (Location loc : TEREDOR_SPAWN_LOC) for (Location loc : TEREDOR_SPAWN_LOC)
{ {
final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId()); final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId());
@@ -351,11 +338,6 @@ public class MemoryOfDisaster extends AbstractInstance
npc.doCast(SWOOP_CANNON_SKILL.getSkill()); npc.doCast(SWOOP_CANNON_SKILL.getSkill());
break; break;
} }
case CONTROL_DARKELF_AWAKE:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -131,7 +131,7 @@ public class PailakaInjuredDragon extends AbstractInstance
addAttackId(WARRIORS); addAttackId(WARRIORS);
addAttackId(WIZARDS); addAttackId(WIZARDS);
addAttackId(LATANA); addAttackId(LATANA);
addSpawnId(TELEPORT_TRAP, LATANA, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2); addSpawnId(TELEPORT_TRAP, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2);
addSpawnId(WIZARDS); addSpawnId(WIZARDS);
setCreatureSeeId(this::onCreatureSee, WIZARDS); setCreatureSeeId(this::onCreatureSee, WIZARDS);
setCreatureSeeId(this::onCreatureSee, LATANA); setCreatureSeeId(this::onCreatureSee, LATANA);
@@ -469,7 +469,6 @@ public class PailakaInjuredDragon extends AbstractInstance
npc.setInvisible(true); npc.setInvisible(true);
getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null); getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null);
} }
npc.initSeenCreatures();
} }
} }
} }

View File

@@ -114,7 +114,7 @@ public class PrisonOfDarkness extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(SPEZION_HEADSTONE); addStartNpc(SPEZION_HEADSTONE);
addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA); addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA);
addSpawnId(WARP_POINT, EXIT_PORTAL, ESCORT_WARRIOR); addSpawnId(WARP_POINT, ESCORT_WARRIOR);
addSpellFinishedId(MONSTERS); addSpellFinishedId(MONSTERS);
setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL); setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL);
addKillId(SPEZIONS_PAWN); addKillId(SPEZIONS_PAWN);
@@ -333,11 +333,6 @@ public class PrisonOfDarkness extends AbstractInstance
getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null);
break; break;
} }
case EXIT_PORTAL:
{
npc.initSeenCreatures();
break;
}
case ESCORT_WARRIOR: case ESCORT_WARRIOR:
{ {
// TODO: attack logic // TODO: attack logic

View File

@@ -57,7 +57,6 @@ public class TalkingIslandPast extends AbstractInstance
addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addExitZoneId(TALKING_ISLAND_ZONE); addExitZoneId(TALKING_ISLAND_ZONE);
addSpawnId(INVISIBLE_TI_NPC);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC); setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC);
} }
@@ -94,13 +93,6 @@ public class TalkingIslandPast extends AbstractInstance
super.onEnter(player, instance, firstEnter); super.onEnter(player, instance, firstEnter);
} }
@Override
public String onSpawn(Npc npc)
{
npc.initSeenCreatures();
return super.onSpawn(npc);
}
@Override @Override
public String onExitZone(Creature creature, ZoneType zone) public String onExitZone(Creature creature, ZoneType zone)
{ {

View File

@@ -45,7 +45,7 @@ public class Wisp extends AbstractNpcAI
private Wisp() private Wisp()
{ {
addSpawnId(WISP, LARGE_WISP); addSpawnId(WISP);
setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP); setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP);
} }
@@ -76,10 +76,7 @@ public class Wisp extends AbstractNpcAI
addSpawn(LARGE_WISP, npc); addSpawn(LARGE_WISP, npc);
npc.deleteMe(); npc.deleteMe();
} }
else
{
npc.initSeenCreatures();
}
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -103,7 +103,6 @@ public class BalokWarzone extends AbstractInstance
addSkillSeeId(BALOK); addSkillSeeId(BALOK);
addKillId(BALOK, MINION); addKillId(BALOK, MINION);
addSpellFinishedId(BALOK); addSpellFinishedId(BALOK);
addSpawnId(INVISIBLE_NPC_1);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1); setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1);
} }
@@ -322,16 +321,6 @@ public class BalokWarzone extends AbstractInstance
return super.onSkillSee(npc, caster, skill, targets, isSummon); return super.onSkillSee(npc, caster, skill, targets, isSummon);
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
public static void main(String[] args) public static void main(String[] args)
{ {
new BalokWarzone(); new BalokWarzone();

View File

@@ -316,16 +316,6 @@ public class BaylorWarzone extends AbstractInstance
} }
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
/** /**
* Broadcasts SocialAction packet to self and known players. * Broadcasts SocialAction packet to self and known players.
* @param creature * @param creature

View File

@@ -75,7 +75,7 @@ public class KimerianCommon extends AbstractInstance
addStartNpc(NOETI_KASHERON); addStartNpc(NOETI_KASHERON);
addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE); addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE);
addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE); addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE);
addSpawnId(FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); addSpawnId(FAIRY_REBEL, NEOMI_KASHERON);
addAttackId(KIMERIAN); addAttackId(KIMERIAN);
addKillId(KIMERIAN_GHOST, KIMERIAN); addKillId(KIMERIAN_GHOST, KIMERIAN);
setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN);
@@ -301,16 +301,9 @@ public class KimerianCommon extends AbstractInstance
case FAIRY_REBEL: case FAIRY_REBEL:
case NEOMI_KASHERON: case NEOMI_KASHERON:
{ {
npc.initSeenCreatures();
npc.setRunning(); npc.setRunning();
break; break;
} }
case INVISIBLE_NPC:
case KIMERIAN:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -108,7 +108,6 @@ public class OctavisWarzone extends AbstractInstance
super(TEMPLATE_ID, EXTREME_TEMPLATE_ID); super(TEMPLATE_ID, EXTREME_TEMPLATE_ID);
addStartNpc(LYDIA); addStartNpc(LYDIA);
addTalkId(LYDIA); addTalkId(LYDIA);
addSpawnId(DOOR_MANAGER);
addSpawnId(GLADIATORS); addSpawnId(GLADIATORS);
addAttackId(OCTAVIS_STAGE_1); addAttackId(OCTAVIS_STAGE_1);
addAttackId(OCTAVIS_STAGE_2); addAttackId(OCTAVIS_STAGE_2);
@@ -539,7 +538,6 @@ public class OctavisWarzone extends AbstractInstance
world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true); world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true);
getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null); getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null);
} }
npc.initSeenCreatures();
} }
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -96,7 +96,7 @@ public class TeredorWarzone extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(FILAUR); addStartNpc(FILAUR);
addTalkId(FILAUR); addTalkId(FILAUR);
addSpawnId(BEETLE, POS_CHECKER, EGG_2, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON); addSpawnId(BEETLE, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON);
addSpellFinishedId(BEETLE); addSpellFinishedId(BEETLE);
addEventReceivedId(EGG_2); addEventReceivedId(EGG_2);
addAttackId(TEREDOR); addAttackId(TEREDOR);
@@ -112,7 +112,6 @@ public class TeredorWarzone extends AbstractInstance
{ {
final StatSet npcVars = npc.getVariables(); final StatSet npcVars = npc.getVariables();
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (event) switch (event)
{ {
case "EGG_SPAWN_TIMER": case "EGG_SPAWN_TIMER":
@@ -242,7 +241,6 @@ public class TeredorWarzone extends AbstractInstance
WalkingManager.getInstance().startMoving(npc, "trajan5"); WalkingManager.getInstance().startMoving(npc, "trajan5");
getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null); getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null);
((Attackable) npc).setCanReturnToSpawnPoint(false); ((Attackable) npc).setCanReturnToSpawnPoint(false);
npc.initSeenCreatures();
break; break;
} }
case BEETLE: case BEETLE:
@@ -251,14 +249,12 @@ public class TeredorWarzone extends AbstractInstance
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", ""));
} }
npc.initSeenCreatures();
break; break;
} }
case FAKE_TEREDOR: case FAKE_TEREDOR:
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", ""));
npc.setRHandId(FAKE_TEREDOR_WEAPON); npc.setRHandId(FAKE_TEREDOR_WEAPON);
npc.initSeenCreatures();
getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null); getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null);
break; break;
} }
@@ -271,11 +267,6 @@ public class TeredorWarzone extends AbstractInstance
getTimers().addTimer("DELETE_ME", 22000, npc, null); getTimers().addTimer("DELETE_ME", 22000, npc, null);
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -289,7 +280,6 @@ public class TeredorWarzone extends AbstractInstance
if (isInInstance(instance)) if (isInInstance(instance))
{ {
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (npc.getId()) switch (npc.getId())
{ {
case BEETLE: case BEETLE:

View File

@@ -373,7 +373,6 @@ public class CrystalCavernsEmeraldSquare extends AbstractInstance
{ {
getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null); getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null);
} }
npc.initSeenCreatures();
break; break;
} }
} }

View File

@@ -74,7 +74,7 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
addTalkId(CAVERNS_ENTRACE); addTalkId(CAVERNS_ENTRACE);
addAttackId(TRAP_1, TRAP_2); addAttackId(TRAP_1, TRAP_2);
addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED); addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED);
addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION, PLAYER_DETECTOR); addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION);
addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN); addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addInstanceEnterId(TEMPLATE_ID); addInstanceEnterId(TEMPLATE_ID);
@@ -208,11 +208,6 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
npc.disableCoreAI(true); npc.disableCoreAI(true);
break; break;
} }
case PLAYER_DETECTOR:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -373,25 +368,17 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
final Instance instance = npc.getInstanceWorld(); final Instance instance = npc.getInstanceWorld();
if (isInInstance(instance) && creature.isPlayer()) if (isInInstance(instance) && creature.isPlayer())
{ {
final StatSet npcParams = npc.getParameters(); if (npc.isScriptValue(0))
switch (npc.getId())
{ {
case PLAYER_DETECTOR: npc.setScriptValue(1);
final StatSet npcParams = npc.getParameters();
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{ {
if (npc.isScriptValue(0)) final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
{ trap.getVariables().set("TIMER_VAL", 4);
npc.setScriptValue(1);
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{
final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
trap.getVariables().set("TIMER_VAL", 4);
}
npc.deleteMe();
}
break;
} }
npc.deleteMe();
} }
} }
} }

View File

@@ -869,7 +869,6 @@ public class KartiasLabyrinth extends AbstractInstance
onTimerEvent("MOVE_TO_MIDDLE", null, monster, null); onTimerEvent("MOVE_TO_MIDDLE", null, monster, null);
} }
((Attackable) monster).setCanReturnToSpawnPoint(false); ((Attackable) monster).setCanReturnToSpawnPoint(false);
monster.initSeenCreatures();
} }
} }
} }

View File

@@ -197,7 +197,7 @@ public class MemoryOfDisaster extends AbstractInstance
{ {
super(TEMPLATE_ID); super(TEMPLATE_ID);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addSpawnId(INVISIBLE_NPC, TENTACLE, SOLDIER, SOLDIER2, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON, CONTROL_DARKELF_AWAKE); addSpawnId(INVISIBLE_NPC, SOLDIER, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA); addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA);
addMoveFinishedId(DWARVES); addMoveFinishedId(DWARVES);
addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON); addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
@@ -286,23 +286,11 @@ public class MemoryOfDisaster extends AbstractInstance
npc.setRunning(); npc.setRunning();
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
break; break;
} }
case TENTACLE:
case SOLDIER2:
{
npc.initSeenCreatures();
break;
}
case TEREDOR: case TEREDOR:
{ {
npc.initSeenCreatures();
if (npc.isScriptValue(2)) if (npc.isScriptValue(2))
{ {
addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId()); addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId());
@@ -312,7 +300,6 @@ public class MemoryOfDisaster extends AbstractInstance
} }
case SIEGE_GOLEM: case SIEGE_GOLEM:
{ {
npc.initSeenCreatures();
for (Location loc : TEREDOR_SPAWN_LOC) for (Location loc : TEREDOR_SPAWN_LOC)
{ {
final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId()); final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId());
@@ -351,11 +338,6 @@ public class MemoryOfDisaster extends AbstractInstance
npc.doCast(SWOOP_CANNON_SKILL.getSkill()); npc.doCast(SWOOP_CANNON_SKILL.getSkill());
break; break;
} }
case CONTROL_DARKELF_AWAKE:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -131,7 +131,7 @@ public class PailakaInjuredDragon extends AbstractInstance
addAttackId(WARRIORS); addAttackId(WARRIORS);
addAttackId(WIZARDS); addAttackId(WIZARDS);
addAttackId(LATANA); addAttackId(LATANA);
addSpawnId(TELEPORT_TRAP, LATANA, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2); addSpawnId(TELEPORT_TRAP, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2);
addSpawnId(WIZARDS); addSpawnId(WIZARDS);
setCreatureSeeId(this::onCreatureSee, WIZARDS); setCreatureSeeId(this::onCreatureSee, WIZARDS);
setCreatureSeeId(this::onCreatureSee, LATANA); setCreatureSeeId(this::onCreatureSee, LATANA);
@@ -469,7 +469,6 @@ public class PailakaInjuredDragon extends AbstractInstance
npc.setInvisible(true); npc.setInvisible(true);
getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null); getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null);
} }
npc.initSeenCreatures();
} }
} }
} }

View File

@@ -114,7 +114,7 @@ public class PrisonOfDarkness extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(SPEZION_HEADSTONE); addStartNpc(SPEZION_HEADSTONE);
addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA); addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA);
addSpawnId(WARP_POINT, EXIT_PORTAL, ESCORT_WARRIOR); addSpawnId(WARP_POINT, ESCORT_WARRIOR);
addSpellFinishedId(MONSTERS); addSpellFinishedId(MONSTERS);
setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL); setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL);
addKillId(SPEZIONS_PAWN); addKillId(SPEZIONS_PAWN);
@@ -333,11 +333,6 @@ public class PrisonOfDarkness extends AbstractInstance
getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null);
break; break;
} }
case EXIT_PORTAL:
{
npc.initSeenCreatures();
break;
}
case ESCORT_WARRIOR: case ESCORT_WARRIOR:
{ {
// TODO: attack logic // TODO: attack logic

View File

@@ -57,7 +57,6 @@ public class TalkingIslandPast extends AbstractInstance
addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addExitZoneId(TALKING_ISLAND_ZONE); addExitZoneId(TALKING_ISLAND_ZONE);
addSpawnId(INVISIBLE_TI_NPC);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC); setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC);
} }
@@ -94,13 +93,6 @@ public class TalkingIslandPast extends AbstractInstance
super.onEnter(player, instance, firstEnter); super.onEnter(player, instance, firstEnter);
} }
@Override
public String onSpawn(Npc npc)
{
npc.initSeenCreatures();
return super.onSpawn(npc);
}
@Override @Override
public String onExitZone(Creature creature, ZoneType zone) public String onExitZone(Creature creature, ZoneType zone)
{ {

View File

@@ -45,7 +45,7 @@ public class Wisp extends AbstractNpcAI
private Wisp() private Wisp()
{ {
addSpawnId(WISP, LARGE_WISP); addSpawnId(WISP);
setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP); setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP);
} }
@@ -76,10 +76,7 @@ public class Wisp extends AbstractNpcAI
addSpawn(LARGE_WISP, npc); addSpawn(LARGE_WISP, npc);
npc.deleteMe(); npc.deleteMe();
} }
else
{
npc.initSeenCreatures();
}
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -103,7 +103,6 @@ public class BalokWarzone extends AbstractInstance
addSkillSeeId(BALOK); addSkillSeeId(BALOK);
addKillId(BALOK, MINION); addKillId(BALOK, MINION);
addSpellFinishedId(BALOK); addSpellFinishedId(BALOK);
addSpawnId(INVISIBLE_NPC_1);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1); setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1);
} }
@@ -322,16 +321,6 @@ public class BalokWarzone extends AbstractInstance
return super.onSkillSee(npc, caster, skill, targets, isSummon); return super.onSkillSee(npc, caster, skill, targets, isSummon);
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
public static void main(String[] args) public static void main(String[] args)
{ {
new BalokWarzone(); new BalokWarzone();

View File

@@ -316,16 +316,6 @@ public class BaylorWarzone extends AbstractInstance
} }
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
/** /**
* Broadcasts SocialAction packet to self and known players. * Broadcasts SocialAction packet to self and known players.
* @param creature * @param creature

View File

@@ -75,7 +75,7 @@ public class KimerianCommon extends AbstractInstance
addStartNpc(NOETI_KASHERON); addStartNpc(NOETI_KASHERON);
addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE); addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE);
addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE); addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE);
addSpawnId(FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); addSpawnId(FAIRY_REBEL, NEOMI_KASHERON);
addAttackId(KIMERIAN); addAttackId(KIMERIAN);
addKillId(KIMERIAN_GHOST, KIMERIAN); addKillId(KIMERIAN_GHOST, KIMERIAN);
setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN);
@@ -301,16 +301,9 @@ public class KimerianCommon extends AbstractInstance
case FAIRY_REBEL: case FAIRY_REBEL:
case NEOMI_KASHERON: case NEOMI_KASHERON:
{ {
npc.initSeenCreatures();
npc.setRunning(); npc.setRunning();
break; break;
} }
case INVISIBLE_NPC:
case KIMERIAN:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -108,7 +108,6 @@ public class OctavisWarzone extends AbstractInstance
super(TEMPLATE_ID, EXTREME_TEMPLATE_ID); super(TEMPLATE_ID, EXTREME_TEMPLATE_ID);
addStartNpc(LYDIA); addStartNpc(LYDIA);
addTalkId(LYDIA); addTalkId(LYDIA);
addSpawnId(DOOR_MANAGER);
addSpawnId(GLADIATORS); addSpawnId(GLADIATORS);
addAttackId(OCTAVIS_STAGE_1); addAttackId(OCTAVIS_STAGE_1);
addAttackId(OCTAVIS_STAGE_2); addAttackId(OCTAVIS_STAGE_2);
@@ -539,7 +538,6 @@ public class OctavisWarzone extends AbstractInstance
world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true); world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true);
getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null); getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null);
} }
npc.initSeenCreatures();
} }
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -96,7 +96,7 @@ public class TeredorWarzone extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(FILAUR); addStartNpc(FILAUR);
addTalkId(FILAUR); addTalkId(FILAUR);
addSpawnId(BEETLE, POS_CHECKER, EGG_2, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON); addSpawnId(BEETLE, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON);
addSpellFinishedId(BEETLE); addSpellFinishedId(BEETLE);
addEventReceivedId(EGG_2); addEventReceivedId(EGG_2);
addAttackId(TEREDOR); addAttackId(TEREDOR);
@@ -112,7 +112,6 @@ public class TeredorWarzone extends AbstractInstance
{ {
final StatSet npcVars = npc.getVariables(); final StatSet npcVars = npc.getVariables();
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (event) switch (event)
{ {
case "EGG_SPAWN_TIMER": case "EGG_SPAWN_TIMER":
@@ -242,7 +241,6 @@ public class TeredorWarzone extends AbstractInstance
WalkingManager.getInstance().startMoving(npc, "trajan5"); WalkingManager.getInstance().startMoving(npc, "trajan5");
getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null); getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null);
((Attackable) npc).setCanReturnToSpawnPoint(false); ((Attackable) npc).setCanReturnToSpawnPoint(false);
npc.initSeenCreatures();
break; break;
} }
case BEETLE: case BEETLE:
@@ -251,14 +249,12 @@ public class TeredorWarzone extends AbstractInstance
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", ""));
} }
npc.initSeenCreatures();
break; break;
} }
case FAKE_TEREDOR: case FAKE_TEREDOR:
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", ""));
npc.setRHandId(FAKE_TEREDOR_WEAPON); npc.setRHandId(FAKE_TEREDOR_WEAPON);
npc.initSeenCreatures();
getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null); getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null);
break; break;
} }
@@ -271,11 +267,6 @@ public class TeredorWarzone extends AbstractInstance
getTimers().addTimer("DELETE_ME", 22000, npc, null); getTimers().addTimer("DELETE_ME", 22000, npc, null);
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -289,7 +280,6 @@ public class TeredorWarzone extends AbstractInstance
if (isInInstance(instance)) if (isInInstance(instance))
{ {
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (npc.getId()) switch (npc.getId())
{ {
case BEETLE: case BEETLE:

View File

@@ -373,7 +373,6 @@ public class CrystalCavernsEmeraldSquare extends AbstractInstance
{ {
getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null); getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null);
} }
npc.initSeenCreatures();
break; break;
} }
} }

View File

@@ -74,7 +74,7 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
addTalkId(CAVERNS_ENTRACE); addTalkId(CAVERNS_ENTRACE);
addAttackId(TRAP_1, TRAP_2); addAttackId(TRAP_1, TRAP_2);
addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED); addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED);
addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION, PLAYER_DETECTOR); addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION);
addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN); addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addInstanceEnterId(TEMPLATE_ID); addInstanceEnterId(TEMPLATE_ID);
@@ -208,11 +208,6 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
npc.disableCoreAI(true); npc.disableCoreAI(true);
break; break;
} }
case PLAYER_DETECTOR:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -373,25 +368,17 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
final Instance instance = npc.getInstanceWorld(); final Instance instance = npc.getInstanceWorld();
if (isInInstance(instance) && creature.isPlayer()) if (isInInstance(instance) && creature.isPlayer())
{ {
final StatSet npcParams = npc.getParameters(); if (npc.isScriptValue(0))
switch (npc.getId())
{ {
case PLAYER_DETECTOR: npc.setScriptValue(1);
final StatSet npcParams = npc.getParameters();
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{ {
if (npc.isScriptValue(0)) final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
{ trap.getVariables().set("TIMER_VAL", 4);
npc.setScriptValue(1);
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{
final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
trap.getVariables().set("TIMER_VAL", 4);
}
npc.deleteMe();
}
break;
} }
npc.deleteMe();
} }
} }
} }

View File

@@ -869,7 +869,6 @@ public class KartiasLabyrinth extends AbstractInstance
onTimerEvent("MOVE_TO_MIDDLE", null, monster, null); onTimerEvent("MOVE_TO_MIDDLE", null, monster, null);
} }
((Attackable) monster).setCanReturnToSpawnPoint(false); ((Attackable) monster).setCanReturnToSpawnPoint(false);
monster.initSeenCreatures();
} }
} }
} }

View File

@@ -197,7 +197,7 @@ public class MemoryOfDisaster extends AbstractInstance
{ {
super(TEMPLATE_ID); super(TEMPLATE_ID);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addSpawnId(INVISIBLE_NPC, TENTACLE, SOLDIER, SOLDIER2, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON, CONTROL_DARKELF_AWAKE); addSpawnId(INVISIBLE_NPC, SOLDIER, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA); addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA);
addMoveFinishedId(DWARVES); addMoveFinishedId(DWARVES);
addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON); addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
@@ -286,23 +286,11 @@ public class MemoryOfDisaster extends AbstractInstance
npc.setRunning(); npc.setRunning();
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
break; break;
} }
case TENTACLE:
case SOLDIER2:
{
npc.initSeenCreatures();
break;
}
case TEREDOR: case TEREDOR:
{ {
npc.initSeenCreatures();
if (npc.isScriptValue(2)) if (npc.isScriptValue(2))
{ {
addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId()); addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId());
@@ -312,7 +300,6 @@ public class MemoryOfDisaster extends AbstractInstance
} }
case SIEGE_GOLEM: case SIEGE_GOLEM:
{ {
npc.initSeenCreatures();
for (Location loc : TEREDOR_SPAWN_LOC) for (Location loc : TEREDOR_SPAWN_LOC)
{ {
final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId()); final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId());
@@ -351,11 +338,6 @@ public class MemoryOfDisaster extends AbstractInstance
npc.doCast(SWOOP_CANNON_SKILL.getSkill()); npc.doCast(SWOOP_CANNON_SKILL.getSkill());
break; break;
} }
case CONTROL_DARKELF_AWAKE:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -131,7 +131,7 @@ public class PailakaInjuredDragon extends AbstractInstance
addAttackId(WARRIORS); addAttackId(WARRIORS);
addAttackId(WIZARDS); addAttackId(WIZARDS);
addAttackId(LATANA); addAttackId(LATANA);
addSpawnId(TELEPORT_TRAP, LATANA, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2); addSpawnId(TELEPORT_TRAP, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2);
addSpawnId(WIZARDS); addSpawnId(WIZARDS);
setCreatureSeeId(this::onCreatureSee, WIZARDS); setCreatureSeeId(this::onCreatureSee, WIZARDS);
setCreatureSeeId(this::onCreatureSee, LATANA); setCreatureSeeId(this::onCreatureSee, LATANA);
@@ -469,7 +469,6 @@ public class PailakaInjuredDragon extends AbstractInstance
npc.setInvisible(true); npc.setInvisible(true);
getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null); getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null);
} }
npc.initSeenCreatures();
} }
} }
} }

View File

@@ -114,7 +114,7 @@ public class PrisonOfDarkness extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(SPEZION_HEADSTONE); addStartNpc(SPEZION_HEADSTONE);
addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA); addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA);
addSpawnId(WARP_POINT, EXIT_PORTAL, ESCORT_WARRIOR); addSpawnId(WARP_POINT, ESCORT_WARRIOR);
addSpellFinishedId(MONSTERS); addSpellFinishedId(MONSTERS);
setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL); setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL);
addKillId(SPEZIONS_PAWN); addKillId(SPEZIONS_PAWN);
@@ -333,11 +333,6 @@ public class PrisonOfDarkness extends AbstractInstance
getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null);
break; break;
} }
case EXIT_PORTAL:
{
npc.initSeenCreatures();
break;
}
case ESCORT_WARRIOR: case ESCORT_WARRIOR:
{ {
// TODO: attack logic // TODO: attack logic

View File

@@ -57,7 +57,6 @@ public class TalkingIslandPast extends AbstractInstance
addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addExitZoneId(TALKING_ISLAND_ZONE); addExitZoneId(TALKING_ISLAND_ZONE);
addSpawnId(INVISIBLE_TI_NPC);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC); setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC);
} }
@@ -94,13 +93,6 @@ public class TalkingIslandPast extends AbstractInstance
super.onEnter(player, instance, firstEnter); super.onEnter(player, instance, firstEnter);
} }
@Override
public String onSpawn(Npc npc)
{
npc.initSeenCreatures();
return super.onSpawn(npc);
}
@Override @Override
public String onExitZone(Creature creature, ZoneType zone) public String onExitZone(Creature creature, ZoneType zone)
{ {

View File

@@ -45,7 +45,7 @@ public class Wisp extends AbstractNpcAI
private Wisp() private Wisp()
{ {
addSpawnId(WISP, LARGE_WISP); addSpawnId(WISP);
setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP); setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP);
} }
@@ -76,10 +76,7 @@ public class Wisp extends AbstractNpcAI
addSpawn(LARGE_WISP, npc); addSpawn(LARGE_WISP, npc);
npc.deleteMe(); npc.deleteMe();
} }
else
{
npc.initSeenCreatures();
}
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -103,7 +103,6 @@ public class BalokWarzone extends AbstractInstance
addSkillSeeId(BALOK); addSkillSeeId(BALOK);
addKillId(BALOK, MINION); addKillId(BALOK, MINION);
addSpellFinishedId(BALOK); addSpellFinishedId(BALOK);
addSpawnId(INVISIBLE_NPC_1);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1); setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1);
} }
@@ -322,16 +321,6 @@ public class BalokWarzone extends AbstractInstance
return super.onSkillSee(npc, caster, skill, targets, isSummon); return super.onSkillSee(npc, caster, skill, targets, isSummon);
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
public static void main(String[] args) public static void main(String[] args)
{ {
new BalokWarzone(); new BalokWarzone();

View File

@@ -316,16 +316,6 @@ public class BaylorWarzone extends AbstractInstance
} }
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
/** /**
* Broadcasts SocialAction packet to self and known players. * Broadcasts SocialAction packet to self and known players.
* @param creature * @param creature

View File

@@ -75,7 +75,7 @@ public class KimerianCommon extends AbstractInstance
addStartNpc(NOETI_KASHERON); addStartNpc(NOETI_KASHERON);
addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE); addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE);
addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE); addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE);
addSpawnId(FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); addSpawnId(FAIRY_REBEL, NEOMI_KASHERON);
addAttackId(KIMERIAN); addAttackId(KIMERIAN);
addKillId(KIMERIAN_GHOST, KIMERIAN); addKillId(KIMERIAN_GHOST, KIMERIAN);
setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN);
@@ -301,16 +301,9 @@ public class KimerianCommon extends AbstractInstance
case FAIRY_REBEL: case FAIRY_REBEL:
case NEOMI_KASHERON: case NEOMI_KASHERON:
{ {
npc.initSeenCreatures();
npc.setRunning(); npc.setRunning();
break; break;
} }
case INVISIBLE_NPC:
case KIMERIAN:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -108,7 +108,6 @@ public class OctavisWarzone extends AbstractInstance
super(TEMPLATE_ID, EXTREME_TEMPLATE_ID); super(TEMPLATE_ID, EXTREME_TEMPLATE_ID);
addStartNpc(LYDIA); addStartNpc(LYDIA);
addTalkId(LYDIA); addTalkId(LYDIA);
addSpawnId(DOOR_MANAGER);
addSpawnId(GLADIATORS); addSpawnId(GLADIATORS);
addAttackId(OCTAVIS_STAGE_1); addAttackId(OCTAVIS_STAGE_1);
addAttackId(OCTAVIS_STAGE_2); addAttackId(OCTAVIS_STAGE_2);
@@ -539,7 +538,6 @@ public class OctavisWarzone extends AbstractInstance
world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true); world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true);
getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null); getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null);
} }
npc.initSeenCreatures();
} }
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -96,7 +96,7 @@ public class TeredorWarzone extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(FILAUR); addStartNpc(FILAUR);
addTalkId(FILAUR); addTalkId(FILAUR);
addSpawnId(BEETLE, POS_CHECKER, EGG_2, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON); addSpawnId(BEETLE, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON);
addSpellFinishedId(BEETLE); addSpellFinishedId(BEETLE);
addEventReceivedId(EGG_2); addEventReceivedId(EGG_2);
addAttackId(TEREDOR); addAttackId(TEREDOR);
@@ -112,7 +112,6 @@ public class TeredorWarzone extends AbstractInstance
{ {
final StatSet npcVars = npc.getVariables(); final StatSet npcVars = npc.getVariables();
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (event) switch (event)
{ {
case "EGG_SPAWN_TIMER": case "EGG_SPAWN_TIMER":
@@ -242,7 +241,6 @@ public class TeredorWarzone extends AbstractInstance
WalkingManager.getInstance().startMoving(npc, "trajan5"); WalkingManager.getInstance().startMoving(npc, "trajan5");
getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null); getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null);
((Attackable) npc).setCanReturnToSpawnPoint(false); ((Attackable) npc).setCanReturnToSpawnPoint(false);
npc.initSeenCreatures();
break; break;
} }
case BEETLE: case BEETLE:
@@ -251,14 +249,12 @@ public class TeredorWarzone extends AbstractInstance
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", ""));
} }
npc.initSeenCreatures();
break; break;
} }
case FAKE_TEREDOR: case FAKE_TEREDOR:
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", ""));
npc.setRHandId(FAKE_TEREDOR_WEAPON); npc.setRHandId(FAKE_TEREDOR_WEAPON);
npc.initSeenCreatures();
getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null); getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null);
break; break;
} }
@@ -271,11 +267,6 @@ public class TeredorWarzone extends AbstractInstance
getTimers().addTimer("DELETE_ME", 22000, npc, null); getTimers().addTimer("DELETE_ME", 22000, npc, null);
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -289,7 +280,6 @@ public class TeredorWarzone extends AbstractInstance
if (isInInstance(instance)) if (isInInstance(instance))
{ {
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (npc.getId()) switch (npc.getId())
{ {
case BEETLE: case BEETLE:

View File

@@ -373,7 +373,6 @@ public class CrystalCavernsEmeraldSquare extends AbstractInstance
{ {
getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null); getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null);
} }
npc.initSeenCreatures();
break; break;
} }
} }

View File

@@ -74,7 +74,7 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
addTalkId(CAVERNS_ENTRACE); addTalkId(CAVERNS_ENTRACE);
addAttackId(TRAP_1, TRAP_2); addAttackId(TRAP_1, TRAP_2);
addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED); addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED);
addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION, PLAYER_DETECTOR); addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION);
addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN); addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addInstanceEnterId(TEMPLATE_ID); addInstanceEnterId(TEMPLATE_ID);
@@ -208,11 +208,6 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
npc.disableCoreAI(true); npc.disableCoreAI(true);
break; break;
} }
case PLAYER_DETECTOR:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -373,25 +368,17 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
final Instance instance = npc.getInstanceWorld(); final Instance instance = npc.getInstanceWorld();
if (isInInstance(instance) && creature.isPlayer()) if (isInInstance(instance) && creature.isPlayer())
{ {
final StatSet npcParams = npc.getParameters(); if (npc.isScriptValue(0))
switch (npc.getId())
{ {
case PLAYER_DETECTOR: npc.setScriptValue(1);
final StatSet npcParams = npc.getParameters();
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{ {
if (npc.isScriptValue(0)) final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
{ trap.getVariables().set("TIMER_VAL", 4);
npc.setScriptValue(1);
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{
final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
trap.getVariables().set("TIMER_VAL", 4);
}
npc.deleteMe();
}
break;
} }
npc.deleteMe();
} }
} }
} }

View File

@@ -869,7 +869,6 @@ public class KartiasLabyrinth extends AbstractInstance
onTimerEvent("MOVE_TO_MIDDLE", null, monster, null); onTimerEvent("MOVE_TO_MIDDLE", null, monster, null);
} }
((Attackable) monster).setCanReturnToSpawnPoint(false); ((Attackable) monster).setCanReturnToSpawnPoint(false);
monster.initSeenCreatures();
} }
} }
} }

View File

@@ -197,7 +197,7 @@ public class MemoryOfDisaster extends AbstractInstance
{ {
super(TEMPLATE_ID); super(TEMPLATE_ID);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addSpawnId(INVISIBLE_NPC, TENTACLE, SOLDIER, SOLDIER2, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON, CONTROL_DARKELF_AWAKE); addSpawnId(INVISIBLE_NPC, SOLDIER, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA); addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA);
addMoveFinishedId(DWARVES); addMoveFinishedId(DWARVES);
addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON); addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
@@ -286,23 +286,11 @@ public class MemoryOfDisaster extends AbstractInstance
npc.setRunning(); npc.setRunning();
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
break; break;
} }
case TENTACLE:
case SOLDIER2:
{
npc.initSeenCreatures();
break;
}
case TEREDOR: case TEREDOR:
{ {
npc.initSeenCreatures();
if (npc.isScriptValue(2)) if (npc.isScriptValue(2))
{ {
addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId()); addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId());
@@ -312,7 +300,6 @@ public class MemoryOfDisaster extends AbstractInstance
} }
case SIEGE_GOLEM: case SIEGE_GOLEM:
{ {
npc.initSeenCreatures();
for (Location loc : TEREDOR_SPAWN_LOC) for (Location loc : TEREDOR_SPAWN_LOC)
{ {
final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId()); final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId());
@@ -351,11 +338,6 @@ public class MemoryOfDisaster extends AbstractInstance
npc.doCast(SWOOP_CANNON_SKILL.getSkill()); npc.doCast(SWOOP_CANNON_SKILL.getSkill());
break; break;
} }
case CONTROL_DARKELF_AWAKE:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -131,7 +131,7 @@ public class PailakaInjuredDragon extends AbstractInstance
addAttackId(WARRIORS); addAttackId(WARRIORS);
addAttackId(WIZARDS); addAttackId(WIZARDS);
addAttackId(LATANA); addAttackId(LATANA);
addSpawnId(TELEPORT_TRAP, LATANA, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2); addSpawnId(TELEPORT_TRAP, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2);
addSpawnId(WIZARDS); addSpawnId(WIZARDS);
setCreatureSeeId(this::onCreatureSee, WIZARDS); setCreatureSeeId(this::onCreatureSee, WIZARDS);
setCreatureSeeId(this::onCreatureSee, LATANA); setCreatureSeeId(this::onCreatureSee, LATANA);
@@ -469,7 +469,6 @@ public class PailakaInjuredDragon extends AbstractInstance
npc.setInvisible(true); npc.setInvisible(true);
getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null); getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null);
} }
npc.initSeenCreatures();
} }
} }
} }

View File

@@ -114,7 +114,7 @@ public class PrisonOfDarkness extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(SPEZION_HEADSTONE); addStartNpc(SPEZION_HEADSTONE);
addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA); addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA);
addSpawnId(WARP_POINT, EXIT_PORTAL, ESCORT_WARRIOR); addSpawnId(WARP_POINT, ESCORT_WARRIOR);
addSpellFinishedId(MONSTERS); addSpellFinishedId(MONSTERS);
setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL); setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL);
addKillId(SPEZIONS_PAWN); addKillId(SPEZIONS_PAWN);
@@ -333,11 +333,6 @@ public class PrisonOfDarkness extends AbstractInstance
getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null);
break; break;
} }
case EXIT_PORTAL:
{
npc.initSeenCreatures();
break;
}
case ESCORT_WARRIOR: case ESCORT_WARRIOR:
{ {
// TODO: attack logic // TODO: attack logic

View File

@@ -57,7 +57,6 @@ public class TalkingIslandPast extends AbstractInstance
addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addExitZoneId(TALKING_ISLAND_ZONE); addExitZoneId(TALKING_ISLAND_ZONE);
addSpawnId(INVISIBLE_TI_NPC);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC); setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC);
} }
@@ -94,13 +93,6 @@ public class TalkingIslandPast extends AbstractInstance
super.onEnter(player, instance, firstEnter); super.onEnter(player, instance, firstEnter);
} }
@Override
public String onSpawn(Npc npc)
{
npc.initSeenCreatures();
return super.onSpawn(npc);
}
@Override @Override
public String onExitZone(Creature creature, ZoneType zone) public String onExitZone(Creature creature, ZoneType zone)
{ {

View File

@@ -45,7 +45,7 @@ public class Wisp extends AbstractNpcAI
private Wisp() private Wisp()
{ {
addSpawnId(WISP, LARGE_WISP); addSpawnId(WISP);
setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP); setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP);
} }
@@ -76,10 +76,7 @@ public class Wisp extends AbstractNpcAI
addSpawn(LARGE_WISP, npc); addSpawn(LARGE_WISP, npc);
npc.deleteMe(); npc.deleteMe();
} }
else
{
npc.initSeenCreatures();
}
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -103,7 +103,6 @@ public class BalokWarzone extends AbstractInstance
addSkillSeeId(BALOK); addSkillSeeId(BALOK);
addKillId(BALOK, MINION); addKillId(BALOK, MINION);
addSpellFinishedId(BALOK); addSpellFinishedId(BALOK);
addSpawnId(INVISIBLE_NPC_1);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1); setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1);
} }
@@ -322,16 +321,6 @@ public class BalokWarzone extends AbstractInstance
return super.onSkillSee(npc, caster, skill, targets, isSummon); return super.onSkillSee(npc, caster, skill, targets, isSummon);
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
public static void main(String[] args) public static void main(String[] args)
{ {
new BalokWarzone(); new BalokWarzone();

View File

@@ -316,16 +316,6 @@ public class BaylorWarzone extends AbstractInstance
} }
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
/** /**
* Broadcasts SocialAction packet to self and known players. * Broadcasts SocialAction packet to self and known players.
* @param creature * @param creature

View File

@@ -75,7 +75,7 @@ public class KimerianCommon extends AbstractInstance
addStartNpc(NOETI_KASHERON); addStartNpc(NOETI_KASHERON);
addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE); addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE);
addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE); addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE);
addSpawnId(FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); addSpawnId(FAIRY_REBEL, NEOMI_KASHERON);
addAttackId(KIMERIAN); addAttackId(KIMERIAN);
addKillId(KIMERIAN_GHOST, KIMERIAN); addKillId(KIMERIAN_GHOST, KIMERIAN);
setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN);
@@ -301,16 +301,9 @@ public class KimerianCommon extends AbstractInstance
case FAIRY_REBEL: case FAIRY_REBEL:
case NEOMI_KASHERON: case NEOMI_KASHERON:
{ {
npc.initSeenCreatures();
npc.setRunning(); npc.setRunning();
break; break;
} }
case INVISIBLE_NPC:
case KIMERIAN:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -108,7 +108,6 @@ public class OctavisWarzone extends AbstractInstance
super(TEMPLATE_ID, EXTREME_TEMPLATE_ID); super(TEMPLATE_ID, EXTREME_TEMPLATE_ID);
addStartNpc(LYDIA); addStartNpc(LYDIA);
addTalkId(LYDIA); addTalkId(LYDIA);
addSpawnId(DOOR_MANAGER);
addSpawnId(GLADIATORS); addSpawnId(GLADIATORS);
addAttackId(OCTAVIS_STAGE_1); addAttackId(OCTAVIS_STAGE_1);
addAttackId(OCTAVIS_STAGE_2); addAttackId(OCTAVIS_STAGE_2);
@@ -539,7 +538,6 @@ public class OctavisWarzone extends AbstractInstance
world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true); world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true);
getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null); getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null);
} }
npc.initSeenCreatures();
} }
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -96,7 +96,7 @@ public class TeredorWarzone extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(FILAUR); addStartNpc(FILAUR);
addTalkId(FILAUR); addTalkId(FILAUR);
addSpawnId(BEETLE, POS_CHECKER, EGG_2, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON); addSpawnId(BEETLE, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON);
addSpellFinishedId(BEETLE); addSpellFinishedId(BEETLE);
addEventReceivedId(EGG_2); addEventReceivedId(EGG_2);
addAttackId(TEREDOR); addAttackId(TEREDOR);
@@ -112,7 +112,6 @@ public class TeredorWarzone extends AbstractInstance
{ {
final StatSet npcVars = npc.getVariables(); final StatSet npcVars = npc.getVariables();
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (event) switch (event)
{ {
case "EGG_SPAWN_TIMER": case "EGG_SPAWN_TIMER":
@@ -242,7 +241,6 @@ public class TeredorWarzone extends AbstractInstance
WalkingManager.getInstance().startMoving(npc, "trajan5"); WalkingManager.getInstance().startMoving(npc, "trajan5");
getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null); getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null);
((Attackable) npc).setCanReturnToSpawnPoint(false); ((Attackable) npc).setCanReturnToSpawnPoint(false);
npc.initSeenCreatures();
break; break;
} }
case BEETLE: case BEETLE:
@@ -251,14 +249,12 @@ public class TeredorWarzone extends AbstractInstance
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", ""));
} }
npc.initSeenCreatures();
break; break;
} }
case FAKE_TEREDOR: case FAKE_TEREDOR:
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", ""));
npc.setRHandId(FAKE_TEREDOR_WEAPON); npc.setRHandId(FAKE_TEREDOR_WEAPON);
npc.initSeenCreatures();
getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null); getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null);
break; break;
} }
@@ -271,11 +267,6 @@ public class TeredorWarzone extends AbstractInstance
getTimers().addTimer("DELETE_ME", 22000, npc, null); getTimers().addTimer("DELETE_ME", 22000, npc, null);
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -289,7 +280,6 @@ public class TeredorWarzone extends AbstractInstance
if (isInInstance(instance)) if (isInInstance(instance))
{ {
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (npc.getId()) switch (npc.getId())
{ {
case BEETLE: case BEETLE:

View File

@@ -373,7 +373,6 @@ public class CrystalCavernsEmeraldSquare extends AbstractInstance
{ {
getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null); getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null);
} }
npc.initSeenCreatures();
break; break;
} }
} }

View File

@@ -74,7 +74,7 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
addTalkId(CAVERNS_ENTRACE); addTalkId(CAVERNS_ENTRACE);
addAttackId(TRAP_1, TRAP_2); addAttackId(TRAP_1, TRAP_2);
addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED); addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED);
addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION, PLAYER_DETECTOR); addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION);
addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN); addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addInstanceEnterId(TEMPLATE_ID); addInstanceEnterId(TEMPLATE_ID);
@@ -208,11 +208,6 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
npc.disableCoreAI(true); npc.disableCoreAI(true);
break; break;
} }
case PLAYER_DETECTOR:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -373,25 +368,17 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
final Instance instance = npc.getInstanceWorld(); final Instance instance = npc.getInstanceWorld();
if (isInInstance(instance) && creature.isPlayer()) if (isInInstance(instance) && creature.isPlayer())
{ {
final StatSet npcParams = npc.getParameters(); if (npc.isScriptValue(0))
switch (npc.getId())
{ {
case PLAYER_DETECTOR: npc.setScriptValue(1);
final StatSet npcParams = npc.getParameters();
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{ {
if (npc.isScriptValue(0)) final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
{ trap.getVariables().set("TIMER_VAL", 4);
npc.setScriptValue(1);
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{
final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
trap.getVariables().set("TIMER_VAL", 4);
}
npc.deleteMe();
}
break;
} }
npc.deleteMe();
} }
} }
} }

View File

@@ -869,7 +869,6 @@ public class KartiasLabyrinth extends AbstractInstance
onTimerEvent("MOVE_TO_MIDDLE", null, monster, null); onTimerEvent("MOVE_TO_MIDDLE", null, monster, null);
} }
((Attackable) monster).setCanReturnToSpawnPoint(false); ((Attackable) monster).setCanReturnToSpawnPoint(false);
monster.initSeenCreatures();
} }
} }
} }

View File

@@ -197,7 +197,7 @@ public class MemoryOfDisaster extends AbstractInstance
{ {
super(TEMPLATE_ID); super(TEMPLATE_ID);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addSpawnId(INVISIBLE_NPC, TENTACLE, SOLDIER, SOLDIER2, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON, CONTROL_DARKELF_AWAKE); addSpawnId(INVISIBLE_NPC, SOLDIER, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA); addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA);
addMoveFinishedId(DWARVES); addMoveFinishedId(DWARVES);
addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON); addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
@@ -286,23 +286,11 @@ public class MemoryOfDisaster extends AbstractInstance
npc.setRunning(); npc.setRunning();
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
break; break;
} }
case TENTACLE:
case SOLDIER2:
{
npc.initSeenCreatures();
break;
}
case TEREDOR: case TEREDOR:
{ {
npc.initSeenCreatures();
if (npc.isScriptValue(2)) if (npc.isScriptValue(2))
{ {
addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId()); addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId());
@@ -312,7 +300,6 @@ public class MemoryOfDisaster extends AbstractInstance
} }
case SIEGE_GOLEM: case SIEGE_GOLEM:
{ {
npc.initSeenCreatures();
for (Location loc : TEREDOR_SPAWN_LOC) for (Location loc : TEREDOR_SPAWN_LOC)
{ {
final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId()); final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId());
@@ -351,11 +338,6 @@ public class MemoryOfDisaster extends AbstractInstance
npc.doCast(SWOOP_CANNON_SKILL.getSkill()); npc.doCast(SWOOP_CANNON_SKILL.getSkill());
break; break;
} }
case CONTROL_DARKELF_AWAKE:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -131,7 +131,7 @@ public class PailakaInjuredDragon extends AbstractInstance
addAttackId(WARRIORS); addAttackId(WARRIORS);
addAttackId(WIZARDS); addAttackId(WIZARDS);
addAttackId(LATANA); addAttackId(LATANA);
addSpawnId(TELEPORT_TRAP, LATANA, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2); addSpawnId(TELEPORT_TRAP, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2);
addSpawnId(WIZARDS); addSpawnId(WIZARDS);
setCreatureSeeId(this::onCreatureSee, WIZARDS); setCreatureSeeId(this::onCreatureSee, WIZARDS);
setCreatureSeeId(this::onCreatureSee, LATANA); setCreatureSeeId(this::onCreatureSee, LATANA);
@@ -469,7 +469,6 @@ public class PailakaInjuredDragon extends AbstractInstance
npc.setInvisible(true); npc.setInvisible(true);
getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null); getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null);
} }
npc.initSeenCreatures();
} }
} }
} }

View File

@@ -114,7 +114,7 @@ public class PrisonOfDarkness extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(SPEZION_HEADSTONE); addStartNpc(SPEZION_HEADSTONE);
addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA); addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA);
addSpawnId(WARP_POINT, EXIT_PORTAL, ESCORT_WARRIOR); addSpawnId(WARP_POINT, ESCORT_WARRIOR);
addSpellFinishedId(MONSTERS); addSpellFinishedId(MONSTERS);
setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL); setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL);
addKillId(SPEZIONS_PAWN); addKillId(SPEZIONS_PAWN);
@@ -333,11 +333,6 @@ public class PrisonOfDarkness extends AbstractInstance
getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null);
break; break;
} }
case EXIT_PORTAL:
{
npc.initSeenCreatures();
break;
}
case ESCORT_WARRIOR: case ESCORT_WARRIOR:
{ {
// TODO: attack logic // TODO: attack logic

View File

@@ -57,7 +57,6 @@ public class TalkingIslandPast extends AbstractInstance
addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addExitZoneId(TALKING_ISLAND_ZONE); addExitZoneId(TALKING_ISLAND_ZONE);
addSpawnId(INVISIBLE_TI_NPC);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC); setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC);
} }
@@ -94,13 +93,6 @@ public class TalkingIslandPast extends AbstractInstance
super.onEnter(player, instance, firstEnter); super.onEnter(player, instance, firstEnter);
} }
@Override
public String onSpawn(Npc npc)
{
npc.initSeenCreatures();
return super.onSpawn(npc);
}
@Override @Override
public String onExitZone(Creature creature, ZoneType zone) public String onExitZone(Creature creature, ZoneType zone)
{ {

View File

@@ -45,7 +45,7 @@ public class Wisp extends AbstractNpcAI
private Wisp() private Wisp()
{ {
addSpawnId(WISP, LARGE_WISP); addSpawnId(WISP);
setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP); setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP);
} }
@@ -76,10 +76,7 @@ public class Wisp extends AbstractNpcAI
addSpawn(LARGE_WISP, npc); addSpawn(LARGE_WISP, npc);
npc.deleteMe(); npc.deleteMe();
} }
else
{
npc.initSeenCreatures();
}
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -103,7 +103,6 @@ public class BalokWarzone extends AbstractInstance
addSkillSeeId(BALOK); addSkillSeeId(BALOK);
addKillId(BALOK, MINION); addKillId(BALOK, MINION);
addSpellFinishedId(BALOK); addSpellFinishedId(BALOK);
addSpawnId(INVISIBLE_NPC_1);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1); setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1);
} }
@@ -322,16 +321,6 @@ public class BalokWarzone extends AbstractInstance
return super.onSkillSee(npc, caster, skill, targets, isSummon); return super.onSkillSee(npc, caster, skill, targets, isSummon);
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
public static void main(String[] args) public static void main(String[] args)
{ {
new BalokWarzone(); new BalokWarzone();

View File

@@ -316,16 +316,6 @@ public class BaylorWarzone extends AbstractInstance
} }
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
/** /**
* Broadcasts SocialAction packet to self and known players. * Broadcasts SocialAction packet to self and known players.
* @param creature * @param creature

View File

@@ -75,7 +75,7 @@ public class KimerianCommon extends AbstractInstance
addStartNpc(NOETI_KASHERON); addStartNpc(NOETI_KASHERON);
addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE); addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE);
addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE); addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE);
addSpawnId(FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); addSpawnId(FAIRY_REBEL, NEOMI_KASHERON);
addAttackId(KIMERIAN); addAttackId(KIMERIAN);
addKillId(KIMERIAN_GHOST, KIMERIAN); addKillId(KIMERIAN_GHOST, KIMERIAN);
setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN);
@@ -301,16 +301,9 @@ public class KimerianCommon extends AbstractInstance
case FAIRY_REBEL: case FAIRY_REBEL:
case NEOMI_KASHERON: case NEOMI_KASHERON:
{ {
npc.initSeenCreatures();
npc.setRunning(); npc.setRunning();
break; break;
} }
case INVISIBLE_NPC:
case KIMERIAN:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -108,7 +108,6 @@ public class OctavisWarzone extends AbstractInstance
super(TEMPLATE_ID, EXTREME_TEMPLATE_ID); super(TEMPLATE_ID, EXTREME_TEMPLATE_ID);
addStartNpc(LYDIA); addStartNpc(LYDIA);
addTalkId(LYDIA); addTalkId(LYDIA);
addSpawnId(DOOR_MANAGER);
addSpawnId(GLADIATORS); addSpawnId(GLADIATORS);
addAttackId(OCTAVIS_STAGE_1); addAttackId(OCTAVIS_STAGE_1);
addAttackId(OCTAVIS_STAGE_2); addAttackId(OCTAVIS_STAGE_2);
@@ -539,7 +538,6 @@ public class OctavisWarzone extends AbstractInstance
world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true); world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true);
getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null); getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null);
} }
npc.initSeenCreatures();
} }
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -96,7 +96,7 @@ public class TeredorWarzone extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(FILAUR); addStartNpc(FILAUR);
addTalkId(FILAUR); addTalkId(FILAUR);
addSpawnId(BEETLE, POS_CHECKER, EGG_2, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON); addSpawnId(BEETLE, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON);
addSpellFinishedId(BEETLE); addSpellFinishedId(BEETLE);
addEventReceivedId(EGG_2); addEventReceivedId(EGG_2);
addAttackId(TEREDOR); addAttackId(TEREDOR);
@@ -112,7 +112,6 @@ public class TeredorWarzone extends AbstractInstance
{ {
final StatSet npcVars = npc.getVariables(); final StatSet npcVars = npc.getVariables();
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (event) switch (event)
{ {
case "EGG_SPAWN_TIMER": case "EGG_SPAWN_TIMER":
@@ -242,7 +241,6 @@ public class TeredorWarzone extends AbstractInstance
WalkingManager.getInstance().startMoving(npc, "trajan5"); WalkingManager.getInstance().startMoving(npc, "trajan5");
getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null); getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null);
((Attackable) npc).setCanReturnToSpawnPoint(false); ((Attackable) npc).setCanReturnToSpawnPoint(false);
npc.initSeenCreatures();
break; break;
} }
case BEETLE: case BEETLE:
@@ -251,14 +249,12 @@ public class TeredorWarzone extends AbstractInstance
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", ""));
} }
npc.initSeenCreatures();
break; break;
} }
case FAKE_TEREDOR: case FAKE_TEREDOR:
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", ""));
npc.setRHandId(FAKE_TEREDOR_WEAPON); npc.setRHandId(FAKE_TEREDOR_WEAPON);
npc.initSeenCreatures();
getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null); getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null);
break; break;
} }
@@ -271,11 +267,6 @@ public class TeredorWarzone extends AbstractInstance
getTimers().addTimer("DELETE_ME", 22000, npc, null); getTimers().addTimer("DELETE_ME", 22000, npc, null);
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -289,7 +280,6 @@ public class TeredorWarzone extends AbstractInstance
if (isInInstance(instance)) if (isInInstance(instance))
{ {
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (npc.getId()) switch (npc.getId())
{ {
case BEETLE: case BEETLE:

View File

@@ -373,7 +373,6 @@ public class CrystalCavernsEmeraldSquare extends AbstractInstance
{ {
getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null); getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null);
} }
npc.initSeenCreatures();
break; break;
} }
} }

View File

@@ -74,7 +74,7 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
addTalkId(CAVERNS_ENTRACE); addTalkId(CAVERNS_ENTRACE);
addAttackId(TRAP_1, TRAP_2); addAttackId(TRAP_1, TRAP_2);
addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED); addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED);
addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION, PLAYER_DETECTOR); addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION);
addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN); addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addInstanceEnterId(TEMPLATE_ID); addInstanceEnterId(TEMPLATE_ID);
@@ -208,11 +208,6 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
npc.disableCoreAI(true); npc.disableCoreAI(true);
break; break;
} }
case PLAYER_DETECTOR:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -373,25 +368,17 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
final Instance instance = npc.getInstanceWorld(); final Instance instance = npc.getInstanceWorld();
if (isInInstance(instance) && creature.isPlayer()) if (isInInstance(instance) && creature.isPlayer())
{ {
final StatSet npcParams = npc.getParameters(); if (npc.isScriptValue(0))
switch (npc.getId())
{ {
case PLAYER_DETECTOR: npc.setScriptValue(1);
final StatSet npcParams = npc.getParameters();
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{ {
if (npc.isScriptValue(0)) final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
{ trap.getVariables().set("TIMER_VAL", 4);
npc.setScriptValue(1);
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{
final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
trap.getVariables().set("TIMER_VAL", 4);
}
npc.deleteMe();
}
break;
} }
npc.deleteMe();
} }
} }
} }

View File

@@ -869,7 +869,6 @@ public class KartiasLabyrinth extends AbstractInstance
onTimerEvent("MOVE_TO_MIDDLE", null, monster, null); onTimerEvent("MOVE_TO_MIDDLE", null, monster, null);
} }
((Attackable) monster).setCanReturnToSpawnPoint(false); ((Attackable) monster).setCanReturnToSpawnPoint(false);
monster.initSeenCreatures();
} }
} }
} }

View File

@@ -197,7 +197,7 @@ public class MemoryOfDisaster extends AbstractInstance
{ {
super(TEMPLATE_ID); super(TEMPLATE_ID);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addSpawnId(INVISIBLE_NPC, TENTACLE, SOLDIER, SOLDIER2, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON, CONTROL_DARKELF_AWAKE); addSpawnId(INVISIBLE_NPC, SOLDIER, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA); addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA);
addMoveFinishedId(DWARVES); addMoveFinishedId(DWARVES);
addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON); addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
@@ -286,23 +286,11 @@ public class MemoryOfDisaster extends AbstractInstance
npc.setRunning(); npc.setRunning();
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
break; break;
} }
case TENTACLE:
case SOLDIER2:
{
npc.initSeenCreatures();
break;
}
case TEREDOR: case TEREDOR:
{ {
npc.initSeenCreatures();
if (npc.isScriptValue(2)) if (npc.isScriptValue(2))
{ {
addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId()); addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId());
@@ -312,7 +300,6 @@ public class MemoryOfDisaster extends AbstractInstance
} }
case SIEGE_GOLEM: case SIEGE_GOLEM:
{ {
npc.initSeenCreatures();
for (Location loc : TEREDOR_SPAWN_LOC) for (Location loc : TEREDOR_SPAWN_LOC)
{ {
final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId()); final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId());
@@ -351,11 +338,6 @@ public class MemoryOfDisaster extends AbstractInstance
npc.doCast(SWOOP_CANNON_SKILL.getSkill()); npc.doCast(SWOOP_CANNON_SKILL.getSkill());
break; break;
} }
case CONTROL_DARKELF_AWAKE:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -131,7 +131,7 @@ public class PailakaInjuredDragon extends AbstractInstance
addAttackId(WARRIORS); addAttackId(WARRIORS);
addAttackId(WIZARDS); addAttackId(WIZARDS);
addAttackId(LATANA); addAttackId(LATANA);
addSpawnId(TELEPORT_TRAP, LATANA, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2); addSpawnId(TELEPORT_TRAP, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2);
addSpawnId(WIZARDS); addSpawnId(WIZARDS);
setCreatureSeeId(this::onCreatureSee, WIZARDS); setCreatureSeeId(this::onCreatureSee, WIZARDS);
setCreatureSeeId(this::onCreatureSee, LATANA); setCreatureSeeId(this::onCreatureSee, LATANA);
@@ -469,7 +469,6 @@ public class PailakaInjuredDragon extends AbstractInstance
npc.setInvisible(true); npc.setInvisible(true);
getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null); getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null);
} }
npc.initSeenCreatures();
} }
} }
} }

View File

@@ -114,7 +114,7 @@ public class PrisonOfDarkness extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(SPEZION_HEADSTONE); addStartNpc(SPEZION_HEADSTONE);
addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA); addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA);
addSpawnId(WARP_POINT, EXIT_PORTAL, ESCORT_WARRIOR); addSpawnId(WARP_POINT, ESCORT_WARRIOR);
addSpellFinishedId(MONSTERS); addSpellFinishedId(MONSTERS);
setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL); setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL);
addKillId(SPEZIONS_PAWN); addKillId(SPEZIONS_PAWN);
@@ -333,11 +333,6 @@ public class PrisonOfDarkness extends AbstractInstance
getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null);
break; break;
} }
case EXIT_PORTAL:
{
npc.initSeenCreatures();
break;
}
case ESCORT_WARRIOR: case ESCORT_WARRIOR:
{ {
// TODO: attack logic // TODO: attack logic

View File

@@ -57,7 +57,6 @@ public class TalkingIslandPast extends AbstractInstance
addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addExitZoneId(TALKING_ISLAND_ZONE); addExitZoneId(TALKING_ISLAND_ZONE);
addSpawnId(INVISIBLE_TI_NPC);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC); setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC);
} }
@@ -94,13 +93,6 @@ public class TalkingIslandPast extends AbstractInstance
super.onEnter(player, instance, firstEnter); super.onEnter(player, instance, firstEnter);
} }
@Override
public String onSpawn(Npc npc)
{
npc.initSeenCreatures();
return super.onSpawn(npc);
}
@Override @Override
public String onExitZone(Creature creature, ZoneType zone) public String onExitZone(Creature creature, ZoneType zone)
{ {

View File

@@ -45,7 +45,7 @@ public class Wisp extends AbstractNpcAI
private Wisp() private Wisp()
{ {
addSpawnId(WISP, LARGE_WISP); addSpawnId(WISP);
setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP); setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP);
} }
@@ -76,10 +76,7 @@ public class Wisp extends AbstractNpcAI
addSpawn(LARGE_WISP, npc); addSpawn(LARGE_WISP, npc);
npc.deleteMe(); npc.deleteMe();
} }
else
{
npc.initSeenCreatures();
}
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -103,7 +103,6 @@ public class BalokWarzone extends AbstractInstance
addSkillSeeId(BALOK); addSkillSeeId(BALOK);
addKillId(BALOK, MINION); addKillId(BALOK, MINION);
addSpellFinishedId(BALOK); addSpellFinishedId(BALOK);
addSpawnId(INVISIBLE_NPC_1);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1); setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1);
} }
@@ -322,16 +321,6 @@ public class BalokWarzone extends AbstractInstance
return super.onSkillSee(npc, caster, skill, targets, isSummon); return super.onSkillSee(npc, caster, skill, targets, isSummon);
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
public static void main(String[] args) public static void main(String[] args)
{ {
new BalokWarzone(); new BalokWarzone();

View File

@@ -316,16 +316,6 @@ public class BaylorWarzone extends AbstractInstance
} }
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
/** /**
* Broadcasts SocialAction packet to self and known players. * Broadcasts SocialAction packet to self and known players.
* @param creature * @param creature

View File

@@ -75,7 +75,7 @@ public class KimerianCommon extends AbstractInstance
addStartNpc(NOETI_KASHERON); addStartNpc(NOETI_KASHERON);
addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE); addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE);
addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE); addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE);
addSpawnId(FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); addSpawnId(FAIRY_REBEL, NEOMI_KASHERON);
addAttackId(KIMERIAN); addAttackId(KIMERIAN);
addKillId(KIMERIAN_GHOST, KIMERIAN); addKillId(KIMERIAN_GHOST, KIMERIAN);
setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN);
@@ -301,16 +301,9 @@ public class KimerianCommon extends AbstractInstance
case FAIRY_REBEL: case FAIRY_REBEL:
case NEOMI_KASHERON: case NEOMI_KASHERON:
{ {
npc.initSeenCreatures();
npc.setRunning(); npc.setRunning();
break; break;
} }
case INVISIBLE_NPC:
case KIMERIAN:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -108,7 +108,6 @@ public class OctavisWarzone extends AbstractInstance
super(TEMPLATE_ID, EXTREME_TEMPLATE_ID); super(TEMPLATE_ID, EXTREME_TEMPLATE_ID);
addStartNpc(LYDIA); addStartNpc(LYDIA);
addTalkId(LYDIA); addTalkId(LYDIA);
addSpawnId(DOOR_MANAGER);
addSpawnId(GLADIATORS); addSpawnId(GLADIATORS);
addAttackId(OCTAVIS_STAGE_1); addAttackId(OCTAVIS_STAGE_1);
addAttackId(OCTAVIS_STAGE_2); addAttackId(OCTAVIS_STAGE_2);
@@ -539,7 +538,6 @@ public class OctavisWarzone extends AbstractInstance
world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true); world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true);
getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null); getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null);
} }
npc.initSeenCreatures();
} }
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -96,7 +96,7 @@ public class TeredorWarzone extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(FILAUR); addStartNpc(FILAUR);
addTalkId(FILAUR); addTalkId(FILAUR);
addSpawnId(BEETLE, POS_CHECKER, EGG_2, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON); addSpawnId(BEETLE, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON);
addSpellFinishedId(BEETLE); addSpellFinishedId(BEETLE);
addEventReceivedId(EGG_2); addEventReceivedId(EGG_2);
addAttackId(TEREDOR); addAttackId(TEREDOR);
@@ -112,7 +112,6 @@ public class TeredorWarzone extends AbstractInstance
{ {
final StatSet npcVars = npc.getVariables(); final StatSet npcVars = npc.getVariables();
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (event) switch (event)
{ {
case "EGG_SPAWN_TIMER": case "EGG_SPAWN_TIMER":
@@ -242,7 +241,6 @@ public class TeredorWarzone extends AbstractInstance
WalkingManager.getInstance().startMoving(npc, "trajan5"); WalkingManager.getInstance().startMoving(npc, "trajan5");
getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null); getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null);
((Attackable) npc).setCanReturnToSpawnPoint(false); ((Attackable) npc).setCanReturnToSpawnPoint(false);
npc.initSeenCreatures();
break; break;
} }
case BEETLE: case BEETLE:
@@ -251,14 +249,12 @@ public class TeredorWarzone extends AbstractInstance
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", ""));
} }
npc.initSeenCreatures();
break; break;
} }
case FAKE_TEREDOR: case FAKE_TEREDOR:
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", ""));
npc.setRHandId(FAKE_TEREDOR_WEAPON); npc.setRHandId(FAKE_TEREDOR_WEAPON);
npc.initSeenCreatures();
getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null); getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null);
break; break;
} }
@@ -271,11 +267,6 @@ public class TeredorWarzone extends AbstractInstance
getTimers().addTimer("DELETE_ME", 22000, npc, null); getTimers().addTimer("DELETE_ME", 22000, npc, null);
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -289,7 +280,6 @@ public class TeredorWarzone extends AbstractInstance
if (isInInstance(instance)) if (isInInstance(instance))
{ {
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (npc.getId()) switch (npc.getId())
{ {
case BEETLE: case BEETLE:

View File

@@ -373,7 +373,6 @@ public class CrystalCavernsEmeraldSquare extends AbstractInstance
{ {
getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null); getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null);
} }
npc.initSeenCreatures();
break; break;
} }
} }

View File

@@ -74,7 +74,7 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
addTalkId(CAVERNS_ENTRACE); addTalkId(CAVERNS_ENTRACE);
addAttackId(TRAP_1, TRAP_2); addAttackId(TRAP_1, TRAP_2);
addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED); addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED);
addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION, PLAYER_DETECTOR); addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION);
addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN); addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addInstanceEnterId(TEMPLATE_ID); addInstanceEnterId(TEMPLATE_ID);
@@ -208,11 +208,6 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
npc.disableCoreAI(true); npc.disableCoreAI(true);
break; break;
} }
case PLAYER_DETECTOR:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -373,25 +368,17 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
final Instance instance = npc.getInstanceWorld(); final Instance instance = npc.getInstanceWorld();
if (isInInstance(instance) && creature.isPlayer()) if (isInInstance(instance) && creature.isPlayer())
{ {
final StatSet npcParams = npc.getParameters(); if (npc.isScriptValue(0))
switch (npc.getId())
{ {
case PLAYER_DETECTOR: npc.setScriptValue(1);
final StatSet npcParams = npc.getParameters();
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{ {
if (npc.isScriptValue(0)) final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
{ trap.getVariables().set("TIMER_VAL", 4);
npc.setScriptValue(1);
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{
final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
trap.getVariables().set("TIMER_VAL", 4);
}
npc.deleteMe();
}
break;
} }
npc.deleteMe();
} }
} }
} }

View File

@@ -869,7 +869,6 @@ public class KartiasLabyrinth extends AbstractInstance
onTimerEvent("MOVE_TO_MIDDLE", null, monster, null); onTimerEvent("MOVE_TO_MIDDLE", null, monster, null);
} }
((Attackable) monster).setCanReturnToSpawnPoint(false); ((Attackable) monster).setCanReturnToSpawnPoint(false);
monster.initSeenCreatures();
} }
} }
} }

View File

@@ -197,7 +197,7 @@ public class MemoryOfDisaster extends AbstractInstance
{ {
super(TEMPLATE_ID); super(TEMPLATE_ID);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addSpawnId(INVISIBLE_NPC, TENTACLE, SOLDIER, SOLDIER2, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON, CONTROL_DARKELF_AWAKE); addSpawnId(INVISIBLE_NPC, SOLDIER, TEREDOR, SIEGE_GOLEM, WIRPHY, SILVERA, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA); addMoveFinishedId(ROGIN, SOLDIER, WIRPHY, SILVERA);
addMoveFinishedId(DWARVES); addMoveFinishedId(DWARVES);
addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON); addSpellFinishedId(SIEGE_GOLEM, INVISIBLE_NPC, TEREDOR_TRANSPARENT, EARTH_WYRM_TRASKEN, SWOOP_CANNON);
@@ -286,23 +286,11 @@ public class MemoryOfDisaster extends AbstractInstance
npc.setRunning(); npc.setRunning();
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
break; break;
} }
case TENTACLE:
case SOLDIER2:
{
npc.initSeenCreatures();
break;
}
case TEREDOR: case TEREDOR:
{ {
npc.initSeenCreatures();
if (npc.isScriptValue(2)) if (npc.isScriptValue(2))
{ {
addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId()); addSpawn(WIRPHY, 116361, -179760, -1128, 57533, false, 0, false, instance.getId());
@@ -312,7 +300,6 @@ public class MemoryOfDisaster extends AbstractInstance
} }
case SIEGE_GOLEM: case SIEGE_GOLEM:
{ {
npc.initSeenCreatures();
for (Location loc : TEREDOR_SPAWN_LOC) for (Location loc : TEREDOR_SPAWN_LOC)
{ {
final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId()); final Npc teredor = addSpawn(TEREDOR, loc, false, 0, false, instance.getId());
@@ -351,11 +338,6 @@ public class MemoryOfDisaster extends AbstractInstance
npc.doCast(SWOOP_CANNON_SKILL.getSkill()); npc.doCast(SWOOP_CANNON_SKILL.getSkill());
break; break;
} }
case CONTROL_DARKELF_AWAKE:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -131,7 +131,7 @@ public class PailakaInjuredDragon extends AbstractInstance
addAttackId(WARRIORS); addAttackId(WARRIORS);
addAttackId(WIZARDS); addAttackId(WIZARDS);
addAttackId(LATANA); addAttackId(LATANA);
addSpawnId(TELEPORT_TRAP, LATANA, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2); addSpawnId(TELEPORT_TRAP, DRAGON_TARGET, LATANA_SKILL_USE, DRAGON_CAMERA_2);
addSpawnId(WIZARDS); addSpawnId(WIZARDS);
setCreatureSeeId(this::onCreatureSee, WIZARDS); setCreatureSeeId(this::onCreatureSee, WIZARDS);
setCreatureSeeId(this::onCreatureSee, LATANA); setCreatureSeeId(this::onCreatureSee, LATANA);
@@ -469,7 +469,6 @@ public class PailakaInjuredDragon extends AbstractInstance
npc.setInvisible(true); npc.setInvisible(true);
getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null); getTimers().addTimer("LOOK_NEIGHBOR", 1000, npc, null);
} }
npc.initSeenCreatures();
} }
} }
} }

View File

@@ -114,7 +114,7 @@ public class PrisonOfDarkness extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(SPEZION_HEADSTONE); addStartNpc(SPEZION_HEADSTONE);
addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA); addTalkId(SPEZION_HEADSTONE, WARP_POINT, TIME_BOMB_1, STARLIGHT_LATTICE, JOSEPHINA);
addSpawnId(WARP_POINT, EXIT_PORTAL, ESCORT_WARRIOR); addSpawnId(WARP_POINT, ESCORT_WARRIOR);
addSpellFinishedId(MONSTERS); addSpellFinishedId(MONSTERS);
setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL); setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL);
addKillId(SPEZIONS_PAWN); addKillId(SPEZIONS_PAWN);
@@ -333,11 +333,6 @@ public class PrisonOfDarkness extends AbstractInstance
getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null); getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null);
break; break;
} }
case EXIT_PORTAL:
{
npc.initSeenCreatures();
break;
}
case ESCORT_WARRIOR: case ESCORT_WARRIOR:
{ {
// TODO: attack logic // TODO: attack logic

View File

@@ -57,7 +57,6 @@ public class TalkingIslandPast extends AbstractInstance
addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT); addFirstTalkId(DARIN, ROXXY, MYSTERIOUS_DARK_KNIGHT);
addExitZoneId(TALKING_ISLAND_ZONE); addExitZoneId(TALKING_ISLAND_ZONE);
addSpawnId(INVISIBLE_TI_NPC);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC); setCreatureSeeId(this::onCreatureSee, INVISIBLE_TI_NPC);
} }
@@ -94,13 +93,6 @@ public class TalkingIslandPast extends AbstractInstance
super.onEnter(player, instance, firstEnter); super.onEnter(player, instance, firstEnter);
} }
@Override
public String onSpawn(Npc npc)
{
npc.initSeenCreatures();
return super.onSpawn(npc);
}
@Override @Override
public String onExitZone(Creature creature, ZoneType zone) public String onExitZone(Creature creature, ZoneType zone)
{ {

View File

@@ -45,7 +45,7 @@ public class Wisp extends AbstractNpcAI
private Wisp() private Wisp()
{ {
addSpawnId(WISP, LARGE_WISP); addSpawnId(WISP);
setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP); setCreatureSeeId(this::onCreatureSee, WISP, LARGE_WISP);
} }
@@ -76,10 +76,7 @@ public class Wisp extends AbstractNpcAI
addSpawn(LARGE_WISP, npc); addSpawn(LARGE_WISP, npc);
npc.deleteMe(); npc.deleteMe();
} }
else
{
npc.initSeenCreatures();
}
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -103,7 +103,6 @@ public class BalokWarzone extends AbstractInstance
addSkillSeeId(BALOK); addSkillSeeId(BALOK);
addKillId(BALOK, MINION); addKillId(BALOK, MINION);
addSpellFinishedId(BALOK); addSpellFinishedId(BALOK);
addSpawnId(INVISIBLE_NPC_1);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1); setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1);
} }
@@ -322,16 +321,6 @@ public class BalokWarzone extends AbstractInstance
return super.onSkillSee(npc, caster, skill, targets, isSummon); return super.onSkillSee(npc, caster, skill, targets, isSummon);
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
public static void main(String[] args) public static void main(String[] args)
{ {
new BalokWarzone(); new BalokWarzone();

View File

@@ -316,16 +316,6 @@ public class BaylorWarzone extends AbstractInstance
} }
} }
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
/** /**
* Broadcasts SocialAction packet to self and known players. * Broadcasts SocialAction packet to self and known players.
* @param creature * @param creature

View File

@@ -75,7 +75,7 @@ public class KimerianCommon extends AbstractInstance
addStartNpc(NOETI_KASHERON); addStartNpc(NOETI_KASHERON);
addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE); addTalkId(NOETI_KASHERON, NOETI_KASHERON_ENTRANCE);
addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE); addFirstTalkId(NOETI_KASHERON_ENTRANCE, NOETI_KASHERON_LEAVE);
addSpawnId(FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); addSpawnId(FAIRY_REBEL, NEOMI_KASHERON);
addAttackId(KIMERIAN); addAttackId(KIMERIAN);
addKillId(KIMERIAN_GHOST, KIMERIAN); addKillId(KIMERIAN_GHOST, KIMERIAN);
setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN); setCreatureSeeId(this::onCreatureSee, FAIRY_REBEL, NEOMI_KASHERON, INVISIBLE_NPC, KIMERIAN);
@@ -301,16 +301,9 @@ public class KimerianCommon extends AbstractInstance
case FAIRY_REBEL: case FAIRY_REBEL:
case NEOMI_KASHERON: case NEOMI_KASHERON:
{ {
npc.initSeenCreatures();
npc.setRunning(); npc.setRunning();
break; break;
} }
case INVISIBLE_NPC:
case KIMERIAN:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);

View File

@@ -108,7 +108,6 @@ public class OctavisWarzone extends AbstractInstance
super(TEMPLATE_ID, EXTREME_TEMPLATE_ID); super(TEMPLATE_ID, EXTREME_TEMPLATE_ID);
addStartNpc(LYDIA); addStartNpc(LYDIA);
addTalkId(LYDIA); addTalkId(LYDIA);
addSpawnId(DOOR_MANAGER);
addSpawnId(GLADIATORS); addSpawnId(GLADIATORS);
addAttackId(OCTAVIS_STAGE_1); addAttackId(OCTAVIS_STAGE_1);
addAttackId(OCTAVIS_STAGE_2); addAttackId(OCTAVIS_STAGE_2);
@@ -539,7 +538,6 @@ public class OctavisWarzone extends AbstractInstance
world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true); world.openCloseDoor(npc.getParameters().getInt("My_DoorName", -1), true);
getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null); getTimers().addTimer("GLADIATOR_MOVING", 3000, npc, null);
} }
npc.initSeenCreatures();
} }
return super.onSpawn(npc); return super.onSpawn(npc);
} }

View File

@@ -96,7 +96,7 @@ public class TeredorWarzone extends AbstractInstance
super(TEMPLATE_ID); super(TEMPLATE_ID);
addStartNpc(FILAUR); addStartNpc(FILAUR);
addTalkId(FILAUR); addTalkId(FILAUR);
addSpawnId(BEETLE, POS_CHECKER, EGG_2, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON); addSpawnId(BEETLE, FAKE_TEREDOR, TEREDOR, TEREDOR_POISON);
addSpellFinishedId(BEETLE); addSpellFinishedId(BEETLE);
addEventReceivedId(EGG_2); addEventReceivedId(EGG_2);
addAttackId(TEREDOR); addAttackId(TEREDOR);
@@ -112,7 +112,6 @@ public class TeredorWarzone extends AbstractInstance
{ {
final StatSet npcVars = npc.getVariables(); final StatSet npcVars = npc.getVariables();
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (event) switch (event)
{ {
case "EGG_SPAWN_TIMER": case "EGG_SPAWN_TIMER":
@@ -242,7 +241,6 @@ public class TeredorWarzone extends AbstractInstance
WalkingManager.getInstance().startMoving(npc, "trajan5"); WalkingManager.getInstance().startMoving(npc, "trajan5");
getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null); getTimers().addRepeatingTimer("TEREDOR_LAIR_CHECK", 5000, npc, null);
((Attackable) npc).setCanReturnToSpawnPoint(false); ((Attackable) npc).setCanReturnToSpawnPoint(false);
npc.initSeenCreatures();
break; break;
} }
case BEETLE: case BEETLE:
@@ -251,14 +249,12 @@ public class TeredorWarzone extends AbstractInstance
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName1", ""));
} }
npc.initSeenCreatures();
break; break;
} }
case FAKE_TEREDOR: case FAKE_TEREDOR:
{ {
WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", "")); WalkingManager.getInstance().startMoving(npc, npcParams.getString("SuperPointName", ""));
npc.setRHandId(FAKE_TEREDOR_WEAPON); npc.setRHandId(FAKE_TEREDOR_WEAPON);
npc.initSeenCreatures();
getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null); getTimers().addTimer("FAKE_TEREDOR_POISON_TIMER", 3000, npc, null);
break; break;
} }
@@ -271,11 +267,6 @@ public class TeredorWarzone extends AbstractInstance
getTimers().addTimer("DELETE_ME", 22000, npc, null); getTimers().addTimer("DELETE_ME", 22000, npc, null);
break; break;
} }
default:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -289,7 +280,6 @@ public class TeredorWarzone extends AbstractInstance
if (isInInstance(instance)) if (isInInstance(instance))
{ {
final StatSet npcParams = npc.getParameters(); final StatSet npcParams = npc.getParameters();
switch (npc.getId()) switch (npc.getId())
{ {
case BEETLE: case BEETLE:

View File

@@ -373,7 +373,6 @@ public class CrystalCavernsEmeraldSquare extends AbstractInstance
{ {
getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null); getTimers().addTimer("SUPPORT_SPAWN_TIMER", (baseId * 60) * 1000, npc, null);
} }
npc.initSeenCreatures();
break; break;
} }
} }

View File

@@ -74,7 +74,7 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
addTalkId(CAVERNS_ENTRACE); addTalkId(CAVERNS_ENTRACE);
addAttackId(TRAP_1, TRAP_2); addAttackId(TRAP_1, TRAP_2);
addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED); addKillId(VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, KECHI_NORMAL, KECHI_WISE, KECHI_WEALTHY, KECHI_ARMED);
addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION, PLAYER_DETECTOR); addSpawnId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN, FIRE_REGION);
addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN); addEventReceivedId(SPIRIT_PROTECTOR, VICIOUS_DUELER, VICIOUS_WARRIOR, VICIOUS_SWORDSMAN);
addInstanceCreatedId(TEMPLATE_ID); addInstanceCreatedId(TEMPLATE_ID);
addInstanceEnterId(TEMPLATE_ID); addInstanceEnterId(TEMPLATE_ID);
@@ -208,11 +208,6 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
npc.disableCoreAI(true); npc.disableCoreAI(true);
break; break;
} }
case PLAYER_DETECTOR:
{
npc.initSeenCreatures();
break;
}
} }
} }
return super.onSpawn(npc); return super.onSpawn(npc);
@@ -373,25 +368,17 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
final Instance instance = npc.getInstanceWorld(); final Instance instance = npc.getInstanceWorld();
if (isInInstance(instance) && creature.isPlayer()) if (isInInstance(instance) && creature.isPlayer())
{ {
final StatSet npcParams = npc.getParameters(); if (npc.isScriptValue(0))
switch (npc.getId())
{ {
case PLAYER_DETECTOR: npc.setScriptValue(1);
final StatSet npcParams = npc.getParameters();
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{ {
if (npc.isScriptValue(0)) final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
{ trap.getVariables().set("TIMER_VAL", 4);
npc.setScriptValue(1);
npc.broadcastEvent(String.valueOf(24220005 + npcParams.getInt("Terri_ID", 0)), 2000, null);
for (int i = 0; i < getRandom(5); i++)
{
final Npc trap = addSpawn(((npcParams.getInt("MobType", 0) == 0) ? TRAP_1 : TRAP_2), npc, true, 0, false, instance.getId());
trap.getVariables().set("TIMER_VAL", 4);
}
npc.deleteMe();
}
break;
} }
npc.deleteMe();
} }
} }
} }

View File

@@ -869,7 +869,6 @@ public class KartiasLabyrinth extends AbstractInstance
onTimerEvent("MOVE_TO_MIDDLE", null, monster, null); onTimerEvent("MOVE_TO_MIDDLE", null, monster, null);
} }
((Attackable) monster).setCanReturnToSpawnPoint(false); ((Attackable) monster).setCanReturnToSpawnPoint(false);
monster.initSeenCreatures();
} }
} }
} }

Some files were not shown because too many files have changed in this diff Show More