Addition of simplified quest onCreatureSee NPC id registration and method override.
This commit is contained in:
@@ -21,7 +21,6 @@ import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
@@ -80,7 +79,7 @@ public class Rooney extends AbstractNpcAI
|
||||
|
||||
private Rooney()
|
||||
{
|
||||
setCreatureSeeId(this::onCreatureSee, ROONEY);
|
||||
addCreatureSeeId(ROONEY);
|
||||
addSpawn(ROONEY, getRandomEntry(LOCATIONS), false, 0);
|
||||
}
|
||||
|
||||
@@ -125,19 +124,16 @@ public class Rooney extends AbstractNpcAI
|
||||
return null;
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Creature creature = event.getSeen();
|
||||
if (creature.isPlayer())
|
||||
if (creature.isPlayer() && npc.isScriptValue(0))
|
||||
{
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WELCOME);
|
||||
startQuestTimer("teleport", 60000, npc, null);
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WELCOME);
|
||||
startQuestTimer("teleport", 60000, npc, null);
|
||||
npc.setScriptValue(1);
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
|
@@ -29,7 +29,6 @@ import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Playable;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
@@ -116,8 +115,8 @@ public class PrimevalIsle extends AbstractNpcAI
|
||||
addAttackId(TREX);
|
||||
addAttackId(MONSTERS);
|
||||
addKillId(EGG, SAILREN, DEINO, ORNIT);
|
||||
setCreatureSeeId(this::onCreatureSee, TREX);
|
||||
setCreatureSeeId(this::onCreatureSee, MONSTERS);
|
||||
addCreatureSeeId(TREX);
|
||||
addCreatureSeeId(MONSTERS);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -243,10 +242,9 @@ public class PrimevalIsle extends AbstractNpcAI
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
final Creature creature = event.getSeen();
|
||||
if (CommonUtil.contains(MONSTERS, npc.getId()))
|
||||
{
|
||||
if (creature.isPlayer())
|
||||
@@ -300,6 +298,7 @@ public class PrimevalIsle extends AbstractNpcAI
|
||||
npc.setRunning();
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, creature);
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -22,7 +22,6 @@ import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Summon;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
|
||||
@@ -66,8 +65,8 @@ public class SilentValley extends AbstractNpcAI
|
||||
addEventReceivedId(GUARD1, GUARD2);
|
||||
addKillId(MOBS);
|
||||
addSpawnId(CHEST, GUARD2);
|
||||
setCreatureSeeId(this::onCreatureSee, GUARD1, GUARD2);
|
||||
setCreatureSeeId(this::onCreatureSee, MOBS);
|
||||
addCreatureSeeId(GUARD1, GUARD2);
|
||||
addCreatureSeeId(MOBS);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -154,12 +153,11 @@ public class SilentValley extends AbstractNpcAI
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Creature creature = event.getSeen();
|
||||
if (creature.isPlayable())
|
||||
{
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
final PlayerInstance player = (creature.isSummon()) ? ((Summon) creature).getOwner() : creature.getActingPlayer();
|
||||
if ((npc.getId() == GUARD1) || (npc.getId() == GUARD2))
|
||||
{
|
||||
@@ -172,6 +170,7 @@ public class SilentValley extends AbstractNpcAI
|
||||
addAttackDesire(npc, player);
|
||||
}
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -33,7 +33,6 @@ import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Playable;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.model.variables.NpcVariables;
|
||||
@@ -110,7 +109,7 @@ public class Baium extends AbstractNpcAI
|
||||
addAttackId(BAIUM, ARCHANGEL);
|
||||
addKillId(BAIUM);
|
||||
addSpellFinishedId(BAIUM);
|
||||
setCreatureSeeId(this::onCreatureSee, BAIUM);
|
||||
addCreatureSeeId(BAIUM);
|
||||
|
||||
final StatSet info = GrandBossManager.getInstance().getStatSet(BAIUM);
|
||||
final double curr_hp = info.getDouble("currentHP");
|
||||
@@ -560,13 +559,12 @@ public class Baium extends AbstractNpcAI
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
final Creature creature = event.getSeen();
|
||||
if (!zone.isInsideZone(creature) || (creature.isNpc() && (creature.getId() == BAIUM_STONE)))
|
||||
{
|
||||
return;
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
if (creature.isInCategory(CategoryType.CLERIC_GROUP))
|
||||
@@ -593,6 +591,8 @@ public class Baium extends AbstractNpcAI
|
||||
refreshAiParams(creature, npc, 10000, 1000);
|
||||
}
|
||||
manageSkills(npc);
|
||||
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -21,7 +21,6 @@ import org.l2jmobius.gameserver.model.actor.Attackable;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
@@ -53,7 +52,7 @@ public class BlackdaggerWing extends AbstractNpcAI
|
||||
{
|
||||
addAttackId(BLACKDAGGER_WING);
|
||||
addSpellFinishedId(BLACKDAGGER_WING);
|
||||
setCreatureSeeId(this::onCreatureSee, BLACKDAGGER_WING);
|
||||
addCreatureSeeId(BLACKDAGGER_WING);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -72,18 +71,18 @@ public class BlackdaggerWing extends AbstractNpcAI
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
if (npc.getVariables().getBoolean(MID_HP_FLAG, false))
|
||||
{
|
||||
final Creature creature = event.getSeen();
|
||||
final Creature mostHated = ((Attackable) npc).getMostHated();
|
||||
if ((mostHated != null) && mostHated.isPlayer() && (mostHated != creature) && (getRandom(5) < 1))
|
||||
{
|
||||
addSkillCastDesire(npc, creature, RANGE_MAGIC_ATTACK, 99999);
|
||||
}
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -20,7 +20,6 @@ import org.l2jmobius.gameserver.enums.ChatType;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
|
||||
@@ -41,12 +40,12 @@ public class Dorian extends AbstractNpcAI
|
||||
|
||||
private Dorian()
|
||||
{
|
||||
setCreatureSeeId(this::onCreatureSee, DORIAN);
|
||||
addCreatureSeeId(DORIAN);
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Creature creature = event.getSeen();
|
||||
if (creature.isPlayer())
|
||||
{
|
||||
final PlayerInstance pl = creature.getActingPlayer();
|
||||
@@ -56,10 +55,10 @@ public class Dorian extends AbstractNpcAI
|
||||
takeItems(pl, SILVER_CROSS, -1);
|
||||
giveItems(pl, BROKEN_SILVER_CROSS, 1);
|
||||
qs.setCond(4, true);
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THAT_SIGN);
|
||||
}
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
|
@@ -20,7 +20,6 @@ import org.l2jmobius.gameserver.model.actor.Attackable;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
@@ -35,17 +34,17 @@ public class Gordon extends AbstractNpcAI
|
||||
private Gordon()
|
||||
{
|
||||
addSpawnId(GORDON);
|
||||
setCreatureSeeId(this::onCreatureSee, GORDON);
|
||||
addCreatureSeeId(GORDON);
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Creature creature = event.getSeen();
|
||||
if (creature.isPlayer() && ((PlayerInstance) creature).isCursedWeaponEquipped())
|
||||
{
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
addAttackDesire(npc, creature);
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -21,7 +21,6 @@ import org.l2jmobius.gameserver.model.actor.Attackable;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
@@ -55,7 +54,7 @@ public class ShadowSummoner extends AbstractNpcAI
|
||||
public ShadowSummoner()
|
||||
{
|
||||
addAttackId(SHADOW_SUMMONER);
|
||||
setCreatureSeeId(this::onCreatureSee, SHADOW_SUMMONER);
|
||||
addCreatureSeeId(SHADOW_SUMMONER);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -76,15 +75,15 @@ public class ShadowSummoner extends AbstractNpcAI
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Creature creature = event.getSeen();
|
||||
if (!creature.isPlayer() && (creature.getId() == DEMONS_BANQUET_2))
|
||||
{
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
((Attackable) npc).clearAggroList();
|
||||
addAttackDesire(npc, creature, 99999);
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.actor.Attackable;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
import org.l2jmobius.gameserver.model.instancezone.InstanceWorld;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
@@ -67,7 +66,7 @@ public class IceQueensCastle extends AbstractInstance
|
||||
addTalkId(JINIA);
|
||||
addSpawnId(FREYA);
|
||||
addSpellFinishedId(FREYA);
|
||||
setCreatureSeeId(this::onCreatureSee, BATTALION_LEADER, LEGIONNAIRE, MERCENARY_ARCHER);
|
||||
addCreatureSeeId(BATTALION_LEADER, LEGIONNAIRE, MERCENARY_ARCHER);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -133,10 +132,9 @@ public class IceQueensCastle extends AbstractInstance
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
final Creature creature = event.getSeen();
|
||||
if (creature.isPlayer() && npc.isScriptValue(0))
|
||||
{
|
||||
World.getInstance().forEachVisibleObject(npc, Creature.class, character ->
|
||||
@@ -152,6 +150,7 @@ public class IceQueensCastle extends AbstractInstance
|
||||
});
|
||||
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_MAY_THE_PROTECTION_OF_THE_GODS_BE_UPON_YOU, creature.getName());
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -22,7 +22,6 @@ import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.instancezone.InstanceWorld;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneType;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
@@ -60,7 +59,7 @@ public class PailakaSongOfIceAndFire extends AbstractInstance
|
||||
addExitZoneId(ZONE);
|
||||
addSpawnId(BLOOM);
|
||||
addKillId(BLOOM);
|
||||
setCreatureSeeId(this::onCreatureSee, GARGOS);
|
||||
addCreatureSeeId(GARGOS);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -179,18 +178,15 @@ public class PailakaSongOfIceAndFire extends AbstractInstance
|
||||
return super.onExitZone(creature, zone);
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Creature creature = event.getSeen();
|
||||
if (creature.isPlayer())
|
||||
if (creature.isPlayer() && npc.isScriptValue(0))
|
||||
{
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
npc.setScriptValue(1);
|
||||
startQuestTimer("GARGOS_LAUGH", 1000, npc, creature.getActingPlayer());
|
||||
}
|
||||
npc.setScriptValue(1);
|
||||
startQuestTimer("GARGOS_LAUGH", 1000, npc, creature.getActingPlayer());
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -24,7 +24,6 @@ import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import org.l2jmobius.gameserver.model.quest.State;
|
||||
@@ -69,7 +68,7 @@ public class Q00021_HiddenTruth extends Quest
|
||||
addStartNpc(MYSTERIOUS_WIZARD);
|
||||
addTalkId(MYSTERIOUS_WIZARD, TOMBSTONE, GHOST_OF_VON_HELLMAN, GHOST_OF_VON_HELLMANS_PAGE, BROKEN_BOOKSHELF, AGRIPEL, BENEDICT, DOMINIC, INNOCENTIN);
|
||||
addRouteFinishedId(GHOST_OF_VON_HELLMANS_PAGE);
|
||||
setCreatureSeeId(this::onCreatureSee, GHOST_OF_VON_HELLMANS_PAGE);
|
||||
addCreatureSeeId(GHOST_OF_VON_HELLMANS_PAGE);
|
||||
registerQuestItems(CROSS_OF_EINHASAD);
|
||||
}
|
||||
|
||||
@@ -430,13 +429,14 @@ public class Q00021_HiddenTruth extends Quest
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Creature creature = event.getSeen();
|
||||
if (creature.isPlayer())
|
||||
{
|
||||
playSound((PlayerInstance) creature, QuestSound.HORROR_01);
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -22,7 +22,6 @@ import org.l2jmobius.gameserver.model.actor.Attackable;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
@@ -62,7 +61,7 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
|
||||
addStartNpc(YUMI);
|
||||
addTalkId(YUMI, WENDY, BOX, STONES, NEWYEAR);
|
||||
addKillId(GUARDIAN);
|
||||
setCreatureSeeId(this::onCreatureSee, STONES);
|
||||
addCreatureSeeId(STONES);
|
||||
registerQuestItems(STARSTONE, STARSTONE2, DETCTOR, DETCTOR2, LETTER);
|
||||
}
|
||||
|
||||
@@ -409,9 +408,9 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
|
||||
return super.onKill(npc, player, isSummon);
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Creature creature = event.getSeen();
|
||||
if (creature.isPlayer())
|
||||
{
|
||||
final QuestState qs = getQuestState(creature.getActingPlayer(), false);
|
||||
@@ -423,6 +422,7 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
|
||||
showOnScreenMsg(creature.getActingPlayer(), NpcStringId.THE_RADIO_SIGNAL_DETECTOR_IS_RESPONDING_A_SUSPICIOUS_PILE_OF_STONES_CATCHES_YOUR_EYE, 2, 4500);
|
||||
}
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -36,7 +36,6 @@ import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.Summon;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemChanceHolder;
|
||||
import org.l2jmobius.gameserver.model.instancezone.Instance;
|
||||
import org.l2jmobius.gameserver.model.instancezone.InstanceWorld;
|
||||
@@ -208,7 +207,7 @@ public class Q00144_PailakaInjuredDragon extends Quest
|
||||
addKillId(OTHER_MONSTERS);
|
||||
addKillId(LATANA);
|
||||
addEnterZoneId(NOEXIT_ZONES.keySet());
|
||||
setCreatureSeeId(this::onCreatureSee, LATANA);
|
||||
addCreatureSeeId(LATANA);
|
||||
registerQuestItems(ITEMS);
|
||||
}
|
||||
|
||||
@@ -834,22 +833,22 @@ public class Q00144_PailakaInjuredDragon extends Quest
|
||||
}
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Creature creature = event.getSeen();
|
||||
if (creature.isPlayer())
|
||||
{
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
final QuestState qs = getQuestState(creature.getActingPlayer(), false);
|
||||
if ((qs == null) || (qs.getState() != State.STARTED) || creature.isSummon())
|
||||
{
|
||||
return;
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
startQuestTimer("LATANA_INTRO_CAMERA_START", 600, npc, creature.getActingPlayer());
|
||||
}
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -23,7 +23,6 @@ import org.l2jmobius.gameserver.model.actor.Attackable;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import org.l2jmobius.gameserver.model.quest.State;
|
||||
@@ -54,7 +53,7 @@ public class Q00275_DarkWingedSpies extends Quest
|
||||
addStartNpc(NERUGA_CHIEF_TANTUS);
|
||||
addTalkId(NERUGA_CHIEF_TANTUS);
|
||||
addKillId(DARKWING_BAT, VARANGKAS_TRACKER);
|
||||
setCreatureSeeId(this::onCreatureSee, VARANGKAS_TRACKER);
|
||||
addCreatureSeeId(VARANGKAS_TRACKER);
|
||||
registerQuestItems(DARKWING_BAT_FANG, VARANGKAS_PARASITE);
|
||||
}
|
||||
|
||||
@@ -110,16 +109,16 @@ public class Q00275_DarkWingedSpies extends Quest
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Creature creature = event.getSeen();
|
||||
if (creature.isPlayer())
|
||||
{
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
npc.setRunning();
|
||||
((Attackable) npc).addDamageHate(creature, 0, 1);
|
||||
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, creature);
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -31,7 +31,6 @@ import org.l2jmobius.gameserver.model.events.annotations.Id;
|
||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureAttacked;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureSee;
|
||||
import org.l2jmobius.gameserver.model.events.returns.TerminateReturn;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
@@ -61,7 +60,7 @@ public class Q00454_CompletelyLost extends Quest
|
||||
addTalkId(INJURED_SOLDIER, ERMIAN);
|
||||
addMoveFinishedId(INJURED_SOLDIER);
|
||||
addEventReceivedId(INJURED_SOLDIER);
|
||||
setCreatureSeeId(this::onCreatureSee, INJURED_SOLDIER);
|
||||
addCreatureSeeId(INJURED_SOLDIER);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -399,17 +398,14 @@ public class Q00454_CompletelyLost extends Quest
|
||||
}
|
||||
}
|
||||
|
||||
public void onCreatureSee(OnCreatureSee event)
|
||||
@Override
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
final Creature creature = event.getSeen();
|
||||
if (creature.isPlayer())
|
||||
if (creature.isPlayer() && npc.isScriptValue(0))
|
||||
{
|
||||
final Npc npc = (Npc) event.getCreature();
|
||||
if (npc.isScriptValue(0))
|
||||
{
|
||||
addAttackDesire(npc, creature.getActingPlayer(), 10);
|
||||
}
|
||||
addAttackDesire(npc, creature.getActingPlayer(), 10);
|
||||
}
|
||||
return super.onCreatureSee(npc, creature);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -766,6 +766,36 @@ public class Quest extends AbstractScript implements IIdentifiable
|
||||
showResult(player, res);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param npc the NPC that sees the creature
|
||||
* @param creature the creature seen by the NPC
|
||||
*/
|
||||
public void notifyCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
PlayerInstance player = null;
|
||||
if (creature.isPlayer())
|
||||
{
|
||||
player = creature.getActingPlayer();
|
||||
}
|
||||
String res = null;
|
||||
try
|
||||
{
|
||||
res = onCreatureSee(npc, creature);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
if (player != null)
|
||||
{
|
||||
showError(player, e);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (player != null)
|
||||
{
|
||||
showResult(player, res);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param eventName - name of event
|
||||
* @param sender - NPC, who sent event
|
||||
@@ -1208,6 +1238,17 @@ public class Quest extends AbstractScript implements IIdentifiable
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is called whenever an NPC "sees" a creature.
|
||||
* @param npc the NPC who sees the creature
|
||||
* @param creature the creature seen by the NPC
|
||||
* @return
|
||||
*/
|
||||
public String onCreatureSee(Npc npc, Creature creature)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is called whenever a player enters the game.
|
||||
* @param player this parameter contains a reference to the exact instance of the player who is entering to the world.
|
||||
@@ -1878,6 +1919,22 @@ public class Quest extends AbstractScript implements IIdentifiable
|
||||
setAttackableAggroRangeEnterId(event -> notifyAggroRangeEnter(event.getNpc(), event.getActiveChar(), event.isSummon()), npcIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param npcIds the IDs of the NPCs to register
|
||||
*/
|
||||
public void addCreatureSeeId(int... npcIds)
|
||||
{
|
||||
setCreatureSeeId(event -> notifyCreatureSee((Npc) event.getCreature(), event.getSeen()), npcIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param npcIds the IDs of the NPCs to register
|
||||
*/
|
||||
public void addCreatureSeeId(Collection<Integer> npcIds)
|
||||
{
|
||||
setCreatureSeeId(event -> notifyCreatureSee((Npc) event.getCreature(), event.getSeen()), npcIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register onEnterZone trigger for zone
|
||||
* @param zoneId the ID of the zone to register
|
||||
|
Reference in New Issue
Block a user