Initial changes.

This commit is contained in:
MobiusDev 2018-09-11 22:29:39 +00:00
parent c6ff9df76d
commit 2ea60b1bb9
230 changed files with 5030 additions and 7500 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>L2J_Mobius_4.0_GrandCrusade</name>
<name>L2J_Mobius_5.0_Salvation</name>
<comment></comment>
<projects>
</projects>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<project name="L2J_Mobius_4.0_GrandCrusade" default="cleanup" basedir=".">
<project name="L2J_Mobius_5.0_Salvation" default="cleanup" basedir=".">
<description>
This file is part of the L2J Mobius project.
@ -133,15 +133,15 @@
</target>
<target name="adding-core" depends="jar" description="Adding the compiled jars to the Zip file.">
<zip destfile="${build}/L2J_Mobius_4.0_GrandCrusade.zip" basedir="${build.dist}" level="9" />
<zip destfile="${build}/L2J_Mobius_5.0_Salvation.zip" basedir="${build.dist}" level="9" />
</target>
<target name="adding-datapack" depends="adding-core" description="Updating the Zip file with datapack content.">
<zip destfile="${build}/L2J_Mobius_4.0_GrandCrusade.zip" basedir="${datapack}" update="true" level="9" />
<zip destfile="${build}/L2J_Mobius_5.0_Salvation.zip" basedir="${datapack}" update="true" level="9" />
</target>
<target name="adding-readme" depends="adding-datapack" description="Adding readme.txt to the Zip file.">
<zip destfile="${build}/L2J_Mobius_4.0_GrandCrusade.zip" basedir="." includes="readme.txt" update="true" level="9" />
<zip destfile="${build}/L2J_Mobius_5.0_Salvation.zip" basedir="." includes="readme.txt" update="true" level="9" />
</target>
<target name="cleanup" depends="adding-readme" description="Cleaning the build folder.">

View File

@ -642,8 +642,8 @@ RaidLootRightsCCSize = 45
# Specific item ids for auto pickup.
# Overrides all methods above.
# Format: itemId,itemId,itemId,....
# Default: 0
AutoLootItemIds = 0
# Default: 57
AutoLootItemIds = 57
# Enable keyboard movement.
# Retail: True

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- EACH PRODUCT SHOULD HAVE UNIQUE ITEM ID -->
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../data/xsd/ClanShop.xsd">
<clan level="5" item="36952" count="1" adena="10000000" fame="50000" /> <!-- Air Bike -->
<clan level="1" item="48282" count="1" adena="0" fame="2000" /> <!-- Party Scroll of Escape -->
<clan level="1" item="48287" count="1" adena="0" fame="15000" /> <!-- Snow Kung Transformation Stick (15-day) -->
<clan level="1" item="48288" count="1" adena="0" fame="15000" /> <!-- Scarecrow Jack Transformation Stick (15-day) -->
<clan level="1" item="48289" count="1" adena="0" fame="15000" /> <!-- Tin Golem Transformation Stick (15-day) -->
<clan level="1" item="48290" count="1" adena="0" fame="15000" /> <!-- Gatekeeper Transformation Stick (15-day) -->
<clan level="1" item="48291" count="1" adena="0" fame="15000" /> <!-- Aqua Elf Transformation Stick (15-day) -->
<clan level="1" item="12819" count="1" adena="0" fame="500" /> <!-- Scroll: Recovery (Battleground) -->
<clan level="1" item="48286" count="1" adena="10000000" fame="50000" /> <!-- Scroll: Reputation -->
<clan level="1" item="48285" count="1" adena="10000000" fame="50000" /> <!-- Scroll: PK -->
<clan level="1" item="27592" count="1" adena="0" fame="9000" /> <!-- Supply Box - Top Grade -->
<clan level="1" item="47739" count="1" adena="5000000" fame="30000" /> <!-- Hunter's Amulet -->
<clan level="10" item="48283" count="1" adena="500000" fame="2000" /> <!-- Stealth Detector -->
</list>

View File

@ -101,8 +101,8 @@ MaximumOnlineUsers = 2000
# Numbers of protocol revisions that server allows to connect.
# Delimiter is ;
# WARNING: <u><b><font color="red">Changing the protocol revision may result in incompatible communication and many errors in game!</font></b></u>
# Grand Crusade: 110
AllowedProtocolRevisions = 110
# Salvation: 140
AllowedProtocolRevisions = 140
# Displays server type next to the server name on character selection.
# Notes:

View File

@ -1,34 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/AttendanceRewards.xsd">
<item id="23805" count="50" /> <!-- Hero Coin -->
<item id="22610" count="3" /> <!-- Luxury Cocktail -->
<item id="1540" count="10" /> <!-- Quick Healing Potion -->
<item id="22979" count="3" /> <!-- SP Rune 50% (1-hour) -->
<item id="22906" count="3" /> <!-- XP Rune III 50% (1-hour) -->
<item id="20353" count="10" /> <!-- Greater CP Potion -->
<item id="21343" count="1" /> <!-- Agathion - Cow (7-Day) -->
<item id="20340" count="1" /> <!-- XP Rune III (Lv. 1-100+) 50% (7-day) -->
<item id="22756" count="1" /> <!-- Drop Rate Rune 50% (7-day) -->
<item id="47737" count="2" /> <!-- Pa'agrio's Blessing - EXP (Event) -->
<item id="40231" count="4" /> <!-- Freya's Frozen Scroll (Event) -->
<item id="26510" count="2" /> <!-- Attendance Vitality Tonic (Event) -->
<item id="23332" count="2" /> <!-- XP Buff 50% (1-hour) -->
<item id="28407" count="1" /> <!-- Eva's Rune (7-Day) -->
<item id="23805" count="100" /> <!-- Hero Coin -->
<item id="22610" count="3" /> <!-- Luxury Cocktail -->
<item id="1540" count="10" /> <!-- Quick Healing Potion -->
<item id="22979" count="3" /> <!-- SP Rune 50% (1-hour) -->
<item id="22906" count="3" /> <!-- XP Rune III 50% (1-hour) -->
<item id="20353" count="10" /> <!-- Greater CP Potion -->
<item id="21331" count="1" /> <!-- Agathion - Griffin (7-Day) -->
<item id="20340" count="1" /> <!-- XP Rune III (Lv. 1-100+) 50% (7-day) -->
<item id="22756" count="1" /> <!-- Drop Rate Rune 50% (7-day) -->
<item id="47737" count="4" /> <!-- Pa'agrio's Blessing - EXP (Event) -->
<item id="40231" count="6" /> <!-- Freya's Frozen Scroll (Event) -->
<item id="26510" count="3" /> <!-- Attendance Vitality Tonic (Event) -->
<item id="23332" count="3" /> <!-- XP Buff 50% (1-hour) -->
<item id="29078" count="1" /> <!-- Greater Vital Stone (30-Day) -->
<item id="23805" count="150" /> <!-- Hero Coin -->
<item id="22610" count="6" /> <!-- Luxury Cocktail -->
<item id="1540" count="20" /> <!-- Quick Healing Potion -->
<item id="22979" count="5" /> <!-- SP Rune 50% (1-hour) -->
<item id="22906" count="5" /> <!-- XP Rune III 50% (1-hour) -->
<item id="20353" count="20" /> <!-- Greater CP Potion -->
<item id="21166" count="1" /> <!-- Agathion - Zaken's Spirit Swords (7-Day) -->
<item id="20340" count="1" /> <!-- XP Rune III (Lv. 1-100+) 50% (7-day) -->
<item id="22756" count="1" /> <!-- Drop Rate Rune 50% (7-day) -->
<item id="47737" count="6" /> <!-- Pa'agrio's Blessing - EXP (Event) -->
<item id="40231" count="8" /> <!-- Freya's Frozen Scroll (Event) -->
<item id="26510" count="4" /> <!-- Attendance Vitality Tonic (Event) -->
<item id="23332" count="4" /> <!-- XP Buff 50% (1-hour) -->
<item id="46535" count="1" /> <!-- Rare Accessory Box (7-Day) -->
<item id="23805" count="300" /> <!-- Hero Coin -->
<item id="22610" count="6" /> <!-- Luxury Cocktail -->
<item id="1540" count="20" /> <!-- Quick Healing Potion -->
<item id="23284" count="5" /> <!-- SP Rune 100% (1-hour) -->
<item id="23277" count="5" /> <!-- XP Rune III 100% (1-hour) -->
<item id="23176" count="1" /> <!-- Stylish Straw Hat (30-Day) -->
<item id="22955" count="1" /> <!-- Mount - Tame Princess Ant (30-Day) -->
<item id="20340" count="1" /> <!-- XP Rune III (Lv. 1-100+) 50% (7-day) -->
<item id="22756" count="1" /> <!-- Drop Rate Rune 50% (7-day) -->
<item id="47737" count="8" /> <!-- Pa'agrio's Blessing - EXP (Event) -->
<item id="40231" count="10" /> <!-- Freya's Frozen Scroll (Event) -->
<item id="26510" count="5" /> <!-- Attendance Vitality Tonic (Event) -->
<item id="45415" count="5" /> <!-- Dandy's Home Run Ball -->
<item id="48133" count="1" /> <!-- Agathion - Joon Charm (30-Day) -->
</list>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/ClanMasteryData.xsd">
<clan mastery="50000" level="1" previous="0" />
<clan mastery="50001" level="2" previous="50000" />
</list>

File diff suppressed because it is too large Load Diff

View File

@ -1,708 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<list enabled="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/PrimeShop.xsd">
<!-- cat = 1 - Supplies, 2 - Cosmetic, 3 - Specials, 4 - Enchant, 5 - Boost, 6 - Rewards -->
<!-- paymentType = 0 - NCoin, 1 - Adena, 2 - Hero Coin -->
<!-- cat = 1 - Exping, 2 - Supplies, 3 - Cosmetic, 4 - Specials, 5 - Other -->
<!-- paymentType = 0 - Euro, 1 - Adena, 2 - Hero Coin -->
<!-- panelType = 0 - None, 1 - Event, 2 - Sale, 3 - New, 4 - Best -->
<!-- recommended = 1 - Top, 2 - Left, 4 - Right (bit flags) -->
<!-- startSale = unixTime -->
<!-- endSale = unixTime -->
<item id="1010030" cat="2" paymentType="0" price="8" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="20332" count="5000" /> <!-- Beast Soulshot-->
</item>
<item id="1010235" cat="6" paymentType="0" price="40" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22744" count="1" /> <!-- Vitality Suspending Potion Pack-->
</item>
<item id="1010394" cat="6" paymentType="0" price="60" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22979" count="1" /> <!-- SP Rune 50% Pack (1-hour)-->
</item>
<item id="1010609" cat="6" paymentType="0" price="60" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23295" count="1" /> <!-- Drop Rate Rune 200% Pack (1-hour)-->
</item>
<item id="1010857" cat="2" paymentType="0" price="39" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22932" count="1" /> <!-- Entrance Pass: Kartia's Labyrinth Lv. 85 Solo-->
</item>
<item id="1010891" cat="2" paymentType="0" price="39" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="21210" count="3" /> <!-- MP Recovery Potion-->
</item>
<item id="1010972" cat="6" paymentType="0" price="160" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="21212" count="1" /> <!-- Vitality Recovering Potion-->
<item itemId="23805" count="2" /> <!-- Hero Coin-->
</item>
<item id="1010973" cat="6" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22980" count="1" /> <!-- XP Rune I (Lv. 1-85) 100% Pack (1-hour)-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1010974" cat="6" paymentType="0" price="160" panelType="4" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22966" count="1" /> <!-- Vitality Maintaining Potion (1-hour)-->
<item itemId="23805" count="2" /> <!-- Hero Coin-->
</item>
<item id="1010975" cat="6" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22883" count="1" /> <!-- Scroll: Replenish Vitality-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1010976" cat="6" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="17206" count="1" /> <!-- XP Buff 50% (1-hour)-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1010977" cat="6" paymentType="0" price="290" panelType="4" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="17211" count="1" /> <!-- XP Buff 50% (4-hour)-->
<item itemId="23805" count="4" /> <!-- Hero Coin-->
</item>
<item id="1010978" cat="6" paymentType="0" price="120" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22981" count="1" /> <!-- XP Rune I (Lv. 1-85) 200% Pack (1-hour)-->
<item itemId="23805" count="2" /> <!-- Hero Coin-->
</item>
<item id="1010979" cat="6" paymentType="0" price="240" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22884" count="1" /> <!-- Scroll: Replenish Vitality (High-grade)-->
<item itemId="23805" count="3" /> <!-- Hero Coin-->
</item>
<item id="1010980" cat="6" paymentType="0" price="640" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22885" count="1" /> <!-- Scroll: Replenish Vitality (Top-grade)-->
<item itemId="23805" count="8" /> <!-- Hero Coin-->
</item>
<item id="1010981" cat="6" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23284" count="1" /> <!-- SP Rune 100% Pack (1-hour)-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1010982" cat="6" paymentType="0" price="960" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23285" count="1" /> <!-- SP Rune 100% Pack (7-day)-->
<item itemId="23805" count="13" /> <!-- Hero Coin-->
</item>
<item id="1010983" cat="6" paymentType="0" price="160" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23287" count="1" /> <!-- SP Rune 200% Pack (1-hour)-->
<item itemId="23805" count="2" /> <!-- Hero Coin-->
</item>
<item id="1010984" cat="6" paymentType="0" price="1920" panelType="4" recommended="2" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23288" count="1" /> <!-- SP Rune 200% Pack (7-day)-->
<item itemId="23805" count="26" /> <!-- Hero Coin-->
</item>
<item id="1010987" cat="6" paymentType="0" price="200" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23277" count="1" /> <!-- XP Rune III (Lv. 1-99) 100% Pack (1-hour)-->
<item itemId="23805" count="3" /> <!-- Hero Coin-->
</item>
<item id="1010988" cat="6" paymentType="0" price="2240" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23278" count="1" /> <!-- XP Rune III (Lv. 1-99) 100% Pack (7-day)-->
<item itemId="23805" count="32" /> <!-- Hero Coin-->
</item>
<item id="1010989" cat="6" paymentType="0" price="400" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23280" count="1" /> <!-- XP Rune III (Lv. 1-99) 200% Pack (1-hour)-->
<item itemId="23805" count="5" /> <!-- Hero Coin-->
</item>
<item id="1010990" cat="6" paymentType="0" price="4480" panelType="4" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23281" count="1" /> <!-- XP Rune III (Lv. 1-99) 200% Pack (7-day)-->
<item itemId="23805" count="67" /> <!-- Hero Coin-->
</item>
<item id="1010991" cat="6" paymentType="0" price="640" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="20559" count="1" /> <!-- SP Rune 50% Pack (7-day)-->
<item itemId="23805" count="8" /> <!-- Hero Coin-->
</item>
<item id="1010992" cat="6" paymentType="0" price="560" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="7" /> <!-- Hero Coin-->
<item itemId="34043" count="1" /> <!-- XP Rune I (Lv. 1-85) 100% Pack (7-day)-->
</item>
<item id="1010993" cat="6" paymentType="0" price="1199" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="17" /> <!-- Hero Coin-->
<item itemId="34046" count="1" /> <!-- XP Rune I (Lv. 1-85) 200% Pack (7-day)-->
</item>
<item id="1010994" cat="6" paymentType="0" price="299" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23389" count="1" /> <!-- XP Rune II (Lv. 1-95) 100% Pack (1-hour)-->
<item itemId="23805" count="4" /> <!-- Hero Coin-->
</item>
<item id="1010995" cat="6" paymentType="0" price="1499" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="21" /> <!-- Hero Coin-->
<item itemId="35977" count="1" /> <!-- XP Rune II (Lv. 1-95) 100% Pack (7-day) - Event-->
</item>
<item id="1010996" cat="6" paymentType="0" price="599" panelType="4" recommended="2" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22774" count="1" /> <!-- Drop Rate Rune 200% Pack (7-day)-->
<item itemId="23805" count="8" /> <!-- Hero Coin-->
</item>
<item id="1010997" cat="4" paymentType="0" price="2400" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23133" count="1" /> <!-- Gender Change Ticket-->
<item itemId="23805" count="33" /> <!-- Hero Coin-->
</item>
<item id="1010998" cat="4" paymentType="0" price="2400" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23134" count="1" /> <!-- Name Change Ticket-->
<item itemId="23805" count="33" /> <!-- Hero Coin-->
</item>
<item id="1010999" cat="4" paymentType="0" price="2400" panelType="4" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="33" /> <!-- Hero Coin-->
<item itemId="23814" count="1" /> <!-- Chaos Essence Pack - 30-day-->
</item>
<item id="1011000" cat="4" paymentType="0" price="1200" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="17" /> <!-- Hero Coin-->
<item itemId="23815" count="1" /> <!-- Chaos Essence Pack (Dual Class) - 30-day-->
</item>
<item id="1011004" cat="3" paymentType="0" price="1200" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="21584" count="1" /> <!-- Festival's Cloak - Pitch Black Pack-->
<item itemId="23805" count="17" /> <!-- Hero Coin-->
</item>
<item id="1011005" cat="3" paymentType="0" price="1200" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="21589" count="1" /> <!-- Festival's Cloak - Pearl White Pack-->
<item itemId="23805" count="17" /> <!-- Hero Coin-->
</item>
<item id="1011006" cat="3" paymentType="0" price="80" panelType="4" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="21421" count="1" /> <!-- Color Title Pack-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1011007" cat="3" paymentType="0" price="80" panelType="4" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="36308" count="1" /> <!-- Beauty Shop Ticket-->
</item>
<item id="1011008" cat="3" paymentType="0" price="799" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23193" count="1" /> <!-- Ninja Hair Accessory Appearance Stone-->
<item itemId="23531" count="2" /> <!-- Automatic Appearance Stone: Japanese Weapon-->
<item itemId="23696" count="1" /> <!-- Ninja Top Appearance Stone - Modified Set-->
<item itemId="23697" count="1" /> <!-- Ninja Pants Appearance Stone - Modified Set-->
<item itemId="23698" count="1" /> <!-- Ninja Gloves Appearance Stone - Modified Set-->
<item itemId="23699" count="1" /> <!-- Ninja Shoes Appearance Stone - Modified Set-->
<item itemId="23805" count="10" /> <!-- Hero Coin-->
</item>
<item id="1011009" cat="3" paymentType="0" price="479" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23497" count="1" /> <!-- Metal Suit Hair Accessory Appearance Stone-->
<item itemId="23712" count="1" /> <!-- Metal Suit Top Appearance Stone - Modified Set-->
<item itemId="23713" count="1" /> <!-- Metal Suit Pants Appearance Stone - Modified Set-->
<item itemId="23714" count="1" /> <!-- Metal Suit Gloves Appearance Stone - Modified Set-->
<item itemId="23715" count="1" /> <!-- Metal Suit Shoes Appearance Stone - Modified Set-->
<item itemId="23805" count="6" /> <!-- Hero Coin-->
</item>
<item id="1011010" cat="3" paymentType="0" price="479" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23507" count="1" /> <!-- Military Hair Accessory Appearance Stone-->
<item itemId="23720" count="1" /> <!-- Military Top Appearance Stone - Modified Set-->
<item itemId="23721" count="1" /> <!-- Military Pants Appearance Stone - Modified Set-->
<item itemId="23722" count="1" /> <!-- Military Gloves Appearance Stone - Modified Set-->
<item itemId="23723" count="1" /> <!-- Military Shoes Appearance Stone - Modified Set-->
<item itemId="23805" count="6" /> <!-- Hero Coin-->
</item>
<item id="1011011" cat="3" paymentType="0" price="239" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23513" count="1" /> <!-- Maid Appearance Stone-->
<item itemId="23514" count="1" /> <!-- Maid Hair Accessory Appearance Stone-->
<item itemId="23805" count="3" /> <!-- Hero Coin-->
</item>
<item id="1011022" cat="3" paymentType="0" price="399" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22402" count="1" /> <!-- Weapon Appearance Stone (R-grade)-->
<item itemId="23805" count="5" /> <!-- Hero Coin-->
</item>
<item id="1011023" cat="3" paymentType="0" price="799" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22408" count="1" /> <!-- Blessed Weapon Appearance Stone (R-grade)-->
<item itemId="23805" count="10" /> <!-- Hero Coin-->
</item>
<item id="1011024" cat="3" paymentType="0" price="319" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22682" count="1" /> <!-- Armor Appearance Stone (R-grade)-->
<item itemId="23805" count="4" /> <!-- Hero Coin-->
</item>
<item id="1011025" cat="3" paymentType="0" price="639" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22688" count="1" /> <!-- Blessed Armor Appearance Stone (R-grade)-->
<item itemId="23805" count="8" /> <!-- Hero Coin-->
</item>
<item id="1011026" cat="3" paymentType="0" price="160" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22708" count="1" /> <!-- Hair Accessory Appearance Stone-->
<item itemId="23805" count="2" /> <!-- Hero Coin-->
</item>
<item id="1011027" cat="3" paymentType="0" price="319" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22709" count="1" /> <!-- Blessed Hair Accessory Appearance Stone-->
<item itemId="23805" count="4" /> <!-- Hero Coin-->
</item>
<item id="1011044" cat="3" paymentType="0" price="799" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23530" count="1" /> <!-- Automatic Appearance Stone: Emerald Weapon-->
<item itemId="23805" count="10" /> <!-- Hero Coin-->
</item>
<item id="1011069" cat="5" paymentType="0" price="320" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="4" /> <!-- Hero Coin-->
<item itemId="36008" count="1" /> <!-- High-grade Lucky Enchant Stone: Weapon (R-grade)-->
</item>
<item id="1011070" cat="5" paymentType="0" price="160" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="2" /> <!-- Hero Coin-->
<item itemId="36009" count="1" /> <!-- High-grade Lucky Enchant Stone: Armor (R-grade)-->
</item>
<item id="1011071" cat="5" paymentType="0" price="120" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23399" count="1" /> <!-- Blessed Scroll: Enchant Armor Pack-->
<item itemId="23805" count="2" /> <!-- Hero Coin-->
</item>
<item id="1011072" cat="5" paymentType="0" price="240" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23398" count="1" /> <!-- Blessed Scroll: Enchant Weapon Pack-->
<item itemId="23805" count="3" /> <!-- Hero Coin-->
</item>
<item id="1011073" cat="5" paymentType="0" price="279" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23385" count="1" /> <!-- Life Stone: Adenian Underwear-->
<item itemId="23805" count="3" /> <!-- Hero Coin-->
</item>
<item id="1011074" cat="5" paymentType="0" price="1599" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="22" /> <!-- Hero Coin-->
<item itemId="35562" count="25" /> <!-- Energy of Destruction-->
<item itemId="35563" count="30" /> <!-- Giant's Energy-->
<item itemId="37622" count="1" /> <!-- Kaliel's Energy Box - Western Winds-->
</item>
<item id="1011075" cat="5" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="35562" count="2" /> <!-- Energy of Destruction-->
</item>
<item id="1011076" cat="5" paymentType="0" price="399" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="21580" count="1" /> <!-- Power Shirt-->
<item itemId="23805" count="5" /> <!-- Hero Coin-->
</item>
<item id="1011077" cat="5" paymentType="0" price="79" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22905" count="1" /> <!-- Blessed Scroll: Enchant Power Shirt-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1011078" cat="5" paymentType="0" price="319" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="4" /> <!-- Hero Coin-->
<item itemId="37566" count="1" /> <!-- Blessed Lucky Enchant Stone: Weapon (R-grade)-->
</item>
<item id="1011079" cat="5" paymentType="0" price="159" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="2" /> <!-- Hero Coin-->
<item itemId="37567" count="1" /> <!-- Blessed Lucky Enchant Stone: Armor (R-grade)-->
</item>
<item id="1011080" cat="5" paymentType="0" price="639" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="8" /> <!-- Hero Coin-->
<item itemId="38757" count="1" /> <!-- Blessed High-grade Lucky Enchant Stone: Weapon (R-grade)-->
</item>
<item id="1011081" cat="5" paymentType="0" price="319" panelType="4" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="4" /> <!-- Hero Coin-->
<item itemId="38758" count="1" /> <!-- Blessed High-grade Lucky Enchant Stone: Armor (R-grade)-->
</item>
<item id="1011082" cat="2" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="14065" count="1" /> <!-- Superior Minion Coupon - 5-hour-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1011089" cat="2" paymentType="0" price="200" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22542" count="1" /> <!-- Improved Mithril Bracelet Pack-->
<item itemId="23805" count="3" /> <!-- Hero Coin-->
</item>
<item id="1011090" cat="2" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22888" count="5000" /> <!-- Mysterious Soulshot (R-grade)-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1011091" cat="2" paymentType="0" price="160" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22889" count="5000" /> <!-- Mysterious Blessed Spiritshot (R-grade)-->
<item itemId="23805" count="2" /> <!-- Hero Coin-->
</item>
<item id="1011092" cat="2" paymentType="0" price="240" panelType="4" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23232" count="1" /> <!-- Traces of Ancient Kartia's Labyrinth-->
<item itemId="23805" count="3" /> <!-- Hero Coin-->
</item>
<item id="1011093" cat="2" paymentType="0" price="599" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23225" count="1" /> <!-- Soul Avatar's Giant Placid-->
<item itemId="23805" count="8" /> <!-- Hero Coin-->
</item>
<item id="1011094" cat="2" paymentType="0" price="399" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="5" /> <!-- Hero Coin-->
<item itemId="35757" count="1" /> <!-- Scroll: Reputation (Top-grade)-->
</item>
<item id="1011095" cat="2" paymentType="0" price="159" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="20914" count="1" /> <!-- Enhanced Rose Spirit Coupon (5-hour)-->
<item itemId="23805" count="2" /> <!-- Hero Coin-->
</item>
<item id="1011096" cat="2" paymentType="0" price="560" panelType="4" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="20904" count="250" /> <!-- Rose Essence-->
<item itemId="23805" count="7" /> <!-- Hero Coin-->
</item>
<item id="1011099" cat="2" paymentType="0" price="79" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="21237" count="3" /> <!-- Super Healthy Juice Pack (HP)-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1011100" cat="2" paymentType="0" price="119" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="21241" count="3" /> <!-- Super Healthy Juice Pack (CP)-->
<item itemId="23805" count="2" /> <!-- Hero Coin-->
</item>
<item id="1011101" cat="2" paymentType="0" price="79" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22933" count="1" /> <!-- Entrance Pass: Kartia's Labyrinth Lv. 90 Solo-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1011102" cat="2" paymentType="0" price="119" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22934" count="1" /> <!-- Entrance Pass: Kartia's Labyrinth Lv. 95 Solo-->
<item itemId="23805" count="2" /> <!-- Hero Coin-->
</item>
<item id="1011103" cat="2" paymentType="0" price="79" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22935" count="1" /> <!-- Entrance Pass: Kartia's Labyrinth Lv. 85 Party-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1011104" cat="2" paymentType="0" price="119" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22936" count="1" /> <!-- Entrance Pass: Kartia's Labyrinth Lv. 90 Party-->
<item itemId="23805" count="2" /> <!-- Hero Coin-->
</item>
<item id="1011107" cat="2" paymentType="0" price="119" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="2" /> <!-- Hero Coin-->
<item itemId="36275" count="1" /> <!-- Entrance Pass: Istina (Normal)-->
</item>
<item id="1011108" cat="2" paymentType="0" price="79" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="36273" count="1" /> <!-- Entrance Pass: Fortuna-->
</item>
<item id="1011109" cat="2" paymentType="0" price="119" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="2" /> <!-- Hero Coin-->
<item itemId="36274" count="1" /> <!-- Entrance Pass: Nornil's Garden-->
</item>
<item id="1011110" cat="2" paymentType="0" price="119" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="2" /> <!-- Hero Coin-->
<item itemId="36272" count="1" /> <!-- Entrance Pass: Spezion (Epic)-->
</item>
<item id="1011112" cat="2" paymentType="0" price="119" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="2" /> <!-- Hero Coin-->
<item itemId="36276" count="1" /> <!-- Entrance Pass: Octavis (Normal)-->
</item>
<item id="1011113" cat="2" paymentType="0" price="119" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="2" /> <!-- Hero Coin-->
<item itemId="36277" count="1" /> <!-- Entrance Pass: Baylor-->
</item>
<item id="1011116" cat="2" paymentType="0" price="239" panelType="4" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="3" /> <!-- Hero Coin-->
<item itemId="37867" count="1" /> <!-- Valiant Scroll-->
</item>
<item id="1011117" cat="2" paymentType="0" price="1600" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="22" /> <!-- Hero Coin-->
<item itemId="38572" count="1" /> <!-- Apparition Stone (Lv. 88)-->
</item>
<item id="1011118" cat="2" paymentType="0" price="2000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="28" /> <!-- Hero Coin-->
<item itemId="38573" count="1" /> <!-- Apparition Stone (Lv. 93)-->
</item>
<item id="1011119" cat="2" paymentType="0" price="4000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="55" /> <!-- Hero Coin-->
<item itemId="38574" count="1" /> <!-- Apparition Stone (Lv. 98)-->
</item>
<item id="1011209" cat="2" paymentType="0" price="199" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22937" count="1" /> <!-- Entrance Pass: Kartia's Labyrinth Lv. 95 Party-->
<item itemId="23805" count="3" /> <!-- Hero Coin-->
</item>
<item id="1011219" cat="2" paymentType="0" price="799" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="11" /> <!-- Hero Coin-->
<item itemId="34751" count="1" /> <!-- Agathion - XP Bottle Pack (10-hour)-->
</item>
<item id="1011220" cat="2" paymentType="0" price="1199" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="17" /> <!-- Hero Coin-->
<item itemId="34752" count="1" /> <!-- Agathion - XP Bottle Pack (20-hour)-->
</item>
<item id="1011221" cat="2" paymentType="0" price="1599" panelType="4" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="22" /> <!-- Hero Coin-->
<item itemId="34753" count="1" /> <!-- Agathion - XP Bottle Pack (30-hour)-->
</item>
<item id="1011287" cat="2" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="23846" count="1" /> <!-- Mysterious Slaughter Dye - Damage Reflect Resistance, Received Damage Decrease, 1-day-->
</item>
<item id="1011288" cat="2" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="23845" count="1" /> <!-- Mysterious Hunt Dye - P. Def., Speed, 1-day-->
</item>
<item id="1011289" cat="2" paymentType="0" price="240" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="5" /> <!-- Hero Coin-->
<item itemId="23830" count="1" /> <!-- Mysterious Kamael Dye - Battle Instinct, Dark Silence, Soul Protection, 7-day-->
</item>
<item id="1011290" cat="2" paymentType="0" price="240" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="5" /> <!-- Hero Coin-->
<item itemId="23829" count="1" /> <!-- Mysterious Dwarf Dye - Dexterity, Blessing of Earth, Endurance, 7-day-->
</item>
<item id="1011291" cat="2" paymentType="0" price="240" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="5" /> <!-- Hero Coin-->
<item itemId="23828" count="1" /> <!-- Mysterious Orc Dye - Blessing of Fire, Energetic, Savage, 7-day-->
</item>
<item id="1011292" cat="2" paymentType="0" price="240" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="5" /> <!-- Hero Coin-->
<item itemId="23827" count="1" /> <!-- Mysterious Dark Elf Dye - Sharpness, Blessing of Wind, Disparition, 7-day-->
</item>
<item id="1011293" cat="2" paymentType="0" price="240" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="5" /> <!-- Hero Coin-->
<item itemId="23826" count="1" /> <!-- Mysterious Elf Dye - Blessing of Water, Delicacy, Prevision, 7-day-->
</item>
<item id="1011294" cat="2" paymentType="0" price="240" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="5" /> <!-- Hero Coin-->
<item itemId="23825" count="1" /> <!-- Mysterious Human Dye - Aim, Mental, Unbind, 7-day-->
</item>
<item id="1011315" cat="6" paymentType="0" price="160" panelType="4" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23728" count="1" /> <!-- Erupting Vitality XP Potion-->
<item itemId="23805" count="2" /> <!-- Hero Coin-->
</item>
<item id="1011331" cat="2" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="36396" count="3" /> <!-- Energy Drink Pack-->
</item>
<item id="1011334" cat="2" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="23985" count="1" /> <!-- Extra Pass: Ancient Kartia's Labyrinth-->
</item>
<item id="1011343" cat="4" paymentType="0" price="1" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="40" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22578" count="1" /> <!-- Weapon Pack (C-grade) (30-day)-->
<item itemId="22583" count="1" /> <!-- Armor Pack (C-grade) (30-day)-->
<item itemId="22618" count="1" /> <!-- Jewelry Pack (C-grade)-->
</item>
<item id="1011344" cat="4" paymentType="0" price="1" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="52" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22579" count="1" /> <!-- Weapon Pack (B-grade) (30-day)-->
<item itemId="22584" count="1" /> <!-- Armor Pack (B-grade) (30-day)-->
<item itemId="22617" count="1" /> <!-- Jewelry Pack (B-grade)-->
</item>
<item id="1011345" cat="4" paymentType="0" price="1" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="61" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22580" count="1" /> <!-- Weapon Pack (A-grade) (30-day)-->
<item itemId="22585" count="1" /> <!-- Armor Pack (A-grade) (30-day)-->
<item itemId="22616" count="1" /> <!-- Jewelry Pack (A-grade)-->
</item>
<item id="1011346" cat="4" paymentType="0" price="1" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="76" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22571" count="1" /> <!-- Agathion Pack (7-day)-->
<item itemId="22581" count="1" /> <!-- Weapon Pack (S-grade) (90-day)-->
<item itemId="22586" count="1" /> <!-- Armor Pack (S-grade) (90-day)-->
<item itemId="22619" count="1" /> <!-- Dynasty Accessory of Fortune Pack (S-grade)-->
</item>
<item id="1011347" cat="4" paymentType="0" price="1" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="80" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="21375" count="1" /> <!-- Mount - Darkmane Pacer Pack (30-day)-->
<item itemId="23127" count="1" /> <!-- Armor Pack (S80-grade) (90-day)-->
<item itemId="23128" count="1" /> <!-- Weapon Pack (S80-grade) (90-day)-->
<item itemId="23129" count="1" /> <!-- Accessory Pack (S80-grade) (90-day)-->
</item>
<item id="1011348" cat="2" paymentType="0" price="120" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="2" /> <!-- Hero Coin-->
<item itemId="40056" count="1" /> <!-- Mysterious Wind Scroll-->
</item>
<item id="1011366" cat="3" paymentType="0" price="400" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="5" /> <!-- Hero Coin-->
<item itemId="23878" count="1" /> <!-- Samurai Hair Accessory Appearance Stone-->
<item itemId="23880" count="1" /> <!-- Samurai Outfit Appearance Stone-->
</item>
<item id="1011367" cat="3" paymentType="0" price="400" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23531" count="1" /> <!-- Automatic Appearance Stone: Japanese Weapon-->
<item itemId="23805" count="5" /> <!-- Hero Coin-->
</item>
<item id="1011370" cat="4" paymentType="1" price="1" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="-1" availableCount="1" >
<item itemId="26223" count="1" /> <!-- Steel Support Box-->
</item>
<item id="1011373" cat="4" paymentType="0" price="400" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="20553" count="1" /> <!-- XP Rune III (Lv. 1-99) 50% Pack (7-day)-->
<item itemId="21092" count="1" /> <!-- SP Rune 50% Pack (7-day)-->
<item itemId="22768" count="1" /> <!-- Drop Rate Rune 50% Pack (7-day)-->
<item itemId="23805" count="5" /> <!-- Hero Coin-->
<item itemId="37659" count="4" /> <!-- Mysterious Healthy Juice (HP/CP)-->
</item>
<item id="1011374" cat="4" paymentType="0" price="1200" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23276" count="1" /> <!-- XP Rune III (Lv. 1-99) 50% Pack (30-day)-->
<item itemId="23283" count="1" /> <!-- SP Rune 50% Pack (30-day)-->
<item itemId="23296" count="1" /> <!-- Drop Rate Rune 50% Pack (30-day)-->
<item itemId="23805" count="17" /> <!-- Hero Coin-->
<item itemId="37659" count="12" /> <!-- Mysterious Healthy Juice (HP/CP)-->
</item>
<item id="1011375" cat="4" paymentType="0" price="3600" panelType="4" recommended="2" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23279" count="1" /> <!-- XP Rune III (Lv. 1-99) 100% Pack (30-day)-->
<item itemId="23286" count="1" /> <!-- SP Rune 100% Pack (30-day)-->
<item itemId="23297" count="1" /> <!-- Drop Rate Rune 100% Pack (30-day)-->
<item itemId="23805" count="54" /> <!-- Hero Coin-->
<item itemId="37659" count="36" /> <!-- Mysterious Healthy Juice (HP/CP)-->
</item>
<item id="1011388" cat="6" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="38097" count="1" /> <!-- Emperor's Rune Pack (2-hour)-->
</item>
<item id="1011389" cat="6" paymentType="0" price="40" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="37563" count="1" /> <!-- Emperor's Growth Scroll-->
</item>
<item id="1011390" cat="4" paymentType="0" price="1" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="40" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22248" count="1" /> <!-- Mysterious Soulshot Pack-->
</item>
<item id="1011391" cat="4" paymentType="0" price="1" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="40" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22253" count="1" /> <!-- Mysterious Blessed Spiritshot Pack-->
</item>
<item id="1011400" cat="7" paymentType="2" price="1" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="1538" count="5" /> <!-- Blessed Scroll of Escape-->
</item>
<item id="1011401" cat="7" paymentType="2" price="2" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="35562" count="1" /> <!-- Energy of Destruction-->
</item>
<item id="1011402" cat="7" paymentType="2" price="3" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="37671" count="3" /> <!-- Heavenly Recovery Potion-->
</item>
<item id="1011403" cat="7" paymentType="2" price="4" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="3936" count="2" /> <!-- Blessed Scroll of Resurrection-->
</item>
<item id="1011404" cat="7" paymentType="2" price="5" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="-1" availableCount="1" >
<item itemId="30275" count="1" /> <!-- Scroll: 1,000,000 SP-->
</item>
<item id="1011405" cat="7" paymentType="2" price="8" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="37660" count="1" /> <!-- Magmeld's Instrument-->
</item>
<item id="1011406" cat="7" paymentType="2" price="10" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="35563" count="1" /> <!-- Giant's Energy-->
</item>
<item id="1011407" cat="7" paymentType="2" price="15" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="-1" availableCount="1" >
<item itemId="37622" count="1" /> <!-- Kaliel's Energy Box - Western Winds-->
</item>
<item id="1011408" cat="7" paymentType="2" price="20" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="36978" count="1" /> <!-- Scroll: Enchant Hair Accessory-->
</item>
<item id="1011409" cat="7" paymentType="2" price="25" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23897" count="1" /> <!-- Soul Bottle Pack-->
</item>
<item id="1011410" cat="7" paymentType="2" price="30" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="35749" count="1" /> <!-- Weapon Attribute Change Crystal (R-grade) - Event-->
</item>
<item id="1011411" cat="7" paymentType="2" price="35" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="40198" count="1" /> <!-- Disassembly Recipe Pouch: Armor-->
</item>
<item id="1011412" cat="7" paymentType="2" price="40" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="39337" count="1" /> <!-- Twilight Armor Pack-->
</item>
<item id="1011413" cat="7" paymentType="2" price="45" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="-1" availableCount="1" >
<item itemId="35666" count="1" /> <!-- Scroll: 100,000 Individual Fame-->
</item>
<item id="1011414" cat="7" paymentType="2" price="50" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="39738" count="1" /> <!-- Rune Stone-->
</item>
<item id="1011415" cat="7" paymentType="2" price="65" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="40199" count="1" /> <!-- Disassembly Recipe Pouch: Weapon-->
</item>
<item id="1011416" cat="7" paymentType="2" price="75" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="39341" count="1" /> <!-- Elegia Armor Pack-->
</item>
<item id="1011417" cat="7" paymentType="2" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="34774" count="1" /> <!-- Scroll of Blessing (R1-grade) - Event-->
</item>
<item id="1011418" cat="7" paymentType="2" price="90" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="25790" count="2" /> <!-- Ancient Hero's Weapon Pack-->
</item>
<item id="1011419" cat="7" paymentType="2" price="100" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="36515" count="1" /> <!-- Elcyum-->
</item>
<item id="1011420" cat="7" paymentType="2" price="110" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="39361" count="1" /> <!-- Apocalypse Weapon Pack-->
</item>
<item id="1011421" cat="7" paymentType="2" price="120" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="35569" count="1" /> <!-- Bloody Eternal Enhancement Stone-->
</item>
<item id="1011422" cat="7" paymentType="2" price="135" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="39331" count="1" /> <!-- Seraph Armor Pack-->
</item>
<item id="1011425" cat="7" paymentType="2" price="225" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="39353" count="1" /> <!-- Specter Weapon Pack-->
</item>
<item id="1011426" cat="7" paymentType="2" price="250" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="10296" count="1" /> <!-- Transformation Sealbook: Anakim-->
</item>
<item id="1011427" cat="7" paymentType="2" price="300" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="39325" count="1" /> <!-- Eternal Armor Pack-->
</item>
<item id="1011428" cat="7" paymentType="2" price="350" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="35567" count="1" /> <!-- Dark Eternal Enhancement Stone-->
</item>
<item id="1011429" cat="7" paymentType="2" price="400" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="-1" availableCount="1" >
<item itemId="39345" count="1" /> <!-- Amaranthine Weapon Pack-->
</item>
<item id="1011430" cat="7" paymentType="2" price="500" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="34775" count="1" /> <!-- Scroll of Blessing (R2-grade) - Event-->
</item>
<item id="1011431" cat="7" paymentType="2" price="1000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="-1" availableCount="5" >
<item itemId="22430" count="1" /> <!-- Heavenly Scroll: Enchant Armor (R-grade)-->
</item>
<item id="1011432" cat="7" paymentType="2" price="1250" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="35667" count="1" /> <!-- Tauti's Fragment-->
</item>
<item id="1011433" cat="7" paymentType="2" price="2500" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="37623" count="1" /> <!-- Soul Bottle Pack - Western Winds-->
</item>
<item id="1011434" cat="7" paymentType="2" price="3000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="34776" count="1" /> <!-- Scroll of Blessing (R95-grade) - Event-->
</item>
<item id="1011435" cat="7" paymentType="2" price="5000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="35568" count="1" /> <!-- Bloody Amaranthine Enhancement Stone-->
</item>
<item id="1011436" cat="7" paymentType="2" price="6000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="37714" count="1" /> <!-- Talisman - Lilith-->
</item>
<item id="1011437" cat="7" paymentType="2" price="10000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="35649" count="1" /> <!-- Sealed Talisman - Longing-->
</item>
<item id="1011438" cat="7" paymentType="2" price="12500" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="37715" count="1" /> <!-- Talisman - Anakim-->
</item>
<item id="1011439" cat="7" paymentType="2" price="15000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="35566" count="1" /> <!-- Dark Amaranthine Enhancement Stone-->
</item>
<item id="1011440" cat="7" paymentType="2" price="20000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="37716" count="1" /> <!-- Seven Signs' Energy-->
</item>
<item id="1011441" cat="7" paymentType="2" price="25000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="34777" count="1" /> <!-- Scroll of Blessing (R99-grade) - Event-->
</item>
<item id="1011442" cat="7" paymentType="2" price="30000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="35564" count="1" /> <!-- Ruler's Authority-->
</item>
<item id="1011443" cat="7" paymentType="2" price="40000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="19464" count="1" /> <!-- Blessed Valakas' Necklace-->
</item>
<item id="1011444" cat="7" paymentType="2" price="50000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="19463" count="1" /> <!-- Blessed Antharas' Earring-->
</item>
<item id="1011445" cat="7" paymentType="2" price="100000" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="36946" count="1" /> <!-- Lindvior's Earring-->
</item>
<item id="1011446" cat="2" paymentType="0" price="80" panelType="0" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="10649" count="1" /> <!-- Feather of Blessing-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1011447" cat="2" paymentType="0" price="80" panelType="0" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="38581" count="1" /> <!-- Emperor's Dessert Set (Attack Type)-->
</item>
<item id="1011448" cat="2" paymentType="0" price="80" panelType="0" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="38582" count="1" /> <!-- Emperor's Dessert Set (Magic Type)-->
</item>
<item id="1011449" cat="2" paymentType="0" price="80" panelType="0" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="38583" count="1" /> <!-- Emperor's Dessert Set (Defense Type)-->
</item>
<item id="1011450" cat="2" paymentType="0" price="80" panelType="0" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="36013" count="1" /> <!-- Heavenly CP Cookie - Event-->
</item>
<item id="1011451" cat="2" paymentType="0" price="80" panelType="0" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="1" /> <!-- Hero Coin-->
<item itemId="23909" count="1" /> <!-- Mysterious World Boss Defense Dye - P. Def., M. Def., 7-day-->
</item>
<item id="1011456" cat="7" paymentType="2" price="150" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="34954" count="1" /> <!-- Lv. 5 Legendary Dye Pack - Event-->
</item>
<item id="1011457" cat="2" paymentType="0" price="400" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="0" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22902" count="1" /> <!-- Spellbook: Expand Warehouse Lv. 1-->
<item itemId="22903" count="1" /> <!-- Spellbook: Expand Warehouse Lv. 2-->
<item itemId="23805" count="5" /> <!-- Hero Coin-->
</item>
<item id="1011458" cat="2" paymentType="0" price="400" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="22900" count="1" /> <!-- Expand Inventory Lv. 1-->
<item itemId="22901" count="1" /> <!-- Expand Inventory Lv. 2-->
<item itemId="23805" count="5" /> <!-- Hero Coin-->
</item>
<item id="1011459" cat="2" paymentType="0" price="80" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="13015" count="1" /> <!-- My Teleport Book-->
<item itemId="20025" count="50" /> <!-- My Teleport Scroll-->
<item itemId="20033" count="50" /> <!-- My Teleport Flag-->
<item itemId="23805" count="1" /> <!-- Hero Coin-->
</item>
<item id="1011460" cat="6" paymentType="0" price="400" panelType="0" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="5" /> <!-- Hero Coin-->
<item itemId="37903" count="1" /> <!-- SP Rune Pack (Top-grade) (7-day)-->
</item>
<item id="1011462" cat="6" paymentType="0" price="60" panelType="4" recommended="0" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="38099" count="1" /> <!-- Leona's Scroll: Buffs-->
</item>
<item id="1011468" cat="5" paymentType="0" price="5760" panelType="2" recommended="5" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="10" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="86" /> <!-- Hero Coin-->
<item itemId="35562" count="100" /> <!-- Energy of Destruction-->
<item itemId="35563" count="120" /> <!-- Giant's Energy-->
<item itemId="36186" count="1" /> <!-- Kaliel's Energy - Desire-->
</item>
<item id="1011469" cat="4" paymentType="0" price="400" panelType="2" recommended="1" startSale="1426662000" endSale="1427882400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="37" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="5" /> <!-- Hero Coin-->
<item itemId="23855" count="1" /> <!-- Golden Crate-->
</item>
<item id="1011470" cat="4" paymentType="0" price="200" panelType="2" recommended="1" startSale="1426662000" endSale="1427882400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="37" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="3" /> <!-- Hero Coin-->
<item itemId="23856" count="1" /> <!-- Silver Crate-->
</item>
<item id="1011471" cat="4" paymentType="0" price="1200" panelType="3" recommended="1" startSale="1426662000" endSale="1427882400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="15" /> <!-- Hero Coin-->
<item itemId="24344" count="1" /> <!-- Lesser Giant's Lucky Enchant Stone: Weapon Pack (R-grade)-->
</item>
<item id="1011472" cat="4" paymentType="0" price="800" panelType="3" recommended="1" startSale="1426662000" endSale="1427882400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="10" /> <!-- Hero Coin-->
<item itemId="24346" count="1" /> <!-- Lesser Giant's Lucky Enchant Stone: Armor Pack (R-grade)-->
</item>
<item id="1011473" cat="3" paymentType="0" price="1600" panelType="3" recommended="1" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="85" maxLevel="0" minBirthday="0" maxBirthday="0" restrictionDay="0" availableCount="0" >
<item itemId="23805" count="20" /> <!-- Hero Coin-->
<item itemId="40270" count="1" /> <!-- Appearance Stone: Dark Assassin Suit-->
</item>
</list>

View File

@ -28,6 +28,9 @@
<br>Messiah Fortress</font><br1>
<button action="bypass -h admin_move_to -248520 133016 1048" value="Entrace" width=150 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br1>
<button action="bypass -h admin_move_to -245752 150392 11840" value="Boss Area" width=150 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br1>
<br>Etina Great Temple</font><br1>
<button action="bypass -h admin_move_to -245785 184706 3059" value="Exterior" width=150 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br1>
<button action="bypass -h admin_move_to -245791 192554 3059" value="Interior" width=150 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"><br1>
</center>
<br>
</body></html>

View File

@ -1,7 +1,7 @@
<html><body>
<center>
<font color="LEVEL">[The Town of %TOWN_NAME%]</font><br>
<img src="L2font-e.MAP_AGIT_%MAP%" width=270 height=270><br><br>
<img src="L2font-eu.MAP_AGIT_%MAP%" width=270 height=270><br><br>
</center>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest ClanHallAuctioneer ClanHallAuctioneer.html">Back</Button>
</body></html>

View File

@ -39,6 +39,7 @@ public final class EffectMasterHandler
EffectHandler.getInstance().registerHandler("AddHate", AddHate::new);
EffectHandler.getInstance().registerHandler("AddSkillBySkill", AddSkillBySkill::new);
EffectHandler.getInstance().registerHandler("AddTeleportBookmarkSlot", AddTeleportBookmarkSlot::new);
EffectHandler.getInstance().registerHandler("AgathionSlot", AgathionSlot::new);
EffectHandler.getInstance().registerHandler("AirBind", AirBind::new);
EffectHandler.getInstance().registerHandler("AreaDamage", AreaDamage::new);
EffectHandler.getInstance().registerHandler("AttackAttribute", AttackAttribute::new);

View File

@ -236,7 +236,7 @@ public class AdminCreateItem implements IAdminCommandHandler
}
player.getInventory().destroyItem("AdminDelete", idval, numval, activeChar, null);
activeChar.sendPacket(new GMViewItemList(player));
activeChar.sendPacket(new GMViewItemList(1, player));
BuilderUtil.sendSysMessage(activeChar, "Item deleted.");
}
else
@ -273,7 +273,7 @@ public class AdminCreateItem implements IAdminCommandHandler
ih.useItem(player, item, false);
}
}
activeChar.sendPacket(new GMViewItemList(player));
activeChar.sendPacket(new GMViewItemList(1, player));
}
else
{

View File

@ -811,7 +811,7 @@ public class AdminEditChar implements IAdminCommandHandler
if ((target != null) && target.isPet())
{
activeChar.sendPacket(new GMViewItemList((L2PetInstance) target));
activeChar.sendPacket(new GMViewItemList(1, (L2PetInstance) target));
}
else
{

View File

@ -29,6 +29,7 @@ import com.l2jmobius.gameserver.data.xml.impl.AppearanceItemData;
import com.l2jmobius.gameserver.data.xml.impl.ArmorSetsData;
import com.l2jmobius.gameserver.data.xml.impl.AttendanceRewardData;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
import com.l2jmobius.gameserver.data.xml.impl.ClanShopData;
import com.l2jmobius.gameserver.data.xml.impl.DoorData;
import com.l2jmobius.gameserver.data.xml.impl.EnchantItemData;
import com.l2jmobius.gameserver.data.xml.impl.EnchantItemGroupsData;
@ -69,7 +70,7 @@ public class AdminReload implements IAdminCommandHandler
"admin_reload"
};
private static final String RELOAD_USAGE = "Usage: //reload <config|access|npc|quest [quest_id|quest_name]|walker|htm[l] [file|directory]|multisell|buylist|teleport|skill|item|door|effect|handler|enchant|options|fishing>";
private static final String RELOAD_USAGE = "Usage: //reload <config|access|npc|quest [quest_id|quest_name]|walker|htm[l] [file|directory]|multisell|buylist|teleport|skill|item|door|effect|handler|enchant|options|fishing|clanshop>";
@Override
public boolean useAdminCommand(String command, L2PcInstance activeChar)
@ -325,6 +326,12 @@ public class AdminReload implements IAdminCommandHandler
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Fake Player Chat data.");
break;
}
case "clanshop":
{
ClanShopData.getInstance().load();
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Clan Shop data.");
break;
}
default:
{
activeChar.sendMessage(RELOAD_USAGE);

View File

@ -102,7 +102,8 @@ public class ClanWarehouse implements IBypassHandler
}
}
activeChar.sendPacket(new WareHouseWithdrawalList(activeChar, WareHouseWithdrawalList.CLAN));
activeChar.sendPacket(new WareHouseWithdrawalList(1, activeChar, WareHouseWithdrawalList.CLAN));
activeChar.sendPacket(new WareHouseWithdrawalList(2, activeChar, WareHouseWithdrawalList.CLAN));
return true;
}
else if (command.toLowerCase().startsWith(COMMANDS[1])) // DepositC
@ -110,7 +111,8 @@ public class ClanWarehouse implements IBypassHandler
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
activeChar.setActiveWarehouse(activeChar.getClan().getWarehouse());
activeChar.setInventoryBlockingStatus(true);
activeChar.sendPacket(new WareHouseDepositList(activeChar, WareHouseDepositList.CLAN));
activeChar.sendPacket(new WareHouseDepositList(1, activeChar, WareHouseDepositList.CLAN));
activeChar.sendPacket(new WareHouseDepositList(2, activeChar, WareHouseDepositList.CLAN));
return true;
}

View File

@ -59,7 +59,8 @@ public class Freight implements IBypassHandler
activeChar.getActiveWarehouse().destroyItem("L2ItemInstance", i, activeChar, null);
}
}
activeChar.sendPacket(new WareHouseWithdrawalList(activeChar, WareHouseWithdrawalList.FREIGHT));
activeChar.sendPacket(new WareHouseWithdrawalList(1, activeChar, WareHouseWithdrawalList.FREIGHT));
activeChar.sendPacket(new WareHouseWithdrawalList(2, activeChar, WareHouseWithdrawalList.FREIGHT));
}
else
{

View File

@ -160,7 +160,7 @@ public class Observation implements IBypassHandler
{
// enter mode
player.enterObserverMode(pos);
player.sendItemList(false);
player.sendItemList();
}
player.sendPacket(ActionFailed.STATIC_PACKET);
}

View File

@ -65,7 +65,8 @@ public class PrivateWarehouse implements IBypassHandler
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
activeChar.setActiveWarehouse(activeChar.getWarehouse());
activeChar.setInventoryBlockingStatus(true);
activeChar.sendPacket(new WareHouseDepositList(activeChar, WareHouseDepositList.PRIVATE));
activeChar.sendPacket(new WareHouseDepositList(1, activeChar, WareHouseDepositList.PRIVATE));
activeChar.sendPacket(new WareHouseDepositList(2, activeChar, WareHouseDepositList.PRIVATE));
return true;
}
@ -89,7 +90,8 @@ public class PrivateWarehouse implements IBypassHandler
return;
}
player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.PRIVATE));
player.sendPacket(new WareHouseWithdrawalList(1, player, WareHouseWithdrawalList.PRIVATE));
player.sendPacket(new WareHouseWithdrawalList(2, player, WareHouseWithdrawalList.PRIVATE));
}
@Override

View File

@ -0,0 +1,31 @@
/*
* 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 handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.stats.Stats;
/**
* @author Mobius
*/
public class AgathionSlot extends AbstractStatAddEffect
{
public AgathionSlot(StatsSet params)
{
super(params, Stats.AGATHION_SLOTS);
}
}

View File

@ -101,14 +101,16 @@ public final class PrivateStore implements IPlayerActionHandler
case PACKAGE_SELL:
{
activeChar.setPrivateStoreType(PrivateStoreType.SELL_MANAGE);
activeChar.sendPacket(new PrivateStoreManageListSell(activeChar, type == PrivateStoreType.PACKAGE_SELL));
activeChar.sendPacket(new PrivateStoreManageListSell(1, activeChar, type == PrivateStoreType.PACKAGE_SELL));
activeChar.sendPacket(new PrivateStoreManageListSell(2, activeChar, type == PrivateStoreType.PACKAGE_SELL));
break;
}
case BUY:
case BUY_MANAGE:
{
activeChar.setPrivateStoreType(PrivateStoreType.BUY_MANAGE);
activeChar.sendPacket(new PrivateStoreManageListBuy(activeChar));
activeChar.sendPacket(new PrivateStoreManageListBuy(1, activeChar));
activeChar.sendPacket(new PrivateStoreManageListBuy(2, activeChar));
break;
}
case MANUFACTURE:

View File

@ -266,6 +266,20 @@
<set name="is_sellable" val="false" />
<set name="is_stackable" val="true" />
</item>
<item id="29078" name="Greater Vital Stone" type="Armor">
<!-- Increases Vitality Status Bonus XP by 30% and the Vitality Point Consumption Speed decreases by 15%. XP Gain increases by 10% as well. Can use Vital Wind skill. Effect does not stack with additional jewels of the same type. Equipping various Greater Jewels will grant additional effects. -->
<set name="icon" val="icon.bm_jewel_vital_high_lv1_lavianrose" />
<set name="default_action" val="EQUIP" />
<set name="bodypart" val="brooch_jewel" />
<set name="immediate_effect" val="true" />
<set name="weight" val="5" />
<set name="is_sellable" val="false" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<skills>
<skill id="18568" level="6" />
</skills>
</item>
<item id="29080" name="Wondrous Jewelry Box" additionalName="Event" type="EtcItem">
<!-- Double-click to obtain 1 of the following types of items randomly: Lv. 1 La Vie En Rose<73>s Jewelry Box, Radiant Gemstone Fragment, La Vie En Rose's Radiant Brooch Chest, or a very small chance to win a Lv. 3 Jewelry Box. -->
<set name="icon" val="icon.bm_sayha_blessed_box" />

View File

@ -166,16 +166,21 @@
<item id="45415" name="Dandy's Home Run Ball" type="EtcItem">
<!-- For 1 hr., XP/SP gain + 100%, and changes the appearance of your armor into that of a NC Dinos uniform. Cannot be stacked with the Fall of the Dragon or XP Buff 50%. -->
<set name="icon" val="icon.ev_dinos_baseball" />
<set name="handler" val="ItemSkills" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="POTION" />
<set name="immediate_effect" val="true" />
<set name="material" val="LIQUID" />
<set name="weight" val="5" />
<set name="reuse_delay" val="300" />
<set name="is_stackable" val="true" />
<set name="is_clan_depositable" val="false" />
<set name="is_mailable" val="false" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_destroyable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_commissionable" val="false" />
<set name="is_private_storeable" val="false" />
<set name="etcitem_type" val="SCROLL" />
<set name="is_stackable" val="true" />
<set name="commissionItemType" val="POTION" />
<skills>
<skill id="18209" level="1" /> <!-- Dandy's Home Run Ball -->
</skills>
</item>
<item id="45416" name="Blue Save Card (R-grade)" type="EtcItem">
<!-- Enchant success rate + 10% for weapons (R-grade) with a normal enchant scroll. Only for items enchanted between + 3 and + 6. A failed enchant drops the enchant level by 3 instead of crystallizing. -->

View File

@ -495,14 +495,20 @@
<!-- When used, increases Max HP/MP/CP 10%, P. Atk. 20%, M. Atk. 30%, P. Def/M. Def 10%, and Accuracy by 4, Magic Accuracy by 4, P. Atk./Casting Spd. by 10%, Movement Speed by 10, Attack Attribute by 100, and reduces Skill MP Consumption by 10% for 30 minutes. Additionally Increases XP by 30%, and grants 12% bonus Vitality. Buff effect persists through death. Cooldown Time 5min. Cannot be stacked with 'Art of Seduction'. Cannot be used in the Olympiad. Will be deleted on June 15, 2016 (Wed) after regular maintenance. -->
<set name="icon" val="icon.nshop_bless_of_paagrio" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="material" val="PAPER" />
<set name="immediate_effect" val="true" />
<set name="reuse_delay" val="300000" />
<set name="weight" val="1" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_depositable" val="false" />
<set name="is_clan_depositable" val="false" />
<set name="is_mailable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_commissionable" val="false" />
<set name="etcitem_type" val="POTION" />
<set name="is_stackable" val="true" />
<set name="is_private_storeable" val="false" />
<set name="is_oly_restricted" val="true" />
<set name="handler" val="ItemSkills" />
<skills>
<skill id="18703" level="1" /> <!-- Pa'agrio's Blessing - EXP -->
</skills>
</item>
<item id="47738" name="Test Fishing Rod" type="Weapon">
<!-- Fishing Time Reduction: 60s. A fast fishing rod for test purposes. Fishing Shot: 1 -->

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/items.xsd">
<item id="48133" name="Agathion - Joon Charm (30-day)" type="Armor">
<!-- Charm that summons an Agathion - Joon. 30-day limited item. Cannot be used in the Olympiad. -->
<set name="icon" val="icon.lbracelet_agathion_charm]" />
<set name="default_action" val="EQUIP" />
<set name="is_clan_depositable" val="false" />
<set name="is_mailable" val="false" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_commissionable" val="false" />
<set name="is_private_storeable" val="false" />
<set name="weight" val="150" />
<set name="bodypart" val="lbracelet" />
<set name="immediate_effect" val="true" />
<set name="time" val="43200" />
<skills>
<skill id="3267" level="1" /> <!-- Seal Agathion -->
<skill id="18172" level="1" /> <!-- Joon's Magic -->
<skill id="18173" level="1" /> <!-- Joon's Ressurection -->
<skill id="18174" level="1" /> <!-- Agathion - Joon -->
<skill id="18175" level="1" /> <!-- Joon's Cute Trick -->
</skills>
</item>
</list>

View File

@ -198,4 +198,251 @@
<set name="is_stackable" val="true" />
<set name="is_private_storeable" val="false" />
</item>
<item id="48282" name="Party Scroll of Escape" type="EtcItem">
<!-- A magical scroll that teleports the entire party to the nearest village. -->
<set name="icon" val="icon.etc_scroll_of_return_i01" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="is_clan_depositable" val="false" />
<set name="is_mailable" val="false" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_commissionable" val="false" />
<set name="is_private_storeable" val="false" />
<set name="etcitem_type" val="SCROLL" />
<set name="material" val="PAPER" />
<set name="weight" val="120" />
<set name="price" val="0" />
<set name="is_stackable" val="true" />
<set name="is_oly_restricted" val="true" />
<set name="handler" val="ItemSkills" />
<set name="commissionItemType" val="SCROLL_OTHER" />
<skills>
<skill id="39172" level="1" /> <!-- Party Scroll of Escape -->
</skills>
</item>
<item id="48283" name="Stealth Detector" type="EtcItem">
<!-- Salvation : Use it to fire a flash bang that reveals hidden targets around you. -->
<set name="icon" val="icon.etc_unholy_crystal_1_i00" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="is_clan_depositable" val="false" />
<set name="is_mailable" val="false" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_commissionable" val="false" />
<set name="is_private_storeable" val="false" />
<set name="is_oly_restricted" val="true" />
<set name="etcitem_type" val="SCROLL" />
<set name="material" val="PAPER" />
<set name="weight" val="100" />
<set name="price" val="0" />
<set name="is_stackable" val="true" />
<set name="handler" val="ItemSkills" />
<set name="commissionItemType" val="SCROLL_OTHER" />
<skills>
<skill id="39173" level="1" /> <!-- Stealth Detector -->
</skills>
</item>
<item id="48285" name="Scroll PK" type="EtcItem">
<!-- Double-click to lower PK value by 1. -->
<set name="icon" val="icon.etc_ev_draco_pk_count_down" />
<set name="weight" val="10" />
<set name="is_stackable" val="true" />
<set name="is_clan_depositable" val="false" />
<set name="is_mailable" val="false" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_commissionable" val="false" />
<set name="is_private_storeable" val="false" />
<set name="is_oly_restricted" val="true" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="SCROLL" />
<set name="handler" val="ItemSkills" />
<set name="commissionItemType" val="SCROLL_OTHER" />
<skills>
<skill id="39175" level="1" /> <!-- Scroll: PK -->
</skills>
</item>
<item id="48286" name="Scroll: Reputation" type="EtcItem">
<!-- Double-click to increase reputation points by 30000.Cannot be used when equipped with Demonic Sword Zariche or Blood Sword Akamanah. -->
<set name="icon" val="icon.etc_ev_draco_karma_down" />
<set name="is_clan_depositable" val="false" />
<set name="is_mailable" val="false" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_private_storeable" val="false" />
<set name="is_oly_restricted" val="true" />
<set name="is_freightable" val="true" />
<set name="commissionItemType" val="SCROLL_OTHER" />
<set name="default_action" val="SKILL_REDUCE" />
<set name="etcitem_type" val="SCROLL" />
<set name="handler" val="ItemSkills" />
<set name="is_stackable" val="true" />
<skills>
<skill id="22754" level="1" /> <!-- Scroll: Reputation -->
</skills>
</item>
<item id="48287" name="Snow Kung Transformation Stick" additionalName="15-day" type="Weapon">
<!-- Transformation stick that turns you into Snow Kung. 15-day. -->
<set name="icon" val="icon.weapon_snowman_stick_i00" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="SWORD" />
<set name="bodypart" val="rhand" />
<set name="damage_range" val="0;0;40;120" />
<set name="immediate_effect" val="true" />
<set name="material" val="STEEL" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_premium" val="true" />
<set name="is_clan_depositable" val="false" />
<set name="is_mailable" val="false" />
<set name="is_commissionable" val="false" />
<set name="is_private_storeable" val="false" />
<set name="time" val="21600" />
<set name="is_destroyable" val="false" />
<skills>
<skill id="839" level="1" type="ON_UNEQUIP" /> <!-- Dismount -->
<skill id="8263" level="1" /> <!-- Transform Snow Kung -->
</skills>
<stats>
<stat type="pAtk">1</stat>
<stat type="mAtk">1</stat>
<stat type="rCrit">8</stat>
<stat type="pAtkSpd">379</stat>
<stat type="randomDamage">10</stat>
<stat type="pAtkRange">40</stat>
</stats>
</item>
<item id="48288" name="Scarecrow Jack Transformation Stick" additionalName="15-day" type="Weapon">
<!-- Transformation stick that turns you into a Scarecrow Jack. 15-day. -->
<set name="icon" val="icon.weapon_scarescow_stick_i00" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="SWORD" />
<set name="bodypart" val="rhand" />
<set name="damage_range" val="0;0;40;120" />
<set name="immediate_effect" val="true" />
<set name="material" val="STEEL" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_premium" val="true" />
<set name="is_clan_depositable" val="false" />
<set name="is_mailable" val="false" />
<set name="is_commissionable" val="false" />
<set name="is_private_storeable" val="false" />
<set name="time" val="21600" />
<set name="is_destroyable" val="false" />
<skills>
<skill id="839" level="1" type="ON_UNEQUIP" /> <!-- Dismount -->
<skill id="8264" level="1" /> <!-- Transform Scarecrow Jack -->
</skills>
<stats>
<stat type="pAtk">1</stat>
<stat type="mAtk">1</stat>
<stat type="rCrit">8</stat>
<stat type="pAtkSpd">379</stat>
<stat type="randomDamage">10</stat>
<stat type="pAtkRange">40</stat>
</stats>
</item>
<item id="48289" name="Tin Golem Transformation Stick" additionalName="15-day" type="Weapon">
<!-- Transformation stick that turns you into a Tin Golem. 15-day. -->
<set name="icon" val="icon.weapon_tin_golem_stick_i00" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="SWORD" />
<set name="bodypart" val="rhand" />
<set name="damage_range" val="0;0;40;120" />
<set name="immediate_effect" val="true" />
<set name="material" val="STEEL" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_premium" val="true" />
<set name="is_clan_depositable" val="false" />
<set name="is_mailable" val="false" />
<set name="is_commissionable" val="false" />
<set name="is_private_storeable" val="false" />
<set name="time" val="41600" />
<set name="is_destroyable" val="false" />
<skills>
<skill id="839" level="1" type="ON_UNEQUIP" /> <!-- Dismount -->
<skill id="8265" level="1" /> <!-- Transform Tin Golem -->
</skills>
<stats>
<stat type="pAtk">1</stat>
<stat type="mAtk">1</stat>
<stat type="rCrit">8</stat>
<stat type="pAtkSpd">379</stat>
<stat type="randomDamage">10</stat>
<stat type="pAtkRange">40</stat>
</stats>
</item>
<item id="48290" name="Gatekeeper Transformation Stick" additionalName="15-day" type="Weapon">
<!-- Allows you to transform into a Gatekeeper for 15-day. -->
<set name="icon" val="icon.etc_gateleeper_stick_i00" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="SWORD" />
<set name="bodypart" val="rhand" />
<set name="damage_range" val="0;0;40;120" />
<set name="immediate_effect" val="true" />
<set name="material" val="STEEL" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_oly_restricted" val="true" />
<set name="is_clan_depositable" val="false" />
<set name="is_mailable" val="false" />
<set name="is_commissionable" val="false" />
<set name="is_private_storeable" val="false" />
<set name="time" val="41600" />
<set name="useSkillDisTime" val="1" />
<skills>
<skill id="839" level="1" type="ON_UNEQUIP" /> <!-- Dismount -->
<skill id="8244" level="1" /> <!-- Transform Gatekeeper -->
</skills>
<stats>
<stat type="pAtk">1</stat>
<stat type="mAtk">1</stat>
<stat type="rCrit">8</stat>
<stat type="pAtkSpd">379</stat>
<stat type="randomDamage">10</stat>
<stat type="pAtkRange">40</stat>
</stats>
</item>
<item id="48291" name="Aqua Elf Transformation Harp" additionalName="15-day" type="Weapon">
<!-- Transformation stick that turns you into an Aqua Elf. 15 days. -->
<set name="icon" val="icon.harp_of_transform_i00" />
<set name="default_action" val="EQUIP" />
<set name="weapon_type" val="SWORD" />
<set name="bodypart" val="rhand" />
<set name="damage_range" val="0;0;40;120" />
<set name="immediate_effect" val="true" />
<set name="material" val="STEEL" />
<set name="is_tradable" val="false" />
<set name="is_dropable" val="false" />
<set name="is_sellable" val="false" />
<set name="is_premium" val="true" />
<set name="is_clan_depositable" val="false" />
<set name="is_mailable" val="false" />
<set name="is_commissionable" val="false" />
<set name="is_private_storeable" val="false" />
<set name="time" val="41600" />
<set name="is_destroyable" val="false" />
<skills>
<skill id="839" level="1" type="ON_UNEQUIP" /> <!-- Dismount -->
<skill id="2994" level="1" /> <!-- Transformation Harp: Aqua Elf -->
</skills>
<stats>
<stat type="pAtk">1</stat>
<stat type="mAtk">1</stat>
<stat type="rCrit">8</stat>
<stat type="pAtkSpd">379</stat>
<stat type="randomDamage">10</stat>
<stat type="pAtkRange">40</stat>
</stats>
</item>
</list>

View File

@ -46,12 +46,42 @@
<operateType>A1</operateType>
</skill>
<skill id="18209" toLevel="1" name="Dandy's Home Run Ball">
<!-- AUTO GENERATED SKILL -->
<!-- Increases XP and SP by 100% for 1 hr. The appearace of the armor will change to NC Dinos' uniform. Cannot be stacked with Fall of the Dragon. -->
<icon>icon.ev_dinos_baseball</icon>
<abnormalLvl>1</abnormalLvl>
<abnormalTime>3600</abnormalTime>
<abnormalType>TRANSFORM</abnormalType>
<abnormalVisualEffect>CHANGE_DINOS</abnormalVisualEffect>
<operateType>A2</operateType>
<reuseDelay>15000</reuseDelay>
<isMagic>4</isMagic>
<effectPoint>1</effectPoint>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<specialLevel>-1</specialLevel>
<hitCancelTime>0</hitCancelTime>
<irreplacableBuff>true</irreplacableBuff>
<isMagic>2</isMagic>
<hitTime>1000</hitTime>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<reuseDelayType>S</reuseDelayType>
<effects>
<effect name="ExpModify">
<amount>100</amount>
<mode>PER</mode>
</effect>
<effect name="SpModify">
<amount>100</amount>
<mode>PER</mode>
</effect>
<effect name="DispelBySlot">
<dispel>
<value level="1">CHANGEBODY,-1</value>
<value level="2">TURN_STONE,-1</value>
<value level="3">BUFF_SPECIAL_MULTI,-1</value>
</dispel>
</effect>
</effects>
</skill>
<skill id="18210" toLevel="1" name="Alien Power">
<!-- AUTO GENERATED SKILL -->

View File

@ -552,14 +552,211 @@
</effects>
</skill>
<skill id="18727" toLevel="1" name="Pa??agrio??s Blessing - Might">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLvl>2</abnormalLvl>
<abnormalTime>1800</abnormalTime>
<abnormalType>BR_EVENT_BUF1</abnormalType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>3000</hitTime>
<coolTime>3000</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>1</effectPoint>
<isMagic>2</isMagic>
<stayAfterDeath>true</stayAfterDeath>
<effects>
<effect name="MaxHp">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="MaxMp">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="MaxCp">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalDefence">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalDefence">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="PAtk">
<amount>20</amount>
<mode>PER</mode>
</effect>
<effect name="MAtk">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="MagicAccuracy">
<amount>4</amount>
<mode>DIFF</mode>
</effect>
<effect name="Accuracy">
<amount>4</amount>
<mode>DIFF</mode>
</effect>
<effect name="MagicalAttackSpeed">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalAttackSpeed">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="Speed">
<amount>10</amount>
<mode>DIFF</mode>
</effect>
<effect name="PhysicalSkillPower">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalSkillPower">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>FIRE</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>WATER</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>EARTH</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>WIND</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>HOLY</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>DARK</attribute>
</effect>
</effects>
</skill>
<skill id="18728" toLevel="1" name="Pa??agrio??s Blessing - EXP">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLvl>2</abnormalLvl>
<abnormalTime>1800</abnormalTime>
<abnormalType>BR_EVENT_BUF1</abnormalType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>3000</hitTime>
<coolTime>3000</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>1</effectPoint>
<isMagic>2</isMagic>
<stayAfterDeath>true</stayAfterDeath>
<effects>
<effect name="MaxHp">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="MaxMp">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="MaxCp">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalDefence">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalDefence">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="PAtk">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="MAtk">
<amount>20</amount>
<mode>PER</mode>
</effect>
<effect name="MagicAccuracy">
<amount>4</amount>
<mode>DIFF</mode>
</effect>
<effect name="Accuracy">
<amount>4</amount>
<mode>DIFF</mode>
</effect>
<effect name="MagicalAttackSpeed">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalAttackSpeed">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="Speed">
<amount>20</amount>
<mode>DIFF</mode>
</effect>
<effect name="MagicMpCost">
<amount>-15</amount>
<mode>PER</mode>
<magicType>0</magicType>
</effect>
<effect name="MagicMpCost">
<amount>-15</amount>
<mode>PER</mode>
<magicType>1</magicType>
</effect>
<effect name="ExpModify">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="VitalityPointsRate">
<amount>-12</amount>
<mode>DIFF</mode>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>FIRE</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>WATER</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>EARTH</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>WIND</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>HOLY</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>DARK</attribute>
</effect>
</effects>
</skill>
<skill id="18729" toLevel="1" name="Treat Wounded Soldier">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
@ -1068,14 +1265,180 @@
</effects>
</skill>
<skill id="18743" toLevel="1" name="Pa??agrio??s Blessing - Might">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLvl>2</abnormalLvl>
<abnormalTime>1800</abnormalTime>
<abnormalType>BR_EVENT_BUF1</abnormalType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>3000</hitTime>
<coolTime>3000</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>1</effectPoint>
<isMagic>2</isMagic>
<stayAfterDeath>true</stayAfterDeath>
<effects>
<effect name="MaxHp">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="MaxMp">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="MaxCp">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalDefence">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalDefence">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="PAtk">
<amount>20</amount>
<mode>PER</mode>
</effect>
<effect name="MAtk">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="MagicAccuracy">
<amount>4</amount>
<mode>DIFF</mode>
</effect>
<effect name="Accuracy">
<amount>4</amount>
<mode>DIFF</mode>
</effect>
<effect name="MagicalAttackSpeed">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalAttackSpeed">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="Speed">
<amount>10</amount>
<mode>DIFF</mode>
</effect>
<effect name="PhysicalSkillPower">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalSkillPower">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>FIRE</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>WATER</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>EARTH</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>WIND</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>HOLY</attribute>
</effect>
<effect name="AttackAttribute">
<amount>100</amount>
<attribute>DARK</attribute>
</effect>
</effects>
</skill>
<skill id="18744" toLevel="1" name="Pa??agrio??s Blessing - EXP">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<operateType>A2</operateType>
<abnormalLvl>2</abnormalLvl>
<abnormalTime>1800</abnormalTime>
<abnormalType>BR_EVENT_BUF1</abnormalType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<hitTime>3000</hitTime>
<coolTime>3000</coolTime>
<reuseDelay>300000</reuseDelay>
<effectPoint>1</effectPoint>
<isMagic>2</isMagic>
<stayAfterDeath>true</stayAfterDeath>
<effects>
<effect name="MaxHp">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="MaxMp">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="MaxCp">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalDefence">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalDefence">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="PAtk">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="MAtk">
<amount>20</amount>
<mode>PER</mode>
</effect>
<effect name="MagicAccuracy">
<amount>4</amount>
<mode>DIFF</mode>
</effect>
<effect name="Accuracy">
<amount>4</amount>
<mode>DIFF</mode>
</effect>
<effect name="Speed">
<amount>20</amount>
<mode>DIFF</mode>
</effect>
<effect name="MagicMpCost">
<amount>-15</amount>
<mode>PER</mode>
<magicType>0</magicType>
</effect>
<effect name="MagicMpCost">
<amount>-15</amount>
<mode>PER</mode>
<magicType>1</magicType>
</effect>
<effect name="ExpModify">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="VitalityPointsRate">
<amount>-12</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="18745" toLevel="3" name="Dragon??s Treasure Chest">
<!-- AUTO GENERATED SKILL TODO: FIX IT -->

View File

@ -63,8 +63,8 @@
<affectScope>SINGLE</affectScope>
<passiveConditions>
<condition name="CheckLevel">
<minLevel>20</minLevel>
<maxLevel>85</maxLevel>
<minLevel>85</minLevel>
<maxLevel>127</maxLevel>
<affectType>CASTER</affectType>
</condition>
</passiveConditions>
@ -79,4 +79,45 @@
</effect>
</effects>
</skill>
<skill id="39172" toLevel="1" name="Party Scroll of Escape">
<!-- Salvation -->
<hitTime>200</hitTime>
<isMagic>2</isMagic> <!-- Static Skill -->
<itemConsumeCount>1</itemConsumeCount>
<itemConsumeId>48282</itemConsumeId>
<magicLvl>1</magicLvl>
<operateType>A1</operateType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<targetType>SELF</targetType>
<affectScope>PARTY</affectScope>
<affectObject>FRIEND</affectObject>
<conditions>
<condition name="OpCanEscape" />
</conditions>
<effects>
<effect name="Escape">
<escapeType>TOWN</escapeType>
</effect>
</effects>
</skill>
<skill id="39173" toLevel="1" name="Detection">
<affectRange>300</affectRange>
<effectPoint>-1</effectPoint>
<hitTime>2500</hitTime>
<icon>icon.skill0470</icon>
<magicLvl>74</magicLvl>
<mpConsume>67</mpConsume>
<operateType>A1</operateType>
<reuseDelay>8000</reuseDelay>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<targetType>SELF</targetType>
<affectScope>RANGE</affectScope>
<affectObject>INVISIBLE</affectObject>
<effects>
<effect name="Detection" />
</effects>
</skill>
</list>

View File

@ -8,6 +8,7 @@ Accuracy: P. Accuracy stat.
AddHate: Instant effect that increases target's hate towards you.
AddSkillBySkill: Add skill when other skill already exists. (l2jmobius)
AddTeleportBookmarkSlot: Instant effect that increases the amount of My Teleport slots.
AgathionSlot: Agathion slot modifier. (l2jmobius)
AirBind: Used by airbind chain skills. (l2jmobius)
AreaDamage: Topography (Danger Zone) resistance stat.
AttackAttribute: Stat that increases specific attack attribute.

View File

@ -0,0 +1,19 @@
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="list">
<xs:complexType>
<xs:sequence>
<xs:element name="clan" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:int" name="mastery" use="required"/>
<xs:attribute type="xs:int" name="level" use="required"/>
<xs:attribute type="xs:int" name="previous" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -0,0 +1,21 @@
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="list">
<xs:complexType>
<xs:sequence>
<xs:element name="clan" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:byte" name="level" use="optional"/>
<xs:attribute type="xs:int" name="item" use="optional"/>
<xs:attribute type="xs:byte" name="count" use="optional"/>
<xs:attribute type="xs:long" name="adena" use="optional"/>
<xs:attribute type="xs:int" name="fame" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -50,7 +50,9 @@ import com.l2jmobius.gameserver.data.xml.impl.BeautyShopData;
import com.l2jmobius.gameserver.data.xml.impl.BuyListData;
import com.l2jmobius.gameserver.data.xml.impl.CategoryData;
import com.l2jmobius.gameserver.data.xml.impl.ClanHallData;
import com.l2jmobius.gameserver.data.xml.impl.ClanMasteryData;
import com.l2jmobius.gameserver.data.xml.impl.ClanRewardData;
import com.l2jmobius.gameserver.data.xml.impl.ClanShopData;
import com.l2jmobius.gameserver.data.xml.impl.ClassListData;
import com.l2jmobius.gameserver.data.xml.impl.CombinationItemsData;
import com.l2jmobius.gameserver.data.xml.impl.CubicData;
@ -304,6 +306,8 @@ public class GameServer
ClanHallData.getInstance();
ClanHallAuctionManager.getInstance();
ClanEntryManager.getInstance();
ClanMasteryData.getInstance();
ClanShopData.getInstance();
printSection("Geodata");
long geodataMemory = getUsedMemoryMB();

View File

@ -0,0 +1,90 @@
/*
* 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 com.l2jmobius.gameserver.data.xml.impl;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import org.w3c.dom.Document;
import com.l2jmobius.commons.util.IGameXmlReader;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.holders.ClanMasteryHolder;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* @author Mobius
*/
public class ClanMasteryData implements IGameXmlReader
{
private static Logger LOGGER = Logger.getLogger(ClanMasteryData.class.getName());
private final List<ClanMasteryHolder> _clanMasteryData = new ArrayList<>();
protected ClanMasteryData()
{
load();
}
@Override
public void load()
{
_clanMasteryData.clear();
parseDatapackFile("data/ClanMasteryData.xml");
LOGGER.info(getClass().getSimpleName() + ": Loaded " + _clanMasteryData.size() + " clan masteries.");
}
@Override
public void parseDocument(Document doc, File f)
{
forEach(doc, "list", listNode -> forEach(listNode, "clan", clanNode ->
{
final StatsSet set = new StatsSet(parseAttributes(clanNode));
final int mastery = set.getInt("mastery");
final int level = set.getInt("level");
final int previous = set.getInt("previous");
final Skill skill = SkillData.getInstance().getSkill(mastery, level);
if (skill == null)
{
LOGGER.info(getClass().getSimpleName() + ": Could not create clan mastery, skill id " + mastery + " with level " + level + " does not exist.");
}
else
{
_clanMasteryData.add(new ClanMasteryHolder(skill, previous));
}
}));
}
public List<ClanMasteryHolder> getMasteries()
{
return _clanMasteryData;
}
public static ClanMasteryData getInstance()
{
return SingletonHolder._instance;
}
private static class SingletonHolder
{
protected static final ClanMasteryData _instance = new ClanMasteryData();
}
}

View File

@ -0,0 +1,105 @@
/*
* 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 com.l2jmobius.gameserver.data.xml.impl;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import org.w3c.dom.Document;
import com.l2jmobius.commons.util.IGameXmlReader;
import com.l2jmobius.gameserver.datatables.ItemTable;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.holders.ClanShopProductHolder;
import com.l2jmobius.gameserver.model.items.L2Item;
/**
* @author Mobius
*/
public class ClanShopData implements IGameXmlReader
{
private static Logger LOGGER = Logger.getLogger(ClanShopData.class.getName());
private final List<ClanShopProductHolder> _clanShopProducts = new ArrayList<>();
protected ClanShopData()
{
load();
}
@Override
public void load()
{
_clanShopProducts.clear();
parseDatapackFile("config/ClanShop.xml");
LOGGER.info(getClass().getSimpleName() + ": Loaded " + _clanShopProducts.size() + " clan shop products.");
}
@Override
public void parseDocument(Document doc, File f)
{
forEach(doc, "list", listNode -> forEach(listNode, "clan", productNode ->
{
final StatsSet set = new StatsSet(parseAttributes(productNode));
final int clanLevel = set.getInt("level");
final int itemId = set.getInt("item");
final int count = set.getInt("count");
final long adena = set.getLong("adena");
final int fame = set.getInt("fame");
final L2Item item = ItemTable.getInstance().getTemplate(itemId);
if (item == null)
{
LOGGER.info(getClass().getSimpleName() + ": Could not create clan shop item " + itemId + ", it does not exist.");
}
else
{
_clanShopProducts.add(new ClanShopProductHolder(clanLevel, item, count, adena, fame));
}
}));
}
public ClanShopProductHolder getProduct(int itemId)
{
for (ClanShopProductHolder product : _clanShopProducts)
{
if (product.getTradeItem().getItem().getId() == itemId)
{
return product;
}
}
return null;
}
public List<ClanShopProductHolder> getProducts()
{
return _clanShopProducts;
}
public static ClanShopData getInstance()
{
return SingletonHolder._instance;
}
private static class SingletonHolder
{
protected static final ClanShopData _instance = new ClanShopData();
}
}

View File

@ -95,6 +95,7 @@ public class ItemTable
SLOTS.put("babypet", L2Item.SLOT_BABYPET);
SLOTS.put("brooch", L2Item.SLOT_BROOCH);
SLOTS.put("brooch_jewel", L2Item.SLOT_BROOCH_JEWEL);
SLOTS.put("agathion", L2Item.SLOT_AGATHION);
SLOTS.put("none", L2Item.SLOT_NONE);
// retail compatibility

View File

@ -43,6 +43,11 @@ public enum InventorySlot implements IUpdateTypeComponent
HAIR2(Inventory.PAPERDOLL_HAIR2),
RBRACELET(Inventory.PAPERDOLL_RBRACELET),
LBRACELET(Inventory.PAPERDOLL_LBRACELET),
AGATHION1(Inventory.PAPERDOLL_AGATHION1),
AGATHION2(Inventory.PAPERDOLL_AGATHION2),
AGATHION3(Inventory.PAPERDOLL_AGATHION3),
AGATHION4(Inventory.PAPERDOLL_AGATHION4),
AGATHION5(Inventory.PAPERDOLL_AGATHION5),
DECO1(Inventory.PAPERDOLL_DECO1),
DECO2(Inventory.PAPERDOLL_DECO2),
DECO3(Inventory.PAPERDOLL_DECO3),

View File

@ -92,7 +92,7 @@ public class CombatFlag
}
else
{
_player.sendItemList(false);
_player.sendItemList();
}
// Refresh player stats
_player.broadcastUserInfo();

View File

@ -126,7 +126,7 @@ public class CursedWeapon implements INamable
}
else
{
_player.sendItemList(false);
_player.sendItemList();
}
_player.broadcastUserInfo();
@ -187,7 +187,7 @@ public class CursedWeapon implements INamable
}
else
{
_player.sendItemList(false);
_player.sendItemList();
}
_player.broadcastUserInfo();
@ -453,7 +453,7 @@ public class CursedWeapon implements INamable
}
else
{
_player.sendItemList(false);
_player.sendItemList();
}
// Refresh player stats

View File

@ -2706,7 +2706,7 @@ public class L2Clan implements IIdentifiable, INamable
ui.addComponentType(UserInfoType.CURRENT_HPMPCP_EXP_SP);
player.sendPacket(ui);
player.sendItemList(false);
player.sendItemList();
changeLevel(_level + 1);

View File

@ -617,7 +617,7 @@ public class TradeList
}
else
{
_owner.sendItemList(false);
_owner.sendItemList();
}
if (partnerIU != null)
@ -626,7 +626,7 @@ public class TradeList
}
else
{
_partner.sendItemList(false);
_partner.sendItemList();
}
success = true;
}

View File

@ -993,7 +993,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
{
player.sendPacket(ActionFailed.STATIC_PACKET);
player.setActiveWarehouse(player.getClan().getWarehouse());
player.sendPacket(new WareHouseDepositList(player, WareHouseDepositList.CLAN));
player.sendPacket(new WareHouseDepositList(1, player, WareHouseDepositList.CLAN));
}
private void showVaultWindowWithdraw(L2PcInstance player)
@ -1002,7 +1002,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
{
player.sendPacket(ActionFailed.STATIC_PACKET);
player.setActiveWarehouse(player.getClan().getWarehouse());
player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN));
player.sendPacket(new WareHouseWithdrawalList(1, player, WareHouseWithdrawalList.CLAN));
}
else
{

View File

@ -2199,7 +2199,7 @@ public final class L2PcInstance extends L2Playable
final int slot = _inventory.getSlotFromItem(item);
// we can't unequip talisman by body slot
if ((slot == L2Item.SLOT_DECO) || (slot == L2Item.SLOT_BROOCH_JEWEL))
if ((slot == L2Item.SLOT_DECO) || (slot == L2Item.SLOT_BROOCH_JEWEL) || (slot == L2Item.SLOT_AGATHION))
{
items = _inventory.unEquipItemInSlotAndRecord(item.getLocationSlot());
}
@ -2993,7 +2993,7 @@ public final class L2PcInstance extends L2Playable
}
else
{
sendItemList(false);
sendItemList();
}
}
}
@ -3034,7 +3034,7 @@ public final class L2PcInstance extends L2Playable
}
else
{
sendItemList(false);
sendItemList();
}
if (sendMessage)
@ -3084,7 +3084,7 @@ public final class L2PcInstance extends L2Playable
}
else
{
sendItemList(false);
sendItemList();
}
if (sendMessage)
@ -3137,7 +3137,7 @@ public final class L2PcInstance extends L2Playable
}
else
{
sendItemList(false);
sendItemList();
}
}
}
@ -3178,7 +3178,7 @@ public final class L2PcInstance extends L2Playable
}
else
{
sendItemList(false);
sendItemList();
}
if (sendMessage)
@ -3404,7 +3404,7 @@ public final class L2PcInstance extends L2Playable
}
else
{
sendItemList(false);
sendItemList();
}
// Sends message to client if requested
@ -3518,7 +3518,7 @@ public final class L2PcInstance extends L2Playable
}
else
{
sendItemList(false);
sendItemList();
}
// Sends message to client if requested
@ -3582,7 +3582,7 @@ public final class L2PcInstance extends L2Playable
}
else
{
sendItemList(false);
sendItemList();
}
// Send target update packet
@ -3607,7 +3607,7 @@ public final class L2PcInstance extends L2Playable
}
else
{
targetPlayer.sendItemList(false);
targetPlayer.sendItemList();
}
}
else if (target instanceof PetInventory)
@ -3734,7 +3734,7 @@ public final class L2PcInstance extends L2Playable
}
else
{
sendItemList(false);
sendItemList();
}
// Sends message to client if requested
@ -3821,7 +3821,7 @@ public final class L2PcInstance extends L2Playable
}
else
{
sendItemList(false);
sendItemList();
}
// Sends message to client if requested
@ -4614,7 +4614,8 @@ public final class L2PcInstance extends L2Playable
standUp();
}
setPrivateStoreType(PrivateStoreType.BUY_MANAGE);
sendPacket(new PrivateStoreManageListBuy(this));
sendPacket(new PrivateStoreManageListBuy(1, this));
sendPacket(new PrivateStoreManageListBuy(2, this));
}
}
else
@ -5661,7 +5662,8 @@ public final class L2PcInstance extends L2Playable
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_BEGIN_TRADING_WITH_C1);
msg.addPcName(partner);
sendPacket(msg);
sendPacket(new TradeStart(this));
sendPacket(new TradeStart(1, this));
sendPacket(new TradeStart(2, this));
}
public void onTradeConfirm(L2PcInstance partner)
@ -5897,7 +5899,7 @@ public final class L2PcInstance extends L2Playable
{
// Equip arrows needed in left hand
_inventory.setPaperdollItem(Inventory.PAPERDOLL_LHAND, arrows);
sendItemList(false);
sendItemList();
return true;
}
}
@ -13891,13 +13893,12 @@ public final class L2PcInstance extends L2Playable
sendPacket(new ExUserInfoInvenWeight(this));
}
/**
* @param open
*/
public void sendItemList(boolean open)
public void sendItemList()
{
sendPacket(new ItemList(this, open));
sendPacket(new ExQuestItemList(this));
sendPacket(new ItemList(1, this));
sendPacket(new ItemList(2, this));
sendPacket(new ExQuestItemList(1, this));
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
}

View File

@ -44,7 +44,6 @@ import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListUpdate
import com.l2jmobius.gameserver.network.serverpackets.SocialAction;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import com.l2jmobius.gameserver.network.serverpackets.UserInfo;
import com.l2jmobius.gameserver.network.serverpackets.dailymission.ExOneDayReceiveRewardList;
import com.l2jmobius.gameserver.network.serverpackets.friend.L2FriendStatus;
import com.l2jmobius.gameserver.util.Util;
@ -295,7 +294,8 @@ public class PcStat extends PlayableStat
// Send acquirable skill list
getActiveChar().sendPacket(new AcquireSkillList(getActiveChar()));
getActiveChar().sendPacket(new ExVoteSystemInfo(getActiveChar()));
getActiveChar().sendPacket(new ExOneDayReceiveRewardList(getActiveChar(), true));
// Removed used by new Pledge system.
// getActiveChar().sendPacket(new ExOneDayReceiveRewardList(getActiveChar(), true));
return levelIncreased;
}
@ -427,6 +427,12 @@ public class PcStat extends PlayableStat
{
super.setLevel(value);
}
// Removed used by new Pledge system.
// if (!getActiveChar().isDead())
// {
// getActiveChar().sendPacket(new ExOneDayReceiveRewardList(getActiveChar(), false));
// }
}
@Override
@ -666,6 +672,15 @@ public class PcStat extends PlayableStat
return (int) getValue(Stats.BROOCH_JEWELS, 0);
}
/**
* Gets the maximum agathion count.
* @return the maximum agathion count
*/
public int getAgathionSlots()
{
return (int) getValue(Stats.AGATHION_SLOTS, 0);
}
@Override
protected void onRecalculateStats(boolean broadcast)
{

View File

@ -0,0 +1,44 @@
/*
* 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 com.l2jmobius.gameserver.model.holders;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* @author Mobius
*/
public class ClanMasteryHolder
{
private final Skill _skill;
private final int _previousSkillId;
public ClanMasteryHolder(Skill skill, int previousSkillId)
{
_skill = skill;
_previousSkillId = previousSkillId;
}
public Skill getSkill()
{
return _skill;
}
public int getPreviousSkillId()
{
return _previousSkillId;
}
}

View File

@ -0,0 +1,66 @@
/*
* 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 com.l2jmobius.gameserver.model.holders;
import com.l2jmobius.gameserver.model.TradeItem;
import com.l2jmobius.gameserver.model.items.L2Item;
/**
* @author Mobius
*/
public class ClanShopProductHolder
{
private final int _clanLevel;
private final TradeItem _item;
private final int _count;
private final long _adena;
private final int _fame;
public ClanShopProductHolder(int clanLevel, L2Item item, int count, long adena, int fame)
{
_clanLevel = clanLevel;
_item = new TradeItem(item, 0, 0);
_count = count;
_adena = adena;
_fame = fame;
}
public int getClanLevel()
{
return _clanLevel;
}
public TradeItem getTradeItem()
{
return _item;
}
public int getCount()
{
return _count;
}
public long getAdena()
{
return _adena;
}
public int getFame()
{
return _fame;
}
}

View File

@ -98,22 +98,27 @@ public abstract class Inventory extends ItemContainer
public static final int PAPERDOLL_LFINGER = 14;
public static final int PAPERDOLL_LBRACELET = 15;
public static final int PAPERDOLL_RBRACELET = 16;
public static final int PAPERDOLL_DECO1 = 17;
public static final int PAPERDOLL_DECO2 = 18;
public static final int PAPERDOLL_DECO3 = 19;
public static final int PAPERDOLL_DECO4 = 20;
public static final int PAPERDOLL_DECO5 = 21;
public static final int PAPERDOLL_DECO6 = 22;
public static final int PAPERDOLL_CLOAK = 23;
public static final int PAPERDOLL_BELT = 24;
public static final int PAPERDOLL_BROOCH = 25;
public static final int PAPERDOLL_BROOCH_JEWEL1 = 26;
public static final int PAPERDOLL_BROOCH_JEWEL2 = 27;
public static final int PAPERDOLL_BROOCH_JEWEL3 = 28;
public static final int PAPERDOLL_BROOCH_JEWEL4 = 29;
public static final int PAPERDOLL_BROOCH_JEWEL5 = 30;
public static final int PAPERDOLL_BROOCH_JEWEL6 = 31;
public static final int PAPERDOLL_TOTALSLOTS = 32;
public static final int PAPERDOLL_AGATHION1 = 17;
public static final int PAPERDOLL_AGATHION2 = 18;
public static final int PAPERDOLL_AGATHION3 = 19;
public static final int PAPERDOLL_AGATHION4 = 20;
public static final int PAPERDOLL_AGATHION5 = 21;
public static final int PAPERDOLL_DECO1 = 22;
public static final int PAPERDOLL_DECO2 = 23;
public static final int PAPERDOLL_DECO3 = 24;
public static final int PAPERDOLL_DECO4 = 25;
public static final int PAPERDOLL_DECO5 = 26;
public static final int PAPERDOLL_DECO6 = 27;
public static final int PAPERDOLL_CLOAK = 28;
public static final int PAPERDOLL_BELT = 29;
public static final int PAPERDOLL_BROOCH = 30;
public static final int PAPERDOLL_BROOCH_JEWEL1 = 31;
public static final int PAPERDOLL_BROOCH_JEWEL2 = 32;
public static final int PAPERDOLL_BROOCH_JEWEL3 = 33;
public static final int PAPERDOLL_BROOCH_JEWEL4 = 34;
public static final int PAPERDOLL_BROOCH_JEWEL5 = 35;
public static final int PAPERDOLL_BROOCH_JEWEL6 = 36;
public static final int PAPERDOLL_TOTALSLOTS = 37;
// Speed percentage mods
public static final double MAX_ARMOR_WEIGHT = 12000;
@ -711,6 +716,34 @@ public abstract class Inventory extends ItemContainer
}
}
private static final class AgathionBraceletListener implements PaperdollListener
{
private static AgathionBraceletListener instance = new AgathionBraceletListener();
public static AgathionBraceletListener getInstance()
{
return instance;
}
@Override
public void notifyUnequiped(int slot, L2ItemInstance item, Inventory inventory)
{
if (item.getItem().getBodyPart() == L2Item.SLOT_L_BRACELET)
{
inventory.unEquipItemInSlot(PAPERDOLL_AGATHION1);
inventory.unEquipItemInSlot(PAPERDOLL_AGATHION2);
inventory.unEquipItemInSlot(PAPERDOLL_AGATHION3);
inventory.unEquipItemInSlot(PAPERDOLL_AGATHION4);
inventory.unEquipItemInSlot(PAPERDOLL_AGATHION5);
}
}
@Override
public void notifyEquiped(int slot, L2ItemInstance item, Inventory inventory)
{
}
}
/**
* Constructor of the inventory
*/
@ -726,6 +759,7 @@ public abstract class Inventory extends ItemContainer
addPaperdollListener(ItemSkillsListener.getInstance());
addPaperdollListener(BraceletListener.getInstance());
addPaperdollListener(BroochListener.getInstance());
addPaperdollListener(AgathionBraceletListener.getInstance());
}
// common
@ -966,6 +1000,10 @@ public abstract class Inventory extends ItemContainer
{
return PAPERDOLL_BROOCH_JEWEL1;
}
case L2Item.SLOT_AGATHION:
{
return PAPERDOLL_AGATHION1;
}
}
return -1;
}
@ -1262,6 +1300,15 @@ public abstract class Inventory extends ItemContainer
slot = L2Item.SLOT_BROOCH_JEWEL;
break;
}
case PAPERDOLL_AGATHION1:
case PAPERDOLL_AGATHION2:
case PAPERDOLL_AGATHION3:
case PAPERDOLL_AGATHION4:
case PAPERDOLL_AGATHION5:
{
slot = L2Item.SLOT_AGATHION;
break;
}
}
return slot;
}
@ -1452,6 +1499,11 @@ public abstract class Inventory extends ItemContainer
pdollSlot = PAPERDOLL_BROOCH_JEWEL1;
break;
}
case L2Item.SLOT_AGATHION:
{
pdollSlot = PAPERDOLL_AGATHION1;
break;
}
default:
{
LOGGER.info("Unhandled slot type: " + slot);
@ -1725,6 +1777,11 @@ public abstract class Inventory extends ItemContainer
equipBroochJewel(item);
break;
}
case L2Item.SLOT_AGATHION:
{
equipAgathion(item);
break;
}
default:
{
LOGGER.warning("Unknown body slot " + targetSlot + " for Item ID: " + item.getId());
@ -1874,7 +1931,7 @@ public abstract class Inventory extends ItemContainer
{
if (getPaperdollItemId(i) == item.getId())
{
// overwtite
// overwrite
setPaperdollItem(i, item);
return;
}
@ -1912,7 +1969,7 @@ public abstract class Inventory extends ItemContainer
{
if ((_paperdoll[i] != null) && (getPaperdollItemId(i) == item.getId()))
{
// overwtite
// overwrite
setPaperdollItem(i, item);
return;
}
@ -1932,6 +1989,43 @@ public abstract class Inventory extends ItemContainer
setPaperdollItem(PAPERDOLL_BROOCH_JEWEL1, item);
}
public int getAgathionSlots()
{
return getOwner().getActingPlayer().getStat().getAgathionSlots();
}
private void equipAgathion(L2ItemInstance item)
{
if (getAgathionSlots() == 0)
{
return;
}
// find same (or incompatible) agathion type
for (int i = PAPERDOLL_AGATHION1; i < (PAPERDOLL_AGATHION1 + getAgathionSlots()); i++)
{
if ((_paperdoll[i] != null) && (getPaperdollItemId(i) == item.getId()))
{
// overwrite
setPaperdollItem(i, item);
return;
}
}
// no free slot found - put on first free
for (int i = PAPERDOLL_AGATHION1; i < (PAPERDOLL_AGATHION1 + getAgathionSlots()); i++)
{
if (_paperdoll[i] == null)
{
setPaperdollItem(i, item);
return;
}
}
// no free slots - put on first
setPaperdollItem(PAPERDOLL_AGATHION1, item);
}
public boolean canEquipCloak()
{
return getOwner().getActingPlayer().getStat().canEquipCloak();

View File

@ -413,7 +413,7 @@ public class PcInventory extends Inventory
}
else
{
actor.sendItemList(false);
actor.sendItemList();
}
// Notify to scripts
@ -481,7 +481,7 @@ public class PcInventory extends Inventory
}
else
{
actor.sendItemList(false);
actor.sendItemList();
}
}
@ -528,7 +528,7 @@ public class PcInventory extends Inventory
if ((item != null) && (actor != null))
{
actor.sendItemList(false);
actor.sendItemList();
}
return item;
}
@ -737,7 +737,7 @@ public class PcInventory extends Inventory
public static int[][] restoreVisibleInventory(int objectId)
{
final int[][] paperdoll = new int[33][4];
final int[][] paperdoll = new int[Inventory.PAPERDOLL_TOTALSLOTS][4];
try (Connection con = DatabaseFactory.getConnection();
PreparedStatement statement2 = con.prepareStatement("SELECT object_id,item_id,loc_data,enchant_level FROM items WHERE owner_id=? AND loc='PAPERDOLL'"))
{
@ -865,7 +865,7 @@ public class PcInventory extends Inventory
_blockMode = mode;
_blockItems = items;
_owner.sendItemList(false);
_owner.sendItemList();
}
/**
@ -876,7 +876,7 @@ public class PcInventory extends Inventory
_blockMode = InventoryBlockType.NONE;
_blockItems = null;
_owner.sendItemList(false);
_owner.sendItemList();
}
/**
@ -1048,7 +1048,7 @@ public class PcInventory extends Inventory
{
if (Config.FORCE_INVENTORY_UPDATE)
{
_owner.sendItemList(false);
_owner.sendItemList();
}
else
{

View File

@ -111,6 +111,7 @@ public abstract class L2Item extends ListenersContainer implements IIdentifiable
public static final int SLOT_BELT = 0x10000000;
public static final int SLOT_BROOCH = 0x20000000;
public static final int SLOT_BROOCH_JEWEL = 0x40000000;
public static final int SLOT_AGATHION = 0x80000000;
public static final int SLOT_WOLF = -100;
public static final int SLOT_HATCHLING = -101;

View File

@ -217,6 +217,23 @@ public enum AbnormalVisualEffect
RO_GHOST_REFLECT(217),
CHANGESHAPE_TRANSFORM_5(218),
ICE_ELEMENTALDESTROY(219),
DORMANT_USER(220),
NUWBIE_USER(221),
THIRTEENTH_BUFF(222),
ARENA_UNSEAL_A(224),
ARENA_UNSEAL_B(225),
ARENA_UNSEAL_C(226),
ARENA_UNSEAL_D(227),
ARENA_UNSEAL_E(228),
IN_BATTLE_RHAPSODY(229),
IN_A_DECAL(230),
IN_B_DECAL(231),
CHANGESHAPE_TRANSFORM_6(232),
CHANGESHAPE_TRANSFORM_7(234),
POWER_BLOCKING(247),
FOCUS_SHIELD(248),
TRUE_VANGUARD(249),
SHIELD_WALL(250),
DRAGON_ULTIMATE(700),
CHANGE_HALLOWEEN(1000),
BR_Y_1_ACCESSORY_R_RING(10001),

View File

@ -248,6 +248,9 @@ public enum Stats
// Brooches
BROOCH_JEWELS("broochJewels"),
// Agathions
AGATHION_SLOTS("agathionSlots"),
// Summon Points
MAX_SUMMON_POINTS("summonPoints"),

View File

@ -67,8 +67,6 @@ import com.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchant
import com.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantTry;
import com.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeEstimate;
import com.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeItemCancel;
import com.l2jmobius.gameserver.network.clientpackets.dailymission.RequestOneDayRewardReceive;
import com.l2jmobius.gameserver.network.clientpackets.dailymission.RequestTodoList;
import com.l2jmobius.gameserver.network.clientpackets.ensoul.RequestItemEnsoul;
import com.l2jmobius.gameserver.network.clientpackets.faction.RequestUserFactionInfo;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDetailInfo;
@ -82,6 +80,10 @@ import com.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMentorLis
import com.l2jmobius.gameserver.network.clientpackets.monsterbook.RequestMonsterBookClose;
import com.l2jmobius.gameserver.network.clientpackets.monsterbook.RequestMonsterBookOpen;
import com.l2jmobius.gameserver.network.clientpackets.monsterbook.RequestMonsterBookReward;
import com.l2jmobius.gameserver.network.clientpackets.pledgeV2.RequestExPledgeItemBuy;
import com.l2jmobius.gameserver.network.clientpackets.pledgeV2.RequestExPledgeItemList;
import com.l2jmobius.gameserver.network.clientpackets.pledgeV2.RequestExPledgeMasteryInfo;
import com.l2jmobius.gameserver.network.clientpackets.pledgeV2.RequestExPledgeMasteryReset;
import com.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusOpen;
import com.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusReward;
import com.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusRewardList;
@ -351,6 +353,7 @@ public enum ExIncomingPackets implements IIncomingPackets<L2GameClient>
REQUEST_NEW_ENCHANT_CLOSE(0xF8, RequestNewEnchantClose::new, ConnectionState.IN_GAME),
REQUEST_NEW_ENCHANT_TRY(0xF9, RequestNewEnchantTry::new, ConnectionState.IN_GAME),
REQUEST_NEW_ENCHANT_RETRY_TO_PUT_ITEMS(0xFA, RequestNewEnchantRetryToPutItems::new, ConnectionState.IN_GAME),
REQUEST_TARGET_ACTION_MENU(0xFE, RequestTargetActionMenu::new, ConnectionState.IN_GAME),
EX_SEND_SELECTED_QUEST_ZONE_ID(0xFF, ExSendSelectedQuestZoneID::new, ConnectionState.IN_GAME),
REQUEST_ALCHEMY_SKILL_LIST(0x100, RequestAlchemySkillList::new, ConnectionState.IN_GAME),
REQUEST_ALCHEMY_TRY_MIX_CUBE(0x101, RequestAlchemyTryMixCube::new, ConnectionState.IN_GAME),
@ -382,9 +385,9 @@ public enum ExIncomingPackets implements IIncomingPackets<L2GameClient>
REQUEST_EVENT_BALTHUS_TOKEN(0x11B, null, ConnectionState.IN_GAME),
REQUEST_PARTY_MATCHING_HISTORY(0x11C, null, ConnectionState.IN_GAME),
EX_ARENA_CUSTOM_NOTIFICATION(0x11D, null, ConnectionState.IN_GAME),
REQUEST_TODO_LIST(0x11E, RequestTodoList::new, ConnectionState.IN_GAME),
REQUEST_TODO_LIST(0x11E, null, ConnectionState.IN_GAME),
REQUEST_TODO_LIST_HTML(0x11F, null, ConnectionState.IN_GAME),
REQUEST_ONE_DAY_REWARD_RECEIVE(0x120, RequestOneDayRewardReceive::new, ConnectionState.IN_GAME),
REQUEST_ONE_DAY_REWARD_RECEIVE(0x120, null, ConnectionState.IN_GAME),
REQUEST_QUEUE_TICKET(0x121, null, ConnectionState.IN_GAME),
REQUEST_PLEDGE_BONUS_OPEN(0x122, RequestPledgeBonusOpen::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_BONUS_REWARD_LIST(0x123, RequestPledgeBonusRewardList::new, ConnectionState.IN_GAME),
@ -406,9 +409,47 @@ public enum ExIncomingPackets implements IIncomingPackets<L2GameClient>
EXREQUEST_MATCH_GROUP_WITHDRAW(0x133, null, ConnectionState.IN_GAME),
EXREQUEST_MATCH_GROUP_OUST(0x134, null, ConnectionState.IN_GAME),
EXREQUEST_MATCH_GROUP_CHANGE_MASTER(0x135, null, ConnectionState.IN_GAME),
REQUEST_BLOCK_LIST_FOR_AD(0x136, null, ConnectionState.IN_GAME),
REQUEST_UPGRADE_SYSTEM_RESULT(0x137, null, ConnectionState.IN_GAME),
REQUEST_USER_BAN_INFO(0x138, null, ConnectionState.IN_GAME);
REQUEST_UPGRADE_SYSTEM_RESULT(0x136, null, ConnectionState.IN_GAME),
EX_CARD_UPDOWN_PICK_NUMB(0x137, null, ConnectionState.IN_GAME),
EX_CARD_UPDOWN_GAME_REWARD_REQUEST(0x138, null, ConnectionState.IN_GAME),
EX_CARD_UPDOWN_GAME_RETRY(0x139, null, ConnectionState.IN_GAME),
EX_CARD_UPDOWN_GAME_QUIT(0x13A, null, ConnectionState.IN_GAME),
EX_ARENA_RANK_ALL(0x13B, null, ConnectionState.IN_GAME),
EX_ARENA_MYRANK(0x13C, null, ConnectionState.IN_GAME),
EX_SWAP_AGATHION_SLOT_ITEMS(0x13D, null, ConnectionState.IN_GAME),
EX_PLEDGE_CONTRIBUTION_RANK(0x13E, null, ConnectionState.IN_GAME),
EX_PLEDGE_CONTRIBUTION_INFO(0x13F, null, ConnectionState.IN_GAME),
EX_PLEDGE_CONTRIBUTION_REWARD(0x140, null, ConnectionState.IN_GAME),
EX_PLEDGE_LEVEL_UP(0x141, null, ConnectionState.IN_GAME),
EX_PLEDGE_MISSION_INFO(0x142, null, ConnectionState.IN_GAME),
EX_PLEDGE_MISSION_REWARD(0x143, null, ConnectionState.IN_GAME),
EX_PLEDGE_MASTERY_INFO(0x144, RequestExPledgeMasteryInfo::new, ConnectionState.IN_GAME),
EX_PLEDGE_MASTERY_SET(0x145, null, ConnectionState.IN_GAME),
EX_PLEDGE_MASTERY_RESET(0x146, RequestExPledgeMasteryReset::new, ConnectionState.IN_GAME),
EX_PLEDGE_SKILL_INFO(0x147, null, ConnectionState.IN_GAME),
EX_PLEDGE_SKILL_ACTIVATE(0x148, null, ConnectionState.IN_GAME),
EX_PLEDGE_ITEM_LIST(0x149, RequestExPledgeItemList::new, ConnectionState.IN_GAME),
EX_PLEDGE_ITEM_ACTIVATE(0x14A, null, ConnectionState.IN_GAME),
EX_PLEDGE_ANNOUNCE(0x14B, null, ConnectionState.IN_GAME),
EX_PLEDGE_ANNOUNCE_SET(0x14C, null, ConnectionState.IN_GAME),
EX_CREATE_PLEDGE(0x14D, null, ConnectionState.IN_GAME),
EX_PLEDGE_ITEM_INFO(0x14E, null, ConnectionState.IN_GAME),
EX_PLEDGE_ITEM_BUY(0x14F, RequestExPledgeItemBuy::new, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_INFO(0x150, null, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_EXTRACT_INFO(0x151, null, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_EXTRACT(0x152, null, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_EVOLUTION_INFO(0x153, null, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_EVOLUTION(0x154, null, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_SET_TALENT(0x155, null, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_INIT_TALENT(0x156, null, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_ABSORB_INFO(0x157, null, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_ABSORB(0x158, null, ConnectionState.IN_GAME),
EX_REQUEST_LOCKED_ITEM(0x159, null, ConnectionState.IN_GAME),
EX_REQUEST_UNLOCKED_ITEM(0x15A, null, ConnectionState.IN_GAME),
EX_LOCKED_ITEM_CANCEL(0x15B, null, ConnectionState.IN_GAME),
EX_UNLOCKED_ITEM_CANCEL(0x15C, null, ConnectionState.IN_GAME),
REQUEST_BLOCK_LIST_FOR_AD(0x15D, null, ConnectionState.IN_GAME),
REQUEST_USER_BAN_INFO(0x15E, null, ConnectionState.IN_GAME);
public static final ExIncomingPackets[] PACKET_ARRAY;

View File

@ -741,11 +741,53 @@ public enum OutgoingPackets
EX_MATCH_GROUP_WITHDRAW(0xFE, 0x1CA),
EX_MATCH_GROUP_OUST(0xFE, 0x1CB),
EX_ARENA_SHOW_ENEMY_PARTY_LOCATION(0xFE, 0x1CC),
EX_DRESS_ROOM_UI_OPEN(0xFE, 0x1CD),
EX_DRESS_HANGER_LIST(0xFE, 0x1CE),
EX_SHOW_UPGRADE_SYSTEM(0xFE, 0x1CF),
EX_UPGRADE_SYSTEM_RESULT(0xFE, 0x1D0),
EX_USER_BAN_INFO(0xFE, 0x1D1);
EX_SHOW_UPGRADE_SYSTEM(0xFE, 0x1CD),
EX_UPGRADE_SYSTEM_RESULT(0xFE, 0x1CE),
EX_CARD_UPDOWN_GAME_START(0xFE, 0x1CF),
EX_CARD_UPDOWN_PICK_RESULT(0xFE, 0x1D0),
EX_CARD_UPDOWN_GAME_PREPARE_REWARD(0xFE, 0x1D1),
EX_CARD_UPDOWN_GAME_REWARD_REPLY(0xFE, 0x1D2),
EX_CARD_UPDOWN_GAME_QUIT(0xFE, 0x1D3),
EX_ARENA_RANK_ALL(0xFE, 0x1D4),
EX_ARENA_MYRANK(0xFE, 0x1D5),
EX_PLEDGE_CLASSIC_RAID_INFO(0xFE, 0x1D6),
EX_ARENA_OBSERVE(0xFE, 0x1D7),
EX_HTML_WITH_NPC_VIEWPORT(0xFE, 0x1D8),
EX_PLEDGE_CONTRIBUTION_RANK(0xFE, 0x1D9),
EX_PLEDGE_CONTRIBUTION_INFO(0xFE, 0x1DA),
EX_PLEDGE_CONTRIBUTION_REWARD(0xFE, 0x1DB),
EX_PLEDGE_RAID_INFO(0xFE, 0x1DC),
EX_PLEDGE_RAID_RANK(0xFE, 0x1DD),
EX_PLEDGE_LEVEL_UP(0xFE, 0x1DE),
EX_PLEDGE_SHOW_INFO_UPDATE(0xFE, 0x1DF),
EX_PLEDGE_MISSION_INFO(0xFE, 0x1E0),
EX_PLEDGE_MISSION_REWARD_COUNT(0xFE, 0x1E1),
EX_PLEDGE_MASTERY_INFO(0xFE, 0x1E2),
EX_PLEDGE_MASTERY_SET(0xFE, 0x1E3),
EX_PLEDGE_MASTERY_RESET(0xFE, 0x1E4),
EX_TUTORIAL_SHOW_ID(0xFE, 0x1E5),
EX_PLEDGE_SKILL_INFO(0xFE, 0x1E6),
EX_PLEDGE_SKILL_ACTIVATE(0xFE, 0x1E7),
EX_PLEDGE_ITEM_LIST(0xFE, 0x1E8),
EX_PLEDGE_ITEM_ACTIVATE(0xFE, 0x1E9),
EX_PLEDGE_ANNOUNCE(0xFE, 0x1EA),
EX_PLEDGE_ANNOUNCE_SET(0xFE, 0x1EB),
EX_SET_PLEDGE_EMBLEM(0xFE, 0x1EC),
EX_SHOW_CREATE_PLEDGE(0xFE, 0x1ED),
EX_PLEDGE_ITEM_INFO(0xFE, 0x1EE),
EX_PLEDGE_ITEM_BUY(0xFE, 0x1EF),
EX_ELEMENTAL_SPIRIT_INFO(0xFE, 0x1F0),
EX_ELEMENTAL_SPIRIT_EXTRACT_INFO(0xFE, 0x1F1),
EX_ELEMENTAL_SPIRIT_EVOLUTION_INFO(0xFE, 0x1F2),
EX_ELEMENTAL_SPIRIT_EVOLUTION(0xFE, 0x1F3),
EX_ELEMENTAL_SPIRIT_SET_TALENT(0xFE, 0x1F4),
EX_ELEMENTAL_SPIRIT_ABSORB_INFO(0xFE, 0x1F5),
EX_ELEMENTAL_SPIRIT_ABSORB(0xFE, 0x1F6),
EX_CHOOSE_LOCKED_ITEM(0xFE, 0x1F7),
EX_LOCKED_RESULT(0xFE, 0x1F8),
EX_DRESS_ROOM_UI_OPEN(0xFE, 0x1F9),
EX_DRESS_HANGER_LIST(0xFE, 0x1FA),
EX_USER_BAN_INFO(0xFE, 0x1FB);
private final int _id1;
private final int _id2;

View File

@ -21,6 +21,7 @@ import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.TradeItem;
import com.l2jmobius.gameserver.model.TradeList;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.TradeOtherAdd;
@ -94,12 +95,16 @@ public final class AddTradeItem implements IClientIncomingPacket
return;
}
final TradeItem item = trade.addItem(_objectId, _count);
if (item != null)
final L2ItemInstance item1 = player.getInventory().getItemByObjectId(_objectId);
final TradeItem item2 = trade.addItem(_objectId, _count);
if (item2 != null)
{
player.sendPacket(new TradeOwnAdd(item));
player.sendPacket(new TradeUpdate(player, item));
partner.sendPacket(new TradeOtherAdd(item));
player.sendPacket(new TradeOwnAdd(1, item2));
player.sendPacket(new TradeOwnAdd(2, item2));
player.sendPacket(new TradeUpdate(1, null, null, 0));
player.sendPacket(new TradeUpdate(2, player, item2, item1.getCount() - item2.getCount()));
partner.sendPacket(new TradeOtherAdd(1, item2));
partner.sendPacket(new TradeOtherAdd(2, item2));
}
}
}

View File

@ -100,8 +100,6 @@ import com.l2jmobius.gameserver.network.serverpackets.SkillList;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import com.l2jmobius.gameserver.network.serverpackets.ability.ExAcquireAPSkillList;
import com.l2jmobius.gameserver.network.serverpackets.attendance.ExVipAttendanceItemList;
import com.l2jmobius.gameserver.network.serverpackets.dailymission.ExConnectedTimeAndGettableReward;
import com.l2jmobius.gameserver.network.serverpackets.dailymission.ExOneDayReceiveRewardList;
import com.l2jmobius.gameserver.network.serverpackets.friend.L2FriendList;
import com.l2jmobius.gameserver.util.BuilderUtil;
@ -326,10 +324,12 @@ public class EnterWorld implements IClientIncomingPacket
client.sendPacket(new ExGetBookMarkInfoPacket(activeChar));
// Send Item List
client.sendPacket(new ItemList(activeChar, false));
client.sendPacket(new ItemList(1, activeChar));
client.sendPacket(new ItemList(2, activeChar));
// Send Quest Item List
client.sendPacket(new ExQuestItemList(activeChar));
client.sendPacket(new ExQuestItemList(1, activeChar));
client.sendPacket(new ExQuestItemList(2, activeChar));
// Send Adena and Inventory Count
client.sendPacket(new ExAdenaInvenCount(activeChar));
@ -634,8 +634,9 @@ public class EnterWorld implements IClientIncomingPacket
{
activeChar.sendPacket(new ExWorldChatCnt(activeChar));
}
activeChar.sendPacket(new ExConnectedTimeAndGettableReward(activeChar));
activeChar.sendPacket(new ExOneDayReceiveRewardList(activeChar, true));
// Removed used by new Pledge system.
// activeChar.sendPacket(new ExConnectedTimeAndGettableReward(activeChar));
// activeChar.sendPacket(new ExOneDayReceiveRewardList(activeChar, true));
// Handle soulshots, disable all on EnterWorld
activeChar.sendPacket(new ExAutoSoulShot(0, true, 0));

View File

@ -706,7 +706,7 @@ public final class RequestAcquireSkill implements IClientIncomingPacket
player.addSkill(skill, store);
player.sendItemList(false);
player.sendItemList();
player.sendPacket(new ShortCutInit(player));
player.sendPacket(new ExBasicActionList(ExBasicActionList.DEFAULT_ACTION_LIST));
player.sendSkillList(skill.getId());

View File

@ -37,6 +37,6 @@ public class RequestBuySellUIClose implements IClientIncomingPacket
return;
}
activeChar.sendItemList(true);
activeChar.sendItemList();
}
}

View File

@ -203,7 +203,7 @@ public final class RequestCancelPostAttachment implements IClientIncomingPacket
}
else
{
activeChar.sendItemList(false);
activeChar.sendItemList();
}
final L2PcInstance receiver = L2World.getInstance().getPlayer(msg.getReceiverId());

View File

@ -228,7 +228,7 @@ public final class RequestDestroyItem implements IClientIncomingPacket
}
else
{
activeChar.sendItemList(true);
activeChar.sendItemList();
}
}
}

View File

@ -170,7 +170,7 @@ public final class RequestDropItem implements IClientIncomingPacket
{
activeChar.getInventory().unEquipItemInSlot(item.getLocationSlot());
activeChar.broadcastUserInfo();
activeChar.sendItemList(true);
activeChar.sendItemList();
}
final L2ItemInstance dropedItem = activeChar.dropItem("Drop", _objectId, _count, _x, _y, _z, null, false, false);

View File

@ -490,7 +490,7 @@ public final class RequestEnchantItem implements IClientIncomingPacket
}
else
{
activeChar.sendItemList(true);
activeChar.sendItemList();
}
request.setProcessing(false);

View File

@ -44,7 +44,6 @@ public final class RequestGMCommand implements IClientIncomingPacket
{
_targetName = packet.readS();
_command = packet.readD();
// _unknown = packet.readD();
return true;
}
@ -95,7 +94,8 @@ public final class RequestGMCommand implements IClientIncomingPacket
}
case 5: // player inventory
{
client.sendPacket(new GMViewItemList(player));
client.sendPacket(new GMViewItemList(1, player));
client.sendPacket(new GMViewItemList(2, player));
client.sendPacket(new GMHennaInfo(player));
break;
}
@ -113,7 +113,6 @@ public final class RequestGMCommand implements IClientIncomingPacket
}
break;
}
}
}
}

View File

@ -36,7 +36,7 @@ public final class RequestItemList implements IClientIncomingPacket
{
if ((client != null) && (client.getActiveChar() != null) && !client.getActiveChar().isInventoryDisabled())
{
client.getActiveChar().sendItemList(true);
client.getActiveChar().sendItemList();
}
}
}

View File

@ -207,7 +207,7 @@ public class RequestPackageSend implements IClientIncomingPacket
}
else
{
player.sendItemList(false);
player.sendItemList();
}
}

View File

@ -22,8 +22,7 @@ import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.serverpackets.PackageSendableList;
/**
* @author -Wooden-
* @author UnAfraid Thanks mrTJO
* @author Mobius
*/
public class RequestPackageSendableItemList implements IClientIncomingPacket
{
@ -44,6 +43,7 @@ public class RequestPackageSendableItemList implements IClientIncomingPacket
{
return;
}
client.sendPacket(new PackageSendableList(activeChar, _objectId));
client.sendPacket(new PackageSendableList(1, activeChar, _objectId));
client.sendPacket(new PackageSendableList(2, activeChar, _objectId));
}
}

View File

@ -230,7 +230,7 @@ public final class RequestPostAttachment implements IClientIncomingPacket
}
else
{
activeChar.sendItemList(false);
activeChar.sendItemList();
}
msg.removeAttachments();

View File

@ -55,6 +55,7 @@ public final class RequestPostItemList implements IClientIncomingPacket
return;
}
client.sendPacket(new ExReplyPostItemList(activeChar));
client.sendPacket(new ExReplyPostItemList(1, activeChar));
client.sendPacket(new ExReplyPostItemList(2, activeChar));
}
}

View File

@ -355,7 +355,7 @@ public final class RequestSendPost implements IClientIncomingPacket
}
else
{
player.sendItemList(false);
player.sendItemList();
}
return true;

View File

@ -0,0 +1,62 @@
/*
* 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 com.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.L2GameClient;
/**
* @author Mobius
*/
public class RequestTargetActionMenu implements IClientIncomingPacket
{
private int _objectId;
private int _type;
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
_objectId = packet.readD();
_type = packet.readH(); // action?
return true;
}
@Override
public void run(L2GameClient client)
{
final L2PcInstance player = client.getActiveChar();
if (player == null)
{
return;
}
if (_type == 1)
{
for (L2Object object : L2World.getInstance().getVisibleObjects(player, L2Object.class))
{
if (_objectId == object.getObjectId())
{
player.setTarget(object);
break;
}
}
}
}
}

View File

@ -211,7 +211,7 @@ public final class SendWareHouseDepositList implements IClientIncomingPacket
}
else
{
player.sendItemList(false);
player.sendItemList();
}
}
}

View File

@ -197,7 +197,7 @@ public final class SendWareHouseWithDrawList implements IClientIncomingPacket
}
else
{
player.sendItemList(false);
player.sendItemList();
}
}
}

View File

@ -144,14 +144,16 @@ public final class SetPrivateStoreListBuy implements IClientIncomingPacket
if (AttackStanceTaskManager.getInstance().hasAttackStanceTask(player) || player.isInDuel())
{
player.sendPacket(SystemMessageId.WHILE_YOU_ARE_ENGAGED_IN_COMBAT_YOU_CANNOT_OPERATE_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
player.sendPacket(new PrivateStoreManageListBuy(player));
player.sendPacket(new PrivateStoreManageListBuy(1, player));
player.sendPacket(new PrivateStoreManageListBuy(2, player));
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if (player.isInsideZone(ZoneId.NO_STORE))
{
player.sendPacket(new PrivateStoreManageListBuy(player));
player.sendPacket(new PrivateStoreManageListBuy(1, player));
player.sendPacket(new PrivateStoreManageListBuy(2, player));
player.sendPacket(SystemMessageId.YOU_CANNOT_OPEN_A_PRIVATE_STORE_HERE);
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
@ -163,7 +165,8 @@ public final class SetPrivateStoreListBuy implements IClientIncomingPacket
// Check maximum number of allowed slots for pvt shops
if (_items.length > player.getPrivateBuyStoreLimit())
{
player.sendPacket(new PrivateStoreManageListBuy(player));
player.sendPacket(new PrivateStoreManageListBuy(1, player));
player.sendPacket(new PrivateStoreManageListBuy(2, player));
player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_QUANTITY_THAT_CAN_BE_INPUTTED);
return;
}
@ -190,7 +193,8 @@ public final class SetPrivateStoreListBuy implements IClientIncomingPacket
// Check for available funds
if (totalCost > player.getAdena())
{
player.sendPacket(new PrivateStoreManageListBuy(player));
player.sendPacket(new PrivateStoreManageListBuy(1, player));
player.sendPacket(new PrivateStoreManageListBuy(2, player));
player.sendPacket(SystemMessageId.THE_PURCHASE_PRICE_IS_HIGHER_THAN_THE_AMOUNT_OF_MONEY_THAT_YOU_HAVE_AND_SO_YOU_CANNOT_OPEN_A_PERSONAL_STORE);
return;
}

View File

@ -97,14 +97,16 @@ public class SetPrivateStoreListSell implements IClientIncomingPacket
if (AttackStanceTaskManager.getInstance().hasAttackStanceTask(player) || player.isInDuel())
{
player.sendPacket(SystemMessageId.WHILE_YOU_ARE_ENGAGED_IN_COMBAT_YOU_CANNOT_OPERATE_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
player.sendPacket(new PrivateStoreManageListSell(player, _packageSale));
player.sendPacket(new PrivateStoreManageListSell(1, player, _packageSale));
player.sendPacket(new PrivateStoreManageListSell(2, player, _packageSale));
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
if (player.isInsideZone(ZoneId.NO_STORE))
{
player.sendPacket(new PrivateStoreManageListSell(player, _packageSale));
player.sendPacket(new PrivateStoreManageListSell(1, player, _packageSale));
player.sendPacket(new PrivateStoreManageListSell(2, player, _packageSale));
player.sendPacket(SystemMessageId.YOU_CANNOT_OPEN_A_PRIVATE_STORE_HERE);
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
@ -113,7 +115,8 @@ public class SetPrivateStoreListSell implements IClientIncomingPacket
// Check maximum number of allowed slots for pvt shops
if (_items.length > player.getPrivateSellStoreLimit())
{
player.sendPacket(new PrivateStoreManageListSell(player, _packageSale));
player.sendPacket(new PrivateStoreManageListSell(1, player, _packageSale));
player.sendPacket(new PrivateStoreManageListSell(2, player, _packageSale));
player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_QUANTITY_THAT_CAN_BE_INPUTTED);
return;
}

View File

@ -239,6 +239,15 @@ public final class UseItem implements IClientIncomingPacket
}
break;
}
case L2Item.SLOT_AGATHION:
{
if (!item.isEquipped() && (activeChar.getInventory().getAgathionSlots() == 0))
{
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_MEET_THE_REQUIRED_CONDITION_TO_EQUIP_THAT_ITEM);
return;
}
break;
}
}
if (activeChar.isCastingNow())

View File

@ -50,6 +50,7 @@ public class RequestCommissionRegistrableItemList implements IClientIncomingPack
return;
}
client.sendPacket(new ExResponseCommissionItemList(player.getInventory().getAvailableItems(false, false, false)));
client.sendPacket(new ExResponseCommissionItemList(1, player.getInventory().getAvailableItems(false, false, false)));
client.sendPacket(new ExResponseCommissionItemList(2, player.getInventory().getAvailableItems(false, false, false)));
}
}

View File

@ -24,7 +24,6 @@ import com.l2jmobius.gameserver.model.DailyMissionDataHolder;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import com.l2jmobius.gameserver.network.serverpackets.dailymission.ExConnectedTimeAndGettableReward;
import com.l2jmobius.gameserver.network.serverpackets.dailymission.ExOneDayReceiveRewardList;
/**
@ -57,7 +56,7 @@ public class RequestOneDayRewardReceive implements IClientIncomingPacket
}
reward.stream().filter(o -> o.isDisplayable(player)).forEach(r -> r.requestReward(player));
player.sendPacket(new ExConnectedTimeAndGettableReward(player));
// player.sendPacket(new ExConnectedTimeAndGettableReward(player));
player.sendPacket(new ExOneDayReceiveRewardList(player, true));
}
}

View File

@ -0,0 +1,92 @@
/*
* 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 com.l2jmobius.gameserver.network.clientpackets.pledgeV2;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.data.xml.impl.ClanShopData;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ClanShopProductHolder;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import com.l2jmobius.gameserver.network.serverpackets.pledgeV2.ExPledgeItemBuy;
/**
* @author Mobius
*/
public class RequestExPledgeItemBuy implements IClientIncomingPacket
{
private int _itemId;
private int _count;
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
_itemId = packet.readD();
_count = packet.readD();
return true;
}
@Override
public void run(L2GameClient client)
{
final L2PcInstance activeChar = client.getActiveChar();
if ((activeChar == null) || (activeChar.getClan() == null))
{
client.sendPacket(new ExPledgeItemBuy(1));
return;
}
final ClanShopProductHolder product = ClanShopData.getInstance().getProduct(_itemId);
if (product == null)
{
client.sendPacket(new ExPledgeItemBuy(1));
return;
}
if (activeChar.getClan().getLevel() < product.getClanLevel())
{
client.sendPacket(new ExPledgeItemBuy(2));
return;
}
final long slots = product.getTradeItem().getItem().isStackable() ? 1 : product.getTradeItem().getCount() * _count;
final long weight = product.getTradeItem().getItem().getWeight() * product.getTradeItem().getCount() * _count;
if (!activeChar.getInventory().validateWeight(weight) || !activeChar.getInventory().validateCapacity(slots))
{
client.sendPacket(new ExPledgeItemBuy(3));
return;
}
if ((activeChar.getAdena() < (product.getAdena() * _count)) || (activeChar.getFame() < (product.getFame() * _count)))
{
client.sendPacket(new ExPledgeItemBuy(3));
return;
}
if (product.getAdena() > 0)
{
activeChar.reduceAdena("ClanShop", product.getAdena() * _count, activeChar, true);
}
if (product.getFame() > 0)
{
activeChar.setFame(activeChar.getFame() - (product.getFame() * _count));
}
activeChar.addItem("ClanShop", _itemId, product.getCount() * _count, activeChar, true);
client.sendPacket(new ExPledgeItemBuy(0));
}
}

View File

@ -0,0 +1,47 @@
/*
* 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 com.l2jmobius.gameserver.network.clientpackets.pledgeV2;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import com.l2jmobius.gameserver.network.serverpackets.pledgeV2.ExPledgeItemList;
/**
* @author Mobius
*/
public class RequestExPledgeItemList implements IClientIncomingPacket
{
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
return true;
}
@Override
public void run(L2GameClient client)
{
final L2PcInstance activeChar = client.getActiveChar();
if ((activeChar == null) || (activeChar.getClan() == null))
{
return;
}
client.sendPacket(new ExPledgeItemList(activeChar));
}
}

View File

@ -0,0 +1,47 @@
/*
* 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 com.l2jmobius.gameserver.network.clientpackets.pledgeV2;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import com.l2jmobius.gameserver.network.serverpackets.pledgeV2.ExPledgeMasteryInfo;
/**
* @author Mobius
*/
public class RequestExPledgeMasteryInfo implements IClientIncomingPacket
{
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
return true;
}
@Override
public void run(L2GameClient client)
{
final L2PcInstance activeChar = client.getActiveChar();
if ((activeChar == null) || (activeChar.getClan() == null))
{
return;
}
client.sendPacket(new ExPledgeMasteryInfo(activeChar));
}
}

View File

@ -0,0 +1,51 @@
/*
* 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 com.l2jmobius.gameserver.network.clientpackets.pledgeV2;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.L2Clan;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
/**
* @author Mobius
*/
public class RequestExPledgeMasteryReset implements IClientIncomingPacket
{
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
return true;
}
@Override
public void run(L2GameClient client)
{
final L2PcInstance activeChar = client.getActiveChar();
if (activeChar == null)
{
return;
}
final L2Clan clan = activeChar.getClan();
if ((clan == null) || (clan.getLeaderId() != activeChar.getId()))
{
return;
}
}
}

View File

@ -84,7 +84,9 @@ public abstract class AbstractInventoryUpdate extends AbstractItemPacket
protected final void writeItems(PacketWriter packet)
{
packet.writeH(_items.size());
packet.writeC(0); // 140
packet.writeD(0); // 140
packet.writeD(_items.size()); // 140
for (ItemInfo item : _items.values())
{
packet.writeH(item.getChange()); // Update type : 01-add, 02-modify, 03-remove

View File

@ -43,6 +43,11 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
return MASKS;
}
protected void writeItem(PacketWriter packet, TradeItem item, long count)
{
writeItem(packet, new ItemInfo(item), count);
}
protected void writeItem(PacketWriter packet, TradeItem item)
{
writeItem(packet, new ItemInfo(item));
@ -81,6 +86,8 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
packet.writeD(item.getMana());
packet.writeD(item.getTime());
packet.writeC(item.isAvailable() ? 1 : 0); // GOD Item enabled = 1 disabled (red) = 0
packet.writeC(0x00); // 140 protocol
packet.writeC(0x00); // 140 protocol
if (containsMask(mask, ItemListType.AUGMENT_BONUS))
{
writeItemAugment(packet, item);
@ -103,6 +110,56 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
}
}
protected void writeItem(PacketWriter packet, ItemInfo item, long count)
{
final int mask = calculateMask(item);
packet.writeC(mask);
packet.writeD(item.getObjectId()); // ObjectId
packet.writeD(item.getItem().getDisplayId()); // ItemId
packet.writeC(item.getItem().isQuestItem() || (item.getEquipped() == 1) ? 0xFF : item.getLocation()); // T1
packet.writeQ(count); // Quantity
packet.writeC(item.getItem().getType2()); // Item Type 2 : 00-weapon, 01-shield/armor, 02-ring/earring/necklace, 03-questitem, 04-adena, 05-item
packet.writeC(item.getCustomType1()); // Filler (always 0)
packet.writeH(item.getEquipped()); // Equipped : 00-No, 01-yes
packet.writeQ(item.getItem().getBodyPart()); // Slot : 0006-lr.ear, 0008-neck, 0030-lr.finger, 0040-head, 0100-l.hand, 0200-gloves, 0400-chest, 0800-pants, 1000-feet, 4000-r.hand, 8000-r.hand
packet.writeC(item.getEnchantLevel()); // Enchant level (pet level shown in control item)
packet.writeC(0x01); // TODO : Find me
packet.writeD(item.getMana());
packet.writeD(item.getTime());
packet.writeC(item.isAvailable() ? 1 : 0); // GOD Item enabled = 1 disabled (red) = 0
packet.writeC(0x00); // 140 protocol
packet.writeC(0x00); // 140 protocol
if (containsMask(mask, ItemListType.AUGMENT_BONUS))
{
writeItemAugment(packet, item);
}
if (containsMask(mask, ItemListType.ELEMENTAL_ATTRIBUTE))
{
writeItemElemental(packet, item);
}
if (containsMask(mask, ItemListType.ENCHANT_EFFECT))
{
writeItemEnchantEffect(packet, item);
}
if (containsMask(mask, ItemListType.VISUAL_ID))
{
packet.writeD(item.getVisualId()); // Item remodel visual ID
}
if (containsMask(mask, ItemListType.SOUL_CRYSTAL))
{
packet.writeC(item.getSoulCrystalOptions().size());
for (EnsoulOption option : item.getSoulCrystalOptions())
{
packet.writeD(option.getId());
}
packet.writeC(item.getSoulCrystalSpecialOptions().size());
for (EnsoulOption option : item.getSoulCrystalSpecialOptions())
{
packet.writeD(option.getId());
}
}
}
protected static int calculateMask(ItemInfo item)
{
int mask = 0;

View File

@ -55,7 +55,7 @@ public class AcquireSkillList implements IClientOutgoingPacket
packet.writeD(skill.getSkillLevel());
packet.writeQ(skill.getLevelUpSp());
packet.writeC(skill.getGetLevel());
packet.writeC(skill.getDualClassLevel());
packet.writeH(skill.getDualClassLevel()); // Salvation: Changed from byte to short.
packet.writeC(skill.getRequiredItems().size());
for (ItemHolder item : skill.getRequiredItems())
{

View File

@ -49,6 +49,43 @@ public class CharSelectionInfo implements IClientOutgoingPacket
private int _activeId;
private final CharSelectInfoPackage[] _characterPackages;
private static final int[] PAPERDOLL_ORDER = new int[]
{
Inventory.PAPERDOLL_UNDER,
Inventory.PAPERDOLL_REAR,
Inventory.PAPERDOLL_LEAR,
Inventory.PAPERDOLL_NECK,
Inventory.PAPERDOLL_RFINGER,
Inventory.PAPERDOLL_LFINGER,
Inventory.PAPERDOLL_HEAD,
Inventory.PAPERDOLL_RHAND,
Inventory.PAPERDOLL_LHAND,
Inventory.PAPERDOLL_GLOVES,
Inventory.PAPERDOLL_CHEST,
Inventory.PAPERDOLL_LEGS,
Inventory.PAPERDOLL_FEET,
Inventory.PAPERDOLL_CLOAK,
Inventory.PAPERDOLL_RHAND,
Inventory.PAPERDOLL_HAIR,
Inventory.PAPERDOLL_HAIR2,
Inventory.PAPERDOLL_RBRACELET,
Inventory.PAPERDOLL_LBRACELET,
Inventory.PAPERDOLL_DECO1,
Inventory.PAPERDOLL_DECO2,
Inventory.PAPERDOLL_DECO3,
Inventory.PAPERDOLL_DECO4,
Inventory.PAPERDOLL_DECO5,
Inventory.PAPERDOLL_DECO6,
Inventory.PAPERDOLL_BELT,
Inventory.PAPERDOLL_BROOCH,
Inventory.PAPERDOLL_BROOCH_JEWEL1,
Inventory.PAPERDOLL_BROOCH_JEWEL2,
Inventory.PAPERDOLL_BROOCH_JEWEL3,
Inventory.PAPERDOLL_BROOCH_JEWEL4,
Inventory.PAPERDOLL_BROOCH_JEWEL5,
Inventory.PAPERDOLL_BROOCH_JEWEL6
};
private static final int[] PAPERDOLL_ORDER_VISUAL_ID = new int[]
{
Inventory.PAPERDOLL_RHAND,
@ -100,7 +137,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeC(size == Config.MAX_CHARACTERS_NUMBER_PER_ACCOUNT ? 0x01 : 0x00); // if 1 can't create new char
packet.writeC(0x01); // 0=can't play, 1=can play free until level 85, 2=100% free play
packet.writeD(0x02); // if 1, Korean client
packet.writeC(0x00); // Balthus Knights, if 1 suggests premium account
packet.writeH(0x00); // Balthus Knights, if 1 suggests premium account
long lastAccess = 0;
if (_activeId == -1)
@ -172,6 +209,12 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeD(charInfoPackage.getPaperdollItemId(slot));
}
packet.writeD(0x00); // Salvation
packet.writeD(0x00); // Salvation
packet.writeD(0x00); // Salvation
packet.writeD(0x00); // Salvation
packet.writeD(0x00); // Salvation
for (int slot : getPaperdollOrderVisualId())
{
packet.writeD(charInfoPackage.getPaperdollItemVisualId(slot));
@ -407,6 +450,12 @@ public class CharSelectionInfo implements IClientOutgoingPacket
return charInfopackage;
}
@Override
public int[] getPaperdollOrder()
{
return PAPERDOLL_ORDER;
}
@Override
public int[] getPaperdollOrderVisualId()
{

View File

@ -28,11 +28,13 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
*/
public class ExQuestItemList extends AbstractItemPacket
{
private final int _sendType;
private final L2PcInstance _activeChar;
private final Collection<L2ItemInstance> _items;
public ExQuestItemList(L2PcInstance activeChar)
public ExQuestItemList(int sendType, L2PcInstance activeChar)
{
_sendType = sendType;
_activeChar = activeChar;
_items = activeChar.getInventory().getItems(L2ItemInstance::isQuestItem);
}
@ -41,8 +43,16 @@ public class ExQuestItemList extends AbstractItemPacket
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_QUEST_ITEM_LIST.writeId(packet);
packet.writeH(_items.size());
packet.writeC(_sendType);
if (_sendType == 2)
{
packet.writeD(_items.size());
}
else
{
packet.writeH(0);
}
packet.writeD(_items.size());
for (L2ItemInstance item : _items)
{
writeItem(packet, item);

View File

@ -28,11 +28,13 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
*/
public class ExReplyPostItemList extends AbstractItemPacket
{
private final int _sendType;
private final L2PcInstance _activeChar;
private final Collection<L2ItemInstance> _itemList;
public ExReplyPostItemList(L2PcInstance activeChar)
public ExReplyPostItemList(int sendType, L2PcInstance activeChar)
{
_sendType = sendType;
_activeChar = activeChar;
_itemList = _activeChar.getInventory().getAvailableItems(true, false, false);
}
@ -41,11 +43,15 @@ public class ExReplyPostItemList extends AbstractItemPacket
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_REPLY_POST_ITEM_LIST.writeId(packet);
packet.writeC(_sendType);
packet.writeD(_itemList.size());
for (L2ItemInstance item : _itemList)
if (_sendType == 2)
{
writeItem(packet, item);
packet.writeD(_itemList.size());
for (L2ItemInstance item : _itemList)
{
writeItem(packet, item);
}
}
return true;
}

View File

@ -27,12 +27,14 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
public class GMViewItemList extends AbstractItemPacket
{
private final int _sendType;
private final List<L2ItemInstance> _items = new ArrayList<>();
private final int _limit;
private final String _playerName;
public GMViewItemList(L2PcInstance cha)
public GMViewItemList(int sendType, L2PcInstance cha)
{
_sendType = sendType;
_playerName = cha.getName();
_limit = cha.getInventoryLimit();
for (L2ItemInstance item : cha.getInventory().getItems())
@ -41,8 +43,9 @@ public class GMViewItemList extends AbstractItemPacket
}
}
public GMViewItemList(L2PetInstance cha)
public GMViewItemList(int sendType, L2PetInstance cha)
{
_sendType = sendType;
_playerName = cha.getName();
_limit = cha.getInventoryLimit();
for (L2ItemInstance item : cha.getInventory().getItems())
@ -55,11 +58,17 @@ public class GMViewItemList extends AbstractItemPacket
public boolean write(PacketWriter packet)
{
OutgoingPackets.GM_VIEW_ITEM_LIST.writeId(packet);
packet.writeS(_playerName);
packet.writeD(_limit); // inventory limit
packet.writeH(0x01); // show window ??
packet.writeH(_items.size());
packet.writeC(_sendType);
if (_sendType == 2)
{
packet.writeD(_items.size());
}
else
{
packet.writeS(_playerName);
packet.writeD(_limit); // inventory limit
}
packet.writeD(_items.size());
for (L2ItemInstance item : _items)
{
writeItem(packet, item);

View File

@ -52,6 +52,11 @@ public interface IClientOutgoingPacket extends IOutgoingPacket
Inventory.PAPERDOLL_HAIR2,
Inventory.PAPERDOLL_RBRACELET,
Inventory.PAPERDOLL_LBRACELET,
Inventory.PAPERDOLL_AGATHION1,
Inventory.PAPERDOLL_AGATHION2,
Inventory.PAPERDOLL_AGATHION3,
Inventory.PAPERDOLL_AGATHION4,
Inventory.PAPERDOLL_AGATHION5,
Inventory.PAPERDOLL_DECO1,
Inventory.PAPERDOLL_DECO2,
Inventory.PAPERDOLL_DECO3,
@ -66,7 +71,6 @@ public interface IClientOutgoingPacket extends IOutgoingPacket
Inventory.PAPERDOLL_BROOCH_JEWEL4,
Inventory.PAPERDOLL_BROOCH_JEWEL5,
Inventory.PAPERDOLL_BROOCH_JEWEL6
};
int[] PAPERDOLL_ORDER_AUGMENT = new int[]

View File

@ -26,14 +26,14 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
public final class ItemList extends AbstractItemPacket
{
private final int _sendType;
private final L2PcInstance _activeChar;
private final List<L2ItemInstance> _items;
private final boolean _showWindow;
public ItemList(L2PcInstance activeChar, boolean showWindow)
public ItemList(int sendType, L2PcInstance activeChar)
{
_sendType = sendType;
_activeChar = activeChar;
_showWindow = showWindow;
_items = activeChar.getInventory().getItems(item -> !item.isQuestItem()).stream().collect(Collectors.toList());
}
@ -41,12 +41,21 @@ public final class ItemList extends AbstractItemPacket
public boolean write(PacketWriter packet)
{
OutgoingPackets.ITEM_LIST.writeId(packet);
packet.writeH(_showWindow ? 0x01 : 0x00);
packet.writeH(_items.size());
for (L2ItemInstance item : _items)
if (_sendType == 2)
{
writeItem(packet, item);
packet.writeC(_sendType);
packet.writeD(_items.size());
packet.writeD(_items.size());
for (L2ItemInstance item : _items)
{
writeItem(packet, item);
}
}
else
{
packet.writeC(0x01); // _showWindow ? 0x01 : 0x00
packet.writeD(0x00);
packet.writeD(_items.size());
}
writeInventoryBlock(packet, _activeChar.getInventory());
return true;

View File

@ -24,17 +24,18 @@ import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.network.OutgoingPackets;
/**
* @author -Wooden-
* @author UnAfraid, mrTJO
* @author Mobius
*/
public class PackageSendableList extends AbstractItemPacket
{
private final Collection<L2ItemInstance> _items;
private final int _objectId;
private final long _adena;
private final int _sendType;
public PackageSendableList(L2PcInstance player, int objectId)
public PackageSendableList(int sendType, L2PcInstance player, int objectId)
{
_sendType = sendType;
_items = player.getInventory().getAvailableItems(true, true, true);
_objectId = objectId;
_adena = player.getAdena();
@ -45,13 +46,22 @@ public class PackageSendableList extends AbstractItemPacket
{
OutgoingPackets.PACKAGE_SENDABLE_LIST.writeId(packet);
packet.writeD(_objectId);
packet.writeQ(_adena);
packet.writeD(_items.size());
for (L2ItemInstance item : _items)
packet.writeC(_sendType);
if (_sendType == 2)
{
writeItem(packet, item);
packet.writeD(item.getObjectId());
packet.writeD(_items.size());
packet.writeD(_items.size());
for (L2ItemInstance item : _items)
{
writeItem(packet, item);
packet.writeD(item.getObjectId());
}
}
else
{
packet.writeD(_objectId);
packet.writeQ(_adena);
packet.writeD(_items.size());
}
return true;
}

View File

@ -26,13 +26,15 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
public class PrivateStoreManageListBuy extends AbstractItemPacket
{
private final int _sendType;
private final int _objId;
private final long _playerAdena;
private final Collection<L2ItemInstance> _itemList;
private final TradeItem[] _buyList;
public PrivateStoreManageListBuy(L2PcInstance player)
public PrivateStoreManageListBuy(int sendType, L2PcInstance player)
{
_sendType = sendType;
_objId = player.getObjectId();
_playerAdena = player.getAdena();
_itemList = player.getInventory().getUniqueItems(false, true);
@ -43,24 +45,35 @@ public class PrivateStoreManageListBuy extends AbstractItemPacket
public boolean write(PacketWriter packet)
{
OutgoingPackets.PRIVATE_STORE_BUY_MANAGE_LIST.writeId(packet);
packet.writeD(_objId);
packet.writeQ(_playerAdena);
packet.writeD(_itemList.size()); // inventory items for potential buy
for (L2ItemInstance item : _itemList)
packet.writeC(_sendType);
if (_sendType == 2)
{
writeItem(packet, item);
packet.writeQ(item.getItem().getReferencePrice() * 2);
packet.writeD(_itemList.size());
packet.writeD(_itemList.size());
for (L2ItemInstance item : _itemList)
{
writeItem(packet, item);
packet.writeQ(item.getItem().getReferencePrice() * 2);
}
}
packet.writeD(_buyList.length); // count for all items already added for buy
for (TradeItem item : _buyList)
else
{
writeItem(packet, item);
packet.writeQ(item.getPrice());
packet.writeQ(item.getItem().getReferencePrice() * 2);
packet.writeQ(item.getCount());
packet.writeD(_objId);
packet.writeQ(_playerAdena);
packet.writeD(0x00);
for (L2ItemInstance item : _itemList)
{
writeItem(packet, item);
packet.writeQ(item.getItem().getReferencePrice() * 2);
}
packet.writeD(0x00);
for (TradeItem item2 : _buyList)
{
writeItem(packet, item2);
packet.writeQ(item2.getPrice());
packet.writeQ(item2.getItem().getReferencePrice() * 2);
packet.writeQ(item2.getCount());
}
}
return true;
}

View File

@ -25,14 +25,16 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
public class PrivateStoreManageListSell extends AbstractItemPacket
{
private final int _sendType;
private final int _objId;
private final long _playerAdena;
private final boolean _packageSale;
private final Collection<TradeItem> _itemList;
private final TradeItem[] _sellList;
public PrivateStoreManageListSell(L2PcInstance player, boolean isPackageSale)
public PrivateStoreManageListSell(int sendType, L2PcInstance player, boolean isPackageSale)
{
_sendType = sendType;
_objId = player.getObjectId();
_playerAdena = player.getAdena();
player.getSellList().updateItems();
@ -45,24 +47,35 @@ public class PrivateStoreManageListSell extends AbstractItemPacket
public boolean write(PacketWriter packet)
{
OutgoingPackets.PRIVATE_STORE_MANAGE_LIST.writeId(packet);
packet.writeD(_objId);
packet.writeD(_packageSale ? 1 : 0); // Package sell
packet.writeQ(_playerAdena);
packet.writeD(_itemList.size()); // for potential sells
for (TradeItem item : _itemList)
packet.writeC(_sendType);
if (_sendType == 2)
{
writeItem(packet, item);
packet.writeQ(item.getItem().getReferencePrice() * 2);
packet.writeD(_itemList.size());
packet.writeD(_itemList.size());
for (TradeItem item : _itemList)
{
writeItem(packet, item);
packet.writeQ(item.getItem().getReferencePrice() * 2);
}
}
packet.writeD(_sellList.length); // count for any items already added for sell
for (TradeItem item : _sellList)
else
{
writeItem(packet, item);
packet.writeQ(item.getPrice());
packet.writeQ(item.getItem().getReferencePrice() * 2);
packet.writeD(_objId);
packet.writeD(_packageSale ? 1 : 0);
packet.writeQ(_playerAdena);
packet.writeD(0x00);
for (TradeItem item : _itemList)
{
writeItem(packet, item);
packet.writeQ(item.getItem().getReferencePrice() * 2);
}
packet.writeD(0x00);
for (TradeItem item2 : _sellList)
{
writeItem(packet, item2);
packet.writeQ(item2.getPrice());
packet.writeQ(item2.getItem().getReferencePrice() * 2);
}
}
return true;
}

View File

@ -25,10 +25,12 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
*/
public final class TradeOtherAdd extends AbstractItemPacket
{
private final int _sendType;
private final TradeItem _item;
public TradeOtherAdd(TradeItem item)
public TradeOtherAdd(int sendType, TradeItem item)
{
_sendType = sendType;
_item = item;
}
@ -36,7 +38,12 @@ public final class TradeOtherAdd extends AbstractItemPacket
public boolean write(PacketWriter packet)
{
OutgoingPackets.TRADE_OTHER_ADD.writeId(packet);
packet.writeH(1); // item count
packet.writeC(_sendType);
if (_sendType == 2)
{
packet.writeD(0x01);
}
packet.writeD(0x01);
writeItem(packet, _item);
return true;
}

View File

@ -25,10 +25,12 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
*/
public final class TradeOwnAdd extends AbstractItemPacket
{
private final int _sendType;
private final TradeItem _item;
public TradeOwnAdd(TradeItem item)
public TradeOwnAdd(int sendType, TradeItem item)
{
_sendType = sendType;
_item = item;
}
@ -36,7 +38,12 @@ public final class TradeOwnAdd extends AbstractItemPacket
public boolean write(PacketWriter packet)
{
OutgoingPackets.TRADE_OWN_ADD.writeId(packet);
packet.writeH(1); // items added count
packet.writeC(_sendType);
if (_sendType == 2)
{
packet.writeD(0x01);
}
packet.writeD(0x01);
writeItem(packet, _item);
return true;
}

View File

@ -28,13 +28,15 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
public final class TradeStart extends AbstractItemPacket
{
private final int _sendType;
private final L2PcInstance _activeChar;
private final L2PcInstance _partner;
private final Collection<L2ItemInstance> _itemList;
private int _mask = 0;
public TradeStart(L2PcInstance player)
public TradeStart(int sendType, L2PcInstance player)
{
_sendType = sendType;
_activeChar = player;
_partner = player.getActiveTradeList().getPartner();
_itemList = _activeChar.getInventory().getAvailableItems(true, (_activeChar.canOverrideCond(PcCondOverride.ITEM_CONDITIONS) && Config.GM_TRADE_RESTRICTED_ITEMS), false);
@ -75,16 +77,24 @@ public final class TradeStart extends AbstractItemPacket
}
OutgoingPackets.TRADE_START.writeId(packet);
packet.writeD(_partner.getObjectId());
packet.writeC(_mask); // some kind of mask
if ((_mask & 0x10) == 0)
packet.writeC(_sendType);
if (_sendType == 2)
{
packet.writeC(_partner.getLevel());
packet.writeD(_itemList.size());
packet.writeD(_itemList.size());
for (L2ItemInstance item : _itemList)
{
writeItem(packet, item);
}
}
packet.writeH(_itemList.size());
for (L2ItemInstance item : _itemList)
else
{
writeItem(packet, item);
packet.writeD(_partner.getObjectId());
packet.writeC(_mask); // some kind of mask
if ((_mask & 0x10) == 0)
{
packet.writeC(_partner.getLevel());
}
}
return true;
}

View File

@ -26,23 +26,31 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
*/
public class TradeUpdate extends AbstractItemPacket
{
private final int _sendType;
private final TradeItem _item;
private final long _newCount;
private final long _count;
public TradeUpdate(L2PcInstance player, TradeItem item)
public TradeUpdate(int sendType, L2PcInstance player, TradeItem item, long count)
{
_sendType = sendType;
_count = count;
_item = item;
_newCount = player.getInventory().getItemByObjectId(item.getObjectId()).getCount() - item.getCount();
_newCount = player == null ? 0 : player.getInventory().getItemByObjectId(item.getObjectId()).getCount() - item.getCount();
}
@Override
public boolean write(PacketWriter packet)
{
OutgoingPackets.TRADE_UPDATE.writeId(packet);
packet.writeH(1);
packet.writeH((_newCount > 0) && _item.getItem().isStackable() ? 3 : 2);
writeItem(packet, _item);
packet.writeC(_sendType);
packet.writeD(0x01);
if (_sendType == 2)
{
packet.writeD(0x01);
packet.writeH((_newCount > 0) && _item.getItem().isStackable() ? 3 : 2);
writeItem(packet, _item, _count);
}
return true;
}
}

View File

@ -133,7 +133,7 @@ public class UserInfo extends AbstractMaskPacket<UserInfoType>
packet.writeD(_activeChar.getObjectId());
packet.writeD(_initSize);
packet.writeH(23);
packet.writeH(24);
packet.writeB(_masks);
if (containsMask(UserInfoType.RELATION))
@ -324,14 +324,25 @@ public class UserInfo extends AbstractMaskPacket<UserInfoType>
if (containsMask(UserInfoType.SLOTS))
{
packet.writeH(9);
packet.writeC(_activeChar.getInventory().getTalismanSlots()); // Confirmed
packet.writeC(_activeChar.getInventory().getBroochJewelSlots()); // Confirmed
packet.writeC(_activeChar.getTeam().getId()); // Confirmed
packet.writeC(0x00); // (1 = Red, 2 = White, 3 = White Pink) dotted ring on the floor
packet.writeH(11); // 140
packet.writeC(_activeChar.getInventory().getTalismanSlots());
packet.writeC(_activeChar.getInventory().getBroochJewelSlots());
packet.writeC(_activeChar.getTeam().getId());
packet.writeC(0x00);
packet.writeC(0x00);
packet.writeC(0x00);
packet.writeC(0x00);
if (_activeChar.getInventory().getAgathionSlots() > 0)
{
packet.writeC(0x01);
packet.writeC(_activeChar.getInventory().getAgathionSlots() - 1);
}
else
{
packet.writeC(0x00);
packet.writeC(0x00);
}
}
if (containsMask(UserInfoType.MOVEMENTS))

View File

@ -30,8 +30,8 @@ public final class WareHouseDepositList extends AbstractItemPacket
public static final int CLAN = 2;
public static final int CASTLE = 3;
public static final int FREIGHT = 1;
private final int _sendType;
private final long _playerAdena;
private final int _warehouseSize;
private final List<L2ItemInstance> _items = new ArrayList<>();
private final List<Integer> _itemsStackable = new ArrayList<>();
/**
@ -44,11 +44,11 @@ public final class WareHouseDepositList extends AbstractItemPacket
*/
private final int _whType;
public WareHouseDepositList(L2PcInstance player, int type)
public WareHouseDepositList(int sendType, L2PcInstance player, int type)
{
_sendType = sendType;
_whType = type;
_playerAdena = player.getAdena();
_warehouseSize = player.getActiveWarehouse() != null ? player.getActiveWarehouse().getSize() : 0;
final boolean isPrivate = _whType == PRIVATE;
for (L2ItemInstance temp : player.getInventory().getAvailableItems(true, isPrivate, false))
@ -68,23 +68,23 @@ public final class WareHouseDepositList extends AbstractItemPacket
public boolean write(PacketWriter packet)
{
OutgoingPackets.WAREHOUSE_DEPOSIT_LIST.writeId(packet);
packet.writeH(_whType);
packet.writeQ(_playerAdena);
packet.writeD(_warehouseSize);
packet.writeH(_itemsStackable.size());
for (int itemId : _itemsStackable)
packet.writeC(_sendType);
if (_sendType == 2)
{
packet.writeD(itemId);
packet.writeD(_whType);
packet.writeD(_items.size());
for (L2ItemInstance item : _items)
{
writeItem(packet, item);
packet.writeD(item.getObjectId());
}
}
packet.writeH(_items.size());
for (L2ItemInstance item : _items)
else
{
writeItem(packet, item);
packet.writeD(item.getObjectId());
packet.writeH(_whType);
packet.writeQ(_playerAdena);
packet.writeD(_itemsStackable.size());
packet.writeD(_items.size());
}
return true;
}

View File

@ -31,6 +31,7 @@ public final class WareHouseWithdrawalList extends AbstractItemPacket
public static final int CLAN = 2;
public static final int CASTLE = 3; // not sure
public static final int FREIGHT = 1;
private final int _sendType;
private L2PcInstance _activeChar;
private long _playerAdena;
private final int _invSize;
@ -46,8 +47,9 @@ public final class WareHouseWithdrawalList extends AbstractItemPacket
*/
private int _whType;
public WareHouseWithdrawalList(L2PcInstance player, int type)
public WareHouseWithdrawalList(int sendType, L2PcInstance player, int type)
{
_sendType = sendType;
_activeChar = player;
_whType = type;
@ -74,22 +76,26 @@ public final class WareHouseWithdrawalList extends AbstractItemPacket
public boolean write(PacketWriter packet)
{
OutgoingPackets.WAREHOUSE_WITHDRAW_LIST.writeId(packet);
packet.writeH(_whType);
packet.writeQ(_playerAdena);
packet.writeH(_items.size());
packet.writeH(_itemsStackable.size());
for (int itemId : _itemsStackable)
packet.writeC(_sendType);
if (_sendType == 2)
{
packet.writeD(itemId);
packet.writeH(0x00);
packet.writeD(_invSize);
packet.writeD(_items.size());
for (L2ItemInstance item : _items)
{
writeItem(packet, item);
packet.writeD(item.getObjectId());
packet.writeD(0x00);
packet.writeD(0x00);
}
}
packet.writeD(_invSize);
for (L2ItemInstance item : _items)
else
{
writeItem(packet, item);
packet.writeD(item.getObjectId());
packet.writeD(0);
packet.writeD(0);
packet.writeH(_whType);
packet.writeQ(_playerAdena);
packet.writeD(_invSize);
packet.writeD(_items.size());
}
return true;
}

View File

@ -28,10 +28,12 @@ import com.l2jmobius.gameserver.network.serverpackets.AbstractItemPacket;
*/
public class ExResponseCommissionItemList extends AbstractItemPacket
{
private final int _sendType;
private final Collection<L2ItemInstance> _items;
public ExResponseCommissionItemList(Collection<L2ItemInstance> items)
public ExResponseCommissionItemList(int sendType, Collection<L2ItemInstance> items)
{
_sendType = sendType;
_items = items;
}
@ -39,11 +41,20 @@ public class ExResponseCommissionItemList extends AbstractItemPacket
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_RESPONSE_COMMISSION_ITEM_LIST.writeId(packet);
packet.writeD(_items.size());
for (L2ItemInstance itemInstance : _items)
packet.writeC(_sendType);
if (_sendType == 2)
{
writeItem(packet, itemInstance);
packet.writeD(_items.size());
packet.writeD(_items.size());
for (L2ItemInstance itemInstance : _items)
{
writeItem(packet, itemInstance);
}
}
else
{
packet.writeD(0);
packet.writeD(0);
}
return true;
}

Some files were not shown because too many files have changed in this diff Show More