Initial changes.
This commit is contained in:
parent
124da5b623
commit
2edee74e5d
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>L2J_Mobius_10.1_MasterClass</name>
|
||||
<name>L2J_Mobius_10.2_MasterClass</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE xml>
|
||||
<project name="L2J_Mobius_10.1_MasterClass" default="cleanup" basedir=".">
|
||||
<project name="L2J_Mobius_10.2_MasterClass" default="cleanup" basedir=".">
|
||||
<description>
|
||||
This file is part of the L2J Mobius project.
|
||||
|
||||
@ -134,15 +134,15 @@
|
||||
</target>
|
||||
|
||||
<target name="adding-core" depends="jar" description="Adding the compiled jars to the Zip file.">
|
||||
<zip destfile="${build}/L2J_Mobius_10.1_MasterClass.zip" basedir="${build.dist}" level="9" />
|
||||
<zip destfile="${build}/L2J_Mobius_10.2_MasterClass.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_10.1_MasterClass.zip" basedir="${datapack}" excludes="**/*-sources.jar" update="true" level="9" />
|
||||
<zip destfile="${build}/L2J_Mobius_10.2_MasterClass.zip" basedir="${datapack}" excludes="**/*-sources.jar" 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_10.1_MasterClass.zip" basedir="." includes="readme.txt" update="true" level="9" />
|
||||
<zip destfile="${build}/L2J_Mobius_10.2_MasterClass.zip" basedir="." includes="readme.txt" update="true" level="9" />
|
||||
</target>
|
||||
|
||||
<target name="cleanup" depends="adding-readme" description="Cleaning the build folder.">
|
||||
|
@ -101,8 +101,8 @@ MaximumOnlineUsers = 2000
|
||||
# Numbers of protocol revisions that server allows to connect.
|
||||
# Delimiter is ;
|
||||
# WARNING: <u><b><font color="red">Changing the protocol revision may result in incompatible communication and many errors in game!</font></b></u>
|
||||
# Master Class: 338
|
||||
AllowedProtocolRevisions = 338
|
||||
# Master Class Chapter 2: 362
|
||||
AllowedProtocolRevisions = 362
|
||||
|
||||
# Displays server type next to the server name on character selection.
|
||||
# Notes:
|
||||
|
@ -25,9 +25,10 @@ public enum ItemListType implements IUpdateTypeComponent
|
||||
{
|
||||
AUGMENT_BONUS(1),
|
||||
ELEMENTAL_ATTRIBUTE(2),
|
||||
ENCHANT_EFFECT(4),
|
||||
VISUAL_ID(8),
|
||||
SOUL_CRYSTAL(16);
|
||||
VISUAL_ID(4),
|
||||
SOUL_CRYSTAL(8),
|
||||
REUSE_DELAY(16),
|
||||
BLESSED(128);
|
||||
|
||||
private final int _mask;
|
||||
|
||||
|
@ -56,7 +56,9 @@ public enum UserInfoType implements IUpdateTypeComponent
|
||||
STAT_POINTS(0x19, 16),
|
||||
STAT_ABILITIES(0x1A, 18),
|
||||
|
||||
ELIXIR_USED(0x1B, 1);
|
||||
ELIXIR_USED(0x1B, 1),
|
||||
|
||||
VANGUARD_MOUNT(0x1C, 1);
|
||||
|
||||
/** Int mask. */
|
||||
private final int _mask;
|
||||
|
@ -22,6 +22,7 @@ import java.util.Objects;
|
||||
|
||||
import org.l2jmobius.commons.util.Chronos;
|
||||
import org.l2jmobius.gameserver.enums.AttributeType;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.buylist.Product;
|
||||
import org.l2jmobius.gameserver.model.ensoul.EnsoulOption;
|
||||
import org.l2jmobius.gameserver.model.item.ItemTemplate;
|
||||
@ -87,6 +88,9 @@ public class ItemInfo
|
||||
private int _visualId;
|
||||
private long _visualExpiration;
|
||||
|
||||
private int _reuseDelay;
|
||||
private Player _owner;
|
||||
|
||||
/**
|
||||
* Get all information from Item to generate ItemInfo.
|
||||
* @param item
|
||||
@ -153,6 +157,8 @@ public class ItemInfo
|
||||
_soulCrystalSpecialOptions = item.getAdditionalSpecialAbilities();
|
||||
_visualId = item.getVisualId();
|
||||
_visualExpiration = item.getVisualLifeTime() > 0 ? (item.getVisualLifeTime() - Chronos.currentTimeMillis()) / 1000 : 0;
|
||||
_reuseDelay = item.getReuseDelay();
|
||||
_owner = item.getActingPlayer();
|
||||
}
|
||||
|
||||
public ItemInfo(Item item, int change)
|
||||
@ -408,6 +414,16 @@ public class ItemInfo
|
||||
return _visualExpiration;
|
||||
}
|
||||
|
||||
public int getReuseDelay()
|
||||
{
|
||||
return _reuseDelay;
|
||||
}
|
||||
|
||||
public Player getOwner()
|
||||
{
|
||||
return _owner;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
|
@ -707,11 +707,46 @@ public enum ExIncomingPackets implements IIncomingPackets<GameClient>
|
||||
EX_PACKETREADCOUNTPERSECOND(0x220, null, ConnectionState.IN_GAME),
|
||||
EX_SELECT_GLOBAL_EVENT_UI(0x221, null, ConnectionState.IN_GAME),
|
||||
EX_L2PASS_INFO(0x222, null, ConnectionState.IN_GAME),
|
||||
EX_L2PASS_REQUEST_REWARD(0x2231, null, ConnectionState.IN_GAME),
|
||||
EX_L2PASS_REQUEST_REWARD(0x223, null, ConnectionState.IN_GAME),
|
||||
EX_L2PASS_REQUEST_REWARD_ALL(0x224, null, ConnectionState.IN_GAME),
|
||||
EX_L2PASS_BUY_PREMIUM(0x225, null, ConnectionState.IN_GAME),
|
||||
EX_SAYHAS_SUPPORT_TOGGLE(0x226, null, ConnectionState.IN_GAME),
|
||||
EX_MAX(0x227, null, ConnectionState.IN_GAME);
|
||||
// 362
|
||||
EX_REQ_ENCHANT_FAIL_REWARD_INFO(0x227, null, ConnectionState.IN_GAME),
|
||||
EX_SET_ENCHANT_CHALLENGE_POINT(0x228, null, ConnectionState.IN_GAME),
|
||||
EX_RESET_ENCHANT_CHALLENGE_POINT(0x229, null, ConnectionState.IN_GAME),
|
||||
EX_REQ_VIEW_ENCHANT_RESULT(0x22A, null, ConnectionState.IN_GAME),
|
||||
EX_REQ_START_MULTI_ENCHANT_SCROLL(0x22B, null, ConnectionState.IN_GAME),
|
||||
EX_REQ_VIEW_MULTI_ENCHANT_RESULT(0x22C, null, ConnectionState.IN_GAME),
|
||||
EX_REQ_FINISH_MULTI_ENCHANT_SCROLL(0x22D, null, ConnectionState.IN_GAME),
|
||||
EX_REQ_CHANGE_MULTI_ENCHANT_SCROLL(0x22E, null, ConnectionState.IN_GAME),
|
||||
EX_REQ_SET_MULTI_ENCHANT_ITEM_LIST(0x22F, null, ConnectionState.IN_GAME),
|
||||
EX_REQ_MULTI_ENCHANT_ITEM_LIST(0x230, null, ConnectionState.IN_GAME),
|
||||
EX_WORLDCASTLEWAR_SUPPORT_PLEDGE_FLAG_SET(0x231, null, ConnectionState.IN_GAME),
|
||||
EX_WORLDCASTLEWAR_SUPPORT_PLEDGE_INFO_SET(0x232, null, ConnectionState.IN_GAME),
|
||||
EX_REQ_HOMUNCULUS_PROB_LIST(0x233, null, ConnectionState.IN_GAME),
|
||||
EX_WORLDCASTLEWAR_HOST_CASTLE_SIEGE_ALL_RANKING_INFO(0x234, null, ConnectionState.IN_GAME),
|
||||
EX_WORLDCASTLEWAR_CASTLE_SIEGE_ALL_RANKING_INFO(0x235, null, ConnectionState.IN_GAME),
|
||||
EX_MISSION_LEVEL_REWARD_LIST(0x236, null, ConnectionState.IN_GAME),
|
||||
EX_MISSION_LEVEL_RECEIVE_REWARD(0x237, null, ConnectionState.IN_GAME),
|
||||
EX_BALROGWAR_TELEPORT(0x238, null, ConnectionState.IN_GAME),
|
||||
EX_BALROGWAR_SHOW_UI(0x239, null, ConnectionState.IN_GAME),
|
||||
EX_BALROGWAR_SHOW_RANKING(0x23A, null, ConnectionState.IN_GAME),
|
||||
EX_BALROGWAR_GET_REWARD(0x23B, null, ConnectionState.IN_GAME),
|
||||
EX_USER_RESTART_LOCKER_UPDATE(0x23C, null, ConnectionState.IN_GAME),
|
||||
EX_WORLD_EXCHANGE_ITEM_LIST(0x23D, null, ConnectionState.IN_GAME),
|
||||
EX_WORLD_EXCHANGE_REGI_ITEM(0x23E, null, ConnectionState.IN_GAME),
|
||||
EX_WORLD_EXCHANGE_BUY_ITEM(0x23F, null, ConnectionState.IN_GAME),
|
||||
EX_WORLD_EXCHANGE_SETTLE_LIST(0x240, null, ConnectionState.IN_GAME),
|
||||
EX_WORLD_EXCHANGE_SETTLE_RECV_RESULT(0x241, null, ConnectionState.IN_GAME),
|
||||
EX_READY_ITEM_AUTO_PEEL(0x242, null, ConnectionState.IN_GAME),
|
||||
EX_REQUEST_ITEM_AUTO_PEEL(0x243, null, ConnectionState.IN_GAME),
|
||||
EX_STOP_ITEM_AUTO_PEEL(0x244, null, ConnectionState.IN_GAME),
|
||||
EX_VARIATION_OPEN_UI(0x245, null, ConnectionState.IN_GAME),
|
||||
EX_VARIATION_CLOSE_UI(0x246, null, ConnectionState.IN_GAME),
|
||||
EX_APPLY_VARIATION_OPTION(0x247, null, ConnectionState.IN_GAME),
|
||||
EX_BR_VERSION(0x248, null, ConnectionState.IN_GAME),
|
||||
EX_MAX(0x249, null, ConnectionState.IN_GAME);
|
||||
|
||||
public static final ExIncomingPackets[] PACKET_ARRAY;
|
||||
|
||||
|
@ -1014,21 +1014,58 @@ public enum OutgoingPackets
|
||||
EX_PRIVATE_STORE_SEARCH_ITEM(0xFE, 0x2D4),
|
||||
EX_PRIVATE_STORE_SEARCH_HISTORY(0xFE, 0x2D5),
|
||||
EX_PRIVATE_STORE_SEARCH_STATISTICS(0xFE, 0x2D6),
|
||||
EX_WORLDCASTLEWAR_HOST_CASTLE_SIEGE_RANKING_INFO(0xFE, 0x2D7),
|
||||
EX_WORLDCASTLEWAR_CASTLE_SIEGE_RANKING_INFO(0xFE, 0x2D8),
|
||||
EX_NEW_HENNA_LIST(0xFE, 0x2D9),
|
||||
EX_NEW_HENNA_EQUIP(0xFE, 0x2DA),
|
||||
EX_NEW_HENNA_UNEQUIP(0xFE, 0x2DB),
|
||||
EX_NEW_HENNA_POTEN_SELECT(0xFE, 0x2DC),
|
||||
EX_NEW_HENNA_POTEN_ENCHANT(0xFE, 0x2DD),
|
||||
EX_NEW_HENNA_COMPOSE(0xFE, 0x2DE),
|
||||
EX_REQUEST_INVITE_PARTY(0xFE, 0x2DF),
|
||||
EX_INIT_GLOBAL_EVENT_UI(0xFE, 0x2E0),
|
||||
EX_SHOW_GLOBAL_EVENT_UI(0xFE, 0x2E1),
|
||||
EX_L2PASS_SIMPLE_INFO(0xFE, 0x2E2),
|
||||
EX_L2PASS_INFO(0xFE, 0x2E3),
|
||||
EX_SAYHAS_SUPPORT_INFO(0xFE, 0x2E4),
|
||||
EX_MAX(0xFE, 0x2E5);
|
||||
EX_NEW_HENNA_LIST(0xFE, 0x2D7),
|
||||
EX_NEW_HENNA_EQUIP(0xFE, 0x2D8),
|
||||
EX_NEW_HENNA_UNEQUIP(0xFE, 0x2D9),
|
||||
EX_NEW_HENNA_POTEN_SELECT(0xFE, 0x2DA),
|
||||
EX_NEW_HENNA_POTEN_ENCHANT(0xFE, 0x2DB),
|
||||
EX_NEW_HENNA_COMPOSE(0xFE, 0x2DC),
|
||||
EX_REQUEST_INVITE_PARTY(0xFE, 0x2DD),
|
||||
EX_INIT_GLOBAL_EVENT_UI(0xFE, 0x2DE),
|
||||
EX_SHOW_GLOBAL_EVENT_UI(0xFE, 0x2DF),
|
||||
EX_L2PASS_SIMPLE_INFO(0xFE, 0x2E0),
|
||||
EX_L2PASS_INFO(0xFE, 0x2E1),
|
||||
EX_SAYHAS_SUPPORT_INFO(0xFE, 0x2E2),
|
||||
// 362
|
||||
EX_RES_ENCHANT_ITEM_FAIL_REWARD_INFO(0xFE, 0x2E3),
|
||||
EX_CHANGED_ENCHANT_TARGET_ITEM_PROB_LIST(0xFE, 0x2E4),
|
||||
EX_ENCHANT_CHALLENGE_POINT_INFO(0xFE, 0x2E5),
|
||||
EX_SET_ENCHANT_CHALLENGE_POINT(0xFE, 0x2E6),
|
||||
EX_RESET_ENCHANT_CHALLENGE_POINT(0xFE, 0x2E7),
|
||||
EX_RES_SELECT_MULTI_ENCHANT_SCROLL(0xFE, 0x2E8),
|
||||
EX_RES_SET_MULTI_ENCHANT_ITEM_LIST(0xFE, 0x2E9),
|
||||
EX_RES_MULTI_ENCHANT_ITEM_LIST(0xFE, 0x2EA),
|
||||
EX_WORLDCASTLEWAR_HOST_SUPPORT_PLEDGE_RANKING_INFO(0xFE, 0x2EB),
|
||||
EX_WORLDCASTLEWAR_HOST_PLEDGE_RANKING_INFO(0xFE, 0x2EC),
|
||||
EX_WORLDCASTLEWAR_HOST_PERSONAL_RANKING_INFO(0xFE, 0x2ED),
|
||||
EX_WORLDCASTLEWAR_SUPPORT_PLEDGE_RANKING_INFO(0xFE, 0x2EE),
|
||||
EX_WORLDCASTLEWAR_PLEDGE_RANKING_INFO(0xFE, 0x2EF),
|
||||
EX_WORLDCASTLEWAR_PERSONAL_RANKING_INFO(0xFE, 0x2F0),
|
||||
EX_HOMUNCULUS_CREATE_PROB_LIST(0xFE, 0x2F1),
|
||||
EX_HOMUNCULUS_COUPON_PROB_LIST(0xFE, 0x2F2),
|
||||
EX_WORLDCASTLEWAR_HOST_CASTLE_SIEGE_RANKING_INFO(0xFE, 0x2F3),
|
||||
EX_WORLDCASTLEWAR_CASTLE_SIEGE_RANKING_INFO(0xFE, 0x2F4),
|
||||
EX_MISSION_LEVEL_REWARD_LIST(0xFE, 0x2F5),
|
||||
EX_BALROGWAR_SHOW_UI(0xFE, 0x2F6),
|
||||
EX_BALROGWAR_SHOW_RANKING(0xFE, 0x2F7),
|
||||
EX_BALROGWAR_GET_REWARD(0xFE, 0x2F8),
|
||||
EX_BALROGWAR_HUD(0xFE, 0x2F9),
|
||||
EX_BALROGWAR_BOSSINFO(0xFE, 0x2FA),
|
||||
EX_USER_RESTART_LOCKER_LIST(0xFE, 0x2FB),
|
||||
EX_USER_RESTART_LOCKER_UPDATE(0xFE, 0x2FC),
|
||||
EX_WORLD_EXCHANGE_ITEM_LIST(0xFE, 0x2FD),
|
||||
EX_WORLD_EXCHANGE_REGI_ITEM(0xFE, 0x2FE),
|
||||
EX_WORLD_EXCHANGE_BUY_ITEM(0xFE, 0x2FF),
|
||||
EX_WORLD_EXCHANGE_SETTLE_LIST(0xFE, 0x300),
|
||||
EX_WORLD_EXCHANGE_SETTLE_RECV_RESULT(0xFE, 0x301),
|
||||
EX_WORLD_EXCHANGE_SELL_COMPLETE_ALARM(0xFE, 0x302),
|
||||
EX_READY_ITEM_AUTO_PEEL(0xFE, 0x303),
|
||||
EX_RESULT_ITEM_AUTO_PEEL(0xFE, 0x304),
|
||||
EX_STOP_ITEM_AUTO_PEEL(0xFE, 0x305),
|
||||
EX_TIME_RESTRICT_FIELD_DIE_LIMT_TIME(0xFE, 0x306),
|
||||
EX_APPLY_VARIATION_OPTION(0xFE, 0x307),
|
||||
EX_BR_VERSION(0xFE, 0x308),
|
||||
EX_MAX(0xFE, 0x309);
|
||||
|
||||
private final int _id1;
|
||||
private final int _id2;
|
||||
|
@ -85,8 +85,7 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
|
||||
packet.writeC(0); // 270 protocol
|
||||
packet.writeD(item.getTime());
|
||||
packet.writeC(item.isAvailable() ? 1 : 0); // GOD Item enabled = 1 disabled (red) = 0
|
||||
packet.writeC(0); // 140 protocol
|
||||
packet.writeC(0); // 140 protocol
|
||||
packet.writeH(0); // 140 - locked
|
||||
if (containsMask(mask, ItemListType.AUGMENT_BONUS))
|
||||
{
|
||||
writeItemAugment(packet, item);
|
||||
@ -95,10 +94,11 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
|
||||
{
|
||||
writeItemElemental(packet, item);
|
||||
}
|
||||
if (containsMask(mask, ItemListType.ENCHANT_EFFECT))
|
||||
{
|
||||
writeItemEnchantEffect(packet, item);
|
||||
}
|
||||
// 362 - Removed
|
||||
// if (containsMask(mask, ItemListType.ENCHANT_EFFECT))
|
||||
// {
|
||||
// writeItemEnchantEffect(packet, item);
|
||||
// }
|
||||
if (containsMask(mask, ItemListType.VISUAL_ID))
|
||||
{
|
||||
packet.writeD(item.getVisualId()); // Item remodel visual ID
|
||||
@ -107,6 +107,13 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
|
||||
{
|
||||
writeItemEnsoulOptions(packet, item);
|
||||
}
|
||||
// TODO:
|
||||
// if (containsMask(mask, ItemListType.REUSE_DELAY))
|
||||
// {
|
||||
// final Player owner = item.getOwner();
|
||||
// packet.writeD(owner == null ? 0 : (int) (owner.getItemRemainingReuseTime(item.getObjectId()) / 1000));
|
||||
// }
|
||||
// Essence
|
||||
// if (containsMask(mask, ItemListType.BLESSED))
|
||||
// {
|
||||
// packet.writeC(1);
|
||||
@ -130,8 +137,7 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
|
||||
packet.writeC(0); // 270 protocol
|
||||
packet.writeD(item.getTime());
|
||||
packet.writeC(item.isAvailable() ? 1 : 0); // GOD Item enabled = 1 disabled (red) = 0
|
||||
packet.writeC(0); // 140 protocol
|
||||
packet.writeC(0); // 140 protocol
|
||||
packet.writeH(0); // 140 - locked
|
||||
if (containsMask(mask, ItemListType.AUGMENT_BONUS))
|
||||
{
|
||||
writeItemAugment(packet, item);
|
||||
@ -140,10 +146,11 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
|
||||
{
|
||||
writeItemElemental(packet, item);
|
||||
}
|
||||
if (containsMask(mask, ItemListType.ENCHANT_EFFECT))
|
||||
{
|
||||
writeItemEnchantEffect(packet, item);
|
||||
}
|
||||
// 362 - Removed
|
||||
// if (containsMask(mask, ItemListType.ENCHANT_EFFECT))
|
||||
// {
|
||||
// writeItemEnchantEffect(packet, item);
|
||||
// }
|
||||
if (containsMask(mask, ItemListType.VISUAL_ID))
|
||||
{
|
||||
packet.writeD(item.getVisualId()); // Item remodel visual ID
|
||||
@ -152,6 +159,13 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
|
||||
{
|
||||
writeItemEnsoulOptions(packet, item);
|
||||
}
|
||||
// TODO:
|
||||
// if (containsMask(mask, ItemListType.REUSE_DELAY))
|
||||
// {
|
||||
// final Player owner = item.getOwner();
|
||||
// packet.writeD(owner == null ? 0 : (int) (owner.getItemRemainingReuseTime(item.getObjectId()) / 1000));
|
||||
// }
|
||||
// Essence
|
||||
// if (containsMask(mask, ItemListType.BLESSED))
|
||||
// {
|
||||
// packet.writeC(1);
|
||||
@ -169,17 +183,18 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
|
||||
{
|
||||
mask |= ItemListType.ELEMENTAL_ATTRIBUTE.getMask();
|
||||
}
|
||||
if (item.getEnchantOptions() != null)
|
||||
{
|
||||
for (int id : item.getEnchantOptions())
|
||||
{
|
||||
if (id > 0)
|
||||
{
|
||||
mask |= ItemListType.ENCHANT_EFFECT.getMask();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 362 - Removed
|
||||
// if (item.getEnchantOptions() != null)
|
||||
// {
|
||||
// for (int id : item.getEnchantOptions())
|
||||
// {
|
||||
// if (id > 0)
|
||||
// {
|
||||
// mask |= ItemListType.ENCHANT_EFFECT.getMask();
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
if (item.getVisualId() > 0)
|
||||
{
|
||||
mask |= ItemListType.VISUAL_ID.getMask();
|
||||
@ -188,6 +203,12 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
|
||||
{
|
||||
mask |= ItemListType.SOUL_CRYSTAL.getMask();
|
||||
}
|
||||
// TODO:
|
||||
// if (item.getReuseDelay() > 0)
|
||||
// {
|
||||
// mask |= ItemListType.REUSE_DELAY.getMask();
|
||||
// }
|
||||
// Essence
|
||||
// if (item.isBlessed())
|
||||
// {
|
||||
// mask |= ItemListType.BLESSED.getMask();
|
||||
|
@ -264,6 +264,7 @@ public class CharInfo implements IClientOutgoingPacket
|
||||
packet.writeC(0);
|
||||
packet.writeD(_player.getVisualHairColor() + 1); // 338 - DK color.
|
||||
packet.writeD(0);
|
||||
packet.writeC(0); // 362 - Vanguard mount.
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -256,6 +256,7 @@ public class CharSelectionInfo implements IClientOutgoingPacket
|
||||
packet.writeD((int) (charInfoPackage.getLastAccess() / 1000)); // 235 - last play time
|
||||
packet.writeC(0); // 338
|
||||
packet.writeD(charInfoPackage.getHairColor() + 1); // 338 - DK color.
|
||||
packet.writeC(0); // 362 - Vanguard mount.
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -139,7 +139,7 @@ public class UserInfo extends AbstractMaskPacket<UserInfoType>
|
||||
OutgoingPackets.USER_INFO.writeId(packet);
|
||||
packet.writeD(_player.getObjectId());
|
||||
packet.writeD(_initSize);
|
||||
packet.writeH(28); // 286 - 28
|
||||
packet.writeH(29); // 362 - 29
|
||||
packet.writeB(_masks);
|
||||
if (containsMask(UserInfoType.RELATION))
|
||||
{
|
||||
@ -419,8 +419,14 @@ public class UserInfo extends AbstractMaskPacket<UserInfoType>
|
||||
if (containsMask(UserInfoType.ELIXIR_USED)) // 286
|
||||
{
|
||||
packet.writeH(1);
|
||||
packet.writeD(0);
|
||||
packet.writeH(0);
|
||||
}
|
||||
|
||||
if (containsMask(UserInfoType.VANGUARD_MOUNT)) // 362
|
||||
{
|
||||
packet.writeC(0); // 362 - Vanguard mount.
|
||||
}
|
||||
|
||||
// Send exp bonus change.
|
||||
if (containsMask(UserInfoType.VITA_FAME))
|
||||
{
|
||||
@ -428,6 +434,7 @@ public class UserInfo extends AbstractMaskPacket<UserInfoType>
|
||||
_player.sendPacket(new ExUserBoostStat(_player, BonusExpType.BUFFS));
|
||||
_player.sendPacket(new ExUserBoostStat(_player, BonusExpType.PASSIVE));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?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_10.1_MasterClass/java/org/l2jmobius/gameserver/GameServer.java"/>
|
||||
<listEntry value="/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/GameServer.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
@ -12,7 +12,7 @@
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.l2jmobius.gameserver.GameServer"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="L2J_Mobius_10.1_MasterClass"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_10.1_MasterClass"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_10.1_MasterClass}/dist/game/"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="L2J_Mobius_10.2_MasterClass"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_10.2_MasterClass"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_10.2_MasterClass}/dist/game/"/>
|
||||
</launchConfiguration>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?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_10.1_MasterClass/java/org/l2jmobius/loginserver/LoginServer.java"/>
|
||||
<listEntry value="/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/loginserver/LoginServer.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
@ -13,7 +13,7 @@
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.l2jmobius.loginserver.LoginServer"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="L2J_Mobius_10.1_MasterClass"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_10.1_MasterClass"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_10.1_MasterClass}/dist/login/"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="L2J_Mobius_10.2_MasterClass"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_10.2_MasterClass"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_10.2_MasterClass}/dist/login/"/>
|
||||
</launchConfiguration>
|
||||
|
@ -1,6 +1,6 @@
|
||||
L2J-Mobius Master Class
|
||||
Client (password L2jMobius): https://drive.google.com/u/0/uc?id=1fuTmSa-W-OTFZV1ZnaCv8ql5O39Uw9oL&export=download
|
||||
System: https://mega.nz/file/EwdSFZKD#1yIxgst5gzrpc7DQvSm1aokgfan7vfl3tRpMi6nZ51U
|
||||
L2J-Mobius Master Class Chapter 2
|
||||
Client (password L2jMobius): https://drive.google.com/u/0/uc?id=1I3nwvFOkuKrq9E_f-8iMiOHxlMvv2CtI&export=download
|
||||
System: https://mega.nz/file/AlVFEIhL#dZwVnzxdP2-La3mMsUfnXHkxdl35Iu0ojkjbwriIHnE
|
||||
|
||||
JDK: https://www.mediafire.com/file/kb2nfx54wojys4f/bellsoft-jdk17.0.2%252B9-windows-amd64.msi
|
||||
XAMPP: https://www.mediafire.com/file/hkehxpyjn81ybsw/xampp-windows-x64-8.0.11-2-VS16-installer.exe
|
||||
@ -125,6 +125,9 @@ Return of the Queen Ant Chapter 2: https://eu.4game.com/patchnotes/lineage2/331/
|
||||
Master Class: https://eu.4game.com/patchnotes/lineage2/362/
|
||||
-Death Knight creation support
|
||||
|
||||
Master Class Chapter 2: https://eu.4game.com/patchnotes/lineage2/374/
|
||||
-New enchant system
|
||||
|
||||
Events:
|
||||
-Birth of Draco
|
||||
-Character Birthday
|
||||
|
Loading…
Reference in New Issue
Block a user