Initial Antharas changes.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<projectDescription>
|
<projectDescription>
|
||||||
<name>L2J_Mobius_Classic_2.1_Zaken</name>
|
<name>L2J_Mobius_Classic_2.2_Antharas</name>
|
||||||
<comment></comment>
|
<comment></comment>
|
||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE xml>
|
<!DOCTYPE xml>
|
||||||
<project name="L2J_Mobius_Classic_2.1_Zaken" default="cleanup" basedir=".">
|
<project name="L2J_Mobius_Classic_2.2_Antharas" default="cleanup" basedir=".">
|
||||||
<description>
|
<description>
|
||||||
This file is part of the L2J Mobius project.
|
This file is part of the L2J Mobius project.
|
||||||
|
|
||||||
@@ -133,15 +133,15 @@
|
|||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="adding-core" depends="jar" description="Adding the compiled jars to the Zip file.">
|
<target name="adding-core" depends="jar" description="Adding the compiled jars to the Zip file.">
|
||||||
<zip destfile="${build}/L2J_Mobius_Classic_2.1_Zaken.zip" basedir="${build.dist}" level="9" />
|
<zip destfile="${build}/L2J_Mobius_Classic_2.2_Antharas.zip" basedir="${build.dist}" level="9" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="adding-datapack" depends="adding-core" description="Updating the Zip file with datapack content.">
|
<target name="adding-datapack" depends="adding-core" description="Updating the Zip file with datapack content.">
|
||||||
<zip destfile="${build}/L2J_Mobius_Classic_2.1_Zaken.zip" basedir="${datapack}" update="true" level="9" />
|
<zip destfile="${build}/L2J_Mobius_Classic_2.2_Antharas.zip" basedir="${datapack}" update="true" level="9" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="adding-readme" depends="adding-datapack" description="Adding readme.txt to the Zip file.">
|
<target name="adding-readme" depends="adding-datapack" description="Adding readme.txt to the Zip file.">
|
||||||
<zip destfile="${build}/L2J_Mobius_Classic_2.1_Zaken.zip" basedir="." includes="readme.txt" update="true" level="9" />
|
<zip destfile="${build}/L2J_Mobius_Classic_2.2_Antharas.zip" basedir="." includes="readme.txt" update="true" level="9" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="cleanup" depends="adding-readme" description="Cleaning the build folder.">
|
<target name="cleanup" depends="adding-readme" description="Cleaning the build folder.">
|
||||||
|
@@ -650,8 +650,8 @@ RaidLootRightsCCSize = 45
|
|||||||
# Specific item ids for auto pickup.
|
# Specific item ids for auto pickup.
|
||||||
# Overrides all methods above.
|
# Overrides all methods above.
|
||||||
# Format: itemId,itemId,itemId,....
|
# Format: itemId,itemId,itemId,....
|
||||||
# Default: 0
|
# Default: 57
|
||||||
AutoLootItemIds = 0
|
AutoLootItemIds = 57
|
||||||
|
|
||||||
# Enable keyboard movement.
|
# Enable keyboard movement.
|
||||||
# Retail: True
|
# Retail: True
|
||||||
|
@@ -106,8 +106,8 @@ MaximumOnlineUsers = 2000
|
|||||||
# Numbers of protocol revisions that server allows to connect.
|
# Numbers of protocol revisions that server allows to connect.
|
||||||
# Delimiter is ;
|
# 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>
|
# 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
|
# Antharas: 140
|
||||||
AllowedProtocolRevisions = 110
|
AllowedProtocolRevisions = 140
|
||||||
|
|
||||||
# Displays server type next to the server name on character selection.
|
# Displays server type next to the server name on character selection.
|
||||||
# Notes:
|
# Notes:
|
||||||
|
5
L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/teleporter/34040.htm
vendored
Normal file
5
L2J_Mobius_Classic_2.2_Antharas/dist/game/data/html/teleporter/34040.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<html><head><body>Tyrone:<br>
|
||||||
|
Now no one even remembers the forgotten treasures ... But the cunning and quick-witted Varka Faunas and the Ketra Orks constantly break camps and seek treasures. It would be to kill these creatures and take the treasure to yourself. True, in the treasure hunt, there is a risk of encountering a monster about which horrible legends are composed.<br>
|
||||||
|
Caves conceal and untold treasures, and incredible dangers. Remember this.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="TELEPORT" action="bypass -h npc_%objectId%_teleport OTHER 0">Teleport to the island</Button>
|
||||||
|
</body></html>
|
@@ -37,5 +37,6 @@
|
|||||||
<map X="25" Y="17" />
|
<map X="25" Y="17" />
|
||||||
<map X="25" Y="18" />
|
<map X="25" Y="18" />
|
||||||
<map X="25" Y="19" />
|
<map X="25" Y="19" />
|
||||||
|
<map X="20" Y="17" />
|
||||||
</region>
|
</region>
|
||||||
</list>
|
</list>
|
@@ -239,7 +239,7 @@ public class AdminCreateItem implements IAdminCommandHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
player.getInventory().destroyItem("AdminDelete", idval, numval, activeChar, null);
|
player.getInventory().destroyItem("AdminDelete", idval, numval, activeChar, null);
|
||||||
activeChar.sendPacket(new GMViewItemList(player));
|
activeChar.sendPacket(new GMViewItemList(1, player));
|
||||||
BuilderUtil.sendSysMessage(activeChar, "Item deleted.");
|
BuilderUtil.sendSysMessage(activeChar, "Item deleted.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -276,7 +276,7 @@ public class AdminCreateItem implements IAdminCommandHandler
|
|||||||
ih.useItem(player, item, false);
|
ih.useItem(player, item, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
activeChar.sendPacket(new GMViewItemList(player));
|
activeChar.sendPacket(new GMViewItemList(1, player));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -807,7 +807,7 @@ public class AdminEditChar implements IAdminCommandHandler
|
|||||||
|
|
||||||
if (target instanceof L2PetInstance)
|
if (target instanceof L2PetInstance)
|
||||||
{
|
{
|
||||||
activeChar.sendPacket(new GMViewItemList((L2PetInstance) target));
|
activeChar.sendPacket(new GMViewItemList(1, (L2PetInstance) target));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -96,7 +96,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;
|
return true;
|
||||||
}
|
}
|
||||||
else if (command.toLowerCase().startsWith(COMMANDS[1])) // DepositC
|
else if (command.toLowerCase().startsWith(COMMANDS[1])) // DepositC
|
||||||
@@ -104,7 +105,8 @@ public class ClanWarehouse implements IBypassHandler
|
|||||||
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
activeChar.setActiveWarehouse(activeChar.getClan().getWarehouse());
|
activeChar.setActiveWarehouse(activeChar.getClan().getWarehouse());
|
||||||
activeChar.setInventoryBlockingStatus(true);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -59,7 +59,7 @@ public class Freight implements IBypassHandler
|
|||||||
activeChar.getActiveWarehouse().destroyItem("L2ItemInstance", i, activeChar, null);
|
activeChar.getActiveWarehouse().destroyItem("L2ItemInstance", i, activeChar, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
activeChar.sendPacket(new WareHouseWithdrawalList(activeChar, WareHouseWithdrawalList.FREIGHT));
|
activeChar.sendPacket(new WareHouseWithdrawalList(1, activeChar, WareHouseWithdrawalList.FREIGHT));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -59,7 +59,8 @@ public class PrivateWarehouse implements IBypassHandler
|
|||||||
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
activeChar.setActiveWarehouse(activeChar.getWarehouse());
|
activeChar.setActiveWarehouse(activeChar.getWarehouse());
|
||||||
activeChar.setInventoryBlockingStatus(true);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,7 +84,8 @@ public class PrivateWarehouse implements IBypassHandler
|
|||||||
return;
|
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
|
@Override
|
||||||
|
@@ -101,14 +101,16 @@ public final class PrivateStore implements IPlayerActionHandler
|
|||||||
case PACKAGE_SELL:
|
case PACKAGE_SELL:
|
||||||
{
|
{
|
||||||
activeChar.setPrivateStoreType(PrivateStoreType.SELL_MANAGE);
|
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;
|
break;
|
||||||
}
|
}
|
||||||
case BUY:
|
case BUY:
|
||||||
case BUY_MANAGE:
|
case BUY_MANAGE:
|
||||||
{
|
{
|
||||||
activeChar.setPrivateStoreType(PrivateStoreType.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;
|
break;
|
||||||
}
|
}
|
||||||
case MANUFACTURE:
|
case MANUFACTURE:
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
</parameters>
|
</parameters>
|
||||||
<race>FAIRY</race>
|
<race>FAIRY</race>
|
||||||
<sex>MALE</sex>
|
<sex>MALE</sex>
|
||||||
<acquire exp="44" sp="0" />
|
<acquire exp="44" sp="1" />
|
||||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||||
<vitals hp="39" hpRegen="2" mp="40" mpRegen="0.9" />
|
<vitals hp="39" hpRegen="2" mp="40" mpRegen="0.9" />
|
||||||
<attack physical="8.47458" magical="5.78704" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
<attack physical="8.47458" magical="5.78704" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
||||||
|
@@ -399,121 +399,133 @@
|
|||||||
</spoil>
|
</spoil>
|
||||||
</drop_lists>
|
</drop_lists>
|
||||||
</npc>
|
</npc>
|
||||||
<npc id="20406" level="65" type="L2Monster" name="Young Red Fox">
|
<npc id="20406" level="65" type="L2Monster" name="Banshee" title="">
|
||||||
|
<!-- Source: https://l2central.info/classic/%D0%91%D0%B0%D0%BD%D1%8C%D1%88%D0%B8 -->
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="MoveAroundSocial" value="80" />
|
<skill name="HealMagic_a" id="4209" level="6" />
|
||||||
<param name="MoveAroundSocial1" value="80" />
|
<skill name="SelfRangeBuff_a" id="4213" level="6" />
|
||||||
<param name="MoveAroundSocial2" value="80" />
|
|
||||||
</parameters>
|
</parameters>
|
||||||
<race>DEMONIC</race>
|
<race>DEMONIC</race>
|
||||||
<sex>MALE</sex>
|
<sex>FEMALE</sex>
|
||||||
<acquire exp="38968" sp="1169" />
|
<acquire exp="38968" sp="1169" />
|
||||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||||
<vitals hp="2313" hpRegen="2" mp="1188" mpRegen="0.9" />
|
<vitals hp="18278" hpRegen="115.186274265113" mp="1188" mpRegen="2.7" />
|
||||||
<attack physical="9.322038" magical="5.78704" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
<attack physical="4044.43744641044" magical="2658.00371930373" random="10" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
||||||
<defence physical="40.40403636" magical="32.52252" />
|
<defence physical="429.54225" magical="419.1" evasion="-18" />
|
||||||
<speed>
|
<speed>
|
||||||
<walk ground="80" />
|
<walk ground="80" />
|
||||||
<run ground="174" />
|
<run ground="170" />
|
||||||
</speed>
|
</speed>
|
||||||
<hit_time>370</hit_time>
|
<hit_time>560</hit_time>
|
||||||
|
<abnormalResist physical="10" magical="10" />
|
||||||
</stats>
|
</stats>
|
||||||
<status undying="false" canBeSown="true" />
|
<status undying="false" />
|
||||||
<skill_list>
|
<skill_list>
|
||||||
|
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||||
|
<skill id="4209" level="6" /> <!-- BOSS Heal -->
|
||||||
|
<skill id="4213" level="6" /> <!-- BOSS Haste -->
|
||||||
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
|
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
|
||||||
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
|
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
|
||||||
<skill id="4410" level="12" /> <!-- Slightly Strong P. Atk. -->
|
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
|
||||||
<skill id="4411" level="12" /> <!-- Slightly Strong M. Atk. -->
|
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
|
||||||
<skill id="4412" level="10" /> <!-- Slightly Weak P. Def. -->
|
<skill id="4412" level="11" /> <!-- Average P. Def. -->
|
||||||
<skill id="4413" level="10" /> <!-- Slightly Weak M. Def. -->
|
<skill id="4413" level="11" /> <!-- Average M. Def. -->
|
||||||
<skill id="4414" level="2" /> <!-- Standard Type -->
|
<skill id="4414" level="2" /> <!-- Standard Type -->
|
||||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||||
<skill id="4416" level="4" /> <!-- Animals -->
|
<skill id="4275" level="2" /> <!-- Holy Attack Vulnerability -->
|
||||||
|
<skill id="4278" level="1" /> <!-- Dark Attack -->
|
||||||
|
<skill id="4416" level="9" /> <!-- Demons -->
|
||||||
</skill_list>
|
</skill_list>
|
||||||
<ex_crt_effect>false</ex_crt_effect>
|
<ex_crt_effect>true</ex_crt_effect>
|
||||||
<ai aggroRange="500" clanHelpRange="300" isAggressive="false" />
|
<ai type="BALANCED" clanHelpRange="300" />
|
||||||
<collision>
|
<collision>
|
||||||
<radius normal="11" />
|
<radius normal="9" />
|
||||||
<height normal="28.5" />
|
<height normal="23" />
|
||||||
</collision>
|
</collision>
|
||||||
<drop_lists>
|
<drop_lists>
|
||||||
<drop>
|
<drop>
|
||||||
<item id="503" min="1" max="1" chance="0.075" /> <!-- Sealed Zubei's Helmet -->
|
<item id="503" min="1" max="1" chance="0.1" />
|
||||||
<item id="2415" min="1" max="1" chance="0.075" /> <!-- Sealed Avadon Circlet -->
|
<item id="2415" min="1" max="1" chance="0.1" />
|
||||||
<item id="57" min="2289" max="5346" chance="70" /> <!-- Adena -->
|
<item id="57" min="2289" max="5346" chance="70" />
|
||||||
<item id="4180" min="1" max="1" chance="8.875" /> <!-- Recipe: Silver Arrow -->
|
<item id="4180" min="1" max="1" chance="9.767" />
|
||||||
<item id="4072" min="1" max="3" chance="7.933" /> <!-- Sealed Avadon Circlet Pattern -->
|
<item id="4072" min="1" max="3" chance="8.722" />
|
||||||
<item id="4102" min="1" max="3" chance="5.309" /> <!-- Sealed Zubei's Helmet Design -->
|
<item id="4102" min="1" max="3" chance="5.835" />
|
||||||
<item id="4952" min="1" max="1" chance="1.019" /> <!-- Recipe: Sealed Avadon Circlet (60%) -->
|
<item id="4952" min="1" max="1" chance="1.122" />
|
||||||
<item id="4962" min="1" max="1" chance="0.963" /> <!-- Recipe: Sealed Zubei's Helmet (60%) -->
|
<item id="4962" min="1" max="1" chance="1.066" />
|
||||||
<item id="4990" min="1" max="1" chance="0.75" /> <!-- Recipe: Sealed Blue Wolf Helmet (60%) -->
|
<item id="4990" min="1" max="1" chance="1" />
|
||||||
<item id="4991" min="1" max="1" chance="0.75" /> <!-- Recipe: Sealed Doom Helmet (60%) -->
|
<item id="4991" min="1" max="1" chance="1" />
|
||||||
</drop>
|
</drop>
|
||||||
<spoil>
|
<spoil>
|
||||||
<item id="4952" min="1" max="1" chance="10.9" /> <!-- Recipe: Sealed Avadon Circlet (60%) -->
|
<item id="4952" min="1" max="1" chance="11.95" />
|
||||||
<item id="4962" min="1" max="1" chance="10.2" /> <!-- Recipe: Sealed Zubei's Helmet (60%) -->
|
<item id="4962" min="1" max="1" chance="11.25" />
|
||||||
<item id="4991" min="1" max="1" chance="6.755" /> <!-- Recipe: Sealed Doom Helmet (60%) -->
|
<item id="4991" min="1" max="1" chance="7.429" />
|
||||||
<item id="4990" min="1" max="1" chance="6.731" /> <!-- Recipe: Sealed Blue Wolf Helmet (60%) -->
|
<item id="4990" min="1" max="1" chance="7.405" />
|
||||||
</spoil>
|
</spoil>
|
||||||
</drop_lists>
|
</drop_lists>
|
||||||
</npc>
|
</npc>
|
||||||
<npc id="20407" level="70" type="L2Monster" name="Young Crimson Fox">
|
<npc id="20407" level="70" type="L2Monster" name="Maluk Banshee" title="">
|
||||||
|
<!-- Source: https://l2central.info/classic/%D0%91%D0%B0%D0%BD%D1%8C%D1%88%D0%B8_%D0%9C%D0%B0%D0%BB%D1%80%D1%83%D0%BA%D0%B0 -->
|
||||||
<parameters>
|
<parameters>
|
||||||
<param name="MoveAroundSocial" value="80" />
|
<skill name="HealMagic_a" id="4209" level="6" />
|
||||||
<param name="MoveAroundSocial1" value="80" />
|
<skill name="SelfRangeBuff_a" id="4213" level="6" />
|
||||||
<param name="MoveAroundSocial2" value="80" />
|
|
||||||
</parameters>
|
</parameters>
|
||||||
<race>UNDEAD</race>
|
<race>DEMONIC</race>
|
||||||
<sex>MALE</sex>
|
<sex>FEMALE</sex>
|
||||||
<acquire exp="45946" sp="1378" />
|
<acquire exp="45946" sp="1378" />
|
||||||
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||||
<vitals hp="2578" hpRegen="2" mp="1345" mpRegen="0.9" />
|
<vitals hp="20372" hpRegen="115.186274265113" mp="1345" mpRegen="2.7" />
|
||||||
<attack physical="9.322038" magical="5.78704" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
<attack physical="4044.43744641044" magical="2658.00371930373" random="10" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
|
||||||
<defence physical="40.40403636" magical="32.52252" />
|
<defence physical="429.54225" magical="419.1" evasion="-18" />
|
||||||
<speed>
|
<speed>
|
||||||
<walk ground="45" />
|
<walk ground="80" />
|
||||||
<run ground="174" />
|
<run ground="170" />
|
||||||
</speed>
|
</speed>
|
||||||
<hit_time>370</hit_time>
|
<hit_time>560</hit_time>
|
||||||
|
<abnormalResist physical="10" magical="10" />
|
||||||
</stats>
|
</stats>
|
||||||
<status undying="false" canBeSown="true" />
|
<status undying="false" />
|
||||||
<skill_list>
|
<skill_list>
|
||||||
|
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
|
||||||
|
<skill id="4209" level="6" /> <!-- BOSS Heal -->
|
||||||
|
<skill id="4213" level="6" /> <!-- BOSS Haste -->
|
||||||
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
|
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
|
||||||
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
|
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
|
||||||
<skill id="4410" level="12" /> <!-- Slightly Strong P. Atk. -->
|
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
|
||||||
<skill id="4411" level="12" /> <!-- Slightly Strong M. Atk. -->
|
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
|
||||||
<skill id="4412" level="10" /> <!-- Slightly Weak P. Def. -->
|
<skill id="4412" level="11" /> <!-- Average P. Def. -->
|
||||||
<skill id="4413" level="10" /> <!-- Slightly Weak M. Def. -->
|
<skill id="4413" level="11" /> <!-- Average M. Def. -->
|
||||||
<skill id="4414" level="2" /> <!-- Standard Type -->
|
<skill id="4414" level="2" /> <!-- Standard Type -->
|
||||||
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
<skill id="4415" level="3" /> <!-- One-handed Sword -->
|
||||||
<skill id="4416" level="4" /> <!-- Animals -->
|
<skill id="4275" level="2" /> <!-- Holy Attack Vulnerability -->
|
||||||
|
<skill id="4278" level="1" /> <!-- Dark Attack -->
|
||||||
|
<skill id="4416" level="9" /> <!-- Demons -->
|
||||||
</skill_list>
|
</skill_list>
|
||||||
<ex_crt_effect>false</ex_crt_effect>
|
<ex_crt_effect>true</ex_crt_effect>
|
||||||
<ai aggroRange="500" clanHelpRange="300" isAggressive="false" />
|
<ai type="BALANCED" clanHelpRange="300" />
|
||||||
<collision>
|
<collision>
|
||||||
<radius normal="15" />
|
<radius normal="9" />
|
||||||
<height normal="45" />
|
<height normal="23" />
|
||||||
</collision>
|
</collision>
|
||||||
<drop_lists>
|
<drop_lists>
|
||||||
<drop>
|
<drop>
|
||||||
<item id="2416" min="1" max="1" chance="0.03" /> <!-- Sealed Blue Wolf Helmet -->
|
<item id="2416" min="1" max="1" chance="0.05" />
|
||||||
<item id="2417" min="1" max="1" chance="0.03" /> <!-- Sealed Doom Helmet -->
|
<item id="2417" min="1" max="1" chance="0.05" />
|
||||||
<item id="287" min="1" max="1" chance="0.003" /> <!-- Bow of Peril -->
|
<item id="287" min="1" max="1" chance="0.005" />
|
||||||
<item id="57" min="2757" max="6432" chance="70" /> <!-- Adena -->
|
<item id="57" min="2757" max="6432" chance="70" />
|
||||||
<item id="4089" min="1" max="1" chance="10.9" /> <!-- Sealed Doom Helmet Design -->
|
<item id="4089" min="1" max="1" chance="11.96" />
|
||||||
<item id="4088" min="1" max="3" chance="5.269" /> <!-- Sealed Blue Wolf Helmet Design -->
|
<item id="4088" min="1" max="3" chance="5.801" />
|
||||||
<item id="4121" min="1" max="1" chance="1.251" /> <!-- Bow of Peril Shaft -->
|
<item id="4121" min="1" max="1" chance="1.374" />
|
||||||
<item id="4952" min="1" max="1" chance="0.75" /> <!-- Recipe: Sealed Avadon Circlet (60%) -->
|
<item id="4952" min="1" max="1" chance="1" />
|
||||||
<item id="4962" min="1" max="1" chance="0.75" /> <!-- Recipe: Sealed Zubei's Helmet (60%) -->
|
<item id="4962" min="1" max="1" chance="1" />
|
||||||
<item id="4991" min="1" max="1" chance="0.3" /> <!-- Recipe: Sealed Doom Helmet (60%) -->
|
<item id="4991" min="1" max="1" chance="0.5" />
|
||||||
<item id="4990" min="1" max="1" chance="0.3" /> <!-- Recipe: Sealed Blue Wolf Helmet (60%) -->
|
<item id="4990" min="1" max="1" chance="0.5" />
|
||||||
<item id="4965" min="1" max="1" chance="0.075" /> <!-- Recipe: Spirit's Staff (60%) -->
|
<item id="4965" min="1" max="1" chance="0.1" />
|
||||||
<item id="90012" min="1" max="1" chance="0.075" /> <!-- Common Life Stone -->
|
<item id="90012" min="1" max="1" chance="0.1" />
|
||||||
<item id="5000" min="1" max="1" chance="0.03" /> <!-- Recipe: Damascus Sword (60%) -->
|
<item id="5000" min="1" max="1" chance="0.05" />
|
||||||
<item id="5004" min="1" max="1" chance="0.03" /> <!-- Recipe: Staff of Evil Spirits (60%) -->
|
<item id="5004" min="1" max="1" chance="0.05" />
|
||||||
</drop>
|
</drop>
|
||||||
<spoil>
|
<spoil>
|
||||||
<item id="4180" min="1" max="9" chance="90.365" /> <!-- Recipe: Silver Arrow -->
|
<item id="4180" min="1" max="9" chance="99.00" />
|
||||||
</spoil>
|
</spoil>
|
||||||
</drop_lists>
|
</drop_lists>
|
||||||
</npc>
|
</npc>
|
||||||
@@ -5133,23 +5145,23 @@
|
|||||||
<radius normal="15" />
|
<radius normal="15" />
|
||||||
<height normal="33" />
|
<height normal="33" />
|
||||||
</collision>
|
</collision>
|
||||||
<drop_lists>
|
<drop_lists>
|
||||||
<drop>
|
<drop>
|
||||||
<item id="40" min="1" max="1" chance="0.3" /> <!-- Leather Boots -->
|
<item id="40" min="1" max="1" chance="0.3" /> <!-- Leather Boots -->
|
||||||
<item id="604" min="1" max="1" chance="0.3" /> <!-- Quality Leather Gloves -->
|
<item id="604" min="1" max="1" chance="0.3" /> <!-- Quality Leather Gloves -->
|
||||||
<item id="57" min="180" max="420" chance="70" /> <!-- Adena -->
|
<item id="57" min="180" max="420" chance="70" /> <!-- Adena -->
|
||||||
<item id="1872" min="1" max="1" chance="12.63" /> <!-- Animal Bone -->
|
<item id="1872" min="1" max="1" chance="12.63" /> <!-- Animal Bone -->
|
||||||
<item id="1870" min="1" max="1" chance="9.875" /> <!-- Coal -->
|
<item id="1870" min="1" max="1" chance="9.875" /> <!-- Coal -->
|
||||||
<item id="1871" min="1" max="1" chance="9.789" /> <!-- Charcoal -->
|
<item id="1871" min="1" max="1" chance="9.789" /> <!-- Charcoal -->
|
||||||
<item id="1934" min="1" max="1" chance="6.061" /> <!-- Quality Leather Glove Lining -->
|
<item id="1934" min="1" max="1" chance="6.061" /> <!-- Quality Leather Glove Lining -->
|
||||||
<item id="1931" min="1" max="1" chance="6.049" /> <!-- Leather Boot Lining -->
|
<item id="1931" min="1" max="1" chance="6.049" /> <!-- Leather Boot Lining -->
|
||||||
<item id="1879" min="1" max="1" chance="1.604" /> <!-- Cokes -->
|
<item id="1879" min="1" max="1" chance="1.604" /> <!-- Cokes -->
|
||||||
<item id="2182" min="1" max="1" chance="1.207" /> <!-- Recipe: Scale Gaiters -->
|
<item id="2182" min="1" max="1" chance="1.207" /> <!-- Recipe: Scale Gaiters -->
|
||||||
</drop>
|
</drop>
|
||||||
<spoil>
|
<spoil>
|
||||||
<item id="1870" min="1" max="3" chance="71.46" /> <!-- Coal -->
|
<item id="1870" min="1" max="3" chance="71.46" /> <!-- Coal -->
|
||||||
<item id="2017" min="1" max="1" chance="1.858" /> <!-- Saber Blade -->
|
<item id="2017" min="1" max="1" chance="1.858" /> <!-- Saber Blade -->
|
||||||
</spoil>
|
</spoil>
|
||||||
</drop_lists>
|
</drop_lists>
|
||||||
</npc>
|
</npc>
|
||||||
</list>
|
</list>
|
||||||
|
1919
L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/npcs/21700-21799.xml
vendored
Normal file
1919
L2J_Mobius_Classic_2.2_Antharas/dist/game/data/stats/npcs/21700-21799.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@@ -34,6 +34,22 @@
|
|||||||
<height normal="30" />
|
<height normal="30" />
|
||||||
</collision>
|
</collision>
|
||||||
</npc>
|
</npc>
|
||||||
|
<npc id="34040" level="78" type="L2Teleporter" name="Tyron" title="Messenger of Gludio">
|
||||||
|
<race>HUMAN</race>
|
||||||
|
<sex>FEMALE</sex>
|
||||||
|
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
|
||||||
|
<vitals hp="8446" hpRegen="7.5" mp="2355" mpRegen="2.7" />
|
||||||
|
<speed>
|
||||||
|
<walk ground="50" />
|
||||||
|
<run ground="100" />
|
||||||
|
</speed>
|
||||||
|
</stats>
|
||||||
|
<status attackable="false" />
|
||||||
|
<collision>
|
||||||
|
<radius normal="8" />
|
||||||
|
<height normal="20" />
|
||||||
|
</collision>
|
||||||
|
</npc>
|
||||||
<npc id="34079" level="99" type="L2Merchant" name="Macken" title="Rarities Traider">
|
<npc id="34079" level="99" type="L2Merchant" name="Macken" title="Rarities Traider">
|
||||||
<race>HUMAN</race>
|
<race>HUMAN</race>
|
||||||
<sex>MALE</sex>
|
<sex>MALE</sex>
|
||||||
|
8
L2J_Mobius_Classic_2.2_Antharas/dist/game/data/teleporters/others/forgotten_island.xml
vendored
Normal file
8
L2J_Mobius_Classic_2.2_Antharas/dist/game/data/teleporters/others/forgotten_island.xml
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/teleporterData.xsd">
|
||||||
|
<npc id="34040">
|
||||||
|
<teleport type="OTHER">
|
||||||
|
<location x="6281" y="-17158" z="-3688" />
|
||||||
|
</teleport>
|
||||||
|
</npc>
|
||||||
|
</list>
|
@@ -15,6 +15,7 @@
|
|||||||
<location npcStringId="1010182" x="184222" y="46666" z="-5864" feeCount="6100" /> <!-- Silent Valley (Lv. 72) -->
|
<location npcStringId="1010182" x="184222" y="46666" z="-5864" feeCount="6100" /> <!-- Silent Valley (Lv. 72) -->
|
||||||
<location npcStringId="1010059" x="114649" y="11115" z="-5120" feeCount="4200" /> <!-- Entrance to the Tower of Insolence -->
|
<location npcStringId="1010059" x="114649" y="11115" z="-5120" feeCount="4200" /> <!-- Entrance to the Tower of Insolence -->
|
||||||
<location npcStringId="1010062" x="177116" y="45786" z="-4168" feeCount="3400" /> <!-- Entrance to the Giant's Cave -->
|
<location npcStringId="1010062" x="177116" y="45786" z="-4168" feeCount="3400" /> <!-- Entrance to the Giant's Cave -->
|
||||||
|
<location npcStringId="1010698" x="11235" y="-24026" z="-3640" feeCount="6400" /> <!-- Forgotten Island -->
|
||||||
</teleport>
|
</teleport>
|
||||||
</npc>
|
</npc>
|
||||||
</list>
|
</list>
|
@@ -56,7 +56,12 @@ public enum InventorySlot implements IUpdateTypeComponent
|
|||||||
BROOCH_JEWEL3(Inventory.PAPERDOLL_BROOCH_JEWEL3),
|
BROOCH_JEWEL3(Inventory.PAPERDOLL_BROOCH_JEWEL3),
|
||||||
BROOCH_JEWEL4(Inventory.PAPERDOLL_BROOCH_JEWEL4),
|
BROOCH_JEWEL4(Inventory.PAPERDOLL_BROOCH_JEWEL4),
|
||||||
BROOCH_JEWEL5(Inventory.PAPERDOLL_BROOCH_JEWEL5),
|
BROOCH_JEWEL5(Inventory.PAPERDOLL_BROOCH_JEWEL5),
|
||||||
BROOCH_JEWEL6(Inventory.PAPERDOLL_BROOCH_JEWEL6);
|
BROOCH_JEWEL6(Inventory.PAPERDOLL_BROOCH_JEWEL6),
|
||||||
|
AGATION1(32), // new 140
|
||||||
|
AGATION2(33), // new 140
|
||||||
|
AGATION3(34), // new 140
|
||||||
|
AGATION4(35), // new 140
|
||||||
|
AGATION5(36); // new 140
|
||||||
|
|
||||||
private final int _paperdollSlot;
|
private final int _paperdollSlot;
|
||||||
|
|
||||||
|
@@ -992,7 +992,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
|
|||||||
{
|
{
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
player.setActiveWarehouse(player.getClan().getWarehouse());
|
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)
|
private void showVaultWindowWithdraw(L2PcInstance player)
|
||||||
@@ -1001,7 +1001,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
|
|||||||
{
|
{
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
player.setActiveWarehouse(player.getClan().getWarehouse());
|
player.setActiveWarehouse(player.getClan().getWarehouse());
|
||||||
player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN));
|
player.sendPacket(new WareHouseWithdrawalList(1, player, WareHouseWithdrawalList.CLAN));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -4607,7 +4607,8 @@ public final class L2PcInstance extends L2Playable
|
|||||||
standUp();
|
standUp();
|
||||||
}
|
}
|
||||||
setPrivateStoreType(PrivateStoreType.BUY_MANAGE);
|
setPrivateStoreType(PrivateStoreType.BUY_MANAGE);
|
||||||
sendPacket(new PrivateStoreManageListBuy(this));
|
sendPacket(new PrivateStoreManageListBuy(1, this));
|
||||||
|
sendPacket(new PrivateStoreManageListBuy(2, this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -5615,7 +5616,8 @@ public final class L2PcInstance extends L2Playable
|
|||||||
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_BEGIN_TRADING_WITH_C1);
|
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_BEGIN_TRADING_WITH_C1);
|
||||||
msg.addPcName(partner);
|
msg.addPcName(partner);
|
||||||
sendPacket(msg);
|
sendPacket(msg);
|
||||||
sendPacket(new TradeStart(this));
|
sendPacket(new TradeStart(1, this));
|
||||||
|
sendPacket(new TradeStart(2, this));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onTradeConfirm(L2PcInstance partner)
|
public void onTradeConfirm(L2PcInstance partner)
|
||||||
@@ -13697,8 +13699,10 @@ public final class L2PcInstance extends L2Playable
|
|||||||
*/
|
*/
|
||||||
public void sendItemList(boolean open)
|
public void sendItemList(boolean open)
|
||||||
{
|
{
|
||||||
sendPacket(new ItemList(this, open));
|
sendPacket(new ItemList(1, this, open));
|
||||||
sendPacket(new ExQuestItemList(this));
|
sendPacket(new ItemList(2, this, open));
|
||||||
|
sendPacket(new ExQuestItemList(1, this));
|
||||||
|
sendPacket(new ExQuestItemList(2, this));
|
||||||
sendPacket(new ExAdenaInvenCount(this));
|
sendPacket(new ExAdenaInvenCount(this));
|
||||||
sendPacket(new ExUserInfoInvenWeight(this));
|
sendPacket(new ExUserInfoInvenWeight(this));
|
||||||
}
|
}
|
||||||
|
@@ -113,7 +113,12 @@ public abstract class Inventory extends ItemContainer
|
|||||||
public static final int PAPERDOLL_BROOCH_JEWEL4 = 29;
|
public static final int PAPERDOLL_BROOCH_JEWEL4 = 29;
|
||||||
public static final int PAPERDOLL_BROOCH_JEWEL5 = 30;
|
public static final int PAPERDOLL_BROOCH_JEWEL5 = 30;
|
||||||
public static final int PAPERDOLL_BROOCH_JEWEL6 = 31;
|
public static final int PAPERDOLL_BROOCH_JEWEL6 = 31;
|
||||||
public static final int PAPERDOLL_TOTALSLOTS = 32;
|
public static final int PAPERDOLL_AGATION1 = 32; // new 140
|
||||||
|
public static final int PAPERDOLL_AGATION2 = 33; // new 140
|
||||||
|
public static final int PAPERDOLL_AGATION3 = 34; // new 140
|
||||||
|
public static final int PAPERDOLL_AGATION4 = 35; // new 140
|
||||||
|
public static final int PAPERDOLL_AGATION5 = 36; // new 140
|
||||||
|
public static final int PAPERDOLL_TOTALSLOTS = 37;
|
||||||
|
|
||||||
// Speed percentage mods
|
// Speed percentage mods
|
||||||
public static final double MAX_ARMOR_WEIGHT = 12000;
|
public static final double MAX_ARMOR_WEIGHT = 12000;
|
||||||
|
@@ -392,9 +392,47 @@ public enum ExIncomingPackets implements IIncomingPackets<L2GameClient>
|
|||||||
EXREQUEST_MATCH_GROUP_WITHDRAW(0x133, null, ConnectionState.IN_GAME),
|
EXREQUEST_MATCH_GROUP_WITHDRAW(0x133, null, ConnectionState.IN_GAME),
|
||||||
EXREQUEST_MATCH_GROUP_OUST(0x134, null, ConnectionState.IN_GAME),
|
EXREQUEST_MATCH_GROUP_OUST(0x134, null, ConnectionState.IN_GAME),
|
||||||
EXREQUEST_MATCH_GROUP_CHANGE_MASTER(0x135, 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(0x136, null, ConnectionState.IN_GAME),
|
||||||
REQUEST_UPGRADE_SYSTEM_RESULT(0x137, null, ConnectionState.IN_GAME),
|
EX_CARD_UPDOWN_PICK_NUMB(0x137, null, ConnectionState.IN_GAME),
|
||||||
REQUEST_USER_BAN_INFO(0x138, 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, null, ConnectionState.IN_GAME),
|
||||||
|
EX_PLEDGE_MASTERY_SET(0x145, null, ConnectionState.IN_GAME),
|
||||||
|
EX_PLEDGE_MASTERY_RESET(0x146, null, 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, null, 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, null, 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;
|
public static final ExIncomingPackets[] PACKET_ARRAY;
|
||||||
|
|
||||||
|
@@ -741,11 +741,53 @@ public enum OutgoingPackets
|
|||||||
EX_MATCH_GROUP_WITHDRAW(0xFE, 0x1CA),
|
EX_MATCH_GROUP_WITHDRAW(0xFE, 0x1CA),
|
||||||
EX_MATCH_GROUP_OUST(0xFE, 0x1CB),
|
EX_MATCH_GROUP_OUST(0xFE, 0x1CB),
|
||||||
EX_ARENA_SHOW_ENEMY_PARTY_LOCATION(0xFE, 0x1CC),
|
EX_ARENA_SHOW_ENEMY_PARTY_LOCATION(0xFE, 0x1CC),
|
||||||
EX_DRESS_ROOM_UI_OPEN(0xFE, 0x1CD),
|
EX_SHOW_UPGRADE_SYSTEM(0xFE, 0x1CD),
|
||||||
EX_DRESS_HANGER_LIST(0xFE, 0x1CE),
|
EX_UPGRADE_SYSTEM_RESULT(0xFE, 0x1CE),
|
||||||
EX_SHOW_UPGRADE_SYSTEM(0xFE, 0x1CF),
|
EX_CARD_UPDOWN_GAME_START(0xFE, 0x1CF),
|
||||||
EX_UPGRADE_SYSTEM_RESULT(0xFE, 0x1D0),
|
EX_CARD_UPDOWN_PICK_RESULT(0xFE, 0x1D0),
|
||||||
EX_USER_BAN_INFO(0xFE, 0x1D1);
|
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 _id1;
|
||||||
private final int _id2;
|
private final int _id2;
|
||||||
|
@@ -21,6 +21,7 @@ import com.l2jmobius.gameserver.model.L2World;
|
|||||||
import com.l2jmobius.gameserver.model.TradeItem;
|
import com.l2jmobius.gameserver.model.TradeItem;
|
||||||
import com.l2jmobius.gameserver.model.TradeList;
|
import com.l2jmobius.gameserver.model.TradeList;
|
||||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
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.L2GameClient;
|
||||||
import com.l2jmobius.gameserver.network.SystemMessageId;
|
import com.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import com.l2jmobius.gameserver.network.serverpackets.TradeOtherAdd;
|
import com.l2jmobius.gameserver.network.serverpackets.TradeOtherAdd;
|
||||||
@@ -94,12 +95,16 @@ public final class AddTradeItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final TradeItem item = trade.addItem(_objectId, _count);
|
final L2ItemInstance item1 = player.getInventory().getItemByObjectId(_objectId);
|
||||||
if (item != null)
|
final TradeItem item2 = trade.addItem(_objectId, _count);
|
||||||
|
if (item2 != null)
|
||||||
{
|
{
|
||||||
player.sendPacket(new TradeOwnAdd(item));
|
player.sendPacket(new TradeOwnAdd(1, item2));
|
||||||
player.sendPacket(new TradeUpdate(player, item));
|
player.sendPacket(new TradeOwnAdd(2, item2));
|
||||||
partner.sendPacket(new TradeOtherAdd(item));
|
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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -354,10 +354,12 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
client.sendPacket(new ExGetBookMarkInfoPacket(activeChar));
|
client.sendPacket(new ExGetBookMarkInfoPacket(activeChar));
|
||||||
|
|
||||||
// Send Item List
|
// Send Item List
|
||||||
client.sendPacket(new ItemList(activeChar, false));
|
client.sendPacket(new ItemList(1, activeChar, false));
|
||||||
|
client.sendPacket(new ItemList(2, activeChar, false));
|
||||||
|
|
||||||
// Send Quest Item List
|
// 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
|
// Send Adena and Inventory Count
|
||||||
client.sendPacket(new ExAdenaInvenCount(activeChar));
|
client.sendPacket(new ExAdenaInvenCount(activeChar));
|
||||||
|
@@ -44,7 +44,6 @@ public final class RequestGMCommand implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
_targetName = packet.readS();
|
_targetName = packet.readS();
|
||||||
_command = packet.readD();
|
_command = packet.readD();
|
||||||
// _unknown = packet.readD();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,7 +94,8 @@ public final class RequestGMCommand implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
case 5: // player inventory
|
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));
|
client.sendPacket(new GMHennaInfo(player));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -113,7 +113,6 @@ public final class RequestGMCommand implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -55,6 +55,7 @@ public final class RequestPostItemList implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
client.sendPacket(new ExReplyPostItemList(activeChar));
|
client.sendPacket(new ExReplyPostItemList(1, activeChar));
|
||||||
|
client.sendPacket(new ExReplyPostItemList(2, activeChar));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -144,14 +144,16 @@ public final class SetPrivateStoreListBuy implements IClientIncomingPacket
|
|||||||
if (AttackStanceTaskManager.getInstance().hasAttackStanceTask(player) || player.isInDuel())
|
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(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);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player.isInsideZone(ZoneId.NO_STORE))
|
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(SystemMessageId.YOU_CANNOT_OPEN_A_PRIVATE_STORE_HERE);
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
@@ -163,7 +165,8 @@ public final class SetPrivateStoreListBuy implements IClientIncomingPacket
|
|||||||
// Check maximum number of allowed slots for pvt shops
|
// Check maximum number of allowed slots for pvt shops
|
||||||
if (_items.length > player.getPrivateBuyStoreLimit())
|
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);
|
player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_QUANTITY_THAT_CAN_BE_INPUTTED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -190,7 +193,8 @@ public final class SetPrivateStoreListBuy implements IClientIncomingPacket
|
|||||||
// Check for available funds
|
// Check for available funds
|
||||||
if (totalCost > player.getAdena())
|
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);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -97,14 +97,16 @@ public class SetPrivateStoreListSell implements IClientIncomingPacket
|
|||||||
if (AttackStanceTaskManager.getInstance().hasAttackStanceTask(player) || player.isInDuel())
|
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(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);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player.isInsideZone(ZoneId.NO_STORE))
|
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(SystemMessageId.YOU_CANNOT_OPEN_A_PRIVATE_STORE_HERE);
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
@@ -113,7 +115,8 @@ public class SetPrivateStoreListSell implements IClientIncomingPacket
|
|||||||
// Check maximum number of allowed slots for pvt shops
|
// Check maximum number of allowed slots for pvt shops
|
||||||
if (_items.length > player.getPrivateSellStoreLimit())
|
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);
|
player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_QUANTITY_THAT_CAN_BE_INPUTTED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -84,7 +84,9 @@ public abstract class AbstractInventoryUpdate extends AbstractItemPacket
|
|||||||
|
|
||||||
protected final void writeItems(PacketWriter packet)
|
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())
|
for (ItemInfo item : _items.values())
|
||||||
{
|
{
|
||||||
packet.writeH(item.getChange()); // Update type : 01-add, 02-modify, 03-remove
|
packet.writeH(item.getChange()); // Update type : 01-add, 02-modify, 03-remove
|
||||||
|
@@ -43,6 +43,11 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
|
|||||||
return MASKS;
|
return MASKS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void writeItem(PacketWriter packet, TradeItem item, long count)
|
||||||
|
{
|
||||||
|
writeItem(packet, new ItemInfo(item), count);
|
||||||
|
}
|
||||||
|
|
||||||
protected void writeItem(PacketWriter packet, TradeItem item)
|
protected void writeItem(PacketWriter packet, TradeItem item)
|
||||||
{
|
{
|
||||||
writeItem(packet, new ItemInfo(item));
|
writeItem(packet, new ItemInfo(item));
|
||||||
@@ -81,6 +86,8 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
|
|||||||
packet.writeD(item.getMana());
|
packet.writeD(item.getMana());
|
||||||
packet.writeD(item.getTime());
|
packet.writeD(item.getTime());
|
||||||
packet.writeC(0x01); // GOD Item enabled = 1 disabled (red) = 0
|
packet.writeC(0x01); // GOD Item enabled = 1 disabled (red) = 0
|
||||||
|
packet.writeC(0x00); // 140 protocol
|
||||||
|
packet.writeC(0x00); // 140 protocol
|
||||||
if (containsMask(mask, ItemListType.AUGMENT_BONUS))
|
if (containsMask(mask, ItemListType.AUGMENT_BONUS))
|
||||||
{
|
{
|
||||||
writeItemAugment(packet, item);
|
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(0x01); // 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)
|
protected static int calculateMask(ItemInfo item)
|
||||||
{
|
{
|
||||||
int mask = 0;
|
int mask = 0;
|
||||||
|
@@ -96,7 +96,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(size == Config.MAX_CHARACTERS_NUMBER_PER_ACCOUNT ? 0x01 : 0x00); // if 1 can't create new char
|
||||||
packet.writeC(0x01); // play mode, if 1 can create only 2 char in regular lobby
|
packet.writeC(0x01); // play mode, if 1 can create only 2 char in regular lobby
|
||||||
packet.writeD(0x02); // if 1, korean client
|
packet.writeD(0x02); // if 1, korean client
|
||||||
packet.writeC(0x00); // if 1 suggest premium account
|
packet.writeH(0x00); // if 1 suggest premium account
|
||||||
|
|
||||||
long lastAccess = 0L;
|
long lastAccess = 0L;
|
||||||
if (_activeId == -1)
|
if (_activeId == -1)
|
||||||
@@ -184,6 +184,12 @@ public class CharSelectionInfo implements IClientOutgoingPacket
|
|||||||
packet.writeD(charInfoPackage.getHairColor());
|
packet.writeD(charInfoPackage.getHairColor());
|
||||||
packet.writeD(charInfoPackage.getFace());
|
packet.writeD(charInfoPackage.getFace());
|
||||||
|
|
||||||
|
packet.writeD(0x00); // Salvation
|
||||||
|
packet.writeD(0x00); // Salvation
|
||||||
|
packet.writeD(0x00); // Salvation
|
||||||
|
packet.writeD(0x00); // Salvation
|
||||||
|
packet.writeD(0x00); // Salvation
|
||||||
|
|
||||||
packet.writeF(charInfoPackage.getMaxHp()); // hp max
|
packet.writeF(charInfoPackage.getMaxHp()); // hp max
|
||||||
packet.writeF(charInfoPackage.getMaxMp()); // mp max
|
packet.writeF(charInfoPackage.getMaxMp()); // mp max
|
||||||
|
|
||||||
|
@@ -28,11 +28,13 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
*/
|
*/
|
||||||
public class ExQuestItemList extends AbstractItemPacket
|
public class ExQuestItemList extends AbstractItemPacket
|
||||||
{
|
{
|
||||||
|
private final int _sendType;
|
||||||
private final L2PcInstance _activeChar;
|
private final L2PcInstance _activeChar;
|
||||||
private final Collection<L2ItemInstance> _items;
|
private final Collection<L2ItemInstance> _items;
|
||||||
|
|
||||||
public ExQuestItemList(L2PcInstance activeChar)
|
public ExQuestItemList(int sendType, L2PcInstance activeChar)
|
||||||
{
|
{
|
||||||
|
_sendType = sendType;
|
||||||
_activeChar = activeChar;
|
_activeChar = activeChar;
|
||||||
_items = activeChar.getInventory().getItems(L2ItemInstance::isQuestItem);
|
_items = activeChar.getInventory().getItems(L2ItemInstance::isQuestItem);
|
||||||
}
|
}
|
||||||
@@ -41,8 +43,16 @@ public class ExQuestItemList extends AbstractItemPacket
|
|||||||
public boolean write(PacketWriter packet)
|
public boolean write(PacketWriter packet)
|
||||||
{
|
{
|
||||||
OutgoingPackets.EX_QUEST_ITEM_LIST.writeId(packet);
|
OutgoingPackets.EX_QUEST_ITEM_LIST.writeId(packet);
|
||||||
|
packet.writeC(_sendType);
|
||||||
packet.writeH(_items.size());
|
if (_sendType == 2)
|
||||||
|
{
|
||||||
|
packet.writeD(_items.size());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
packet.writeH(0);
|
||||||
|
}
|
||||||
|
packet.writeD(_items.size());
|
||||||
for (L2ItemInstance item : _items)
|
for (L2ItemInstance item : _items)
|
||||||
{
|
{
|
||||||
writeItem(packet, item);
|
writeItem(packet, item);
|
||||||
|
@@ -28,11 +28,13 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
*/
|
*/
|
||||||
public class ExReplyPostItemList extends AbstractItemPacket
|
public class ExReplyPostItemList extends AbstractItemPacket
|
||||||
{
|
{
|
||||||
|
private final int _sendType;
|
||||||
private final L2PcInstance _activeChar;
|
private final L2PcInstance _activeChar;
|
||||||
private final Collection<L2ItemInstance> _itemList;
|
private final Collection<L2ItemInstance> _itemList;
|
||||||
|
|
||||||
public ExReplyPostItemList(L2PcInstance activeChar)
|
public ExReplyPostItemList(int sendType, L2PcInstance activeChar)
|
||||||
{
|
{
|
||||||
|
_sendType = sendType;
|
||||||
_activeChar = activeChar;
|
_activeChar = activeChar;
|
||||||
_itemList = _activeChar.getInventory().getAvailableItems(true, false, false);
|
_itemList = _activeChar.getInventory().getAvailableItems(true, false, false);
|
||||||
}
|
}
|
||||||
@@ -41,11 +43,15 @@ public class ExReplyPostItemList extends AbstractItemPacket
|
|||||||
public boolean write(PacketWriter packet)
|
public boolean write(PacketWriter packet)
|
||||||
{
|
{
|
||||||
OutgoingPackets.EX_REPLY_POST_ITEM_LIST.writeId(packet);
|
OutgoingPackets.EX_REPLY_POST_ITEM_LIST.writeId(packet);
|
||||||
|
packet.writeC(_sendType);
|
||||||
packet.writeD(_itemList.size());
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -27,12 +27,14 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
|
|
||||||
public class GMViewItemList extends AbstractItemPacket
|
public class GMViewItemList extends AbstractItemPacket
|
||||||
{
|
{
|
||||||
|
private final int _sendType;
|
||||||
private final List<L2ItemInstance> _items = new ArrayList<>();
|
private final List<L2ItemInstance> _items = new ArrayList<>();
|
||||||
private final int _limit;
|
private final int _limit;
|
||||||
private final String _playerName;
|
private final String _playerName;
|
||||||
|
|
||||||
public GMViewItemList(L2PcInstance cha)
|
public GMViewItemList(int sendType, L2PcInstance cha)
|
||||||
{
|
{
|
||||||
|
_sendType = sendType;
|
||||||
_playerName = cha.getName();
|
_playerName = cha.getName();
|
||||||
_limit = cha.getInventoryLimit();
|
_limit = cha.getInventoryLimit();
|
||||||
for (L2ItemInstance item : cha.getInventory().getItems())
|
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();
|
_playerName = cha.getName();
|
||||||
_limit = cha.getInventoryLimit();
|
_limit = cha.getInventoryLimit();
|
||||||
for (L2ItemInstance item : cha.getInventory().getItems())
|
for (L2ItemInstance item : cha.getInventory().getItems())
|
||||||
@@ -55,11 +58,17 @@ public class GMViewItemList extends AbstractItemPacket
|
|||||||
public boolean write(PacketWriter packet)
|
public boolean write(PacketWriter packet)
|
||||||
{
|
{
|
||||||
OutgoingPackets.GM_VIEW_ITEM_LIST.writeId(packet);
|
OutgoingPackets.GM_VIEW_ITEM_LIST.writeId(packet);
|
||||||
|
packet.writeC(_sendType);
|
||||||
packet.writeS(_playerName);
|
if (_sendType == 2)
|
||||||
packet.writeD(_limit); // inventory limit
|
{
|
||||||
packet.writeH(0x01); // show window ??
|
packet.writeD(_items.size());
|
||||||
packet.writeH(_items.size());
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
packet.writeS(_playerName);
|
||||||
|
packet.writeD(_limit); // inventory limit
|
||||||
|
}
|
||||||
|
packet.writeD(_items.size());
|
||||||
for (L2ItemInstance item : _items)
|
for (L2ItemInstance item : _items)
|
||||||
{
|
{
|
||||||
writeItem(packet, item);
|
writeItem(packet, item);
|
||||||
|
@@ -63,7 +63,6 @@ public class HennaEquipList implements IClientOutgoingPacket
|
|||||||
packet.writeQ(henna.getWearCount()); // amount of dyes required
|
packet.writeQ(henna.getWearCount()); // amount of dyes required
|
||||||
packet.writeQ(henna.getWearFee()); // amount of Adena required
|
packet.writeQ(henna.getWearFee()); // amount of Adena required
|
||||||
packet.writeD(henna.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); // meet the requirement or not
|
packet.writeD(henna.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); // meet the requirement or not
|
||||||
packet.writeD(0x00); // TODO: Find me!
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@@ -51,7 +51,6 @@ public class HennaRemoveList implements IClientOutgoingPacket
|
|||||||
packet.writeQ(henna.getCancelCount());
|
packet.writeQ(henna.getCancelCount());
|
||||||
packet.writeQ(henna.getCancelFee());
|
packet.writeQ(henna.getCancelFee());
|
||||||
packet.writeD(0x00);
|
packet.writeD(0x00);
|
||||||
packet.writeD(0x00);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@@ -26,12 +26,14 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
|
|
||||||
public final class ItemList extends AbstractItemPacket
|
public final class ItemList extends AbstractItemPacket
|
||||||
{
|
{
|
||||||
|
private final int _sendType;
|
||||||
private final L2PcInstance _activeChar;
|
private final L2PcInstance _activeChar;
|
||||||
private final List<L2ItemInstance> _items;
|
private final List<L2ItemInstance> _items;
|
||||||
private final boolean _showWindow;
|
private final boolean _showWindow;
|
||||||
|
|
||||||
public ItemList(L2PcInstance activeChar, boolean showWindow)
|
public ItemList(int sendType, L2PcInstance activeChar, boolean showWindow)
|
||||||
{
|
{
|
||||||
|
_sendType = sendType;
|
||||||
_activeChar = activeChar;
|
_activeChar = activeChar;
|
||||||
_showWindow = showWindow;
|
_showWindow = showWindow;
|
||||||
_items = activeChar.getInventory().getItems(item -> !item.isQuestItem()).stream().collect(Collectors.toList());
|
_items = activeChar.getInventory().getItems(item -> !item.isQuestItem()).stream().collect(Collectors.toList());
|
||||||
@@ -41,12 +43,21 @@ public final class ItemList extends AbstractItemPacket
|
|||||||
public boolean write(PacketWriter packet)
|
public boolean write(PacketWriter packet)
|
||||||
{
|
{
|
||||||
OutgoingPackets.ITEM_LIST.writeId(packet);
|
OutgoingPackets.ITEM_LIST.writeId(packet);
|
||||||
|
if (_sendType == 2)
|
||||||
packet.writeH(_showWindow ? 0x01 : 0x00);
|
|
||||||
packet.writeH(_items.size());
|
|
||||||
for (L2ItemInstance item : _items)
|
|
||||||
{
|
{
|
||||||
writeItem(packet, item);
|
packet.writeC(_sendType);
|
||||||
|
packet.writeD(_items.size());
|
||||||
|
packet.writeD(_items.size());
|
||||||
|
for (L2ItemInstance item : _items)
|
||||||
|
{
|
||||||
|
writeItem(packet, item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
packet.writeC(_showWindow ? 0x01 : 0x00);
|
||||||
|
packet.writeD(0x00);
|
||||||
|
packet.writeD(_items.size());
|
||||||
}
|
}
|
||||||
writeInventoryBlock(packet, _activeChar.getInventory());
|
writeInventoryBlock(packet, _activeChar.getInventory());
|
||||||
return true;
|
return true;
|
||||||
|
@@ -26,13 +26,15 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
|
|
||||||
public class PrivateStoreManageListBuy extends AbstractItemPacket
|
public class PrivateStoreManageListBuy extends AbstractItemPacket
|
||||||
{
|
{
|
||||||
|
private final int _sendType;
|
||||||
private final int _objId;
|
private final int _objId;
|
||||||
private final long _playerAdena;
|
private final long _playerAdena;
|
||||||
private final Collection<L2ItemInstance> _itemList;
|
private final Collection<L2ItemInstance> _itemList;
|
||||||
private final TradeItem[] _buyList;
|
private final TradeItem[] _buyList;
|
||||||
|
|
||||||
public PrivateStoreManageListBuy(L2PcInstance player)
|
public PrivateStoreManageListBuy(int sendType, L2PcInstance player)
|
||||||
{
|
{
|
||||||
|
_sendType = sendType;
|
||||||
_objId = player.getObjectId();
|
_objId = player.getObjectId();
|
||||||
_playerAdena = player.getAdena();
|
_playerAdena = player.getAdena();
|
||||||
_itemList = player.getInventory().getUniqueItems(false, true);
|
_itemList = player.getInventory().getUniqueItems(false, true);
|
||||||
@@ -43,24 +45,35 @@ public class PrivateStoreManageListBuy extends AbstractItemPacket
|
|||||||
public boolean write(PacketWriter packet)
|
public boolean write(PacketWriter packet)
|
||||||
{
|
{
|
||||||
OutgoingPackets.PRIVATE_STORE_BUY_MANAGE_LIST.writeId(packet);
|
OutgoingPackets.PRIVATE_STORE_BUY_MANAGE_LIST.writeId(packet);
|
||||||
|
packet.writeC(_sendType);
|
||||||
packet.writeD(_objId);
|
if (_sendType == 2)
|
||||||
packet.writeQ(_playerAdena);
|
|
||||||
|
|
||||||
packet.writeD(_itemList.size()); // inventory items for potential buy
|
|
||||||
for (L2ItemInstance item : _itemList)
|
|
||||||
{
|
{
|
||||||
writeItem(packet, item);
|
packet.writeD(_itemList.size());
|
||||||
packet.writeQ(item.getItem().getReferencePrice() * 2);
|
packet.writeD(_itemList.size());
|
||||||
|
for (L2ItemInstance item : _itemList)
|
||||||
|
{
|
||||||
|
writeItem(packet, item);
|
||||||
|
packet.writeQ(item.getItem().getReferencePrice() * 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
packet.writeD(_buyList.length); // count for all items already added for buy
|
|
||||||
for (TradeItem item : _buyList)
|
|
||||||
{
|
{
|
||||||
writeItem(packet, item);
|
packet.writeD(_objId);
|
||||||
packet.writeQ(item.getPrice());
|
packet.writeQ(_playerAdena);
|
||||||
packet.writeQ(item.getItem().getReferencePrice() * 2);
|
packet.writeD(0x00);
|
||||||
packet.writeQ(item.getCount());
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -25,14 +25,16 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
|
|
||||||
public class PrivateStoreManageListSell extends AbstractItemPacket
|
public class PrivateStoreManageListSell extends AbstractItemPacket
|
||||||
{
|
{
|
||||||
|
private final int _sendType;
|
||||||
private final int _objId;
|
private final int _objId;
|
||||||
private final long _playerAdena;
|
private final long _playerAdena;
|
||||||
private final boolean _packageSale;
|
private final boolean _packageSale;
|
||||||
private final Collection<TradeItem> _itemList;
|
private final Collection<TradeItem> _itemList;
|
||||||
private final TradeItem[] _sellList;
|
private final TradeItem[] _sellList;
|
||||||
|
|
||||||
public PrivateStoreManageListSell(L2PcInstance player, boolean isPackageSale)
|
public PrivateStoreManageListSell(int sendType, L2PcInstance player, boolean isPackageSale)
|
||||||
{
|
{
|
||||||
|
_sendType = sendType;
|
||||||
_objId = player.getObjectId();
|
_objId = player.getObjectId();
|
||||||
_playerAdena = player.getAdena();
|
_playerAdena = player.getAdena();
|
||||||
player.getSellList().updateItems();
|
player.getSellList().updateItems();
|
||||||
@@ -45,24 +47,35 @@ public class PrivateStoreManageListSell extends AbstractItemPacket
|
|||||||
public boolean write(PacketWriter packet)
|
public boolean write(PacketWriter packet)
|
||||||
{
|
{
|
||||||
OutgoingPackets.PRIVATE_STORE_MANAGE_LIST.writeId(packet);
|
OutgoingPackets.PRIVATE_STORE_MANAGE_LIST.writeId(packet);
|
||||||
|
packet.writeC(_sendType);
|
||||||
packet.writeD(_objId);
|
if (_sendType == 2)
|
||||||
packet.writeD(_packageSale ? 1 : 0); // Package sell
|
|
||||||
packet.writeQ(_playerAdena);
|
|
||||||
|
|
||||||
packet.writeD(_itemList.size()); // for potential sells
|
|
||||||
for (TradeItem item : _itemList)
|
|
||||||
{
|
{
|
||||||
writeItem(packet, item);
|
packet.writeD(_itemList.size());
|
||||||
packet.writeQ(item.getItem().getReferencePrice() * 2);
|
packet.writeD(_itemList.size());
|
||||||
|
for (TradeItem item : _itemList)
|
||||||
|
{
|
||||||
|
writeItem(packet, item);
|
||||||
|
packet.writeQ(item.getItem().getReferencePrice() * 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
packet.writeD(_sellList.length); // count for any items already added for sell
|
|
||||||
for (TradeItem item : _sellList)
|
|
||||||
{
|
{
|
||||||
writeItem(packet, item);
|
packet.writeD(_objId);
|
||||||
packet.writeQ(item.getPrice());
|
packet.writeD(_packageSale ? 1 : 0);
|
||||||
packet.writeQ(item.getItem().getReferencePrice() * 2);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -25,10 +25,12 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
*/
|
*/
|
||||||
public final class TradeOtherAdd extends AbstractItemPacket
|
public final class TradeOtherAdd extends AbstractItemPacket
|
||||||
{
|
{
|
||||||
|
private final int _sendType;
|
||||||
private final TradeItem _item;
|
private final TradeItem _item;
|
||||||
|
|
||||||
public TradeOtherAdd(TradeItem item)
|
public TradeOtherAdd(int sendType, TradeItem item)
|
||||||
{
|
{
|
||||||
|
_sendType = sendType;
|
||||||
_item = item;
|
_item = item;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,7 +38,12 @@ public final class TradeOtherAdd extends AbstractItemPacket
|
|||||||
public boolean write(PacketWriter packet)
|
public boolean write(PacketWriter packet)
|
||||||
{
|
{
|
||||||
OutgoingPackets.TRADE_OTHER_ADD.writeId(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);
|
writeItem(packet, _item);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -25,10 +25,12 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
*/
|
*/
|
||||||
public final class TradeOwnAdd extends AbstractItemPacket
|
public final class TradeOwnAdd extends AbstractItemPacket
|
||||||
{
|
{
|
||||||
|
private final int _sendType;
|
||||||
private final TradeItem _item;
|
private final TradeItem _item;
|
||||||
|
|
||||||
public TradeOwnAdd(TradeItem item)
|
public TradeOwnAdd(int sendType, TradeItem item)
|
||||||
{
|
{
|
||||||
|
_sendType = sendType;
|
||||||
_item = item;
|
_item = item;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,7 +38,12 @@ public final class TradeOwnAdd extends AbstractItemPacket
|
|||||||
public boolean write(PacketWriter packet)
|
public boolean write(PacketWriter packet)
|
||||||
{
|
{
|
||||||
OutgoingPackets.TRADE_OWN_ADD.writeId(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);
|
writeItem(packet, _item);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -28,13 +28,15 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
|
|
||||||
public final class TradeStart extends AbstractItemPacket
|
public final class TradeStart extends AbstractItemPacket
|
||||||
{
|
{
|
||||||
|
private final int _sendType;
|
||||||
private final L2PcInstance _activeChar;
|
private final L2PcInstance _activeChar;
|
||||||
private final L2PcInstance _partner;
|
private final L2PcInstance _partner;
|
||||||
private final Collection<L2ItemInstance> _itemList;
|
private final Collection<L2ItemInstance> _itemList;
|
||||||
private int _mask = 0;
|
private int _mask = 0;
|
||||||
|
|
||||||
public TradeStart(L2PcInstance player)
|
public TradeStart(int sendType, L2PcInstance player)
|
||||||
{
|
{
|
||||||
|
_sendType = sendType;
|
||||||
_activeChar = player;
|
_activeChar = player;
|
||||||
_partner = player.getActiveTradeList().getPartner();
|
_partner = player.getActiveTradeList().getPartner();
|
||||||
_itemList = _activeChar.getInventory().getAvailableItems(true, (_activeChar.canOverrideCond(PcCondOverride.ITEM_CONDITIONS) && Config.GM_TRADE_RESTRICTED_ITEMS), false);
|
_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);
|
OutgoingPackets.TRADE_START.writeId(packet);
|
||||||
packet.writeD(_partner.getObjectId());
|
packet.writeC(_sendType);
|
||||||
packet.writeC(_mask); // some kind of mask
|
if (_sendType == 2)
|
||||||
if ((_mask & 0x10) == 0)
|
|
||||||
{
|
{
|
||||||
packet.writeC(_partner.getLevel());
|
packet.writeD(_itemList.size());
|
||||||
|
packet.writeD(_itemList.size());
|
||||||
|
for (L2ItemInstance item : _itemList)
|
||||||
|
{
|
||||||
|
writeItem(packet, item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
packet.writeH(_itemList.size());
|
else
|
||||||
for (L2ItemInstance item : _itemList)
|
|
||||||
{
|
{
|
||||||
writeItem(packet, item);
|
packet.writeD(_partner.getObjectId());
|
||||||
|
packet.writeC(_mask); // some kind of mask
|
||||||
|
if ((_mask & 0x10) == 0)
|
||||||
|
{
|
||||||
|
packet.writeC(_partner.getLevel());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -26,11 +26,15 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
*/
|
*/
|
||||||
public class TradeUpdate extends AbstractItemPacket
|
public class TradeUpdate extends AbstractItemPacket
|
||||||
{
|
{
|
||||||
|
private final int _sendType;
|
||||||
private final TradeItem _item;
|
private final TradeItem _item;
|
||||||
private final long _newCount;
|
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;
|
_item = item;
|
||||||
_newCount = player.getInventory().getItemByObjectId(item.getObjectId()).getCount() - item.getCount();
|
_newCount = player.getInventory().getItemByObjectId(item.getObjectId()).getCount() - item.getCount();
|
||||||
}
|
}
|
||||||
@@ -39,10 +43,14 @@ public class TradeUpdate extends AbstractItemPacket
|
|||||||
public boolean write(PacketWriter packet)
|
public boolean write(PacketWriter packet)
|
||||||
{
|
{
|
||||||
OutgoingPackets.TRADE_UPDATE.writeId(packet);
|
OutgoingPackets.TRADE_UPDATE.writeId(packet);
|
||||||
|
packet.writeC(_sendType);
|
||||||
packet.writeH(1);
|
packet.writeD(0x01);
|
||||||
packet.writeH((_newCount > 0) && _item.getItem().isStackable() ? 3 : 2);
|
if (_sendType == 2)
|
||||||
writeItem(packet, _item);
|
{
|
||||||
|
packet.writeD(0x01);
|
||||||
|
packet.writeH((_newCount > 0) && _item.getItem().isStackable() ? 3 : 2);
|
||||||
|
writeItem(packet, _item, _count);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -132,7 +132,7 @@ public class UserInfo extends AbstractMaskPacket<UserInfoType>
|
|||||||
|
|
||||||
packet.writeD(_activeChar.getObjectId());
|
packet.writeD(_activeChar.getObjectId());
|
||||||
packet.writeD(_initSize);
|
packet.writeD(_initSize);
|
||||||
packet.writeH(23);
|
packet.writeH(24);
|
||||||
packet.writeB(_masks);
|
packet.writeB(_masks);
|
||||||
|
|
||||||
if (containsMask(UserInfoType.RELATION))
|
if (containsMask(UserInfoType.RELATION))
|
||||||
@@ -322,14 +322,13 @@ public class UserInfo extends AbstractMaskPacket<UserInfoType>
|
|||||||
|
|
||||||
if (containsMask(UserInfoType.SLOTS))
|
if (containsMask(UserInfoType.SLOTS))
|
||||||
{
|
{
|
||||||
packet.writeH(9);
|
packet.writeH(11); // 140
|
||||||
packet.writeC(_activeChar.getInventory().getTalismanSlots()); // Confirmed
|
packet.writeC(_activeChar.getInventory().getTalismanSlots());
|
||||||
packet.writeC(_activeChar.getInventory().getBroochJewelSlots()); // Confirmed
|
packet.writeC(_activeChar.getInventory().getBroochJewelSlots());
|
||||||
packet.writeC(_activeChar.getTeam().getId()); // Confirmed
|
packet.writeC(_activeChar.getTeam().getId());
|
||||||
packet.writeC(0x00); // (1 = Red, 2 = White, 3 = White Pink) dotted ring on the floor
|
|
||||||
packet.writeC(0x00);
|
|
||||||
packet.writeC(0x00);
|
packet.writeC(0x00);
|
||||||
packet.writeC(0x00);
|
packet.writeC(0x00);
|
||||||
|
packet.writeD(0x00);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (containsMask(UserInfoType.MOVEMENTS))
|
if (containsMask(UserInfoType.MOVEMENTS))
|
||||||
|
@@ -30,8 +30,8 @@ public final class WareHouseDepositList extends AbstractItemPacket
|
|||||||
public static final int CLAN = 2;
|
public static final int CLAN = 2;
|
||||||
public static final int CASTLE = 3;
|
public static final int CASTLE = 3;
|
||||||
public static final int FREIGHT = 1;
|
public static final int FREIGHT = 1;
|
||||||
|
private final int _sendType;
|
||||||
private final long _playerAdena;
|
private final long _playerAdena;
|
||||||
private final int _warehouseSize;
|
|
||||||
private final List<L2ItemInstance> _items = new ArrayList<>();
|
private final List<L2ItemInstance> _items = new ArrayList<>();
|
||||||
private final List<Integer> _itemsStackable = new ArrayList<>();
|
private final List<Integer> _itemsStackable = new ArrayList<>();
|
||||||
/**
|
/**
|
||||||
@@ -44,11 +44,11 @@ public final class WareHouseDepositList extends AbstractItemPacket
|
|||||||
*/
|
*/
|
||||||
private final int _whType;
|
private final int _whType;
|
||||||
|
|
||||||
public WareHouseDepositList(L2PcInstance player, int type)
|
public WareHouseDepositList(int sendType, L2PcInstance player, int type)
|
||||||
{
|
{
|
||||||
|
_sendType = sendType;
|
||||||
_whType = type;
|
_whType = type;
|
||||||
_playerAdena = player.getAdena();
|
_playerAdena = player.getAdena();
|
||||||
_warehouseSize = player.getActiveWarehouse() != null ? player.getActiveWarehouse().getSize() : 0;
|
|
||||||
|
|
||||||
final boolean isPrivate = _whType == PRIVATE;
|
final boolean isPrivate = _whType == PRIVATE;
|
||||||
for (L2ItemInstance temp : player.getInventory().getAvailableItems(true, isPrivate, false))
|
for (L2ItemInstance temp : player.getInventory().getAvailableItems(true, isPrivate, false))
|
||||||
@@ -68,23 +68,23 @@ public final class WareHouseDepositList extends AbstractItemPacket
|
|||||||
public boolean write(PacketWriter packet)
|
public boolean write(PacketWriter packet)
|
||||||
{
|
{
|
||||||
OutgoingPackets.WAREHOUSE_DEPOSIT_LIST.writeId(packet);
|
OutgoingPackets.WAREHOUSE_DEPOSIT_LIST.writeId(packet);
|
||||||
|
packet.writeC(_sendType);
|
||||||
packet.writeH(_whType);
|
if (_sendType == 2)
|
||||||
packet.writeQ(_playerAdena);
|
|
||||||
packet.writeD(_warehouseSize);
|
|
||||||
packet.writeH(_itemsStackable.size());
|
|
||||||
|
|
||||||
for (int itemId : _itemsStackable)
|
|
||||||
{
|
{
|
||||||
packet.writeD(itemId);
|
packet.writeD(_whType);
|
||||||
|
packet.writeD(_items.size());
|
||||||
|
for (L2ItemInstance item : _items)
|
||||||
|
{
|
||||||
|
writeItem(packet, item);
|
||||||
|
packet.writeD(item.getObjectId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
packet.writeH(_items.size());
|
|
||||||
|
|
||||||
for (L2ItemInstance item : _items)
|
|
||||||
{
|
{
|
||||||
writeItem(packet, item);
|
packet.writeH(_whType);
|
||||||
packet.writeD(item.getObjectId());
|
packet.writeQ(_playerAdena);
|
||||||
|
packet.writeD(_itemsStackable.size());
|
||||||
|
packet.writeD(_items.size());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -31,6 +31,7 @@ public final class WareHouseWithdrawalList extends AbstractItemPacket
|
|||||||
public static final int CLAN = 2;
|
public static final int CLAN = 2;
|
||||||
public static final int CASTLE = 3; // not sure
|
public static final int CASTLE = 3; // not sure
|
||||||
public static final int FREIGHT = 1;
|
public static final int FREIGHT = 1;
|
||||||
|
private final int _sendType;
|
||||||
private L2PcInstance _activeChar;
|
private L2PcInstance _activeChar;
|
||||||
private long _playerAdena;
|
private long _playerAdena;
|
||||||
private final int _invSize;
|
private final int _invSize;
|
||||||
@@ -46,8 +47,9 @@ public final class WareHouseWithdrawalList extends AbstractItemPacket
|
|||||||
*/
|
*/
|
||||||
private int _whType;
|
private int _whType;
|
||||||
|
|
||||||
public WareHouseWithdrawalList(L2PcInstance player, int type)
|
public WareHouseWithdrawalList(int sendType, L2PcInstance player, int type)
|
||||||
{
|
{
|
||||||
|
_sendType = sendType;
|
||||||
_activeChar = player;
|
_activeChar = player;
|
||||||
_whType = type;
|
_whType = type;
|
||||||
|
|
||||||
@@ -74,22 +76,26 @@ public final class WareHouseWithdrawalList extends AbstractItemPacket
|
|||||||
public boolean write(PacketWriter packet)
|
public boolean write(PacketWriter packet)
|
||||||
{
|
{
|
||||||
OutgoingPackets.WAREHOUSE_WITHDRAW_LIST.writeId(packet);
|
OutgoingPackets.WAREHOUSE_WITHDRAW_LIST.writeId(packet);
|
||||||
|
packet.writeC(_sendType);
|
||||||
packet.writeH(_whType);
|
if (_sendType == 2)
|
||||||
packet.writeQ(_playerAdena);
|
|
||||||
packet.writeH(_items.size());
|
|
||||||
packet.writeH(_itemsStackable.size());
|
|
||||||
for (int itemId : _itemsStackable)
|
|
||||||
{
|
{
|
||||||
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);
|
else
|
||||||
for (L2ItemInstance item : _items)
|
|
||||||
{
|
{
|
||||||
writeItem(packet, item);
|
packet.writeH(_whType);
|
||||||
packet.writeD(item.getObjectId());
|
packet.writeQ(_playerAdena);
|
||||||
packet.writeD(0);
|
packet.writeD(_invSize);
|
||||||
packet.writeD(0);
|
packet.writeD(_items.size());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -1,18 +1,18 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
<listEntry value="/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/GameServer.java"/>
|
<listEntry value="/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/GameServer.java"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
<listEntry value="1"/>
|
<listEntry value="1"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/mchange-commons-java-0.2.12.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/mysql-connector-java-5.1.43.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/netty-all-4.1.14.Final.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/mchange-commons-java-0.2.12.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/mysql-connector-java-5.1.43.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/netty-all-4.1.14.Final.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.l2jmobius.gameserver.GameServer"/>
|
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.l2jmobius.gameserver.GameServer"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_Classic_2.1_Zaken"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_Classic_2.2_Antharas"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_Classic_2.1_Zaken}/dist/game/"/>
|
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_Classic_2.2_Antharas}/dist/game/"/>
|
||||||
</launchConfiguration>
|
</launchConfiguration>
|
||||||
|
@@ -1,19 +1,19 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
<listEntry value="/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/loginserver/LoginServer.java"/>
|
<listEntry value="/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/loginserver/LoginServer.java"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
<listEntry value="1"/>
|
<listEntry value="1"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
|
||||||
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/mchange-commons-java-0.2.12.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/mysql-connector-java-5.1.43.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/netty-all-4.1.14.Final.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/c3p0-0.9.5.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/ecj-4.4.2.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/mchange-commons-java-0.2.12.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/mysql-connector-java-5.1.43.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;archive detectRoot=&quot;true&quot; path=&quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/netty-all-4.1.14.Final.jar&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.archive"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/>
|
||||||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
|
<booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
|
||||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.l2jmobius.loginserver.LoginServer"/>
|
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.l2jmobius.loginserver.LoginServer"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_Classic_2.1_Zaken"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_Classic_2.2_Antharas"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_Classic_2.1_Zaken}/dist/login/"/>
|
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_Classic_2.2_Antharas}/dist/login/"/>
|
||||||
</launchConfiguration>
|
</launchConfiguration>
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
L2J-Mobius Classic 2.0
|
L2J-Mobius Classic 2.0
|
||||||
|
|
||||||
Client: https://drive.google.com/uc?id=1i8udOtNak2ANythwdPYY3sVdawOxuyBo&export=download
|
Client:
|
||||||
Geodata: http://www.mediafire.com/file/2rzuybowd9zfax4/mobius_geodata_zaken_l2d.zip
|
Geodata:
|
||||||
|
|
||||||
Saviors: https://eu.4game.com/lineage2classic/play/saviors/
|
Saviors: https://eu.4game.com/lineage2classic/play/saviors/
|
||||||
-Classic packet compatibility
|
-Classic packet compatibility
|
||||||
@@ -62,6 +62,9 @@ Zaken: https://eu.4game.com/lineage2classic/play/zaken/
|
|||||||
-Zaken boss AI
|
-Zaken boss AI
|
||||||
-TODO: Newbie quest changes
|
-TODO: Newbie quest changes
|
||||||
|
|
||||||
|
Antharas: https://eu.4game.com/lineage2classic/play/antharas/
|
||||||
|
|
||||||
|
|
||||||
Customs:
|
Customs:
|
||||||
-Newbie Helper NPC location info
|
-Newbie Helper NPC location info
|
||||||
-Newbie Helper buff support until 40 level
|
-Newbie Helper buff support until 40 level
|
||||||
|
Reference in New Issue
Block a user