This commit is contained in:
3
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-1.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-1.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
You have already received the Apprentice Adventurer's Weapon Exchange Coupon! Trying to trick me, eh? Don't underestimate my memory for faces! (Each character may only receive 1 Apprentice Adventurer's Weapon Exchange Coupon.)
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-2.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-2.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Here is the Apprentice Adventurer's Weapon Exchange Coupon.<br>
|
||||
You can exchange this ticket for the No-Grade Shadow Weapon from the Adventure Guild warehouse. Keep in mind that this Exchange Coupon is reserved only for you. Should you lose either the ticket or the weapon you borrowed, you cannot get a new one. Guard it carefully! You can use the weapon warehouse if you visit the Newbie Guide in each town. I wish you a pleasant and prosperous journey!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-3.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-3.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
You are not eligible to have the Apprentice Adventurer's Weapon Exchange Coupon! It is reserved especially for new adventurers who are visiting the world of Lineage 2 for the first time. You may not receive the Exchange Coupon if your level is under 6 or you have completed an occupation change. (Only beginners who are between <font color="LEVEL">level 6 and level 19</font> may use it.)
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-4.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-4.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
You have already received the Apprentice Adventurer's Armor Exchange Coupon! Trying to trick me, eh? Don't underestimate my memory for faces! (Each character may only receive 1 Apprentice Adventurer's Armor Exchange Coupon.)
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-5.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-5.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Here is the Apprentice Adventurer's Armor Exchange Coupon.<br>
|
||||
You can exchange this ticket for the No-Grade Shadow Armor from the Adventure Guild warehouse. Keep in mind that this Exchange Coupon is reserved only for you. Should you lose either the ticket or the weapon you borrowed, you cannot get a new one. Guard it carefully! You can use the weapon warehouse if you visit the Newbie Guide in each town. I wish you a pleasant and prosperous journey!
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-6.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-6.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
You are not eligible to receive the Apprentice Adventurer's Armor Exchange Coupon! It is reserved for new adventurers visiting the world of Lineage 2 for the first time. Even then, you can not receive the ticket unless you have completed the first occupation change! (Only beginners who have <font color="LEVEL">completed the first occupation change</font> may use it.)
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-7.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-7.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
You are not eligible to use the warehouse. You may not receive the Exchange Coupon if your level is under 6 or you have completed an occupation change. (Only beginners who are between <font color="LEVEL">level 6 and level 19</font> may use the warehouse.)
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-8.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598-8.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
You are not eligible to use the warehouse. You must complete your first class change! (Only <font color="LEVEL">beginners who have completed the first class change</font> may use the warehouse.)
|
||||
</body></html>
|
9
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598.htm
vendored
Normal file
9
trunk/dist/game/data/scripts/custom/NewbieCoupons/30598.htm
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
As token of congratulations, the Adventure Guild is pleased to open its warehouse to both apprentice adventurers who have reached level 6 as well as travelers who have completed their first occupation change. At level 6, you can borrow a <font color="LEVEL">No-Grade Shadow Weapon</font> with the <font color="LEVEL">Apprentice Adventurer's Weapon Exchange Coupon</font>. At level 20, you can borrow <font color="LEVEL">Shadow Armor</font> with the <font color="LEVEL">Adventurer's Magic Armor Exchange Coupon</font>. No-Grade Shadow Weapons can be exchanged up to level 19 and Shadow Armor can be exchanged up to level 39.
|
||||
Now then: how can I help you?<br>
|
||||
(Note: chaotic characters may not use weapons or armor borrowed from the Adventure Guild.)<br>
|
||||
<a action="bypass -h Quest NewbieCoupons newbie_give_weapon_coupon">Get the Apprentice Adventurer's Weapon Exchange Coupon.</a><br>
|
||||
<a action="bypass -h Quest NewbieCoupons newbie_show_weapon">Use the weapon warehouse for apprentice adventurers.</a><br>
|
||||
<a action="bypass -h Quest NewbieCoupons newbie_give_armor_coupon">Get the Adventurer's Magic Armor Exchange Coupon.</a><br>
|
||||
<a action="bypass -h Quest NewbieCoupons newbie_show_armor">Use the Magic Armor warehouse for travelers.</a>
|
||||
</body></html>
|
166
trunk/dist/game/data/scripts/custom/NewbieCoupons/NewbieCoupons.java
vendored
Normal file
166
trunk/dist/game/data/scripts/custom/NewbieCoupons/NewbieCoupons.java
vendored
Normal file
@@ -0,0 +1,166 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack 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.
|
||||
*
|
||||
* L2J DataPack 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 custom.NewbieCoupons;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.MultisellData;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
|
||||
/**
|
||||
* Newbie Weapon/Accesories Coupons for the Hellbound opening event.<br>
|
||||
* Original Jython script by Vice.
|
||||
* @author Nyaran
|
||||
*/
|
||||
public final class NewbieCoupons extends Quest
|
||||
{
|
||||
private static final int COUPON_ONE = 7832;
|
||||
private static final int COUPON_TWO = 7833;
|
||||
|
||||
private static final int[] NPCs =
|
||||
{
|
||||
30598,
|
||||
30599,
|
||||
30600,
|
||||
30601,
|
||||
30602,
|
||||
31076,
|
||||
31077,
|
||||
32135
|
||||
};
|
||||
|
||||
private static final int WEAPON_MULTISELL = 305986001;
|
||||
private static final int ACCESORIES_MULTISELL = 305986002;
|
||||
|
||||
// enable/disable coupon give
|
||||
private static final boolean NEWBIE_COUPONS_ENABLED = true;
|
||||
|
||||
/*
|
||||
* Newbie/one time rewards section Any quest should rely on a unique bit, but it could be shared among quests that were mutually exclusive or race restricted. Bit //1 isn't used for backwards compatibility. This script uses 2 bits, one for newbie coupons and another for travelers These 2 bits
|
||||
* happen to be the same used by the Miss Queen script
|
||||
*/
|
||||
private static final int NEWBIE_WEAPON = 16;
|
||||
private static final int NEWBIE_ACCESORY = 32;
|
||||
|
||||
private NewbieCoupons()
|
||||
{
|
||||
super(-1, NewbieCoupons.class.getSimpleName(), "custom");
|
||||
|
||||
for (int i : NPCs)
|
||||
{
|
||||
addStartNpc(i);
|
||||
addTalkId(i);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = event;
|
||||
if (!NEWBIE_COUPONS_ENABLED)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
QuestState st = getQuestState(player, false);
|
||||
int newbie = player.getNewbie();
|
||||
int level = player.getLevel();
|
||||
int occupation_level = player.getClassId().level();
|
||||
int pkkills = player.getPkKills();
|
||||
if (event.equals("newbie_give_weapon_coupon"))
|
||||
{
|
||||
/*
|
||||
* TODO: check if this is the very first character for this account would need a bit of SQL, or a core method to determine it. This condition should be stored by the core in the account_data table upon character creation.
|
||||
*/
|
||||
if ((level >= 6) && (level <= 39) && (pkkills == 0) && (occupation_level == 0))
|
||||
{
|
||||
// check the player state against this quest newbie rewarding mark.
|
||||
if ((newbie | NEWBIE_WEAPON) != newbie)
|
||||
{
|
||||
player.setNewbie(newbie | NEWBIE_WEAPON);
|
||||
st.giveItems(COUPON_ONE, 5);
|
||||
htmltext = "30598-2.htm"; // here's the coupon you requested
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30598-1.htm"; // you got a coupon already!
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30598-3.htm"; // you're not eligible to get a coupon (level caps, pkkills or already changed class)
|
||||
}
|
||||
}
|
||||
else if (event.equals("newbie_give_armor_coupon"))
|
||||
{
|
||||
if ((level >= 6) && (level <= 39) && (pkkills == 0) && (occupation_level == 1))
|
||||
{
|
||||
// check the player state against this quest newbie rewarding mark.
|
||||
if ((newbie | NEWBIE_ACCESORY) != newbie)
|
||||
{
|
||||
player.setNewbie(newbie | NEWBIE_ACCESORY);
|
||||
st.giveItems(COUPON_TWO, 1);
|
||||
htmltext = "30598-5.htm"; // here's the coupon you requested
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30598-4.htm"; // you got a coupon already!
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30598-6.htm"; // you're not eligible to get a coupon (level caps, pkkills or didnt change class yet)
|
||||
}
|
||||
}
|
||||
else if (event.equals("newbie_show_weapon"))
|
||||
{
|
||||
if ((level >= 6) && (level <= 39) && (pkkills == 0) && (occupation_level == 0))
|
||||
{
|
||||
MultisellData.getInstance().separateAndSend(WEAPON_MULTISELL, player, npc, false);
|
||||
return null;
|
||||
}
|
||||
htmltext = "30598-7.htm"; // you're not eligible to use warehouse
|
||||
}
|
||||
else if (event.equals("newbie_show_armor"))
|
||||
{
|
||||
if ((level >= 6) && (level <= 39) && (pkkills == 0) && (occupation_level > 0))
|
||||
{
|
||||
MultisellData.getInstance().separateAndSend(ACCESORIES_MULTISELL, player, npc, false);
|
||||
return null;
|
||||
}
|
||||
htmltext = "30598-8.htm"; // you're not eligible to use warehouse
|
||||
}
|
||||
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
getQuestState(player, true);
|
||||
|
||||
return "30598.htm";
|
||||
}
|
||||
|
||||
public static void main(String args[])
|
||||
{
|
||||
new NewbieCoupons();
|
||||
}
|
||||
}
|
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-1.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-1.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30006">Gatekeeper Roxxy</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598.htm">Back To The Main List</a>
|
||||
</body></html>
|
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-2.htm
vendored
Normal file
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-2.htm
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30039">Captain Gilbert</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30040">Guard Leon</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30041">Guard Arnold</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30042">Guard Abellos</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30043">Guard Johnstone</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30044">Guard Chiperan</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30045">Guard Kenyos</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30046">Guard Hanks</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598.htm">Back To The Main List</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-3.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-3.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30283">Blacksmith Altran</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-4.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-4.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30003">Accessory Merchant Silvia</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30004">Trader Katerina</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-5.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-5.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30001">Trader Lector</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30002">Armor Merchant Jackson</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598.htm">Back To The Main List</a>
|
||||
</body></html>
|
9
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-6.htm
vendored
Normal file
9
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-6.htm
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30031">High Priest Biotin</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30033">Magister Baulro</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30035">Magister Harrys</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30032">Priest Yohanes</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30036">Priest Petron</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598.htm">Back To The Main List</a>
|
||||
</body></html>
|
8
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-7.htm
vendored
Normal file
8
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-7.htm
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30026">Grand Master Bitz</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30027">Master Gwinter</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30029">Master Minia</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30028">Master Pintage</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598.htm">Back To The Main List</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-8.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-8.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30054">Warehouse Keeper Rant</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30055">Warehouse Keeper Rolfe</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30005">Warehouse Keeper Wilford</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598.htm">Back To The Main List</a>
|
||||
</body></html>
|
13
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-9.htm
vendored
Normal file
13
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598-9.htm
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30048">Darin</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30312">Lighthouse Keeper Rockswell</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30368">Lilith</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30049">Bonnie</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30047">Wharf Manager Firon</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30497">Edmond</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30050">Elias</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30311">Sir Collin Windawood</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30051">Cristel</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598.htm">Back To The Main List</a>
|
||||
</body></html>
|
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598.htm
vendored
Normal file
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30598.htm
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Which of the following best describes the one you seek?<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598-1.htm">Teleporter</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598-2.htm">Guard</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598-3.htm">Blacksmith</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598-4.htm">Magic Trader</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598-5.htm">Weapons Trader</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598-6.htm">Temple (Mystic's Guild)</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598-7.htm">Warrior's Guild</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598-8.htm">Warehouse</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30598-9.htm">Other</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-1.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-1.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30146">Gatekeeper Mirabel</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599.htm">Back To The Main List</a>
|
||||
</body></html>
|
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-2.htm
vendored
Normal file
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-2.htm
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30285">Sentinel Gartrandell</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30284">Sentinel Knight Alberius</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30221">Sentinel Rayen</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30217">Sentinel Berros</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30219">Sentinel Veltress</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30220">Sentinel Starden</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30218">Sentinel Kendell</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30216">Sentinel Wheeler</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599.htm">Back To The Main List</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-3.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-3.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30363">Blacksmith Aios</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-4.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-4.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30149">Trader Creamees</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30150">Trader Herbiel</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-5.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-5.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30148">Trader Ariel</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30147">Trader Unoren</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599.htm">Back To The Main List</a>
|
||||
</body></html>
|
9
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-6.htm
vendored
Normal file
9
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-6.htm
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30155">Master Ellenia</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30156">Master Cobendell</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30157">Magister Greenis</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30158">Magister Esrandell</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30154">Hierarch Asterios</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599.htm">Back To The Main List</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-7.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-7.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30153">Warehouse Keeper Markius</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30152">Warehouse Keeper Julia</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30151">Warehouse Freightman Chad</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599.htm">Back To The Main List</a>
|
||||
</body></html>
|
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-8.htm
vendored
Normal file
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599-8.htm
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30423">Northwind</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30414">Rosella</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 31853">Treant Bremec</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30223">Arujien</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30362">Andellia</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30222">Alshupes</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30371">Thalia</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 31852">Pixy Murika</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599.htm">Back To The Main List</a>
|
||||
</body></html>
|
11
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599.htm
vendored
Normal file
11
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30599.htm
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Which of the following best describes the one you seek?<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599-1.htm">Gatekeeper</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599-2.htm">Guard</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599-3.htm">Blacksmith</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599-4.htm">Magic Trader</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599-5.htm">Weapons Trader</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599-6.htm">Eva's Sanctuary (Guild)</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599-7.htm">Warehouse</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30599-8.htm">Other</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-1.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-1.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30134">Gatekeeper Jasmine</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600.htm">Back To The Main List</a>
|
||||
</body></html>
|
16
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-2.htm
vendored
Normal file
16
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-2.htm
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30224">Sentry Knight Rayla</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30348">Sentry Nelsya</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30355">Sentry Roselyn</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30347">Sentry Marion</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30432">Sentry Irene</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30356">Sentry Altima</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30349">Sentry Jenna</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30346">Sentry Kayleen</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30433">Sentry Kathaway</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30357">Sentry Kristin</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30431">Sentry Eriel</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30430">Sentry Trionell</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600.htm">Back To The Main List</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-3.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-3.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30307">Blacksmith Karrod</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-4.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-4.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30138">Trader Minaless</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30137">Trader Vollodos</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-5.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-5.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30135">Trader Iria</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30136">Trader Payne</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600.htm">Back To The Main List</a>
|
||||
</body></html>
|
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-6.htm
vendored
Normal file
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-6.htm
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30143">Master Trudy</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30360">Master Harant</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30145">Master Vlasty</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30135">Magister Harne</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30144">Tetrarch Vellior</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30358">Tetrarch Thifiell</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30359">Tetrarch Kaitar</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30141">Tetrarch Talloth</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600.htm">Back To The Main List</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-7.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-7.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30139">Warehouse Keeper Dorankus</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30140">Warehouse Keeper Erviante</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30350">Warehouse Freightman Carlon</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600.htm">Back To The Main List</a>
|
||||
</body></html>
|
10
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-8.htm
vendored
Normal file
10
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600-8.htm
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30421">Varika</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30419">Arkenia</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30130">Abyssal Celebrant Undrias</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30351">Astaron</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30353">Jughead</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30354">Jewel</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600.htm">Back To The Main List</a>
|
||||
</body></html>
|
11
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600.htm
vendored
Normal file
11
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30600.htm
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Which of the following best describes the one you seek?<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600-1.htm">Teleporter</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600-2.htm">Guard</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600-3.htm">Blacksmith</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600-4.htm">Magic Trader</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600-5.htm">Weapons Trader</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600-6.htm">The Shilen Temple (Guild)</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600-7.htm">Warehouse</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30600-8.htm">Other</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-1.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-1.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30540">Gatekeeper Wirphy</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601.htm">Back To The Main List</a>
|
||||
</body></html>
|
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-2.htm
vendored
Normal file
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-2.htm
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30541">Protector Paion</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30542">Defender Runant</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30543">Defender Ethan</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30544">Defender Cromwell</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30545">Defender Proton</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30546">Defender Dinkey</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30547">Defender Tardyon</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30548">Defender Nathan</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601.htm">Back To The Main List</a>
|
||||
</body></html>
|
10
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-3.htm
vendored
Normal file
10
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-3.htm
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30531">Iron Gate's Lockirin</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30532">Golden Wheel's Spiron</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30533">Silver Scale's Balanki</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30534">Bronze Key's Keef</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30535">Filaur of the Gray Pillar</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30536">Black Anvil's Arin</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601.htm">Back To The Main List</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-4.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-4.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30525">Head Blacksmith Bronk</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30526">Blacksmith Brunon</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30527">Blacksmith Silvera</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-5.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-5.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30518">Accessory Merchant Garita</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30519">Grocer Mion</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-6.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-6.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30516">Weapon Merchant Reep</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30517">Armor Merchant Shari</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601.htm">Back To The Main List</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-7.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-7.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30520">Warehouse Chief Reed</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30521">Warehouse Freightman Murdoc</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30522">Warehouse Keeper Airy</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601.htm">Back To The Main List</a>
|
||||
</body></html>
|
15
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-8.htm
vendored
Normal file
15
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601-8.htm
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30523">Collector Gouph</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30524">Collector Pippi</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30537">Daichir, Priest of the Earth</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30650">Priest of the Earth Gerald</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30538">Priest of the Earth Zimenf</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30539">Priestess of the Earth Chichirin</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30671">Captain Croto</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30651">Wanderer Dorf</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30550">Gauri Twinklerock</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30554">Miner Bolter</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30553">Maryse Redbonnet</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601.htm">Back To The Main List</a>
|
||||
</body></html>
|
11
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601.htm
vendored
Normal file
11
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30601.htm
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Which of the following best describes the one you seek?<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601-1.htm">Teleporter</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601-2.htm">Guard</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601-3.htm">Guild Elder</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601-4.htm">Blacksmith</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601-5.htm">Magic Trader</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601-6.htm">Weapons Trader</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601-7.htm">Warehouse</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30601-8.htm">Other</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-1.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-1.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30576">Gatekeeper Tamil</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602.htm">Back To The Main List</a>
|
||||
</body></html>
|
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-2.htm
vendored
Normal file
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-2.htm
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30577">Praetorian Rukain</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30578">Centurion Nakusin</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30579">Centurion Tamai</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30580">Centurion Parugon</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30581">Centurion Orinak</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30582">Centurion Tiku</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30583">Centurion Petukai</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30584">Centurion Vapook</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-3.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-3.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30569">Prefect Brukurse</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30570">Prefect Karukia</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-4.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-4.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30571">Seer Tanapi</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30572">Seer Livina</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602.htm">Back To The Main List</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-5.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-5.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30564">Blacksmith Sumari</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-6.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-6.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30560">Trader Uska</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30561">Trader Papuma</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-7.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-7.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30558">Trader Jakal</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30559">Trader Kunai</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602.htm">Back To The Main List</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-8.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-8.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30562">Warehouse Keeper Grookin</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30563">Warehouse Keeper Imantu</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602.htm">Back To The Main List</a>
|
||||
</body></html>
|
10
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-9.htm
vendored
Normal file
10
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602-9.htm
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the radar.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30565">Flame Lord Kakai</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30566">Atuba Chief Varkees</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30567">Neruga Chief Tantus</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30568">Urutu Chief Hatos</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30585">Tataru Zu Hestui</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30587">Gantaki Zu Urutu</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602.htm">Back To The Main List</a>
|
||||
</body></html>
|
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602.htm
vendored
Normal file
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/30602.htm
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Which of the following best describes the one you seek?<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602-1.htm">Teleporter</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602-2.htm">Guard</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602-3.htm">Prefect (Warrior Guild)</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602-4.htm">Seer (Mystic Guild)</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602-5.htm">Blacksmith</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602-6.htm">Magic Trader</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602-7.htm">Weapons Trader</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602-8.htm">Warehouse</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 30602-9.htm">Other</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-1.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-1.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the screen.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32163">Gatekeeper Ragara</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135.htm">Go back to the list.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-10.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-10.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the screen.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32160">Grand Magister Devon</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32162">Magister Martika</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32161">Master Black</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135.htm">Go back to the list.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-11.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-11.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the screen.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32158">Warehouse Chief Fisler</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32157">Head Blacksmith Moka</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32159">Blacksmith Kincaid</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135.htm">Go back to the list.</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-12.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-12.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the screen.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32169">Spellbook Trader Mifren</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135.htm">Go back to the list.</a>
|
||||
</body></html>
|
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-2.htm
vendored
Normal file
12
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-2.htm
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the screen.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32173">Zerstorer Marcela</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32174">Marksman Maddy</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32175">Marksman Bixon</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32176">Marksman Ambra</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32177">Marksman Syzar</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32178">Guard Karba</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32179">Marksman Putin</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32180">Marksman Kato</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135.htm">Go back to the list.</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-3.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-3.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the screen.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32164">Weapons Trader Erinu</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32165">Armor Trader Zacon</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135.htm">Go back to the list.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-4.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-4.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the screen.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32168">Magic Trader Janis</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32166">Accessory Trader Treavi</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32167">Consumption Goods Trader Neazel</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135.htm">Go back to the list.</a>
|
||||
</body></html>
|
13
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-5.htm
vendored
Normal file
13
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-5.htm
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the screen.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32141">Master Nerga</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32142">Master Tenor</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32143">Master Belkis</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32144">Master Sonya</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32145">Grand Master Maynard</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32146">Grand Master Valpor</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32139">Hierarch Casca</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32140">Hierarch Zenya</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32138">Hierarch Kekropus</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135.htm">Go back to the list.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-6.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-6.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the screen.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32171">Warehouse Chief Hoffa</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32170">Warehouse Keeper Benis</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32172">Warehouse Freightman Saylem</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135.htm">Go back to the list.</a>
|
||||
</body></html>
|
8
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-7.htm
vendored
Normal file
8
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-7.htm
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the screen.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32153">High Priest Prana</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32154">Grand Master Aldenia</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32155">Priest Nabot</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32156">Master Talbot</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135.htm">Go back to the list.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-8.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-8.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the screen.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32150">Hight Prefect Took</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32151">Prefect Harz</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32152">Seer Henri</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135.htm">Go back to the list.</a>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-9.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135-9.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Select the one you seek below. Their location will be indicated on the screen.<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32147">Grand Master Libian</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32148">Master Sydnet</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32149">Magister Enea</a><br><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135.htm">Go back to the list.</a>
|
||||
</body></html>
|
15
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135.htm
vendored
Normal file
15
trunk/dist/game/data/scripts/custom/NpcLocationInfo/32135.htm
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
Where can we find the person you are seeking?<br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135-1.htm">Gatekeeper</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135-2.htm">Guard</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135-3.htm">Weapon Shop</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135-4.htm">Magic Shop</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135-5.htm">Hierarch's House</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135-6.htm">Warehouse</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135-7.htm">Human's Embassy</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135-8.htm">Orc's Embassy</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135-9.htm">Elve's Embassy</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135-10.htm">Dark Elve's Embassy</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135-11.htm">Dwarve's Embassy</a><br>
|
||||
<a action="bypass -h Quest NpcLocationInfo 32135-12.htm">Other</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/custom/NpcLocationInfo/MoveToLoc.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/custom/NpcLocationInfo/MoveToLoc.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Newbie Guide:<br>
|
||||
If you want to meet the person you seek, move in the direction of the arrow.
|
||||
</body></html>
|
325
trunk/dist/game/data/scripts/custom/NpcLocationInfo/NpcLocationInfo.java
vendored
Normal file
325
trunk/dist/game/data/scripts/custom/NpcLocationInfo/NpcLocationInfo.java
vendored
Normal file
@@ -0,0 +1,325 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack 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.
|
||||
*
|
||||
* L2J DataPack 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 custom.NpcLocationInfo;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.SpawnTable;
|
||||
import com.l2jserver.gameserver.model.L2Spawn;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* Npc Location Info AI.
|
||||
* @author Nyaran
|
||||
*/
|
||||
public final class NpcLocationInfo extends Quest
|
||||
{
|
||||
private static final int[] NPC =
|
||||
{
|
||||
30598,
|
||||
30599,
|
||||
30600,
|
||||
30601,
|
||||
30602,
|
||||
32135
|
||||
};
|
||||
|
||||
private static final int[] NPCRADAR =
|
||||
{
|
||||
// Talking Island
|
||||
30006, // Gatekeeper Roxxy
|
||||
30039, // Captain Gilbert
|
||||
30040, // Guard Leon
|
||||
30041, // Guard Arnold
|
||||
30042, // Guard Abellos
|
||||
30043, // Guard Johnstone
|
||||
30044, // Guard Chiperan
|
||||
30045, // Guard Kenyos
|
||||
30046, // Guard Hanks
|
||||
30283, // Blacksmith Altran
|
||||
30003, // Trader Silvia
|
||||
30004, // Trader Katerina
|
||||
30001, // Trader Lector
|
||||
30002, // Trader Jackson
|
||||
30031, // High Priest Biotin
|
||||
30033, // Magister Baulro
|
||||
30035, // Magister Harrys
|
||||
30032, // Priest Yohanes
|
||||
30036, // Priest Petron
|
||||
30026, // Grand Master Bitz
|
||||
30027, // Master Gwinter
|
||||
30029, // Master Minia
|
||||
30028, // Master Pintage
|
||||
30054, // Warehouse Keeper Rant
|
||||
30055, // Warehouse Keeper Rolfe
|
||||
30005, // Warehouse Keeper Wilford
|
||||
30048, // Darin
|
||||
30312, // Lighthouse Keeper Rockswell
|
||||
30368, // Lilith
|
||||
30049, // Bonnie
|
||||
30047, // Wharf Manager Firon
|
||||
30497, // Edmond
|
||||
30050, // Elias
|
||||
30311, // Sir Collin Windawood
|
||||
30051, // Cristel
|
||||
|
||||
// Dark Elf Vill
|
||||
30134, // Gatekeeper Jasmine
|
||||
30224, // Sentry Knight Rayla
|
||||
30348, // Sentry Nelsya
|
||||
30355, // Sentry Roselyn
|
||||
30347, // Sentry Marion
|
||||
30432, // Sentry Irene
|
||||
30356, // Sentry Altima
|
||||
30349, // Sentry Jenna
|
||||
30346, // Sentry Kayleen
|
||||
30433, // Sentry Kathaway
|
||||
30357, // Sentry Kristin
|
||||
30431, // Sentry Eriel
|
||||
30430, // Sentry Trionell
|
||||
30307, // Blacksmith Karrod
|
||||
30138, // Trader Minaless
|
||||
30137, // Trader Vollodos
|
||||
30135, // Trader Iria
|
||||
30136, // Trader Payne
|
||||
30143, // Master Trudy
|
||||
30360, // Master Harant
|
||||
30145, // Master Vlasty
|
||||
30135, // Magister Harne
|
||||
30144, // Tetrarch Vellior
|
||||
30358, // Tetrarch Thifiell
|
||||
30359, // Tetrarch Kaitar
|
||||
30141, // Tetrarch Talloth
|
||||
30139, // Warehouse Keeper Dorankus
|
||||
30140, // Warehouse Keeper Erviante
|
||||
30350, // Warehouse Freightman Carlon
|
||||
30421, // Varika
|
||||
30419, // Arkenia
|
||||
30130, // Abyssal Celebrant Undrias
|
||||
30351, // Astaron
|
||||
30353, // Jughead
|
||||
30354, // Jewel
|
||||
|
||||
// Elven Village
|
||||
30146, // Gatekeeper Mirabel
|
||||
30285, // Sentinel Gartrandell
|
||||
30284, // Sentinel Knight Alberius
|
||||
30221, // Sentinel Rayen
|
||||
30217, // Sentinel Berros
|
||||
30219, // Sentinel Veltress
|
||||
30220, // Sentinel Starden
|
||||
30218, // Sentinel Kendell
|
||||
30216, // Sentinel Wheeler
|
||||
30363, // Blacksmith Aios
|
||||
30149, // Trader Creamees
|
||||
30150, // Trader Herbiel
|
||||
30148, // Trader Ariel
|
||||
30147, // Trader Unoren
|
||||
30155, // Master Ellenia
|
||||
30156, // Master Cobendell
|
||||
30157, // Magister Greenis
|
||||
30158, // Magister Esrandell
|
||||
30154, // Hierarch Asterios
|
||||
30153, // Warehouse Keeper Markius
|
||||
30152, // Warehouse Keeper Julia
|
||||
30151, // Warehouse Freightman Chad
|
||||
30423, // Northwind
|
||||
30414, // Rosella
|
||||
31853, // Treant Bremec
|
||||
30223, // Arujien
|
||||
30362, // Andellia
|
||||
30222, // Alshupes
|
||||
30371, // Thalia
|
||||
31852, // Pixy Murika
|
||||
|
||||
// Dwarven Villa
|
||||
30540, // Gatekeeper Wirphy
|
||||
30541, // Protector Paion
|
||||
30542, // Defender Runant
|
||||
30543, // Defender Ethan
|
||||
30544, // Defender Cromwell
|
||||
30545, // Defender Proton
|
||||
30546, // Defender Dinkey
|
||||
30547, // Defender Tardyon
|
||||
30548, // Defender Nathan
|
||||
30531, // Iron Gate's Lockirin
|
||||
30532, // Golden Wheel's Spiron
|
||||
30533, // Silver Scale's Balanki
|
||||
30534, // Bronze Key's Keef
|
||||
30535, // Filaur of the Gray Pillar
|
||||
30536, // Black Anvil's Arin
|
||||
30525, // Head Blacksmith Bronk
|
||||
30526, // Blacksmith Brunon
|
||||
30527, // Blacksmith Silvera
|
||||
30518, // Trader Garita
|
||||
30519, // Trader Mion
|
||||
30516, // Trader Reep
|
||||
30517, // Trader Shari
|
||||
30520, // Warehouse Chief Reed
|
||||
30521, // Warehouse Freightman Murdoc
|
||||
30522, // Warehouse Keeper Airy
|
||||
30523, // Collector Gouph
|
||||
30524, // Collector Pippi
|
||||
30537, // Daichir, Priest of the Eart
|
||||
30650, // Priest of the Earth Gerald
|
||||
30538, // Priest of the Earth Zimenf
|
||||
30539, // Priestess of the Earth Chichirin
|
||||
30671, // Captain Croto
|
||||
30651, // Wanderer Dorf
|
||||
30550, // Gauri Twinklerock
|
||||
30554, // Miner Bolter
|
||||
30553, // Maryse Redbonnet
|
||||
|
||||
// Orc Village
|
||||
30576, // Gatekeeper Tamil
|
||||
30577, // Praetorian Rukain
|
||||
30578, // Centurion Nakusin
|
||||
30579, // Centurion Tamai
|
||||
30580, // Centurion Parugon
|
||||
30581, // Centurion Orinak
|
||||
30582, // Centurion Tiku
|
||||
30583, // Centurion Petukai
|
||||
30584, // Centurion Vapook
|
||||
30569, // Prefect Brukurse
|
||||
30570, // Prefect Karukia
|
||||
30571, // Seer Tanapi
|
||||
30572, // Seer Livina
|
||||
30564, // Blacksmith Sumari
|
||||
30560, // Trader Uska
|
||||
30561, // Trader Papuma
|
||||
30558, // Trader Jakal
|
||||
30559, // Trader Kunai
|
||||
30562, // Warehouse Keeper Grookin
|
||||
30563, // Warehouse Keeper Imantu
|
||||
30565, // Flame Lord Kakai
|
||||
30566, // Atuba Chief Varkees
|
||||
30567, // Neruga Chief Tantus
|
||||
30568, // Urutu Chief Hatos
|
||||
30585, // Tataru Zu Hestui
|
||||
30587, // Gantaki Zu Urutu
|
||||
|
||||
// Kamael Villag
|
||||
32163, // Gatekeeper Ragara
|
||||
32173, // Zerstorer Marcela
|
||||
32174, // Marksman Maddy
|
||||
32175, // Marksman Bixon
|
||||
32176, // Marksman Ambra
|
||||
32177, // Marksman Syzar
|
||||
32178, // Guard Karba
|
||||
32179, // Marksman Putin
|
||||
32180, // Marksman Kato
|
||||
32164, // Weapons Trader Erinu
|
||||
32165, // Armor Trader Zacon
|
||||
32168, // Magic Trader Janis
|
||||
32166, // Accessory Trader Treavi
|
||||
32167, // Consumption Goods Trader Neazel
|
||||
32141, // Master Nerga
|
||||
32142, // Master Tenor
|
||||
32143, // Master Belkis
|
||||
32144, // Master Sonya
|
||||
32145, // Grand Master Maynard
|
||||
32146, // Grand Master Valpor
|
||||
32139, // Hierarch Casca
|
||||
32140, // Hierarch Zenya
|
||||
32138, // Hierarch Kekropus
|
||||
32171, // Warehouse Chief Hoffa
|
||||
32170, // Warehouse Keeper Benis
|
||||
32172, // Warehouse Freightman Saylem
|
||||
32153, // High Priest Prana
|
||||
32154, // Grand Master Aldenia
|
||||
32155, // Priest Nabot
|
||||
32156, // Master Talbot
|
||||
32150, // Hight Prefect Took
|
||||
32151, // Prefect Harz
|
||||
32152, // Seer Henri
|
||||
32147, // Grand Master Libian
|
||||
32148, // Master Sydnet
|
||||
32149, // Magister Enea
|
||||
32160, // Grand Magister Devon
|
||||
32162, // Magister Martika
|
||||
32161, // Master Black
|
||||
32158, // Warehouse Chief Fisler
|
||||
32157, // Head Blacksmith Moka
|
||||
32159, // Blacksmith Kincaid
|
||||
32169, // Spellbook Trader Mifren
|
||||
};
|
||||
|
||||
private NpcLocationInfo()
|
||||
{
|
||||
super(-1, NpcLocationInfo.class.getSimpleName(), "custom");
|
||||
addStartNpc(NPC);
|
||||
addTalkId(NPC);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = event;
|
||||
QuestState st = getQuestState(player, false);
|
||||
|
||||
if (st == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
if (Util.isDigit(event))
|
||||
{
|
||||
htmltext = null;
|
||||
int npcId = Integer.parseInt(event);
|
||||
|
||||
if (Util.contains(NPCRADAR, npcId))
|
||||
{
|
||||
int x = 0, y = 0, z = 0;
|
||||
final L2Spawn spawn = SpawnTable.getInstance().getFirstSpawn(npcId);
|
||||
if (spawn != null)
|
||||
{
|
||||
x = spawn.getX();
|
||||
y = spawn.getY();
|
||||
z = spawn.getZ();
|
||||
}
|
||||
st.addRadar(x, y, z);
|
||||
htmltext = "MoveToLoc.htm";
|
||||
}
|
||||
st.exitQuest(true);
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
int npcId = npc.getId();
|
||||
getQuestState(player, true);
|
||||
|
||||
if (Util.contains(NPC, npcId))
|
||||
{
|
||||
htmltext = String.valueOf(npcId) + ".htm";
|
||||
}
|
||||
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public static void main(String args[])
|
||||
{
|
||||
new NpcLocationInfo();
|
||||
}
|
||||
}
|
105
trunk/dist/game/data/scripts/custom/RaidbossInfo/RaidbossInfo.java
vendored
Normal file
105
trunk/dist/game/data/scripts/custom/RaidbossInfo/RaidbossInfo.java
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack 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.
|
||||
*
|
||||
* L2J DataPack 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 custom.RaidbossInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.NpcData;
|
||||
import com.l2jserver.gameserver.datatables.SpawnTable;
|
||||
import com.l2jserver.gameserver.model.L2Spawn;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* Raidboss Info AI.<br>
|
||||
* Original Jython script Kerberos.
|
||||
* @author Nyaran
|
||||
*/
|
||||
public final class RaidbossInfo extends Quest
|
||||
{
|
||||
// @formatter:off
|
||||
private static final int[] NPC =
|
||||
{
|
||||
31729, 31730, 31731, 31732, 31733, 31734, 31735, 31736, 31737, 31738,
|
||||
31739, 31740, 31741, 31742, 31743, 31744, 31745, 31746, 31747, 31748,
|
||||
31749, 31750, 31751, 31752, 31753, 31754, 31755, 31756, 31757, 31758,
|
||||
31759, 31760, 31761, 31762, 31763, 31764, 31765, 31766, 31767, 31768,
|
||||
31769, 31770, 31771, 31772, 31773, 31774, 31775, 31776, 31777, 31778,
|
||||
31779, 31780, 31781, 31782, 31783, 31784, 31785, 31786, 31787, 31788,
|
||||
31789, 31790, 31791, 31792, 31793, 31794, 31795, 31796, 31797, 31798,
|
||||
31799, 31800, 31801, 31802, 31803, 31804, 31805, 31806, 31807, 31808,
|
||||
31809, 31810, 31811, 31812, 31813, 31814, 31815, 31816, 31817, 31818,
|
||||
31819, 31820, 31821, 31822, 31823, 31824, 31825, 31826, 31827, 31828,
|
||||
31829, 31830, 31831, 31832, 31833, 31834, 31835, 31836, 31837, 31838,
|
||||
31839, 31840, 31841, 32337, 32338, 32339, 32340
|
||||
};
|
||||
// @formatter:on
|
||||
private static final List<Integer> RAIDS = new ArrayList<>();
|
||||
|
||||
private RaidbossInfo()
|
||||
{
|
||||
super(-1, RaidbossInfo.class.getSimpleName(), "custom");
|
||||
addStartNpc(NPC);
|
||||
addTalkId(NPC);
|
||||
|
||||
// Add all Raid Bosses to RAIDS list
|
||||
for (L2NpcTemplate raid : NpcData.getInstance().getAllNpcOfClassType("L2RaidBoss"))
|
||||
{
|
||||
RAIDS.add(raid.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = event;
|
||||
if (Util.isDigit(event))
|
||||
{
|
||||
htmltext = null;
|
||||
int bossId = Integer.parseInt(event);
|
||||
|
||||
if (RAIDS.contains(bossId))
|
||||
{
|
||||
final L2Spawn spawn = SpawnTable.getInstance().getFirstSpawn(bossId);
|
||||
if (spawn != null)
|
||||
{
|
||||
final Location loc = spawn.getLocation();
|
||||
player.getRadar().addMarker(loc.getX(), loc.getY(), loc.getZ());
|
||||
}
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
return "info.htm";
|
||||
}
|
||||
|
||||
public static void main(String args[])
|
||||
{
|
||||
new RaidbossInfo();
|
||||
}
|
||||
}
|
9
trunk/dist/game/data/scripts/custom/RaidbossInfo/info.htm
vendored
Normal file
9
trunk/dist/game/data/scripts/custom/RaidbossInfo/info.htm
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<html><body>Raid Monster Information:<br>
|
||||
<a action="bypass -h Quest RaidbossInfo level20.htm">Raid Monster for levels 20-29</a><br>
|
||||
<a action="bypass -h Quest RaidbossInfo level30.htm">Raid Monster for levels 30-39</a><br>
|
||||
<a action="bypass -h Quest RaidbossInfo level40.htm">Raid Monster for levels 40-49</a><br>
|
||||
<a action="bypass -h Quest RaidbossInfo level50.htm">Raid Monster levels 50-59</a><br>
|
||||
<a action="bypass -h Quest RaidbossInfo level60.htm">Raid Monster for levels 60-69</a><br>
|
||||
<a action="bypass -h Quest RaidbossInfo level70.htm">Raid Monster for levels 70-79</a><br>
|
||||
<a action="bypass -h Quest RaidbossInfo level80.htm">Raid Monster for levels 80-89</a>
|
||||
</body></html>
|
26
trunk/dist/game/data/scripts/custom/RaidbossInfo/level20.htm
vendored
Normal file
26
trunk/dist/game/data/scripts/custom/RaidbossInfo/level20.htm
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
<html><body><br><br>
|
||||
<a action="bypass -h Quest RaidbossInfo 25372">Discarded Guardian (lv20)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25375">Zombie Lord Farakelsus (lv20)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25378">Madness Beast (lv20)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25146">Evil spirit Bifrons (lv21)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25357">Sukar Wererat Chief (lv21)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25373">Malex, Herald of Dagoniel (lv21)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25380">Kaysha, Herald of Icarus (lv21)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25001">Greyclaw Kutus (lv23)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25362">Tracker Leader Sharuk (lv23)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25366">Kuroboros' Priest (lv23)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25060">Unrequited Kael (lv24)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25127">Langk Matriarch Rashkos (lv24)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25019">Pan Dryad (lv25)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25076">Princess Molrang (lv25)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25149">Zombie Lord Crowl (lv25)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25166">Ikuntai (lv25)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25369">Soul Scavenger (lv25)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25426">Freki, Betrayer of Urutu (lv25)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25429">Mammon's Collector Talloth (lv25)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25360">Tiger Hornet (lv26)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25365">Patriarch Kuroboros (lv26)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25038">Tirak (lv28)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25272">Partisan Leader Talakin (lv28)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25095">Elf Renoa (lv29)</a>
|
||||
</body></html>
|
35
trunk/dist/game/data/scripts/custom/RaidbossInfo/level30.htm
vendored
Normal file
35
trunk/dist/game/data/scripts/custom/RaidbossInfo/level30.htm
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
<html><body><br><br>
|
||||
<a action="bypass -h Quest RaidbossInfo 25004">Turek Mercenary Captain (lv30)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25079">Cat's Eye (lv30)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25112">Meana, Agent of Beres (lv30)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25169">Ragraman (lv30)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25188">Apepi (lv30)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25352">Giant Wastelands Basilisk (lv30)</a><br1>
|
||||
Grave Robber Boss Akata (lv30)<br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25392">Captain of the Queen's Royal Guard (lv32)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25401">Skyla (lv32)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25128">Vuku Grand Seer Gharmash (lv33)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25391">Nurka's Messenger (lv33)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25404">Corsair Captain Kylon (lv33)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25020">Breka Warlock Pastu (lv34)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25023">Swamp Stakato Queen Zyrnna (lv34)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25189">Cronos's Servitor Mumu (lv34)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25383">Ghost of Sir Calibus (lv34)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25041">Remmel (lv35)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25063">Chertuba of Great Soul (lv35)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25098">Sejarr's Servitor (lv35)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25118">Guilotine, Warden of the Execution Grounds (lv35)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25152">Flame Lord Shadar (lv35)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25185">Tasaba Patriarch Hellena (lv35)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25223">Soul Collector Acheron (lv35)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25354">Gargoyle Lord Sirocco (lv35)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25388">Red Eye Captain Trakia (lv35)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25398">Eye of Beleth (lv35)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25211">Sebek (lv36)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25385">Evil Spirit Tempest (lv36)</a><br1>
|
||||
Rayito the Looter (lv37)<br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25170">Lizardmen Leader Hellion (lv38)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25394">Premo Prime (lv38)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25082">Leader of Cat Gang (lv39)</a><br1>
|
||||
Nellis' Vengeful Spirit (lv39)
|
||||
</body></html>
|
35
trunk/dist/game/data/scripts/custom/RaidbossInfo/level40.htm
vendored
Normal file
35
trunk/dist/game/data/scripts/custom/RaidbossInfo/level40.htm
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
<html><body><br><br>
|
||||
<a action="bypass -h Quest RaidbossInfo 25007">Retreat Spider Cletu (lv42)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25026">Katu Van Leader Atui (lv49)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25044">Barion (lv47)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25047">Karte (lv49)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25057">Biconne of Blue Sky (lv45)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25064">Mystic of Storm Teruk (lv40)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25085">Timak Orc Chief Ranger (lv44)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25088">Crazy Mechanic Golem (lv43)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25099">Rotten Tree Repiro (lv44)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25102">Shacram (lv45)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25115">Icarus Sample 1 (lv40)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25134">Leto Chief Talkin (lv40)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25155">Shaman King Selu (lv40)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25158">King Tarlk (lv48)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25173">Tiger King Karuta (lv45)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25192">Earth Protector Panathen (lv43)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25208">Water Couatle Ateka (lv40)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25214">Fafurion's Page Sika (lv40)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25260">Iron Giant Totem (lv45)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25395">Archon Suscepter (lv45)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25410">Road Scavenger Leader (lv40)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25412">Necrosentinel Royal Guard (lv47)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25415">Nakondas (lv40)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25418">Dread Avenger Kraven (lv44)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25420">Orfen's Handmaiden (lv48)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25431">Flame Stone Golem (lv44)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25437">Timak Orc Gosmos (lv45)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25438">Thief Kelbar (lv44)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25441">Evil Spirit Cyrion (lv45)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25456">Mirror of Oblivion (lv49)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25487">Water Spirit Lian (lv40)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25490">Gwindorr (lv40)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25498">Fafurion's Henchman Istary (lv45)</a>
|
||||
</body></html>
|
35
trunk/dist/game/data/scripts/custom/RaidbossInfo/level50.htm
vendored
Normal file
35
trunk/dist/game/data/scripts/custom/RaidbossInfo/level50.htm
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
<html><body><br><br>
|
||||
<a action="bypass -h Quest RaidbossInfo 25010">Furious Thieles (lv55)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25013">Spiteful Soul of Peasant Leader (lv50)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25029">Atraiban (lv53)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25032">Eva's Guardian Millenu (58)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25050">Verfa (lv51)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25067">Shaka, Captain of the Red Flag (lv52)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25070">Enchanted Forest Watcher Ruell (lv55)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25089">Soulless Wild Boar (lv59)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25103">Sorcerer Isirr (lv55)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25119">Berun, Messenger of the Fairy Queen (lv50)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25122">Hopeful Refugee Leo (lv56)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25131">Carnage Lord Gato (lv50)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25137">Sephia, Seer of Bereth (lv55)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25159">Unicorn Paniel (lv54)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25176">Black Lily (55)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25182">Demon Kurikups (59)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25217">Cursed Clara (lv50)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25230">Ragoth, Seer of Timak (lv57)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25238">Abyss Brukunt (59)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25241">Harit Hero Tamash (lv55)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25259">Zaken's Butcher Krantz (lv55)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25273">Carnamakos (50)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25277">Lilith's Witch Marilion (lv50)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25280">Pagan Watcher Cerberon (lv55)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25434">Bandit Leader Barda (lv55)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25460">Deadman Ereve (lv51)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25463">Harit Guardian Garangky (lv56)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25473">Grave Robber Kim (lv52)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25475">Ghost Knight Kabed (lv55)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25481">Magus Kenishee (lv53)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25484">Zaken's Mate Tillion (lv50)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25493">Eva's Spirit Niniel (lv55)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25496">Fafurion's Envoy Pingolpin (lv52)</a>
|
||||
</body></html>
|
23
trunk/dist/game/data/scripts/custom/RaidbossInfo/level60.htm
vendored
Normal file
23
trunk/dist/game/data/scripts/custom/RaidbossInfo/level60.htm
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
<html><body><br><br>
|
||||
<a action="bypass -h Quest RaidbossInfo 25016">The 3rd Underwater Guardian (lv60)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25051">Rahha (lv65)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25073">Bloody Priest Rudelto (lv69)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25106">Lidia, Ghost of the Well (lv60)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25125">Fierce Tiger King Angel (lv65)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25140">Hekaton Prime (lv65)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25162">Giant Marpanak (lv60)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25179">Karum, Guardian Of The Statue Of the Giant (60)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25226">Roaring Lord Kastor (lv62)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25233">Spiteful Soul of Andras the Betrayer (lv69)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25234">Ancient Weird Drake (lv65)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25255">Gargoyle Lord Tiphon (lv65)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25256">Taik High Prefect Arak (lv60)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25263">Kernon's Faithful Servant Kelone (67)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25322">Demon's Agent Falston (lv66)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25407">Lord Ishka (lv60)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25423">Fairy Queen Timiniel (61)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25444">Enmity Ghost Ramdal (lv65)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25467">Gorgolos (lv64)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25470">Utenus, the Last Titan (lv66)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25478">Hisilrome, Priest of Shilen (lv65)</a>
|
||||
</body></html>
|
33
trunk/dist/game/data/scripts/custom/RaidbossInfo/level70.htm
vendored
Normal file
33
trunk/dist/game/data/scripts/custom/RaidbossInfo/level70.htm
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
<html><body><br>
|
||||
<a action="bypass -h Quest RaidbossInfo 25035">Shilen's Messenger Cabrio (lv70)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25054">Kernon (lv75)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25092">Korim (lv70)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25109">Cloe, Priest of Antharas (lv74)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25126">Longhorn Golkonda (lv79)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25143">Shuriel, Fire of Wrath (lv78)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25163">Roaring Skylancer (lv70)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25198">Fafurion's Messenger Loch Ness (lv70)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25199">Fafurion's Seer Sheshark (lv72)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25202">Crokian Padisha Sobekk (lv74)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25205">Ocean's Flame Ashakiel (lv76)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25220">Death Lord Hallate (lv73)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25229">Storm Winged Naga (lv75)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25235">Vanor Chief Kandra (lv72)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25244">Last Lesser Giant Olkuth (lv75)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25245">Last Lesser Giant Glaki (lv78)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25248">Doom Blade Tanatos (lv72)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25249">Palatanos of the Fearsome Power (lv75)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25252">Palibati Queen Themis (lv70)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25266">Bloody Empress Decarbia (lv75)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25269">Beast Lord Behemoth (lv70)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25276">Death Lord Ipos (lv75)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25281">Anakim's Nemesis Zakaron (lv70)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25282">Death Lord Shax (lv75)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25293">Hestia, Guardian Deity of the Hot Springs (lv78)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25325">Barakiel, the Flame of Splendor (lv70)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25328">Eilhalder Von Hellman (lv71)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25447">Immortal Savior Mardil (lv71)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25450">Cherub Galaxia (lv79)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25453">Minas Anor (lv70)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25524">Flamestone Giant (lv76)</a>
|
||||
</body></html>
|
23
trunk/dist/game/data/scripts/custom/RaidbossInfo/level80.htm
vendored
Normal file
23
trunk/dist/game/data/scripts/custom/RaidbossInfo/level80.htm
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
<html><body><br><br>
|
||||
<a action="bypass -h Quest RaidbossInfo 25299">Ketra's Hero Hekaton (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25309">Varka's Hero Shadith (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25514">Spiked stakato Queen Shyeed (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25283">Lilith (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25286">Anakim (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25302">Ketra's Commander Tayr (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25312">Varka's Commander Mos (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25319">Ember (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25527">Uruka (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25305">Ketra's Chief Braki (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25315">Varka's Chief Horus (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 29096">Master Anays (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 29062">High Priest Andreas Van Halter (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25306">Soul of Fire Nastron (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25316">Soul of Water Ashutar (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 29065">Sailren (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25539">Typhoon (lv83)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25623">Valdstone (lv80)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25624">Rok (lv83)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25625">Enira (lv85)</a><br1>
|
||||
<a action="bypass -h Quest RaidbossInfo 25626">Dius (lv85)</a><br1>
|
||||
</body></html>
|
87
trunk/dist/game/data/scripts/custom/ShadowWeapons/ShadowWeapons.java
vendored
Normal file
87
trunk/dist/game/data/scripts/custom/ShadowWeapons/ShadowWeapons.java
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack 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.
|
||||
*
|
||||
* L2J DataPack 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 custom.ShadowWeapons;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* Shadow Weapons AI.<br>
|
||||
* Original Jython script by DrLecter.
|
||||
* @author Nyaran, jurchiks
|
||||
*/
|
||||
public final class ShadowWeapons extends Quest
|
||||
{
|
||||
// @formatter:off
|
||||
private static final int[] NPCS =
|
||||
{
|
||||
30037, 30066, 30070, 30109, 30115, 30120, 30174, 30175, 30176, 30187,
|
||||
30191, 30195, 30288, 30289, 30290, 30297, 30373, 30462, 30474, 30498,
|
||||
30499, 30500, 30503, 30504, 30505, 30511, 30512, 30513, 30595, 30676,
|
||||
30677, 30681, 30685, 30687, 30689, 30694, 30699, 30704, 30845, 30847,
|
||||
30849, 30854, 30857, 30862, 30865, 30894, 30897, 30900, 30905, 30910,
|
||||
30913, 31269, 31272, 31276, 31285, 31288, 31314, 31317, 31321, 31324,
|
||||
31326, 31328, 31331, 31334, 31336, 31958, 31961, 31965, 31968, 31974,
|
||||
31977, 31996, 32092, 32093, 32094, 32095, 32096, 32097, 32098, 32193,
|
||||
32196, 32199, 32202, 32205, 32206, 32213, 32214, 32221, 32222, 32229,
|
||||
32230, 32233, 32234
|
||||
};
|
||||
// @formatter:on
|
||||
private ShadowWeapons()
|
||||
{
|
||||
super(-1, ShadowWeapons.class.getSimpleName(), "custom");
|
||||
addStartNpc(NPCS);
|
||||
addTalkId(NPCS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext;
|
||||
boolean has_d = hasQuestItems(player, 8869); // Shadow Item Exchange Coupon (D-Grade)
|
||||
boolean has_c = hasQuestItems(player, 8870); // Shadow Item Exchange Coupon (C-Grade)
|
||||
|
||||
if (has_d || has_c)
|
||||
{
|
||||
if (!has_d)
|
||||
{
|
||||
htmltext = "exchange_c.html";
|
||||
}
|
||||
else if (!has_c)
|
||||
{
|
||||
htmltext = "exchange_d.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "exchange_both.html";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "exchange_no.html";
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
public static void main(String args[])
|
||||
{
|
||||
new ShadowWeapons();
|
||||
}
|
||||
}
|
6
trunk/dist/game/data/scripts/custom/ShadowWeapons/exchange_both.html
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/ShadowWeapons/exchange_both.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>
|
||||
A Shadow weapon is a special weapon that is made in cooperation between the Ivory Tower and the Black Anvil Guild. It is created by magically projecting the power of a weapon onto another catalytic object. While that means that it can only be used while the magic charge remains, it has made it possible to mass produce projectile weapons.<br>
|
||||
Its performance is no different than if you used the original weapon, except that it cannot possess the special ability to absorb souls or refine through a Stone of Life. Also, although it acts as a weapon, it is actualy in the magic category -- once opened, it cannot be passed on to someone else. Consider it an aid on your new path until you lay your hands on some real weapons.<br>
|
||||
If you have a Shadow Weapon exchange coupon, you can receive a Shadow Weapon right for you.<br>
|
||||
<a action="bypass -h npc_%objectId%_multisell 306893003">Give the shadow Weapon exchange coupon.</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/ShadowWeapons/exchange_c.html
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/ShadowWeapons/exchange_c.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>
|
||||
A Shadow weapon is a special weapon that is made in cooperation between the Ivory Tower and the Black Anvil Guild. It is created by magically projecting the power of a weapon onto another catalytic object. While that means that it can only be used while the magic charge remains, it has made it possible to mass produce projectile weapons.<br>
|
||||
Its performance is no different than if you used the original weapon, except that it cannot possess the special ability to absorb souls or refine through a Stone of Life. Also, although it acts as a weapon, it is actualy in the magic category -- once opened, it cannot be passed on to someone else. Consider it an aid on your new path until you lay your hands on some real weapons.<br>
|
||||
If you have a Shadow Weapon exchange coupon, you can receive a Shadow Weapon right for you.<br>
|
||||
<a action="bypass -h npc_%objectId%_multisell 306893002">Give the shadow Weapon exchange coupon.</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/ShadowWeapons/exchange_d.html
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/ShadowWeapons/exchange_d.html
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>
|
||||
A Shadow weapon is a special weapon that is made in cooperation between the Ivory Tower and the Black Anvil Guild. It is created by magically projecting the power of a weapon onto another catalytic object. While that means that it can only be used while the magic charge remains, it has made it possible to mass produce projectile weapons.<br>
|
||||
Its performance is no different than if you used the original weapon, except that it cannot possess the special ability to absorb souls or refine through a Stone of Life. Also, although it acts as a weapon, it is actualy in the magic category -- once opened, it cannot be passed on to someone else. Consider it an aid on your new path until you lay your hands on some real weapons.<br>
|
||||
If you have a Shadow Weapon exchange coupon, you can receive a Shadow Weapon right for you.<br>
|
||||
<a action="bypass -h npc_%objectId%_multisell 306893001">Give the shadow Weapon exchange coupon.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/custom/ShadowWeapons/exchange_no.html
vendored
Normal file
4
trunk/dist/game/data/scripts/custom/ShadowWeapons/exchange_no.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
You don't have a Shadow weapon exchange coupon.<br>
|
||||
A shadow Weapon exchange coupon is a <font color="LEVEL">gift received from a Grand Master, Magister or High Priest when you complete a class transfer.</font>
|
||||
</body></html>
|
376
trunk/dist/game/data/scripts/custom/Validators/SubClassSkills.java
vendored
Normal file
376
trunk/dist/game/data/scripts/custom/Validators/SubClassSkills.java
vendored
Normal file
@@ -0,0 +1,376 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack 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.
|
||||
*
|
||||
* L2J DataPack 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 custom.Validators;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import javolution.util.FastList;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.datatables.ClassListData;
|
||||
import com.l2jserver.gameserver.enums.IllegalActionPunishmentType;
|
||||
import com.l2jserver.gameserver.model.PcCondOverride;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* Sub-class skills validator.<br>
|
||||
* TODO: Rewrite.
|
||||
* @author DS
|
||||
*/
|
||||
public final class SubClassSkills extends Quest
|
||||
{
|
||||
// arrays must be sorted
|
||||
// @formatter:off
|
||||
private static final int[] _allCertSkillIds =
|
||||
{
|
||||
631, 632, 633, 634, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
|
||||
647, 648, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661,
|
||||
662, 799, 800, 801, 802, 803, 804, 1489, 1490, 1491
|
||||
};
|
||||
private static final int[][] _certSkillsByLevel =
|
||||
{
|
||||
{
|
||||
631, 632, 633, 634
|
||||
},
|
||||
{
|
||||
631, 632, 633, 634
|
||||
},
|
||||
{
|
||||
637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 650,
|
||||
651, 652, 653, 654, 655, 799, 800, 801, 802, 803, 804, 1489, 1490,
|
||||
1491
|
||||
},
|
||||
{
|
||||
656, 657, 658, 659, 660, 661, 662
|
||||
}
|
||||
};
|
||||
|
||||
private static final int[] _allCertItemIds =
|
||||
{
|
||||
10280, 10281, 10282, 10283, 10284, 10285, 10286, 10287, 10288, 10289,
|
||||
10290, 10291, 10292, 10293, 10294, 10612
|
||||
};
|
||||
private static final int[][] _certItemsByLevel =
|
||||
{
|
||||
{ 10280 },
|
||||
{ 10280 },
|
||||
{ 10612, 10281, 10282, 10283, 10284, 10285, 10286, 10287 },
|
||||
{ 10288, 10289, 10290, 10291, 10292, 10293, 10294 }
|
||||
};
|
||||
// @formatter:on
|
||||
|
||||
private static final String[] VARS =
|
||||
{
|
||||
"EmergentAbility65-",
|
||||
"EmergentAbility70-",
|
||||
"ClassAbility75-",
|
||||
"ClassAbility80-"
|
||||
};
|
||||
|
||||
private SubClassSkills()
|
||||
{
|
||||
super(-1, SubClassSkills.class.getSimpleName(), "custom");
|
||||
setOnEnterWorld(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onEnterWorld(L2PcInstance player)
|
||||
{
|
||||
if (!Config.SKILL_CHECK_ENABLE)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (player.canOverrideCond(PcCondOverride.SKILL_CONDITIONS) && !Config.SKILL_CHECK_GM)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final Skill[] certSkills = getCertSkills(player);
|
||||
if (player.isSubClassActive())
|
||||
{
|
||||
if (certSkills != null)
|
||||
{
|
||||
for (Skill s : certSkills)
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " has cert skill on subclass :" + s.getName() + "(" + s.getId() + "/" + s.getLevel() + "), class:" + ClassListData.getInstance().getClass(player.getClassId()).getClassName(), IllegalActionPunishmentType.NONE);
|
||||
|
||||
if (Config.SKILL_CHECK_REMOVE)
|
||||
{
|
||||
player.removeSkill(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Skill skill;
|
||||
int[][] cSkills = null; // skillId/skillLvl
|
||||
if (certSkills != null)
|
||||
{
|
||||
cSkills = new int[certSkills.length][2];
|
||||
for (int i = certSkills.length; --i >= 0;)
|
||||
{
|
||||
skill = certSkills[i];
|
||||
cSkills[i][0] = skill.getId();
|
||||
cSkills[i][1] = skill.getLevel();
|
||||
}
|
||||
}
|
||||
|
||||
L2ItemInstance item;
|
||||
int[][] cItems = null; // objectId/number
|
||||
final L2ItemInstance[] certItems = getCertItems(player);
|
||||
if (certItems != null)
|
||||
{
|
||||
cItems = new int[certItems.length][2];
|
||||
for (int i = certItems.length; --i >= 0;)
|
||||
{
|
||||
item = certItems[i];
|
||||
cItems[i][0] = item.getObjectId();
|
||||
cItems[i][1] = (int) Math.min(item.getCount(), Integer.MAX_VALUE);
|
||||
}
|
||||
}
|
||||
|
||||
QuestState st = player.getQuestState("SubClassSkills");
|
||||
if (st == null)
|
||||
{
|
||||
st = newQuestState(player);
|
||||
}
|
||||
|
||||
String qName, qValue;
|
||||
int id, index;
|
||||
for (int i = VARS.length; --i >= 0;)
|
||||
{
|
||||
for (int j = Config.MAX_SUBCLASS; j > 0; j--)
|
||||
{
|
||||
qName = VARS[i] + String.valueOf(j);
|
||||
qValue = st.getGlobalQuestVar(qName);
|
||||
if ((qValue == null) || qValue.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (qValue.endsWith(";")) // found skill
|
||||
{
|
||||
try
|
||||
{
|
||||
id = Integer.parseInt(qValue.replace(";", ""));
|
||||
|
||||
skill = null;
|
||||
if (certSkills != null)
|
||||
{
|
||||
// searching skill in test array
|
||||
if (cSkills != null)
|
||||
{
|
||||
for (index = certSkills.length; --index >= 0;)
|
||||
{
|
||||
if (cSkills[index][0] == id)
|
||||
{
|
||||
skill = certSkills[index];
|
||||
cSkills[index][1]--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (skill != null)
|
||||
{
|
||||
if (!Util.contains(_certSkillsByLevel[i], id))
|
||||
{
|
||||
// should remove this skill ?
|
||||
Util.handleIllegalPlayerAction(player, "Invalid cert variable WITH skill:" + qName + "=" + qValue + " - skill does not match certificate level", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Invalid cert variable:" + qName + "=" + qValue + " - skill not found", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Invalid cert variable:" + qName + "=" + qValue + " - no certified skills found", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Invalid cert variable:" + qName + "=" + qValue + " - not a number", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
}
|
||||
else
|
||||
// found item
|
||||
{
|
||||
try
|
||||
{
|
||||
id = Integer.parseInt(qValue);
|
||||
if (id == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
item = null;
|
||||
if (certItems != null)
|
||||
{
|
||||
// searching item in test array
|
||||
if (cItems != null)
|
||||
{
|
||||
for (index = certItems.length; --index >= 0;)
|
||||
{
|
||||
if (cItems[index][0] == id)
|
||||
{
|
||||
item = certItems[index];
|
||||
cItems[index][1]--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item != null)
|
||||
{
|
||||
if (!Util.contains(_certItemsByLevel[i], item.getId()))
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Invalid cert variable:" + qName + "=" + qValue + " - item found but does not match certificate level", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Invalid cert variable:" + qName + "=" + qValue + " - item not found", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Invalid cert variable:" + qName + "=" + qValue + " - no cert item found in inventory", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Invalid cert variable:" + qName + "=" + qValue + " - not a number", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((certSkills != null) && (cSkills != null))
|
||||
{
|
||||
for (int i = cSkills.length; --i >= 0;)
|
||||
{
|
||||
if (cSkills[i][1] == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
skill = certSkills[i];
|
||||
if (cSkills[i][1] > 0)
|
||||
{
|
||||
if (cSkills[i][1] == skill.getLevel())
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " has invalid cert skill :" + skill.getName() + "(" + skill.getId() + "/" + skill.getLevel() + ")", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
else
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " has invalid cert skill :" + skill.getName() + "(" + skill.getId() + "/" + skill.getLevel() + "), level too high", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
|
||||
if (Config.SKILL_CHECK_REMOVE)
|
||||
{
|
||||
player.removeSkill(skill);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Invalid cert skill :" + skill.getName() + "(" + skill.getId() + "/" + skill.getLevel() + "), level too low", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((certItems != null) && (cItems != null))
|
||||
{
|
||||
for (int i = cItems.length; --i >= 0;)
|
||||
{
|
||||
if (cItems[i][1] == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
item = certItems[i];
|
||||
Util.handleIllegalPlayerAction(player, "Invalid cert item without variable or with wrong count:" + item.getObjectId(), IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private Skill[] getCertSkills(L2PcInstance player)
|
||||
{
|
||||
FastList<Skill> tmp = null;
|
||||
for (Skill s : player.getAllSkills())
|
||||
{
|
||||
if ((s != null) && (Arrays.binarySearch(_allCertSkillIds, s.getId()) >= 0))
|
||||
{
|
||||
if (tmp == null)
|
||||
{
|
||||
tmp = FastList.newInstance();
|
||||
}
|
||||
|
||||
tmp.add(s);
|
||||
}
|
||||
}
|
||||
if (tmp == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final Skill[] result = tmp.toArray(new Skill[tmp.size()]);
|
||||
FastList.recycle(tmp);
|
||||
return result;
|
||||
}
|
||||
|
||||
private L2ItemInstance[] getCertItems(L2PcInstance player)
|
||||
{
|
||||
FastList<L2ItemInstance> tmp = null;
|
||||
for (L2ItemInstance i : player.getInventory().getItems())
|
||||
{
|
||||
if ((i != null) && (Arrays.binarySearch(_allCertItemIds, i.getId()) >= 0))
|
||||
{
|
||||
if (tmp == null)
|
||||
{
|
||||
tmp = FastList.newInstance();
|
||||
}
|
||||
|
||||
tmp.add(i);
|
||||
}
|
||||
}
|
||||
if (tmp == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final L2ItemInstance[] result = tmp.toArray(new L2ItemInstance[tmp.size()]);
|
||||
FastList.recycle(tmp);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new SubClassSkills();
|
||||
}
|
||||
}
|
247
trunk/dist/game/data/scripts/custom/events/Elpies/Elpies.java
vendored
Normal file
247
trunk/dist/game/data/scripts/custom/events/Elpies/Elpies.java
vendored
Normal file
@@ -0,0 +1,247 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack 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.
|
||||
*
|
||||
* L2J DataPack 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 custom.events.Elpies;
|
||||
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.ThreadPoolManager;
|
||||
import com.l2jserver.gameserver.datatables.SpawnTable;
|
||||
import com.l2jserver.gameserver.model.L2Spawn;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2EventMonsterInstance;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.quest.Event;
|
||||
import com.l2jserver.gameserver.util.Broadcast;
|
||||
|
||||
public final class Elpies extends Event
|
||||
{
|
||||
// NPC
|
||||
private static final int ELPY = 900100;
|
||||
// Amount of Elpies to spawn when the event starts
|
||||
private static final int ELPY_AMOUNT = 100;
|
||||
// Event duration in minutes
|
||||
private static final int EVENT_DURATION_MINUTES = 2;
|
||||
// @formatter:off
|
||||
private static final int[][] DROPLIST_CONSUMABLES =
|
||||
{
|
||||
// itemId, chance, min amount, max amount
|
||||
{ 1540, 80, 10, 15 }, // Quick Healing Potion
|
||||
{ 1538, 60, 5, 10 }, // Blessed Scroll of Escape
|
||||
{ 3936, 40, 5, 10 }, // Blessed Scroll of Ressurection
|
||||
{ 6387, 25, 5, 10 }, // Blessed Scroll of Ressurection Pets
|
||||
{ 22025, 15, 5, 10 }, // Powerful Healing Potion
|
||||
{ 6622, 10, 1, 1 }, // Giant's Codex
|
||||
{ 20034, 5, 1, 1 }, // Revita Pop
|
||||
{ 20004, 1, 1, 1 }, // Energy Ginseng
|
||||
{ 20004, 0, 1, 1 } // Energy Ginseng
|
||||
};
|
||||
|
||||
private static final int[][] DROPLIST_CRYSTALS =
|
||||
{
|
||||
{ 1458, 80, 50, 100 }, // Crystal D-Grade
|
||||
{ 1459, 60, 40, 80 }, // Crystal C-Grade
|
||||
{ 1460, 40, 30, 60 }, // Crystal B-Grade
|
||||
{ 1461, 20, 20, 30 }, // Crystal A-Grade
|
||||
{ 1462, 0, 10, 20 } // Crystal S-Grade
|
||||
};
|
||||
// @formatter:on
|
||||
// Non-final variables
|
||||
private static boolean EVENT_ACTIVE = false;
|
||||
private static int CURRENT_ELPY_COUNT = 0;
|
||||
private ScheduledFuture<?> _eventTask = null;
|
||||
|
||||
private Elpies()
|
||||
{
|
||||
super(Elpies.class.getSimpleName(), "custom/events");
|
||||
addSpawnId(ELPY);
|
||||
addKillId(ELPY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean eventBypass(L2PcInstance activeChar, String bypass)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean eventStart(L2PcInstance eventMaker)
|
||||
{
|
||||
if (EVENT_ACTIVE)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check Custom Table - we use custom NPC's
|
||||
if (!Config.CUSTOM_NPC_DATA)
|
||||
{
|
||||
_log.info(getName() + ": Event can't be started because custom NPC table is disabled!");
|
||||
eventMaker.sendMessage("Event " + getName() + " can't be started because custom NPC table is disabled!");
|
||||
return false;
|
||||
}
|
||||
|
||||
EVENT_ACTIVE = true;
|
||||
|
||||
EventLocation[] locations = EventLocation.values();
|
||||
EventLocation randomLoc = locations[getRandom(locations.length)];
|
||||
|
||||
CURRENT_ELPY_COUNT = 0;
|
||||
long despawnDelay = EVENT_DURATION_MINUTES * 60000;
|
||||
|
||||
for (int i = 0; i < ELPY_AMOUNT; i++)
|
||||
{
|
||||
addSpawn(ELPY, randomLoc.getRandomX(), randomLoc.getRandomY(), randomLoc.getZ(), 0, true, despawnDelay);
|
||||
CURRENT_ELPY_COUNT++;
|
||||
}
|
||||
|
||||
Broadcast.toAllOnlinePlayers("*Squeak Squeak*");
|
||||
Broadcast.toAllOnlinePlayers("Elpy invasion in " + randomLoc.getName());
|
||||
Broadcast.toAllOnlinePlayers("Help us exterminate them!");
|
||||
Broadcast.toAllOnlinePlayers("You have " + EVENT_DURATION_MINUTES + " minutes!");
|
||||
|
||||
_eventTask = ThreadPoolManager.getInstance().scheduleGeneral(() ->
|
||||
{
|
||||
Broadcast.toAllOnlinePlayers("Time is up!");
|
||||
eventStop();
|
||||
}, despawnDelay);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean eventStop()
|
||||
{
|
||||
if (!EVENT_ACTIVE)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
EVENT_ACTIVE = false;
|
||||
|
||||
if (_eventTask != null)
|
||||
{
|
||||
_eventTask.cancel(true);
|
||||
_eventTask = null;
|
||||
}
|
||||
|
||||
for (L2Spawn spawn : SpawnTable.getInstance().getSpawns(ELPY))
|
||||
{
|
||||
L2Npc npc = spawn.getLastSpawn();
|
||||
if (npc != null)
|
||||
{
|
||||
npc.deleteMe();
|
||||
}
|
||||
}
|
||||
|
||||
Broadcast.toAllOnlinePlayers("*Squeak Squeak*");
|
||||
Broadcast.toAllOnlinePlayers("Elpy Event finished!");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
if (EVENT_ACTIVE)
|
||||
{
|
||||
dropItem(npc, killer, DROPLIST_CONSUMABLES);
|
||||
dropItem(npc, killer, DROPLIST_CRYSTALS);
|
||||
CURRENT_ELPY_COUNT--;
|
||||
|
||||
if (CURRENT_ELPY_COUNT <= 0)
|
||||
{
|
||||
Broadcast.toAllOnlinePlayers("All elpies have been killed!");
|
||||
eventStop();
|
||||
}
|
||||
}
|
||||
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
((L2EventMonsterInstance) npc).eventSetDropOnGround(true);
|
||||
((L2EventMonsterInstance) npc).eventSetBlockOffensiveSkills(true);
|
||||
return super.onSpawn(npc);
|
||||
}
|
||||
|
||||
private static enum EventLocation
|
||||
{
|
||||
ADEN("Aden", 146558, 148341, 26622, 28560, -2200),
|
||||
DION("Dion", 18564, 19200, 144377, 145782, -3081),
|
||||
GLUDIN("Gludin", -84040, -81420, 150257, 151175, -3125),
|
||||
HV("Hunters Village", 116094, 117141, 75776, 77072, -2700),
|
||||
OREN("Oren", 82048, 82940, 53240, 54126, -1490);
|
||||
|
||||
private final String _name;
|
||||
private final int _minX;
|
||||
private final int _maxX;
|
||||
private final int _minY;
|
||||
private final int _maxY;
|
||||
private final int _z;
|
||||
|
||||
EventLocation(String name, int minX, int maxX, int minY, int maxY, int z)
|
||||
{
|
||||
_name = name;
|
||||
_minX = minX;
|
||||
_maxX = maxX;
|
||||
_minY = minY;
|
||||
_maxY = maxY;
|
||||
_z = z;
|
||||
}
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return _name;
|
||||
}
|
||||
|
||||
public int getRandomX()
|
||||
{
|
||||
return getRandom(_minX, _maxX);
|
||||
}
|
||||
|
||||
public int getRandomY()
|
||||
{
|
||||
return getRandom(_minY, _maxY);
|
||||
}
|
||||
|
||||
public int getZ()
|
||||
{
|
||||
return _z;
|
||||
}
|
||||
}
|
||||
|
||||
private static final void dropItem(L2Npc mob, L2PcInstance player, int[][] droplist)
|
||||
{
|
||||
final int chance = getRandom(100);
|
||||
|
||||
for (int[] drop : droplist)
|
||||
{
|
||||
if (chance >= drop[1])
|
||||
{
|
||||
mob.dropItem(player, drop[0], getRandom(drop[2], drop[3]));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Elpies();
|
||||
}
|
||||
}
|
8
trunk/dist/game/data/scripts/custom/events/Rabbits/900101-1.htm
vendored
Normal file
8
trunk/dist/game/data/scripts/custom/events/Rabbits/900101-1.htm
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>Snowden:<br>
|
||||
<br>
|
||||
Event Chest's are spawned at Fantasy Isle main square.<br>
|
||||
But they are not 'normal' chests. They are invisible...<br>
|
||||
So... you must use magic to see that chests!<br>
|
||||
While you are transformed into Rabbit use <font color="LEVEL">Magic Eye</font> skill to see if near you are some chests.<br>
|
||||
If you see one, target it and use <font color="LEVEL">Rabbit Tornado</font> skill to get reward!
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/custom/events/Rabbits/900101.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/custom/events/Rabbits/900101.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Snowden:<br><br>
|
||||
Greetings, brave adventurer of Aden!<br>
|
||||
My name is Snow. I can transform you into a Rabbit. That form can be useful for you to get rewards from magic chests...<br>
|
||||
<a action="bypass -h Quest Rabbits transform">Transform me into a Rabbit!</a><br><br>
|
||||
<a action="bypass -h Quest Rabbits 900101-1.htm">Listen explanations about Event.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/custom/events/Rabbits/900102.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/custom/events/Rabbits/900102.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body><br><br>
|
||||
Only <font color="LEVEL">Rabbit Tornado</font> skill can open a chest.<br>
|
||||
Talk with event manager to get transformation into rabbit...
|
||||
</body></html>
|
278
trunk/dist/game/data/scripts/custom/events/Rabbits/Rabbits.java
vendored
Normal file
278
trunk/dist/game/data/scripts/custom/events/Rabbits/Rabbits.java
vendored
Normal file
@@ -0,0 +1,278 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2014 L2J DataPack
|
||||
*
|
||||
* This file is part of L2J DataPack.
|
||||
*
|
||||
* L2J DataPack 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.
|
||||
*
|
||||
* L2J DataPack 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 custom.events.Rabbits;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jserver.gameserver.model.quest.Event;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.util.Broadcast;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* Rabbits event.<br>
|
||||
* Chests are hidden at Fantasy Isle and players must use the Rabbit transformation's skills to find and open them.
|
||||
* @author Gnacik, Zoey76
|
||||
*/
|
||||
public final class Rabbits extends Event
|
||||
{
|
||||
// NPCs
|
||||
private static final int NPC_MANAGER = 900101;
|
||||
private static final int CHEST = 900102;
|
||||
// Skills
|
||||
private static final SkillHolder RABBIT_MAGIC_EYE = new SkillHolder(629, 1);
|
||||
private static final SkillHolder RABBIT_TORNADO = new SkillHolder(630, 1);
|
||||
private static final SkillHolder RABBIT_TRANSFORMATION = new SkillHolder(2428, 1);
|
||||
private static final SkillHolder RAID_CURSE = new SkillHolder(4515, 1);
|
||||
// Misc
|
||||
private static final int EVENT_TIME = 10;
|
||||
private static final int TOTAL_CHEST_COUNT = 75;
|
||||
private static final int TRANSFORMATION_ID = 105;
|
||||
private final List<L2Npc> _npcs = new CopyOnWriteArrayList<>();
|
||||
private final List<L2PcInstance> _players = new ArrayList<>();
|
||||
private boolean _isActive = false;
|
||||
|
||||
/**
|
||||
* Drop data:<br>
|
||||
* Higher the chance harder the item.<br>
|
||||
* ItemId, chance in percent, min amount, max amount
|
||||
*/
|
||||
// @formatter:off
|
||||
private static final int[][] DROPLIST =
|
||||
{
|
||||
{ 1540, 80, 10, 15 }, // Quick Healing Potion
|
||||
{ 1538, 60, 5, 10 }, // Blessed Scroll of Escape
|
||||
{ 3936, 40, 5, 10 }, // Blessed Scroll of Ressurection
|
||||
{ 6387, 25, 5, 10 }, // Blessed Scroll of Ressurection Pets
|
||||
{ 22025, 15, 5, 10 }, // Powerful Healing Potion
|
||||
{ 6622, 10, 1, 1 }, // Giant's Codex
|
||||
{ 20034, 5, 1, 1 }, // Revita Pop
|
||||
{ 20004, 1, 1, 1 }, // Energy Ginseng
|
||||
{ 20004, 0, 1, 1 } // Energy Ginseng
|
||||
};
|
||||
// @formatter:on
|
||||
|
||||
private Rabbits()
|
||||
{
|
||||
super(Rabbits.class.getSimpleName(), "custom/events");
|
||||
addFirstTalkId(NPC_MANAGER, CHEST);
|
||||
addTalkId(NPC_MANAGER);
|
||||
addStartNpc(NPC_MANAGER);
|
||||
addSkillSeeId(CHEST);
|
||||
addAttackId(CHEST);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean eventStart(L2PcInstance eventMaker)
|
||||
{
|
||||
// Don't start event if its active
|
||||
if (_isActive)
|
||||
{
|
||||
eventMaker.sendMessage("Event " + getName() + " is already started!");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check starting conditions
|
||||
if (!Config.CUSTOM_NPC_DATA)
|
||||
{
|
||||
_log.info(getName() + ": Event can't be started, because custom NPCs are disabled!");
|
||||
eventMaker.sendMessage("Event " + getName() + " can't be started because custom NPCs are disabled!");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Set Event active
|
||||
_isActive = true;
|
||||
|
||||
// Spawn Manager
|
||||
recordSpawn(_npcs, NPC_MANAGER, -59227, -56939, -2039, 64106, false, 0);
|
||||
// Spawn Chests
|
||||
for (int i = 0; i <= TOTAL_CHEST_COUNT; i++)
|
||||
{
|
||||
recordSpawn(_npcs, CHEST, getRandom(-60653, -58772), getRandom(-55830, -58146), -2030, 0, false, EVENT_TIME * 60000);
|
||||
}
|
||||
|
||||
// Announce event start
|
||||
Broadcast.toAllOnlinePlayers("Rabbits Event: Chests spawned!");
|
||||
Broadcast.toAllOnlinePlayers("Rabbits Event: Go to Fantasy Isle and grab some rewards!");
|
||||
Broadcast.toAllOnlinePlayers("Rabbits Event: You have " + EVENT_TIME + " minuntes!");
|
||||
Broadcast.toAllOnlinePlayers("Rabbits Event: After that time all chests will disappear...");
|
||||
// Schedule event end
|
||||
startQuestTimer("END_RABBITS_EVENT", EVENT_TIME * 60000, null, eventMaker);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean eventStop()
|
||||
{
|
||||
// Don't stop inactive event
|
||||
if (!_isActive)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Set inactive
|
||||
_isActive = false;
|
||||
|
||||
// Cancel timer
|
||||
cancelQuestTimers("END_RABBITS_EVENT");
|
||||
|
||||
// Despawn NPCs
|
||||
for (L2Npc npc : _npcs)
|
||||
{
|
||||
if (npc != null)
|
||||
{
|
||||
npc.deleteMe();
|
||||
}
|
||||
}
|
||||
_npcs.clear();
|
||||
|
||||
for (L2PcInstance player : _players)
|
||||
{
|
||||
if ((player != null) && (player.getTransformationId() == TRANSFORMATION_ID))
|
||||
{
|
||||
player.untransform();
|
||||
}
|
||||
}
|
||||
_players.clear();
|
||||
|
||||
// Announce event end
|
||||
Broadcast.toAllOnlinePlayers("Rabbits Event: Event has finished.");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "900101-1.htm":
|
||||
{
|
||||
htmltext = "900101-1.htm";
|
||||
break;
|
||||
}
|
||||
case "transform":
|
||||
{
|
||||
if (player.isTransformed() || player.isInStance())
|
||||
{
|
||||
player.untransform();
|
||||
}
|
||||
|
||||
RABBIT_TRANSFORMATION.getSkill().applyEffects(npc, player);
|
||||
_players.add(player);
|
||||
break;
|
||||
}
|
||||
case "END_RABBITS_EVENT":
|
||||
{
|
||||
Broadcast.toAllOnlinePlayers("Rabbits Event: Time up!");
|
||||
eventStop();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isSummon)
|
||||
{
|
||||
if (skill.getId() == RABBIT_TORNADO.getSkillId())
|
||||
{
|
||||
if (!npc.isInvisible() && Util.contains(targets, npc))
|
||||
{
|
||||
dropItem(npc, caster, DROPLIST);
|
||||
npc.deleteMe();
|
||||
_npcs.remove(npc);
|
||||
|
||||
if (_npcs.size() <= 1)
|
||||
{
|
||||
Broadcast.toAllOnlinePlayers("Rabbits Event: No more chests...");
|
||||
eventStop();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (skill.getId() == RABBIT_MAGIC_EYE.getSkillId())
|
||||
{
|
||||
if (npc.isInvisible() && npc.isInsideRadius(caster, skill.getAffectRange(), false, false))
|
||||
{
|
||||
npc.setInvisible(false);
|
||||
}
|
||||
}
|
||||
return super.onSkillSee(npc, caster, skill, targets, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon, Skill skill)
|
||||
{
|
||||
if (_isActive && ((skill == null) || (skill.getId() != RABBIT_TORNADO.getSkillId())))
|
||||
{
|
||||
RAID_CURSE.getSkill().applyEffects(npc, attacker);
|
||||
}
|
||||
return super.onAttack(npc, attacker, damage, isSummon);
|
||||
}
|
||||
|
||||
private static void dropItem(L2Npc npc, L2PcInstance player, int[][] droplist)
|
||||
{
|
||||
final int chance = getRandom(100);
|
||||
for (int[] drop : droplist)
|
||||
{
|
||||
if (chance > drop[1])
|
||||
{
|
||||
npc.dropItem(player, drop[0], getRandom(drop[2], drop[3]));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void recordSpawn(List<L2Npc> npcs, int npcId, int x, int y, int z, int heading, boolean randomOffSet, long despawnDelay)
|
||||
{
|
||||
final L2Npc npc = addSpawn(npcId, x, y, z, heading, randomOffSet, despawnDelay);
|
||||
if (npc.getId() == CHEST)
|
||||
{
|
||||
npc.setIsImmobilized(true);
|
||||
npc.disableCoreAI(true);
|
||||
npc.setInvisible(true);
|
||||
}
|
||||
npcs.add(npc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean eventBypass(L2PcInstance activeChar, String bypass)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Rabbits();
|
||||
}
|
||||
}
|
8
trunk/dist/game/data/scripts/custom/events/Race/900103-0.htm
vendored
Normal file
8
trunk/dist/game/data/scripts/custom/events/Race/900103-0.htm
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<img src="L2UI_CH3.herotower_deco" height="32" width="256" align="center"><br>
|
||||
<font color="ff3333">Race Start NPC</font><br>
|
||||
You can signup for race here:<br>
|
||||
<button value="Participate in Race" action="bypass -h Quest Race signup" width="180" height="25" back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
|
||||
</center>
|
||||
</body></html>
|
8
trunk/dist/game/data/scripts/custom/events/Race/900103-1.htm
vendored
Normal file
8
trunk/dist/game/data/scripts/custom/events/Race/900103-1.htm
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<img src="L2UI_CH3.herotower_deco" height="32" width="256" align="center"><br>
|
||||
<font color="ff3333">Race Start NPC</font><br>
|
||||
You are on list right now..
|
||||
<button value="Quit from Race" action="bypass -h Quest Race quit" width="180" height="25" back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
|
||||
</center>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/events/Race/900103-onlist.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/events/Race/900103-onlist.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<img src="L2UI_CH3.herotower_deco" height="32" width="256" align="center"><br>
|
||||
<font color=ff3333>Race Start NPC</font><br>
|
||||
You are already on list...
|
||||
</center>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/events/Race/900103-quit.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/events/Race/900103-quit.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<img src="L2UI_CH3.herotower_deco" height="32" width="256" align="center"><br>
|
||||
<font color=ff3333>Race Start NPC</font><br>
|
||||
You are unregistered from Race list...
|
||||
</center>
|
||||
</body></html>
|
8
trunk/dist/game/data/scripts/custom/events/Race/900103-signup.htm
vendored
Normal file
8
trunk/dist/game/data/scripts/custom/events/Race/900103-signup.htm
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<img src="L2UI_CH3.herotower_deco" height="32" width="256" align="center"><br>
|
||||
<font color=ff3333>Race Start NPC</font><br>
|
||||
Thanks for signup. Stay near me, when we start Race i will transform only players near me!<br>
|
||||
Without proper transformation you cannot finish Race!
|
||||
</center>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/events/Race/900103-started-0.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/events/Race/900103-started-0.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<img src="L2UI_CH3.herotower_deco" height="32" width="256" align="center"><br>
|
||||
<font color=ff3333>Race Start NPC</font><br>
|
||||
Sorry, but you are not participating in Race Event...
|
||||
</center>
|
||||
</body></html>
|
11
trunk/dist/game/data/scripts/custom/events/Race/900103-started-1.htm
vendored
Normal file
11
trunk/dist/game/data/scripts/custom/events/Race/900103-started-1.htm
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<img src="L2UI_CH3.herotower_deco" height="32" width="256" align="center"><br>
|
||||
<font color=ff3333>Race Start NPC</font><br>
|
||||
Race is started already.. So Hurry up!<br>
|
||||
<button value="Transform" action="bypass -h Quest Race transform" width=180 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br>
|
||||
<button value="Untransform" action="bypass -h Quest Race untransform" width=180 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br>
|
||||
<button value="Show Finish Point" action="bypass -h Quest Race showfinish" width=180 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br>
|
||||
<button value="Quit from Race" action="bypass -h Quest eventmodRace quit" width=180 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
|
||||
</center>
|
||||
</body></html>
|
7
trunk/dist/game/data/scripts/custom/events/Race/900104-0.htm
vendored
Normal file
7
trunk/dist/game/data/scripts/custom/events/Race/900104-0.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>
|
||||
<center>
|
||||
<img src="L2UI_CH3.herotower_deco" height="32" width="256" align="center"><br>
|
||||
<font color=ff3333>Race Finish NPC</font><br>
|
||||
Sorry, but you are not in our Race List...
|
||||
</center>
|
||||
</body></html>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user