Improved quest A Furry Friend (10742).

This commit is contained in:
MobiusDev 2017-11-12 15:40:00 +00:00
parent 727ec5e787
commit d932bd7a9a
8 changed files with 40 additions and 32 deletions

View File

@ -16,6 +16,7 @@
*/ */
package quests.Q10742_AFurryFriend; package quests.Q10742_AFurryFriend;
import com.l2jmobius.gameserver.ThreadPoolManager;
import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.CtrlIntention;
import com.l2jmobius.gameserver.enums.Race; import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.instancemanager.WalkingManager; import com.l2jmobius.gameserver.instancemanager.WalkingManager;
@ -83,7 +84,9 @@ public final class Q10742_AFurryFriend extends Quest
qs.startQuest(); qs.startQuest();
qs.set("cave", getRandom(3)); qs.set("cave", getRandom(3));
showOnScreenMsg(player, NpcStringId.FOLLOW_RICKY, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.FOLLOW_RICKY, ExShowScreenMessage.TOP_CENTER, 10000);
addSpawn(RICKY, RICKY_SPAWN, false, 180000); final L2Npc ricky = addSpawn(RICKY, RICKY_SPAWN, false, 180000);
ricky.setSummoner(player);
ricky.setTitle(player.getName());
htmltext = event; htmltext = event;
break; break;
} }
@ -106,7 +109,7 @@ public final class Q10742_AFurryFriend extends Quest
// Spawn Ricky // Spawn Ricky
final L2Npc ricky = addSpawn(RICKY, player, true, 120000); final L2Npc ricky = addSpawn(RICKY, player, true, 120000);
ricky.setSummoner(player); ricky.setSummoner(player);
ricky.setTitle(player.getAppearance().getVisibleName()); ricky.setTitle(player.getName());
ricky.setIsRunning(true); ricky.setIsRunning(true);
ricky.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player); ricky.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player);
startQuestTimer("CHECK_RICKY_DISTANCE", 2500, ricky, player); startQuestTimer("CHECK_RICKY_DISTANCE", 2500, ricky, player);
@ -146,7 +149,7 @@ public final class Q10742_AFurryFriend extends Quest
} }
else else
{ {
final L2Npc leira = L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 125).stream().filter(n -> (n.getId() == LEIRA)).findAny().orElse(null); final L2Npc leira = L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 300).stream().filter(n -> (n.getId() == LEIRA)).findAny().orElse(null);
if (leira != null) if (leira != null)
{ {
qs.setCond(2, true); qs.setCond(2, true);
@ -225,6 +228,6 @@ public final class Q10742_AFurryFriend extends Quest
public void onRouteFinished(L2Npc npc) public void onRouteFinished(L2Npc npc)
{ {
WalkingManager.getInstance().cancelMoving(npc); WalkingManager.getInstance().cancelMoving(npc);
npc.deleteMe(); ThreadPoolManager.schedule(() -> npc.deleteMe(), 100);
} }
} }

View File

@ -892,10 +892,9 @@
<height normal="40" /> <height normal="40" />
</collision> </collision>
</npc> </npc>
<npc id="19552" level="20" type="L2Npc" name="Ricky"> <npc id="19552" level="20" type="FriendlyNpc" name="Ricky" usingServerSideTitle="true">
<!-- AUTO GENERATED NPC TODO: FIX IT --> <race>BEAST</race>
<race>ETC</race> <sex>MALE</sex>
<sex>FEMALE</sex>
<stats str="79" int="34" dex="42" wit="66" con="75" men="12"> <stats str="79" int="34" dex="42" wit="66" con="75" men="12">
<vitals hp="342" hpRegen="2.5" mp="192" mpRegen="1.2" /> <vitals hp="342" hpRegen="2.5" mp="192" mpRegen="1.2" />
<speed> <speed>

View File

@ -16,6 +16,7 @@
*/ */
package quests.Q10742_AFurryFriend; package quests.Q10742_AFurryFriend;
import com.l2jmobius.gameserver.ThreadPoolManager;
import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.CtrlIntention;
import com.l2jmobius.gameserver.enums.Race; import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.instancemanager.WalkingManager; import com.l2jmobius.gameserver.instancemanager.WalkingManager;
@ -83,7 +84,9 @@ public final class Q10742_AFurryFriend extends Quest
qs.startQuest(); qs.startQuest();
qs.set("cave", getRandom(3)); qs.set("cave", getRandom(3));
showOnScreenMsg(player, NpcStringId.FOLLOW_RICKY, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.FOLLOW_RICKY, ExShowScreenMessage.TOP_CENTER, 10000);
addSpawn(RICKY, RICKY_SPAWN, false, 180000); final L2Npc ricky = addSpawn(RICKY, RICKY_SPAWN, false, 180000);
ricky.setSummoner(player);
ricky.setTitle(player.getName());
htmltext = event; htmltext = event;
break; break;
} }
@ -106,7 +109,7 @@ public final class Q10742_AFurryFriend extends Quest
// Spawn Ricky // Spawn Ricky
final L2Npc ricky = addSpawn(RICKY, player, true, 120000); final L2Npc ricky = addSpawn(RICKY, player, true, 120000);
ricky.setSummoner(player); ricky.setSummoner(player);
ricky.setTitle(player.getAppearance().getVisibleName()); ricky.setTitle(player.getName());
ricky.setIsRunning(true); ricky.setIsRunning(true);
ricky.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player); ricky.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player);
startQuestTimer("CHECK_RICKY_DISTANCE", 2500, ricky, player); startQuestTimer("CHECK_RICKY_DISTANCE", 2500, ricky, player);
@ -146,7 +149,7 @@ public final class Q10742_AFurryFriend extends Quest
} }
else else
{ {
final L2Npc leira = L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 125).stream().filter(n -> (n.getId() == LEIRA)).findAny().orElse(null); final L2Npc leira = L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 300).stream().filter(n -> (n.getId() == LEIRA)).findAny().orElse(null);
if (leira != null) if (leira != null)
{ {
qs.setCond(2, true); qs.setCond(2, true);
@ -225,6 +228,6 @@ public final class Q10742_AFurryFriend extends Quest
public void onRouteFinished(L2Npc npc) public void onRouteFinished(L2Npc npc)
{ {
WalkingManager.getInstance().cancelMoving(npc); WalkingManager.getInstance().cancelMoving(npc);
npc.deleteMe(); ThreadPoolManager.schedule(() -> npc.deleteMe(), 100);
} }
} }

View File

@ -894,10 +894,9 @@
<height normal="40" /> <height normal="40" />
</collision> </collision>
</npc> </npc>
<npc id="19552" level="20" type="L2Npc" name="Ricky"> <npc id="19552" level="20" type="FriendlyNpc" name="Ricky" usingServerSideTitle="true">
<!-- AUTO GENERATED NPC TODO: FIX IT --> <race>BEAST</race>
<race>ETC</race> <sex>MALE</sex>
<sex>FEMALE</sex>
<stats str="79" int="34" dex="42" wit="66" con="75" men="12"> <stats str="79" int="34" dex="42" wit="66" con="75" men="12">
<vitals hp="342" hpRegen="2.5" mp="192" mpRegen="1.2" /> <vitals hp="342" hpRegen="2.5" mp="192" mpRegen="1.2" />
<speed> <speed>

View File

@ -16,6 +16,7 @@
*/ */
package quests.Q10742_AFurryFriend; package quests.Q10742_AFurryFriend;
import com.l2jmobius.gameserver.ThreadPoolManager;
import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.CtrlIntention;
import com.l2jmobius.gameserver.enums.Race; import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.instancemanager.WalkingManager; import com.l2jmobius.gameserver.instancemanager.WalkingManager;
@ -83,7 +84,9 @@ public final class Q10742_AFurryFriend extends Quest
qs.startQuest(); qs.startQuest();
qs.set("cave", getRandom(3)); qs.set("cave", getRandom(3));
showOnScreenMsg(player, NpcStringId.FOLLOW_RICKY, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.FOLLOW_RICKY, ExShowScreenMessage.TOP_CENTER, 10000);
addSpawn(RICKY, RICKY_SPAWN, false, 180000); final L2Npc ricky = addSpawn(RICKY, RICKY_SPAWN, false, 180000);
ricky.setSummoner(player);
ricky.setTitle(player.getName());
htmltext = event; htmltext = event;
break; break;
} }
@ -106,7 +109,7 @@ public final class Q10742_AFurryFriend extends Quest
// Spawn Ricky // Spawn Ricky
final L2Npc ricky = addSpawn(RICKY, player, true, 120000); final L2Npc ricky = addSpawn(RICKY, player, true, 120000);
ricky.setSummoner(player); ricky.setSummoner(player);
ricky.setTitle(player.getAppearance().getVisibleName()); ricky.setTitle(player.getName());
ricky.setIsRunning(true); ricky.setIsRunning(true);
ricky.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player); ricky.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player);
startQuestTimer("CHECK_RICKY_DISTANCE", 2500, ricky, player); startQuestTimer("CHECK_RICKY_DISTANCE", 2500, ricky, player);
@ -146,7 +149,7 @@ public final class Q10742_AFurryFriend extends Quest
} }
else else
{ {
final L2Npc leira = L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 125).stream().filter(n -> (n.getId() == LEIRA)).findAny().orElse(null); final L2Npc leira = L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 300).stream().filter(n -> (n.getId() == LEIRA)).findAny().orElse(null);
if (leira != null) if (leira != null)
{ {
qs.setCond(2, true); qs.setCond(2, true);
@ -225,6 +228,6 @@ public final class Q10742_AFurryFriend extends Quest
public void onRouteFinished(L2Npc npc) public void onRouteFinished(L2Npc npc)
{ {
WalkingManager.getInstance().cancelMoving(npc); WalkingManager.getInstance().cancelMoving(npc);
npc.deleteMe(); ThreadPoolManager.schedule(() -> npc.deleteMe(), 100);
} }
} }

View File

@ -894,10 +894,9 @@
<height normal="40" /> <height normal="40" />
</collision> </collision>
</npc> </npc>
<npc id="19552" level="20" type="L2Npc" name="Ricky"> <npc id="19552" level="20" type="FriendlyNpc" name="Ricky" usingServerSideTitle="true">
<!-- AUTO GENERATED NPC TODO: FIX IT --> <race>BEAST</race>
<race>ETC</race> <sex>MALE</sex>
<sex>FEMALE</sex>
<stats str="79" int="34" dex="42" wit="66" con="75" men="12"> <stats str="79" int="34" dex="42" wit="66" con="75" men="12">
<vitals hp="342" hpRegen="2.5" mp="192" mpRegen="1.2" /> <vitals hp="342" hpRegen="2.5" mp="192" mpRegen="1.2" />
<speed> <speed>

View File

@ -16,6 +16,7 @@
*/ */
package quests.Q10742_AFurryFriend; package quests.Q10742_AFurryFriend;
import com.l2jmobius.gameserver.ThreadPoolManager;
import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.CtrlIntention;
import com.l2jmobius.gameserver.enums.Race; import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.instancemanager.WalkingManager; import com.l2jmobius.gameserver.instancemanager.WalkingManager;
@ -83,7 +84,9 @@ public final class Q10742_AFurryFriend extends Quest
qs.startQuest(); qs.startQuest();
qs.set("cave", getRandom(3)); qs.set("cave", getRandom(3));
showOnScreenMsg(player, NpcStringId.FOLLOW_RICKY, ExShowScreenMessage.TOP_CENTER, 10000); showOnScreenMsg(player, NpcStringId.FOLLOW_RICKY, ExShowScreenMessage.TOP_CENTER, 10000);
addSpawn(RICKY, RICKY_SPAWN, false, 180000); final L2Npc ricky = addSpawn(RICKY, RICKY_SPAWN, false, 180000);
ricky.setSummoner(player);
ricky.setTitle(player.getName());
htmltext = event; htmltext = event;
break; break;
} }
@ -106,7 +109,7 @@ public final class Q10742_AFurryFriend extends Quest
// Spawn Ricky // Spawn Ricky
final L2Npc ricky = addSpawn(RICKY, player, true, 120000); final L2Npc ricky = addSpawn(RICKY, player, true, 120000);
ricky.setSummoner(player); ricky.setSummoner(player);
ricky.setTitle(player.getAppearance().getVisibleName()); ricky.setTitle(player.getName());
ricky.setIsRunning(true); ricky.setIsRunning(true);
ricky.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player); ricky.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player);
startQuestTimer("CHECK_RICKY_DISTANCE", 2500, ricky, player); startQuestTimer("CHECK_RICKY_DISTANCE", 2500, ricky, player);
@ -146,7 +149,7 @@ public final class Q10742_AFurryFriend extends Quest
} }
else else
{ {
final L2Npc leira = L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 125).stream().filter(n -> (n.getId() == LEIRA)).findAny().orElse(null); final L2Npc leira = L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 300).stream().filter(n -> (n.getId() == LEIRA)).findAny().orElse(null);
if (leira != null) if (leira != null)
{ {
qs.setCond(2, true); qs.setCond(2, true);
@ -225,6 +228,6 @@ public final class Q10742_AFurryFriend extends Quest
public void onRouteFinished(L2Npc npc) public void onRouteFinished(L2Npc npc)
{ {
WalkingManager.getInstance().cancelMoving(npc); WalkingManager.getInstance().cancelMoving(npc);
npc.deleteMe(); ThreadPoolManager.schedule(() -> npc.deleteMe(), 100);
} }
} }

View File

@ -322,10 +322,9 @@
<height normal="40" /> <height normal="40" />
</collision> </collision>
</npc> </npc>
<npc id="19552" level="20" type="L2Npc" name="Ricky"> <npc id="19552" level="20" type="FriendlyNpc" name="Ricky" usingServerSideTitle="true">
<!-- AUTO GENERATED NPC TODO: FIX IT --> <race>BEAST</race>
<race>ETC</race> <sex>MALE</sex>
<sex>FEMALE</sex>
<stats str="79" int="34" dex="42" wit="66" con="75" men="12"> <stats str="79" int="34" dex="42" wit="66" con="75" men="12">
<vitals hp="342" hpRegen="2.5" mp="192" mpRegen="1.2" /> <vitals hp="342" hpRegen="2.5" mp="192" mpRegen="1.2" />
<speed> <speed>