Explorar o código

Gracia Final support 5/6

GodKratos %!s(int64=16) %!d(string=hai) anos
pai
achega
0075becfa3
Modificáronse 89 ficheiros con 1946 adicións e 743 borrados
  1. 239 232
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/AbstractNpcInfo.java
  2. 2 2
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/AcquireSkillInfo.java
  3. 7 3
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/AcquireSkillList.java
  4. 22 6
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/Attack.java
  5. 9 9
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/BuyList.java
  6. 5 5
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/BuyListSeed.java
  7. 20 8
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/CharInfo.java
  8. 3 2
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/CharSelected.java
  9. 20 14
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/CharSelectionInfo.java
  10. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/DropItem.java
  11. 1 8
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/EtcStatusUpdate.java
  12. 73 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExAirShipInfo.java
  13. 54 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExAirShipStopMove.java
  14. 2 2
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExBasicActionList.java
  15. 7 1
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExBrExtraUserInfo.java
  16. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExEnchantSkillInfo.java
  17. 3 3
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExEnchantSkillInfoDetail.java
  18. 64 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExGetBookMarkInfoPacket.java
  19. 55 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExGetOffAirShip.java
  20. 55 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExGetOnAirShip.java
  21. 59 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExMoveToLocationAirShip.java
  22. 70 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExMoveToLocationInAirShip.java
  23. 9 5
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExPutCommissionResultForVariationMake.java
  24. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExPutEnchantTargetItemResult.java
  25. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExPutIntensiveResultForVariationMake.java
  26. 4 4
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExRpItemLink.java
  27. 3 3
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowCropInfo.java
  28. 16 16
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowCropSetting.java
  29. 73 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowDominionRegistry.java
  30. 3 1
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowFortressInfo.java
  31. 2 2
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowProcureCropDetail.java
  32. 9 9
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSeedInfo.java
  33. 15 15
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSeedSetting.java
  34. 5 5
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSellCropList.java
  35. 52 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExStopMoveAirShip.java
  36. 56 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExStopMoveInAirShip.java
  37. 5 4
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExStorageMaxCount.java
  38. 57 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExValidateLocationInAirShip.java
  39. 50 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExVitalityPointInfo.java
  40. 13 8
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/GMViewCharacterInfo.java
  41. 5 5
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/GMViewItemList.java
  42. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/GMViewPledgeInfo.java
  43. 4 4
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/GMViewWarehouseWithdrawList.java
  44. 5 5
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/HennaEquipList.java
  45. 3 3
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/HennaItemInfo.java
  46. 5 5
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/InventoryUpdate.java
  47. 37 26
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ItemList.java
  48. 21 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/L2GameServerPacket.java
  49. 12 2
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/MagicSkillLaunched.java
  50. 7 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/MagicSkillUse.java
  51. 7 1
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/MoveToPawn.java
  52. 48 33
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/MultiSellList.java
  53. 230 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/NpcQuestHtmlMessage.java
  54. 5 5
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PackageSendableList.java
  55. 1 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PetInfo.java
  56. 4 4
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PetInventoryUpdate.java
  57. 4 4
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PetItemList.java
  58. 4 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PlaySound.java
  59. 37 32
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PledgeShowMemberListAll.java
  60. 53 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PremiumState.java
  61. 9 9
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreListBuy.java
  62. 8 9
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreListSell.java
  63. 15 14
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreManageListBuy.java
  64. 13 13
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreManageListSell.java
  65. 2 2
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopManageList.java
  66. 2 2
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopSellList.java
  67. 2 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/RelationChanged.java
  68. 33 32
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SSQStatus.java
  69. 7 7
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SellList.java
  70. 5 5
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SellListProcure.java
  71. 5 5
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ShopPreviewList.java
  72. 1 1
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ShowBoard.java
  73. 2 0
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SocialAction.java
  74. 7 7
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SortedWareHouseWithdrawalList.java
  75. 3 2
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SpawnItem.java
  76. 27 3
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SystemMessage.java
  77. 6 5
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/TeleportToLocation.java
  78. 4 4
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/TradeOtherAdd.java
  79. 4 4
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/TradeOwnAdd.java
  80. 4 4
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/TradeStart.java
  81. 32 36
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/UserInfo.java
  82. 9 3
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ValidateLocationInVehicle.java
  83. 9 9
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/WareHouseDepositList.java
  84. 9 9
      L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/WareHouseWithdrawalList.java
  85. 36 0
      L2_GameServer/java/net/sf/l2j/gameserver/skills/conditions/ConditionPlayerFlyMounted.java
  86. 36 0
      L2_GameServer/java/net/sf/l2j/gameserver/skills/conditions/ConditionPlayerLandingZone.java
  87. 0 2
      L2_GameServer/java/net/sf/l2j/gameserver/taskmanager/tasks/TaskRaidPointsReset.java
  88. 5 43
      L2_GameServer/java/net/sf/l2j/gameserver/templates/L2HelperBuff.java
  89. 12 12
      L2_GameServer/java/net/sf/l2j/gameserver/templates/chars/L2CharTemplate.java

+ 239 - 232
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/AbstractNpcInfo.java

@@ -23,6 +23,7 @@ import net.sf.l2j.gameserver.model.actor.L2Npc;
 import net.sf.l2j.gameserver.model.actor.L2Summon;
 import net.sf.l2j.gameserver.model.actor.L2Trap;
 import net.sf.l2j.gameserver.model.actor.instance.L2MonsterInstance;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 import net.sf.l2j.gameserver.model.itemcontainer.Inventory;
 /**
  * This class ...
@@ -41,7 +42,7 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 	protected boolean _isAttackable, _isSummoned;
 	protected int _mAtkSpd, _pAtkSpd;
 	protected int _runSpd, _walkSpd, _swimRunSpd, _swimWalkSpd, _flRunSpd, _flWalkSpd, _flyRunSpd, _flyWalkSpd;
-	protected int _rhand, _lhand, _chest, _val;
+	protected int _rhand, _lhand, _chest;
     protected int _collisionHeight, _collisionRadius;
     protected String _name = "";
     protected String _title = "";
@@ -137,10 +138,10 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 			writeD(_chest);
 			writeD(_lhand); // left hand weapon
 			writeC(1); // name above char 1=true ... ??
-			writeC(_npc.isRunning() ? 1 : 0);
+			writeC(1); // char always running
 			writeC(_npc.isInCombat() ? 1 : 0);
 			writeC(_npc.isAlikeDead() ? 1 : 0);
-			writeC(_isSummoned ? 2 : _val); // 0=teleported 1=default 2=summoned
+			writeC(_isSummoned ? 2 : 0); // 0=teleported 1=default 2=summoned
 			writeS(_name);
 			writeS(_title);
 			writeD(0x00); // Title color 0=client default
@@ -148,20 +149,23 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 			writeD(0x00); // pvp flag
 			
 			writeD(_npc.getAbnormalEffect()); // C2
-			writeD(0x00);
-			
+			writeD(0x00); //clan id
+			writeD(0x00); //crest id
 			writeD(0000); // C2
 			writeD(0000); // C2
-			writeD(0000); // C2
-			writeC(0000); // C2
+			writeC(_npc.isFlying() ? 2 : 0); // C2
 			writeC(0x00); // title color 0=client
 			
 			writeF(_collisionRadius);
 			writeF(_collisionHeight);
 			writeD(0x00); // C4
-			writeD(0x00); // C6
+			writeD(_npc.isFlying() ? 1 : 0); // C6
 			writeD(0x00);
 			writeD(0x00);// CT1.5 Pet form and skills
+	        writeC(0x01);
+	        writeC(0x01);
+	        writeD(0x00);
+    		
 		}
 	}
     
@@ -217,10 +221,10 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
     		writeD(_chest);
     		writeD(_lhand); // left hand weapon
     		writeC(1);	// name above char 1=true ... ??
-    		writeC(_trap.isRunning() ? 1 : 0);
+    		writeC(1);
     		writeC(_trap.isInCombat() ? 1 : 0);
     		writeC(_trap.isAlikeDead() ? 1 : 0);
-    		writeC(_isSummoned ? 2 : _val); //  0=teleported  1=default   2=summoned
+    		writeC(_isSummoned ? 2 : 0); //  0=teleported  1=default   2=summoned
     		writeS(_name);
     		writeS(_title);
     		writeD(0x00);  // title color 0 = client default
@@ -229,8 +233,8 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
     		writeD(0x00);  // pvp flag
 
     		writeD(_trap.getAbnormalEffect());  // C2
-    		
-    		writeD(0x00);   // 0x01 only for summons
+			writeD(0x00); //clan id
+			writeD(0x00); //crest id
     		writeD(0000);  // C2
     		writeD(0000);  // C2
     		writeD(0000);  // C2
@@ -244,6 +248,9 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
     		writeD(0x00);  // C6
     		writeD(0x00);
             writeD(0);//CT1.5 Pet form and skills
+            writeC(0x01);
+            writeC(0x01);
+            writeD(0x00);
     	}
     }
     
@@ -259,17 +266,9 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 		{
 			super(cha);
 			
-			if (_idTemplate <= 13070 || _idTemplate >= 13077)
-			{
-				if (Config.ASSERT)
-					throw new AssertionError("Using DecoyInfo packet with an unsupported decoy template");
-				else
-					throw new IllegalArgumentException("Using DecoyInfo packet with an unsupported decoy template");
-			}
-			
+			_idTemplate = cha.getTemplate().idTemplate;
 			_decoy = cha;
 			
-			_idTemplate = cha.getTemplate().idTemplate;
 			_heading = cha.getOwner().getHeading();
 			// _mAtkSpd = cha.getMAtkSpd(); on abstract constructor
 			_pAtkSpd = cha.getOwner().getPAtkSpd();
@@ -277,216 +276,207 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 			_walkSpd = cha.getOwner().getWalkSpeed();
 			_swimRunSpd = _flRunSpd = _flyRunSpd = _runSpd;
 			_swimWalkSpd = _flWalkSpd = _flyWalkSpd = _walkSpd;
-		}
-		
-		@Override
-		protected void writeImpl()
-		{
-			writeC(0x31);
-			writeD(_x);
-			writeD(_y);
-			writeD(_z);
-			writeD(_heading);
-			writeD(_decoy.getObjectId());
-			writeS(_decoy.getOwner().getAppearance().getVisibleName());
-			writeD(_decoy.getOwner().getRace().ordinal());
-			writeD(_decoy.getOwner().getAppearance().getSex() ? 1 : 0);
-			
-			if (_decoy.getOwner().getClassIndex() == 0)
-				writeD(_decoy.getOwner().getClassId().getId());
-			else
-				writeD(_decoy.getOwner().getBaseClass());
-			
-			writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIRALL));
-			writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
-			writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
-			writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
-			writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
-			writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
-			writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
-			writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET));
-			writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_BACK));
-			writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LRHAND));
-			writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
-			writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR2));
-			
-			// T1 new d's
-			writeD(0x00);
-			writeD(0x00);
-			writeD(0x00);
-			writeD(0x00);
-			writeD(0x00);
-			writeD(0x00);
-			writeD(0x00);
-			writeD(0x00);
-			// end of t1 new d's
-			
-			// c6 new h's
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_RHAND));
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LRHAND));
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
 			
-			// T1 new h's
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
-			writeH(0x00);
 			
-			// end of t1 new h's
-			
-			writeD(_decoy.getOwner().getPvpFlag());
-			writeD(_decoy.getOwner().getKarma());
-			
-			writeD(_mAtkSpd);
-			writeD(_pAtkSpd);
-			
-			writeD(_decoy.getOwner().getPvpFlag());
-			writeD(_decoy.getOwner().getKarma());
-			
-			writeD(_runSpd);
-			writeD(_walkSpd);
-			writeD(50); // swimspeed
-			writeD(50); // swimspeed
-			writeD(_flRunSpd);
-			writeD(_flWalkSpd);
-			writeD(_flyRunSpd);
-			writeD(_flyWalkSpd);
-			writeF(_decoy.getOwner().getMovementSpeedMultiplier()); //_activeChar.getProperMultiplier
-																	// ()
-			writeF(_decoy.getOwner().getAttackSpeedMultiplier()); // _activeChar.
-																  // getAttackSpeedMultiplier
-			// ()
-			L2Summon pet = _decoy.getPet();
-			L2Transformation trans;
-			if (_decoy.getOwner().getMountType() != 0 && pet != null)
-			{
-				writeF(pet.getTemplate().collisionRadius);
-				writeF(pet.getTemplate().collisionHeight);
-			}
-			else if ((trans = _decoy.getOwner().getTransformation()) != null)
-			{
-				writeF(trans.getCollisionRadius());
-				writeF(trans.getCollisionHeight());
-			}
-			else
+			if (_idTemplate < 13071 || _idTemplate > 13076)
 			{
-				writeF(_decoy.getOwner().getBaseTemplate().collisionRadius);
-				writeF(_decoy.getOwner().getBaseTemplate().collisionHeight);
+				if (Config.ASSERT)
+					throw new AssertionError("Using DecoyInfo packet with an unsupported decoy template: "+_idTemplate);
+				else
+					throw new IllegalArgumentException("Using DecoyInfo packet with an unsupported decoy template: "+_idTemplate);
 			}
 			
-			writeD(_decoy.getOwner().getAppearance().getHairStyle());
-			writeD(_decoy.getOwner().getAppearance().getHairColor());
-			writeD(_decoy.getOwner().getAppearance().getFace());
-			
-			writeS(_decoy.getOwner().getAppearance().getVisibleTitle());
-			
-			writeD(_decoy.getOwner().getClanId());
-			writeD(_decoy.getOwner().getClanCrestId());
-			writeD(_decoy.getOwner().getAllyId());
-			writeD(_decoy.getOwner().getAllyCrestId());
-			// In UserInfo leader rights and siege flags, but here found nothing??
-			// Therefore RelationChanged packet with that info is required
-			writeD(0);
-			
-			writeC(_decoy.getOwner().isSitting() ? 0 : 1); // standing = 1 sitting = 0
-			writeC(_decoy.getOwner().isRunning() ? 1 : 0); // running = 1 walking = 0
-			writeC(_decoy.getOwner().isInCombat() ? 1 : 0);
-			writeC(_decoy.getOwner().isAlikeDead() ? 1 : 0);
-			
-			writeC(_decoy.getOwner().getAppearance().getInvisible() ? 1 : 0); // invisible = 1
-																			  // visible
-			// =0
-			
-			writeC(_decoy.getOwner().getMountType()); // 1 on strider 2 on wyvern 3 on Great Wolf 0
-													  // no
-			// mount
-			writeC(_decoy.getOwner().getPrivateStoreType()); // 1 - sellshop
-			
-			writeH(_decoy.getOwner().getCubics().size());
-			for (int id : _decoy.getOwner().getCubics().keySet())
-				writeH(id);
 			
-			writeC(0x00); // find party members
-			
-			writeD(_decoy.getOwner().getAbnormalEffect());
-			
-			writeC(_decoy.getOwner().getRecomLeft()); // Changed by Thorgrim
-			writeH(_decoy.getOwner().getRecomHave()); // Blue value for name (0 = white, 255 = pure
-			// blue)
-			writeD(_decoy.getOwner().getClassId().getId());
-			
-			writeD(_decoy.getOwner().getMaxCp());
-			writeD((int) _decoy.getOwner().getCurrentCp());
-			writeC(_decoy.getOwner().isMounted() ? 0 : _decoy.getOwner().getEnchantEffect());
-			
-			if (_decoy.getOwner().getTeam() == 1)
-				writeC(0x01); // team circle around feet 1= Blue, 2 = red
-			else if (_decoy.getOwner().getTeam() == 2)
-				writeC(0x02); // team circle around feet 1= Blue, 2 = red
-			else
-				writeC(0x00); // team circle around feet 1= Blue, 2 = red
+		}
+		
+		@Override
+		protected void writeImpl()
+		{
+			  writeC(0x31);
+	            writeD(_x);
+	            writeD(_y);
+	            writeD(_z);
+	            writeD(_heading);
+	            writeD(_decoy.getObjectId());
+	            writeS(_decoy.getOwner().getAppearance().getVisibleName());
+	            writeD(_decoy.getOwner().getRace().ordinal());
+	            writeD(_decoy.getOwner().getAppearance().getSex()? 1 : 0);
+
+	            if (_decoy.getOwner().getClassIndex() == 0)
+	                writeD(_decoy.getOwner().getClassId().getId());
+	            else
+	                writeD(_decoy.getOwner().getBaseClass());
+
+	            writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIRALL));
+	            writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
+	            writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
+	            writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
+	            writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
+	            writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
+	            writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
+	            writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET));
+	            writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_BACK));
+	            writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LRHAND));
+	            writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
+	            writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR2));
+	            
+				// T1 new d's
+				writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RBRACELET));
+				writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LBRACELET));
+				writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO1));
+				writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO2));
+				writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO3));
+				writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO4));
+				writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO5));
+				writeD(_decoy.getOwner().getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO6));
+				// end of t1 new d's
+				// CT2.3
+				writeD(0x00); 
 				
-			writeD(_decoy.getOwner().getClanCrestLargeId());
-			writeC(_decoy.getOwner().isNoble() ? 1 : 0); // Symbol on char menu ctrl+I
-			writeC(_decoy.getOwner().isHero() ? 1 : 0); // Hero Aura
-			
-			writeC(_decoy.getOwner().isFishing() ? 1 : 0); // 0x01: Fishing Mode (Cant be undone by
-			// setting back to 0)
-			writeD(_decoy.getOwner().getFishx());
-			writeD(_decoy.getOwner().getFishy());
-			writeD(_decoy.getOwner().getFishz());
-			
-			writeD(_decoy.getOwner().getAppearance().getNameColor());
-			
-			writeD(0x00); // isRunning() as in UserInfo?
-			
-			writeD(_decoy.getOwner().getPledgeClass());
-			writeD(0x00); // ??
-			
-			writeD(_decoy.getOwner().getAppearance().getTitleColor());
-			
-			// writeD(0x00); // ??
-			
-			if (_decoy.getOwner().isCursedWeaponEquipped())
-				writeD(CursedWeaponsManager.getInstance().getLevel(_decoy.getOwner().getCursedWeaponEquippedId()));
-			else
+				
+				// c6 new h's
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_UNDER));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_HEAD));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_RHAND));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LHAND));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_GLOVES));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_CHEST));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LEGS));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_FEET));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_BACK));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LRHAND));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_HAIR));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_HAIR2));
+				// T1 new h's
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_RBRACELET));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LBRACELET));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO1));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO2));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO3));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO4));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO5));
+				writeD(_decoy.getOwner().getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO6));
+
+				// end of t1 new h's
+				// CT2.3
+				writeD(0x00); 
 				writeD(0x00);
-			
-			// T1
-			writeD(0x00);
-			
-			writeD(_decoy.getOwner().getTransformationId());
+				writeD(0x00);
+	            
+	            
+	            writeD(_decoy.getOwner().getPvpFlag());
+	            writeD(_decoy.getOwner().getKarma());
+
+	            writeD(_mAtkSpd);
+	            writeD(_pAtkSpd);
+
+	            writeD(_decoy.getOwner().getPvpFlag());
+	            writeD(_decoy.getOwner().getKarma());
+
+	            writeD(_runSpd);
+	            writeD(_walkSpd);
+	            writeD(50);  // swimspeed
+	            writeD(50);  // swimspeed
+	            writeD(_flRunSpd);
+	            writeD(_flWalkSpd);
+	            writeD(_flyRunSpd);
+	            writeD(_flyWalkSpd);
+	            writeF(_decoy.getOwner().getMovementSpeedMultiplier()); // _activeChar.getProperMultiplier()
+	            writeF(_decoy.getOwner().getAttackSpeedMultiplier()); // _activeChar.getAttackSpeedMultiplier()
+	             L2Summon pet = _decoy.getPet(); 
+	                L2Transformation trans; 
+	                if (_decoy.getOwner().getMountType() != 0 && pet != null) 
+	                { 
+	                    writeF(pet.getTemplate().collisionRadius); 
+	                    writeF(pet.getTemplate().collisionHeight); 
+	                } 
+	                else if ((trans = _decoy.getOwner().getTransformation()) != null) 
+	                { 
+	                    writeF(trans.getCollisionRadius()); 
+	                    writeF(trans.getCollisionHeight()); 
+	                } 
+	                else 
+	                { 
+	                    writeF(_decoy.getOwner().getBaseTemplate().collisionRadius); 
+	                    writeF(_decoy.getOwner().getBaseTemplate().collisionHeight); 
+	                } 
+
+	            writeD(_decoy.getOwner().getAppearance().getHairStyle());
+	            writeD(_decoy.getOwner().getAppearance().getHairColor());
+	            writeD(_decoy.getOwner().getAppearance().getFace());
+
+	            writeS(_decoy.getOwner().getAppearance().getVisibleTitle());
+
+	            writeD(_decoy.getOwner().getClanId());
+	            writeD(_decoy.getOwner().getClanCrestId());
+	            writeD(_decoy.getOwner().getAllyId());
+	            writeD(_decoy.getOwner().getAllyCrestId());
+	            // In UserInfo leader rights and siege flags, but here found nothing??
+	            // Therefore RelationChanged packet with that info is required
+	            writeD(0);
+
+	            writeC(_decoy.getOwner().isSitting() ? 0 : 1);    // standing = 1  sitting = 0
+	            writeC(_decoy.getOwner().isRunning() ? 1 : 0);    // running = 1   walking = 0
+	            writeC(_decoy.getOwner().isInCombat() ? 1 : 0);
+	            writeC(_decoy.getOwner().isAlikeDead() ? 1 : 0);
+
+	            writeC(_decoy.getOwner().getAppearance().getInvisible() ? 1 : 0); // invisible = 1  visible =0
+
+	            writeC(_decoy.getOwner().getMountType()); // 1 on strider   2 on wyvern  3 on Great Wolf  0 no mount
+	            writeC(_decoy.getOwner().getPrivateStoreType());   //  1 - sellshop
+
+	            writeH(_decoy.getOwner().getCubics().size());
+	            for (int id : _decoy.getOwner().getCubics().keySet())
+	                writeH(id);
+
+	            writeC(0x00);   // find party members
+
+	            writeD(_decoy.getOwner().getAbnormalEffect());
+
+	            writeC(_decoy.getOwner().getRecomLeft());                       //Changed by Thorgrim
+	            writeH(_decoy.getOwner().getRecomHave()); //Blue value for name (0 = white, 255 = pure blue)
+	            writeD(_decoy.getOwner().getClassId().getId());
+
+	            writeD(_decoy.getOwner().getMaxCp());
+	            writeD((int) _decoy.getOwner().getCurrentCp());
+	            writeC(_decoy.getOwner().isMounted() ? 0 : _decoy.getOwner().getEnchantEffect());
+
+	            if(_decoy.getOwner().getTeam()==1)
+	                writeC(0x01); //team circle around feet 1= Blue, 2 = red
+	            else if(_decoy.getOwner().getTeam()==2)
+	                writeC(0x02); //team circle around feet 1= Blue, 2 = red
+	            else
+	                writeC(0x00); //team circle around feet 1= Blue, 2 = red
+
+	            writeD(_decoy.getOwner().getClanCrestLargeId());
+	            writeC(_decoy.getOwner().isNoble() ? 1 : 0); // Symbol on char menu ctrl+I
+	            writeC(_decoy.getOwner().isHero() ? 1 : 0); // Hero Aura
+
+	            writeC(_decoy.getOwner().isFishing() ? 1 : 0); //0x01: Fishing Mode (Cant be undone by setting back to 0)
+	            writeD(_decoy.getOwner().getFishx());
+	            writeD(_decoy.getOwner().getFishy());
+	            writeD(_decoy.getOwner().getFishz());
+
+	            writeD(_decoy.getOwner().getAppearance().getNameColor());
+
+	            writeD(0x00); // isRunning() as in UserInfo?
+
+	            writeD(_decoy.getOwner().getPledgeClass());
+	            writeD(0x00); // ??
+
+	            writeD(_decoy.getOwner().getAppearance().getTitleColor());
+
+	            //writeD(0x00); // ??
+
+	            if (_decoy.getOwner().isCursedWeaponEquipped())
+	                writeD(CursedWeaponsManager.getInstance().getLevel(_decoy.getOwner().getCursedWeaponEquippedId()));
+	            else
+	                writeD(0x00);
+	            
+	            // T1 
+	            writeD(0x00); 
+	            
+	            writeD(_decoy.getOwner().getTransformationId()); 
 		}
 	}
 	
@@ -497,6 +487,8 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 	{
 		private L2Summon _summon;
 		private int _form = 0;
+		private int _val = 0;
+
 		
 		public SummonInfo(L2Summon cha, L2Character attacker, int val)
 		{
@@ -533,7 +525,10 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 			_name = cha.getName();
 	        _title = cha.getOwner() != null ? (cha.getOwner().isOnline() == 0 ? "" : cha.getOwner().getName()) : ""; // when owner online, summon will show in title owner name
 	        _idTemplate = cha.getTemplate().idTemplate;
-	        
+	        _collisionHeight = cha.getTemplate().collisionHeight;
+	        _collisionRadius = cha.getTemplate().collisionRadius;
+	        _invisible = cha.getOwner() != null ? cha.getOwner().getAppearance().getInvisible() : false;
+
 			// few fields needing fix from AbstractNpcInfo
 			_runSpd = cha.getPetSpeed();
 			_walkSpd = cha.isMountable() ? 45 : 30;
@@ -544,9 +539,14 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 		@Override
 		protected void writeImpl()
 		{
-			if (_summon.getOwner() != null && _summon.getOwner().getAppearance().getInvisible())
-				return; // TODO get his out of here
-	        
+			boolean gmSeeInvis = false;
+			if (_invisible)
+			{
+				L2PcInstance tmp = getClient().getActiveChar();
+				if (tmp != null && tmp.isGM())
+					gmSeeInvis = true;
+			}
+
 			writeC(0x0c);
 			writeD(_summon.getObjectId());
 			writeD(_idTemplate+1000000);  // npctype id
@@ -574,10 +574,10 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 			writeD(_chest);
 			writeD(_lhand); // left hand weapon
 			writeC(1);	// name above char 1=true ... ??
-			writeC(1);
+			writeC(1); // always running 1=running 0=walking
 			writeC(_summon.isInCombat() ? 1 : 0);
 			writeC(_summon.isAlikeDead() ? 1 : 0);
-			writeC(_isSummoned ? 2 : _val); //  0=teleported  1=default   2=summoned
+			writeC(_val); //  0=teleported  1=default   2=summoned
 			writeS(_name);
 			writeS(_title);
 			writeD(0x01);// Title color 0=client default
@@ -585,9 +585,12 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 			writeD(0);
 			writeD(_summon.getOwner().getPvpFlag());
 
-			writeD(_summon.getAbnormalEffect());  // C2
-			writeD(0x01);
-			writeD(0000);  // C2
+			if (gmSeeInvis)
+				writeD(_summon.getAbnormalEffect() | L2Character.ABNORMAL_EFFECT_STEALTH);
+			else
+				writeD(_summon.getAbnormalEffect());  // C2
+			writeD(0x00); //clan id
+			writeD(0x00); //crest id
 			writeD(0000);  // C2
 			writeD(0000);  // C2
 			writeC(0000);  // C2
@@ -600,6 +603,10 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 			writeD(0x00);  // C6
 			writeD(0x00);
 	        writeD(_form);//CT1.5 Pet form and skills
+	        writeC(0x01);
+            writeC(0x01);
+            writeD(0x00);
+	        
 		}
 	}
 }

+ 2 - 2
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/AcquireSkillInfo.java

@@ -28,7 +28,7 @@ import javolution.util.FastList;
  * 05000000 47040000 0100000 000000000	   1 x spellbook advanced ATTACK                                                 .
  * </code>
  *
- * format   ddd d (dddd)
+ * format   dddd d (ddQd)
  *
  * @version $Revision: 1.3.2.1.2.4 $ $Date: 2005/03/27 15:29:39 $
  */
@@ -83,7 +83,7 @@ public class AcquireSkillInfo extends L2GameServerPacket
 		{
 			writeD(temp.type);
 			writeD(temp.itemId);
-			writeD(temp.count);
+			writeQ(temp.count);
 			writeD(temp.unk);
 		}
 	}

+ 7 - 3
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/AcquireSkillList.java

@@ -45,9 +45,13 @@ public final class AcquireSkillList extends L2GameServerPacket
 	//private static Logger _log = Logger.getLogger(AquireSkillList.class.getName());
     public enum SkillType
     {
-    	Usual,
-    	Fishing,
-    	Clan
+    	Usual, // 0
+    	Fishing, // 1
+    	Clan, // 2
+    	unk3,
+    	unk4,
+    	unk5,
+    	Special // 6
     }
 
 	private static final String _S__A3_AQUIRESKILLLIST = "[S] 90 AquireSkillList";

+ 22 - 6
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/Attack.java

@@ -57,13 +57,17 @@ public class Attack extends L2GameServerPacket
 	private int _x;
 	private int _y;
 	private int _z;
+	private int _tx;
+	private int _ty;
+	private int _tz;
+	L2Object _defender;
 	private Hit[] _hits;
 
 	/**
 	 * @param attacker the attacker L2Character
 	 * @param ss true if useing SoulShots
 	 */
-	public Attack(L2Character attacker, boolean ss, int grade)
+	public Attack(L2Character attacker, L2Object target, boolean ss, int grade)
 	{
 		_attackerObjId = attacker.getObjectId();
 		soulshot = ss;
@@ -71,6 +75,10 @@ public class Attack extends L2GameServerPacket
 		_x = attacker.getX();
 		_y = attacker.getY();
 		_z = attacker.getZ();
+		_tx = target.getX();
+		_ty = target.getY();
+		_tz = target.getZ();
+		_defender = target;
 		_hits = new Hit[0];
 	}
 
@@ -106,19 +114,27 @@ public class Attack extends L2GameServerPacket
 		writeC(0x33);
 
 		writeD(_attackerObjId);
-		writeD(_hits[0]._targetId);
+		writeD(_defender.getObjectId());
 		writeD(_hits[0]._damage);
 		writeC(_hits[0]._flags);
 		writeD(_x);
 		writeD(_y);
 		writeD(_z);
 		writeH(_hits.length-1);
-		for (Hit temp: _hits)
+		
+		if(_hits.length > 1) // prevent sending useless packet while there is only one target.
 		{
-			writeD(temp._targetId);
-			writeD(temp._damage);
-			writeC(temp._flags);
+			for (Hit temp: _hits)
+			{
+				writeD(temp._targetId);
+				writeD(temp._damage);
+				writeC(temp._flags);
+			}
 		}
+		
+		writeD(_tx);
+		writeD(_ty);
+		writeD(_tz);		
 	}
 
 	/* (non-Javadoc)

+ 9 - 9
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/BuyList.java

@@ -61,17 +61,17 @@ public final class BuyList extends L2GameServerPacket
 	private static final String _S__1D_BUYLIST = "[S] 07 BuyList";
 	private int _listId;
 	private Collection<L2TradeItem> _list;
-	private int _money;
+	private long _money;
 	private double _taxRate = 0;
 
-	public BuyList(L2TradeList list, int currentMoney)
+	public BuyList(L2TradeList list, long currentMoney)
 	{
 		_listId = list.getListId();
 		_list = list.getItems();
 		_money = currentMoney;
 	}
 
-	public BuyList(L2TradeList list, int currentMoney, double taxRate)
+	public BuyList(L2TradeList list, long currentMoney, double taxRate)
 	{
 		_listId = list.getListId();
         _list = list.getItems();
@@ -79,7 +79,7 @@ public final class BuyList extends L2GameServerPacket
 		_taxRate = taxRate;
 	}
 
-	public BuyList(List<L2TradeItem> lst, int listId, int currentMoney)
+	public BuyList(List<L2TradeItem> lst, int listId, long currentMoney)
 	{
 		_listId = listId;
 		_list = lst;
@@ -90,7 +90,7 @@ public final class BuyList extends L2GameServerPacket
 	protected final void writeImpl()
 	{
 		writeC(0x07);
-		writeD(_money);		// current money
+		writeQ(_money);		// current money
 		writeD(_listId);
 
 		writeH(_list.size());
@@ -102,7 +102,7 @@ public final class BuyList extends L2GameServerPacket
 				writeH(item.getTemplate().getType1()); // item type1
 				writeD(0x00); //objectId
 				writeD(item.getItemId());
-				writeD(item.getCurrentCount() <0 ? 0 : item.getCurrentCount());
+				writeQ(item.getCurrentCount() <0 ? 0 : item.getCurrentCount());
 				writeH(item.getTemplate().getType2());	// item type2
 				writeH(0x00);	// ?
 
@@ -122,14 +122,14 @@ public final class BuyList extends L2GameServerPacket
 				}
 
 	            if (item.getItemId() >= 3960 && item.getItemId() <= 4026)//Config.RATE_SIEGE_GUARDS_PRICE-//'
-	                writeD((int)(item.getPrice() * Config.RATE_SIEGE_GUARDS_PRICE * (1 + _taxRate)));
+	                writeQ((int)(item.getPrice() * Config.RATE_SIEGE_GUARDS_PRICE * (1 + _taxRate)));
 	            else
-	                writeD((int)(item.getPrice() * (1 + _taxRate)));
+	                writeQ((int)(item.getPrice() * (1 + _taxRate)));
                 
                 // T1
 				for (byte i = 0; i < 8; i++)
 				{
-					writeD(0x00);
+					writeH(0x00);
 				}
 			}
 		}

+ 5 - 5
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/BuyListSeed.java

@@ -45,9 +45,9 @@ public final class BuyListSeed extends L2GameServerPacket
 
 	private int _manorId;
 	private Collection<L2TradeItem> _list;
-	private int _money;
+	private long _money;
 
-	public BuyListSeed(L2TradeList list, int manorId, int currentMoney)
+	public BuyListSeed(L2TradeList list, int manorId, long currentMoney)
 	{
 		_money  = currentMoney;
 		_manorId = manorId;
@@ -59,7 +59,7 @@ public final class BuyListSeed extends L2GameServerPacket
 	{
 		writeC(0xe9);
 
-		writeD(_money);                                 // current money
+		writeQ(_money);                                 // current money
 		writeD(_manorId);                               // manor id
 
 		writeH(_list.size());                           // list length
@@ -69,10 +69,10 @@ public final class BuyListSeed extends L2GameServerPacket
 			writeH(0x04);                               // item->type1
 			writeD(0x00);                               // objectId
 			writeD(item.getItemId());                   // item id
-			writeD(item.getCurrentCount());             // item count
+			writeQ(item.getCurrentCount());             // item count
 			writeH(0x04);                               // item->type2
 			writeH(0x00);                               // unknown :)
-			writeD(item.getPrice());                    // price
+			writeQ(item.getPrice());                    // price
 		}
 	}
 

+ 20 - 8
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/CharInfo.java

@@ -78,6 +78,7 @@ public class CharInfo extends L2GameServerPacket
     	_walkSpd        = (int)(_activeChar.getWalkSpeed()/_moveMultiplier);    
         _swimRunSpd = _flRunSpd = _flyRunSpd = _runSpd;
         _swimWalkSpd = _flWalkSpd = _flyWalkSpd = _walkSpd;
+        _invisible = cha.getAppearance().getInvisible();
     }
 
 	@Override
@@ -85,13 +86,11 @@ public class CharInfo extends L2GameServerPacket
 	{
 		boolean gmSeeInvis = false;
 
-		if (_activeChar.getAppearance().getInvisible())
+		if (_invisible)
 		{
 			L2PcInstance tmp = getClient().getActiveChar();
 			if (tmp != null && tmp.isGM())
 				gmSeeInvis = true;
-			else
-				return;
 		}
 
 		if (_activeChar.getPoly().isMorphed())
@@ -137,7 +136,7 @@ public class CharInfo extends L2GameServerPacket
 				}
 				else
 				{
-					writeC(_activeChar.getAppearance().getInvisible()? 1 : 0); // invisible ?? 0=false  1=true   2=summoned (only works if model has a summon animation)
+					writeC(_invisible? 1 : 0); // invisible ?? 0=false  1=true   2=summoned (only works if model has a summon animation)
 				}
 
 				writeS(_activeChar.getAppearance().getVisibleName());
@@ -164,8 +163,8 @@ public class CharInfo extends L2GameServerPacket
 					writeD(_activeChar.getAbnormalEffect());  // C2
 				}
 
-				writeD(0);  // C2
-				writeD(0);  // C2
+				writeD(_activeChar.getClanId()); //clan id
+				writeD(_activeChar.getClanCrestId()); //crest id
 				writeD(0);  // C2
 				writeD(0);  // C2
 				writeC(0);  // C2
@@ -175,6 +174,9 @@ public class CharInfo extends L2GameServerPacket
                 writeD(0x00);  // C4
                 writeD(0x00);  // C6
                 writeD(0x00);
+                writeD(0x00);
+    	        writeC(0x01);
+                writeC(0x01);
                 writeD(0x00);
 			}
             else
@@ -220,6 +222,7 @@ public class CharInfo extends L2GameServerPacket
 			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO4));
 			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO5));
 			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DECO6));
+			writeD(0x00); // CT2.3
 			// end of t1 new d's
 			
 			// c6 new h's
@@ -244,7 +247,10 @@ public class CharInfo extends L2GameServerPacket
 			writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO4));
 			writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO5));
 			writeD(_inv.getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO6));
-
+			writeD(0x00); // CT2.3
+			
+			writeD(0x00);
+			writeD(0x00);
 			// end of t1 new h's
 			
 			writeD(_activeChar.getPvpFlag());
@@ -315,7 +321,7 @@ public class CharInfo extends L2GameServerPacket
 			}
 			else
 			{
-				writeC(_activeChar.getAppearance().getInvisible() ? 1 : 0);	// invisible = 1  visible =0
+				writeC(_invisible ? 1 : 0);	// invisible = 1  visible =0
 			}
 
 			writeC(_activeChar.getMountType());	// 1-on Strider, 2-on Wyvern, 3-on Great Wolf, 0-no mount
@@ -385,6 +391,12 @@ public class CharInfo extends L2GameServerPacket
 	        
 	        // T2
 	        writeD(0x01);
+	        
+	        // T2.3
+	        writeD(0x00);
+	        writeD(0x00);
+	        writeD(0x00);
+	        writeD(0x00);
 		}
 	}
 

+ 3 - 2
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/CharSelected.java

@@ -62,7 +62,7 @@ public class CharSelected extends L2GameServerPacket
 		writeQ(_activeChar.getExp());
 		writeD(_activeChar.getLevel());
 		writeD(_activeChar.getKarma());	// thx evill33t
-		writeD(0x0);	//?
+		writeD(_activeChar.getPkKills());
 		writeD(_activeChar.getINT());
 		writeD(_activeChar.getSTR());
 		writeD(_activeChar.getCON());
@@ -70,7 +70,7 @@ public class CharSelected extends L2GameServerPacket
 		writeD(_activeChar.getDEX());
 		writeD(_activeChar.getWIT());
         
-		writeD(0x00);
+		writeD(2158); //?
 		writeD(0x00);
 
 		writeD(_activeChar.getClassId().getId());
@@ -81,6 +81,7 @@ public class CharSelected extends L2GameServerPacket
 		writeD(0x00); 
         
         writeB(new byte[64]);
+        writeD(0x00);
 	}
 
 	/* (non-Javadoc)

+ 20 - 14
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/CharSelectionInfo.java

@@ -14,6 +14,7 @@
  */
 package net.sf.l2j.gameserver.network.serverpackets;
 
+import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.util.List;
@@ -113,9 +114,9 @@ public class CharSelectionInfo extends L2GameServerPacket
             
             writeD(0x01); // active ??
             
-            writeD(0x00); // x
-            writeD(0x00); // y
-            writeD(0x00); // z
+            writeD(charInfoPackage.getX()); // x
+            writeD(charInfoPackage.getY()); // y
+            writeD(charInfoPackage.getZ()); // z
             
             writeF(charInfoPackage.getCurrentHp()); // hp cur
             writeF(charInfoPackage.getCurrentMp()); // mp cur
@@ -127,7 +128,7 @@ public class CharSelectionInfo extends L2GameServerPacket
             writeD(charInfoPackage.getKarma()); // karma
             writeD(charInfoPackage.getPkKills());
             
-            writeD(0x00);
+            writeD(charInfoPackage.getPvPKills());
             writeD(0x00);
             writeD(0x00);
             writeD(0x00);
@@ -153,15 +154,16 @@ public class CharSelectionInfo extends L2GameServerPacket
             writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LRHAND));
             writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
             writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_HAIR2));
-            
             writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_RBRACELET));
             writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_LBRACELET));
-            writeD(0x00);
-            writeD(0x00);
-            writeD(0x00);
-            writeD(0x00);
-            writeD(0x00);
-            writeD(0x00);
+            writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO1));
+            writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO2));
+            writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO3));
+            writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO4));
+            writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO5));
+            writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_DECO6));
+            writeD(charInfoPackage.getPaperdollItemId(Inventory.PAPERDOLL_BELT));
+            
             writeD(charInfoPackage.getHairStyle());
             writeD(charInfoPackage.getHairColor());
             writeD(charInfoPackage.getFace());
@@ -196,7 +198,7 @@ public class CharSelectionInfo extends L2GameServerPacket
         CharSelectInfoPackage charInfopackage;
         List<CharSelectInfoPackage> characterList = new FastList<CharSelectInfoPackage>();
         
-        java.sql.Connection con = null;
+        Connection con = null;
         
         try
         {
@@ -231,7 +233,7 @@ public class CharSelectionInfo extends L2GameServerPacket
     
     private void loadCharacterSubclassInfo(CharSelectInfoPackage charInfopackage, int ObjectId, int activeClassId)
     {
-        java.sql.Connection con = null;
+        Connection con = null;
         
         try
         {
@@ -292,6 +294,7 @@ public class CharSelectionInfo extends L2GameServerPacket
         charInfopackage.setCurrentMp(chardata.getDouble("curmp"));
         charInfopackage.setKarma(chardata.getInt("karma"));
         charInfopackage.setPkKills(chardata.getInt("pkkills"));
+        charInfopackage.setPvPKills(chardata.getInt("pvpkills"));
         charInfopackage.setFace(chardata.getInt("face"));
         charInfopackage.setHairStyle(chardata.getInt("hairstyle"));
         charInfopackage.setHairColor(chardata.getInt("haircolor"));
@@ -306,6 +309,9 @@ public class CharSelectionInfo extends L2GameServerPacket
         final int baseClassId = chardata.getInt("base_class");
         final int activeClassId = chardata.getInt("classid");
         
+        charInfopackage.setX(chardata.getInt("x"));
+        charInfopackage.setY(chardata.getInt("y"));
+        charInfopackage.setZ(chardata.getInt("z"));
         // if is in subclass, load subclass exp, sp, lvl info
         if(baseClassId != activeClassId)
             loadCharacterSubclassInfo(charInfopackage, objectId, activeClassId);
@@ -338,7 +344,7 @@ public class CharSelectionInfo extends L2GameServerPacket
         
         if (weaponObjId > 0)
         {
-            java.sql.Connection con = null;
+            Connection con = null;
             try
             {
                 con = L2DatabaseFactory.getInstance().getConnection();

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/DropItem.java

@@ -69,7 +69,7 @@ public class DropItem extends L2GameServerPacket
 		{
 			writeD(0x00);
 		}
-		writeD(_item.getCount());
+		writeQ(_item.getCount());
 
 		writeD(1); // unknown
 	}

+ 1 - 8
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/EtcStatusUpdate.java

@@ -15,8 +15,6 @@
 package net.sf.l2j.gameserver.network.serverpackets;
 
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
-import net.sf.l2j.gameserver.skills.effects.EffectCharge;
-import net.sf.l2j.gameserver.templates.skills.L2EffectType;
 
 /* Packet format: F3 XX000000 YY000000 ZZ000000 */
 
@@ -29,12 +27,10 @@ public class EtcStatusUpdate extends L2GameServerPacket
 	private static final String _S__F3_ETCSTATUSUPDATE = "[S] f9 EtcStatusUpdate";
 
 	private L2PcInstance _activeChar;
-	private EffectCharge _effect;
 
 	public EtcStatusUpdate(L2PcInstance activeChar)
 	{
 		 _activeChar = activeChar;
-		 _effect = (EffectCharge)_activeChar.getFirstEffect(L2EffectType.CHARGE);
 	}
 
 	/**
@@ -44,10 +40,7 @@ public class EtcStatusUpdate extends L2GameServerPacket
 	protected void writeImpl()
 	{
 		writeC(0xf9); // several icons to a separate line (0 = disabled)
-		if (_effect != null)
-			writeD(_effect.getLevel()); // 1-7 increase force, lvl
-		else
-			writeD(0x00); // 1-7 increase force, lvl
+		writeD(_activeChar.getCharges()); // 1-7 increase force, lvl
 		writeD(_activeChar.getWeightPenalty()); // 1-4 weight penalty, lvl (1=50%, 2=66.6%, 3=80%, 4=100%)
 		writeD((_activeChar.getMessageRefusal() || _activeChar.isChatBanned()) ? 1 : 0); // 1 = block all chat 
 		writeD(0x00); // 1 = danger area

+ 73 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExAirShipInfo.java

@@ -0,0 +1,73 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+import net.sf.l2j.gameserver.model.actor.instance.L2AirShipInstance;
+
+public class ExAirShipInfo extends L2GameServerPacket
+{
+	
+	private static final String _S__FE_60_EXAIRSHIPINFO = "[S] FE:60 ExAirShipInfo";
+	
+	private final int _x, _y, _z, _heading, _objectId, _speed1, _speed2;
+	
+	
+	public ExAirShipInfo(L2AirShipInstance ship)
+	{
+		_x = ship.getX();
+		_y = ship.getY();
+		_z = ship.getZ();
+		_heading = ship.getPosition().getHeading();
+		_objectId = ship.getObjectId();
+		_speed1 = ship.getSpeed1();
+		_speed2 = ship.getSpeed2();
+	}
+
+	@Override
+    protected void writeImpl()
+    {
+	    writeC(0xfe);
+	    writeH(0x60);
+	    
+	    writeD(_objectId);
+	    writeD(_x);
+	    writeD(_y);
+	    writeD(_z);
+	    writeD(_heading);
+	    
+	    
+	    writeD(0x00); // object id of player who control ship
+	    writeD(_speed1);
+	    writeD(_speed2);
+	    
+	    // clan airship related info
+	    writeD(0x00); // owner object id?
+	    writeD(0x00); // 366?
+	    writeD(0x00); // 0
+	    writeD(0x00); // 107:
+	    writeD(0x00); // 348?
+	    writeD(0x00); // 0?
+	    writeD(0x00); // 105?
+	    writeD(0x00); // current fuel
+	    writeD(0x00); // max fuel
+	}
+
+	@Override
+    public String getType()
+    {
+	    return _S__FE_60_EXAIRSHIPINFO;
+    }
+	
+}

+ 54 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExAirShipStopMove.java

@@ -0,0 +1,54 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+import net.sf.l2j.gameserver.model.actor.instance.L2AirShipInstance;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+public class ExAirShipStopMove extends L2GameServerPacket
+{
+	
+	private static final String _S__FE_66_EXAIRSHIPSTOPMOVE = "[S] FE:66 ExAirShipStopMove";
+
+	private final int _playerId, _airShipId, _x, _y, _z;
+	
+	public ExAirShipStopMove (L2PcInstance player, L2AirShipInstance ship, int x, int y, int z)
+	{
+		_playerId = player.getObjectId();
+		_airShipId = ship.getObjectId();
+		_x = x;
+		_y = y;
+		_z = z;
+	}
+
+	@Override
+    protected void writeImpl()
+    {
+	    writeC(0xfe);
+	    writeH(0x66);
+	    
+	    writeD(_airShipId);
+	    writeD(_playerId);	    
+	    writeD(_x);
+	    writeD(_y);
+	    writeD(_z);
+	}
+
+	@Override
+    public String getType()
+    {
+	    return _S__FE_66_EXAIRSHIPSTOPMOVE;
+    }
+}

+ 2 - 2
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExBasicActionList.java

@@ -33,8 +33,8 @@ public final class ExBasicActionList extends L2GameServerPacket
     
     public static int[] getDefaultActionList()
     {
-        int count1 = 66; // 0 <-> (count1 - 1)
-        int count2 = 61; // 1000 <-> (1000 + count2 - 1)
+        int count1 = 71; // 0 <-> (count1 - 1)
+        int count2 = 89; // 1000 <-> (1000 + count2 - 1) //Update by rocknow
         int[] actionIds = new int[count1 + count2];
         
         int index = 0;

+ 7 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExBrExtraUserInfo.java

@@ -29,15 +29,21 @@ public class ExBrExtraUserInfo extends L2GameServerPacket
 	{
 		_charObjId = player.getObjectId();
 		_val = player.getAfroHaircutId();
+		_invisible = player.getAppearance().getInvisible();
 	}
 
 	@Override
+	/**
+	 * This packet should belong to Quest windows, not UserInfo in T3.
+	 */
 	protected final void writeImpl()
 	{
+
 		writeC(0xfe);
-		writeH(0x8d);
+		writeH(0xac);
 		writeD(_charObjId);  //object id of player
 		writeD(_val);  //	afro hair cut
+
 	}
 
 	/* (non-Javadoc)

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExEnchantSkillInfo.java

@@ -98,7 +98,7 @@ public final class ExEnchantSkillInfo extends L2GameServerPacket
             writeD(sede._rate);
             writeD(sede._spCost * _xpSpCostMultiplier);
             writeQ(sede._expCost * _xpSpCostMultiplier);
-            writeD(0); // required item count
+            writeQ(0); // required item count
             writeD(0); // req type?
             writeD(0); // required itemId
             writeD(0); // ?

+ 3 - 3
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExEnchantSkillInfoDetail.java

@@ -24,9 +24,9 @@ package net.sf.l2j.gameserver.network.serverpackets;
 public class ExEnchantSkillInfoDetail extends L2GameServerPacket
 {
     private final int _itemId;
-    private final int _itemCount;
+    private final long _itemCount;
     
-    public ExEnchantSkillInfoDetail(int itemId, int itemCount)
+    public ExEnchantSkillInfoDetail(int itemId, long itemCount)
     {
         _itemId = itemId;
         _itemCount = itemCount;
@@ -56,7 +56,7 @@ public class ExEnchantSkillInfoDetail extends L2GameServerPacket
         writeD(0);
         writeQ(0);
         writeD(0);
-        writeD(_itemCount); // Count
+        writeQ(_itemCount); // Count
         writeD(0);
         writeD(_itemId); // ItemId Required
         writeD(0);

+ 64 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExGetBookMarkInfoPacket.java

@@ -0,0 +1,64 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance.TeleportBookmark;
+
+
+
+/**
+ *
+ * @author ShanSoft
+ * @Structure d dd (ddddSdS)
+ */
+public class ExGetBookMarkInfoPacket extends L2GameServerPacket
+{
+	private static final String _S__FE_84_EXGETBOOKMARKINFOPACKET = "[S] FE:84 ExGetBookMarkInfoPacket";
+	
+	private L2PcInstance player;
+	public ExGetBookMarkInfoPacket(L2PcInstance cha)
+	{
+		player = cha;
+	}
+
+	@Override
+	protected final void writeImpl()
+	{
+		writeC(0xFE);
+		writeH(0x84);
+		writeD(0x00); // Dummy
+		writeD(player._bookmarkslot);
+		writeD(player.tpbookmark.size());
+      
+
+		for (TeleportBookmark tpbm : player.tpbookmark) 
+		{
+			writeD(tpbm._id);
+			writeD(tpbm._x);
+			writeD(tpbm._y);
+			writeD(tpbm._z);
+			writeS(tpbm._name);
+			writeD(tpbm._icon);
+			writeS(tpbm._tag);
+		}
+	}
+
+	@Override
+	public String getType()
+	{
+		return _S__FE_84_EXGETBOOKMARKINFOPACKET;
+	}
+}

+ 55 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExGetOffAirShip.java

@@ -0,0 +1,55 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+import net.sf.l2j.gameserver.model.actor.instance.L2AirShipInstance;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+public class ExGetOffAirShip extends L2GameServerPacket
+{
+	
+	private static final String _S__FE_63_EXGETOFFAIRSHIP = "[S] FE:63 ExGetOffAirShip";
+
+	private final int _playerId, _airShipId, _x, _y, _z;
+	
+	public ExGetOffAirShip(L2PcInstance player, L2AirShipInstance ship, int x, int y, int z)
+	{
+		_playerId = player.getObjectId();
+		_airShipId = ship.getObjectId();
+		_x = x;
+		_y = y;
+		_z = z;
+		player.setXYZ(_x, _y, _z);
+	}
+
+	@Override
+    protected void writeImpl()
+    {
+	    writeC(0xfe);
+	    writeH(0x64);
+	    
+	    writeD(_playerId);
+	    writeD(_airShipId);
+	    writeD(_x);
+	    writeD(_y);
+	    writeD(_z);
+	}
+
+	@Override
+    public String getType()
+    {
+	    return _S__FE_63_EXGETOFFAIRSHIP;
+    }
+}

+ 55 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExGetOnAirShip.java

@@ -0,0 +1,55 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+import net.sf.l2j.gameserver.model.actor.instance.L2AirShipInstance;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+public class ExGetOnAirShip extends L2GameServerPacket
+{
+	
+	private static final String _S__FE_63_EXGETONAIRSHIP = "[S] FE:63 ExGetOnAirShip";
+
+	private final int _playerId, _airShipId, _x, _y, _z;
+	
+	public ExGetOnAirShip(L2PcInstance player, L2AirShipInstance ship)
+	{
+		_playerId = player.getObjectId();
+		_airShipId = ship.getObjectId();
+		_x = ship.getX();
+		_y = ship.getY();
+		_z = ship.getZ();
+		player.setXYZ(_x, _y, _z);
+	}
+
+	@Override
+    protected void writeImpl()
+    {
+	    writeC(0xfe);
+	    writeH(0x63);
+	    
+	    writeD(_playerId);
+	    writeD(_airShipId);
+	    writeD(_x);
+	    writeD(_y);
+	    writeD(_z);
+	}
+
+	@Override
+    public String getType()
+    {
+	    return _S__FE_63_EXGETONAIRSHIP;
+    }
+}

+ 59 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExMoveToLocationAirShip.java

@@ -0,0 +1,59 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+import net.sf.l2j.gameserver.model.actor.instance.L2AirShipInstance;
+
+public class ExMoveToLocationAirShip extends L2GameServerPacket
+{
+	
+	private static final String _S__FE_65_EXAIRSHIPMOVETOLOCATION = "[S] FE:65 ExGetOnAirShip";
+
+	private final int _airShipId;
+	private final int _x, _y, _z, _dx, _dy, _dz;
+	
+	public ExMoveToLocationAirShip(L2AirShipInstance cha, int x, int y, int z)
+	{
+		_airShipId = cha.getObjectId();
+		_x = cha.getX();
+		_y = cha.getY();
+		_z = cha.getZ();
+		_dx = x;
+		_dy = y;
+		_dz = z;
+	}
+	
+	@Override
+    protected void writeImpl()
+    {
+	    writeC(0xfe);
+	    writeH(0x65);
+	    
+	    writeD(_airShipId);
+	    writeD(_dx);
+	    writeD(_dy);
+	    writeD(_dz);
+	    writeD(_x);
+	    writeD(_y);
+	    writeD(_z);
+	}
+	
+	@Override
+    public String getType()
+    {
+	    return _S__FE_65_EXAIRSHIPMOVETOLOCATION;
+    }
+	
+}

+ 70 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExMoveToLocationInAirShip.java

@@ -0,0 +1,70 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+import net.sf.l2j.gameserver.model.L2CharPosition;
+import net.sf.l2j.gameserver.model.actor.L2Character;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+public class ExMoveToLocationInAirShip extends L2GameServerPacket
+{
+	private int _charObjId;
+	private int _airShipId;
+	private L2CharPosition _destination;
+	//private L2CharPosition _origin;
+	/**
+	 * @param actor
+	 * @param destination
+	 * @param origin
+	 */
+	public ExMoveToLocationInAirShip(L2Character actor, L2CharPosition destination)
+	{
+		if (!(actor instanceof L2PcInstance)) return;
+
+		L2PcInstance player = (L2PcInstance)actor;
+
+		if (player.getAirShip() == null) return;
+		
+		_charObjId = actor.getObjectId();
+		_airShipId = player.getAirShip().getObjectId();
+		_destination = destination;
+		//_origin = origin;
+	}
+
+	/* (non-Javadoc)
+	 * @see net.sf.l2j.gameserver.serverpackets.ServerBasePacket#writeImpl()
+	 */
+	@Override
+	protected void writeImpl()
+	{
+		writeC(0xfe);
+		writeH(0x6D);
+        writeD(_charObjId);
+        writeD(_airShipId);
+		writeD(_destination.x);
+		writeD(_destination.y);
+		writeD(_destination.z);
+		writeD(_destination.heading);
+	}
+
+	/* (non-Javadoc)
+	 * @see net.sf.l2j.gameserver.BasePacket#getType()
+	 */
+	@Override
+	public String getType()
+	{
+		return "[S] 6D MoveToLocationInAirShip";
+	}
+}

+ 9 - 5
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExPutCommissionResultForVariationMake.java

@@ -23,18 +23,21 @@ public class ExPutCommissionResultForVariationMake extends L2GameServerPacket
 	private static final String _S__FE_54_EXCONFIRMVARIATIONGEMSTONE = "[S] FE:55 ExPutCommissionResultForVariationMake";
 
 	private int _gemstoneObjId;
+	private int _itemId;
+	private long _gemstoneCount;
 	private int _unk1;
-	private int _gemstoneCount;
 	private int _unk2;
 	private int _unk3;
 
-	public ExPutCommissionResultForVariationMake(int gemstoneObjId, int count)
+	public ExPutCommissionResultForVariationMake(int gemstoneObjId, long count, int itemId)
 	{
 		_gemstoneObjId = gemstoneObjId;
-		_unk1 = 1;
+		_itemId = itemId;
 		_gemstoneCount = count;
-		_unk2 = 1;
+		_unk1 = 0;
+		_unk2 = 0;
 		_unk3 = 1;
+		
 	}
 
 	/**
@@ -46,8 +49,9 @@ public class ExPutCommissionResultForVariationMake extends L2GameServerPacket
 		writeC(0xfe);
 		writeH(0x55);
         writeD(_gemstoneObjId);
+        writeD(_itemId);
+        writeQ(_gemstoneCount);
         writeD(_unk1);
-        writeD(_gemstoneCount);
         writeD(_unk2);
         writeD(_unk3);
 	}

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExPutEnchantTargetItemResult.java

@@ -54,6 +54,6 @@ public class ExPutEnchantTargetItemResult extends L2GameServerPacket
 		writeC(0x87);
 		writeD(_result);
 		writeD(_crystal);
-		writeD(_count);
+		writeQ(_count);
 	}
 }

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExPutIntensiveResultForVariationMake.java

@@ -48,7 +48,7 @@ public class ExPutIntensiveResultForVariationMake extends L2GameServerPacket
 		writeD(_refinerItemObjId);
 		writeD(_lifestoneItemId);
 		writeD(_gemstoneItemId);
-		writeD(_gemstoneCount);
+		writeQ(_gemstoneCount);
 		writeD(_unk2);
 	}
 

+ 4 - 4
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExRpItemLink.java

@@ -49,7 +49,7 @@ public final class ExRpItemLink extends L2GameServerPacket
         // guessing xD
         writeD(_item.getObjectId());
         writeD(_item.getItemId());
-        writeD(_item.getCount());
+        writeQ(_item.getCount());
         writeH(_item.getItem().getType2());
         writeD(_item.getItem().getBodyPart());
         writeH(_item.getEnchantLevel());
@@ -58,11 +58,11 @@ public final class ExRpItemLink extends L2GameServerPacket
         writeD(_item.isAugmented() ? _item.getAugmentation().getAugmentationId() : 0x00);
         writeD(_item.getMana());
         // T1
-        writeD(_item.getAttackElementType());
-        writeD(_item.getAttackElementPower());
+        writeH(_item.getAttackElementType());
+        writeH(_item.getAttackElementPower());
         for (byte i = 0; i < 6; i++)
         {
-            writeD(_item.getElementDefAttr(i));
+            writeH(_item.getElementDefAttr(i));
         }
     }
 }

+ 3 - 3
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowCropInfo.java

@@ -71,9 +71,9 @@ public class ExShowCropInfo extends L2GameServerPacket
 		for (CropProcure crop : _crops)
         {
 			writeD(crop.getId());          // Crop id
-			writeD(crop.getAmount());      // Buy residual
-			writeD(crop.getStartAmount()); // Buy
-			writeD(crop.getPrice());       // Buy price
+			writeD((int)crop.getAmount());      // Buy residual
+			writeD((int)crop.getStartAmount()); // Buy
+			writeD((int)crop.getPrice());       // Buy price
 			writeC(crop.getReward());      // Reward
 			writeD(L2Manor.getInstance().getSeedLevelByCrop(crop.getId())); // Seed Level
 			writeC(1); // rewrad 1 Type

+ 16 - 16
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowCropSetting.java

@@ -39,7 +39,7 @@ public class ExShowCropSetting extends L2GameServerPacket
     
     private int _count;
     
-    private int[] _cropData; // data to send, size:_count*14
+    private long[] _cropData; // data to send, size:_count*14
     
     @Override
     public void runImpl()
@@ -53,7 +53,7 @@ public class ExShowCropSetting extends L2GameServerPacket
         FastList<Integer> crops = L2Manor.getInstance().getCropsForCastle(
                 _manorId);
         _count = crops.size();
-        _cropData = new int[_count * 14];
+        _cropData = new long[_count * 14];
         int i = 0;
         for (int cr : crops)
         {
@@ -109,25 +109,25 @@ public class ExShowCropSetting extends L2GameServerPacket
         
         for (int i = 0; i < _count; i++)
         {
-            writeD(_cropData[i * 14 + 0]); // crop id
-            writeD(_cropData[i * 14 + 1]); // seed level
+            writeD((int) _cropData[i * 14 + 0]); // crop id
+            writeD((int) _cropData[i * 14 + 1]); // seed level
             writeC(1);
-            writeD(_cropData[i * 14 + 2]); // reward 1 id
+            writeD((int) _cropData[i * 14 + 2]); // reward 1 id
             writeC(1);
-            writeD(_cropData[i * 14 + 3]); // reward 2 id
+            writeD((int) _cropData[i * 14 + 3]); // reward 2 id
             
-            writeD(_cropData[i * 14 + 4]); // next sale limit
-            writeD(_cropData[i * 14 + 5]); // ???
-            writeD(_cropData[i * 14 + 6]); // min crop price
-            writeD(_cropData[i * 14 + 7]); // max crop price
+            writeD((int) _cropData[i * 14 + 4]); // next sale limit
+            writeD((int) _cropData[i * 14 + 5]); // ???
+            writeD((int)_cropData[i * 14 + 6]); // min crop price
+            writeD((int)_cropData[i * 14 + 7]); // max crop price
             
-            writeD(_cropData[i * 14 + 8]); // today buy
-            writeD(_cropData[i * 14 + 9]); // today price
-            writeC(_cropData[i * 14 + 10]); // today reward
+            writeQ(_cropData[i * 14 + 8]); // today buy
+            writeQ(_cropData[i * 14 + 9]); // today price
+            writeC((int) _cropData[i * 14 + 10]); // today reward
             
-            writeD(_cropData[i * 14 + 11]); // next buy
-            writeD(_cropData[i * 14 + 12]); // next price
-            writeC(_cropData[i * 14 + 13]); // next reward
+            writeQ(_cropData[i * 14 + 11]); // next buy
+            writeQ(_cropData[i * 14 + 12]); // next price
+            writeC((int) _cropData[i * 14 + 13]); // next reward
         }
     }
     

+ 73 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowDominionRegistry.java

@@ -0,0 +1,73 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+import java.util.Calendar;
+
+/**
+ * format: dSSSdddddddd (dd(d))
+ * @author  GodKratos
+ */
+public class ExShowDominionRegistry extends L2GameServerPacket
+{
+	private int _territoryId;
+	private int _clanReq = 0x00;
+	private int _mercReq = 0x00;
+	private int _warTime = (int) (Calendar.getInstance().getTimeInMillis() / 1000);
+	private int _currentTime = (int) (Calendar.getInstance().getTimeInMillis() / 1000);
+	
+	public ExShowDominionRegistry(int terrId)
+	{
+		_territoryId = terrId;
+	}
+	
+	/**
+     * @see net.sf.l2j.gameserver.network.serverpackets.L2GameServerPacket#getType()
+     */
+    @Override
+    public String getType()
+    {
+        return "[S] FE:90 ExShowDominionRegistry";
+    }
+
+    /**
+     * @see net.sf.l2j.gameserver.network.serverpackets.L2GameServerPacket#writeImpl()
+     */
+    @Override
+    protected void writeImpl()
+    {
+        writeC(0xfe);
+        writeH(0x90);
+        writeD(_territoryId); // Current Territory Id
+        writeS("No Clan");    // Owners Clan
+        writeS("No Owner");   // Owner Clan Leader
+        writeS("No Ally");    // Owner Alliance
+        writeD(_clanReq); // Clan Request
+        writeD(_mercReq); // Merc Request
+        writeD(_warTime); // War Time
+        writeD(_currentTime); // Current Time
+        writeD(0x00); // unknown
+        writeD(0x00); // unknown
+        writeD(0x01); // unknown
+        writeD(0x09); // Territory Count
+        for (int i = 0; i < 9; i++)
+        {
+        	writeD(0x51 + i); // Territory Id
+        	writeD(0x01);     // Emblem Count
+        	writeD(0x51 + i); // Emblem ID - should be in for loop for emblem count
+        }
+    }
+    
+}

+ 3 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowFortressInfo.java

@@ -21,7 +21,9 @@ import net.sf.l2j.gameserver.model.L2Clan;
 import net.sf.l2j.gameserver.model.entity.Fort;
 
 /**
- *
+ * format: d (dSdd)
+ * cnt:%d (fortressID:%d ownerName:%s, siegeState:%d, lastOwnedTime:%d)
+ * 
  * @author  KenM
  */
 public class ExShowFortressInfo extends L2GameServerPacket

+ 2 - 2
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowProcureCropDetail.java

@@ -71,8 +71,8 @@ public class ExShowProcureCropDetail extends L2GameServerPacket
         {
             CropProcure crop = _castleCrops.get(manorId);
             writeD(manorId); // manor name
-            writeD(crop.getAmount()); // buy residual
-            writeD(crop.getPrice()); // buy price
+            writeQ(crop.getAmount()); // buy residual
+            writeQ(crop.getPrice()); // buy price
             writeC(crop.getReward()); // reward type
         }
     }

+ 9 - 9
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSeedInfo.java

@@ -68,15 +68,15 @@ public class ExShowSeedInfo extends L2GameServerPacket {
         writeD(_seeds.size());
         for (SeedProduction seed : _seeds)
         {
-            writeD(seed.getId()); // Seed id
-            writeD(seed.getCanProduce()); // Left to buy
-            writeD(seed.getStartProduce()); // Started amount
-            writeD(seed.getPrice());        // Sell Price
-            writeD(L2Manor.getInstance().getSeedLevel(seed.getId())); // Seed Level
-            writeC(1); // reward 1 Type
-            writeD(L2Manor.getInstance().getRewardItemBySeed(seed.getId(),1)); // Reward 1 Type Item Id
-            writeC(1); // reward 2 Type
-            writeD(L2Manor.getInstance().getRewardItemBySeed(seed.getId(),2)); // Reward 2 Type Item Id
+        	 writeD(seed.getId()); // Seed id
+             writeD((int)seed.getCanProduce()); // Left to buy
+             writeD((int)seed.getStartProduce()); // Started amount
+             writeD((int)seed.getPrice());        // Sell Price
+             writeD(L2Manor.getInstance().getSeedLevel(seed.getId())); // Seed Level
+             writeC(1); // reward 1 Type
+             writeD(L2Manor.getInstance().getRewardItemBySeed(seed.getId(),1)); // Reward 1 Type Item Id
+             writeC(1); // reward 2 Type
+             writeD(L2Manor.getInstance().getRewardItemBySeed(seed.getId(),2)); // Reward 2 Type Item Id
         }
     }
 

+ 15 - 15
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSeedSetting.java

@@ -40,7 +40,7 @@ public class ExShowSeedSetting extends L2GameServerPacket
     
     private int _count;
     
-    private int[] _seedData; // data to send, size:_count*12
+    private long[] _seedData; // data to send, size:_count*12
     
     @Override
     public void runImpl()
@@ -54,7 +54,7 @@ public class ExShowSeedSetting extends L2GameServerPacket
         FastList<Integer> seeds = L2Manor.getInstance().getSeedsForCastle(
                 _manorId);
         _count = seeds.size();
-        _seedData = new int[_count * 12];
+        _seedData = new long[_count * 12];
         int i = 0;
         for (int s : seeds)
         {
@@ -65,7 +65,7 @@ public class ExShowSeedSetting extends L2GameServerPacket
             _seedData[i * 12 + 3] = L2Manor.getInstance().getRewardItemBySeed(
                     s, 2);
             _seedData[i * 12 + 4] = L2Manor.getInstance().getSeedSaleLimit(s);
-            _seedData[i * 12 + 5] = L2Manor.getInstance().getSeedBuyPrice(s);
+            _seedData[i * 12 + 5] = (int)L2Manor.getInstance().getSeedBuyPrice(s);
             _seedData[i * 12 + 6] = L2Manor.getInstance().getSeedBasicPrice(s) * 60 / 100;
             _seedData[i * 12 + 7] = L2Manor.getInstance().getSeedBasicPrice(s) * 10;
             SeedProduction seedPr = c.getSeed(s,
@@ -106,22 +106,22 @@ public class ExShowSeedSetting extends L2GameServerPacket
         
         for (int i = 0; i < _count; i++)
         {
-            writeD(_seedData[i * 12 + 0]); // seed id
-            writeD(_seedData[i * 12 + 1]); // level
+            writeD((int) _seedData[i * 12 + 0]); // seed id
+            writeD((int) _seedData[i * 12 + 1]); // level
             writeC(1);
-            writeD(_seedData[i * 12 + 2]); // reward 1 id
+            writeD((int) _seedData[i * 12 + 2]); // reward 1 id
             writeC(1);
-            writeD(_seedData[i * 12 + 3]); // reward 2 id
+            writeD((int) _seedData[i * 12 + 3]); // reward 2 id
             
-            writeD(_seedData[i * 12 + 4]); // next sale limit
-            writeD(_seedData[i * 12 + 5]); // price for castle to produce 1
-            writeD(_seedData[i * 12 + 6]); // min seed price
-            writeD(_seedData[i * 12 + 7]); // max seed price
+            writeD((int)_seedData[i * 12 + 4]); // next sale limit
+            writeD((int)_seedData[i * 12 + 5]); // price for castle to produce 1
+            writeD((int)_seedData[i * 12 + 6]); // min seed price
+            writeD((int)_seedData[i * 12 + 7]); // max seed price
             
-            writeD(_seedData[i * 12 + 8]); // today sales
-            writeD(_seedData[i * 12 + 9]); // today price
-            writeD(_seedData[i * 12 + 10]); // next sales
-            writeD(_seedData[i * 12 + 11]); // next price
+            writeQ(_seedData[i * 12 + 8]); // today sales
+            writeQ(_seedData[i * 12 + 9]); // today price
+            writeQ(_seedData[i * 12 + 10]); // next sales
+            writeQ(_seedData[i * 12 + 11]); // next price
         }
     }
     

+ 5 - 5
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSellCropList.java

@@ -101,18 +101,18 @@ public class ExShowSellCropList extends L2GameServerPacket
             {
                 CropProcure crop = _castleCrops.get(item.getItemId());
                 writeD(_manorId); // manor
-                writeD(crop.getAmount()); // buy residual
-                writeD(crop.getPrice()); // buy price
+                writeQ(crop.getAmount()); // buy residual
+                writeQ(crop.getPrice()); // buy price
                 writeC(crop.getReward()); // reward
             }
             else
             {
                 writeD(0xFFFFFFFF); // manor
-                writeD(0); // buy residual
-                writeD(0); // buy price
+                writeQ(0); // buy residual
+                writeQ(0); // buy price
                 writeC(0); // reward
             }
-            writeD(item.getCount()); // my crops
+            writeQ(item.getCount()); // my crops
         }
     }
     

+ 52 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExStopMoveAirShip.java

@@ -0,0 +1,52 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+import net.sf.l2j.gameserver.model.actor.instance.L2AirShipInstance;
+/**
+ * @authos kerberos
+ *
+ */
+public class ExStopMoveAirShip extends L2GameServerPacket
+{
+    private L2AirShipInstance _ship;
+
+
+    public ExStopMoveAirShip(L2AirShipInstance ship)
+    {
+    	_ship = ship;
+    }
+
+    @Override
+	protected final void writeImpl()
+    {
+        writeC(0xfe);
+        writeH(0x66);
+        writeD(_ship.getObjectId());
+        writeD(_ship.getX());
+        writeD(_ship.getY());
+        writeD(_ship.getZ());
+        writeD(_ship.getHeading());
+    }
+
+    /* (non-Javadoc)
+     * @see net.sf.l2j.gameserver.serverpackets.ServerBasePacket#getType()
+     */
+    @Override
+	public String getType()
+    {
+        return "[S] FE:66 ExStopMoveAirShip";
+    }
+}

+ 56 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExStopMoveInAirShip.java

@@ -0,0 +1,56 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+import net.sf.l2j.gameserver.model.actor.instance.L2AirShipInstance;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+/**
+ * @authos kerberos
+ *
+ */
+public class ExStopMoveInAirShip extends L2GameServerPacket
+{
+	private L2PcInstance _activeChar;
+    private L2AirShipInstance _ship;
+
+
+    public ExStopMoveInAirShip(L2PcInstance player, L2AirShipInstance ship)
+    {
+    	_activeChar = player;
+    	_ship = ship;
+    }
+
+    @Override
+	protected final void writeImpl()
+    {
+        writeC(0xfe);
+        writeH(0x6e);
+        writeD(_activeChar.getObjectId());
+        writeD(_ship.getObjectId());
+        writeD(_activeChar.getX());
+        writeD(_activeChar.getY());
+        writeD(_activeChar.getZ());
+        writeD(_activeChar.getHeading());
+    }
+
+    /* (non-Javadoc)
+     * @see net.sf.l2j.gameserver.serverpackets.ServerBasePacket#getType()
+     */
+    @Override
+	public String getType()
+    {
+        return "[S] FE:6e ExStopMoveAirShip";
+    }
+}

+ 5 - 4
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExStorageMaxCount.java

@@ -14,6 +14,7 @@
  */
 package net.sf.l2j.gameserver.network.serverpackets;
 
+import net.sf.l2j.Config;
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 
 /**
@@ -34,7 +35,7 @@ public class ExStorageMaxCount extends L2GameServerPacket
 	private L2PcInstance _activeChar;
 	private int _inventory;
 	private int _warehouse;
-	private int _freight;
+	private int _clan;
 	private int _privateSell;
 	private int _privateBuy;
 	private int _receipeD;
@@ -47,7 +48,7 @@ public class ExStorageMaxCount extends L2GameServerPacket
         _warehouse = _activeChar.getWareHouseLimit();
 		_privateSell = _activeChar.getPrivateSellStoreLimit();
 		_privateBuy = _activeChar.getPrivateBuyStoreLimit();
-		_freight = _activeChar.getFreightLimit();
+		_clan = Config.WAREHOUSE_SLOTS_CLAN;
 		_receipeD = _activeChar.getDwarfRecipeLimit();
 		_recipe = _activeChar.getCommonRecipeLimit();
 	}
@@ -63,12 +64,12 @@ public class ExStorageMaxCount extends L2GameServerPacket
 
 		writeD(_inventory);
 		writeD(_warehouse);
-		writeD(_freight);
+		writeD(_clan);
 		writeD(_privateSell);
 		writeD(_privateBuy);
 		writeD(_receipeD);
 		writeD(_recipe);
-
+		writeD(0x00);
 	}
 
 	/* (non-Javadoc)

+ 57 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExValidateLocationInAirShip.java

@@ -0,0 +1,57 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+import net.sf.l2j.gameserver.model.actor.L2Character;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+/**
+ * @authos kerberos
+ *
+ */
+public class ExValidateLocationInAirShip extends L2GameServerPacket
+{
+    private L2PcInstance _activeChar;
+
+    public ExValidateLocationInAirShip(L2Character player)
+    {
+    	if (!(player instanceof L2PcInstance)) return;
+
+		_activeChar = (L2PcInstance)player;
+
+		if (_activeChar.getAirShip() == null) return;
+    }
+
+    @Override
+	protected final void writeImpl()
+    {
+        writeC(0xfe);
+        writeH(0x6F);
+        writeD(_activeChar.getObjectId());
+        writeD(_activeChar.getAirShip().getObjectId());
+        writeD(_activeChar.getX());
+        writeD(_activeChar.getY());
+        writeD(_activeChar.getZ());
+        writeD(_activeChar.getHeading());
+    }
+
+    /* (non-Javadoc)
+     * @see net.sf.l2j.gameserver.serverpackets.ServerBasePacket#getType()
+     */
+    @Override
+	public String getType()
+    {
+        return "[S] FE:6F ExValidateLocationInAirShip";
+    }
+}

+ 50 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExVitalityPointInfo.java

@@ -0,0 +1,50 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+/**
+ * format: d
+ * @author  GodKratos
+ */
+public class ExVitalityPointInfo extends L2GameServerPacket
+{
+	private static final String _S__FE_A0_EXVITALITYPOINTINFO = "[S] FE:A0 ExVitalityPointInfo";
+	private int _vitalityPoints;
+
+	public ExVitalityPointInfo(int vitPoints)
+	{
+		_vitalityPoints = vitPoints;
+	}
+
+    /* (non-Javadoc)
+     * @see net.sf.l2j.gameserver.serverpackets.ServerBasePacket#writeImpl()
+     */
+    @Override
+	protected void writeImpl()
+    {
+        writeC(0xfe);
+        writeH(0xa0);
+        writeD(_vitalityPoints);
+    }
+
+    /* (non-Javadoc)
+     * @see net.sf.l2j.gameserver.BasePacket#getType()
+     */
+    @Override
+    public String getType()
+    {
+        return _S__FE_A0_EXVITALITYPOINTINFO;
+    }
+}

+ 13 - 8
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/GMViewCharacterInfo.java

@@ -99,6 +99,7 @@ public class GMViewCharacterInfo extends L2GameServerPacket
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO4));
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO5));
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO6));
+        writeD(0); // T3 Unknown 
         // end of T1 new D's
         
 		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIRALL));
@@ -127,6 +128,9 @@ public class GMViewCharacterInfo extends L2GameServerPacket
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO4));
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO5));
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO6));
+        writeD(0); // T3 Unknown 
+        writeD(0); // T3 Unknown 
+        writeD(0); // T3 Unknown 
         // end of T1 new D's
         
         // c6 new h's
@@ -246,14 +250,15 @@ public class GMViewCharacterInfo extends L2GameServerPacket
         writeD(_activeChar.getAppearance().getNameColor());
         writeD(_activeChar.getAppearance().getTitleColor());
         
-        writeD(_activeChar.getAttackElement());
-        writeD(_activeChar.getAttackElementValue());
-        writeD(_activeChar.getDefAttrFire());
-        writeD(_activeChar.getDefAttrWater());
-        writeD(_activeChar.getDefAttrWind());
-        writeD(_activeChar.getDefAttrEarth());
-        writeD(_activeChar.getDefAttrHoly());
-        writeD(_activeChar.getDefAttrUnholy());
+        int attackAttribute = _activeChar.getAttackElement();
+		writeH(attackAttribute);
+		writeH(_activeChar.getAttackElementValue(attackAttribute));
+        writeH(_activeChar.getDefAttrFire());
+        writeH(_activeChar.getDefAttrWater());
+        writeH(_activeChar.getDefAttrWind());
+        writeH(_activeChar.getDefAttrEarth());
+        writeH(_activeChar.getDefAttrHoly());
+        writeH(_activeChar.getDefAttrUnholy());
 	}
 
 	/* (non-Javadoc)

+ 5 - 5
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/GMViewItemList.java

@@ -55,7 +55,7 @@ public class GMViewItemList extends L2GameServerPacket
 			writeD(temp.getObjectId());
 			writeD(temp.getItemId());
 			writeD(temp.getLocationSlot()); // T1
-			writeD(temp.getCount());
+			writeQ(temp.getCount());
 			writeH(temp.getItem().getType2());
 			writeH(temp.getCustomType1());
 			writeH(temp.isEquipped() ? 0x01 : 0x00);
@@ -69,14 +69,14 @@ public class GMViewItemList extends L2GameServerPacket
 			writeD(temp.getMana());
 			
 			// T1
-			writeD(temp.getAttackElementType());
-			writeD(temp.getAttackElementPower());
+			writeH(temp.getAttackElementType());
+			writeH(temp.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(temp.getElementDefAttr(i));
+				writeH(temp.getElementDefAttr(i));
 			}
 			// T2
-			writeD(0x00);
+			writeD(temp.isTimeLimitedItem() ? (int) (temp.getRemainingTime()/1000) : -1);
 		}
 	}
 	

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/GMViewPledgeInfo.java

@@ -58,7 +58,7 @@ public class GMViewPledgeInfo extends L2GameServerPacket
 		writeS(_clan.getAllyName()); //c2
 		writeD(_clan.getAllyCrestId()); //c2
 		writeD(_clan.isAtWar()? 1 : 0); //c3
-
+		writeD(0); // T3 Unknown 
 		writeD(_clan.getMembers().length);
 
 		for (L2ClanMember member : _clan.getMembers())

+ 4 - 4
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/GMViewWarehouseWithdrawList.java

@@ -29,7 +29,7 @@ public class GMViewWarehouseWithdrawList extends L2GameServerPacket
 	private L2ItemInstance[] _items;
 	private String _playerName;
 	private L2PcInstance _activeChar;
-	private int _money;
+	private long _money;
 	
 	public GMViewWarehouseWithdrawList(L2PcInstance cha)
 	{
@@ -44,7 +44,7 @@ public class GMViewWarehouseWithdrawList extends L2GameServerPacket
 	{
 		writeC(0x9b);
 		writeS(_playerName);
-		writeD(_money);
+		writeQ(_money);
 		writeH(_items.length);
 		
 		for (L2ItemInstance item : _items)
@@ -53,7 +53,7 @@ public class GMViewWarehouseWithdrawList extends L2GameServerPacket
 			
 			writeD(item.getObjectId());
 			writeD(item.getItemId());
-			writeD(item.getCount());
+			writeQ(item.getCount());
 			writeH(item.getItem().getType2());
 			writeH(item.getCustomType1());
 			
@@ -94,7 +94,7 @@ public class GMViewWarehouseWithdrawList extends L2GameServerPacket
 			
 			writeD(item.getMana());
 			// T2
-			writeD(0x00);
+			writeD(item.isTimeLimitedItem() ? (int) (item.getRemainingTime()/1000) : -1);
 		}
 	}
 	

+ 5 - 5
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/HennaEquipList.java

@@ -38,7 +38,7 @@ public class HennaEquipList extends L2GameServerPacket
 	protected final void writeImpl()
     {
         writeC(0xee);
-        writeD(_player.getAdena());          //activeChar current amount of aden
+        writeQ(_player.getAdena());          //activeChar current amount of aden
         writeD(3);     //available equip slot
         //writeD(10);    // total amount of symbol available which depends on difference classes
         writeD(_hennaEquipList.length);
@@ -53,16 +53,16 @@ public class HennaEquipList extends L2GameServerPacket
             {
                 writeD(temp.getSymbolId()); //symbolId
                 writeD(temp.getItemIdDye());       //itemId of dye
-                writeD(temp.getAmountDyeRequire());    //amount of dye require
-                writeD(temp.getPrice());    //amount of adena required
+                writeQ(temp.getAmountDyeRequire());    //amount of dye require
+                writeQ(temp.getPrice());    //amount of adena required
                 writeD(1);            //meet the requirement or not
             }
             else
             {
                 writeD(0x00);
                 writeD(0x00);
-                writeD(0x00);
-                writeD(0x00);
+                writeQ(0x00);
+                writeQ(0x00);
                 writeD(0x00);
             }
         }

+ 3 - 3
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/HennaItemInfo.java

@@ -41,10 +41,10 @@ public class HennaItemInfo extends L2GameServerPacket
         writeC(0xe4);
         writeD(_henna.getSymbolId());          //symbol Id
         writeD(_henna.getItemIdDye());     //item id of dye
-        writeD(_henna.getAmountDyeRequire());    // total amount of dye require
-        writeD(_henna.getPrice());  //total amount of aden require to draw symbol
+        writeQ(_henna.getAmountDyeRequire());    // total amount of dye require
+        writeQ(_henna.getPrice());  //total amount of aden require to draw symbol
         writeD(1);      //able to draw or not 0 is false and 1 is true
-        writeD(_activeChar.getAdena());
+        writeQ(_activeChar.getAdena());
 
         writeD(_activeChar.getINT());   //current INT
         writeC(_activeChar.getINT()+ _henna.getStatINT());    //equip INT

+ 5 - 5
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/InventoryUpdate.java

@@ -129,7 +129,7 @@ public class InventoryUpdate extends L2GameServerPacket
 			writeD(item.getObjectId()); // ObjectId
 			writeD(item.getItem().getItemId()); // ItemId
 			writeD(item.getLocation()); // T1
-			writeD(item.getCount()); // Quantity
+			writeQ(item.getCount()); // Quantity
 			writeH(item.getItem().getType2()); // Item Type 2 : 00-weapon, 01-shield/armor, 02-ring/earring/necklace, 03-questitem, 04-adena, 05-item
 			writeH(item.getCustomType1()); // Filler (always 0)
 			writeH(item.getEquipped()); // Equipped    : 00-No, 01-yes
@@ -140,14 +140,14 @@ public class InventoryUpdate extends L2GameServerPacket
 			writeD(item.getMana());
 			
 			// T1
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 			// T2
-			writeD(0x00);
+			writeD(item.getTime());
 		}
 	}
 	

+ 37 - 26
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ItemList.java

@@ -25,31 +25,44 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
  *
  * sample
  *
- * 27
- * 00 00
- * 01 00 		// item count
- *
- * 04 00 		// itemType1  0-weapon/ring/earring/necklace  1-armor/shield  4-item/questitem/adena
- * c6 37 50 40  // objectId
- * cd 09 00 00  // itemId
- * 05 00 00 00  // count
- * 05 00		// itemType2  0-weapon  1-shield/armor  2-ring/earring/necklace  3-questitem  4-adena  5-item
- * 00 00 		// always 0 ??
- * 00 00 		// equipped 1-yes
- * 00 00 		// slot    0006-lr.ear  0008-neck  0030-lr.finger  0040-head  0080-??  0100-l.hand  0200-gloves  0400-chest  0800-pants  1000-feet  2000-??  4000-r.hand  8000-r.hand
- * 00 00 		// always 0 ??
- * 00 00		// always 0 ??
+ * 11 // packet ID
+ * 00 00 // show window
+ * 15 00 // item count
+ * 
+ * 04 00 // item type id
+ * 
+ * 48 B8 B9 40 // object id
+ * 47 09 00 00 //item id
+ * 0C 00 00 00 // location slot
+ * 01 00 00 00 00 00 00 00 // amount
+ * 05 00 // item type 2
+ * 00 00 // custom type 1
+ * 00 00 // is equipped?
+ * 00 00 00 00 // body part
+ * 0F 00 // enchant level
+ * 00 00 // custom type 2
+ * 00 00 // augmentation data
+ * 00 00 // augmentation data
+ * FF FF FF FF //mana
+ * FE FF // attack element
+ * 00 00 // attack element power
+ * 00 00 // fire defence element power
+ * 00 00 // water defence element power
+ * 00 00 // wind defence element power
+ * 00 00 // earth defence element power
+ * 00 00 // holy defence element power
+ * 00 00 // unholy defence element power
+ * F1 D8 FF FF // remaining time = -9999
  *
 
- * format   h (h dddhhhh hh)	revision 377
- * format   h (h dddhhhd hh)    revision 415
+ * format   hh (h dddQhhhdhhhhdhhhhhhhhd)
  *
  * @version $Revision: 1.4.2.1.2.4 $ $Date: 2005/03/27 15:29:57 $
  */
 public final class ItemList extends L2GameServerPacket
 {
 	private static Logger _log = Logger.getLogger(ItemList.class.getName());
-	private static final String _S__27_ITEMLIST = "[S] 11 ItemList";
+	private static final String _S__11_ITEMLIST = "[S] 11 ItemList";
 	private L2ItemInstance[] _items;
 	private boolean _showWindow;
 	
@@ -99,13 +112,12 @@ public final class ItemList extends L2GameServerPacket
 			
 			writeD(temp.getObjectId());
 			writeD(temp.getItemId());
-			writeD(temp.getLocationSlot()); // T1
-			writeD(temp.getCount());
+			writeD(temp.getLocationSlot());
+			writeQ(temp.getCount());
 			writeH(temp.getItem().getType2()); // item type2
 			writeH(temp.getCustomType1()); // item type3
 			writeH(temp.isEquipped() ? 0x01 : 0x00);
 			writeD(temp.getItem().getBodyPart());
-			
 			writeH(temp.getEnchantLevel()); // enchant level
 			//race tickets
 			writeH(temp.getCustomType2()); // item type3
@@ -118,14 +130,13 @@ public final class ItemList extends L2GameServerPacket
 			writeD(temp.getMana());
 			
 			// T1
-			writeD(temp.getAttackElementType());
-			writeD(temp.getAttackElementPower());
+			writeH(temp.getAttackElementType());
+			writeH(temp.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(temp.getElementDefAttr(i));
+				writeH(temp.getElementDefAttr(i));
 			}
-			// T2
-			writeD(0x00);
+			writeD(temp.isTimeLimitedItem() ? (int) (temp.getRemainingTime()/1000) : -1);
 		}
 	}
 	
@@ -135,6 +146,6 @@ public final class ItemList extends L2GameServerPacket
 	@Override
 	public String getType()
 	{
-		return _S__27_ITEMLIST;
+		return _S__11_ITEMLIST;
 	}
 }

+ 21 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/L2GameServerPacket.java

@@ -29,6 +29,27 @@ public abstract class L2GameServerPacket extends SendablePacket<L2GameClient>
 {
 	private static final Logger _log = Logger.getLogger(L2GameServerPacket.class.getName());
 
+	protected boolean _invisible = false;
+
+	/**
+	 * 
+	 * @return True if packet originated from invisible character.
+	 */
+	public boolean isInvisible()
+	{
+		return _invisible;
+	}
+
+	/**
+	 * Set "invisible" boolean flag in the packet.
+	 * Packets from invisible characters will not be broadcasted to players.
+	 * @param b
+	 */
+	public void setInvisible(boolean b)
+	{
+		_invisible = b;
+	}
+
 	/**
 	 * @see com.l2jserver.mmocore.network.SendablePacket#write()
 	 */

+ 12 - 2
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/MagicSkillLaunched.java

@@ -45,8 +45,18 @@ public class MagicSkillLaunched extends L2GameServerPacket
 		_charObjId = cha.getObjectId();
 		_skillId = skillId;
 		_skillLevel = skillLevel;
-		_numberOfTargets = targets.length;
-		_targets = targets;
+		
+		if (targets != null)
+		{
+			_numberOfTargets = targets.length;
+			_targets = targets;
+		}
+		else
+		{
+			_numberOfTargets = 1;
+			L2Object[] objs = {cha};
+			_targets = objs;
+		}
 		_singleTargetId = 0;
 	}
 

+ 7 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/MagicSkillUse.java

@@ -36,6 +36,7 @@ public final class MagicSkillUse extends L2GameServerPacket
 	private int _hitTime;
 	private int _reuseDelay;
 	private int _charObjId, _x, _y, _z;
+	private int _flags;
 
 	public MagicSkillUse(L2Character cha, L2Character target, int skillId, int skillLevel, int hitTime, int reuseDelay)
 	{
@@ -48,6 +49,7 @@ public final class MagicSkillUse extends L2GameServerPacket
 		_x = cha.getX();
 		_y = cha.getY();
 		_z = cha.getZ();
+		_flags |= 0x20;
 	}
 
 	public MagicSkillUse(L2Character cha, int skillId, int skillLevel, int hitTime, int reuseDelay)
@@ -61,6 +63,7 @@ public final class MagicSkillUse extends L2GameServerPacket
 		_x = cha.getX();
 		_y = cha.getY();
 		_z = cha.getZ();
+		_flags |= 0x20;
 	}
 
 	@Override
@@ -76,6 +79,7 @@ public final class MagicSkillUse extends L2GameServerPacket
 		writeD(_x);
 		writeD(_y);
 		writeD(_z);
+
 		writeH(0x00); // unknown loop but not AoE
 		writeH(0x00);
 		//for()
@@ -84,6 +88,9 @@ public final class MagicSkillUse extends L2GameServerPacket
 		//	writeH(0x00);
 		//	writeH(0x00);
 		//}
+		writeD(0x00);
+		writeD(0x00);
+		writeD(0x00);
 	}
 
 	/* (non-Javadoc)

+ 7 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/MoveToPawn.java

@@ -33,7 +33,7 @@ public class MoveToPawn extends L2GameServerPacket
 	private int _charObjId;
 	private int _targetId;
 	private int _distance;
-	private int _x, _y, _z;
+	private int _x, _y, _z,_tx,_ty,_tz;
 
 	public MoveToPawn(L2Character cha, L2Character target, int distance)
 	{
@@ -43,6 +43,9 @@ public class MoveToPawn extends L2GameServerPacket
 		_x = cha.getX();
 		_y = cha.getY();
 		_z = cha.getZ();
+		_tx = target.getX();
+		_ty = target.getY();
+		_tz = target.getZ();
 	}
 
 	@Override
@@ -57,6 +60,9 @@ public class MoveToPawn extends L2GameServerPacket
 		writeD(_x);
 		writeD(_y);
 		writeD(_z);
+		writeD(_tx);
+		writeD(_ty);
+		writeD(_tz);
 	}
 
 	/* (non-Javadoc)

+ 48 - 33
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/MultiSellList.java

@@ -28,6 +28,7 @@ import net.sf.l2j.gameserver.datatables.ItemTable;
 import net.sf.l2j.gameserver.model.L2Multisell.MultiSellEntry;
 import net.sf.l2j.gameserver.model.L2Multisell.MultiSellIngredient;
 import net.sf.l2j.gameserver.model.L2Multisell.MultiSellListContainer;
+import net.sf.l2j.gameserver.templates.item.L2Item;
 
 
 /**
@@ -70,57 +71,71 @@ public final class MultiSellList extends L2GameServerPacket
             	writeC(1);
                 writeH(0x00); // C6
                 writeD(0x00); // C6
-                writeD(-2); // T1
-                writeD(0x00); // T1
-                writeD(0x00); // T1
-                writeD(0x00); // T1
-                writeD(0x00); // T1
-                writeD(0x00); // T1
-                writeD(0x00); // T1
-                writeD(0x00); // T1
                 writeD(0x00); // T1
+                writeH(65534); // T1
+                writeH(0x00); // T1
+                writeH(0x00); // T1
+                writeH(0x00); // T1
+                writeH(0x00); // T1
+                writeH(0x00); // T1
+                writeH(0x00); // T1
+                writeH(0x00); // T1
             	writeH(ent.getProducts().size());
             	writeH(ent.getIngredients().size());
 
             	for(MultiSellIngredient i: ent.getProducts())
             	{
-	            	writeD(i.getItemId());
-	            	writeD(ItemTable.getInstance().getTemplate(i.getItemId()).getBodyPart());
-	            	writeH(ItemTable.getInstance().getTemplate(i.getItemId()).getType2());
-	            	writeD(i.getItemCount());
+            		int item = i.getItemId();
+            		int bodyPart = 0;
+            		int type2 = 65535;
+	            	
+	            	if (item > 0)
+	            	{
+	            		L2Item template = ItemTable.getInstance().getTemplate(item);
+	            		if (template != null)
+	            		{
+	            			bodyPart = template.getBodyPart();
+	            			type2 = template.getType2();
+	            		}
+	            	}
+
+	            	writeD(item);
+	            	writeD(bodyPart);
+	            	writeH(type2);
+	            	writeQ(i.getItemCount());
 	        	    writeH(i.getEnchantmentLevel()); //enchtant lvl
 	            	writeD(0x00); // C6
 	            	writeD(0x00); // C6
-                    writeD(-2); // T1
-                    writeD(0x00); // T1
-                    writeD(0x00); // T1
-                    writeD(0x00); // T1
-                    writeD(0x00); // T1
-                    writeD(0x00); // T1
-                    writeD(0x00); // T1
-                    writeD(0x00); // T1
+                    writeH(65534); // T1 element id
+                    writeH(0x00); // T1 element power
+                    writeH(0x00); // T1 fire
+                    writeH(0x00); // T1 water
+                    writeH(0x00); // T1 wind
+                    writeH(0x00); // T1 earth
+                    writeH(0x00); // T1 holy
+                    writeH(0x00); // T1 dark
             	}
 
                 for(MultiSellIngredient i : ent.getIngredients())
                 {
-                	int items = i.getItemId();
+                	int item = i.getItemId();
                 	int typeE = 65535;
-                	if (items != -200 && items != -300)
-                		typeE = ItemTable.getInstance().getTemplate(i.getItemId()).getType2();
-                    writeD(items);      //ID
+                	if (item > 0)
+                		typeE = ItemTable.getInstance().getTemplate(item).getType2();
+                    writeD(item);      //ID
                     writeH(typeE);
-                    writeD(i.getItemCount());	//Count
+                    writeQ(i.getItemCount());	//Count
                     writeH(i.getEnchantmentLevel()); //Enchant Level
                 	writeD(0x00); // C6
                 	writeD(0x00); // C6
-                    writeD(-2); // T1
-                    writeD(0x00); // T1
-                    writeD(0x00); // T1
-                    writeD(0x00); // T1
-                    writeD(0x00); // T1
-                    writeD(0x00); // T1
-                    writeD(0x00); // T1
-                    writeD(0x00); // T1
+                    writeH(65534); // T1
+                    writeH(0x00); // T1
+                    writeH(0x00); // T1
+                    writeH(0x00); // T1
+                    writeH(0x00); // T1
+                    writeH(0x00); // T1
+                    writeH(0x00); // T1
+                    writeH(0x00); // T1
                 }
             }
         }

+ 230 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/NpcQuestHtmlMessage.java

@@ -0,0 +1,230 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+import java.util.logging.Logger;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.cache.HtmCache;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.network.clientpackets.RequestBypassToServer;
+
+
+/**
+ *
+ * the HTML parser in the client knowns these standard and non-standard tags and attributes
+ * VOLUMN
+ * UNKNOWN
+ * UL
+ * U
+ * TT
+ * TR
+ * TITLE
+ * TEXTCODE
+ * TEXTAREA
+ * TD
+ * TABLE
+ * SUP
+ * SUB
+ * STRIKE
+ * SPIN
+ * SELECT
+ * RIGHT
+ * PRE
+ * P
+ * OPTION
+ * OL
+ * MULTIEDIT
+ * LI
+ * LEFT
+ * INPUT
+ * IMG
+ * I
+ * HTML
+ * H7
+ * H6
+ * H5
+ * H4
+ * H3
+ * H2
+ * H1
+ * FONT
+ * EXTEND
+ * EDIT
+ * COMMENT
+ * COMBOBOX
+ * CENTER
+ * BUTTON
+ * BR
+ * BODY
+ * BAR
+ * ADDRESS
+ * A
+ * SEL
+ * LIST
+ * VAR
+ * FORE
+ * READONL
+ * ROWS
+ * VALIGN
+ * FIXWIDTH
+ * BORDERCOLORLI
+ * BORDERCOLORDA
+ * BORDERCOLOR
+ * BORDER
+ * BGCOLOR
+ * BACKGROUND
+ * ALIGN
+ * VALU
+ * READONLY
+ * MULTIPLE
+ * SELECTED
+ * TYP
+ * TYPE
+ * MAXLENGTH
+ * CHECKED
+ * SRC
+ * Y
+ * X
+ * QUERYDELAY
+ * NOSCROLLBAR
+ * IMGSRC
+ * B
+ * FG
+ * SIZE
+ * FACE
+ * COLOR
+ * DEFFON
+ * DEFFIXEDFONT
+ * WIDTH
+ * VALUE
+ * TOOLTIP
+ * NAME
+ * MIN
+ * MAX
+ * HEIGHT
+ * DISABLED
+ * ALIGN
+ * MSG
+ * LINK
+ * HREF
+ * ACTION
+ *
+ *
+ * @version $Revision: 1.3.2.1.2.3 $ $Date: 2005/03/27 15:29:57 $
+ */
+public final class NpcQuestHtmlMessage extends L2GameServerPacket
+{
+
+	private static Logger _log = Logger.getLogger(RequestBypassToServer.class.getName());
+	private int _npcObjId;
+	private String _html;
+	private int _questId = 0;
+	
+	/**
+	 * 
+	 * @param npcObjId
+	 * @param text
+	 * @param questId
+	 */
+	public NpcQuestHtmlMessage(int npcObjId, int questId)
+	{
+		_npcObjId = npcObjId;
+		_questId = questId;
+	}
+
+	@Override
+	public void runImpl()
+	{
+		if (Config.BYPASS_VALIDATION)
+			buildBypassCache(getClient().getActiveChar());
+	}
+
+	public void setHtml(String text)
+	{
+        if(text.length() > 8192)
+		{
+			_log.warning("Html is too long! this will crash the client!");
+			_html = "<html><body>Html was too long</body></html>";
+			return;
+		}
+		_html = text; // html code must not exceed 8192 bytes
+	}
+
+	public boolean setFile(String path)
+	{
+        String content = HtmCache.getInstance().getHtm(path);
+
+		if (content == null)
+		{
+			setHtml("<html><body>My Text is missing:<br>"+path+"</body></html>");
+			_log.warning("missing html page "+path);
+			return false;
+		}
+
+        setHtml(content);
+        return true;
+	}
+
+	public void replace(String pattern, String value)
+	{
+		_html = _html.replaceAll(pattern, value);
+	}
+
+	private final void buildBypassCache(L2PcInstance activeChar)
+	{
+        if (activeChar == null)
+            return;
+
+        activeChar.clearBypass();
+		int len = _html.length();
+		for(int i=0; i<len; i++)
+		{
+			int start = _html.indexOf("bypass -h", i);
+			int finish = _html.indexOf("\"", start);
+
+			if(start < 0 || finish < 0)
+				break;
+
+			start += 10;
+			i = start;
+			int finish2 = _html.indexOf("$",start);
+			if (finish2 < finish && finish2 > 0)
+                activeChar.addBypass2(_html.substring(start, finish2).trim());
+			else
+                activeChar.addBypass(_html.substring(start, finish).trim());
+		}
+	}
+
+	@Override
+	protected final void writeImpl()
+	{
+		writeC(0xfe);
+		writeH(0x8d);
+		writeD(_npcObjId);
+		writeS(_html);
+		writeD(_questId);
+	}
+
+	/* (non-Javadoc)
+	 * @see net.sf.l2j.gameserver.serverpackets.ServerBasePacket#getType()
+	 */
+	@Override
+	public String getType()
+	{
+		return "[S] FE:8D NpcQuestHtmlMessage";
+	}
+
+}

+ 5 - 5
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PackageSendableList.java

@@ -43,14 +43,14 @@ public class PackageSendableList extends L2GameServerPacket
 		writeC(0xd2);
 
 		writeD(_playerObjId);
-		writeD(getClient().getActiveChar().getAdena());
+		writeQ(getClient().getActiveChar().getAdena());
 		writeD(_items.length);
 		for(L2ItemInstance item : _items) // format inside the for taken from SellList part use should be about the same
 		{
 			writeH(item.getItem().getType1());
 			writeD(item.getObjectId());
 			writeD(item.getItemId());
-			writeD(item.getCount());
+			writeQ(item.getCount());
 			writeH(item.getItem().getType2());
 			writeH(item.getCustomType1());
 			writeD(item.getItem().getBodyPart());
@@ -59,11 +59,11 @@ public class PackageSendableList extends L2GameServerPacket
 			writeH(0x00);
 			writeD(item.getObjectId()); // some item identifier later used by client to answer (see RequestPackageSend) not item id nor object id maybe some freight system id??
 			//T1
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 		}
 	}

+ 1 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PetInfo.java

@@ -170,6 +170,7 @@ public class PetInfo extends L2GameServerPacket
         		form = 1;
         }
         writeD(form);//CT1.5 Pet form and skills
+        writeD(0x00);
 	}
 
 	/* (non-Javadoc)

+ 4 - 4
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PetInventoryUpdate.java

@@ -79,7 +79,7 @@ public class PetInventoryUpdate extends L2GameServerPacket
 			writeH(item.getItem().getType1()); // item type1
 			writeD(item.getObjectId());
 			writeD(item.getItem().getItemId());
-			writeD(item.getCount());
+			writeQ(item.getCount());
 			writeH(item.getItem().getType2());	// item type2
 			writeH(0x00);	// ?
 			writeH(item.getEquipped());
@@ -87,11 +87,11 @@ public class PetInventoryUpdate extends L2GameServerPacket
 			writeH(item.getEnchant());	// enchant level
 			writeH(0x00);	// ?
 
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 		}
 	}

+ 4 - 4
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PetItemList.java

@@ -59,7 +59,7 @@ public class PetItemList extends L2GameServerPacket
 			writeH(temp.getItem().getType1()); // item type1
 			writeD(temp.getObjectId());
 			writeD(temp.getItemId());
-			writeD(temp.getCount());
+			writeQ(temp.getCount());
 			writeH(temp.getItem().getType2());	// item type2
 			writeH(0xff);	// ?
 			writeH(temp.isEquipped() ? 0x01 : 0x00);
@@ -67,11 +67,11 @@ public class PetItemList extends L2GameServerPacket
 			writeH(temp.getEnchantLevel());	// enchant level
 			writeH(0x00);	// ?
 
-			writeD(temp.getAttackElementType());
-			writeD(temp.getAttackElementPower());
+			writeH(temp.getAttackElementType());
+			writeH(temp.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(temp.getElementDefAttr(i));
+				writeH(temp.getElementDefAttr(i));
 			}
 		}
 	}

+ 4 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PlaySound.java

@@ -29,6 +29,7 @@ public class PlaySound extends L2GameServerPacket
     private int _unknown5;
     private int _unknown6;
     private int _unknown7;
+	private int _unknown8;
 
     public PlaySound(String soundFile)
     {
@@ -39,6 +40,7 @@ public class PlaySound extends L2GameServerPacket
         _unknown5   = 0;
         _unknown6   = 0;
         _unknown7   = 0;
+        _unknown8   = 0;
     }
 
     public PlaySound(int unknown1, String soundFile, int unknown3, int unknown4, int unknown5, int unknown6, int unknown7)
@@ -50,6 +52,7 @@ public class PlaySound extends L2GameServerPacket
         _unknown5   = unknown5;
         _unknown6   = unknown6;
         _unknown7   = unknown7;
+        _unknown8   = 0;
     }
 
 
@@ -64,6 +67,7 @@ public class PlaySound extends L2GameServerPacket
         writeD(_unknown5);              //x
         writeD(_unknown6);              //y
         writeD(_unknown7);				//z
+        writeD(_unknown8);
     }
 
     /* (non-Javadoc)

+ 37 - 32
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PledgeShowMemberListAll.java

@@ -20,39 +20,43 @@ import net.sf.l2j.gameserver.model.L2Clan.SubPledge;
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 //import java.util.logging.Logger;
 /**
+ * sample from gracia final:
+ * 
+ * 5A // packet id
+ * 
+ * 00 00 00 00 // pledge = 1 subpledge = 0
+ * D0 2D 00 00 // clan ID
+ * 00 00 00 00 // pledge Id 
+ * 54 00 68 00 65 00 4B 00 6E 00 69 00 67 00 68 00 74 00 73 00 4F 00 66 00 47 00 6F 00 64 00 00 00 // clan name
+ * 54 00 68 00 65 00 47 00 72 00 65 00 65 00 6E 00 44 00 72 00 61 00 67 00 30 00 6E 00 00 00 // clan leader
+ *  
+ * 9D 4F 01 00 // crest ID
+ * 03 00 00 00 // level
+ * 00 00 00 00 // castle id
+ * 00 00 00 00 // hideout id
+ * 00 00 00 00 // fort id
+ * 00 00 00 00 // rank
+ * 00 00 00 00 // reputation
+ * 00 00 00 00 // ?
+ * 00 00 00 00 // ?
+ * 00 00 00 00 // ally id
+ * 00 00       // ally name
+ * 00 00 00 00 // ally crest id
+ * 00 00 00 00 // is at war
+ * 00 00 00 00 // territory castle ID
+ * 
+ * 01 00 00 00 // member count
+ * 
+ * 51 00 75 00 65 00 65 00 70 00 68 00 00 00 // member name
+ * 22 00 00 00 // member level
+ * 07 00 00 00 // member class id
+ * 01 00 00 00 // member sex
+ * 00 00 00 00 // member race
+ * 00 00 00 00 // member object id (if online)
+ * 00 00 00 00 // member sponsor
+ * 
  *
- *
- * sample
- * 0000: 68
- * b1010000
- * 48 00 61 00 6d 00 62 00 75 00 72 00 67 00 00 00   H.a.m.b.u.r.g...
- * 43 00 61 00 6c 00 61 00 64 00 6f 00 6e 00 00 00   C.a.l.a.d.o.n...
- * 00000000  crestid | not used (nuocnam)
- * 00000000 00000000 00000000 00000000
- * 22000000 00000000 00000000
- * 00000000 ally id
- * 00 00	ally name
- * 00000000 ally crrest id
- *
- * 02000000
- *
- * 6c 00 69 00 74 00 68 00 69 00 75 00 6d 00 31 00 00 00  l.i.t.h.i.u.m...
- * 0d000000		level
- * 12000000 	class id
- * 00000000
- * 01000000 	offline 1=true
- * 00000000
- *
- * 45 00 6c 00 61 00 6e 00 61 00 00 00   E.l.a.n.a...
- * 08000000
- * 19000000
- * 01000000
- * 01000000
- * 00000000
- *
- *
- * format   dSS dddddddddSdd d (Sddddd)
- *          dddSS dddddddddSdd d (Sdddddd)
+ * format   dddSS ddddddddddSddd d (Sdddddd)
  *
  * @version $Revision: 1.6.2.2.2.3 $ $Date: 2005/03/27 15:29:57 $
  */
@@ -119,6 +123,7 @@ public class PledgeShowMemberListAll extends L2GameServerPacket
 		writeS(_clan.getAllyName());
 		writeD(_clan.getAllyCrestId());
         writeD(_clan.isAtWar()? 1 : 0);// new c3
+        writeD(0); // Territory castle ID
 		writeD(_clan.getSubPledgeMembersCount(_pledgeType));
 
 		for (L2ClanMember m : _members)

+ 53 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PremiumState.java

@@ -0,0 +1,53 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.network.serverpackets;
+
+/**
+ * format: dc
+ * @author  GodKratos
+ */
+public class PremiumState extends L2GameServerPacket
+{
+	private static final String _S__FE_AA_EXGETBOOKMARKINFO = "[S] FE:AA PremiumState";
+	private int _objectId;
+	private int _state;
+	
+	public PremiumState(int objectId, int state)
+	{
+		_objectId = objectId;
+		_state = state;
+	}
+
+	/**
+	 * @see net.sf.l2j.gameserver.serverpackets.ServerBasePacket#writeImpl()
+	 */
+	@Override
+	protected void writeImpl()
+	{
+		writeC(0xfe);
+		writeH(0xaa);
+		writeD(_objectId);
+		writeC(_state);
+	}
+	
+	/**
+	 * @see net.sf.l2j.gameserver.BasePacket#getType()
+	 */
+	@Override
+	public String getType()
+	{
+		return _S__FE_AA_EXGETBOOKMARKINFO;
+	}
+}

+ 9 - 9
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreListBuy.java

@@ -27,7 +27,7 @@ public class PrivateStoreListBuy extends L2GameServerPacket
 //	private static final String _S__D1_PRIVATEBUYLISTBUY = "[S] b8 PrivateBuyListBuy";
 	private static final String _S__D1_PRIVATESTORELISTBUY = "[S] be PrivateStoreListBuy";
 	private int _objId;
-	private int _playerAdena;
+	private long _playerAdena;
 	private TradeList.TradeItem[] _items;
 
 	public PrivateStoreListBuy(L2PcInstance player, L2PcInstance storePlayer)
@@ -43,7 +43,7 @@ public class PrivateStoreListBuy extends L2GameServerPacket
 	{
 		writeC(0xbe);
 		writeD(_objId);
-		writeD(_playerAdena);
+		writeQ(_playerAdena);
 
 		writeD(_items.length);
 
@@ -52,23 +52,23 @@ public class PrivateStoreListBuy extends L2GameServerPacket
 			writeD(item.getObjectId());
 			writeD(item.getItem().getItemId());
 			writeH(item.getEnchant());
-			writeD(item.getCount()); //give max possible sell amount
+			writeQ(item.getCount()); //give max possible sell amount
 
-			writeD(item.getItem().getReferencePrice());
+			writeQ(item.getItem().getReferencePrice());
 			writeH(0);
 
 			writeD(item.getItem().getBodyPart());
 			writeH(item.getItem().getType2());
-			writeD(item.getPrice());//buyers price
+			writeQ(item.getPrice());//buyers price
 
-			writeD(item.getCount());  // maximum possible tradecount
+			writeQ(item.getCount());  // maximum possible tradecount
 			
 			// T1
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 		}
 	}

+ 8 - 9
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreListSell.java

@@ -26,7 +26,7 @@ public class PrivateStoreListSell extends L2GameServerPacket
 {
 	private static final String _S__B4_PRIVATESTORELISTSELL = "[S] a1 PrivateStoreListSell";
 	private int _objId;
-	private int _playerAdena;
+	private long _playerAdena;
 	private boolean _packageSale;
 	private TradeList.TradeItem[] _items;
 
@@ -45,28 +45,27 @@ public class PrivateStoreListSell extends L2GameServerPacket
 		writeC(0xa1);
 		writeD(_objId);
 		writeD(_packageSale ? 1 : 0);
-		writeD(_playerAdena);
-
+		writeQ(_playerAdena);
 		writeD(_items.length);
 		for (TradeList.TradeItem item : _items)
 		{
 			writeD(item.getItem().getType2());
 			writeD(item.getObjectId());
 			writeD(item.getItem().getItemId());
-            writeD(item.getCount());
+            writeQ(item.getCount());
 			writeH(0x00);
 			writeH(item.getEnchant());
 			writeH(0x00);
 			writeD(item.getItem().getBodyPart());
-			writeD(item.getPrice()); //your price
-			writeD(item.getItem().getReferencePrice()); //store price
+			writeQ(item.getPrice()); //your price
+			writeQ(item.getItem().getReferencePrice()); //store price
 			
 			// T1
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 		}
 	}

+ 15 - 14
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreManageListBuy.java

@@ -27,7 +27,7 @@ public class PrivateStoreManageListBuy extends L2GameServerPacket
 {
 	private static final String _S__D0_PRIVATESELLLISTBUY = "[S] bd PrivateStoreManageListBuy";
 	private int _objId;
-	private int _playerAdena;
+	private long _playerAdena;
 	private L2ItemInstance[] _itemList;
 	private TradeList.TradeItem[] _buyList;
 
@@ -45,26 +45,27 @@ public class PrivateStoreManageListBuy extends L2GameServerPacket
 		writeC(0xbd);
 		//section 1
 		writeD(_objId);
-		writeD(_playerAdena);
+		writeQ(_playerAdena);
 
 		//section2
 		writeD(_itemList.length); // inventory items for potential buy
 		for (L2ItemInstance item : _itemList)
 		{
+
 			writeD(item.getItemId());
 			writeH(0); //show enchant lvl as 0, as you can't buy enchanted weapons
-			writeD(item.getCount());
-			writeD(item.getReferencePrice());
+			writeQ(item.getCount());
+			writeQ(item.getReferencePrice());
 			writeH(0x00);
 			writeD(item.getItem().getBodyPart());
 			writeH(item.getItem().getType2());
 
 			// T1
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 		}
 
@@ -74,20 +75,20 @@ public class PrivateStoreManageListBuy extends L2GameServerPacket
 		{
 			writeD(item.getItem().getItemId());
 			writeH(0);
-			writeD(item.getCount());
-			writeD(item.getItem().getReferencePrice());
+			writeQ(item.getCount());
+			writeQ(item.getItem().getReferencePrice());
 			writeH(0x00);
 			writeD(item.getItem().getBodyPart());
 			writeH(item.getItem().getType2());
-			writeD(item.getPrice());//your price
-			writeD(item.getItem().getReferencePrice());//fixed store price
+			writeQ(item.getPrice());//your price
+			writeQ(item.getItem().getReferencePrice());//fixed store price
 			
 			// T1
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 		}
 	}

+ 13 - 13
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreManageListSell.java

@@ -35,7 +35,7 @@ public class PrivateStoreManageListSell extends L2GameServerPacket
 {
 	private static final String _S__B3_PRIVATESELLLISTSELL = "[S] a0 PrivateSellListSell";
 	private int _objId;
-	private int _playerAdena;
+	private long _playerAdena;
 	private boolean _packageSale;
 	private TradeList.TradeItem[] _itemList;
 	private TradeList.TradeItem[] _sellList;
@@ -57,7 +57,7 @@ public class PrivateStoreManageListSell extends L2GameServerPacket
 		//section 1
 		writeD(_objId);
 		writeD(_packageSale ? 1 : 0); // Package sell
-		writeD(_playerAdena);
+		writeQ(_playerAdena);
 
 		//section2
 		writeD(_itemList.length); //for potential sells
@@ -66,19 +66,19 @@ public class PrivateStoreManageListSell extends L2GameServerPacket
 			writeD(item.getItem().getType2());
 			writeD(item.getObjectId());
 			writeD(item.getItem().getItemId());
-			writeD(item.getCount());
+			writeQ(item.getCount());
 			writeH(0);
 			writeH(item.getEnchant());//enchant lvl
 			writeH(0);
 			writeD(item.getItem().getBodyPart());
-			writeD(item.getPrice()); //store price
+			writeQ(item.getPrice()); //store price
 			
 			// T1
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 		}
 		//section 3
@@ -88,20 +88,20 @@ public class PrivateStoreManageListSell extends L2GameServerPacket
 			writeD(item.getItem().getType2());
 			writeD(item.getObjectId());
 			writeD(item.getItem().getItemId());
-			writeD(item.getCount());
+			writeQ(item.getCount());
 			writeH(0);
 			writeH(item.getEnchant());//enchant lvl
 			writeH(0x00);
 			writeD(item.getItem().getBodyPart());
-			writeD(item.getPrice());//your price
-			writeD(item.getItem().getReferencePrice()); //store price
+			writeQ(item.getPrice());//your price
+			writeQ(item.getItem().getReferencePrice()); //store price
 			
 			// T1
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 		}
 	}

+ 2 - 2
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopManageList.java

@@ -58,7 +58,7 @@ public class RecipeShopManageList  extends L2GameServerPacket
 	{
 		writeC(0xde);
 		writeD(_seller.getObjectId());
-		writeD(_seller.getAdena());
+		writeD((int)_seller.getAdena());
 		writeD(_isDwarven ? 0x00 : 0x01);
 
 		if (_recipes == null)
@@ -90,7 +90,7 @@ public class RecipeShopManageList  extends L2GameServerPacket
             {
                 writeD(item.getRecipeId());
                 writeD(0x00);
-                writeD(item.getCost());
+                writeQ(item.getCost());
             }
         }
 	}

+ 2 - 2
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopSellList.java

@@ -47,7 +47,7 @@ public class RecipeShopSellList extends L2GameServerPacket
             writeD(_manufacturer.getObjectId());
             writeD((int) _manufacturer.getCurrentMp());//Creator's MP
             writeD(_manufacturer.getMaxMp());//Creator's MP
-            writeD(_buyer.getAdena());//Buyer Adena
+            writeQ(_buyer.getAdena());//Buyer Adena
 
             int count = createList.size();
             writeD(count);
@@ -58,7 +58,7 @@ public class RecipeShopSellList extends L2GameServerPacket
                 temp = createList.getList().get(i);
                 writeD(temp.getRecipeId());
                 writeD(0x00); //unknown
-                writeD(temp.getCost());
+                writeQ(temp.getCost());
             }
         }
     }

+ 2 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/RelationChanged.java

@@ -53,11 +53,13 @@ public final class RelationChanged extends L2GameServerPacket
 		{
 			_karma = ((L2PcInstance)activeChar).getKarma();
 			_pvpFlag = ((L2PcInstance)activeChar).getPvpFlag();
+			_invisible = ((L2PcInstance)activeChar).getAppearance().getInvisible();
 		}
 		else if (activeChar instanceof L2Summon)
 		{
 			_karma =  ((L2Summon)activeChar).getOwner().getKarma();
 			_pvpFlag = ((L2Summon)activeChar).getOwner().getPvpFlag();
+			_invisible = ((L2Summon)activeChar).getOwner().getAppearance().getInvisible();
 		}
 	}
 

+ 33 - 32
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SSQStatus.java

@@ -35,8 +35,9 @@ import net.sf.l2j.gameserver.templates.StatsSet;
  * 2: [hc [cd (dc (S))]
  * 3: [ccc (cccc)]
  * 4: [(cchh)]
- *
  * @author Tempy
+ * CT 2.3 [dddccQQQQQcQQQc.cdQc....Qc..ccc.cccc....ccd]
+ * @editor shansoft
  *
  */
 public class SSQStatus extends L2GameServerPacket
@@ -72,6 +73,7 @@ public class SSQStatus extends L2GameServerPacket
         {
             case 1:
                 // [ddd cc dd ddd c ddd c]
+            	
                 writeD(SevenSigns.getInstance().getCurrentCycle());
 
                 int currentPeriod = SevenSigns.getInstance().getCurrentPeriod();
@@ -107,8 +109,8 @@ public class SSQStatus extends L2GameServerPacket
                 writeC(SevenSigns.getInstance().getPlayerCabal(_activevChar));
                 writeC(SevenSigns.getInstance().getPlayerSeal(_activevChar));
 
-                writeD(SevenSigns.getInstance().getPlayerStoneContrib(_activevChar)); // Seal Stones Turned-In
-                writeD(SevenSigns.getInstance().getPlayerAdenaCollect(_activevChar)); // Ancient Adena to Collect
+                writeQ(SevenSigns.getInstance().getPlayerStoneContrib(_activevChar)); // Seal Stones Turned-In
+                writeQ(SevenSigns.getInstance().getPlayerAdenaCollect(_activevChar)); // Ancient Adena to Collect
 
                 double dawnStoneScore = SevenSigns.getInstance().getCurrentStoneScore(SevenSigns.CABAL_DAWN);
                 int dawnFestivalScore = SevenSigns.getInstance().getCurrentFestivalScore(SevenSigns.CABAL_DAWN);
@@ -159,16 +161,16 @@ public class SSQStatus extends L2GameServerPacket
                 }
 
                 /* DUSK */
-                writeD(duskStoneScoreProp); // Seal Stone Score
-                writeD(duskFestivalScore); // Festival Score
-                writeD(duskTotalScore); // Total Score
+                writeQ(duskStoneScoreProp); // Seal Stone Score
+                writeQ(duskFestivalScore); // Festival Score
+                writeQ(duskTotalScore); // Total Score
 
                 writeC(duskPercent); // Dusk %
 
                 /* DAWN */
-                writeD(dawnStoneScoreProp); // Seal Stone Score
-                writeD(dawnFestivalScore); // Festival Score
-                writeD(dawnTotalScore); // Total Score
+                writeQ(dawnStoneScoreProp); // Seal Stone Score
+                writeQ(dawnFestivalScore); // Festival Score
+                writeQ(dawnTotalScore); // Total Score
 
                 writeC(dawnPercent); // Dawn %
                 break;
@@ -187,7 +189,7 @@ public class SSQStatus extends L2GameServerPacket
                     int dawnScore = SevenSignsFestival.getInstance().getHighestScore(SevenSigns.CABAL_DAWN, i);
 
                     // Dusk Score \\
-                    writeD(duskScore);
+                    writeQ(duskScore);
 
                     StatsSet highScoreData = SevenSignsFestival.getInstance().getHighestScoreData(SevenSigns.CABAL_DUSK, i);
                     String[] partyMembers = highScoreData.getString("members").split(",");
@@ -205,7 +207,7 @@ public class SSQStatus extends L2GameServerPacket
                     }
 
                     // Dawn Score \\
-                    writeD(dawnScore);
+                    writeQ(dawnScore);
 
                     highScoreData = SevenSignsFestival.getInstance().getHighestScoreData(SevenSigns.CABAL_DAWN, i);
                     partyMembers = highScoreData.getString("members").split(",");
@@ -271,7 +273,7 @@ public class SSQStatus extends L2GameServerPacket
                 }
                 break;
             case 4:
-                // c cc [cc (cchh)]
+                // c cc [cc (ccD)] CT 2.3 update
                 writeC(winningCabal); // Overall predicted winner
                 writeC(3); // Total number of seals
 
@@ -292,30 +294,30 @@ public class SSQStatus extends L2GameServerPacket
                     		{
                     			case SevenSigns.CABAL_NULL:
                     				writeC(SevenSigns.CABAL_NULL);
-                    				writeH(SystemMessageId.COMPETITION_TIE_SEAL_NOT_AWARDED.getId());
+                    				writeD(SystemMessageId.COMPETITION_TIE_SEAL_NOT_AWARDED.getId());
                     				break;
                     			case SevenSigns.CABAL_DAWN:
                     				if (dawnPercent >= 35)
                     				{
                     					writeC(SevenSigns.CABAL_DAWN);
-                    					writeH(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
+                    					writeD(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
                     				}
                     				else
                     				{
                         				writeC(SevenSigns.CABAL_NULL);
-                        				writeH(SystemMessageId.SEAL_NOT_OWNED_35_LESS_VOTED.getId());
+                        				writeD(SystemMessageId.SEAL_NOT_OWNED_35_LESS_VOTED.getId());
                     				}
                     				break;
                     			case SevenSigns.CABAL_DUSK:
                     				if (duskPercent >= 35)
                     				{
                     					writeC(SevenSigns.CABAL_DUSK);
-                    					writeH(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
+                    					writeD(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
                     				}
                     				else
                     				{
                         				writeC(SevenSigns.CABAL_NULL);
-                        				writeH(SystemMessageId.SEAL_NOT_OWNED_35_LESS_VOTED.getId());
+                        				writeD(SystemMessageId.SEAL_NOT_OWNED_35_LESS_VOTED.getId());
                     				}
                     				break;
                     		}
@@ -327,42 +329,42 @@ public class SSQStatus extends L2GameServerPacket
                                     if (dawnPercent >= 10)
                                     {
                                         writeC(SevenSigns.CABAL_DAWN);
-                                        writeH(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
+                                        writeD(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
                                         break;
                                     }
                                     else
                                     {
                                         writeC(SevenSigns.CABAL_NULL);
-                                        writeH(SystemMessageId.COMPETITION_TIE_SEAL_NOT_AWARDED.getId());
+                                        writeD(SystemMessageId.COMPETITION_TIE_SEAL_NOT_AWARDED.getId());
                                         break;
                                     }
                     			case SevenSigns.CABAL_DAWN:
                     				if (dawnPercent >= 10)
                     				{
                     					writeC(sealOwner);
-                    					writeH(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
+                    					writeD(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
                     				}
                     				else
                     				{
                         				writeC(SevenSigns.CABAL_NULL);
-                        				writeH(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
+                        				writeD(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
                     				}
                     				break;
                     			case SevenSigns.CABAL_DUSK:
                     				if (duskPercent >= 35)
                     				{
                     					writeC(SevenSigns.CABAL_DUSK);
-                    					writeH(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
+                    					writeD(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
                     				}
                                     else if (dawnPercent >= 10)
                                     {
                                         writeC(SevenSigns.CABAL_DAWN);
-                                        writeH(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
+                                        writeD(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
                                     }
                     				else
                     				{
                         				writeC(SevenSigns.CABAL_NULL);
-                        				writeH(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
+                        				writeD(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
                     				}
                     				break;
                     		}
@@ -374,48 +376,47 @@ public class SSQStatus extends L2GameServerPacket
                                     if (duskPercent >= 10)
                                     {
                                         writeC(SevenSigns.CABAL_DUSK);
-                                        writeH(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
+                                        writeD(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
                                         break;
                                     }
                                     else
                                     {
                         				writeC(SevenSigns.CABAL_NULL);
-                        				writeH(SystemMessageId.COMPETITION_TIE_SEAL_NOT_AWARDED.getId());
+                        				writeD(SystemMessageId.COMPETITION_TIE_SEAL_NOT_AWARDED.getId());
                         				break;
                                     }
                     			case SevenSigns.CABAL_DAWN:
                     				if (dawnPercent >= 35)
                     				{
                     					writeC(SevenSigns.CABAL_DAWN);
-                    					writeH(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
+                    					writeD(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
                     				}
                     				else if (duskPercent >= 10)
                     				{
                     					writeC(sealOwner);
-                    					writeH(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
+                    					writeD(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
                     				}
                     				else
                     				{
                         				writeC(SevenSigns.CABAL_NULL);
-                        				writeH(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
+                        				writeD(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
                     				}
                     				break;
                     			case SevenSigns.CABAL_DUSK:
                     				if (duskPercent >= 10)
                     				{
                     					writeC(sealOwner);
-                    					writeH(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
+                    					writeD(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
                     				}
                     				else
                     				{
                         				writeC(SevenSigns.CABAL_NULL);
-                        				writeH(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
+                        				writeD(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
                     				}
                     				break;
                     		}
                     		break;
                     }
-                    writeH(0);
                 }
                 break;
         }

+ 7 - 7
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SellList.java

@@ -34,7 +34,7 @@ public class SellList extends L2GameServerPacket
 	private static Logger _log = Logger.getLogger(SellList.class.getName());
 	private final L2PcInstance _activeChar;
 	private final L2MerchantInstance _lease;
-	private int _money;
+	private long _money;
 	private List<L2ItemInstance> _selllist = new FastList<L2ItemInstance>();
 
 	public SellList(L2PcInstance player)
@@ -76,7 +76,7 @@ public class SellList extends L2GameServerPacket
 	protected final void writeImpl()
 	{
 		writeC(0x06);
-		writeD(_money);
+		writeQ(_money);
 		writeD(_lease == null ? 0x00 : 1000000 + _lease.getTemplate().npcId);
 		writeH(_selllist.size());
 
@@ -85,21 +85,21 @@ public class SellList extends L2GameServerPacket
 			writeH(item.getItem().getType1());
 			writeD(item.getObjectId());
 			writeD(item.getItemId());
-			writeD(item.getCount());
+			writeQ(item.getCount());
 			writeH(item.getItem().getType2());
 			writeH(0x00);
 			writeD(item.getItem().getBodyPart());
 			writeH(item.getEnchantLevel());
 			writeH(0x00);
 			writeH(0x00);
-			writeD(item.getItem().getReferencePrice()/2);
+			writeQ(item.getItem().getReferencePrice()/2);
 
 			// T1
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 		}
 	}

+ 5 - 5
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SellListProcure.java

@@ -30,8 +30,8 @@ public class SellListProcure extends L2GameServerPacket
     //private static Logger _log = Logger.getLogger(SellListProcure.class.getName());
 
     private final L2PcInstance _activeChar;
-    private int _money;
-    private Map<L2ItemInstance,Integer> _sellList = new FastMap<L2ItemInstance,Integer>();
+    private long _money;
+    private Map<L2ItemInstance,Long> _sellList = new FastMap<L2ItemInstance,Long>();
     private List<CropProcure> _procureList = new FastList<CropProcure>();
     private int _castle;
 
@@ -55,7 +55,7 @@ public class SellListProcure extends L2GameServerPacket
 	protected final void writeImpl()
     {
         writeC(0xef);
-        writeD(_money);         // money
+        writeQ(_money);         // money
         writeD(0x00);           // lease ?
         writeH(_sellList.size());         // list size
 
@@ -64,10 +64,10 @@ public class SellListProcure extends L2GameServerPacket
             writeH(item.getItem().getType1());
             writeD(item.getObjectId());
             writeD(item.getItemId());
-            writeD(_sellList.get(item));  // count
+            writeQ(_sellList.get(item));  // count
             writeH(item.getItem().getType2());
             writeH(0);  // unknown
-            writeD(0);  // price, u shouldnt get any adena for crops, only raw materials
+            writeQ(0);  // price, u shouldnt get any adena for crops, only raw materials
         }
     }
 

+ 5 - 5
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ShopPreviewList.java

@@ -26,10 +26,10 @@ public class ShopPreviewList extends L2GameServerPacket
 	private static final String _S__EF_WEARLIST = "[S] f5 WearList";
 	private int _listId;
     private Collection<L2TradeItem> _list;
-	private int _money;
+	private long _money;
 	private int _expertise;
 
-	public ShopPreviewList(L2TradeList list, int currentMoney, int expertiseIndex)
+	public ShopPreviewList(L2TradeList list, long currentMoney, int expertiseIndex)
 	{
 		_listId = list.getListId();
 		_list = list.getItems();
@@ -37,7 +37,7 @@ public class ShopPreviewList extends L2GameServerPacket
 		_expertise = expertiseIndex;
 	}
 
-	public ShopPreviewList(Collection<L2TradeItem> lst, int listId, int currentMoney)
+	public ShopPreviewList(Collection<L2TradeItem> lst, int listId, long currentMoney)
 	{
 		_listId = listId;
 		_list = lst;
@@ -52,7 +52,7 @@ public class ShopPreviewList extends L2GameServerPacket
 		writeC(0x13);	// ?
 		writeC(0x00);	// ?
 		writeC(0x00);	// ?
-		writeD(_money);		// current money
+		writeQ(_money);		// current money
 		writeD(_listId);
 
 		int newlength = 0;
@@ -79,7 +79,7 @@ public class ShopPreviewList extends L2GameServerPacket
 		            writeH(0x00);	// rev 415  slot    0006-lr.ear  0008-neck  0030-lr.finger  0040-head  0080-??  0100-l.hand  0200-gloves  0400-chest  0800-pants  1000-feet  2000-??  4000-r.hand  8000-r.hand
 		        }
 		        
-		        writeD(Config.WEAR_PRICE);
+		        writeQ(Config.WEAR_PRICE);
 		    }
 		}
 	}

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ShowBoard.java

@@ -111,7 +111,7 @@ public class ShowBoard extends L2GameServerPacket
 			}
 			data[i++] = 0;
 			data[i] = 0;
-			//writeS(_htmlCode); // current page
+			writeS(_htmlCode); // current page
 			writeB(data);
 		}
 		else

+ 2 - 0
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SocialAction.java

@@ -21,6 +21,8 @@ package net.sf.l2j.gameserver.network.serverpackets;
  */
 public class SocialAction extends L2GameServerPacket
 {
+	public static final int LEVEL_UP = 2122;
+	
 	private static final String _S__3D_SOCIALACTION = "[S] 27 SocialAction";
 	private int _charObjId;
 	private int _actionId;

+ 7 - 7
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SortedWareHouseWithdrawalList.java

@@ -47,7 +47,7 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 	private static Logger _log = Logger.getLogger(SortedWareHouseWithdrawalList.class.getName());
 	private static final String _S__54_SORTEDWAREHOUSEWITHDRAWALLIST = "[S] 42 SortedWareHouseWithdrawalList";
 	private L2PcInstance _activeChar;
-	private int _playerAdena;
+	private long _playerAdena;
 	private List<L2WarehouseItem> _objects = new FastList<L2WarehouseItem>();
 	private int _whType;
 	private byte _sortorder;
@@ -696,7 +696,7 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 		* 0x03-Castle Warehouse  
 		* 0x04-Warehouse */
 		writeH(_whType);
-		writeD(_playerAdena);
+		writeQ(_playerAdena);
 		writeH(_objects.size());
 		
 		for (L2WarehouseItem item : _objects)
@@ -704,7 +704,7 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 			writeH(item.getItem().getType1()); // item type1 //unconfirmed, works
 			writeD(item.getObjectId());
 			writeD(item.getItemId()); //unconfirmed, works
-			writeD(item.getCount()); //unconfirmed, works
+			writeQ(item.getCount()); //unconfirmed, works
 			writeH(item.getItem().getType2()); // item type2 //unconfirmed, works
 			writeH(item.getCustomType1()); // ?
 			writeD(item.getItem().getBodyPart()); // ?
@@ -720,16 +720,16 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 			else
 				writeQ(0x00);
 			
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 			
 			writeD(item.getMana());
 			// T2
-			writeD(0x00);
+			writeD(item.getTime());
 		}
 	}
 	

+ 3 - 2
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SpawnItem.java

@@ -37,7 +37,8 @@ public final class SpawnItem extends L2GameServerPacket
 	private int _objectId;
 	private int _itemId;
 	private int _x, _y, _z;
-	private int _stackable, _count;
+	private int _stackable; 
+	private long _count;
 
 	public SpawnItem(L2Object obj)
 	{
@@ -73,7 +74,7 @@ public final class SpawnItem extends L2GameServerPacket
 		writeD(_z);
 		// only show item count if it is a stackable item
 		writeD(_stackable);
-		writeD(_count);
+		writeQ(_count);
 		writeD(0x00); //c2
 	}
 

+ 27 - 3
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/SystemMessage.java

@@ -37,6 +37,7 @@ public final class SystemMessage extends L2GameServerPacket
 	// d d (d S/d d/d dd)
 	//      |--------------> 0 - String  1-number 2-textref npcname (1000000-1002655)  3-textref itemname 4-textref skills 5-??
 	private static final int TYPE_ZONE_NAME = 7;
+	private static final int TYPE_ITEM_NUMBER = 6;
 	private static final int TYPE_FORTRESS = 5; // maybe not only for fortress, rename if needed
 	private static final int TYPE_SKILL_NAME = 4;
 	private static final int TYPE_ITEM_NAME = 3;
@@ -92,14 +93,31 @@ public final class SystemMessage extends L2GameServerPacket
 		return this;
 	}
 
+	public SystemMessage addItemNumber(long number)
+	{
+		_types.add(Integer.valueOf(TYPE_ITEM_NUMBER));
+		_values.add(Long.valueOf(number));
+		return this;
+	}
+	
 	public SystemMessage addCharName(L2Character cha)
 	{
 		if (cha instanceof L2Npc)
-			return addNpcName((L2Npc)cha);
+		{
+			if (((L2Npc)cha).getTemplate().serverSideName)
+				return addString(((L2Npc)cha).getTemplate().name);
+			else			
+				return addNpcName((L2Npc)cha);
+		}
 		if (cha instanceof L2PcInstance)
 			return addPcName((L2PcInstance)cha);
 		if (cha instanceof L2Summon)
-			return addNpcName((L2Summon)cha);
+		{
+			if (((L2Summon)cha).getTemplate().serverSideName)
+				return addString(((L2Summon)cha).getTemplate().name);
+			else			
+				return addNpcName((L2Summon)cha);
+		}
 		return addString(cha.getName());
 	}
 
@@ -208,10 +226,16 @@ public final class SystemMessage extends L2GameServerPacket
 					writeS( (String)_values.get(i));
 					break;
 				}
+				case TYPE_ITEM_NUMBER:
+				{
+					long t1 = ((Long)_values.get(i)).longValue();
+					writeQ(t1);
+					break;
+				}
+				case TYPE_ITEM_NAME:
 				case TYPE_FORTRESS:
 				case TYPE_NUMBER:
 				case TYPE_NPC_NAME:
-				case TYPE_ITEM_NAME:
 				{
 					int t1 = ((Integer)_values.get(i)).intValue();
 					writeD(t1);

+ 6 - 5
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/TeleportToLocation.java

@@ -17,7 +17,7 @@ package net.sf.l2j.gameserver.network.serverpackets;
 import net.sf.l2j.gameserver.model.L2Object;
 
 /**
- * format  dddd
+ * format:  dddddd
  *
  * sample
  * 0000: 3a  69 08 10 48  02 c1 00 00  f7 56 00 00  89 ea ff    :i..H.....V.....
@@ -32,16 +32,15 @@ public final class TeleportToLocation extends L2GameServerPacket
 	private int _x;
 	private int _y;
 	private int _z;
+	private int _heading;
 
-	/**
-	 * @param _characters
-	 */
-	public TeleportToLocation(L2Object obj, int x, int y, int z)
+	public TeleportToLocation(L2Object obj, int x, int y, int z, int heading)
 	{
 		_targetObjId = obj.getObjectId();
 		_x = x;
 		_y = y;
 		_z = z;
+		_heading = heading;
 	}
 
 	@Override
@@ -52,6 +51,8 @@ public final class TeleportToLocation extends L2GameServerPacket
 		writeD(_x);
 		writeD(_y);
 		writeD(_z);
+		writeD(0x00); // isValidation ??
+		writeD(_heading); // nYaw
 	}
 
 	/* (non-Javadoc)

+ 4 - 4
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/TradeOtherAdd.java

@@ -42,7 +42,7 @@ public final class TradeOtherAdd extends L2GameServerPacket
 		writeH(_item.getItem().getType1()); // item type1
 		writeD(_item.getObjectId());
 		writeD(_item.getItem().getItemId());
-		writeD(_item.getCount());
+		writeQ(_item.getCount());
 		writeH(_item.getItem().getType2());	// item type2
 		writeH(0x00);	// ?
 
@@ -52,11 +52,11 @@ public final class TradeOtherAdd extends L2GameServerPacket
 		writeH(0x00);
 		
 		// T1
-		writeD(_item.getAttackElementType());
-		writeD(_item.getAttackElementPower());
+		writeH(_item.getAttackElementType());
+		writeH(_item.getAttackElementPower());
 		for (byte i = 0; i < 6; i++)
 		{
-			writeD(_item.getElementDefAttr(i));
+			writeH(_item.getElementDefAttr(i));
 		}
 	}
 

+ 4 - 4
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/TradeOwnAdd.java

@@ -42,7 +42,7 @@ public final class TradeOwnAdd extends L2GameServerPacket
 		writeH(_item.getItem().getType1()); // item type1
 		writeD(_item.getObjectId());
 		writeD(_item.getItem().getItemId());
-		writeD(_item.getCount());
+		writeQ(_item.getCount());
 		writeH(_item.getItem().getType2());	// item type2
 		writeH(0x00);	// ?
 
@@ -52,11 +52,11 @@ public final class TradeOwnAdd extends L2GameServerPacket
 		writeH(0x00);
 		
 		// T1
-		writeD(_item.getAttackElementType());
-		writeD(_item.getAttackElementPower());
+		writeH(_item.getAttackElementType());
+		writeH(_item.getAttackElementPower());
 		for (byte i = 0; i < 6; i++)
 		{
-			writeD(_item.getElementDefAttr(i));
+			writeH(_item.getElementDefAttr(i));
 		}
 	}
 

+ 4 - 4
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/TradeStart.java

@@ -50,7 +50,7 @@ public final class TradeStart extends L2GameServerPacket
 			writeH(item.getItem().getType1()); // item type1
 			writeD(item.getObjectId());
 			writeD(item.getItemId());
-			writeD(item.getCount());
+			writeQ(item.getCount());
 			writeH(item.getItem().getType2());	// item type2
 			writeH(0x00);	// ?
 
@@ -60,11 +60,11 @@ public final class TradeStart extends L2GameServerPacket
 			writeH(0x00);
 			
 			// T1
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 		}
 	}

+ 32 - 36
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/UserInfo.java

@@ -66,8 +66,7 @@ public final class UserInfo extends L2GameServerPacket
 {
     private static final String _S__04_USERINFO = "[S] 32 UserInfo";
     private L2PcInstance _activeChar;
-    private int _runSpd, _walkSpd, _swimRunSpd, _swimWalkSpd, _flRunSpd, _flWalkSpd, _flyRunSpd,
-            _flyWalkSpd, _relation;
+    private int _runSpd, _walkSpd, _swimRunSpd, _swimWalkSpd, _flyRunSpd,_flyWalkSpd, _relation;
     private float _moveMultiplier;
 
     /**
@@ -80,8 +79,8 @@ public final class UserInfo extends L2GameServerPacket
         _moveMultiplier = _activeChar.getMovementSpeedMultiplier();
         _runSpd = (int) (_activeChar.getRunSpeed() / _moveMultiplier);
         _walkSpd = (int) (_activeChar.getWalkSpeed() / _moveMultiplier);
-        _swimRunSpd = _flRunSpd = _flyRunSpd = _runSpd;
-        _swimWalkSpd = _flWalkSpd = _flyWalkSpd = _walkSpd;
+        _swimRunSpd = _flyRunSpd = _runSpd;
+        _swimWalkSpd = _flyWalkSpd = _walkSpd;
         _relation = _activeChar.isClanLeader() ? 0x40 : 0;
         if (_activeChar.getSiegeState() == 1) _relation |= 0x180;
         if (_activeChar.getSiegeState() == 2) _relation |= 0x80;
@@ -95,7 +94,7 @@ public final class UserInfo extends L2GameServerPacket
         writeD(_activeChar.getX());
         writeD(_activeChar.getY());
         writeD(_activeChar.getZ());
-        writeD(_activeChar.getHeading());
+        writeD(_activeChar.isInAirShip() ? _activeChar.getAirShip().getObjectId() : 0x00); // heading from CT2.3 no longer used inside userinfo, here is now vehicle id (boat,airship)
         writeD(_activeChar.getObjectId());
         writeS(_activeChar.getName());
         writeD(_activeChar.getRace().ordinal());
@@ -120,7 +119,7 @@ public final class UserInfo extends L2GameServerPacket
         writeD(_activeChar.getCurrentLoad());
         writeD(_activeChar.getMaxLoad());
 
-        writeD(_activeChar.getActiveWeaponItem() != null ? 0x40 : 0x20); // 0x20 no weapon, 0x40 weapon equipped
+        writeD(_activeChar.getActiveWeaponItem() != null ? 40 : 20); // 20 no weapon, 40 weapon equipped
         
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_UNDER));
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_REAR));
@@ -139,7 +138,6 @@ public final class UserInfo extends L2GameServerPacket
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LRHAND));
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HAIR));
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HAIR2));
-        // T1 new D's
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RBRACELET));
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LBRACELET));
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO1));
@@ -148,8 +146,7 @@ public final class UserInfo extends L2GameServerPacket
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO4));
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO5));
         writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DECO6));
-        // end of T1 new D's
-        
+        writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_BELT)); // CT2.3
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_UNDER));
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_REAR));
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEAR));
@@ -167,8 +164,6 @@ public final class UserInfo extends L2GameServerPacket
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LRHAND));
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR2));
-        
-        // T1 new D's
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RBRACELET));
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LBRACELET));
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO1));
@@ -177,9 +172,7 @@ public final class UserInfo extends L2GameServerPacket
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO4));
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO5));
         writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DECO6));
-        // end of T1 new D's
-        
-        // c6 new h's
+        writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_BELT)); // CT2.3
         writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_UNDER));
         writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_REAR));
         writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LEAR));
@@ -197,9 +190,6 @@ public final class UserInfo extends L2GameServerPacket
         writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LRHAND));
         writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_HAIR));
         writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_HAIR2));
-        // end of c6 new h's
-        
-        // start of T1 new h's
         writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_RBRACELET));
         writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_LBRACELET));
         writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO1));
@@ -208,8 +198,9 @@ public final class UserInfo extends L2GameServerPacket
         writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO4));
         writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO5));
         writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_DECO6));
-        // end of T1 new h's
-        
+        writeD(_activeChar.getInventory().getPaperdollAugmentationId(Inventory.PAPERDOLL_BELT)); // CT2.3
+        writeD(0x00); // CT2.3
+        writeD(0x01); // CT2.3
         writeD(_activeChar.getPAtk(null));
         writeD(_activeChar.getPAtkSpd());
         writeD(_activeChar.getPDef(null));
@@ -230,10 +221,10 @@ public final class UserInfo extends L2GameServerPacket
         writeD(_walkSpd);
         writeD(_swimRunSpd); // swimspeed
         writeD(_swimWalkSpd); // swimspeed
-        writeD(_flRunSpd);
-        writeD(_flWalkSpd);
-        writeD(_flyRunSpd);
-        writeD(_flyWalkSpd);
+        writeD(0);
+        writeD(0);
+        writeD(_activeChar.isFlying() ? _flyRunSpd : 0); // fly speed
+        writeD(_activeChar.isFlying() ? _flyWalkSpd : 0); // fly speed
         writeF(_moveMultiplier);
         writeF(_activeChar.getAttackSpeedMultiplier());
 
@@ -261,7 +252,7 @@ public final class UserInfo extends L2GameServerPacket
         writeD(_activeChar.isGM() ? 1 : 0); // builder level
 
         String title = _activeChar.getTitle();
-        if (_activeChar.getAppearance().getInvisible() && _activeChar.isGM()) title = "Invisible";
+     	if (_activeChar.getAppearance().getInvisible() && _activeChar.isGM()) title = "Invisible";
         if (_activeChar.getPoly().isMorphed())
         {
         	L2NpcTemplate polyObj = NpcTable.getInstance().getTemplate(_activeChar.getPoly().getPolyId());
@@ -290,13 +281,13 @@ public final class UserInfo extends L2GameServerPacket
         writeC(0x00); //1-find party members
 
         writeD(_activeChar.getAbnormalEffect());
-        writeC(0x00);
+        writeC(_activeChar.isFlyingMounted() ? 2 : 0);
 
         writeD(_activeChar.getClanPrivileges());
 
         writeH(_activeChar.getRecomLeft()); //c2  recommendations remaining
         writeH(_activeChar.getRecomHave()); //c2  recommendations received
-        writeD(_activeChar.getMountNpcId() + 1000000);
+        writeD(_activeChar.getMountNpcId() > 0 ? _activeChar.getMountNpcId() + 1000000 : 0);
         writeH(_activeChar.getInventoryLimit());
 
         writeD(_activeChar.getClassId().getId());
@@ -338,21 +329,26 @@ public final class UserInfo extends L2GameServerPacket
         // T1 Starts
         writeD(_activeChar.getTransformationId());
         
-        writeD(_activeChar.getAttackElement());
-        writeD(_activeChar.getAttackElementValue());
-        writeD(_activeChar.getDefAttrFire());
-        writeD(_activeChar.getDefAttrWater());
-        writeD(_activeChar.getDefAttrWind());
-        writeD(_activeChar.getDefAttrEarth());
-        writeD(_activeChar.getDefAttrHoly());
-        writeD(_activeChar.getDefAttrUnholy());
+        int attackAttribute = _activeChar.getAttackElement();
+		writeH(attackAttribute);
+		writeH(_activeChar.getAttackElementValue(attackAttribute));
+        writeH(_activeChar.getDefAttrFire());
+        writeH(_activeChar.getDefAttrWater());
+        writeH(_activeChar.getDefAttrWind());
+        writeH(_activeChar.getDefAttrEarth());
+        writeH(_activeChar.getDefAttrHoly());
+        writeH(_activeChar.getDefAttrUnholy());
         
         writeD(_activeChar.getAgathionId());
         
         // T2 Starts
         writeD(_activeChar.getFame());  // Fame
-        writeD(0x00); // Unknown
-        writeD(_activeChar.getVitalityLevel());  // Vitality Level
+        writeD(0x01); // Unknown
+        writeD(0x00);  // Vitality Points
+        writeD(0x00); // CT2.3
+        writeD(0x00); // CT2.3
+        writeD(0x00); // CT2.3
+        writeD(0x00); // CT2.3
     }
 
     /* (non-Javadoc)

+ 9 - 3
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ValidateLocationInVehicle.java

@@ -15,6 +15,7 @@
 package net.sf.l2j.gameserver.network.serverpackets;
 
 import net.sf.l2j.gameserver.model.actor.L2Character;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 /**
  * This class ...
  *
@@ -23,7 +24,7 @@ import net.sf.l2j.gameserver.model.actor.L2Character;
 public class ValidateLocationInVehicle extends L2GameServerPacket
 {
     private static final String _S__73_ValidateLocationInVehicle = "[S] 80 ValidateLocationInVehicle";
-    private L2Character _activeChar;
+    private L2PcInstance _activeChar;
 
 
     /**
@@ -32,15 +33,20 @@ public class ValidateLocationInVehicle extends L2GameServerPacket
      */
     public ValidateLocationInVehicle(L2Character player)
     {
-    	_activeChar = player;
+    	if (!(player instanceof L2PcInstance)) return;
+
+		_activeChar = (L2PcInstance)player;
+
+		if (_activeChar.getBoat() == null) return;
     }
 
     @Override
 	protected final void writeImpl()
     {
+    	
         writeC(0x80);
         writeD(_activeChar.getObjectId());
-        writeD(1343225858); //TODO verify vehicle object id ??
+        writeD(_activeChar.getBoat().getObjectId());
         writeD(_activeChar.getX());
         writeD(_activeChar.getY());
         writeD(_activeChar.getZ());

+ 9 - 9
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/WareHouseDepositList.java

@@ -29,13 +29,13 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 public final class WareHouseDepositList extends L2GameServerPacket
 {
 	public static final int PRIVATE = 1;
-	public static final int CLAN = 2;
+	public static final int CLAN = 4;
 	public static final int CASTLE = 3; //not sure
-	public static final int FREIGHT = 4; //not sure
+	public static final int FREIGHT = 1;
 	private static Logger _log = Logger.getLogger(WareHouseDepositList.class.getName());
 	private static final String _S__53_WAREHOUSEDEPOSITLIST = "[S] 41 WareHouseDepositList";
 	private L2PcInstance _activeChar;
-	private int _playerAdena;
+	private long _playerAdena;
 	private FastList<L2ItemInstance> _items;
 	private int _whType;
 	
@@ -71,7 +71,7 @@ public final class WareHouseDepositList extends L2GameServerPacket
 		* 0x03-Castle Warehouse
 		* 0x04-Warehouse */
 		writeH(_whType);
-		writeD(_playerAdena);
+		writeQ(_playerAdena);
 		int count = _items.size();
 		if (Config.DEBUG)
 			_log.fine("count:" + count);
@@ -82,7 +82,7 @@ public final class WareHouseDepositList extends L2GameServerPacket
 			writeH(item.getItem().getType1());
 			writeD(item.getObjectId());
 			writeD(item.getItemId());
-			writeD(item.getCount());
+			writeQ(item.getCount());
 			writeH(item.getItem().getType2());
 			writeH(item.getCustomType1());
 			writeD(item.getItem().getBodyPart());
@@ -98,16 +98,16 @@ public final class WareHouseDepositList extends L2GameServerPacket
 			else
 				writeQ(0x00);
 			
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 			
 			writeD(item.getMana());
 			// T2
-			writeD(0x00);
+			writeD(item.isTimeLimitedItem() ? (int) (item.getRemainingTime()/1000) : -1);
 		}
 	}
 	

+ 9 - 9
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/WareHouseWithdrawalList.java

@@ -28,13 +28,13 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
 public final class WareHouseWithdrawalList extends L2GameServerPacket
 {
 	public static final int PRIVATE = 1;
-	public static final int CLAN = 2;
+	public static final int CLAN = 4;
 	public static final int CASTLE = 3; //not sure
-	public static final int FREIGHT = 4; //not sure
+	public static final int FREIGHT = 1;
 	private static Logger _log = Logger.getLogger(WareHouseWithdrawalList.class.getName());
 	private static final String _S__54_WAREHOUSEWITHDRAWALLIST = "[S] 42 WareHouseWithdrawalList";
 	private L2PcInstance _activeChar;
-	private int _playerAdena;
+	private long _playerAdena;
 	private L2ItemInstance[] _items;
 	private int _whType;
 	
@@ -67,7 +67,7 @@ public final class WareHouseWithdrawalList extends L2GameServerPacket
 		* 0x03-Castle Warehouse
 		* 0x04-Warehouse */
 		writeH(_whType);
-		writeD(_playerAdena);
+		writeQ(_playerAdena);
 		writeH(_items.length);
 		
 		for (L2ItemInstance item : _items)
@@ -75,7 +75,7 @@ public final class WareHouseWithdrawalList extends L2GameServerPacket
 			writeH(item.getItem().getType1());
 			writeD(item.getObjectId());
 			writeD(item.getItemId());
-			writeD(item.getCount());
+			writeQ(item.getCount());
 			writeH(item.getItem().getType2());
 			writeH(item.getCustomType1());
 			writeD(item.getItem().getBodyPart());
@@ -91,16 +91,16 @@ public final class WareHouseWithdrawalList extends L2GameServerPacket
 			else
 				writeQ(0x00);
 			
-			writeD(item.getAttackElementType());
-			writeD(item.getAttackElementPower());
+			writeH(item.getAttackElementType());
+			writeH(item.getAttackElementPower());
 			for (byte i = 0; i < 6; i++)
 			{
-				writeD(item.getElementDefAttr(i));
+				writeH(item.getElementDefAttr(i));
 			}
 			
 			writeD(item.getMana());
 			// T2
-			writeD(0x00);
+			writeD(item.isTimeLimitedItem() ? (int) (item.getRemainingTime()/1000) : -1);
 		}
 	}
 	

+ 36 - 0
L2_GameServer/java/net/sf/l2j/gameserver/skills/conditions/ConditionPlayerFlyMounted.java

@@ -0,0 +1,36 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.skills.conditions;
+
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.skills.Env;
+
+/**
+ * @author kerberos
+ *
+ */
+public class ConditionPlayerFlyMounted extends Condition {
+
+	private boolean _val;
+	public ConditionPlayerFlyMounted(boolean val)
+	{
+		_val = val;
+	}
+
+	@Override
+	public boolean testImpl(Env env) {
+		return (env.player instanceof L2PcInstance) ? ((L2PcInstance) env.player).isFlyingMounted() == _val : true;
+	}
+}

+ 36 - 0
L2_GameServer/java/net/sf/l2j/gameserver/skills/conditions/ConditionPlayerLandingZone.java

@@ -0,0 +1,36 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.skills.conditions;
+
+import net.sf.l2j.gameserver.model.actor.L2Character;
+import net.sf.l2j.gameserver.skills.Env;
+
+/**
+ * @author kerberos
+ *
+ */
+public class ConditionPlayerLandingZone extends Condition {
+
+	private boolean _val;
+	public ConditionPlayerLandingZone(boolean val)
+	{
+		_val = val;
+	}
+
+	@Override
+	public boolean testImpl(Env env) {
+		return env.player.isInsideZone(L2Character.ZONE_LANDING) == _val;
+	}
+}

+ 0 - 2
L2_GameServer/java/net/sf/l2j/gameserver/taskmanager/tasks/TaskRaidPointsReset.java

@@ -21,7 +21,6 @@ import net.sf.l2j.Config;
 import net.sf.l2j.gameserver.datatables.ClanTable;
 import net.sf.l2j.gameserver.instancemanager.RaidBossPointsManager;
 import net.sf.l2j.gameserver.model.L2Clan;
-import net.sf.l2j.gameserver.network.serverpackets.PledgeShowInfoUpdate;
 import net.sf.l2j.gameserver.taskmanager.Task;
 import net.sf.l2j.gameserver.taskmanager.TaskManager;
 import net.sf.l2j.gameserver.taskmanager.TaskTypes;
@@ -96,7 +95,6 @@ public class TaskRaidPointsReset extends Task
 								break;
 						}
 						c.setReputationScore(c.getReputationScore() + reputation, true);
-						c.broadcastToOnlineMembers(new PledgeShowInfoUpdate(c));
 					}
 				}
 			}

+ 5 - 43
L2_GameServer/java/net/sf/l2j/gameserver/templates/L2HelperBuff.java

@@ -38,6 +38,7 @@ public class L2HelperBuff
 	 *  If False only Fighter class will obtain this Buff */
 	private boolean _isMagicClass;
 	
+	private boolean _forSummon = false;
 	/**
 	 * Constructor of L2HelperBuff.<BR><BR>
 	 */
@@ -48,6 +49,8 @@ public class L2HelperBuff
 		_upperLevel = set.getInteger("upperLevel");
 		_skillID = set.getInteger("skillID");
 		_skillLevel = set.getInteger("skillLevel");
+		if ("true".equals(set.getString("forSummon")))
+			_forSummon = true;
 		
 		if ("false".equals(set.getString("isMagicClass")))
 			_isMagicClass = false;
@@ -65,15 +68,6 @@ public class L2HelperBuff
 		return _lowerLevel;
 	}
 	
-	/**
-	 * Sets the lower level that the L2PcInstance must achieve in order to obtain this buff
-	 * @param itemId : int designating the lower level
-	 */
-	public void setLowerLevel(int lowerLevel)
-	{
-		_lowerLevel = lowerLevel;
-	}
-	
 	/**
 	 * Returns the upper level that the L2PcInstance mustn't exceed in order to obtain this buff
 	 * @return int
@@ -83,15 +77,6 @@ public class L2HelperBuff
 		return _upperLevel;
 	}
 	
-	/**
-	 * Sets the upper level that the L2PcInstance mustn't exceed in order to obtain this buff
-	 * @param itemId : int designating the upper level
-	 */
-	public void setUpperLevel(int upperLevel)
-	{
-		_upperLevel = upperLevel;
-	}
-	
 	/**
 	 * Returns the ID of the buff that the L2PcInstance will receive
 	 * @return int
@@ -101,15 +86,6 @@ public class L2HelperBuff
 		return _skillID;
 	}
 	
-	/**
-	 * Sets the ID of the buff that the L2PcInstance will receive
-	 * @param itemId : int designating the skill Identifier
-	 */
-	public void setSkillID(int skillID)
-	{
-		_skillID = skillID;
-	}
-	
 	/**
 	 * Returns the Level of the buff that the L2PcInstance will receive
 	 * @return int
@@ -119,15 +95,6 @@ public class L2HelperBuff
 		return _skillLevel;
 	}
 	
-	/**
-	 * Sets the Level of the buff that the L2PcInstance will receive
-	 * @param itemId : int designating the level of the skill
-	 */
-	public void setSkillLevel(int skillLevel)
-	{
-		_skillLevel = skillLevel;
-	}
-	
 	/**
 	 * Returns if this Buff can be cast on a fighter or a mystic
 	 * @return boolean : False if it's a fighter class Buff
@@ -137,13 +104,8 @@ public class L2HelperBuff
 		return _isMagicClass;
 	}
 	
-	/**
-	 * Sets if this Buff can be cast on a fighter or a mystic
-	 * @param sweep
-	 */
-	public void setIsMagicClass(boolean isMagicClass)
+	public boolean isForSummon()
 	{
-		_isMagicClass = isMagicClass;
+		return _forSummon;
 	}
-	
 }

+ 12 - 12
L2_GameServer/java/net/sf/l2j/gameserver/templates/chars/L2CharTemplate.java

@@ -79,12 +79,12 @@ public class L2CharTemplate
 	public final double baseMovementVuln;
 	public final double baseConfusionVuln;
 	public final double baseSleepVuln;
-	public final double baseFireVuln;
-	public final double baseWindVuln;
-	public final double baseWaterVuln;
-	public final double baseEarthVuln;
-	public final double baseHolyVuln;
-	public final double baseDarkVuln;
+	public final double baseFireRes;
+	public final double baseWindRes;
+	public final double baseWaterRes;
+	public final double baseEarthRes;
+	public final double baseHolyRes;
+	public final double baseDarkRes;
 	public final double baseCritVuln;
 	
 	public final boolean isUndead;
@@ -149,12 +149,12 @@ public class L2CharTemplate
 		baseMovementVuln = set.getInteger("baseMovementVuln", 1);
 		baseConfusionVuln = set.getInteger("baseConfusionVuln", 1);
 		baseSleepVuln = set.getInteger("baseSleepVuln", 1);
-		baseFireVuln = set.getInteger("baseFireVuln", 1);
-		baseWindVuln = set.getInteger("baseWindVuln", 1);
-		baseWaterVuln = set.getInteger("baseWaterVuln", 1);
-		baseEarthVuln = set.getInteger("baseEarthVuln", 1);
-		baseHolyVuln = set.getInteger("baseHolyVuln", 1);
-		baseDarkVuln = set.getInteger("baseDarkVuln", 1);
+		baseFireRes = set.getInteger("baseFireRes", 0);
+		baseWindRes = set.getInteger("baseWindRes", 0);
+		baseWaterRes = set.getInteger("baseWaterRes", 0);
+		baseEarthRes = set.getInteger("baseEarthRes", 0);
+		baseHolyRes = set.getInteger("baseHolyRes", 0);
+		baseDarkRes = set.getInteger("baseDarkRes", 0);
 		baseCritVuln = set.getInteger("baseCritVuln", 1);
 		
 		isUndead = (set.getInteger("isUndead", 0) == 1);