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

View File

@@ -103,7 +103,6 @@ public class BalokWarzone extends AbstractInstance
addSkillSeeId(BALOK);
addKillId(BALOK, MINION);
addSpellFinishedId(BALOK);
addSpawnId(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);
}
@Override
public String onSpawn(Npc npc)
{
if (npc.getId() == INVISIBLE_NPC_1)
{
npc.initSeenCreatures();
}
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new BalokWarzone();

View File

@@ -63,7 +63,6 @@ public class BaylorWarzone extends AbstractInstance
addStartNpc(BENUSTA);
addTalkId(BENUSTA);
addInstanceCreatedId(TEMPLATE_ID);
addSpawnId(INVISIBLE_NPC_1);
addSpellFinishedId(INVISIBLE_NPC_1);
setCreatureSeeId(this::onCreatureSee, INVISIBLE_NPC_1);
setCreatureKillId(this::onBossKill, BAYLOR);
@@ -323,16 +322,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.
* @param creature

View File

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

View File

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

View File

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

View File

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

View File

@@ -74,7 +74,7 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
addTalkId(CAVERNS_ENTRACE);
addAttackId(TRAP_1, TRAP_2);
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);
addInstanceCreatedId(TEMPLATE_ID);
addInstanceEnterId(TEMPLATE_ID);
@@ -208,11 +208,6 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
npc.disableCoreAI(true);
break;
}
case PLAYER_DETECTOR:
{
npc.initSeenCreatures();
break;
}
}
}
return super.onSpawn(npc);
@@ -373,25 +368,17 @@ public class CrystalCavernsSteamCorridor extends AbstractInstance
final Instance instance = npc.getInstanceWorld();
if (isInInstance(instance) && creature.isPlayer())
{
final StatSet npcParams = npc.getParameters();
switch (npc.getId())
if (npc.isScriptValue(0))
{
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))
{
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;
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();
}
}
}

View File

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

View File

@@ -114,7 +114,7 @@ public class PrisonOfDarkness extends AbstractInstance
super(TEMPLATE_ID);
addStartNpc(SPEZION_HEADSTONE);
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);
setCreatureSeeId(this::onCreatureSee, EXIT_PORTAL);
addKillId(SPEZIONS_PAWN);
@@ -333,11 +333,6 @@ public class PrisonOfDarkness extends AbstractInstance
getTimers().addTimer("CHANGE_POSITION", (60000 * npcVars.getInt("TIME_MULTIPLER", 5)), npc, null);
break;
}
case EXIT_PORTAL:
{
npc.initSeenCreatures();
break;
}
case ESCORT_WARRIOR:
{
// TODO: attack logic
@@ -353,24 +348,29 @@ public class PrisonOfDarkness extends AbstractInstance
final Creature creature = event.getSeen();
final Npc npc = (Npc) event.getSeer();
final Instance instance = npc.getInstanceWorld();
if (isInInstance(instance) && (npc.getId() == EXIT_PORTAL))
if (isInInstance(instance))
{
final StatSet npcVars = npc.getVariables();
switch (npcVars.getInt("PORTAL_STATE", 0))
{
case 0:
{
takeItems(creature.getActingPlayer(), GIANT_CANNONBALL, -1);
creature.teleToLocation(PLAYERS_RANDOM_LOCS[getRandom(PLAYERS_RANDOM_LOCS.length)]);
showOnScreenMsg(creature.getActingPlayer(), NpcStringId.YOU_NEED_TO_FIND_ESCAPE_DEVICE_RE_ENTRY_IS_NOT_ALLOWED_ONCE_YOU_VE_LEFT_THE_INSTANCE_ZONE, ExShowScreenMessage.TOP_CENTER, 4000);
instance.getParameters().increaseInt("PLAYERS_COUNT", 0, 1);
break;
}
case 1:
{
creature.teleToLocation(ORBIS_LOCATION);
break;
}
case 2:
{
creature.teleToLocation(SPEZION_LAIR);
break;
}
}
}
}