Sync with L2jServer HighFive Feb 23rd 2015.
This commit is contained in:
parent
ab37ff06dc
commit
79bc90ca26
@ -9,7 +9,9 @@
|
||||
# PunishmentTime - for how many minutes should the player(jail)/account(ban) be punished (0 = forever), valid only for PunishmentType 'jail' or 'ban'
|
||||
|
||||
# UseItem - item usage flooding
|
||||
# Default: 4
|
||||
# Item usage interval
|
||||
# Disabled to match retail, if you want to enable this protection change the value to 4 for example.
|
||||
# Default: 0
|
||||
FloodProtectorUseItemInterval = 0
|
||||
FloodProtectorUseItemLogFlooding = False
|
||||
FloodProtectorUseItemPunishmentLimit = 0
|
||||
|
10
trunk/dist/game/data/buylists/custom/0009923.xml
vendored
10
trunk/dist/game/data/buylists/custom/0009923.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/buylist.xsd">
|
||||
<item id="9376" price="0" /> <!-- Dynasty Rapier -->
|
||||
<item id="9377" price="0" /> <!-- Dynasty Rapier - Focus -->
|
||||
<item id="9378" price="0" /> <!-- Dynasty Rapier - Health -->
|
||||
<item id="9379" price="0" /> <!-- Dynasty Rapier - Light -->
|
||||
@ -48,7 +49,14 @@
|
||||
<item id="9878" price="0" /> <!-- Dynasty Bagh-Nakh - Rsk. Evasion -->
|
||||
<item id="9879" price="0" /> <!-- Dynasty Bagh-Nakh - Focus -->
|
||||
<item id="9880" price="0" /> <!-- Dynasty Bagh-Nakh - Haste -->
|
||||
<item id="9376" price="0" /> <!-- Dynasty Rapier -->
|
||||
<item id="10004" price="0" /> <!-- Dynasty Dual Sword -->
|
||||
<item id="10252" price="0" /> <!-- Dynasty Staff -->
|
||||
<item id="10527" price="0" /> <!-- Dynasty Staff - Mana Up -->
|
||||
<item id="10528" price="0" /> <!-- Dynasty Staff - Conversion -->
|
||||
<item id="10529" price="0" /> <!-- Dynasty Staff - Acumen -->
|
||||
<item id="10253" price="0" /> <!-- Dynasty Crusher -->
|
||||
<item id="10530" price="0" /> <!-- Dynasty Crusher - Anger -->
|
||||
<item id="10531" price="0" /> <!-- Dynasty Crusher - Health -->
|
||||
<item id="10532" price="0" /> <!-- Dynasty Crusher - Rsk. Focus -->
|
||||
<item id="13882" price="0" /> <!-- Dynasty Dual Daggers -->
|
||||
</list>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h npc_%objectId%_goto 1057" msg="811;Rune Township">Rune Township - 29500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h npc_%objectId%_goto 1058" msg="811;Town of Schuttgart">Town of Schuttgart - 43500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h npc_%objectId%_goto 1055" msg="811;The Town of Gludio">The Town of Gludio - 14500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h npc_%objectId%_goto 1059" msg="811;Town of Aden">Town of Aden - 7500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h npc_%objectId%_goto 1059" msg="811;Town of Aden">Town of Aden - 6500 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h npc_%objectId%_goto 136" msg="811;Giran Harbor">Giran Harbor - 2600 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h npc_%objectId%_goto 28" msg="811;Hardins Private Academy">Hardin's Private Academy - 2200 Adena</Button>
|
||||
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h npc_%objectId%_goto 1061" msg="811;Devil's Isle">Devil's Isle - 2850 Adena</Button>
|
||||
|
@ -81,7 +81,7 @@ public class QuestLink implements IBypassHandler
|
||||
* @param npc The table containing quests of the L2NpcInstance
|
||||
* @param quests
|
||||
*/
|
||||
public static void showQuestChooseWindow(L2PcInstance player, L2Npc npc, Collection<Quest> quests)
|
||||
private static void showQuestChooseWindow(L2PcInstance player, L2Npc npc, Collection<Quest> quests)
|
||||
{
|
||||
final StringBuilder sb = StringUtil.startAppend(150, "<html><body>");
|
||||
String state = "";
|
||||
@ -131,7 +131,7 @@ public class QuestLink implements IBypassHandler
|
||||
else
|
||||
{
|
||||
int questId = quest.getId();
|
||||
if (quest.getId() > 10000)
|
||||
if (questId > 10000)
|
||||
{
|
||||
questId -= 5000;
|
||||
}
|
||||
|
5
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-01.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-01.html
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Magic Trader Wesley:<br>
|
||||
I buy ingredients from adventurers like you, create various reagents from them and then sell them to the Mystics of the Ivory Tower. Although a mere merchant, I am proud of my association with the Mystics.<br>
|
||||
Many common ingredients such as jade and Dragon's Tooth are readily available, as many adventurers bring them to me. But there are other ingredients that are much more rare. I need a new regular supplier of these ingredients... Would you like to be that person? I must be honest with you, it is very dangerous work, and I am afraid you aren't quite up to the task...<br>
|
||||
(This quest can only be undertaken by characters of level 57 or higher.)
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-02.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-02.htm
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Magic Trader Wesley:<br>
|
||||
I buy ingredients from adventurers like you, create various reagents from them and then sell them to the Mystics of the Ivory Tower. Although a mere merchant, I am proud of my association with the Mystics.<br>
|
||||
Many common ingredients such as Jade and Dragon's Tooth are readily available, as many adventurers bring them to me. But there are other ingredients that are much more rare. I need a new regular supplier of these ingredients... Would you like to be that person?<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-03.htm">"I'll take the job."</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-03.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-03.htm
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Magic Trader Wesley:<br>
|
||||
Seriously? That would be great! My previous suppliers recently quit after complaining about the low pay and hazardous working conditions! To add insult to injury, Grand Magister Valleria has threatened to take his business elsewhere!<br>
|
||||
This is such a relief. Let me tell you what the job entails...<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-04.html">Listen to the job description.</a>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04.html
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Magic Trader Wesley:<br>
|
||||
Sir... or, should I call you partner? You must bring me the ingredients I need to make reagents using the <font color="LEVEL">Alchemical Mixing Urn</font>.<br>
|
||||
Take this <font color="LEVEL">Mixing Manual</font>. This is used to activate the mixing urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-04a.html">"Where can I find the ingredients?"</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04a.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04a.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Magic Trader Wesley:<br>
|
||||
You can obtain the ingredients from <font color="LEVEL">Crendion, Hallate's Maid, Hallate's Guardian, the Platinum Tribe Shaman and the Platinum Guardian Shaman</font> in the <font color="LEVEL">Tower of Insolence</font>.<br>
|
||||
You can also obtain some important ingredients from <font color="LEVEL"> Lava Wyrms and the Hames Orc Shaman</font> in the <font color="LEVEL">Blazing Swamp</font>.<br>
|
||||
Do you want to know how to use the mixing urn?<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-04b.html">"Tell me how to use the urn."</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04b.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04b.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Magic Trader Wesley:<br>
|
||||
First you must activate the jar. Do this by inserting a mixing stone into the niche on the side of the jar. Once activated, you can start using the jar immediately. You must gather the correct quantity and types of ingredients and catalysts and put them into it.<br>
|
||||
Remember, once you place ingredients into the jar, you cannot take them out again. So, be careful! You can waste your hard-won ingredients with a single mistake... Before you start mixing, make sure that you have the proper amount of all the necessary ingredients.<br>
|
||||
Now, I'll tell you how to set the temperature of the jar.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-04c.html">Listen to the instructions.</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04c.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04c.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Magic Trader Wesley:<br>
|
||||
The lowest temperature you can set is 1 degree, also called "Salamander." This is the safest choice. Although the success rate for mixing is 100%, the amount of reagent produced will be the smallest.<br>
|
||||
The medium temperature setting is 2 degrees, also called "Ifrit." You run a risk of melting your ingredients at this temperature. This setting will yield a larger amount of reagent.<br>
|
||||
The highest temperature setting is 3 degrees, also known as "Phoenix." Although ingredients often melt at this setting, if successful, you will obtain the greatest amount of reagent.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-04d.html">"Tell me about mixing reagents."</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04d.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-04d.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Magic Trader Wesley:<br>
|
||||
Formulas explain which ingredients and the amounts you will need in order to create a particular reagent. All formulas explain how many ingredients and how many catalysts should be added.<br>
|
||||
For example, in order to create Dracoplasm, ten units of Wyrm's Blood and one Blood Root should be mixed.<br>
|
||||
I wrote down a list of the required reagents and mixing formulas on the <font color="LEVEL">memo</font> and attached it on the urn. Please refer to it often.<br>
|
||||
Well, my dear new partner... I'll be counting on you.
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-05.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-05.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Magic Trader Wesley:<br>
|
||||
Welcome back! Come in! You're just in time. Grand Magister Arkenias has been asking for his order... I was able to put him off for a few days. Have you found the reagents I need? Bring them and I'll give you some ingredients, recipes or other items that you'll find useful.<br>
|
||||
<a action="bypass -h npc_%objectId%_multisell 301660373">"Here are the reagents you requested."</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-06.html">"Tell me about the memo."</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 30166-07.html">"I quit."</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-06.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-06.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Magic Trader Wesley:<br>
|
||||
I wrote down detailed instructions for using the urn, setting temperatures, a list of reagents and their formulas on the memo and attached it to the side of the urn. Please refer to it often.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-07.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/30166-07.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Magic Trader Wesley:<br>
|
||||
My partner! How can you quit so abruptly? What shall I do? You can't do this to me!<br>
|
||||
Oh, well, there's nothing I can do to stop you... I suppose I'll have to find another partner...
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-01.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-01.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
A small dent is visible on the side of the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Insert a mixing stone into the dent.</a>
|
||||
</body></html>
|
18
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-02.html
vendored
Normal file
18
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-02.html
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
The urn is glowing faintly.<br>
|
||||
Please select your ingredients:<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-03.html">Wyrm's Blood(10) </a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-04.html">Lava Stone(10)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-05.html">Moonstone Shard(10)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-06.html">Rotten Bone Piece(10)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-07.html">Demon's Blood(10)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-08.html">Infernium Ore(10)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-09.html">Dracoplasm(10)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-10.html">Magma Dust(10)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-11.html">Moon Dust(10)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-12.html">Necroplasm(10)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-13.html">Demonplasm(10)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-14.html">Inferno Dust(10)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-15.html">Fire Essence(1)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-16.html">Lunargent(1)</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-03.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-03.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
10 units of Wyrm's Blood have been put into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-04.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-04.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
10 Lava Stones have been put into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-05.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-05.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
10 Moonstone Shards have been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-06.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-06.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
10 Rotten Bone Pieces have been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-07.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-07.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
10 units of Demon's Blood have been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-08.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-08.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
10 pieces of Infernium Ore have been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-09.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-09.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
10 units of Dracoplasm have been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-10.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-10.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
10 units of Magma Dust have been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-11.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-11.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
10 units of Moon Dust have been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-12.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-12.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
10 units of Necroplasm have been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-13.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-13.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
10 units of Demonplasm have been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-14.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-14.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
10 units of Inferno Dust have been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-15.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-15.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
One Fire Essence has been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-16.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-16.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
One Lunargent has been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-18.html">Next step</a>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-17.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-17.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
You don't have the necessary ingredients.
|
||||
</body></html>
|
10
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-18.html
vendored
Normal file
10
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-18.html
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
The urn is glowing brightly and has begun to vibrate.<br>
|
||||
Please select your catalyst:<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-19.html">Blood Root(1)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-20.html">Volcanic Ash(1)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-21.html">Quicksilver(1)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-22.html">Sulfur(1)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-23.html">Demonic Essence(1)</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-24.html">Midnight Oil(1)</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-19.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-19.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
One Blood Root has been put into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-26.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-20.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-20.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
One Volcanic Ash has been put into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-26.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-21.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-21.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
One Quicksilver has been put into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-26.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-22.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-22.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
One unit of Sulfur has been placed into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-26.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-23.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-23.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
One Demonic Essence has been put into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-26.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-24.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-24.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
One Midnight Oil has been put into the urn.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-26.html">Next step</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-25.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-25.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
You don't have enough ingredients.<br>
|
||||
The urn has gone still and dark. The process has failed!
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-26.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-26.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Select temperature:<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-27.html">1 degree - Salamander</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-28a.html">2 degrees - Ifrit</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-29a.html">3 degrees - Phoenix</a>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-26a.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-26a.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Mixing Urn:<br>
|
||||
Select temperature:<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-27.html">1 degree - Salamander</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-27.html">2 degrees - Ifrit</a><br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-27.html">3 degrees - Phoenix</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-27.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-27.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
The urn is glowing red-hot.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents mixitems">Mix the ingredients.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-28a.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-28a.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
The urn is glowing red-hot.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents mixitems">Mix the ingredients.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-29a.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-29a.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
The urn is glowing red-hot.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents mixitems">Mix the ingredients.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-30.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-30.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! The Dracoplasm has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-31.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-31.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Magma Dust has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-32.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-32.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Moon Dust has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-33.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-33.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Necroplasm has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-34.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-34.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Demonplasm has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-35.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-35.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Inferno Dust has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-36.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-36.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Draconic Essence has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-37.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-37.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Fire Essence has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-38.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-38.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Lunargent has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-39.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-39.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Midnight Oil has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-40.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-40.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Demonic Essence has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-41.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-41.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Abyss Oil has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-42.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-42.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Hellfire Oil has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-43.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-43.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Nightmare Oil has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-44.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-44.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
The urn has gone still and dark. Mixing has failed!<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-45.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-45.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
The ingredient melted during mixing. The process failed!<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Mix a new reagent.</a>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-46.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/31149-46.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Alchemical Mixing Urn:<br>
|
||||
Mixing successful! Pure Silver has been created.<br>
|
||||
<a action="bypass -h Quest Q00373_SupplierOfReagents 31149-02.html">Alchemical Mixing Urn</a>
|
||||
</body></html>
|
478
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/Q00373_SupplierOfReagents.java
vendored
Normal file
478
trunk/dist/game/data/scripts/quests/Q00373_SupplierOfReagents/Q00373_SupplierOfReagents.java
vendored
Normal file
@ -0,0 +1,478 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2015 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 quests.Q00373_SupplierOfReagents;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import com.l2jserver.gameserver.enums.QuestSound;
|
||||
import com.l2jserver.gameserver.model.actor.L2Npc;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jserver.gameserver.model.quest.Quest;
|
||||
import com.l2jserver.gameserver.model.quest.QuestState;
|
||||
|
||||
/**
|
||||
* Supplier of Reagents (373)
|
||||
* @author Joxit
|
||||
*/
|
||||
public final class Q00373_SupplierOfReagents extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int WESLEY = 30166;
|
||||
private static final int ALCHEMIST_MIXING_URN = 31149;
|
||||
// Mobs
|
||||
private static final int HALLATE_MAID = 20822;
|
||||
private static final int HALLATE_GUARDIAN = 21061;
|
||||
private static final int HAMES_ORC_SHAMAN = 21115;
|
||||
private static final int LAVA_WYRM = 21111;
|
||||
private static final int CRENDION = 20813;
|
||||
private static final int PLATINUM_TRIBE_SHAMAN = 20828;
|
||||
private static final int PLATINUM_GUARDIAN_SHAMAN = 21066;
|
||||
// Items
|
||||
private static final int REAGENT_POUNCH1 = 6007;
|
||||
private static final int REAGENT_POUNCH2 = 6008;
|
||||
private static final int REAGENT_POUNCH3 = 6009;
|
||||
private static final int REAGENT_BOX = 6010;
|
||||
private static final int WYRM_BLOOD = 6011;
|
||||
private static final int LAVA_STONE = 6012;
|
||||
private static final int MOONSTONE_SHARD = 6013;
|
||||
private static final int ROTTEN_BONE = 6014;
|
||||
private static final int DEMONS_BLOOD = 6015;
|
||||
private static final int INFERNIUM_ORE = 6016;
|
||||
private static final int BLOOD_ROOT = 6017;
|
||||
private static final int VOLCANIC_ASH = 6018;
|
||||
private static final int QUICKSILVER = 6019;
|
||||
private static final int SULFUR = 6020;
|
||||
private static final int DRACOPLASM = 6021;
|
||||
private static final int MAGMA_DUST = 6022;
|
||||
private static final int MOON_DUST = 6023;
|
||||
private static final int NECROPLASM = 6024;
|
||||
private static final int DEMONPLASM = 6025;
|
||||
private static final int INFERNO_DUST = 6026;
|
||||
private static final int DRACONIC_ESSENCE = 6027;
|
||||
private static final int FIRE_ESSENCE = 6028;
|
||||
private static final int LUNARGENT = 6029;
|
||||
private static final int MIDNIGHT_OIL = 6030;
|
||||
private static final int DEMONIC_ESSENCE = 6031;
|
||||
private static final int ABYSS_OIL = 6032;
|
||||
private static final int HELLFIRE_OIL = 6033;
|
||||
private static final int NIGHTMARE_OIL = 6034;
|
||||
private static final int PURE_SILVER = 6320;
|
||||
private static final int MIXING_MANUAL = 6317;
|
||||
private static final int WESLEYS_MIXING_STONE = 5904;
|
||||
// Misc
|
||||
private static final int MIN_LVL = 57;
|
||||
private static final HashMap<String, Integer> HTML_TO_MEMO_STATE = new HashMap<>(20);
|
||||
private static final HashMap<Integer, ItemHolder> MEMO_STATE_TO_ITEM = new HashMap<>(20);
|
||||
private static final HashMap<Integer, Entry> MEMO_STATE_TO_REWARD = new HashMap<>(15);
|
||||
|
||||
static
|
||||
{
|
||||
// List of ingredients to mix
|
||||
HTML_TO_MEMO_STATE.put("31149-03.html", 11);
|
||||
HTML_TO_MEMO_STATE.put("31149-04.html", 12);
|
||||
HTML_TO_MEMO_STATE.put("31149-05.html", 13);
|
||||
HTML_TO_MEMO_STATE.put("31149-06.html", 14);
|
||||
HTML_TO_MEMO_STATE.put("31149-07.html", 15);
|
||||
HTML_TO_MEMO_STATE.put("31149-08.html", 16);
|
||||
HTML_TO_MEMO_STATE.put("31149-09.html", 17);
|
||||
HTML_TO_MEMO_STATE.put("31149-10.html", 18);
|
||||
HTML_TO_MEMO_STATE.put("31149-11.html", 19);
|
||||
HTML_TO_MEMO_STATE.put("31149-12.html", 20);
|
||||
HTML_TO_MEMO_STATE.put("31149-13.html", 21);
|
||||
HTML_TO_MEMO_STATE.put("31149-14.html", 22);
|
||||
HTML_TO_MEMO_STATE.put("31149-15.html", 23);
|
||||
HTML_TO_MEMO_STATE.put("31149-16.html", 24);
|
||||
MEMO_STATE_TO_ITEM.put(11, new ItemHolder(WYRM_BLOOD, 10));
|
||||
MEMO_STATE_TO_ITEM.put(12, new ItemHolder(LAVA_STONE, 10));
|
||||
MEMO_STATE_TO_ITEM.put(13, new ItemHolder(MOONSTONE_SHARD, 10));
|
||||
MEMO_STATE_TO_ITEM.put(14, new ItemHolder(ROTTEN_BONE, 10));
|
||||
MEMO_STATE_TO_ITEM.put(15, new ItemHolder(DEMONS_BLOOD, 10));
|
||||
MEMO_STATE_TO_ITEM.put(16, new ItemHolder(INFERNIUM_ORE, 10));
|
||||
MEMO_STATE_TO_ITEM.put(17, new ItemHolder(DRACOPLASM, 10));
|
||||
MEMO_STATE_TO_ITEM.put(18, new ItemHolder(MAGMA_DUST, 10));
|
||||
MEMO_STATE_TO_ITEM.put(19, new ItemHolder(MOON_DUST, 10));
|
||||
MEMO_STATE_TO_ITEM.put(20, new ItemHolder(NECROPLASM, 10));
|
||||
MEMO_STATE_TO_ITEM.put(21, new ItemHolder(DEMONPLASM, 10));
|
||||
MEMO_STATE_TO_ITEM.put(22, new ItemHolder(INFERNO_DUST, 10));
|
||||
MEMO_STATE_TO_ITEM.put(23, new ItemHolder(FIRE_ESSENCE, 1));
|
||||
MEMO_STATE_TO_ITEM.put(24, new ItemHolder(LUNARGENT, 1));
|
||||
|
||||
// List of catalysts to mix
|
||||
HTML_TO_MEMO_STATE.put("31149-19.html", 1100);
|
||||
HTML_TO_MEMO_STATE.put("31149-20.html", 1200);
|
||||
HTML_TO_MEMO_STATE.put("31149-21.html", 1300);
|
||||
HTML_TO_MEMO_STATE.put("31149-22.html", 1400);
|
||||
HTML_TO_MEMO_STATE.put("31149-23.html", 1500);
|
||||
HTML_TO_MEMO_STATE.put("31149-24.html", 1600);
|
||||
MEMO_STATE_TO_ITEM.put(1100, new ItemHolder(BLOOD_ROOT, 1));
|
||||
MEMO_STATE_TO_ITEM.put(1200, new ItemHolder(VOLCANIC_ASH, 1));
|
||||
MEMO_STATE_TO_ITEM.put(1300, new ItemHolder(QUICKSILVER, 1));
|
||||
MEMO_STATE_TO_ITEM.put(1400, new ItemHolder(SULFUR, 1));
|
||||
MEMO_STATE_TO_ITEM.put(1500, new ItemHolder(DEMONIC_ESSENCE, 1));
|
||||
MEMO_STATE_TO_ITEM.put(1600, new ItemHolder(MIDNIGHT_OIL, 1));
|
||||
|
||||
// The reward is the sum of ingredient and catalyst
|
||||
MEMO_STATE_TO_REWARD.put(1111, new Entry(DRACOPLASM, "31149-30.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1212, new Entry(MAGMA_DUST, "31149-31.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1213, new Entry(MOON_DUST, "31149-32.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1114, new Entry(NECROPLASM, "31149-33.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1115, new Entry(DEMONPLASM, "31149-34.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1216, new Entry(INFERNO_DUST, "31149-35.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1317, new Entry(DRACONIC_ESSENCE, "31149-36.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1418, new Entry(FIRE_ESSENCE, "31149-37.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1319, new Entry(LUNARGENT, "31149-38.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1320, new Entry(MIDNIGHT_OIL, "31149-39.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1421, new Entry(DEMONIC_ESSENCE, "31149-40.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1422, new Entry(ABYSS_OIL, "31149-41.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1523, new Entry(HELLFIRE_OIL, "31149-42.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1624, new Entry(NIGHTMARE_OIL, "31149-43.html"));
|
||||
MEMO_STATE_TO_REWARD.put(1324, new Entry(PURE_SILVER, "31149-46.html"));
|
||||
}
|
||||
|
||||
public Q00373_SupplierOfReagents()
|
||||
{
|
||||
super(373, Q00373_SupplierOfReagents.class.getSimpleName(), "Supplier of Reagents");
|
||||
addStartNpc(WESLEY);
|
||||
addKillId(HALLATE_GUARDIAN, HALLATE_MAID, HAMES_ORC_SHAMAN, LAVA_WYRM, CRENDION, PLATINUM_GUARDIAN_SHAMAN, PLATINUM_TRIBE_SHAMAN);
|
||||
addTalkId(WESLEY, ALCHEMIST_MIXING_URN);
|
||||
registerQuestItems(WESLEYS_MIXING_STONE, MIXING_MANUAL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
String htmltext = null;
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
switch (event)
|
||||
{
|
||||
case "30166-03.htm":
|
||||
case "30166-06.html":
|
||||
case "30166-04a.html":
|
||||
case "30166-04b.html":
|
||||
case "30166-04c.html":
|
||||
case "30166-04d.html":
|
||||
case "31149-18.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30166-04.html":
|
||||
{
|
||||
if ((player.getLevel() >= MIN_LVL) && qs.isCreated())
|
||||
{
|
||||
giveItems(player, WESLEYS_MIXING_STONE, 1);
|
||||
giveItems(player, MIXING_MANUAL, 1);
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30166-07.html":
|
||||
{
|
||||
qs.exitQuest(true, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31149-02.html":
|
||||
{
|
||||
qs.setMemoState(0);
|
||||
qs.setMemoStateEx(1, 0);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31149-03.html":
|
||||
case "31149-04.html":
|
||||
case "31149-05.html":
|
||||
case "31149-06.html":
|
||||
case "31149-07.html":
|
||||
case "31149-08.html":
|
||||
case "31149-09.html":
|
||||
case "31149-10.html":
|
||||
case "31149-11.html":
|
||||
case "31149-12.html":
|
||||
case "31149-13.html":
|
||||
case "31149-14.html":
|
||||
case "31149-15.html":
|
||||
case "31149-16.html":
|
||||
case "31149-19.html":
|
||||
case "31149-20.html":
|
||||
case "31149-21.html":
|
||||
case "31149-22.html":
|
||||
case "31149-23.html":
|
||||
case "31149-24.html":
|
||||
{
|
||||
final int memoState = HTML_TO_MEMO_STATE.get(event);
|
||||
if (hasItem(player, MEMO_STATE_TO_ITEM.get(memoState)))
|
||||
{
|
||||
// If the player has the chosen item (ingredient or catalyst), we save it (for the catalyst or the reward)
|
||||
qs.setMemoState(qs.getMemoState() + memoState);
|
||||
htmltext = event;
|
||||
playSound(player, QuestSound.SKILLSOUND_LIQUID_MIX);
|
||||
}
|
||||
else
|
||||
{
|
||||
// If the player has not the chosen catalyst, we take the ingredient previously saved (if not null)
|
||||
takeItem(player, MEMO_STATE_TO_ITEM.get(qs.getMemoState()));
|
||||
if (event.equals("31149-19.html"))
|
||||
{
|
||||
htmltext = "31149-25.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31149-17.html";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31149-26.html":
|
||||
{
|
||||
if (qs.isMemoState(1324))
|
||||
{
|
||||
htmltext = "31149-26a.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31149-27.html":
|
||||
{
|
||||
qs.setMemoStateEx(1, 1); // Temperature Salamander
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31149-28a.html":
|
||||
{
|
||||
if (getRandom(100) < 33)
|
||||
{
|
||||
qs.setMemoStateEx(1, 3); // Temperature Ifrit
|
||||
}
|
||||
else
|
||||
{
|
||||
qs.setMemoStateEx(1, 0);
|
||||
}
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31149-29a.html":
|
||||
{
|
||||
if (getRandom(100) < 20)
|
||||
{
|
||||
qs.setMemoStateEx(1, 5); // Temperature Phoenix
|
||||
}
|
||||
else
|
||||
{
|
||||
qs.setMemoStateEx(1, 0);
|
||||
}
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "mixitems":
|
||||
{
|
||||
final int memoState = qs.getMemoState();
|
||||
final ItemHolder item1 = MEMO_STATE_TO_ITEM.get(memoState % 100);
|
||||
final ItemHolder item2 = MEMO_STATE_TO_ITEM.get((memoState / 100) * 100);
|
||||
final Entry reward = MEMO_STATE_TO_REWARD.get(memoState);
|
||||
if ((reward == null) || qs.isMemoStateEx(1, 0))
|
||||
{
|
||||
takeItem(player, item1);
|
||||
takeItem(player, item2);
|
||||
htmltext = (reward == null) ? "31149-44.html" : "31149-45.html";
|
||||
playSound(player, QuestSound.SKILLSOUND_LIQUID_FAIL);
|
||||
}
|
||||
else if ((memoState != 1324) || ((memoState == 1324) && !hasQuestItems(player, reward.getItem())))
|
||||
{
|
||||
if ((item1 != null) && (item2 != null) && hasItem(player, item1) && hasItem(player, item2))
|
||||
{
|
||||
takeItem(player, item1);
|
||||
takeItem(player, item2);
|
||||
giveItems(player, reward.getItem(), (memoState == 1324) ? 1 : qs.getMemoStateEx(1));
|
||||
qs.setMemoState(0);
|
||||
qs.setMemoStateEx(1, 0);
|
||||
htmltext = reward.getHtml();
|
||||
playSound(player, QuestSound.SKILLSOUND_LIQUID_SUCCESS);
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31149-44.html";
|
||||
playSound(player, QuestSound.SKILLSOUND_LIQUID_FAIL);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31149-44.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
|
||||
if (qs != null)
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case HALLATE_GUARDIAN:
|
||||
{
|
||||
final int chance = getRandom(1000);
|
||||
if (chance < 766)
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, DEMONS_BLOOD, 3, 0, 1, true);
|
||||
}
|
||||
else if (chance < 876)
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, MOONSTONE_SHARD, 1, 0, 1, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HALLATE_MAID:
|
||||
{
|
||||
final int chance = getRandom(100);
|
||||
if (chance < 45)
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, REAGENT_POUNCH1, 1, 0, 1, true);
|
||||
}
|
||||
else if (chance < 65)
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, VOLCANIC_ASH, 1, 0, 1, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HAMES_ORC_SHAMAN:
|
||||
{
|
||||
if (getRandom(1000) < 616)
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, REAGENT_POUNCH3, 1, 0, 1, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LAVA_WYRM:
|
||||
{
|
||||
final int chance = getRandom(1000);
|
||||
if (chance < 666)
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, WYRM_BLOOD, 1, 0, 1, true);
|
||||
}
|
||||
else if (chance < 989)
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, LAVA_STONE, 1, 0, 1, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CRENDION:
|
||||
{
|
||||
if (getRandom(1000) < 618)
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, ROTTEN_BONE, 1, 0, 1, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, QUICKSILVER, 1, 0, 1, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PLATINUM_GUARDIAN_SHAMAN:
|
||||
{
|
||||
if (getRandom(1000) < 444)
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, REAGENT_BOX, 1, 0, 1, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PLATINUM_TRIBE_SHAMAN:
|
||||
{
|
||||
if (getRandom(1000) < 658)
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, REAGENT_POUNCH2, 1, 0, 1, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, QUICKSILVER, 2, 0, 1, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
final QuestState qs = getQuestState(talker, true);
|
||||
String htmltext = getNoQuestMsg(talker);
|
||||
|
||||
if (qs.isCreated())
|
||||
{
|
||||
if (talker.getLevel() < MIN_LVL)
|
||||
{
|
||||
htmltext = "30166-01.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30166-02.htm";
|
||||
}
|
||||
}
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
if (npc.getId() == WESLEY)
|
||||
{
|
||||
htmltext = "30166-05.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31149-01.html";
|
||||
}
|
||||
}
|
||||
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
private static final class Entry
|
||||
{
|
||||
private final int item;
|
||||
private final String html;
|
||||
|
||||
public Entry(int item, String html)
|
||||
{
|
||||
this.item = item;
|
||||
this.html = html;
|
||||
}
|
||||
|
||||
public int getItem()
|
||||
{
|
||||
return item;
|
||||
}
|
||||
|
||||
public String getHtml()
|
||||
{
|
||||
return html;
|
||||
}
|
||||
}
|
||||
}
|
@ -103,6 +103,7 @@ import quests.Q00350_EnhanceYourWeapon.Q00350_EnhanceYourWeapon;
|
||||
import quests.Q00357_WarehouseKeepersAmbition.Q00357_WarehouseKeepersAmbition;
|
||||
import quests.Q00359_ForASleeplessDeadman.Q00359_ForASleeplessDeadman;
|
||||
import quests.Q00371_ShrieksOfGhosts.Q00371_ShrieksOfGhosts;
|
||||
import quests.Q00373_SupplierOfReagents.Q00373_SupplierOfReagents;
|
||||
import quests.Q00376_ExplorationOfTheGiantsCavePart1.Q00376_ExplorationOfTheGiantsCavePart1;
|
||||
import quests.Q00377_ExplorationOfTheGiantsCavePart2.Q00377_ExplorationOfTheGiantsCavePart2;
|
||||
import quests.Q00381_LetsBecomeARoyalMember.Q00381_LetsBecomeARoyalMember;
|
||||
@ -311,6 +312,7 @@ public class QuestMasterHandler
|
||||
Q00357_WarehouseKeepersAmbition.class,
|
||||
Q00359_ForASleeplessDeadman.class,
|
||||
Q00371_ShrieksOfGhosts.class,
|
||||
Q00373_SupplierOfReagents.class,
|
||||
Q00376_ExplorationOfTheGiantsCavePart1.class,
|
||||
Q00377_ExplorationOfTheGiantsCavePart2.class,
|
||||
Q00381_LetsBecomeARoyalMember.class,
|
||||
|
@ -4,7 +4,7 @@
|
||||
<Male>
|
||||
<common>
|
||||
<base range="20" attackSpeed="300" attackType="SWORD" critRate="5" mAtk="5" pAtk="5" randomDamage="10" />
|
||||
<collision radius="10" height="10" />
|
||||
<collision radius="11" height="24.6" />
|
||||
<moving walk="80" run="115" waterWalk="50" waterRun="50" flyWalk="0" flyRun="0" unknownWalk="0" unknownRun="0" />
|
||||
</common>
|
||||
<actions>1 3 4 5 6 7 8 9 11 15 16 17 18 19 21 22 23 32 36 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 63 64 65 70 1000 1001 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098</actions>
|
||||
@ -15,7 +15,7 @@
|
||||
<Female>
|
||||
<common>
|
||||
<base range="20" attackSpeed="300" attackType="SWORD" critRate="5" mAtk="5" pAtk="5" randomDamage="10" />
|
||||
<collision radius="10" height="10" />
|
||||
<collision radius="11" height="24.6" />
|
||||
<moving walk="80" run="115" waterWalk="50" waterRun="50" flyWalk="0" flyRun="0" unknownWalk="0" unknownRun="0" />
|
||||
</common>
|
||||
<actions>1 3 4 5 6 7 8 9 11 15 16 17 18 19 21 22 23 32 36 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 63 64 65 70 1000 1001 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098</actions>
|
||||
|
@ -18,8 +18,8 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.instancemanager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.entity.Duel;
|
||||
@ -28,12 +28,11 @@ import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
|
||||
public final class DuelManager
|
||||
{
|
||||
private final List<Duel> _duels;
|
||||
private final Map<Integer, Duel> _duels = new ConcurrentHashMap<>();
|
||||
private int _currentDuelId = 0x90;
|
||||
|
||||
protected DuelManager()
|
||||
{
|
||||
_duels = new ArrayList<>();
|
||||
}
|
||||
|
||||
private int getNextDuelId()
|
||||
@ -48,14 +47,7 @@ public final class DuelManager
|
||||
|
||||
public Duel getDuel(int duelId)
|
||||
{
|
||||
for (Duel duel : _duels)
|
||||
{
|
||||
if (duel.getId() == duelId)
|
||||
{
|
||||
return duel;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
return _duels.get(duelId);
|
||||
}
|
||||
|
||||
public void addDuel(L2PcInstance playerA, L2PcInstance playerB, int partyDuel)
|
||||
@ -112,9 +104,8 @@ public final class DuelManager
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final Duel duel = new Duel(playerA, playerB, partyDuel, getNextDuelId());
|
||||
_duels.add(duel);
|
||||
final int duelId = getNextDuelId();
|
||||
_duels.put(duelId, new Duel(playerA, playerB, partyDuel, duelId));
|
||||
}
|
||||
|
||||
public void removeDuel(Duel duel)
|
||||
|
@ -7097,6 +7097,9 @@ public final class L2PcInstance extends L2Playable
|
||||
player.setPledgeType(rset.getInt("subpledge"));
|
||||
// player.setApprentice(rset.getInt("apprentice"));
|
||||
|
||||
// Set Hero status if it applies
|
||||
player.setHero(Hero.getInstance().isHero(objectId));
|
||||
|
||||
if (clanId > 0)
|
||||
{
|
||||
player.setClan(ClanTable.getInstance().getClan(clanId));
|
||||
@ -7230,12 +7233,6 @@ public final class L2PcInstance extends L2Playable
|
||||
return null;
|
||||
}
|
||||
|
||||
// Set Hero status if it applies
|
||||
if (Hero.getInstance().isHero(objectId))
|
||||
{
|
||||
player.setHero(true);
|
||||
}
|
||||
|
||||
// Retrieve from the database all items of this L2PcInstance and add them to _inventory
|
||||
player.getInventory().restore();
|
||||
player.getFreight().restore();
|
||||
|
@ -21,6 +21,7 @@ package com.l2jserver.gameserver.model.entity;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -54,6 +55,8 @@ public class Duel
|
||||
public static final int DUELSTATE_WINNER = 3;
|
||||
public static final int DUELSTATE_INTERRUPTED = 4;
|
||||
|
||||
private static final PlaySound B04_S01 = new PlaySound(1, "B04_S01", 0, 0, 0, 0, 0);
|
||||
|
||||
private final int _duelId;
|
||||
private L2PcInstance _playerA;
|
||||
private L2PcInstance _playerB;
|
||||
@ -63,7 +66,7 @@ public class Duel
|
||||
private int _countdown = 4;
|
||||
private boolean _finished = false;
|
||||
|
||||
private List<PlayerCondition> _playerConditions;
|
||||
private final List<PlayerCondition> _playerConditions = new CopyOnWriteArrayList<>();
|
||||
|
||||
public Duel(L2PcInstance playerA, L2PcInstance playerB, int partyDuel, int duelId)
|
||||
{
|
||||
@ -82,15 +85,13 @@ public class Duel
|
||||
_duelEndTime.add(Calendar.SECOND, 120);
|
||||
}
|
||||
|
||||
_playerConditions = new ArrayList<>();
|
||||
|
||||
setFinished(false);
|
||||
|
||||
if (_partyDuel)
|
||||
{
|
||||
// increase countdown so that start task can teleport players
|
||||
_countdown++;
|
||||
// inform players that they will be portet shortly
|
||||
// inform players that they will be ported shortly
|
||||
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.IN_A_MOMENT_YOU_WILL_BE_TRANSPORTED_TO_THE_SITE_WHERE_THE_DUEL_WILL_TAKE_PLACE);
|
||||
broadcastToTeam1(sm);
|
||||
broadcastToTeam2(sm);
|
||||
@ -358,9 +359,7 @@ public class Duel
|
||||
|
||||
if ((_playerA == null) || (_playerB == null) || _playerA.isInDuel() || _playerB.isInDuel())
|
||||
{
|
||||
// clean up
|
||||
_playerConditions.clear();
|
||||
_playerConditions = null;
|
||||
DuelManager.getInstance().removeDuel(this);
|
||||
return;
|
||||
}
|
||||
@ -420,9 +419,8 @@ public class Duel
|
||||
}
|
||||
|
||||
// play sound
|
||||
PlaySound ps = new PlaySound(1, "B04_S01", 0, 0, 0, 0, 0);
|
||||
broadcastToTeam1(ps);
|
||||
broadcastToTeam2(ps);
|
||||
broadcastToTeam1(B04_S01);
|
||||
broadcastToTeam2(B04_S01);
|
||||
|
||||
// start duelling task
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleDuelTask(this), 1000);
|
||||
@ -435,13 +433,13 @@ public class Duel
|
||||
{
|
||||
if (_partyDuel)
|
||||
{
|
||||
for (L2PcInstance temp : _playerA.getParty().getMembers())
|
||||
for (L2PcInstance player : _playerA.getParty().getMembers())
|
||||
{
|
||||
_playerConditions.add(new PlayerCondition(temp, _partyDuel));
|
||||
_playerConditions.add(new PlayerCondition(player, _partyDuel));
|
||||
}
|
||||
for (L2PcInstance temp : _playerB.getParty().getMembers())
|
||||
for (L2PcInstance player : _playerB.getParty().getMembers())
|
||||
{
|
||||
_playerConditions.add(new PlayerCondition(temp, _partyDuel));
|
||||
_playerConditions.add(new PlayerCondition(player, _partyDuel));
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -490,10 +488,7 @@ public class Duel
|
||||
}
|
||||
|
||||
// restore player conditions
|
||||
for (PlayerCondition cond : _playerConditions)
|
||||
{
|
||||
cond.restoreCondition();
|
||||
}
|
||||
_playerConditions.forEach(c -> c.restoreCondition());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -735,7 +730,6 @@ public class Duel
|
||||
{
|
||||
// clean up
|
||||
_playerConditions.clear();
|
||||
_playerConditions = null;
|
||||
DuelManager.getInstance().removeDuel(this);
|
||||
return;
|
||||
}
|
||||
@ -780,7 +774,7 @@ public class Duel
|
||||
break;
|
||||
case Canceled:
|
||||
stopFighting();
|
||||
// dont restore hp, mp, cp
|
||||
// Don't restore hp, mp, cp
|
||||
restorePlayerConditions(true);
|
||||
// TODO: is there no other message for a canceled duel?
|
||||
// send SystemMessage
|
||||
@ -817,7 +811,6 @@ public class Duel
|
||||
|
||||
// clean up
|
||||
_playerConditions.clear();
|
||||
_playerConditions = null;
|
||||
DuelManager.getInstance().removeDuel(this);
|
||||
}
|
||||
|
||||
@ -898,7 +891,7 @@ public class Duel
|
||||
*/
|
||||
public void doSurrender(L2PcInstance player)
|
||||
{
|
||||
// already recived a surrender request
|
||||
// already received a surrender request
|
||||
if (_surrenderRequest != 0)
|
||||
{
|
||||
return;
|
||||
@ -1012,14 +1005,14 @@ public class Duel
|
||||
*/
|
||||
public void onRemoveFromParty(L2PcInstance player)
|
||||
{
|
||||
// if it isnt a party duel ignore this
|
||||
// if it isn't a party duel ignore this
|
||||
if (!_partyDuel)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// this player is leaving his party during party duel
|
||||
// if hes either playerA or playerB cancel the duel and port the players back
|
||||
// if he's either playerA or playerB cancel the duel and port the players back
|
||||
if ((player == _playerA) || (player == _playerB))
|
||||
{
|
||||
for (PlayerCondition cond : _playerConditions)
|
||||
@ -1034,14 +1027,11 @@ public class Duel
|
||||
else
|
||||
// teleport the player back & delete his PlayerCondition record
|
||||
{
|
||||
for (PlayerCondition cond : _playerConditions)
|
||||
final PlayerCondition cond = _playerConditions.stream().filter(c -> c.getPlayer() == player).findFirst().orElse(null);
|
||||
if (cond != null)
|
||||
{
|
||||
if (cond.getPlayer() == player)
|
||||
{
|
||||
cond.teleportBack();
|
||||
_playerConditions.remove(cond);
|
||||
break;
|
||||
}
|
||||
cond.teleportBack();
|
||||
_playerConditions.remove(cond);
|
||||
}
|
||||
player.setIsInDuel(0);
|
||||
}
|
||||
@ -1049,13 +1039,10 @@ public class Duel
|
||||
|
||||
public void onBuff(L2PcInstance player, Skill debuff)
|
||||
{
|
||||
for (PlayerCondition cond : _playerConditions)
|
||||
final PlayerCondition cond = _playerConditions.stream().filter(c -> c.getPlayer() == player).findFirst().orElse(null);
|
||||
if (cond != null)
|
||||
{
|
||||
if (cond.getPlayer() == player)
|
||||
{
|
||||
cond.registerDebuff(debuff);
|
||||
return;
|
||||
}
|
||||
cond.registerDebuff(debuff);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user