Initial Antharas changes.

This commit is contained in:
MobiusDev
2018-05-11 18:05:51 +00:00
parent 79386d731b
commit 9279da0e08
51 changed files with 2506 additions and 265 deletions

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>L2J_Mobius_Classic_2.1_Zaken</name>
<name>L2J_Mobius_Classic_2.2_Antharas</name>
<comment></comment>
<projects>
</projects>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!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>
This file is part of the L2J Mobius project.
@@ -133,15 +133,15 @@
</target>
<target name="adding-core" depends="jar" description="Adding the compiled jars to the Zip file.">
<zip destfile="${build}/L2J_Mobius_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 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 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 name="cleanup" depends="adding-readme" description="Cleaning the build folder.">

View File

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

View File

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

View 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>

View File

@@ -37,5 +37,6 @@
<map X="25" Y="17" />
<map X="25" Y="18" />
<map X="25" Y="19" />
<map X="20" Y="17" />
</region>
</list>

View File

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

View File

@@ -807,7 +807,7 @@ public class AdminEditChar implements IAdminCommandHandler
if (target instanceof L2PetInstance)
{
activeChar.sendPacket(new GMViewItemList((L2PetInstance) target));
activeChar.sendPacket(new GMViewItemList(1, (L2PetInstance) target));
}
else
{

View File

@@ -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;
}
else if (command.toLowerCase().startsWith(COMMANDS[1])) // DepositC
@@ -104,7 +105,8 @@ public class ClanWarehouse implements IBypassHandler
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
activeChar.setActiveWarehouse(activeChar.getClan().getWarehouse());
activeChar.setInventoryBlockingStatus(true);
activeChar.sendPacket(new WareHouseDepositList(activeChar, WareHouseDepositList.CLAN));
activeChar.sendPacket(new WareHouseDepositList(1, activeChar, WareHouseDepositList.CLAN));
activeChar.sendPacket(new WareHouseDepositList(2, activeChar, WareHouseDepositList.CLAN));
return true;
}

View File

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

View File

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

View File

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

View File

@@ -8,7 +8,7 @@
</parameters>
<race>FAIRY</race>
<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">
<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" />

View File

@@ -399,121 +399,133 @@
</spoil>
</drop_lists>
</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>
<param name="MoveAroundSocial" value="80" />
<param name="MoveAroundSocial1" value="80" />
<param name="MoveAroundSocial2" value="80" />
<skill name="HealMagic_a" id="4209" level="6" />
<skill name="SelfRangeBuff_a" id="4213" level="6" />
</parameters>
<race>DEMONIC</race>
<sex>MALE</sex>
<sex>FEMALE</sex>
<acquire exp="38968" sp="1169" />
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
<vitals hp="2313" hpRegen="2" mp="1188" mpRegen="0.9" />
<attack physical="9.322038" magical="5.78704" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="40.40403636" magical="32.52252" />
<vitals hp="18278" hpRegen="115.186274265113" mp="1188" mpRegen="2.7" />
<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="429.54225" magical="419.1" evasion="-18" />
<speed>
<walk ground="80" />
<run ground="174" />
<run ground="170" />
</speed>
<hit_time>370</hit_time>
<hit_time>560</hit_time>
<abnormalResist physical="10" magical="10" />
</stats>
<status undying="false" canBeSown="true" />
<status undying="false" />
<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="4409" level="1" /> <!-- MP Increase (1x) -->
<skill id="4410" level="12" /> <!-- Slightly Strong P. Atk. -->
<skill id="4411" level="12" /> <!-- Slightly Strong M. Atk. -->
<skill id="4412" level="10" /> <!-- Slightly Weak P. Def. -->
<skill id="4413" level="10" /> <!-- Slightly Weak M. Def. -->
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
<skill id="4412" level="11" /> <!-- Average P. Def. -->
<skill id="4413" level="11" /> <!-- Average M. Def. -->
<skill id="4414" level="2" /> <!-- Standard Type -->
<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>
<ex_crt_effect>false</ex_crt_effect>
<ai aggroRange="500" clanHelpRange="300" isAggressive="false" />
<ex_crt_effect>true</ex_crt_effect>
<ai type="BALANCED" clanHelpRange="300" />
<collision>
<radius normal="11" />
<height normal="28.5" />
<radius normal="9" />
<height normal="23" />
</collision>
<drop_lists>
<drop>
<item id="503" min="1" max="1" chance="0.075" /> <!-- Sealed Zubei's Helmet -->
<item id="2415" min="1" max="1" chance="0.075" /> <!-- Sealed Avadon Circlet -->
<item id="57" min="2289" max="5346" chance="70" /> <!-- Adena -->
<item id="4180" min="1" max="1" chance="8.875" /> <!-- Recipe: Silver Arrow -->
<item id="4072" min="1" max="3" chance="7.933" /> <!-- Sealed Avadon Circlet Pattern -->
<item id="4102" min="1" max="3" chance="5.309" /> <!-- Sealed Zubei's Helmet Design -->
<item id="4952" min="1" max="1" chance="1.019" /> <!-- Recipe: Sealed Avadon Circlet (60%) -->
<item id="4962" min="1" max="1" chance="0.963" /> <!-- Recipe: Sealed Zubei's Helmet (60%) -->
<item id="4990" min="1" max="1" chance="0.75" /> <!-- Recipe: Sealed Blue Wolf Helmet (60%) -->
<item id="4991" min="1" max="1" chance="0.75" /> <!-- Recipe: Sealed Doom Helmet (60%) -->
<item id="503" min="1" max="1" chance="0.1" />
<item id="2415" min="1" max="1" chance="0.1" />
<item id="57" min="2289" max="5346" chance="70" />
<item id="4180" min="1" max="1" chance="9.767" />
<item id="4072" min="1" max="3" chance="8.722" />
<item id="4102" min="1" max="3" chance="5.835" />
<item id="4952" min="1" max="1" chance="1.122" />
<item id="4962" min="1" max="1" chance="1.066" />
<item id="4990" min="1" max="1" chance="1" />
<item id="4991" min="1" max="1" chance="1" />
</drop>
<spoil>
<item id="4952" min="1" max="1" chance="10.9" /> <!-- Recipe: Sealed Avadon Circlet (60%) -->
<item id="4962" min="1" max="1" chance="10.2" /> <!-- Recipe: Sealed Zubei's Helmet (60%) -->
<item id="4991" min="1" max="1" chance="6.755" /> <!-- Recipe: Sealed Doom Helmet (60%) -->
<item id="4990" min="1" max="1" chance="6.731" /> <!-- Recipe: Sealed Blue Wolf Helmet (60%) -->
<item id="4952" min="1" max="1" chance="11.95" />
<item id="4962" min="1" max="1" chance="11.25" />
<item id="4991" min="1" max="1" chance="7.429" />
<item id="4990" min="1" max="1" chance="7.405" />
</spoil>
</drop_lists>
</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>
<param name="MoveAroundSocial" value="80" />
<param name="MoveAroundSocial1" value="80" />
<param name="MoveAroundSocial2" value="80" />
<skill name="HealMagic_a" id="4209" level="6" />
<skill name="SelfRangeBuff_a" id="4213" level="6" />
</parameters>
<race>UNDEAD</race>
<sex>MALE</sex>
<race>DEMONIC</race>
<sex>FEMALE</sex>
<acquire exp="45946" sp="1378" />
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">
<vitals hp="2578" hpRegen="2" mp="1345" mpRegen="0.9" />
<attack physical="9.322038" magical="5.78704" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="40.40403636" magical="32.52252" />
<vitals hp="20372" hpRegen="115.186274265113" mp="1345" mpRegen="2.7" />
<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="429.54225" magical="419.1" evasion="-18" />
<speed>
<walk ground="45" />
<run ground="174" />
<walk ground="80" />
<run ground="170" />
</speed>
<hit_time>370</hit_time>
<hit_time>560</hit_time>
<abnormalResist physical="10" magical="10" />
</stats>
<status undying="false" canBeSown="true" />
<status undying="false" />
<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="4409" level="1" /> <!-- MP Increase (1x) -->
<skill id="4410" level="12" /> <!-- Slightly Strong P. Atk. -->
<skill id="4411" level="12" /> <!-- Slightly Strong M. Atk. -->
<skill id="4412" level="10" /> <!-- Slightly Weak P. Def. -->
<skill id="4413" level="10" /> <!-- Slightly Weak M. Def. -->
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
<skill id="4412" level="11" /> <!-- Average P. Def. -->
<skill id="4413" level="11" /> <!-- Average M. Def. -->
<skill id="4414" level="2" /> <!-- Standard Type -->
<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>
<ex_crt_effect>false</ex_crt_effect>
<ai aggroRange="500" clanHelpRange="300" isAggressive="false" />
<ex_crt_effect>true</ex_crt_effect>
<ai type="BALANCED" clanHelpRange="300" />
<collision>
<radius normal="15" />
<height normal="45" />
<radius normal="9" />
<height normal="23" />
</collision>
<drop_lists>
<drop>
<item id="2416" min="1" max="1" chance="0.03" /> <!-- Sealed Blue Wolf Helmet -->
<item id="2417" min="1" max="1" chance="0.03" /> <!-- Sealed Doom Helmet -->
<item id="287" min="1" max="1" chance="0.003" /> <!-- Bow of Peril -->
<item id="57" min="2757" max="6432" chance="70" /> <!-- Adena -->
<item id="4089" min="1" max="1" chance="10.9" /> <!-- Sealed Doom Helmet Design -->
<item id="4088" min="1" max="3" chance="5.269" /> <!-- Sealed Blue Wolf Helmet Design -->
<item id="4121" min="1" max="1" chance="1.251" /> <!-- Bow of Peril Shaft -->
<item id="4952" min="1" max="1" chance="0.75" /> <!-- Recipe: Sealed Avadon Circlet (60%) -->
<item id="4962" min="1" max="1" chance="0.75" /> <!-- Recipe: Sealed Zubei's Helmet (60%) -->
<item id="4991" min="1" max="1" chance="0.3" /> <!-- Recipe: Sealed Doom Helmet (60%) -->
<item id="4990" min="1" max="1" chance="0.3" /> <!-- Recipe: Sealed Blue Wolf Helmet (60%) -->
<item id="4965" min="1" max="1" chance="0.075" /> <!-- Recipe: Spirit's Staff (60%) -->
<item id="90012" min="1" max="1" chance="0.075" /> <!-- Common Life Stone -->
<item id="5000" min="1" max="1" chance="0.03" /> <!-- Recipe: Damascus Sword (60%) -->
<item id="5004" min="1" max="1" chance="0.03" /> <!-- Recipe: Staff of Evil Spirits (60%) -->
<item id="2416" min="1" max="1" chance="0.05" />
<item id="2417" min="1" max="1" chance="0.05" />
<item id="287" min="1" max="1" chance="0.005" />
<item id="57" min="2757" max="6432" chance="70" />
<item id="4089" min="1" max="1" chance="11.96" />
<item id="4088" min="1" max="3" chance="5.801" />
<item id="4121" min="1" max="1" chance="1.374" />
<item id="4952" min="1" max="1" chance="1" />
<item id="4962" min="1" max="1" chance="1" />
<item id="4991" min="1" max="1" chance="0.5" />
<item id="4990" min="1" max="1" chance="0.5" />
<item id="4965" min="1" max="1" chance="0.1" />
<item id="90012" min="1" max="1" chance="0.1" />
<item id="5000" min="1" max="1" chance="0.05" />
<item id="5004" min="1" max="1" chance="0.05" />
</drop>
<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>
</drop_lists>
</npc>

File diff suppressed because it is too large Load Diff

View File

@@ -34,6 +34,22 @@
<height normal="30" />
</collision>
</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">
<race>HUMAN</race>
<sex>MALE</sex>

View 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>

View File

@@ -15,6 +15,7 @@
<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="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>
</npc>
</list>

View File

@@ -56,7 +56,12 @@ public enum InventorySlot implements IUpdateTypeComponent
BROOCH_JEWEL3(Inventory.PAPERDOLL_BROOCH_JEWEL3),
BROOCH_JEWEL4(Inventory.PAPERDOLL_BROOCH_JEWEL4),
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;

View File

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

View File

@@ -4607,7 +4607,8 @@ public final class L2PcInstance extends L2Playable
standUp();
}
setPrivateStoreType(PrivateStoreType.BUY_MANAGE);
sendPacket(new PrivateStoreManageListBuy(this));
sendPacket(new PrivateStoreManageListBuy(1, this));
sendPacket(new PrivateStoreManageListBuy(2, this));
}
}
else
@@ -5615,7 +5616,8 @@ public final class L2PcInstance extends L2Playable
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.YOU_BEGIN_TRADING_WITH_C1);
msg.addPcName(partner);
sendPacket(msg);
sendPacket(new TradeStart(this));
sendPacket(new TradeStart(1, this));
sendPacket(new TradeStart(2, this));
}
public void onTradeConfirm(L2PcInstance partner)
@@ -13697,8 +13699,10 @@ public final class L2PcInstance extends L2Playable
*/
public void sendItemList(boolean open)
{
sendPacket(new ItemList(this, open));
sendPacket(new ExQuestItemList(this));
sendPacket(new ItemList(1, this, open));
sendPacket(new ItemList(2, this, open));
sendPacket(new ExQuestItemList(1, this));
sendPacket(new ExQuestItemList(2, this));
sendPacket(new ExAdenaInvenCount(this));
sendPacket(new ExUserInfoInvenWeight(this));
}

View File

@@ -113,7 +113,12 @@ public abstract class Inventory extends ItemContainer
public static final int PAPERDOLL_BROOCH_JEWEL4 = 29;
public static final int PAPERDOLL_BROOCH_JEWEL5 = 30;
public static final int PAPERDOLL_BROOCH_JEWEL6 = 31;
public static final int PAPERDOLL_TOTALSLOTS = 32;
public static final int PAPERDOLL_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
public static final double MAX_ARMOR_WEIGHT = 12000;

View File

@@ -392,9 +392,47 @@ public enum ExIncomingPackets implements IIncomingPackets<L2GameClient>
EXREQUEST_MATCH_GROUP_WITHDRAW(0x133, null, ConnectionState.IN_GAME),
EXREQUEST_MATCH_GROUP_OUST(0x134, null, ConnectionState.IN_GAME),
EXREQUEST_MATCH_GROUP_CHANGE_MASTER(0x135, null, ConnectionState.IN_GAME),
REQUEST_BLOCK_LIST_FOR_AD(0x136, null, ConnectionState.IN_GAME),
REQUEST_UPGRADE_SYSTEM_RESULT(0x137, null, ConnectionState.IN_GAME),
REQUEST_USER_BAN_INFO(0x138, null, ConnectionState.IN_GAME);
REQUEST_UPGRADE_SYSTEM_RESULT(0x136, null, ConnectionState.IN_GAME),
EX_CARD_UPDOWN_PICK_NUMB(0x137, null, ConnectionState.IN_GAME),
EX_CARD_UPDOWN_GAME_REWARD_REQUEST(0x138, null, ConnectionState.IN_GAME),
EX_CARD_UPDOWN_GAME_RETRY(0x139, null, ConnectionState.IN_GAME),
EX_CARD_UPDOWN_GAME_QUIT(0x13A, null, ConnectionState.IN_GAME),
EX_ARENA_RANK_ALL(0x13B, null, ConnectionState.IN_GAME),
EX_ARENA_MYRANK(0x13C, null, ConnectionState.IN_GAME),
EX_SWAP_AGATHION_SLOT_ITEMS(0x13D, null, ConnectionState.IN_GAME),
EX_PLEDGE_CONTRIBUTION_RANK(0x13E, null, ConnectionState.IN_GAME),
EX_PLEDGE_CONTRIBUTION_INFO(0x13F, null, ConnectionState.IN_GAME),
EX_PLEDGE_CONTRIBUTION_REWARD(0x140, null, ConnectionState.IN_GAME),
EX_PLEDGE_LEVEL_UP(0x141, null, ConnectionState.IN_GAME),
EX_PLEDGE_MISSION_INFO(0x142, null, ConnectionState.IN_GAME),
EX_PLEDGE_MISSION_REWARD(0x143, null, ConnectionState.IN_GAME),
EX_PLEDGE_MASTERY_INFO(0x144, 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;

View File

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

View File

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

View File

@@ -354,10 +354,12 @@ public class EnterWorld implements IClientIncomingPacket
client.sendPacket(new ExGetBookMarkInfoPacket(activeChar));
// Send Item List
client.sendPacket(new ItemList(activeChar, false));
client.sendPacket(new ItemList(1, activeChar, false));
client.sendPacket(new ItemList(2, activeChar, false));
// Send Quest Item List
client.sendPacket(new ExQuestItemList(activeChar));
client.sendPacket(new ExQuestItemList(1, activeChar));
client.sendPacket(new ExQuestItemList(2, activeChar));
// Send Adena and Inventory Count
client.sendPacket(new ExAdenaInvenCount(activeChar));

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -43,6 +43,11 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
return MASKS;
}
protected void writeItem(PacketWriter packet, TradeItem item, long count)
{
writeItem(packet, new ItemInfo(item), count);
}
protected void writeItem(PacketWriter packet, TradeItem item)
{
writeItem(packet, new ItemInfo(item));
@@ -81,6 +86,8 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
packet.writeD(item.getMana());
packet.writeD(item.getTime());
packet.writeC(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);
@@ -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)
{
int mask = 0;

View File

@@ -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(0x01); // play mode, if 1 can create only 2 char in regular lobby
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;
if (_activeId == -1)
@@ -184,6 +184,12 @@ public class CharSelectionInfo implements IClientOutgoingPacket
packet.writeD(charInfoPackage.getHairColor());
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.getMaxMp()); // mp max

View File

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

View File

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

View File

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

View File

@@ -63,7 +63,6 @@ public class HennaEquipList implements IClientOutgoingPacket
packet.writeQ(henna.getWearCount()); // amount of dyes required
packet.writeQ(henna.getWearFee()); // amount of Adena required
packet.writeD(henna.isAllowedClass(_player.getClassId()) ? 0x01 : 0x00); // meet the requirement or not
packet.writeD(0x00); // TODO: Find me!
}
}
return true;

View File

@@ -51,7 +51,6 @@ public class HennaRemoveList implements IClientOutgoingPacket
packet.writeQ(henna.getCancelCount());
packet.writeQ(henna.getCancelFee());
packet.writeD(0x00);
packet.writeD(0x00);
}
}
return true;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<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 key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</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_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/c3p0-0.9.5.2.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/ecj-4.4.2.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/mchange-commons-java-0.2.12.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/mysql-connector-java-5.1.43.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/netty-all-4.1.14.Final.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/c3p0-0.9.5.2.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/ecj-4.4.2.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/mchange-commons-java-0.2.12.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/mysql-connector-java-5.1.43.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/netty-all-4.1.14.Final.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
</listAttribute>
<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.PROJECT_ATTR" value="L2J_Mobius_Classic_2.1_Zaken"/>
<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.PROJECT_ATTR" value="L2J_Mobius_Classic_2.2_Antharas"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_Classic_2.2_Antharas}/dist/game/"/>
</launchConfiguration>

View File

@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<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 key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</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_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/c3p0-0.9.5.2.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/ecj-4.4.2.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/mchange-commons-java-0.2.12.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/mysql-connector-java-5.1.43.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.1_Zaken/dist/libs/netty-all-4.1.14.Final.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/c3p0-0.9.5.2.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/ecj-4.4.2.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/mchange-commons-java-0.2.12.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/mysql-connector-java-5.1.43.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;archive detectRoot=&amp;quot;true&amp;quot; path=&amp;quot;/L2J_Mobius_Classic_2.2_Antharas/dist/libs/netty-all-4.1.14.Final.jar&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.archive&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
</listAttribute>
<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"/>
<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.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_Classic_2.1_Zaken}/dist/login/"/>
<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.2_Antharas}/dist/login/"/>
</launchConfiguration>

View File

@@ -1,7 +1,7 @@
L2J-Mobius Classic 2.0
Client: https://drive.google.com/uc?id=1i8udOtNak2ANythwdPYY3sVdawOxuyBo&export=download
Geodata: http://www.mediafire.com/file/2rzuybowd9zfax4/mobius_geodata_zaken_l2d.zip
Client:
Geodata:
Saviors: https://eu.4game.com/lineage2classic/play/saviors/
-Classic packet compatibility
@@ -62,6 +62,9 @@ Zaken: https://eu.4game.com/lineage2classic/play/zaken/
-Zaken boss AI
-TODO: Newbie quest changes
Antharas: https://eu.4game.com/lineage2classic/play/antharas/
Customs:
-Newbie Helper NPC location info
-Newbie Helper buff support until 40 level