Addition of simplified quest onCreatureSee NPC id registration and method override.

This commit is contained in:
MobiusDevelopment
2021-06-24 00:03:21 +00:00
parent 1d6efc99e4
commit 00eb8fb2ce
614 changed files with 4014 additions and 3168 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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