Updated Lionel Hunter AI.

Contributed by CostyKiller.
This commit is contained in:
MobiusDevelopment 2021-06-11 22:53:09 +00:00
parent 6a959e9f20
commit fb4ceae55d
48 changed files with 572 additions and 540 deletions

View File

@ -30,14 +30,14 @@ import ai.AbstractNpcAI;
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LionelHunter extends AbstractNpcAI
public class LindviorHerald extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LionelHunter()
public LindviorHerald()
{
addSpawnId(LIONEL_HUNTER);
}
@ -62,6 +62,6 @@ public class LionelHunter extends AbstractNpcAI
public static void main(String[] args)
{
new LionelHunter();
new LindviorHerald();
}
}

View File

@ -30,14 +30,14 @@ import ai.AbstractNpcAI;
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LionelHunter extends AbstractNpcAI
public class LindviorHerald extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LionelHunter()
public LindviorHerald()
{
addSpawnId(LIONEL_HUNTER);
}
@ -62,6 +62,6 @@ public class LionelHunter extends AbstractNpcAI
public static void main(String[] args)
{
new LionelHunter();
new LindviorHerald();
}
}

View File

@ -30,14 +30,14 @@ import ai.AbstractNpcAI;
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LionelHunter extends AbstractNpcAI
public class LindviorHerald extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LionelHunter()
public LindviorHerald()
{
addSpawnId(LIONEL_HUNTER);
}
@ -62,6 +62,6 @@ public class LionelHunter extends AbstractNpcAI
public static void main(String[] args)
{
new LionelHunter();
new LindviorHerald();
}
}

View File

@ -30,14 +30,14 @@ import ai.AbstractNpcAI;
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LionelHunter extends AbstractNpcAI
public class LindviorHerald extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LionelHunter()
public LindviorHerald()
{
addSpawnId(LIONEL_HUNTER);
}
@ -62,6 +62,6 @@ public class LionelHunter extends AbstractNpcAI
public static void main(String[] args)
{
new LionelHunter();
new LindviorHerald();
}
}

View File

@ -0,0 +1,67 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.bosses.Lindvior;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId;
import ai.AbstractNpcAI;
/**
* Lionel Hunter AI
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LindviorHerald extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LindviorHerald()
{
addSpawnId(LIONEL_HUNTER);
}
@Override
public void onTimerEvent(String event, StatSet params, Npc npc, PlayerInstance player)
{
if (event.equals("NPC_SHOUT") && (npc != null))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_JUST_LOCATED_LINDVIOR_THOSE_WHO_ARE_WILLING_TO_FIGHT_CAN_DO_SO_AT_ANY_TIME_NOW);
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
}
@Override
public String onSpawn(Npc npc)
{
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
WalkingManager.getInstance().startMoving(npc, ROUTE_NAME);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new LindviorHerald();
}
}

View File

@ -1,67 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.bosses.Lindvior;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId;
import ai.AbstractNpcAI;
/**
* Lionel Hunter AI
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LionelHunter extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LionelHunter()
{
addSpawnId(LIONEL_HUNTER);
}
@Override
public void onTimerEvent(String event, StatSet params, Npc npc, PlayerInstance player)
{
if (event.equals("NPC_SHOUT") && (npc != null))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_JUST_LOCATED_LINDVIOR_THOSE_WHO_ARE_WILLING_TO_FIGHT_CAN_DO_SO_AT_ANY_TIME_NOW);
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
}
@Override
public String onSpawn(Npc npc)
{
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
WalkingManager.getInstance().startMoving(npc, ROUTE_NAME);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new LionelHunter();
}
}

View File

@ -0,0 +1,67 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.bosses.Lindvior;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId;
import ai.AbstractNpcAI;
/**
* Lionel Hunter AI
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LindviorHerald extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LindviorHerald()
{
addSpawnId(LIONEL_HUNTER);
}
@Override
public void onTimerEvent(String event, StatSet params, Npc npc, PlayerInstance player)
{
if (event.equals("NPC_SHOUT") && (npc != null))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_JUST_LOCATED_LINDVIOR_THOSE_WHO_ARE_WILLING_TO_FIGHT_CAN_DO_SO_AT_ANY_TIME_NOW);
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
}
@Override
public String onSpawn(Npc npc)
{
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
WalkingManager.getInstance().startMoving(npc, ROUTE_NAME);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new LindviorHerald();
}
}

View File

@ -1,67 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.bosses.Lindvior;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId;
import ai.AbstractNpcAI;
/**
* Lionel Hunter AI
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LionelHunter extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LionelHunter()
{
addSpawnId(LIONEL_HUNTER);
}
@Override
public void onTimerEvent(String event, StatSet params, Npc npc, PlayerInstance player)
{
if (event.equals("NPC_SHOUT") && (npc != null))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_JUST_LOCATED_LINDVIOR_THOSE_WHO_ARE_WILLING_TO_FIGHT_CAN_DO_SO_AT_ANY_TIME_NOW);
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
}
@Override
public String onSpawn(Npc npc)
{
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
WalkingManager.getInstance().startMoving(npc, ROUTE_NAME);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new LionelHunter();
}
}

View File

@ -0,0 +1,67 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.bosses.Lindvior;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId;
import ai.AbstractNpcAI;
/**
* Lionel Hunter AI
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LindviorHerald extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LindviorHerald()
{
addSpawnId(LIONEL_HUNTER);
}
@Override
public void onTimerEvent(String event, StatSet params, Npc npc, PlayerInstance player)
{
if (event.equals("NPC_SHOUT") && (npc != null))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_JUST_LOCATED_LINDVIOR_THOSE_WHO_ARE_WILLING_TO_FIGHT_CAN_DO_SO_AT_ANY_TIME_NOW);
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
}
@Override
public String onSpawn(Npc npc)
{
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
WalkingManager.getInstance().startMoving(npc, ROUTE_NAME);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new LindviorHerald();
}
}

View File

@ -1,67 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.bosses.Lindvior;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId;
import ai.AbstractNpcAI;
/**
* Lionel Hunter AI
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LionelHunter extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LionelHunter()
{
addSpawnId(LIONEL_HUNTER);
}
@Override
public void onTimerEvent(String event, StatSet params, Npc npc, PlayerInstance player)
{
if (event.equals("NPC_SHOUT") && (npc != null))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_JUST_LOCATED_LINDVIOR_THOSE_WHO_ARE_WILLING_TO_FIGHT_CAN_DO_SO_AT_ANY_TIME_NOW);
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
}
@Override
public String onSpawn(Npc npc)
{
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
WalkingManager.getInstance().startMoving(npc, ROUTE_NAME);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new LionelHunter();
}
}

View File

@ -0,0 +1,67 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.bosses.Lindvior;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId;
import ai.AbstractNpcAI;
/**
* Lionel Hunter AI
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LindviorHerald extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LindviorHerald()
{
addSpawnId(LIONEL_HUNTER);
}
@Override
public void onTimerEvent(String event, StatSet params, Npc npc, PlayerInstance player)
{
if (event.equals("NPC_SHOUT") && (npc != null))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_JUST_LOCATED_LINDVIOR_THOSE_WHO_ARE_WILLING_TO_FIGHT_CAN_DO_SO_AT_ANY_TIME_NOW);
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
}
@Override
public String onSpawn(Npc npc)
{
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
WalkingManager.getInstance().startMoving(npc, ROUTE_NAME);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new LindviorHerald();
}
}

View File

@ -1,67 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.bosses.Lindvior;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId;
import ai.AbstractNpcAI;
/**
* Lionel Hunter AI
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LionelHunter extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LionelHunter()
{
addSpawnId(LIONEL_HUNTER);
}
@Override
public void onTimerEvent(String event, StatSet params, Npc npc, PlayerInstance player)
{
if (event.equals("NPC_SHOUT") && (npc != null))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_JUST_LOCATED_LINDVIOR_THOSE_WHO_ARE_WILLING_TO_FIGHT_CAN_DO_SO_AT_ANY_TIME_NOW);
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
}
@Override
public String onSpawn(Npc npc)
{
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
WalkingManager.getInstance().startMoving(npc, ROUTE_NAME);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new LionelHunter();
}
}

View File

@ -1,9 +0,0 @@
<html><body>Eva's Knight Lionel Hunter:<br>
May the Goddess of Water protect you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book1.htm">"Receive missing books 1st Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book2.htm">"Receive missing books 2nd Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book3.htm">"Receive missing books 3rd Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book4.htm">"Receive missing books 4th Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book5.htm">"Receive missing books 5th Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book6.htm">"Receive missing books 6th Exalted quest."</Button>
</body></html>

View File

@ -1,10 +0,0 @@
<html><body>Eva's Knight Lionel Hunter:<br>
May the Goddess of Water protect you.<br>
A tribe of the strongest monsters of the past, <font color="LEVEL">Krofin</font>, have reawakened after a long slumer. You must defeat these creatures!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">"Who are you?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 3">Check Fafurion Weapons</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 2">Ask about Eva</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4"><font color="LEVEL">Change the type of an Exalted equipment.</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 6"><font color="LEVEL">Receive missing books.</font></Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,5 +1,5 @@
<html><body>Eva's Knight Lionel Hunter:<br>
I am the ruler of Innadril, including Heine - I am also the knight to Eva, the goddess of water.<br>
I see... I seem as an Elf to you. Yes, I have that blood in me. But I have lived as a Human, and I consider myself close to - no, Human.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
<html><body>Eva's Knight Lionel Hunter:<br>
I am the ruler of Innadril, including Heine - I am also the knight to Eva, the goddess of water.<br>
I see... I seem as an Elf to you. Yes, I have that blood in me. But I have lived as a Human, and I consider myself close to - no, Human.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest LionelHunter 33907.htm">Back</Button>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Eva's Knight Lionel Hunter:<br>
Shilen was once the Goddess of Water. But when she fell into darkness, Eva the Goddess of Music succeeded the role. Have you ever seen her? She is...much like water. Gentle, all-embracing - and yet, her fury will overwhelm you like an unforgiving storm.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
<html><body>Eva's Knight Lionel Hunter:<br>
Shilen was once the Goddess of Water. But when she fell into darkness, Eva the Goddess of Music succeeded the role. Have you ever seen her? She is...much like water. Gentle, all-embracing - and yet, her fury will overwhelm you like an unforgiving storm.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest LionelHunter 33907.htm">Back</Button>
</body></html>

View File

@ -1,7 +1,7 @@
<html><body>Eva's Knight Lionel Hunter:<br>
Not just anyone can wield a dragon's weapon. First, you have to be brave enough to kill a dragon, and even then you will need tremendous wealth. Then, you'll need <font color="LEVEL">Dragon Blood</font> to use its skills. But it offers great power, so I can understand why people are compelled to try.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3390701">Stage 1</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3390702">Stage 2</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3390703">Stage 3</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2038">"I want to purchase Dragon Blood."</Button>
<html><body>Eva's Knight Lionel Hunter:<br>
Not just anyone can wield a dragon's weapon. First, you have to be brave enough to kill a dragon, and even then you will need tremendous wealth. Then, you'll need <font color="LEVEL">Dragon Blood</font> to use its skills. But it offers great power, so I can understand why people are compelled to try.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3390701">Stage 1</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3390702">Stage 2</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3390703">Stage 3</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2038">"I want to purchase Dragon Blood."</Button>
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>Lionel Hunter:<br>
May the Goddess of Water protect you.<br><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book1.html">"Receive missing books 1st Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book3.html">"Receive missing books 2nd Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book3.html">"Receive missing books 3rd Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book4.html">"Receive missing books 4th Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book5.html">"Receive missing books 5th Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book6.html">"Receive missing books 6th Exalted quest."</Button>
</body></html>

View File

@ -1,3 +1,3 @@
<html><body>Eva's Knight Lionel Hunter:<br>
You haven't complete the quest.
You haven't completed that quest.
</body></html>

View File

@ -0,0 +1,10 @@
<html><body>Eva's Knight Lionel Hunter:<br>
May the Goddess of Water protect you.<br>
A tribe of the strongest monsters of the past, <font color="LEVEL">Krofin</font>, have reawakened after a long slumer. You must defeat these creatures!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-01.htm">"Who are you?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-03.htm">Check Fafurion Weapons</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-02.htm">Ask about Eva</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-04.htm"><font color="LEVEL">Change the type of an Exalted equipment.</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-05.htm"><font color="LEVEL">Receive missing books.</font></Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -29,14 +29,13 @@ import quests.Q10873_ExaltedReachingAnotherLevel.Q10873_ExaltedReachingAnotherLe
import quests.Q10879_ExaltedGuideToPower.Q10879_ExaltedGuideToPower;
/**
* Lionel Hunter Exchange AI.
* @Note TODO: Merge with default htmls.
* @author Sero
* Lionel Hunter AI.
* @author Sero, CostyKiller
*/
public class LionelHunter extends AbstractNpcAI
{
// NPC
private static final int LIONEL_HUNTER = 33907;
private static final int LIONEL_HUNTER_HEINE = 33907;
// Items
private static final int SPELLBOOK_DIGNITY_OF_THE_EXALTED = 45922;
private static final int SPELLBOOK_DIGNITY_OF_THE_EXALTED_LV2 = 45923;
@ -57,34 +56,49 @@ public class LionelHunter extends AbstractNpcAI
private LionelHunter()
{
addStartNpc(LIONEL_HUNTER);
addTalkId(LIONEL_HUNTER);
addStartNpc(LIONEL_HUNTER_HEINE);
addTalkId(LIONEL_HUNTER_HEINE);
addFirstTalkId(LIONEL_HUNTER_HEINE);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
final QuestState qs1 = player.getQuestState(Q10811_ExaltedOneWhoFacesTheLimit.class.getSimpleName());
final QuestState qs2 = player.getQuestState(Q10817_ExaltedOneWhoOvercomesTheLimit.class.getSimpleName());
final QuestState qs3 = player.getQuestState(Q10823_ExaltedOneWhoShattersTheLimit.class.getSimpleName());
final QuestState qs4 = player.getQuestState(Q10873_ExaltedReachingAnotherLevel.class.getSimpleName());
final QuestState qs5 = player.getQuestState(Q10879_ExaltedGuideToPower.class.getSimpleName());
final QuestState qs6 = player.getQuestState(Q10507_ObtainingNewPower.class.getSimpleName());
switch (event)
{
case "33907-book1.htm":
case "33907.htm":
case "33907-01.htm":
case "33907-02.htm":
case "33907-03.htm":
case "33907-04.htm":
case "33907-05.htm":
{
final QuestState qs = player.getQuestState(Q10811_ExaltedOneWhoFacesTheLimit.class.getSimpleName());
if ((qs != null) && qs.isCompleted())
htmltext = event;
break;
}
case "33907-book1.html":
{
if ((qs1 != null) && qs1.isCompleted())
{
giveItems(player, SPELLBOOK_DIGNITY_OF_THE_EXALTED, 1);
htmltext = event;
}
else
{
htmltext = "33907-not-compeleted.html";
htmltext = "33907-not-completed.html";
}
break;
}
case "33907-book2.htm":
case "33907-book2.html":
{
final QuestState qs = player.getQuestState(Q10817_ExaltedOneWhoOvercomesTheLimit.class.getSimpleName());
if ((qs != null) && qs.isCompleted())
if ((qs2 != null) && qs2.isCompleted())
{
giveItems(player, SPELLBOOK_DIGNITY_OF_THE_EXALTED_LV2, 1);
giveItems(player, SPELLBOOK_BELIEF_OF_THE_EXALTED, 1);
@ -93,14 +107,13 @@ public class LionelHunter extends AbstractNpcAI
}
else
{
htmltext = "33907-not-compeleted.html";
htmltext = "33907-not-completed.html";
}
break;
}
case "33907-book3.htm":
case "33907-book3.html":
{
final QuestState qs = player.getQuestState(Q10823_ExaltedOneWhoShattersTheLimit.class.getSimpleName());
if ((qs != null) && qs.isCompleted())
if ((qs3 != null) && qs3.isCompleted())
{
giveItems(player, OBTAIN_EXALTED_STATUS, 1);
giveItems(player, EXALTED_TIARA, 1);
@ -113,14 +126,13 @@ public class LionelHunter extends AbstractNpcAI
}
else
{
htmltext = "33907-not-compeleted.html";
htmltext = "33907-not-completed.html";
}
break;
}
case "33907-book4.htm":
case "33907-book4.html":
{
final QuestState qs = player.getQuestState(Q10873_ExaltedReachingAnotherLevel.class.getSimpleName());
if ((qs != null) && qs.isCompleted())
if ((qs4 != null) && qs4.isCompleted())
{
giveItems(player, SPELLBOOK_DIGNITY_OF_THE_EXALTED_LV4, 1);
giveItems(player, VITALITY_OF_THE_EXALTED, 1);
@ -128,14 +140,13 @@ public class LionelHunter extends AbstractNpcAI
}
else
{
htmltext = "33907-not-compeleted.html";
htmltext = "33907-not-completed.html";
}
break;
}
case "33907-book5.htm":
case "33907-book5.html":
{
final QuestState qs = player.getQuestState(Q10879_ExaltedGuideToPower.class.getSimpleName());
if ((qs != null) && qs.isCompleted())
if ((qs5 != null) && qs5.isCompleted())
{
giveItems(player, SPELLBOOK_DIGNITY_OF_THE_EXALTED_LV5, 1);
giveItems(player, VITALITY_OF_THE_EXALTED_LV2, 1);
@ -143,21 +154,20 @@ public class LionelHunter extends AbstractNpcAI
}
else
{
htmltext = "33907-not-compeleted.html";
htmltext = "33907-not-completed.html";
}
break;
}
case "33907-book6.htm":
case "33907-book6.html":
{
final QuestState qs = player.getQuestState(Q10507_ObtainingNewPower.class.getSimpleName());
if ((qs != null) && qs.isCompleted())
if ((qs6 != null) && qs6.isCompleted())
{
giveItems(player, DIGNITY_OF_THE_EXALTED_LV6, 1);
htmltext = event;
}
else
{
htmltext = "33907-not-compeleted.html";
htmltext = "33907-not-completed.html";
}
break;
@ -166,6 +176,12 @@ public class LionelHunter extends AbstractNpcAI
return htmltext;
}
@Override
public String onFirstTalk(Npc npc, PlayerInstance player)
{
return "33907.htm";
}
public static void main(String[] args)
{
new LionelHunter();

View File

@ -0,0 +1,67 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.bosses.Lindvior;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId;
import ai.AbstractNpcAI;
/**
* Lionel Hunter AI
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LindviorHerald extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LindviorHerald()
{
addSpawnId(LIONEL_HUNTER);
}
@Override
public void onTimerEvent(String event, StatSet params, Npc npc, PlayerInstance player)
{
if (event.equals("NPC_SHOUT") && (npc != null))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_JUST_LOCATED_LINDVIOR_THOSE_WHO_ARE_WILLING_TO_FIGHT_CAN_DO_SO_AT_ANY_TIME_NOW);
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
}
@Override
public String onSpawn(Npc npc)
{
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
WalkingManager.getInstance().startMoving(npc, ROUTE_NAME);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new LindviorHerald();
}
}

View File

@ -1,67 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.bosses.Lindvior;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId;
import ai.AbstractNpcAI;
/**
* Lionel Hunter AI
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LionelHunter extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LionelHunter()
{
addSpawnId(LIONEL_HUNTER);
}
@Override
public void onTimerEvent(String event, StatSet params, Npc npc, PlayerInstance player)
{
if (event.equals("NPC_SHOUT") && (npc != null))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_JUST_LOCATED_LINDVIOR_THOSE_WHO_ARE_WILLING_TO_FIGHT_CAN_DO_SO_AT_ANY_TIME_NOW);
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
}
@Override
public String onSpawn(Npc npc)
{
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
WalkingManager.getInstance().startMoving(npc, ROUTE_NAME);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new LionelHunter();
}
}

View File

@ -1,9 +0,0 @@
<html><body>Eva's Knight Lionel Hunter:<br>
May the Goddess of Water protect you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book1.htm">"Receive missing books 1st Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book2.htm">"Receive missing books 2nd Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book3.htm">"Receive missing books 3rd Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book4.htm">"Receive missing books 4th Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book5.htm">"Receive missing books 5th Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book6.htm">"Receive missing books 6th Exalted quest."</Button>
</body></html>

View File

@ -1,10 +0,0 @@
<html><body>Eva's Knight Lionel Hunter:<br>
May the Goddess of Water protect you.<br>
A tribe of the strongest monsters of the past, <font color="LEVEL">Krofin</font>, have reawakened after a long slumer. You must defeat these creatures!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">"Who are you?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 3">Check Fafurion Weapons</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 2">Ask about Eva</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4"><font color="LEVEL">Change the type of an Exalted equipment.</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 6"><font color="LEVEL">Receive missing books.</font></Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -1,5 +1,5 @@
<html><body>Eva's Knight Lionel Hunter:<br>
I am the ruler of Innadril, including Heine - I am also the knight to Eva, the goddess of water.<br>
I see... I seem as an Elf to you. Yes, I have that blood in me. But I have lived as a Human, and I consider myself close to - no, Human.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
<html><body>Eva's Knight Lionel Hunter:<br>
I am the ruler of Innadril, including Heine - I am also the knight to Eva, the goddess of water.<br>
I see... I seem as an Elf to you. Yes, I have that blood in me. But I have lived as a Human, and I consider myself close to - no, Human.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest LionelHunter 33907.htm">Back</Button>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Eva's Knight Lionel Hunter:<br>
Shilen was once the Goddess of Water. But when she fell into darkness, Eva the Goddess of Music succeeded the role. Have you ever seen her? She is...much like water. Gentle, all-embracing - and yet, her fury will overwhelm you like an unforgiving storm.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
<html><body>Eva's Knight Lionel Hunter:<br>
Shilen was once the Goddess of Water. But when she fell into darkness, Eva the Goddess of Music succeeded the role. Have you ever seen her? She is...much like water. Gentle, all-embracing - and yet, her fury will overwhelm you like an unforgiving storm.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest LionelHunter 33907.htm">Back</Button>
</body></html>

View File

@ -1,7 +1,7 @@
<html><body>Eva's Knight Lionel Hunter:<br>
Not just anyone can wield a dragon's weapon. First, you have to be brave enough to kill a dragon, and even then you will need tremendous wealth. Then, you'll need <font color="LEVEL">Dragon Blood</font> to use its skills. But it offers great power, so I can understand why people are compelled to try.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3390701">Stage 1</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3390702">Stage 2</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3390703">Stage 3</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2038">"I want to purchase Dragon Blood."</Button>
<html><body>Eva's Knight Lionel Hunter:<br>
Not just anyone can wield a dragon's weapon. First, you have to be brave enough to kill a dragon, and even then you will need tremendous wealth. Then, you'll need <font color="LEVEL">Dragon Blood</font> to use its skills. But it offers great power, so I can understand why people are compelled to try.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3390701">Stage 1</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3390702">Stage 2</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 3390703">Stage 3</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_multisell 2038">"I want to purchase Dragon Blood."</Button>
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>Lionel Hunter:<br>
May the Goddess of Water protect you.<br><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book1.html">"Receive missing books 1st Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book3.html">"Receive missing books 2nd Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book3.html">"Receive missing books 3rd Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book4.html">"Receive missing books 4th Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book5.html">"Receive missing books 5th Exalted quest."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-book6.html">"Receive missing books 6th Exalted quest."</Button>
</body></html>

View File

@ -1,3 +1,3 @@
<html><body>Eva's Knight Lionel Hunter:<br>
You haven't complete the quest.
You haven't completed that quest.
</body></html>

View File

@ -0,0 +1,10 @@
<html><body>Eva's Knight Lionel Hunter:<br>
May the Goddess of Water protect you.<br>
A tribe of the strongest monsters of the past, <font color="LEVEL">Krofin</font>, have reawakened after a long slumer. You must defeat these creatures!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-01.htm">"Who are you?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-03.htm">Check Fafurion Weapons</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-02.htm">Ask about Eva</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-04.htm"><font color="LEVEL">Change the type of an Exalted equipment.</font></Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest LionelHunter 33907-05.htm"><font color="LEVEL">Receive missing books.</font></Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -29,14 +29,13 @@ import quests.Q10873_ExaltedReachingAnotherLevel.Q10873_ExaltedReachingAnotherLe
import quests.Q10879_ExaltedGuideToPower.Q10879_ExaltedGuideToPower;
/**
* Lionel Hunter Exchange AI.
* @Note TODO: Merge with default htmls.
* @author Sero
* Lionel Hunter AI.
* @author Sero, CostyKiller
*/
public class LionelHunter extends AbstractNpcAI
{
// NPC
private static final int LIONEL_HUNTER = 33907;
private static final int LIONEL_HUNTER_HEINE = 33907;
// Items
private static final int SPELLBOOK_DIGNITY_OF_THE_EXALTED = 45922;
private static final int SPELLBOOK_DIGNITY_OF_THE_EXALTED_LV2 = 45923;
@ -57,34 +56,49 @@ public class LionelHunter extends AbstractNpcAI
private LionelHunter()
{
addStartNpc(LIONEL_HUNTER);
addTalkId(LIONEL_HUNTER);
addStartNpc(LIONEL_HUNTER_HEINE);
addTalkId(LIONEL_HUNTER_HEINE);
addFirstTalkId(LIONEL_HUNTER_HEINE);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
final QuestState qs1 = player.getQuestState(Q10811_ExaltedOneWhoFacesTheLimit.class.getSimpleName());
final QuestState qs2 = player.getQuestState(Q10817_ExaltedOneWhoOvercomesTheLimit.class.getSimpleName());
final QuestState qs3 = player.getQuestState(Q10823_ExaltedOneWhoShattersTheLimit.class.getSimpleName());
final QuestState qs4 = player.getQuestState(Q10873_ExaltedReachingAnotherLevel.class.getSimpleName());
final QuestState qs5 = player.getQuestState(Q10879_ExaltedGuideToPower.class.getSimpleName());
final QuestState qs6 = player.getQuestState(Q10507_ObtainingNewPower.class.getSimpleName());
switch (event)
{
case "33907-book1.htm":
case "33907.htm":
case "33907-01.htm":
case "33907-02.htm":
case "33907-03.htm":
case "33907-04.htm":
case "33907-05.htm":
{
final QuestState qs = player.getQuestState(Q10811_ExaltedOneWhoFacesTheLimit.class.getSimpleName());
if ((qs != null) && qs.isCompleted())
htmltext = event;
break;
}
case "33907-book1.html":
{
if ((qs1 != null) && qs1.isCompleted())
{
giveItems(player, SPELLBOOK_DIGNITY_OF_THE_EXALTED, 1);
htmltext = event;
}
else
{
htmltext = "33907-not-compeleted.html";
htmltext = "33907-not-completed.html";
}
break;
}
case "33907-book2.htm":
case "33907-book2.html":
{
final QuestState qs = player.getQuestState(Q10817_ExaltedOneWhoOvercomesTheLimit.class.getSimpleName());
if ((qs != null) && qs.isCompleted())
if ((qs2 != null) && qs2.isCompleted())
{
giveItems(player, SPELLBOOK_DIGNITY_OF_THE_EXALTED_LV2, 1);
giveItems(player, SPELLBOOK_BELIEF_OF_THE_EXALTED, 1);
@ -93,14 +107,13 @@ public class LionelHunter extends AbstractNpcAI
}
else
{
htmltext = "33907-not-compeleted.html";
htmltext = "33907-not-completed.html";
}
break;
}
case "33907-book3.htm":
case "33907-book3.html":
{
final QuestState qs = player.getQuestState(Q10823_ExaltedOneWhoShattersTheLimit.class.getSimpleName());
if ((qs != null) && qs.isCompleted())
if ((qs3 != null) && qs3.isCompleted())
{
giveItems(player, OBTAIN_EXALTED_STATUS, 1);
giveItems(player, EXALTED_TIARA, 1);
@ -113,14 +126,13 @@ public class LionelHunter extends AbstractNpcAI
}
else
{
htmltext = "33907-not-compeleted.html";
htmltext = "33907-not-completed.html";
}
break;
}
case "33907-book4.htm":
case "33907-book4.html":
{
final QuestState qs = player.getQuestState(Q10873_ExaltedReachingAnotherLevel.class.getSimpleName());
if ((qs != null) && qs.isCompleted())
if ((qs4 != null) && qs4.isCompleted())
{
giveItems(player, SPELLBOOK_DIGNITY_OF_THE_EXALTED_LV4, 1);
giveItems(player, VITALITY_OF_THE_EXALTED, 1);
@ -128,14 +140,13 @@ public class LionelHunter extends AbstractNpcAI
}
else
{
htmltext = "33907-not-compeleted.html";
htmltext = "33907-not-completed.html";
}
break;
}
case "33907-book5.htm":
case "33907-book5.html":
{
final QuestState qs = player.getQuestState(Q10879_ExaltedGuideToPower.class.getSimpleName());
if ((qs != null) && qs.isCompleted())
if ((qs5 != null) && qs5.isCompleted())
{
giveItems(player, SPELLBOOK_DIGNITY_OF_THE_EXALTED_LV5, 1);
giveItems(player, VITALITY_OF_THE_EXALTED_LV2, 1);
@ -143,21 +154,20 @@ public class LionelHunter extends AbstractNpcAI
}
else
{
htmltext = "33907-not-compeleted.html";
htmltext = "33907-not-completed.html";
}
break;
}
case "33907-book6.htm":
case "33907-book6.html":
{
final QuestState qs = player.getQuestState(Q10507_ObtainingNewPower.class.getSimpleName());
if ((qs != null) && qs.isCompleted())
if ((qs6 != null) && qs6.isCompleted())
{
giveItems(player, DIGNITY_OF_THE_EXALTED_LV6, 1);
htmltext = event;
}
else
{
htmltext = "33907-not-compeleted.html";
htmltext = "33907-not-completed.html";
}
break;
@ -166,6 +176,12 @@ public class LionelHunter extends AbstractNpcAI
return htmltext;
}
@Override
public String onFirstTalk(Npc npc, PlayerInstance player)
{
return "33907.htm";
}
public static void main(String[] args)
{
new LionelHunter();

View File

@ -0,0 +1,67 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.bosses.Lindvior;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId;
import ai.AbstractNpcAI;
/**
* Lionel Hunter AI
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LindviorHerald extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LindviorHerald()
{
addSpawnId(LIONEL_HUNTER);
}
@Override
public void onTimerEvent(String event, StatSet params, Npc npc, PlayerInstance player)
{
if (event.equals("NPC_SHOUT") && (npc != null))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_JUST_LOCATED_LINDVIOR_THOSE_WHO_ARE_WILLING_TO_FIGHT_CAN_DO_SO_AT_ANY_TIME_NOW);
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
}
@Override
public String onSpawn(Npc npc)
{
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
WalkingManager.getInstance().startMoving(npc, ROUTE_NAME);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new LindviorHerald();
}
}

View File

@ -1,67 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.bosses.Lindvior;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.NpcStringId;
import ai.AbstractNpcAI;
/**
* Lionel Hunter AI
* @author Gigi
* @date 2017-07-23 - [22:54:59]
*/
public class LionelHunter extends AbstractNpcAI
{
// Npc
private static final int LIONEL_HUNTER = 33886;
// Misc
private static final String ROUTE_NAME = "Rune_Lionel";
public LionelHunter()
{
addSpawnId(LIONEL_HUNTER);
}
@Override
public void onTimerEvent(String event, StatSet params, Npc npc, PlayerInstance player)
{
if (event.equals("NPC_SHOUT") && (npc != null))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_JUST_LOCATED_LINDVIOR_THOSE_WHO_ARE_WILLING_TO_FIGHT_CAN_DO_SO_AT_ANY_TIME_NOW);
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
}
@Override
public String onSpawn(Npc npc)
{
getTimers().addTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
WalkingManager.getInstance().startMoving(npc, ROUTE_NAME);
return super.onSpawn(npc);
}
public static void main(String[] args)
{
new LionelHunter();
}
}