Separation of special craft.
Contributed by Norvox.
This commit is contained in:
parent
d43874492e
commit
b3806e7cf2
@ -224,6 +224,10 @@
|
|||||||
<ingredient id="57" count="100000" /> <!-- Adena -->
|
<ingredient id="57" count="100000" /> <!-- Adena -->
|
||||||
<production id="94269" accountDailyLimit="30" /> <!-- Scroll: Enchant Attack -->
|
<production id="94269" accountDailyLimit="30" /> <!-- Scroll: Enchant Attack -->
|
||||||
</product>
|
</product>
|
||||||
|
<product id="69" category="4">
|
||||||
|
<ingredient id="57" count="30000" />
|
||||||
|
<production id="91690" accountDailyLimit="100" />
|
||||||
|
</product>
|
||||||
<!--
|
<!--
|
||||||
<product id="68" category="4">
|
<product id="68" category="4">
|
||||||
<ingredient id="57" count="150000" /> Adena
|
<ingredient id="57" count="150000" /> Adena
|
||||||
@ -233,161 +237,5 @@
|
|||||||
<ingredient id="57" count="30000" /> Adena
|
<ingredient id="57" count="30000" /> Adena
|
||||||
<production id="91690" accountDailyLimit="100" /> Special HP Recovery Potion
|
<production id="91690" accountDailyLimit="100" /> Special HP Recovery Potion
|
||||||
</product>
|
</product>
|
||||||
<product id="1001" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Sirra's Blade (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94573" /> Package: +5 Sirra's Blade
|
|
||||||
</product>
|
|
||||||
<product id="1002" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Sword of Ipos (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94574" /> Package: +5 Sword of Ipos
|
|
||||||
</product>
|
|
||||||
<product id="1003" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Barakiel's Axe (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94575" /> Package: +5 Barakiel's Axe
|
|
||||||
</product>
|
|
||||||
<product id="1004" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Behemoth' Tuning Fork (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94576" /> Package: +5 Behemoth' Tuning Fork
|
|
||||||
</product>
|
|
||||||
<product id="1005" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Naga's Storm (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94577" /> Package: +5 Naga's Storm
|
|
||||||
</product>
|
|
||||||
<product id="1006" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Tiphon's Spear (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94578" /> Package: +5 Tiphon's Spear
|
|
||||||
</product>
|
|
||||||
<product id="1007" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Shyeed's Bow (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94579" /> Package: +5 Shyeed's Bow
|
|
||||||
</product>
|
|
||||||
<product id="1008" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Sobekk's Hurricane (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94580" /> Package: +5 Sobekk's Hurricane
|
|
||||||
</product>
|
|
||||||
<product id="1009" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Themis' Tongue (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94581" /> Package: +5 Themis' Tongue
|
|
||||||
</product>
|
|
||||||
<product id="1010" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Cabrio's Hand (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94582" /> Package: +5 Cabrio's Hand
|
|
||||||
</product>
|
|
||||||
<product id="1011" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Daimon Crystal (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94583" /> Package: +5 Daimon Crystal
|
|
||||||
</product>
|
|
||||||
<product id="1012" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Tallum Blade*Damascus (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94584" /> Package: +5 Tallum Blade*Damascus
|
|
||||||
</product>
|
|
||||||
<product id="1013" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Éclair Bijou (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94585" /> Package: +5 Éclair Bijou
|
|
||||||
</product>
|
|
||||||
<product id="1014" category="1"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Durendal (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="41" /> Giran Seal
|
|
||||||
<production id="94586" /> Package: +5 Durendal
|
|
||||||
</product>
|
|
||||||
<product id="1016" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Armor of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94587" /> Package: +5 Armor of Nightmare (Heavy) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1017" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Helm of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94588" /> Package: +5 Helm of Nightmare (Heavy) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1018" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Gauntlets of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94589" /> Package: +5 Gauntlets of Nightmare (Heavy) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1019" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Boots of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94590" /> Package: +5 Boots of Nightmare (Heavy) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1020" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Plate Armor (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94591" /> Package: +5 Majestic Plate Armor (Heavy) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1021" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Circlet (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94592" /> Package: +5 Majestic Circlet (Heavy) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1022" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Gauntlets (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94593" /> Package: +5 Majestic Gauntlets (Heavy) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1023" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Boots (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94594" /> Package: +5 Majestic Boots (Heavy) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1024" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Leather Armor of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94595" /> Package: +5 Leather Armor of Nightmare (Light) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1025" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Helm of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94596" /> Package: +5 Helm of Nightmare (Light) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1026" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Gauntlets of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94597" /> Package: +5 Gauntlets of Nightmare (Light) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1027" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Boots of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94598" /> Package: +5 Boots of Nightmare (Light) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1028" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Leather Armor (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94599" /> Package: +5 Majestic Leather Armor (Light) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1029" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Circlet (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94600" /> Package: +5 Majestic Circlet (Light) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1030" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Gauntlets (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94601" /> Package: +5 Majestic Gauntlets (Light) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1031" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Boots (Light) Armor (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94602" /> Package: +5 Majestic Boots (Light) Armor
|
|
||||||
</product>
|
|
||||||
<product id="1032" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Robe of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94603" /> Package: +5 Robe of Nightmare (Robe)
|
|
||||||
</product>
|
|
||||||
<product id="1033" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Helm of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94604" /> Package: +5 Helm of Nightmare (Robe)
|
|
||||||
</product>
|
|
||||||
<product id="1034" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Gauntlets of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94605" /> Package: +5 Gauntlets of Nightmare (Robe)
|
|
||||||
</product>
|
|
||||||
<product id="1035" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Boots of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94606" /> Package: +5 Boots of Nightmare (Robe)
|
|
||||||
</product>
|
|
||||||
<product id="1036" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Robe (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94607" /> Package: +5 Majestic Robe (Robe)
|
|
||||||
</product>
|
|
||||||
<product id="1037" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Circlet (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94608" /> Package: +5 Majestic Circlet (Robe)
|
|
||||||
</product>
|
|
||||||
<product id="1038" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Gauntlets (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94609" /> Package: +5 Majestic Gauntlets (Robe)
|
|
||||||
</product>
|
|
||||||
<product id="1039" category="2"> TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Boots (Robe) (+0) and 33% chance of giving 6 Giran Seals
|
|
||||||
<ingredient id="92314" count="31" /> Giran Seal
|
|
||||||
<production id="94610" /> Package: +5 Majestic Boots (Robe)
|
|
||||||
</product>
|
|
||||||
<product id="1040" category="3"> TODO: It has a 50% chance of giving the item, or 50% chance of giving 7 Elixir Powders
|
|
||||||
<ingredient id="1" count="10" /> Elixir Powder. TODO: I don't have the ID for this item.
|
|
||||||
<production id="94314" /> Elixir
|
|
||||||
</product>
|
|
||||||
-->
|
-->
|
||||||
</list>
|
</list>
|
155
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/LCoinShopSpecialCraft.xml
vendored
Normal file
155
L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/LCoinShopSpecialCraft.xml
vendored
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<list enabled="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/LCoinShop.xsd">
|
||||||
|
<product id="1001" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Sirra's Blade (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94573" /> <!-- Package: +5 Sirra's Blade -->
|
||||||
|
</product>
|
||||||
|
<product id="1002" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Sword of Ipos (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94574" /> <!-- Package: +5 Sword of Ipos -->
|
||||||
|
</product>
|
||||||
|
<product id="1003" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Barakiel's Axe (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94575" /> <!-- Package: +5 Barakiel's Axe -->
|
||||||
|
</product>
|
||||||
|
<product id="1004" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Behemoth' Tuning Fork (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94576" /> <!-- Package: +5 Behemoth' Tuning Fork -->
|
||||||
|
</product>
|
||||||
|
<product id="1005" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Naga's Storm (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94577" /> <!-- Package: +5 Naga's Storm -->
|
||||||
|
</product>
|
||||||
|
<product id="1006" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Tiphon's Spear (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94578" /> <!-- Package: +5 Tiphon's Spear -->
|
||||||
|
</product>
|
||||||
|
<product id="1007" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Shyeed's Bow (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94579" /> <!-- Package: +5 Shyeed's Bow -->
|
||||||
|
</product>
|
||||||
|
<product id="1008" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Sobekk's Hurricane (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94580" /> <!-- Package: +5 Sobekk's Hurricane -->
|
||||||
|
</product>
|
||||||
|
<product id="1009" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Themis' Tongue (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94581" /> <!-- Package: +5 Themis' Tongue -->
|
||||||
|
</product>
|
||||||
|
<product id="1010" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Cabrio's Hand (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94582" /> <!-- Package: +5 Cabrio's Hand -->
|
||||||
|
</product>
|
||||||
|
<product id="1011" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Daimon Crystal (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94583" /> <!-- Package: +5 Daimon Crystal -->
|
||||||
|
</product>
|
||||||
|
<product id="1012" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Tallum Blade*Damascus (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94584" /> <!-- Package: +5 Tallum Blade*Damascus -->
|
||||||
|
</product>
|
||||||
|
<product id="1013" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Eclair Bijou (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94585" /> <!-- Package: +5 Eclair Bijou -->
|
||||||
|
</product>
|
||||||
|
<product id="1014" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Durendal (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94586" /> <!-- Package: +5 Durendal -->
|
||||||
|
</product>
|
||||||
|
<product id="1016" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Armor of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94587" /> <!-- Package: +5 Armor of Nightmare (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1017" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Helm of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94588" /> <!-- Package: +5 Helm of Nightmare (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1018" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Gauntlets of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94589" /> <!-- Package: +5 Gauntlets of Nightmare (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1019" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Boots of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94590" /> <!-- Package: +5 Boots of Nightmare (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1020" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Plate Armor (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94591" /> <!-- Package: +5 Majestic Plate Armor (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1021" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Circlet (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94592" /> <!-- Package: +5 Majestic Circlet (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1022" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Gauntlets (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94593" /> <!-- Package: +5 Majestic Gauntlets (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1023" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Boots (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94594" /> <!-- Package: +5 Majestic Boots (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1024" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Leather Armor of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94595" /> <!-- Package: +5 Leather Armor of Nightmare (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1025" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Helm of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94596" /> <!-- Package: +5 Helm of Nightmare (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1026" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Gauntlets of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94597" /> <!-- Package: +5 Gauntlets of Nightmare (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1027" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Boots of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94598" /> <!-- Package: +5 Boots of Nightmare (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1028" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Leather Armor (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94599" /> <!-- Package: +5 Majestic Leather Armor (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1029" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Circlet (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94600" /> <!-- Package: +5 Majestic Circlet (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1030" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Gauntlets (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94601" /> <!-- Package: +5 Majestic Gauntlets (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1031" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Boots (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94602" /> <!-- Package: +5 Majestic Boots (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1032" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Robe of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94603" /> <!-- Package: +5 Robe of Nightmare (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1033" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Helm of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94604" /> <!-- Package: +5 Helm of Nightmare (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1034" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Gauntlets of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94605" /> <!-- Package: +5 Gauntlets of Nightmare (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1035" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Boots of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94606" /> <!-- Package: +5 Boots of Nightmare (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1036" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Robe (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94607" /> <!-- Package: +5 Majestic Robe (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1037" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Circlet (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94608" /> <!-- Package: +5 Majestic Circlet (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1038" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Gauntlets (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94609" /> <!-- Package: +5 Majestic Gauntlets (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1039" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Boots (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94610" /> <!-- Package: +5 Majestic Boots (Robe) -->
|
||||||
|
</product>
|
||||||
|
</list>
|
@ -0,0 +1,195 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package org.l2jmobius.gameserver.data.xml;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import org.w3c.dom.Document;
|
||||||
|
import org.w3c.dom.NamedNodeMap;
|
||||||
|
import org.w3c.dom.Node;
|
||||||
|
|
||||||
|
import org.l2jmobius.commons.util.IXmlReader;
|
||||||
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.LCoinShopProductHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author GustavoFonseca
|
||||||
|
*/
|
||||||
|
public class LCoinShopSpecialCraftData implements IXmlReader
|
||||||
|
{
|
||||||
|
private static final Logger LOGGER = Logger.getLogger(LCoinShopData.class.getName());
|
||||||
|
|
||||||
|
private final List<LCoinShopProductHolder> _products = new ArrayList<>();
|
||||||
|
|
||||||
|
protected LCoinShopSpecialCraftData()
|
||||||
|
{
|
||||||
|
load();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void load()
|
||||||
|
{
|
||||||
|
_products.clear();
|
||||||
|
parseDatapackFile("data/LCoinShopSpecialCraft.xml");
|
||||||
|
|
||||||
|
if (!_products.isEmpty())
|
||||||
|
{
|
||||||
|
LOGGER.info(getClass().getSimpleName() + ": Loaded " + _products.size() + " items.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOGGER.info(getClass().getSimpleName() + ": System is disabled.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parseDocument(Document doc, File f)
|
||||||
|
{
|
||||||
|
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
|
||||||
|
{
|
||||||
|
if ("list".equalsIgnoreCase(n.getNodeName()))
|
||||||
|
{
|
||||||
|
final NamedNodeMap at = n.getAttributes();
|
||||||
|
final Node attribute = at.getNamedItem("enabled");
|
||||||
|
if ((attribute != null) && Boolean.parseBoolean(attribute.getNodeValue()))
|
||||||
|
{
|
||||||
|
for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
|
||||||
|
{
|
||||||
|
if ("product".equalsIgnoreCase(d.getNodeName()))
|
||||||
|
{
|
||||||
|
NamedNodeMap attrs = d.getAttributes();
|
||||||
|
Node att;
|
||||||
|
final StatSet set = new StatSet();
|
||||||
|
for (int i = 0; i < attrs.getLength(); i++)
|
||||||
|
{
|
||||||
|
att = attrs.item(i);
|
||||||
|
set.set(att.getNodeName(), att.getNodeValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
final int id = parseInteger(attrs, "id");
|
||||||
|
final int category = parseInteger(attrs, "category");
|
||||||
|
final int minLevel = parseInteger(attrs, "minLevel", 1);
|
||||||
|
final int maxLevel = parseInteger(attrs, "maxLevel", 999);
|
||||||
|
final int[] ingredientIds = new int[3];
|
||||||
|
ingredientIds[0] = 0;
|
||||||
|
ingredientIds[1] = 0;
|
||||||
|
ingredientIds[2] = 0;
|
||||||
|
final long[] ingredientQuantities = new long[3];
|
||||||
|
ingredientQuantities[0] = 0;
|
||||||
|
ingredientQuantities[1] = 0;
|
||||||
|
ingredientQuantities[2] = 0;
|
||||||
|
int productionId = 0;
|
||||||
|
int accountDailyLimit = 0;
|
||||||
|
int accountBuyLimit = 0;
|
||||||
|
for (Node b = d.getFirstChild(); b != null; b = b.getNextSibling())
|
||||||
|
{
|
||||||
|
attrs = b.getAttributes();
|
||||||
|
|
||||||
|
if ("ingredient".equalsIgnoreCase(b.getNodeName()))
|
||||||
|
{
|
||||||
|
final int ingredientId = parseInteger(attrs, "id");
|
||||||
|
final long ingredientQuantity = parseLong(attrs, "count", 1L);
|
||||||
|
|
||||||
|
final Item item = ItemTable.getInstance().getTemplate(ingredientId);
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
LOGGER.severe(getClass().getSimpleName() + ": Item template null for itemId: " + productionId + " productId: " + id);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ingredientIds[0] == 0)
|
||||||
|
{
|
||||||
|
ingredientIds[0] = ingredientId;
|
||||||
|
}
|
||||||
|
else if (ingredientIds[1] == 0)
|
||||||
|
{
|
||||||
|
ingredientIds[1] = ingredientId;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ingredientIds[2] = ingredientId;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ingredientQuantities[0] == 0)
|
||||||
|
{
|
||||||
|
ingredientQuantities[0] = ingredientQuantity;
|
||||||
|
}
|
||||||
|
else if (ingredientQuantities[1] == 0)
|
||||||
|
{
|
||||||
|
ingredientQuantities[1] = ingredientQuantity;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ingredientQuantities[2] = ingredientQuantity;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ("production".equalsIgnoreCase(b.getNodeName()))
|
||||||
|
{
|
||||||
|
productionId = parseInteger(attrs, "id");
|
||||||
|
accountDailyLimit = parseInteger(attrs, "accountDailyLimit", 0);
|
||||||
|
accountBuyLimit = parseInteger(attrs, "accountBuyLimit", 0);
|
||||||
|
|
||||||
|
final Item item = ItemTable.getInstance().getTemplate(productionId);
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
LOGGER.severe(getClass().getSimpleName() + ": Item template null for itemId: " + productionId + " productId: " + id);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_products.add(new LCoinShopProductHolder(id, category, minLevel, maxLevel, ingredientIds, ingredientQuantities, productionId, accountDailyLimit, accountBuyLimit));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public LCoinShopProductHolder getProduct(int id)
|
||||||
|
{
|
||||||
|
for (LCoinShopProductHolder product : _products)
|
||||||
|
{
|
||||||
|
if (product.getId() == id)
|
||||||
|
{
|
||||||
|
return product;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Collection<LCoinShopProductHolder> getProducts()
|
||||||
|
{
|
||||||
|
return _products;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LCoinShopSpecialCraftData getInstance()
|
||||||
|
{
|
||||||
|
return SingletonHolder.INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class SingletonHolder
|
||||||
|
{
|
||||||
|
protected static final LCoinShopSpecialCraftData INSTANCE = new LCoinShopSpecialCraftData();
|
||||||
|
}
|
||||||
|
}
|
@ -35,15 +35,13 @@ import org.l2jmobius.gameserver.network.serverpackets.primeshop.ExBRBuyProduct.E
|
|||||||
*/
|
*/
|
||||||
public class RequestPurchaseLimitShopItemBuy implements IClientIncomingPacket
|
public class RequestPurchaseLimitShopItemBuy implements IClientIncomingPacket
|
||||||
{
|
{
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private int _category;
|
|
||||||
private int _productId;
|
private int _productId;
|
||||||
private int _amount;
|
private int _amount;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean read(GameClient client, PacketReader packet)
|
public boolean read(GameClient client, PacketReader packet)
|
||||||
{
|
{
|
||||||
_category = packet.readC();
|
packet.readC(); // category?
|
||||||
_productId = packet.readD();
|
_productId = packet.readD();
|
||||||
_amount = packet.readD();
|
_amount = packet.readD();
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,6 +21,7 @@ import java.util.Collection;
|
|||||||
import org.l2jmobius.commons.network.PacketWriter;
|
import org.l2jmobius.commons.network.PacketWriter;
|
||||||
import org.l2jmobius.commons.util.Chronos;
|
import org.l2jmobius.commons.util.Chronos;
|
||||||
import org.l2jmobius.gameserver.data.xml.LCoinShopData;
|
import org.l2jmobius.gameserver.data.xml.LCoinShopData;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.LCoinShopSpecialCraftData;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
import org.l2jmobius.gameserver.model.holders.LCoinShopProductHolder;
|
import org.l2jmobius.gameserver.model.holders.LCoinShopProductHolder;
|
||||||
import org.l2jmobius.gameserver.model.variables.AccountVariables;
|
import org.l2jmobius.gameserver.model.variables.AccountVariables;
|
||||||
@ -32,13 +33,15 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
|||||||
*/
|
*/
|
||||||
public class ExPurchaseLimitShopItemListNew implements IClientOutgoingPacket
|
public class ExPurchaseLimitShopItemListNew implements IClientOutgoingPacket
|
||||||
{
|
{
|
||||||
private final int _category;
|
private final int _shopType; // 3 = Lcoin Shop - 4 = Special Craft
|
||||||
private final PlayerInstance _player;
|
private final PlayerInstance _player;
|
||||||
|
private Collection<LCoinShopProductHolder> _products;
|
||||||
|
|
||||||
public ExPurchaseLimitShopItemListNew(int category, PlayerInstance player)
|
public ExPurchaseLimitShopItemListNew(int shopType, PlayerInstance player)
|
||||||
{
|
{
|
||||||
_category = category;
|
_shopType = shopType;
|
||||||
_player = player;
|
_player = player;
|
||||||
|
_products = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -46,12 +49,28 @@ public class ExPurchaseLimitShopItemListNew implements IClientOutgoingPacket
|
|||||||
{
|
{
|
||||||
OutgoingPackets.EX_PURCHASE_LIMIT_SHOP_ITEM_LIST_NEW.writeId(packet);
|
OutgoingPackets.EX_PURCHASE_LIMIT_SHOP_ITEM_LIST_NEW.writeId(packet);
|
||||||
|
|
||||||
final Collection<LCoinShopProductHolder> products = LCoinShopData.getInstance().getProducts();
|
switch (_shopType)
|
||||||
|
{
|
||||||
|
case 3: // Normal Lcoin Shop
|
||||||
|
{
|
||||||
|
_products = LCoinShopData.getInstance().getProducts();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 4: // Lcoin Special Craft
|
||||||
|
{
|
||||||
|
_products = LCoinShopSpecialCraftData.getInstance().getProducts();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
_products = LCoinShopData.getInstance().getProducts();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
packet.writeC(_category); // _category? Main shop?
|
packet.writeC(_shopType); //
|
||||||
packet.writeD(products.size());
|
packet.writeD(_products.size());
|
||||||
|
|
||||||
for (LCoinShopProductHolder product : products)
|
for (LCoinShopProductHolder product : _products)
|
||||||
{
|
{
|
||||||
packet.writeD(product.getId());
|
packet.writeD(product.getId());
|
||||||
packet.writeD(product.getProductionId());
|
packet.writeD(product.getProductionId());
|
||||||
|
155
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/LCoinShopSpecialCraft.xml
vendored
Normal file
155
L2J_Mobius_Essence_5.0_Sylph/dist/game/data/LCoinShopSpecialCraft.xml
vendored
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<list enabled="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/LCoinShop.xsd">
|
||||||
|
<product id="1001" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Sirra's Blade (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94573" /> <!-- Package: +5 Sirra's Blade -->
|
||||||
|
</product>
|
||||||
|
<product id="1002" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Sword of Ipos (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94574" /> <!-- Package: +5 Sword of Ipos -->
|
||||||
|
</product>
|
||||||
|
<product id="1003" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Barakiel's Axe (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94575" /> <!-- Package: +5 Barakiel's Axe -->
|
||||||
|
</product>
|
||||||
|
<product id="1004" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Behemoth' Tuning Fork (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94576" /> <!-- Package: +5 Behemoth' Tuning Fork -->
|
||||||
|
</product>
|
||||||
|
<product id="1005" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Naga's Storm (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94577" /> <!-- Package: +5 Naga's Storm -->
|
||||||
|
</product>
|
||||||
|
<product id="1006" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Tiphon's Spear (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94578" /> <!-- Package: +5 Tiphon's Spear -->
|
||||||
|
</product>
|
||||||
|
<product id="1007" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Shyeed's Bow (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94579" /> <!-- Package: +5 Shyeed's Bow -->
|
||||||
|
</product>
|
||||||
|
<product id="1008" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Sobekk's Hurricane (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94580" /> <!-- Package: +5 Sobekk's Hurricane -->
|
||||||
|
</product>
|
||||||
|
<product id="1009" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Themis' Tongue (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94581" /> <!-- Package: +5 Themis' Tongue -->
|
||||||
|
</product>
|
||||||
|
<product id="1010" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Cabrio's Hand (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94582" /> <!-- Package: +5 Cabrio's Hand -->
|
||||||
|
</product>
|
||||||
|
<product id="1011" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Daimon Crystal (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94583" /> <!-- Package: +5 Daimon Crystal -->
|
||||||
|
</product>
|
||||||
|
<product id="1012" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Tallum Blade*Damascus (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94584" /> <!-- Package: +5 Tallum Blade*Damascus -->
|
||||||
|
</product>
|
||||||
|
<product id="1013" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Eclair Bijou (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94585" /> <!-- Package: +5 Eclair Bijou -->
|
||||||
|
</product>
|
||||||
|
<product id="1014" category="1"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Durendal (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="41" /> <!-- Giran Seal -->
|
||||||
|
<production id="94586" /> <!-- Package: +5 Durendal -->
|
||||||
|
</product>
|
||||||
|
<product id="1016" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Armor of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94587" /> <!-- Package: +5 Armor of Nightmare (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1017" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Helm of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94588" /> <!-- Package: +5 Helm of Nightmare (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1018" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Gauntlets of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94589" /> <!-- Package: +5 Gauntlets of Nightmare (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1019" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Boots of Nightmare (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94590" /> <!-- Package: +5 Boots of Nightmare (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1020" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Plate Armor (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94591" /> <!-- Package: +5 Majestic Plate Armor (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1021" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Circlet (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94592" /> <!-- Package: +5 Majestic Circlet (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1022" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Gauntlets (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94593" /> <!-- Package: +5 Majestic Gauntlets (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1023" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Boots (Heavy) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94594" /> <!-- Package: +5 Majestic Boots (Heavy) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1024" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Leather Armor of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94595" /> <!-- Package: +5 Leather Armor of Nightmare (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1025" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Helm of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94596" /> <!-- Package: +5 Helm of Nightmare (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1026" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Gauntlets of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94597" /> <!-- Package: +5 Gauntlets of Nightmare (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1027" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Boots of Nightmare (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94598" /> <!-- Package: +5 Boots of Nightmare (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1028" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Leather Armor (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94599" /> <!-- Package: +5 Majestic Leather Armor (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1029" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Circlet (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94600" /> <!-- Package: +5 Majestic Circlet (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1030" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Gauntlets (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94601" /> <!-- Package: +5 Majestic Gauntlets (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1031" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Boots (Light) Armor (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94602" /> <!-- Package: +5 Majestic Boots (Light) Armor -->
|
||||||
|
</product>
|
||||||
|
<product id="1032" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Robe of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94603" /> <!-- Package: +5 Robe of Nightmare (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1033" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Helm of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94604" /> <!-- Package: +5 Helm of Nightmare (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1034" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Gauntlets of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94605" /> <!-- Package: +5 Gauntlets of Nightmare (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1035" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Boots of Nightmare (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94606" /> <!-- Package: +5 Boots of Nightmare (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1036" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Robe (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94607" /> <!-- Package: +5 Majestic Robe (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1037" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Circlet (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94608" /> <!-- Package: +5 Majestic Circlet (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1038" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Gauntlets (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94609" /> <!-- Package: +5 Majestic Gauntlets (Robe) -->
|
||||||
|
</product>
|
||||||
|
<product id="1039" category="2"> <!-- TODO: It has a 33% chance of giving the item, or 33% chance of giving a Package: Majestic Boots (Robe) (+0) and 33% chance of giving 6 Giran Seals -->
|
||||||
|
<ingredient id="92314" count="31" /> <!-- Giran Seal -->
|
||||||
|
<production id="94610" /> <!-- Package: +5 Majestic Boots (Robe) -->
|
||||||
|
</product>
|
||||||
|
</list>
|
@ -0,0 +1,195 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the L2J Mobius project.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package org.l2jmobius.gameserver.data.xml;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import org.w3c.dom.Document;
|
||||||
|
import org.w3c.dom.NamedNodeMap;
|
||||||
|
import org.w3c.dom.Node;
|
||||||
|
|
||||||
|
import org.l2jmobius.commons.util.IXmlReader;
|
||||||
|
import org.l2jmobius.gameserver.data.ItemTable;
|
||||||
|
import org.l2jmobius.gameserver.model.StatSet;
|
||||||
|
import org.l2jmobius.gameserver.model.holders.LCoinShopProductHolder;
|
||||||
|
import org.l2jmobius.gameserver.model.items.Item;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author GustavoFonseca
|
||||||
|
*/
|
||||||
|
public class LCoinShopSpecialCraftData implements IXmlReader
|
||||||
|
{
|
||||||
|
private static final Logger LOGGER = Logger.getLogger(LCoinShopData.class.getName());
|
||||||
|
|
||||||
|
private final List<LCoinShopProductHolder> _products = new ArrayList<>();
|
||||||
|
|
||||||
|
protected LCoinShopSpecialCraftData()
|
||||||
|
{
|
||||||
|
load();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void load()
|
||||||
|
{
|
||||||
|
_products.clear();
|
||||||
|
parseDatapackFile("data/LCoinShopSpecialCraft.xml");
|
||||||
|
|
||||||
|
if (!_products.isEmpty())
|
||||||
|
{
|
||||||
|
LOGGER.info(getClass().getSimpleName() + ": Loaded " + _products.size() + " items.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LOGGER.info(getClass().getSimpleName() + ": System is disabled.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void parseDocument(Document doc, File f)
|
||||||
|
{
|
||||||
|
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
|
||||||
|
{
|
||||||
|
if ("list".equalsIgnoreCase(n.getNodeName()))
|
||||||
|
{
|
||||||
|
final NamedNodeMap at = n.getAttributes();
|
||||||
|
final Node attribute = at.getNamedItem("enabled");
|
||||||
|
if ((attribute != null) && Boolean.parseBoolean(attribute.getNodeValue()))
|
||||||
|
{
|
||||||
|
for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
|
||||||
|
{
|
||||||
|
if ("product".equalsIgnoreCase(d.getNodeName()))
|
||||||
|
{
|
||||||
|
NamedNodeMap attrs = d.getAttributes();
|
||||||
|
Node att;
|
||||||
|
final StatSet set = new StatSet();
|
||||||
|
for (int i = 0; i < attrs.getLength(); i++)
|
||||||
|
{
|
||||||
|
att = attrs.item(i);
|
||||||
|
set.set(att.getNodeName(), att.getNodeValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
final int id = parseInteger(attrs, "id");
|
||||||
|
final int category = parseInteger(attrs, "category");
|
||||||
|
final int minLevel = parseInteger(attrs, "minLevel", 1);
|
||||||
|
final int maxLevel = parseInteger(attrs, "maxLevel", 999);
|
||||||
|
final int[] ingredientIds = new int[3];
|
||||||
|
ingredientIds[0] = 0;
|
||||||
|
ingredientIds[1] = 0;
|
||||||
|
ingredientIds[2] = 0;
|
||||||
|
final long[] ingredientQuantities = new long[3];
|
||||||
|
ingredientQuantities[0] = 0;
|
||||||
|
ingredientQuantities[1] = 0;
|
||||||
|
ingredientQuantities[2] = 0;
|
||||||
|
int productionId = 0;
|
||||||
|
int accountDailyLimit = 0;
|
||||||
|
int accountBuyLimit = 0;
|
||||||
|
for (Node b = d.getFirstChild(); b != null; b = b.getNextSibling())
|
||||||
|
{
|
||||||
|
attrs = b.getAttributes();
|
||||||
|
|
||||||
|
if ("ingredient".equalsIgnoreCase(b.getNodeName()))
|
||||||
|
{
|
||||||
|
final int ingredientId = parseInteger(attrs, "id");
|
||||||
|
final long ingredientQuantity = parseLong(attrs, "count", 1L);
|
||||||
|
|
||||||
|
final Item item = ItemTable.getInstance().getTemplate(ingredientId);
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
LOGGER.severe(getClass().getSimpleName() + ": Item template null for itemId: " + productionId + " productId: " + id);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ingredientIds[0] == 0)
|
||||||
|
{
|
||||||
|
ingredientIds[0] = ingredientId;
|
||||||
|
}
|
||||||
|
else if (ingredientIds[1] == 0)
|
||||||
|
{
|
||||||
|
ingredientIds[1] = ingredientId;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ingredientIds[2] = ingredientId;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ingredientQuantities[0] == 0)
|
||||||
|
{
|
||||||
|
ingredientQuantities[0] = ingredientQuantity;
|
||||||
|
}
|
||||||
|
else if (ingredientQuantities[1] == 0)
|
||||||
|
{
|
||||||
|
ingredientQuantities[1] = ingredientQuantity;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ingredientQuantities[2] = ingredientQuantity;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ("production".equalsIgnoreCase(b.getNodeName()))
|
||||||
|
{
|
||||||
|
productionId = parseInteger(attrs, "id");
|
||||||
|
accountDailyLimit = parseInteger(attrs, "accountDailyLimit", 0);
|
||||||
|
accountBuyLimit = parseInteger(attrs, "accountBuyLimit", 0);
|
||||||
|
|
||||||
|
final Item item = ItemTable.getInstance().getTemplate(productionId);
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
LOGGER.severe(getClass().getSimpleName() + ": Item template null for itemId: " + productionId + " productId: " + id);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_products.add(new LCoinShopProductHolder(id, category, minLevel, maxLevel, ingredientIds, ingredientQuantities, productionId, accountDailyLimit, accountBuyLimit));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public LCoinShopProductHolder getProduct(int id)
|
||||||
|
{
|
||||||
|
for (LCoinShopProductHolder product : _products)
|
||||||
|
{
|
||||||
|
if (product.getId() == id)
|
||||||
|
{
|
||||||
|
return product;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Collection<LCoinShopProductHolder> getProducts()
|
||||||
|
{
|
||||||
|
return _products;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LCoinShopSpecialCraftData getInstance()
|
||||||
|
{
|
||||||
|
return SingletonHolder.INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class SingletonHolder
|
||||||
|
{
|
||||||
|
protected static final LCoinShopSpecialCraftData INSTANCE = new LCoinShopSpecialCraftData();
|
||||||
|
}
|
||||||
|
}
|
@ -35,15 +35,13 @@ import org.l2jmobius.gameserver.network.serverpackets.primeshop.ExBRBuyProduct.E
|
|||||||
*/
|
*/
|
||||||
public class RequestPurchaseLimitShopItemBuy implements IClientIncomingPacket
|
public class RequestPurchaseLimitShopItemBuy implements IClientIncomingPacket
|
||||||
{
|
{
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private int _category;
|
|
||||||
private int _productId;
|
private int _productId;
|
||||||
private int _amount;
|
private int _amount;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean read(GameClient client, PacketReader packet)
|
public boolean read(GameClient client, PacketReader packet)
|
||||||
{
|
{
|
||||||
_category = packet.readC();
|
packet.readC(); // category?
|
||||||
_productId = packet.readD();
|
_productId = packet.readD();
|
||||||
_amount = packet.readD();
|
_amount = packet.readD();
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,6 +21,7 @@ import java.util.Collection;
|
|||||||
import org.l2jmobius.commons.network.PacketWriter;
|
import org.l2jmobius.commons.network.PacketWriter;
|
||||||
import org.l2jmobius.commons.util.Chronos;
|
import org.l2jmobius.commons.util.Chronos;
|
||||||
import org.l2jmobius.gameserver.data.xml.LCoinShopData;
|
import org.l2jmobius.gameserver.data.xml.LCoinShopData;
|
||||||
|
import org.l2jmobius.gameserver.data.xml.LCoinShopSpecialCraftData;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||||
import org.l2jmobius.gameserver.model.holders.LCoinShopProductHolder;
|
import org.l2jmobius.gameserver.model.holders.LCoinShopProductHolder;
|
||||||
import org.l2jmobius.gameserver.model.variables.AccountVariables;
|
import org.l2jmobius.gameserver.model.variables.AccountVariables;
|
||||||
@ -32,13 +33,15 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
|
|||||||
*/
|
*/
|
||||||
public class ExPurchaseLimitShopItemListNew implements IClientOutgoingPacket
|
public class ExPurchaseLimitShopItemListNew implements IClientOutgoingPacket
|
||||||
{
|
{
|
||||||
private final int _category;
|
private final int _shopType; // 3 = Lcoin Shop - 4 = Special Craft
|
||||||
private final PlayerInstance _player;
|
private final PlayerInstance _player;
|
||||||
|
private Collection<LCoinShopProductHolder> _products;
|
||||||
|
|
||||||
public ExPurchaseLimitShopItemListNew(int category, PlayerInstance player)
|
public ExPurchaseLimitShopItemListNew(int shopType, PlayerInstance player)
|
||||||
{
|
{
|
||||||
_category = category;
|
_shopType = shopType;
|
||||||
_player = player;
|
_player = player;
|
||||||
|
_products = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -46,12 +49,28 @@ public class ExPurchaseLimitShopItemListNew implements IClientOutgoingPacket
|
|||||||
{
|
{
|
||||||
OutgoingPackets.EX_PURCHASE_LIMIT_SHOP_ITEM_LIST_NEW.writeId(packet);
|
OutgoingPackets.EX_PURCHASE_LIMIT_SHOP_ITEM_LIST_NEW.writeId(packet);
|
||||||
|
|
||||||
final Collection<LCoinShopProductHolder> products = LCoinShopData.getInstance().getProducts();
|
switch (_shopType)
|
||||||
|
{
|
||||||
|
case 3: // Normal Lcoin Shop
|
||||||
|
{
|
||||||
|
_products = LCoinShopData.getInstance().getProducts();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 4: // Lcoin Special Craft
|
||||||
|
{
|
||||||
|
_products = LCoinShopSpecialCraftData.getInstance().getProducts();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
_products = LCoinShopData.getInstance().getProducts();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
packet.writeC(_category); // _category? Main shop?
|
packet.writeC(_shopType); //
|
||||||
packet.writeD(products.size());
|
packet.writeD(_products.size());
|
||||||
|
|
||||||
for (LCoinShopProductHolder product : products)
|
for (LCoinShopProductHolder product : _products)
|
||||||
{
|
{
|
||||||
packet.writeD(product.getId());
|
packet.writeD(product.getId());
|
||||||
packet.writeD(product.getProductionId());
|
packet.writeD(product.getProductionId());
|
||||||
|
Loading…
Reference in New Issue
Block a user