Sarada-L2

aCis Protocol 216 + alterações By: D1MITRY-DEV

Jul 17th, 2024
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 186.97 KB | None | 0 0
  1. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java
  2. index fb0a4c2e..9ff755e7 100644
  3. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java
  4. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java
  5. @@ -133,7 +133,8 @@ else if (player.getInventory().getItemByItemId(e.getItemId()) == null)
  6. // this happens if 1 list entry has the same ingredient twice (example 2 swords = 1 dual)
  7. if (ex.getItemId() == e.getItemId() && ex.getEnchantLevel() == e.getEnchantLevel())
  8. {
  9. - if (ex.getItemCount() + e.getItemCount() > Integer.MAX_VALUE)
  10. + //if (ex.getItemCount() + e.getItemCount() > Integer.MAX_VALUE)
  11. + if (ex.getItemCount() > Integer.MAX_VALUE - e.getItemCount())
  12. {
  13. player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED);
  14. return;
  15. @@ -157,7 +158,8 @@ else if (player.getInventory().getItemByItemId(e.getItemId()) == null)
  16. // now check if the player has sufficient items in the inventory to cover the ingredients' expences
  17. for (Ingredient e : ingredientsList)
  18. {
  19. - if (e.getItemCount() * _amount > Integer.MAX_VALUE)
  20. + //if (e.getItemCount() * _amount > Integer.MAX_VALUE)
  21. + if (e.getItemCount() > Integer.MAX_VALUE / _amount)
  22. {
  23. player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED);
  24. return;
  25. @@ -326,7 +328,7 @@ else if (player.getInventory().getItemByItemId(e.getItemId()) == null)
  26. }
  27. }
  28. player.sendPacket(new ItemList(player, false));
  29. -
  30. +
  31. // All ok, send success message, remove items and add final product
  32. player.sendPacket(SystemMessageId.SUCCESSFULLY_TRADED_WITH_NPC);
  33.  
  34. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/NewCharacter.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/NewCharacter.java
  35. index 93469994..2851e9e3 100644
  36. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/NewCharacter.java
  37. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/NewCharacter.java
  38. @@ -2,6 +2,7 @@
  39.  
  40. import com.l2jmega.gameserver.data.xml.PlayerData;
  41. import com.l2jmega.gameserver.model.base.ClassId;
  42. +import com.l2jmega.gameserver.network.serverpackets.NewCharacterSuccess;
  43. import com.l2jmega.gameserver.network.serverpackets.CharTemplates;
  44.  
  45. public final class NewCharacter extends L2GameClientPacket
  46. @@ -14,7 +15,8 @@ protected void readImpl()
  47. @Override
  48. protected void runImpl()
  49. {
  50. - CharTemplates ct = new CharTemplates();
  51. + // CharTemplates ct = new CharTemplates();
  52. + NewCharacterSuccess ct = new NewCharacterSuccess();
  53.  
  54. ct.addChar(PlayerData.getInstance().getTemplate(0));
  55. ct.addChar(PlayerData.getInstance().getTemplate(ClassId.HUMAN_FIGHTER));
  56. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/ProtocolVersion.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/ProtocolVersion.java
  57. index 4eb84a50..2953c52a 100644
  58. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/ProtocolVersion.java
  59. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/ProtocolVersion.java
  60. @@ -16,9 +16,12 @@ protected void readImpl()
  61. @Override
  62. protected void runImpl()
  63. {
  64. - if (_version != 746)
  65. + if (_version != 216)
  66. + {
  67. + // getClient().sendPacket(new KeyPacket(getClient().enableCrypt(),0));
  68. getClient().close((L2GameServerPacket) null);
  69. + }
  70. else
  71. - getClient().sendPacket(new KeyPacket(getClient().enableCrypt()));
  72. + getClient().sendPacket(new KeyPacket(getClient().enableCrypt(),1));
  73. }
  74. }
  75. \ No newline at end of file
  76. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestActionUse.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestActionUse.java
  77. index 02c3c360..373a039b 100644
  78. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestActionUse.java
  79. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestActionUse.java
  80. @@ -19,6 +19,7 @@
  81. import com.l2jmega.gameserver.model.location.Location;
  82. import com.l2jmega.gameserver.network.SystemMessageId;
  83. import com.l2jmega.gameserver.network.serverpackets.ActionFailed;
  84. +import com.l2jmega.gameserver.network.serverpackets.SocialAction;
  85. import com.l2jmega.gameserver.network.serverpackets.NpcSay;
  86.  
  87. public final class RequestActionUse extends L2GameClientPacket
  88. @@ -330,7 +331,9 @@ else if (pet.isAttackingNow() || pet.isInCombat())
  89. case 61: // Private Store Package Sell
  90. player.tryOpenPrivateSellStore(true);
  91. break;
  92. -
  93. + case 65:
  94. +
  95. + break;
  96. case 1000: // Siege Golem - Siege Hammer
  97. if (!(target instanceof Door))
  98. {
  99. @@ -457,6 +460,50 @@ else if (pet.isAttackingNow() || pet.isInCombat())
  100.  
  101. useSkill(5111, target);
  102. break;
  103. + //CT2.3 Social Packets
  104. + case 12:
  105. + tryBroadcastSocial(2);
  106. + break;
  107. + case 13:
  108. + tryBroadcastSocial(3);
  109. + break;
  110. + case 14:
  111. + tryBroadcastSocial(4);
  112. + break;
  113. + case 24:
  114. + tryBroadcastSocial(6);
  115. + break;
  116. + case 25:
  117. + tryBroadcastSocial(5);
  118. + break;
  119. + case 26:
  120. + tryBroadcastSocial(7);
  121. + break;
  122. + case 29:
  123. + tryBroadcastSocial(8);
  124. + break;
  125. + case 30:
  126. + tryBroadcastSocial(9);
  127. + break;
  128. + case 31:
  129. + tryBroadcastSocial(10);
  130. + break;
  131. + case 33:
  132. + tryBroadcastSocial(11);
  133. + break;
  134. + case 34:
  135. + tryBroadcastSocial(12);
  136. + break;
  137. + case 35:
  138. + tryBroadcastSocial(13);
  139. + break;
  140. + case 62:
  141. + tryBroadcastSocial(14);
  142. + break;
  143. + case 66:
  144. + tryBroadcastSocial(15);
  145. + break;
  146. +
  147.  
  148. default:
  149. LOGGER.warn("Unhandled action type {} detected for {}.", _actionId, player.getName());
  150. @@ -507,4 +554,25 @@ private boolean useSkill(int skillId, WorldObject target)
  151. activeSummon.setTarget(target);
  152. return activeSummon.useMagic(skill, _ctrlPressed, _shiftPressed);
  153. }
  154. +
  155. + private void tryBroadcastSocial(int id)
  156. + {
  157. + final Player activeChar = getClient().getActiveChar();
  158. + if (activeChar == null)
  159. + return;
  160. +
  161. + if (activeChar.isFishing())
  162. + {
  163. + activeChar.sendPacket(SystemMessageId.CANNOT_DO_WHILE_FISHING_3);
  164. + return;
  165. + }
  166. +
  167. + //if (_actionId < 2 || _actionId > 13)
  168. + // return;
  169. +
  170. + if (activeChar.isInStoreMode() || activeChar.getActiveRequester() != null || activeChar.isAlikeDead() || activeChar.getAI().getIntention() != CtrlIntention.IDLE)
  171. + return;
  172. +
  173. + activeChar.broadcastPacket(new SocialAction(activeChar, id));
  174. + }
  175. }
  176. \ No newline at end of file
  177. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestAllAgitInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestAllAgitInfo.java
  178. new file mode 100644
  179. index 00000000..a8fde6b5
  180. --- /dev/null
  181. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestAllAgitInfo.java
  182. @@ -0,0 +1,58 @@
  183. +/*
  184. + * This program is free software: you can redistribute it and/or modify it under
  185. + * the terms of the GNU General Public License as published by the Free Software
  186. + * Foundation, either version 3 of the License, or (at your option) any later
  187. + * version.
  188. + *
  189. + * This program is distributed in the hope that it will be useful, but WITHOUT
  190. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  191. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  192. + * details.
  193. + *
  194. + * You should have received a copy of the GNU General Public License along with
  195. + * this program. If not, see <http://www.gnu.org/licenses/>.
  196. + */
  197. +package com.l2jmega.gameserver.network.clientpackets;
  198. +
  199. +import com.l2jmega.gameserver.network.L2GameClient;
  200. +//import com.l2jmega.gameserver.network.serverpackets.ExShowAgitInfo;
  201. +
  202. +/**
  203. + *
  204. + * @author KenM
  205. + */
  206. +public class RequestAllAgitInfo extends L2GameClientPacket
  207. +{
  208. +
  209. + /**
  210. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#getType()
  211. + */
  212. + @Override
  213. + public String getType()
  214. + {
  215. + return "[C] D0:41 RequestAllAgitInfo";
  216. + }
  217. +
  218. + /**
  219. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#readImpl()
  220. + */
  221. + @Override
  222. + protected void readImpl()
  223. + {
  224. +
  225. + }
  226. +
  227. + /**
  228. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#runImpl()
  229. + */
  230. + @Override
  231. + protected void runImpl()
  232. + {
  233. + // L2GameClient client = this.getClient();
  234. + // if (client != null)
  235. + // {
  236. + // client.sendPacket(new ExShowAgitInfo());
  237. + // }
  238. + }
  239. +
  240. +}
  241. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestAllCastleInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestAllCastleInfo.java
  242. new file mode 100644
  243. index 00000000..ef629df5
  244. --- /dev/null
  245. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestAllCastleInfo.java
  246. @@ -0,0 +1,58 @@
  247. +/*
  248. + * This program is free software: you can redistribute it and/or modify it under
  249. + * the terms of the GNU General Public License as published by the Free Software
  250. + * Foundation, either version 3 of the License, or (at your option) any later
  251. + * version.
  252. + *
  253. + * This program is distributed in the hope that it will be useful, but WITHOUT
  254. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  255. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  256. + * details.
  257. + *
  258. + * You should have received a copy of the GNU General Public License along with
  259. + * this program. If not, see <http://www.gnu.org/licenses/>.
  260. + */
  261. +package com.l2jmega.gameserver.network.clientpackets;
  262. +
  263. +import com.l2jmega.gameserver.network.L2GameClient;
  264. +//import com.l2jmega.gameserver.network.serverpackets.ExShowCastleInfo;
  265. +
  266. +/**
  267. + *
  268. + * @author KenM
  269. + */
  270. +public class RequestAllCastleInfo extends L2GameClientPacket
  271. +{
  272. +
  273. + /**
  274. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#getType()
  275. + */
  276. + @Override
  277. + public String getType()
  278. + {
  279. + return "[C] D0:3F RequestAllCastleInfo";
  280. + }
  281. +
  282. + /**
  283. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#readImpl()
  284. + */
  285. + @Override
  286. + protected void readImpl()
  287. + {
  288. + // trigger
  289. + }
  290. +
  291. + /**
  292. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#runImpl()
  293. + */
  294. + @Override
  295. + protected void runImpl()
  296. + {
  297. + // L2GameClient client = this.getClient();
  298. + // if (client != null)
  299. + // {
  300. + // client.sendPacket(new ExShowCastleInfo());
  301. + // }
  302. + }
  303. +
  304. +}
  305. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestAllFortressInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestAllFortressInfo.java
  306. new file mode 100644
  307. index 00000000..9cbcdc00
  308. --- /dev/null
  309. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestAllFortressInfo.java
  310. @@ -0,0 +1,58 @@
  311. +/*
  312. + * This program is free software: you can redistribute it and/or modify it under
  313. + * the terms of the GNU General Public License as published by the Free Software
  314. + * Foundation, either version 3 of the License, or (at your option) any later
  315. + * version.
  316. + *
  317. + * This program is distributed in the hope that it will be useful, but WITHOUT
  318. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  319. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  320. + * details.
  321. + *
  322. + * You should have received a copy of the GNU General Public License along with
  323. + * this program. If not, see <http://www.gnu.org/licenses/>.
  324. + */
  325. +package com.l2jmega.gameserver.network.clientpackets;
  326. +
  327. +import com.l2jmega.gameserver.network.L2GameClient;
  328. +//import com.l2jmega.gameserver.network.serverpackets.ExShowFortressInfo;
  329. +
  330. +/**
  331. + *
  332. + * @author KenM
  333. + */
  334. +public class RequestAllFortressInfo extends L2GameClientPacket
  335. +{
  336. +
  337. + /**
  338. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#getType()
  339. + */
  340. + @Override
  341. + public String getType()
  342. + {
  343. + return "[C] D0:3D RequestAllFortressInfo";
  344. + }
  345. +
  346. + /**
  347. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#readImpl()
  348. + */
  349. + @Override
  350. + protected void readImpl()
  351. + {
  352. + // trigger packet
  353. + }
  354. +
  355. + /**
  356. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#runImpl()
  357. + */
  358. + @Override
  359. + protected void runImpl()
  360. + {
  361. + // L2GameClient client = this.getClient();
  362. + // if (client != null)
  363. + // {
  364. +// client.sendPacket(new ExShowFortressInfo());
  365. +// }
  366. + }
  367. +
  368. +}
  369. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBookMarkSlotInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBookMarkSlotInfo.java
  370. new file mode 100644
  371. index 00000000..578560a4
  372. --- /dev/null
  373. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBookMarkSlotInfo.java
  374. @@ -0,0 +1,58 @@
  375. +/*
  376. + * This program is free software: you can redistribute it and/or modify it under
  377. + * the terms of the GNU General Public License as published by the Free Software
  378. + * Foundation, either version 3 of the License, or (at your option) any later
  379. + * version.
  380. + *
  381. + * This program is distributed in the hope that it will be useful, but WITHOUT
  382. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  383. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  384. + * details.
  385. + *
  386. + * You should have received a copy of the GNU General Public License along with
  387. + * this program. If not, see <http://www.gnu.org/licenses/>.
  388. + */
  389. +package com.l2jmega.gameserver.network.clientpackets;
  390. +
  391. +import com.l2jmega.gameserver.network.L2GameClient;
  392. +//import com.l2jmega.gameserver.network.serverpackets.ExShowFortressInfo;
  393. +
  394. +/**
  395. + *
  396. + * @author KenM
  397. + */
  398. +public class RequestBookMarkSlotInfo extends L2GameClientPacket
  399. +{
  400. +
  401. + /**
  402. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#getType()
  403. + */
  404. + @Override
  405. + public String getType()
  406. + {
  407. + return "[C] D0:3D RequestBookMarkSlotInfo";
  408. + }
  409. +
  410. + /**
  411. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#readImpl()
  412. + */
  413. + @Override
  414. + protected void readImpl()
  415. + {
  416. + // trigger packet
  417. + }
  418. +
  419. + /**
  420. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#runImpl()
  421. + */
  422. + @Override
  423. + protected void runImpl()
  424. + {
  425. + // L2GameClient client = this.getClient();
  426. + // if (client != null)
  427. + // {
  428. +// client.sendPacket(new ExShowFortressInfo());
  429. +// }
  430. + }
  431. +
  432. +}
  433. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyItem.java
  434. index a02d24fb..ef3ffcbd 100644
  435. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyItem.java
  436. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyItem.java
  437. @@ -12,14 +12,11 @@
  438. import com.l2jmega.gameserver.model.buylist.Product;
  439. import com.l2jmega.gameserver.model.holder.IntIntHolder;
  440. import com.l2jmega.gameserver.network.SystemMessageId;
  441. -import com.l2jmega.gameserver.network.serverpackets.ItemList;
  442. -import com.l2jmega.gameserver.network.serverpackets.NpcHtmlMessage;
  443. -import com.l2jmega.gameserver.network.serverpackets.StatusUpdate;
  444. -import com.l2jmega.gameserver.network.serverpackets.SystemMessage;
  445. +import com.l2jmega.gameserver.network.serverpackets.*;
  446.  
  447. public final class RequestBuyItem extends L2GameClientPacket
  448. {
  449. - private static final int BATCH_LENGTH = 8; // length of the one item
  450. + private static final int BATCH_LENGTH = 12; // length of the one item
  451.  
  452. private int _listId;
  453. private IntIntHolder[] _items = null;
  454. @@ -36,7 +33,7 @@ protected void readImpl()
  455. for (int i = 0; i < count; i++)
  456. {
  457. int itemId = readD();
  458. - int cnt = readD();
  459. + int cnt = (int) readQ();
  460.  
  461. if (itemId < 1 || cnt < 1)
  462. {
  463. @@ -80,9 +77,9 @@ protected void runImpl()
  464. castleTaxRate = merchant.getCastle().getTaxRate();
  465. }
  466.  
  467. - int subTotal = 0;
  468. - int slots = 0;
  469. - int weight = 0;
  470. + long subTotal = 0;
  471. + long slots = 0;
  472. + long weight = 0;
  473.  
  474. for (IntIntHolder i : _items)
  475. {
  476. @@ -132,20 +129,20 @@ else if (player.getInventory().getItemByItemId(i.getId()) == null)
  477. slots++;
  478. }
  479.  
  480. - if (weight > Integer.MAX_VALUE || weight < 0 || !player.getInventory().validateWeight(weight))
  481. + if (weight > Integer.MAX_VALUE || weight < 0 || !player.getInventory().validateWeight((int) weight))
  482. {
  483. sendPacket(SystemMessage.getSystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
  484. return;
  485. }
  486.  
  487. - if (slots > Integer.MAX_VALUE || slots < 0 || !player.getInventory().validateCapacity(slots))
  488. + if (slots > Integer.MAX_VALUE || slots < 0 || !player.getInventory().validateCapacity((int) slots))
  489. {
  490. sendPacket(SystemMessage.getSystemMessage(SystemMessageId.SLOTS_FULL));
  491. return;
  492. }
  493.  
  494. // Charge buyer and add tax to castle treasury if not owned by npc clan
  495. - if (subTotal < 0 || !player.reduceAdena("Buy", subTotal, player.getCurrentFolk(), false))
  496. + if (subTotal < 0 || !player.reduceAdena("Buy", (int) subTotal, player.getCurrentFolk(), false))
  497. {
  498. sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_NOT_ENOUGH_ADENA));
  499. return;
  500. @@ -196,5 +193,6 @@ else if (merchant instanceof Merchant)
  501. su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
  502. player.sendPacket(su);
  503. player.sendPacket(new ItemList(player, true));
  504. + player.sendPacket(new ExBuySellListPacket());
  505. }
  506. }
  507. \ No newline at end of file
  508. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyProcure.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyProcure.java
  509. index 82483e04..8eab5de2 100644
  510. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyProcure.java
  511. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyProcure.java
  512. @@ -8,7 +8,7 @@
  513.  
  514. public class RequestBuyProcure extends L2GameClientPacket
  515. {
  516. - private static final int BATCH_LENGTH = 8;
  517. + private static final int BATCH_LENGTH = 12;
  518.  
  519. private int _manorId;
  520. private List<IntIntHolder> _items;
  521. @@ -27,7 +27,7 @@ protected void readImpl()
  522. {
  523. readD(); // service
  524. final int itemId = readD();
  525. - final int cnt = readD();
  526. + final int cnt = (int)readQ();
  527.  
  528. if (itemId < 1 || cnt < 1)
  529. {
  530. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuySeed.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuySeed.java
  531. index b2e68801..1dbfe01b 100644
  532. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuySeed.java
  533. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuySeed.java
  534. @@ -24,7 +24,7 @@
  535.  
  536. public class RequestBuySeed extends L2GameClientPacket
  537. {
  538. - private static final int BATCH_LENGTH = 8;
  539. + private static final int BATCH_LENGTH = 12;
  540.  
  541. private int _manorId;
  542. private List<IntIntHolder> _items;
  543. @@ -42,7 +42,7 @@ protected void readImpl()
  544. for (int i = 0; i < count; i++)
  545. {
  546. final int itemId = readD();
  547. - final int cnt = readD();
  548. + final int cnt = (int)readQ();
  549.  
  550. if (cnt < 1 || itemId < 1)
  551. {
  552. @@ -91,7 +91,7 @@ protected void runImpl()
  553. return;
  554. }
  555.  
  556. - int totalPrice = 0;
  557. + long totalPrice = 0;
  558. int slots = 0;
  559. int totalWeight = 0;
  560.  
  561. @@ -166,7 +166,7 @@ else if (player.getInventory().getItemByItemId(ih.getId()) == null)
  562. if (totalPrice > 0)
  563. {
  564. castle.addToTreasuryNoTax(totalPrice);
  565. - player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED_ADENA).addItemNumber(totalPrice));
  566. + player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED_ADENA).addItemNumber((int) totalPrice));
  567. }
  568. }
  569. }
  570. \ No newline at end of file
  571. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuySellUIClose.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuySellUIClose.java
  572. new file mode 100644
  573. index 00000000..ebb59550
  574. --- /dev/null
  575. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuySellUIClose.java
  576. @@ -0,0 +1,48 @@
  577. +/*
  578. + * This program is free software: you can redistribute it and/or modify it under
  579. + * the terms of the GNU General Public License as published by the Free Software
  580. + * Foundation, either version 3 of the License, or (at your option) any later
  581. + * version.
  582. + *
  583. + * This program is distributed in the hope that it will be useful, but WITHOUT
  584. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  585. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  586. + * details.
  587. + *
  588. + * You should have received a copy of the GNU General Public License along with
  589. + * this program. If not, see <http://www.gnu.org/licenses/>.
  590. + */
  591. +package com.l2jmega.gameserver.network.clientpackets;
  592. +
  593. +import com.l2jmega.gameserver.model.actor.instance.Player;
  594. +import com.l2jmega.gameserver.network.serverpackets.ItemList;
  595. +
  596. +public class RequestBuySellUIClose extends L2GameClientPacket
  597. +{
  598. + private static final String _C__D0_76_REQUESTBUYSELLUICLOSE = "[C] D0:76 RequestBuySellUIClose";
  599. +
  600. + @Override
  601. + protected void readImpl()
  602. + {
  603. + // trigger
  604. + }
  605. +
  606. + @Override
  607. + protected void runImpl()
  608. + {
  609. + final Player activeChar = getClient().getActiveChar();
  610. + if (activeChar == null || activeChar.isInventoryDisabled())
  611. + return;
  612. +
  613. + activeChar.sendPacket(new ItemList(activeChar, true));
  614. + }
  615. +
  616. + /* (non-Javadoc)
  617. + * @see com.l2jmega.gameserver.clientpackets.ClientBasePacket#getType()
  618. + */
  619. + @Override
  620. + public String getType()
  621. + {
  622. + return _C__D0_76_REQUESTBUYSELLUICLOSE;
  623. + }
  624. +}
  625. \ No newline at end of file
  626. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
  627. index bc002495..6695a33c 100644
  628. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
  629. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
  630. @@ -8,6 +8,8 @@
  631. import com.l2jmega.gameserver.data.xml.AdminData;
  632. import com.l2jmega.gameserver.handler.AdminCommandHandler;
  633. import com.l2jmega.gameserver.handler.IAdminCommandHandler;
  634. +import com.l2jmega.gameserver.handler.IVoiceCommandHandler;
  635. +import com.l2jmega.gameserver.handler.VoiceCommandHandler;
  636. import com.l2jmega.gameserver.model.World;
  637. import com.l2jmega.gameserver.model.WorldObject;
  638. import com.l2jmega.gameserver.model.actor.Npc;
  639. @@ -155,6 +157,18 @@ else if (_command.startsWith("_diary"))
  640. if (heroid > 0)
  641. Hero.getInstance().showHeroDiary(player, heroclass, heroid, heropage);
  642. }
  643. + else if (_command.startsWith("user_"))
  644. + {
  645. + final String command = _command.substring(5).trim();
  646. + final String word2 = command.split("\\s+")[0];
  647. + final String args2 = command.substring(word2.length()).trim();
  648. + final IVoiceCommandHandler vch = VoiceCommandHandler.getInstance().getVoicedCommandHandler(word2);
  649. + if (vch != null) {
  650. + vch.useVoicedCommand(word2, player, args2);
  651. + } else {
  652. + LOGGER.warn("Unknown voiced command '" + word2 + "'");
  653. + }
  654. + }
  655. else if (_command.startsWith("arenachange")) // change
  656. {
  657. final boolean isManager = player.getCurrentFolk() instanceof OlympiadManagerNpc;
  658. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestDropItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestDropItem.java
  659. index d0bf5650..753fd096 100644
  660. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestDropItem.java
  661. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestDropItem.java
  662. @@ -13,7 +13,9 @@
  663. public final class RequestDropItem extends L2GameClientPacket
  664. {
  665. private int _objectId;
  666. - private int _count;
  667. + private long _count;
  668. + private int _countint;
  669. + //private long _count3;
  670. private int _x;
  671. private int _y;
  672. private int _z;
  673. @@ -22,10 +24,11 @@ public final class RequestDropItem extends L2GameClientPacket
  674. protected void readImpl()
  675. {
  676. _objectId = readD();
  677. - _count = readD();
  678. + _count = readQ();
  679. _x = readD();
  680. _y = readD();
  681. _z = readD();
  682. + _countint = (int) _count;
  683. }
  684.  
  685. @Override
  686. @@ -129,6 +132,6 @@ protected void runImpl()
  687. activeChar.sendPacket(new ItemList(activeChar, true));
  688. }
  689.  
  690. - activeChar.dropItem("Drop", _objectId, _count, _x, _y, _z, null, false);
  691. + activeChar.dropItem("Drop", _objectId, _countint, _x, _y, _z, null, false);
  692. }
  693. }
  694. \ No newline at end of file
  695. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestDuelStart.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestDuelStart.java
  696. index 46418605..fd9fbacd 100644
  697. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestDuelStart.java
  698. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestDuelStart.java
  699. @@ -30,7 +30,8 @@ protected void runImpl()
  700. final Player targetChar = World.getInstance().getPlayer(_player);
  701. if (targetChar == null || activeChar == targetChar)
  702. {
  703. - activeChar.sendPacket(SystemMessageId.THERE_IS_NO_OPPONENT_TO_RECEIVE_YOUR_CHALLENGE_FOR_A_DUEL);
  704. + //activeChar.sendPacket(SystemMessageId.THERE_IS_NO_OPPONENT_TO_RECEIVE_YOUR_CHALLENGE_FOR_A_DUEL);
  705. + activeChar.sendPacket(SystemMessageId.YOU_ARE_UNABLE_TO_REQUEST_A_DUEL_AT_THIS_TIME);
  706. return;
  707. }
  708.  
  709. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java
  710. index 2a78f67a..9c8a9282 100644
  711. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java
  712. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java
  713. @@ -14,11 +14,7 @@
  714. import com.l2jmega.gameserver.model.item.kind.Weapon;
  715. import com.l2jmega.gameserver.model.itemcontainer.Inventory;
  716. import com.l2jmega.gameserver.network.SystemMessageId;
  717. -import com.l2jmega.gameserver.network.serverpackets.EnchantResult;
  718. -import com.l2jmega.gameserver.network.serverpackets.InventoryUpdate;
  719. -import com.l2jmega.gameserver.network.serverpackets.ItemList;
  720. -import com.l2jmega.gameserver.network.serverpackets.StatusUpdate;
  721. -import com.l2jmega.gameserver.network.serverpackets.SystemMessage;
  722. +import com.l2jmega.gameserver.network.serverpackets.*;
  723.  
  724. public final class RequestEnchantItem extends AbstractEnchantPacket
  725. {
  726. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestExCancelEnchantItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestExCancelEnchantItem.java
  727. new file mode 100644
  728. index 00000000..030c46a6
  729. --- /dev/null
  730. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestExCancelEnchantItem.java
  731. @@ -0,0 +1,57 @@
  732. +/*
  733. + * This program is free software: you can redistribute it and/or modify it under
  734. + * the terms of the GNU General Public License as published by the Free Software
  735. + * Foundation, either version 3 of the License, or (at your option) any later
  736. + * version.
  737. + *
  738. + * This program is distributed in the hope that it will be useful, but WITHOUT
  739. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  740. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  741. + * details.
  742. + *
  743. + * You should have received a copy of the GNU General Public License along with
  744. + * this program. If not, see <http://www.gnu.org/licenses/>.
  745. + */
  746. +package com.l2jmega.gameserver.network.clientpackets;
  747. +
  748. +import com.l2jmega.gameserver.model.actor.instance.Player;
  749. +import com.l2jmega.gameserver.network.serverpackets.EnchantResult;
  750. +
  751. +/**
  752. + *
  753. + * @author KenM
  754. + */
  755. +public class RequestExCancelEnchantItem extends L2GameClientPacket
  756. +{
  757. + /**
  758. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#getType()
  759. + */
  760. + @Override
  761. + public String getType()
  762. + {
  763. + return "[C] D0:51 RequestExCancelEnchantItem";
  764. + }
  765. +
  766. + /**
  767. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#readImpl()
  768. + */
  769. + @Override
  770. + protected void readImpl()
  771. + {
  772. + // nothing (trigger)
  773. + }
  774. +
  775. + /**
  776. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#runImpl()
  777. + */
  778. + @Override
  779. + protected void runImpl()
  780. + {
  781. + Player activeChar = this.getClient().getActiveChar();
  782. + if (activeChar != null)
  783. + {
  784. + activeChar.sendPacket(EnchantResult.CANCELLED);
  785. + activeChar.setActiveEnchantItem(null);
  786. + }
  787. + }
  788. +}
  789. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestExTryToPutEnchantSupportItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestExTryToPutEnchantSupportItem.java
  790. new file mode 100644
  791. index 00000000..7d43c3ac
  792. --- /dev/null
  793. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestExTryToPutEnchantSupportItem.java
  794. @@ -0,0 +1,58 @@
  795. +/*
  796. + * This program is free software: you can redistribute it and/or modify it under
  797. + * the terms of the GNU General Public License as published by the Free Software
  798. + * Foundation, either version 3 of the License, or (at your option) any later
  799. + * version.
  800. + *
  801. + * This program is distributed in the hope that it will be useful, but WITHOUT
  802. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  803. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  804. + * details.
  805. + *
  806. + * You should have received a copy of the GNU General Public License along with
  807. + * this program. If not, see <http://www.gnu.org/licenses/>.
  808. + */
  809. +package com.l2jmega.gameserver.network.clientpackets;
  810. +
  811. +import com.l2jmega.gameserver.network.L2GameClient;
  812. +//import com.l2jmega.gameserver.network.serverpackets.ExShowFortressInfo;
  813. +
  814. +/**
  815. + *
  816. + * @author KenM
  817. + */
  818. +public class RequestExTryToPutEnchantSupportItem extends L2GameClientPacket
  819. +{
  820. +
  821. + /**
  822. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#getType()
  823. + */
  824. + @Override
  825. + public String getType()
  826. + {
  827. + return "[C] D0:4d";
  828. + }
  829. +
  830. + /**
  831. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#readImpl()
  832. + */
  833. + @Override
  834. + protected void readImpl()
  835. + {
  836. + // trigger packet
  837. + }
  838. +
  839. + /**
  840. + * @see com.l2jmega.gameserver.network.clientpackets.L2GameClientPacket#runImpl()
  841. + */
  842. + @Override
  843. + protected void runImpl()
  844. + {
  845. + // L2GameClient client = this.getClient();
  846. + // if (client != null)
  847. + // {
  848. +// client.sendPacket(new ExShowFortressInfo());
  849. +// }
  850. + }
  851. +
  852. +}
  853. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestExTryToPutEnchantTargetItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestExTryToPutEnchantTargetItem.java
  854. new file mode 100644
  855. index 00000000..2e20b929
  856. --- /dev/null
  857. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestExTryToPutEnchantTargetItem.java
  858. @@ -0,0 +1,60 @@
  859. +package com.l2jmega.gameserver.network.clientpackets;
  860. +
  861. +import com.l2jmega.gameserver.model.actor.instance.Player;
  862. +import com.l2jmega.gameserver.model.item.instance.ItemInstance;
  863. +import com.l2jmega.gameserver.network.SystemMessageId;
  864. +import com.l2jmega.gameserver.network.serverpackets.ExPutEnchantTargetItemResult;
  865. +
  866. +/**
  867. + * Lineage2 Classic Project
  868. + * Chronicle: Kamael
  869. + *
  870. + * @author amaranthe
  871. + */
  872. +public class RequestExTryToPutEnchantTargetItem extends AbstractEnchantPacket {
  873. + private int _objectId = 0;
  874. +
  875. + @Override
  876. + protected void readImpl()
  877. + {
  878. + _objectId = readD();
  879. + }
  880. +
  881. + @Override
  882. + protected void runImpl()
  883. + {
  884. + Player activeChar = getClient().getActiveChar();
  885. +
  886. + if(_objectId == 0 || activeChar == null)
  887. + {
  888. + return;
  889. + }
  890. +
  891. + ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId);
  892. + ItemInstance scroll = activeChar.getActiveEnchantItem();
  893. +
  894. + if(item == null || scroll == null)
  895. + {
  896. + return;
  897. + }
  898. +
  899. + if(item.getOwnerId() != activeChar.getObjectId())
  900. + {
  901. + return;
  902. + }
  903. +
  904. + // template for scroll
  905. + EnchantScroll scrollTemplate = getEnchantScroll(scroll);
  906. +
  907. + if(scrollTemplate == null || !scrollTemplate.isValid(item))
  908. + {
  909. + activeChar.sendPacket(SystemMessageId.DOES_NOT_FIT_SCROLL_CONDITIONS);
  910. + // activeChar.setActiveEnchantItem(null);
  911. + activeChar.sendPacket(new ExPutEnchantTargetItemResult(0));
  912. + return;
  913. + }
  914. +
  915. + activeChar.sendPacket(new ExPutEnchantTargetItemResult(1));
  916. + }
  917. +
  918. +}
  919. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestGiveItemToPet.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestGiveItemToPet.java
  920. index 35eeb7b9..91e58334 100644
  921. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestGiveItemToPet.java
  922. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestGiveItemToPet.java
  923. @@ -20,7 +20,7 @@ public final class RequestGiveItemToPet extends L2GameClientPacket
  924. protected void readImpl()
  925. {
  926. _objectId = readD();
  927. - _amount = readD();
  928. + _amount = (int) readQ();
  929. }
  930.  
  931. @Override
  932. @@ -86,6 +86,10 @@ protected void runImpl()
  933. player.sendPacket(SystemMessageId.UNABLE_TO_PLACE_ITEM_YOUR_PET_IS_TOO_ENCUMBERED);
  934. return;
  935. }
  936. + if (player.isCastingNow() || player.isCastingSimultaneouslyNow())
  937. + {
  938. + return;
  939. + }
  940.  
  941. if (player.getActiveEnchantItem() != null)
  942. {
  943. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestItemList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestItemList.java
  944. index ab15bcb3..15043f1f 100644
  945. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestItemList.java
  946. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestItemList.java
  947. @@ -17,7 +17,8 @@ protected void runImpl()
  948. if (activeChar == null)
  949. return;
  950.  
  951. - if (!activeChar.isInventoryDisabled())
  952. + if (!activeChar.isInventoryDisabled()) {
  953. sendPacket(new ItemList(activeChar, true));
  954. + }
  955. }
  956. }
  957. \ No newline at end of file
  958. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestMagicSkillUse.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestMagicSkillUse.java
  959. index 95a5dada..4e2daf06 100644
  960. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestMagicSkillUse.java
  961. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestMagicSkillUse.java
  962. @@ -60,7 +60,7 @@ protected void runImpl()
  963. }
  964.  
  965. if (player.isAttackingNow())
  966. - player.getAI().setNextAction(new NextAction(CtrlEvent.EVT_READY_TO_ACT, CtrlIntention.CAST, () -> player.useMagic(skill, _ctrlPressed, _shiftPressed)));
  967. + player.getAI().setNextAction(new NextAction(CtrlEvent.EVT_FINISH_ATTACK, CtrlIntention.CAST, () -> player.useMagic(skill, _ctrlPressed, _shiftPressed)));
  968. else
  969. player.useMagic(skill, _ctrlPressed, _shiftPressed);
  970. }
  971. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPackageSendableItemList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPackageSendableItemList.java
  972. index bf5b962f..6972513f 100644
  973. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPackageSendableItemList.java
  974. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPackageSendableItemList.java
  975. @@ -25,7 +25,7 @@ public void runImpl()
  976. if (player == null)
  977. return;
  978.  
  979. - final ItemInstance[] items = player.getInventory().getAvailableItems(true, false);
  980. + final ItemInstance[] items = player.getInventory().getAvailableItems(true, false, false);
  981. if (items == null)
  982. return;
  983. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPreviewItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPreviewItem.java
  984. index 08ea3787..512b9038 100644
  985. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPreviewItem.java
  986. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPreviewItem.java
  987. @@ -80,7 +80,7 @@ protected void runImpl()
  988. if (buyList == null)
  989. return;
  990.  
  991. - int totalPrice = 0;
  992. + long totalPrice = 0;
  993. _listId = buyList.getListId();
  994. _itemList = new HashMap<>();
  995.  
  996. @@ -113,7 +113,7 @@ protected void runImpl()
  997. }
  998.  
  999. // Charge buyer and add tax to castle treasury if not owned by npc clan because a Try On is not Free
  1000. - if (totalPrice < 0 || !activeChar.reduceAdena("Wear", totalPrice, activeChar.getCurrentFolk(), true))
  1001. + if (totalPrice < 0 || !activeChar.reduceAdena("Wear", (int) totalPrice, activeChar.getCurrentFolk(), true))
  1002. {
  1003. activeChar.sendPacket(SystemMessageId.YOU_NOT_ENOUGH_ADENA);
  1004. return;
  1005. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreBuy.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreBuy.java
  1006. index 62e2c70c..0ab85dfa 100644
  1007. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreBuy.java
  1008. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreBuy.java
  1009. @@ -11,10 +11,11 @@
  1010. import com.l2jmega.gameserver.model.actor.instance.Player.StoreType;
  1011. import com.l2jmega.gameserver.model.tradelist.TradeList;
  1012. import com.l2jmega.gameserver.network.SystemMessageId;
  1013. +import com.l2jmega.gameserver.network.serverpackets.ActionFailed;
  1014.  
  1015. public final class RequestPrivateStoreBuy extends L2GameClientPacket
  1016. {
  1017. - private static final int BATCH_LENGTH = 12; // length of one item
  1018. + private static final int BATCH_LENGTH = 20; // length of one item
  1019.  
  1020. private int _storePlayerId;
  1021. private Set<ItemRequest> _items = null;
  1022. @@ -32,8 +33,8 @@ protected void readImpl()
  1023. for (int i = 0; i < count; i++)
  1024. {
  1025. int objectId = readD();
  1026. - long cnt = readD();
  1027. - int price = readD();
  1028. + long cnt = readQ();
  1029. + int price = (int)readQ();
  1030.  
  1031. if (objectId < 1 || cnt < 1 || price < 0)
  1032. {
  1033. @@ -52,14 +53,14 @@ protected void runImpl()
  1034. return;
  1035.  
  1036. final Player player = getClient().getActiveChar();
  1037. - if (player == null)
  1038. + if (player == null || player.isDead())
  1039. return;
  1040.  
  1041. if (player.isCursedWeaponEquipped())
  1042. return;
  1043.  
  1044. final Player storePlayer = World.getInstance().getPlayer(_storePlayerId);
  1045. - if (storePlayer == null)
  1046. + if (storePlayer == null || storePlayer.isDead())
  1047. return;
  1048.  
  1049. if (!player.isInsideRadius(storePlayer, Npc.INTERACTION_DISTANCE, true, false))
  1050. @@ -80,10 +81,16 @@ protected void runImpl()
  1051.  
  1052. if (storePlayer.getStoreType() == StoreType.PACKAGE_SELL && storeList.getItems().size() > _items.size())
  1053. return;
  1054. -
  1055. - if (!storeList.privateStoreBuy(player, _items))
  1056. +
  1057. + final int result = storeList.privateStoreBuy(player, _items);
  1058. + if (result > 0) {
  1059. + player.sendPacket(ActionFailed.STATIC_PACKET);
  1060. + if (result > 1) {
  1061. + LOGGER.warn("PrivateStore buy has failed due to invalid list or request. Player: " + player.getName() + ", Private store of: " + storePlayer.getName());
  1062. + }
  1063. return;
  1064. -
  1065. + }
  1066. +
  1067. if (storeList.getItems().isEmpty())
  1068. {
  1069. storePlayer.setStoreType(StoreType.NONE);
  1070. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreSell.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreSell.java
  1071. index a10d4bfd..fa95a2cf 100644
  1072. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreSell.java
  1073. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreSell.java
  1074. @@ -9,12 +9,15 @@
  1075. import com.l2jmega.gameserver.model.tradelist.TradeList;
  1076. import com.l2jmega.gameserver.network.SystemMessageId;
  1077.  
  1078. +import java.util.HashSet;
  1079. +import java.util.Set;
  1080. +
  1081. public final class RequestPrivateStoreSell extends L2GameClientPacket
  1082. {
  1083. - private static final int BATCH_LENGTH = 20; // length of one item
  1084. + private static final int BATCH_LENGTH = 28; // length of one item
  1085.  
  1086. private int _storePlayerId;
  1087. - private ItemRequest[] _items = null;
  1088. + private Set<ItemRequest> _items = null;
  1089.  
  1090. @Override
  1091. protected void readImpl()
  1092. @@ -23,8 +26,8 @@ protected void readImpl()
  1093. int count = readD();
  1094. if (count <= 0 || count > Config.MAX_ITEM_IN_PACKET || count * BATCH_LENGTH != _buf.remaining())
  1095. return;
  1096. -
  1097. - _items = new ItemRequest[count];
  1098. +
  1099. + _items = new HashSet<>();
  1100.  
  1101. for (int i = 0; i < count; i++)
  1102. {
  1103. @@ -32,15 +35,15 @@ protected void readImpl()
  1104. int itemId = readD();
  1105. readH(); // TODO analyse this
  1106. readH(); // TODO analyse this
  1107. - long cnt = readD();
  1108. - int price = readD();
  1109. + long cnt = readQ();
  1110. + int price = (int)readQ();
  1111.  
  1112. if (objectId < 1 || itemId < 1 || cnt < 1 || price < 0)
  1113. {
  1114. _items = null;
  1115. return;
  1116. }
  1117. - _items = new ItemRequest(objectId, itemId, (int) cnt, price);
  1118. + _items.add(new ItemRequest(objectId, itemId, (int) cnt, price));
  1119. }
  1120. }
  1121.  
  1122. @@ -76,8 +79,10 @@ protected void runImpl()
  1123. player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
  1124. return;
  1125. }
  1126. -
  1127. - if (!storeList.privateStoreSell(player, _items))
  1128. +
  1129. + _items.removeIf(item -> player.getInventory().getItemByObjectId(item.getObjectId()) == null);
  1130. +
  1131. + if (!storeList.privateStoreSell(player, _items.toArray(new ItemRequest[0])))
  1132. return;
  1133.  
  1134. if (storeList.getItems().isEmpty())
  1135. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestProcureCropList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestProcureCropList.java
  1136. index 68e5b488..1704102b 100644
  1137. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestProcureCropList.java
  1138. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestProcureCropList.java
  1139. @@ -19,7 +19,7 @@
  1140.  
  1141. public class RequestProcureCropList extends L2GameClientPacket
  1142. {
  1143. - private static final int BATCH_LENGTH = 16;
  1144. + private static final int BATCH_LENGTH = 20;
  1145.  
  1146. private List<CropHolder> _items;
  1147.  
  1148. @@ -36,7 +36,7 @@ protected void readImpl()
  1149. final int objId = readD();
  1150. final int itemId = readD();
  1151. final int manorId = readD();
  1152. - final int cnt = readD();
  1153. + final int cnt = (int)readQ();
  1154.  
  1155. if (objId < 1 || itemId < 1 || manorId < 0 || cnt < 0)
  1156. {
  1157. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopListSet.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopListSet.java
  1158. index 7e980969..f562e98c 100644
  1159. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopListSet.java
  1160. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopListSet.java
  1161. @@ -1,19 +1,24 @@
  1162. package com.l2jmega.gameserver.network.clientpackets;
  1163.  
  1164. import com.l2jmega.Config;
  1165. +import com.l2jmega.commons.util.ArraysUtil;
  1166. import com.l2jmega.gameserver.model.actor.instance.Player;
  1167. import com.l2jmega.gameserver.model.actor.instance.Player.StoreType;
  1168. import com.l2jmega.gameserver.model.craft.ManufactureItem;
  1169. import com.l2jmega.gameserver.model.craft.ManufactureList;
  1170. +import com.l2jmega.gameserver.model.item.Recipe;
  1171. import com.l2jmega.gameserver.model.zone.ZoneId;
  1172. import com.l2jmega.gameserver.network.SystemMessageId;
  1173. import com.l2jmega.gameserver.network.serverpackets.ActionFailed;
  1174. +import com.l2jmega.gameserver.network.serverpackets.RecipeShopManageList;
  1175. import com.l2jmega.gameserver.network.serverpackets.RecipeShopMsg;
  1176.  
  1177. +import java.util.Arrays;
  1178. +
  1179. public final class RequestRecipeShopListSet extends L2GameClientPacket
  1180. {
  1181. private int _count;
  1182. - private int[] _items;
  1183. + private ManufactureItem[] _items;
  1184.  
  1185. @Override
  1186. protected void readImpl()
  1187. @@ -21,14 +26,13 @@ protected void readImpl()
  1188. _count = readD();
  1189. if (_count < 0 || _count * 8 > _buf.remaining() || _count > Config.MAX_ITEM_IN_PACKET)
  1190. _count = 0;
  1191. -
  1192. - _items = new int[_count * 2];
  1193. +
  1194. + _items = new ManufactureItem[_count];
  1195. for (int x = 0; x < _count; x++)
  1196. {
  1197. int recipeID = readD();
  1198. - _items[x * 2 + 0] = recipeID;
  1199. - int cost = readD();
  1200. - _items[x * 2 + 1] = cost;
  1201. + int cost = (int)readQ();
  1202. + _items[x] = new ManufactureItem(recipeID, cost);
  1203. }
  1204. }
  1205.  
  1206. @@ -38,39 +42,49 @@ protected void runImpl()
  1207. final Player player = getClient().getActiveChar();
  1208. if (player == null)
  1209. return;
  1210. -
  1211. - if (player.isInDuel())
  1212. - {
  1213. - player.sendPacket(SystemMessageId.CANT_OPERATE_PRIVATE_STORE_DURING_COMBAT);
  1214. +
  1215. + // Integrity check.
  1216. + if (!canPassManufactureProcess(player, _items))
  1217. return;
  1218. - }
  1219. -
  1220. - if (player.isInsideZone(ZoneId.NO_STORE))
  1221. +
  1222. + // Retrieve and clear the manufacture list.
  1223. + final ManufactureList manufactureList = player.getCreateList();
  1224. + manufactureList.clear();
  1225. +
  1226. + // Check multiple conditions. Message is sent directly from the method.
  1227. + if (!player.canOpenPrivateStore(false))
  1228. + return;
  1229. +
  1230. + if (ArraysUtil.isEmpty(_items))
  1231. {
  1232. - player.sendPacket(SystemMessageId.NO_PRIVATE_WORKSHOP_HERE);
  1233. - player.sendPacket(ActionFailed.STATIC_PACKET);
  1234. + player.sendPacket(SystemMessageId.NO_RECIPES_REGISTERED);
  1235. return;
  1236. }
  1237. -
  1238. +
  1239. if (_count == 0)
  1240. player.forceStandUp();
  1241. else
  1242. {
  1243. - ManufactureList createList = new ManufactureList();
  1244. -
  1245. - for (int x = 0; x < _count; x++)
  1246. - {
  1247. - int recipeID = _items[x * 2 + 0];
  1248. - int cost = _items[x * 2 + 1];
  1249. - createList.add(new ManufactureItem(recipeID, cost));
  1250. - }
  1251. - createList.setStoreName(player.getCreateList() != null ? player.getCreateList().getStoreName() : "");
  1252. - player.setCreateList(createList);
  1253. -
  1254. + manufactureList.set(_items);
  1255. player.setStoreType(StoreType.MANUFACTURE);
  1256. player.sitDown();
  1257. player.broadcastUserInfo();
  1258. player.broadcastPacket(new RecipeShopMsg(player));
  1259. }
  1260. }
  1261. +
  1262. + private boolean hasRecipeOnSpecificBook(Player player, int recipeId)
  1263. + {
  1264. + boolean isDwExist = player.getDwarvenRecipeBook().stream().anyMatch(recipe -> recipe.getId() == recipeId);
  1265. + boolean isExist = player.getCommonRecipeBook().stream().anyMatch(recipe -> recipe.getId() == recipeId);
  1266. + return isDwExist || isExist;
  1267. + }
  1268. +
  1269. + public boolean canPassManufactureProcess(Player player, ManufactureItem[] itemsToCheck)
  1270. + {
  1271. + for (ManufactureItem item : itemsToCheck)
  1272. + if (!hasRecipeOnSpecificBook(player, item.getId()))
  1273. + return false;
  1274. + return true;
  1275. + }
  1276. }
  1277. \ No newline at end of file
  1278. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopMakeItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopMakeItem.java
  1279. index 4233e0ff..d6856b82 100644
  1280. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopMakeItem.java
  1281. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopMakeItem.java
  1282. @@ -24,7 +24,7 @@ protected void readImpl()
  1283. {
  1284. _objectId = readD();
  1285. _recipeId = readD();
  1286. - _unknow = readD();
  1287. + _unknow = (int)readQ();
  1288. }
  1289.  
  1290. @Override
  1291. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopMessageSet.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopMessageSet.java
  1292. index c481a73f..278136b6 100644
  1293. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopMessageSet.java
  1294. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestRecipeShopMessageSet.java
  1295. @@ -22,8 +22,8 @@ protected void runImpl()
  1296.  
  1297. if (_name != null && _name.length() > MAX_MSG_LENGTH)
  1298. return;
  1299. -
  1300. - if (player.getCreateList() != null)
  1301. +
  1302. + if (player.getStoreType() == Player.StoreType.MANUFACTURE || player.getStoreType() == Player.StoreType.MANUFACTURE_MANAGE)
  1303. player.getCreateList().setStoreName(_name);
  1304. }
  1305. }
  1306. \ No newline at end of file
  1307. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSellItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSellItem.java
  1308. index 1c6b0513..22a3e4c0 100644
  1309. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSellItem.java
  1310. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSellItem.java
  1311. @@ -9,13 +9,11 @@
  1312. import com.l2jmega.gameserver.model.actor.instance.Player;
  1313. import com.l2jmega.gameserver.model.holder.IntIntHolder;
  1314. import com.l2jmega.gameserver.model.item.instance.ItemInstance;
  1315. -import com.l2jmega.gameserver.network.serverpackets.ItemList;
  1316. -import com.l2jmega.gameserver.network.serverpackets.NpcHtmlMessage;
  1317. -import com.l2jmega.gameserver.network.serverpackets.StatusUpdate;
  1318. +import com.l2jmega.gameserver.network.serverpackets.*;
  1319.  
  1320. public final class RequestSellItem extends L2GameClientPacket
  1321. {
  1322. - private static final int BATCH_LENGTH = 12; // length of the one item
  1323. + private static final int BATCH_LENGTH = 16; // length of the one item
  1324.  
  1325. private int _listId;
  1326. private IntIntHolder[] _items = null;
  1327. @@ -33,7 +31,7 @@ protected void readImpl()
  1328. {
  1329. int objectId = readD();
  1330. int itemId = readD();
  1331. - int cnt = readD();
  1332. + int cnt = (int) readQ();
  1333.  
  1334. if (objectId < 1 || itemId < 1 || cnt < 1)
  1335. {
  1336. @@ -65,7 +63,7 @@ protected void runImpl()
  1337. return;
  1338. }
  1339.  
  1340. - int totalPrice = 0;
  1341. + long totalPrice = 0;
  1342. // Proceed the sell
  1343. for (IntIntHolder i : _items)
  1344. {
  1345. @@ -81,7 +79,7 @@ protected void runImpl()
  1346. item = player.getInventory().destroyItem("Sell", i.getId(), i.getValue(), player, merchant);
  1347. }
  1348.  
  1349. - player.addAdena("Sell", totalPrice, merchant, false);
  1350. + player.addAdena("Sell", (int) totalPrice, merchant, false);
  1351.  
  1352. // Send the htm, if existing.
  1353. String htmlFolder = "";
  1354. @@ -107,5 +105,6 @@ else if (merchant instanceof Merchant)
  1355. su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
  1356. player.sendPacket(su);
  1357. player.sendPacket(new ItemList(player, true));
  1358. + player.sendPacket(new ExBuySellListPacket());
  1359. }
  1360. }
  1361. \ No newline at end of file
  1362. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSetCrop.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSetCrop.java
  1363. index aba7bb7b..d4149ca1 100644
  1364. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSetCrop.java
  1365. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSetCrop.java
  1366. @@ -13,7 +13,7 @@
  1367.  
  1368. public class RequestSetCrop extends L2GameClientPacket
  1369. {
  1370. - private static final int BATCH_LENGTH = 13;
  1371. + private static final int BATCH_LENGTH = 21;
  1372.  
  1373. private int _manorId;
  1374. private List<CropProcure> _items;
  1375. @@ -30,8 +30,8 @@ protected void readImpl()
  1376. for (int i = 0; i < count; i++)
  1377. {
  1378. final int itemId = readD();
  1379. - final int sales = readD();
  1380. - final int price = readD();
  1381. + final int sales = (int)readQ();
  1382. + final int price = (int)readQ();
  1383. final int type = readC();
  1384.  
  1385. if (itemId < 1 || sales < 0 || price < 0)
  1386. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSetSeed.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSetSeed.java
  1387. index 90ea491c..050219c9 100644
  1388. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSetSeed.java
  1389. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSetSeed.java
  1390. @@ -13,7 +13,7 @@
  1391.  
  1392. public class RequestSetSeed extends L2GameClientPacket
  1393. {
  1394. - private static final int BATCH_LENGTH = 12;
  1395. + private static final int BATCH_LENGTH = 20;
  1396.  
  1397. private int _manorId;
  1398. private List<SeedProduction> _items;
  1399. @@ -30,8 +30,8 @@ protected void readImpl()
  1400. for (int i = 0; i < count; i++)
  1401. {
  1402. final int itemId = readD();
  1403. - final int sales = readD();
  1404. - final int price = readD();
  1405. + final int sales = (int)readQ();
  1406. + final int price = (int)readQ();
  1407.  
  1408. if (itemId < 1 || sales < 0 || price < 0)
  1409. {
  1410. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestTargetCanceld.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestTargetCanceld.java
  1411. index 7afb3767..04e56a02 100644
  1412. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestTargetCanceld.java
  1413. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestTargetCanceld.java
  1414. @@ -1,6 +1,10 @@
  1415. package com.l2jmega.gameserver.network.clientpackets;
  1416.  
  1417. +import com.l2jmega.gameserver.model.L2Skill;
  1418. +import com.l2jmega.gameserver.model.WorldObject;
  1419. +import com.l2jmega.gameserver.model.actor.Attackable;
  1420. import com.l2jmega.gameserver.model.actor.instance.Player;
  1421. +import com.l2jmega.gameserver.templates.skills.L2SkillType;
  1422.  
  1423. public final class RequestTargetCanceld extends L2GameClientPacket
  1424. {
  1425. @@ -22,7 +26,17 @@ protected void runImpl()
  1426. if (_unselect == 0)
  1427. {
  1428. if (activeChar.isCastingNow() && activeChar.canAbortCast())
  1429. + {
  1430. activeChar.abortCast();
  1431. + final L2Skill seed = activeChar.getLastSkillCast();
  1432. + if (seed != null && seed.getSkillType() == L2SkillType.SOW && seed.getTargetList(activeChar).length > 0)
  1433. + {
  1434. + for (WorldObject object : seed.getTargetList(activeChar))
  1435. + if (object instanceof Attackable && ((Attackable) object).isSeeded()) {
  1436. + ((Attackable) object).setSeeded(null, 0);
  1437. + }
  1438. + }
  1439. + }
  1440. else
  1441. activeChar.setTarget(null);
  1442. }
  1443. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/Say2.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/Say2.java
  1444. index 790dc05d..dd3743cd 100644
  1445. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/Say2.java
  1446. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/Say2.java
  1447. @@ -7,6 +7,8 @@
  1448. import com.l2jmega.Config;
  1449. import com.l2jmega.gameserver.handler.ChatHandler;
  1450. import com.l2jmega.gameserver.handler.IChatHandler;
  1451. +import com.l2jmega.gameserver.handler.IVoiceCommandHandler;
  1452. +import com.l2jmega.gameserver.handler.VoiceCommandHandler;
  1453. import com.l2jmega.gameserver.model.actor.instance.Player;
  1454. import com.l2jmega.gameserver.network.SystemMessageId;
  1455.  
  1456. @@ -33,6 +35,7 @@ public final class Say2 extends L2GameClientPacket
  1457. public static final int PARTYROOM_ALL = 16; // (Red)
  1458. public static final int HERO_VOICE = 17;
  1459. public static final int CRITICAL_ANNOUNCE = 18;
  1460. + public final static int BATTLEFIELD = 20;
  1461.  
  1462. private static final String[] CHAT_NAMES =
  1463. {
  1464. @@ -156,9 +159,23 @@ protected void runImpl()
  1465.  
  1466. CHAT_LOG.log(record);
  1467. }
  1468. -
  1469. +
  1470. + if (_text.startsWith(".")) {
  1471. + final String fullcmd = _text.substring(1).trim();
  1472. + final String command = fullcmd.split("\\s+")[0];
  1473. + final String args = fullcmd.substring(command.length()).trim();
  1474. + if (command.length() > 0) {
  1475. + final IVoiceCommandHandler voice_handler = VoiceCommandHandler.getInstance().getVoicedCommandHandler(command);
  1476. + if (voice_handler != null) {
  1477. + voice_handler.useVoicedCommand(command, player, args);
  1478. + return;
  1479. + }
  1480. + }
  1481. + return;
  1482. + }
  1483. +
  1484. _text = _text.replaceAll("\\\\n", "");
  1485. -
  1486. +
  1487. final IChatHandler handler = ChatHandler.getInstance().getHandler(_type);
  1488. if (handler == null)
  1489. {
  1490. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SendWarehouseDepositList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SendWarehouseDepositList.java
  1491. index 31903675..9cd3c28e 100644
  1492. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SendWarehouseDepositList.java
  1493. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SendWarehouseDepositList.java
  1494. @@ -17,7 +17,7 @@
  1495.  
  1496. public final class SendWarehouseDepositList extends L2GameClientPacket
  1497. {
  1498. - private static final int BATCH_LENGTH = 8; // length of one item
  1499. + private static final int BATCH_LENGTH = 12; // length of one item
  1500.  
  1501. private IntIntHolder _items[] = null;
  1502.  
  1503. @@ -32,7 +32,7 @@ protected void readImpl()
  1504. for (int i = 0; i < count; i++)
  1505. {
  1506. int objId = readD();
  1507. - int cnt = readD();
  1508. + int cnt = (int)readQ();
  1509.  
  1510. if (objId < 1 || cnt < 0)
  1511. {
  1512. @@ -134,7 +134,7 @@ else if (warehouse.getItemByItemId(item.getItemId()) == null)
  1513. if (oldItem == null)
  1514. return;
  1515.  
  1516. - if (!oldItem.isDepositable(isPrivate) || !oldItem.isAvailable(player, true, isPrivate))
  1517. + if (!oldItem.isDepositable(isPrivate) || !oldItem.isAvailable(player, true, isPrivate, false))
  1518. continue;
  1519.  
  1520. final ItemInstance newItem = player.getInventory().transferItem(warehouse.getName(), i.getId(), i.getValue(), warehouse, player, folk);
  1521. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SendWarehouseWithdrawList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SendWarehouseWithdrawList.java
  1522. index 6f547529..e65dc599 100644
  1523. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SendWarehouseWithdrawList.java
  1524. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SendWarehouseWithdrawList.java
  1525. @@ -17,7 +17,7 @@
  1526.  
  1527. public final class SendWarehouseWithdrawList extends L2GameClientPacket
  1528. {
  1529. - private static final int BATCH_LENGTH = 8; // length of one item
  1530. + private static final int BATCH_LENGTH = 12; // length of one item
  1531.  
  1532. private IntIntHolder _items[] = null;
  1533.  
  1534. @@ -32,7 +32,7 @@ protected void readImpl()
  1535. for (int i = 0; i < count; i++)
  1536. {
  1537. int objId = readD();
  1538. - int cnt = readD();
  1539. + int cnt = (int)readQ();
  1540.  
  1541. if (objId < 1 || cnt < 0)
  1542. {
  1543. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListBuy.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListBuy.java
  1544. index fd5c85cd..04625620 100644
  1545. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListBuy.java
  1546. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListBuy.java
  1547. @@ -12,7 +12,7 @@
  1548.  
  1549. public final class SetPrivateStoreListBuy extends L2GameClientPacket
  1550. {
  1551. - private static final int BATCH_LENGTH = 16; // length of one item
  1552. + private static final int BATCH_LENGTH = 40; // length of one item
  1553.  
  1554. private Item[] _items = null;
  1555.  
  1556. @@ -27,17 +27,21 @@ protected void readImpl()
  1557. for (int i = 0; i < count; i++)
  1558. {
  1559. int itemId = readD();
  1560. + int enchant = readH(); // TODO analyse this
  1561. readH(); // TODO analyse this
  1562. - readH(); // TODO analyse this
  1563. - int cnt = readD();
  1564. - int price = readD();
  1565. + int cnt = (int)readQ();
  1566. + int price = (int)readQ();
  1567.  
  1568. if (itemId < 1 || cnt < 1 || price < 0)
  1569. {
  1570. _items = null;
  1571. return;
  1572. }
  1573. - _items = new Item(itemId, cnt, price);
  1574. + readC(); // FE
  1575. + readD(); // FF 00 00 00
  1576. + readD(); // 00 00 00 00
  1577. + readB(new byte[7]); // Completely Unknown
  1578. + _items = new Item(itemId, cnt, price, enchant);
  1579. }
  1580. }
  1581.  
  1582. @@ -47,38 +51,24 @@ protected void runImpl()
  1583. Player player = getClient().getActiveChar();
  1584. if (player == null)
  1585. return;
  1586. -
  1587. - if (_items == null)
  1588. - {
  1589. - player.setStoreType(StoreType.NONE);
  1590. - player.broadcastUserInfo();
  1591. - player.sendPacket(new PrivateStoreManageListBuy(player));
  1592. +
  1593. + // Integrity check.
  1594. + if (!player.getInventory().canPassBuyProcess(_items))
  1595. return;
  1596. - }
  1597. -
  1598. +
  1599. + final TradeList tradeList = player.getBuyList();
  1600. + tradeList.clear();
  1601. +
  1602. if (!player.getAccessLevel().allowTransaction())
  1603. {
  1604. player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
  1605. return;
  1606. }
  1607. -
  1608. - if (AttackStanceTaskManager.getInstance().isInAttackStance(player) || (player.isCastingNow() || player.isCastingSimultaneouslyNow()) || player.isInDuel())
  1609. - {
  1610. - player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
  1611. - player.sendPacket(new PrivateStoreManageListBuy(player));
  1612. - return;
  1613. - }
  1614. -
  1615. - if (player.isInsideZone(ZoneId.NO_STORE))
  1616. - {
  1617. - player.sendPacket(SystemMessageId.NO_PRIVATE_STORE_HERE);
  1618. - player.sendPacket(new PrivateStoreManageListBuy(player));
  1619. +
  1620. + // Check multiple conditions. Message is sent directly from the method.
  1621. + if (!player.canOpenPrivateStore(false))
  1622. return;
  1623. - }
  1624. -
  1625. - TradeList tradeList = player.getBuyList();
  1626. - tradeList.clear();
  1627. -
  1628. +
  1629. // Check maximum number of allowed slots for pvt shops
  1630. if (_items.length > player.getPrivateBuyStoreLimit())
  1631. {
  1632. @@ -120,15 +110,16 @@ protected void runImpl()
  1633. player.broadcastPacket(new PrivateStoreMsgBuy(player));
  1634. }
  1635.  
  1636. - private static class Item
  1637. + public static class Item
  1638. {
  1639. - private final int _itemId, _count, _price;
  1640. + private final int _itemId, _count, _price, _enchant;
  1641.  
  1642. - public Item(int id, int num, int pri)
  1643. + public Item(int id, int num, int pri, int enchant)
  1644. {
  1645. _itemId = id;
  1646. _count = num;
  1647. _price = pri;
  1648. + _enchant = enchant;
  1649. }
  1650.  
  1651. public boolean addToTradeList(TradeList list)
  1652. @@ -139,10 +130,29 @@ public boolean addToTradeList(TradeList list)
  1653. list.addItemByItemId(_itemId, _count, _price);
  1654. return true;
  1655. }
  1656. +
  1657. + public int getItemId()
  1658. + {
  1659. + return _itemId;
  1660. + }
  1661. +
  1662. + public int getCount()
  1663. + {
  1664. + return _count;
  1665. + }
  1666. +
  1667. + public int getPrice()
  1668. + {
  1669. + return _price;
  1670. + }
  1671.  
  1672. public long getCost()
  1673. {
  1674. return _count * _price;
  1675. }
  1676. +
  1677. + public int getEnchant() {
  1678. + return _enchant;
  1679. + }
  1680. }
  1681. }
  1682. \ No newline at end of file
  1683. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListSell.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListSell.java
  1684. index 8c64905b..7ecc9a4e 100644
  1685. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListSell.java
  1686. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListSell.java
  1687. @@ -4,15 +4,13 @@
  1688. import com.l2jmega.gameserver.model.actor.instance.Player;
  1689. import com.l2jmega.gameserver.model.actor.instance.Player.StoreType;
  1690. import com.l2jmega.gameserver.model.tradelist.TradeList;
  1691. -import com.l2jmega.gameserver.model.zone.ZoneId;
  1692. import com.l2jmega.gameserver.network.SystemMessageId;
  1693. import com.l2jmega.gameserver.network.serverpackets.PrivateStoreManageListSell;
  1694. import com.l2jmega.gameserver.network.serverpackets.PrivateStoreMsgSell;
  1695. -import com.l2jmega.gameserver.taskmanager.AttackStanceTaskManager;
  1696.  
  1697. public final class SetPrivateStoreListSell extends L2GameClientPacket
  1698. {
  1699. - private static final int BATCH_LENGTH = 12; // length of the one item
  1700. + private static final int BATCH_LENGTH = 20; // length of the one item
  1701.  
  1702. private boolean _packageSale;
  1703. private Item[] _items = null;
  1704. @@ -29,8 +27,8 @@ protected void readImpl()
  1705. for (int i = 0; i < count; i++)
  1706. {
  1707. int itemId = readD();
  1708. - long cnt = readD();
  1709. - int price = readD();
  1710. + long cnt = (int)readQ();
  1711. + int price = (int)readQ();
  1712.  
  1713. if (itemId < 1 || cnt < 1 || price < 0)
  1714. {
  1715. @@ -47,36 +45,24 @@ protected void runImpl()
  1716. Player player = getClient().getActiveChar();
  1717. if (player == null)
  1718. return;
  1719. -
  1720. - if (_items == null)
  1721. - {
  1722. - player.sendPacket(SystemMessageId.NOT_ENOUGH_ITEMS);
  1723. - player.setStoreType(StoreType.NONE);
  1724. - player.broadcastUserInfo();
  1725. - player.sendPacket(new PrivateStoreManageListSell(player, _packageSale));
  1726. +
  1727. + // Integrity check.
  1728. + if (!player.getInventory().canPassSellProcess(_items))
  1729. return;
  1730. - }
  1731. -
  1732. +
  1733. + final TradeList tradeList = player.getSellList();
  1734. + tradeList.clear();
  1735. +
  1736. if (!player.getAccessLevel().allowTransaction())
  1737. {
  1738. player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
  1739. return;
  1740. }
  1741. -
  1742. - if (AttackStanceTaskManager.getInstance().isInAttackStance(player) || (player.isCastingNow() || player.isCastingSimultaneouslyNow()) || player.isInDuel())
  1743. - {
  1744. - player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
  1745. - player.sendPacket(new PrivateStoreManageListSell(player, _packageSale));
  1746. - return;
  1747. - }
  1748. -
  1749. - if (player.isInsideZone(ZoneId.NO_STORE))
  1750. - {
  1751. - player.sendPacket(SystemMessageId.NO_PRIVATE_STORE_HERE);
  1752. - player.sendPacket(new PrivateStoreManageListSell(player, _packageSale));
  1753. +
  1754. + // Check multiple conditions. Message is sent directly from the method.
  1755. + if (!player.canOpenPrivateStore(false))
  1756. return;
  1757. - }
  1758. -
  1759. +
  1760. // Check maximum number of allowed slots for pvt shops
  1761. if (_items.length > player.getPrivateSellStoreLimit())
  1762. {
  1763. @@ -84,9 +70,6 @@ protected void runImpl()
  1764. player.sendPacket(new PrivateStoreManageListSell(player, _packageSale));
  1765. return;
  1766. }
  1767. -
  1768. - TradeList tradeList = player.getSellList();
  1769. - tradeList.clear();
  1770. tradeList.setPackaged(_packageSale);
  1771.  
  1772. int totalCost = player.getAdena();
  1773. @@ -114,7 +97,7 @@ protected void runImpl()
  1774. player.broadcastPacket(new PrivateStoreMsgSell(player));
  1775. }
  1776.  
  1777. - private static class Item
  1778. + public static class Item
  1779. {
  1780. private final int _itemId, _count, _price;
  1781.  
  1782. @@ -133,8 +116,23 @@ public boolean addToTradeList(TradeList list)
  1783. list.addItem(_itemId, _count, _price);
  1784. return true;
  1785. }
  1786. +
  1787. + public int getItemId()
  1788. + {
  1789. + return _itemId;
  1790. + }
  1791. +
  1792. + public int getCount()
  1793. + {
  1794. + return _count;
  1795. + }
  1796. +
  1797. + public int getPrice()
  1798. + {
  1799. + return _price;
  1800. + }
  1801.  
  1802. - public long getPrice()
  1803. + public long getCost()
  1804. {
  1805. return _count * _price;
  1806. }
  1807. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/UseItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/UseItem.java
  1808. index f8f4aa4b..5630c10b 100644
  1809. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/UseItem.java
  1810. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/UseItem.java
  1811. @@ -8,6 +8,7 @@
  1812. import com.l2jmega.gameserver.model.L2Skill;
  1813. import com.l2jmega.gameserver.model.actor.instance.Pet;
  1814. import com.l2jmega.gameserver.model.actor.instance.Player;
  1815. +import com.l2jmega.gameserver.model.base.ClassRace;
  1816. import com.l2jmega.gameserver.model.holder.IntIntHolder;
  1817. import com.l2jmega.gameserver.model.item.instance.ItemInstance;
  1818. import com.l2jmega.gameserver.model.item.kind.Item;
  1819. @@ -38,6 +39,7 @@ protected void readImpl()
  1820. @Override
  1821. protected void runImpl()
  1822. {
  1823. + //_ctrlPressed = false;
  1824. final Player activeChar = getClient().getActiveChar();
  1825. if (activeChar == null)
  1826. return;
  1827. @@ -158,6 +160,13 @@ protected void runImpl()
  1828. return;
  1829. }
  1830.  
  1831. + //if ((((activeChar.getClassId().getId()) == 124) || ((activeChar.getClassId().getId()) == 123)) && ((item.getItem().getBodyPart()) == 256)) //blocking Kama shield
  1832. + if ((activeChar.getRace() == ClassRace.MYSTIC_ELF) && ((item.getItem().getBodyPart()) == 256))
  1833. + {
  1834. + activeChar.sendPacket(SystemMessageId.CANNOT_EQUIP_ITEM_DUE_TO_BAD_CONDITION);
  1835. + return;
  1836. + }
  1837. +
  1838. switch (item.getItem().getBodyPart())
  1839. {
  1840. case Item.SLOT_LR_HAND:
  1841. @@ -176,15 +185,29 @@ protected void runImpl()
  1842.  
  1843. break;
  1844. }
  1845. + case Item.SLOT_DECO:
  1846. + {
  1847. + if (!item.isEquipped() && (activeChar.getInventory().getTalismanSlots() == 0))
  1848. + {
  1849. + activeChar.sendPacket(SystemMessageId.CANNOT_EQUIP_ITEM_DUE_TO_BAD_CONDITION);
  1850. + return;
  1851. + }
  1852. + }
  1853. }
  1854.  
  1855. if (activeChar.isCursedWeaponEquipped() && item.getItemId() == 6408) // Don't allow to put formal wear
  1856. return;
  1857.  
  1858. if (activeChar.isAttackingNow())
  1859. - ThreadPool.schedule(() -> activeChar.useEquippableItem(item, false), activeChar.getAttackEndTime() - System.currentTimeMillis());
  1860. - else
  1861. - activeChar.useEquippableItem(item, true);
  1862. + ThreadPool.schedule(() -> {
  1863. + final ItemInstance itemToTest = activeChar.getInventory().getItemByObjectId(_objectId);
  1864. + if(itemToTest == null)
  1865. + return;
  1866. +
  1867. + activeChar.useEquippableItem(itemToTest, false);
  1868. + }, activeChar.getAttackEndTime() - System.currentTimeMillis());
  1869. + else
  1870. + activeChar.useEquippableItem(item, true);
  1871. }
  1872. else
  1873. {
  1874. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/BuyList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/BuyList.java
  1875. index 443391c3..8515d54d 100644
  1876. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/BuyList.java
  1877. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/BuyList.java
  1878. @@ -23,8 +23,11 @@ public BuyList(NpcBuyList list, int currentMoney, double taxRate)
  1879. @Override
  1880. protected final void writeImpl()
  1881. {
  1882. - writeC(0x11);
  1883. - writeD(_money);
  1884. + writeC(0xFE);
  1885. + writeH(0xB7);
  1886. + writeD(0x00);
  1887. +
  1888. + writeQ(_money);
  1889. writeD(_listId);
  1890. writeH(_list.size());
  1891.  
  1892. @@ -32,21 +35,43 @@ protected final void writeImpl()
  1893. {
  1894. if (product.getCount() > 0 || !product.hasLimitedStock())
  1895. {
  1896. - writeH(product.getItem().getType1());
  1897. writeD(product.getItemId());
  1898. writeD(product.getItemId());
  1899. - writeD((product.getCount() < 0) ? 0 : product.getCount());
  1900. + writeD(0);
  1901. + writeQ((product.getCount() < 0) ? 0 : product.getCount());
  1902. writeH(product.getItem().getType2());
  1903. - writeH(0x00); // TODO: ItemInstance getCustomType1()
  1904. + writeH(product.getItem().getType1());
  1905. + writeH(0x00);
  1906. writeD(product.getItem().getBodyPart());
  1907. - writeH(0x00); // TODO: ItemInstance getEnchantLevel()
  1908. - writeH(0x00); // TODO: ItemInstance getCustomType2()
  1909. +
  1910. + writeH(0x00); // Enchant
  1911. + writeH(0x00); // Custom Type
  1912. + writeD(0x00); // Augment
  1913. + writeD(-1); // Mana
  1914. + writeD(-9999); // Time
  1915. + writeH(0x00); // Element Type
  1916. + writeH(0x00); // Element Power
  1917. +
  1918. + for (byte i = 0; i < 6; i++)
  1919. + {
  1920. + writeH(0x00);
  1921. + }
  1922. +
  1923. + // Enchant Effects
  1924. + writeH(0x00);
  1925. writeH(0x00);
  1926. + writeH(0x00);
  1927. +
  1928.  
  1929. if (product.getItemId() >= 3960 && product.getItemId() <= 4026)
  1930. - writeD((int) (product.getPrice() * Config.RATE_SIEGE_GUARDS_PRICE * (1 + _taxRate)));
  1931. + writeQ((int) (product.getPrice() * Config.RATE_SIEGE_GUARDS_PRICE * (1 + _taxRate)));
  1932. else
  1933. - writeD((int) (product.getPrice() * (1 + _taxRate)));
  1934. + writeQ((int) (product.getPrice() * (1 + _taxRate)));
  1935. + // T1
  1936. + // for (byte i = 0; i < 8; i++)
  1937. + // {
  1938. + // writeH(0x00);
  1939. + // }
  1940. }
  1941. }
  1942. }
  1943. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/BuyListSeed.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/BuyListSeed.java
  1944. index 6037b86c..84ae846d 100644
  1945. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/BuyListSeed.java
  1946. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/BuyListSeed.java
  1947. @@ -28,9 +28,9 @@ public BuyListSeed(int currentMoney, int castleId)
  1948. @Override
  1949. protected final void writeImpl()
  1950. {
  1951. - writeC(0xE8);
  1952. + writeC(0xE9);
  1953.  
  1954. - writeD(_money);
  1955. + writeQ(_money);
  1956. writeD(_manorId);
  1957.  
  1958. if (!_list.isEmpty())
  1959. @@ -38,13 +38,30 @@ protected final void writeImpl()
  1960. writeH(_list.size());
  1961. for (SeedProduction s : _list)
  1962. {
  1963. - writeH(0x04);
  1964. writeD(s.getId());
  1965. writeD(s.getId());
  1966. - writeD(s.getAmount());
  1967. - writeH(0x04);
  1968. + writeD(0x00);
  1969. + writeQ(s.getAmount());
  1970. + writeH(0x05);
  1971. + writeH(0x00); // Custom Type 1
  1972. + writeH(0x00); // Equipped
  1973. + writeD(0x00); // Body Part
  1974. + writeH(0x00); // Enchant
  1975. + writeH(0x00); // Custom Type
  1976. + writeD(0x00); // Augment
  1977. + writeD(-1); // Mana
  1978. + writeD(-9999); // Time
  1979. + writeH(0x00); // Element Type
  1980. + writeH(0x00); // Element Power
  1981. + for (byte i = 0; i < 6; i++)
  1982. + {
  1983. + writeH(0x00);
  1984. + }
  1985. + // Enchant Effects
  1986. writeH(0x00);
  1987. - writeD(s.getPrice());
  1988. + writeH(0x00);
  1989. + writeH(0x00);
  1990. + writeQ(s.getPrice());
  1991. }
  1992. }
  1993. }
  1994. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/CreatureSay.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/CreatureSay.java
  1995. index 0a96858d..5c0e56dd 100644
  1996. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/CreatureSay.java
  1997. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/CreatureSay.java
  1998. @@ -49,16 +49,17 @@ protected final void writeImpl()
  1999. writeS(_charName);
  2000. else
  2001. writeD(_charId);
  2002. - writeD(_npcString); // High Five NPCString ID
  2003. + // writeD(_npcString); // High Five NPCString ID
  2004. if (_text != null)
  2005. writeS(_text);
  2006. else
  2007. {
  2008. - if (_parameters != null)
  2009. - {
  2010. - for (String s : _parameters)
  2011. - writeS(s);
  2012. - }
  2013. + writeD(_npcString);
  2014. + // if (_parameters != null)
  2015. + // {
  2016. + // for (String s : _parameters)
  2017. + // writeS(s);
  2018. + // }
  2019. }
  2020. }
  2021. }
  2022. \ No newline at end of file
  2023. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DeleteObject.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DeleteObject.java
  2024. index 90b38f94..ce925160 100644
  2025. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DeleteObject.java
  2026. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DeleteObject.java
  2027. @@ -22,8 +22,8 @@ public DeleteObject(WorldObject obj, boolean sit)
  2028. @Override
  2029. protected final void writeImpl()
  2030. {
  2031. - writeC(0x12);
  2032. + writeC(0x08);
  2033. writeD(_objectId);
  2034. - writeD(_isSeated ? 0x00 : 0x01); // 0 - stand up and delete, 1 - delete
  2035. + //writeD(_isSeated ? 0x00 : 0x01); // 0 - stand up and delete, 1 - delete
  2036. }
  2037. }
  2038. \ No newline at end of file
  2039. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DoorInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DoorInfo.java
  2040. index c6648e3b..a243045b 100644
  2041. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DoorInfo.java
  2042. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DoorInfo.java
  2043. @@ -7,25 +7,32 @@ public class DoorInfo extends L2GameServerPacket
  2044. {
  2045. private final Door _door;
  2046. private final Player _activeChar;
  2047. + private int _damageGrade;
  2048.  
  2049. public DoorInfo(Door door, Player activeChar)
  2050. {
  2051. _door = door;
  2052. _activeChar = activeChar;
  2053. + _damageGrade = door.getDamage();
  2054. }
  2055.  
  2056. @Override
  2057. protected final void writeImpl()
  2058. {
  2059. - writeC(0x4c);
  2060. - writeD(_door.getObjectId());
  2061. +
  2062. + //writeC(0x4c);
  2063. + writeC(0x9f);
  2064. writeD(_door.getDoorId());
  2065. - writeD(_door.isAutoAttackable(_activeChar) ? 0 : 1); // ??? (can attack)
  2066. + writeD(_door.getObjectId());
  2067. + writeD(1);
  2068. + writeD(1);
  2069. writeD(1); // ??? (can target)
  2070. writeD(_door.isOpened() ? 0 : 1);
  2071. - writeD(_door.getMaxHp());
  2072. + writeD(_door.isAutoAttackable(_activeChar) ? 0 : 1); // ??? (can attack)
  2073. writeD((int) _door.getCurrentHp());
  2074. - writeD(0); // ??? (show HP)
  2075. - writeD(0); // ??? (Damage)
  2076. + writeD(_door.getMaxHp());
  2077. + writeD(1); // ??? (show HP)
  2078. + writeD(_damageGrade);
  2079. + //writeD(0); // ??? (Damage)
  2080. }
  2081. }
  2082. \ No newline at end of file
  2083. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DoorStatusUpdate.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DoorStatusUpdate.java
  2084. index 184b7192..27942e19 100644
  2085. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DoorStatusUpdate.java
  2086. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DoorStatusUpdate.java
  2087. @@ -23,7 +23,7 @@ protected final void writeImpl()
  2088. writeD(_door.getDamage());
  2089. writeD(_door.isAutoAttackable(_activeChar) ? 1 : 0);
  2090. writeD(_door.getDoorId());
  2091. - writeD(_door.getMaxHp());
  2092. writeD((int) _door.getCurrentHp());
  2093. + writeD(_door.getMaxHp());
  2094. }
  2095. }
  2096. \ No newline at end of file
  2097. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DropItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DropItem.java
  2098. index 57e0f911..1f092547 100644
  2099. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DropItem.java
  2100. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/DropItem.java
  2101. @@ -16,7 +16,7 @@ public DropItem(ItemInstance item, int playerObjId)
  2102. @Override
  2103. protected final void writeImpl()
  2104. {
  2105. - writeC(0x0c);
  2106. + writeC(0x16);
  2107. writeD(_charObjId);
  2108. writeD(_item.getObjectId());
  2109. writeD(_item.getItemId());
  2110. @@ -30,7 +30,7 @@ protected final void writeImpl()
  2111. writeD(0x01);
  2112. else
  2113. writeD(0x00);
  2114. - writeD(_item.getCount());
  2115. + writeQ(Long.valueOf(_item.getCount()));
  2116.  
  2117. writeD(1); // unknown
  2118. }
  2119. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/EnchantResult.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/EnchantResult.java
  2120. index 4a90ea67..b8f4aec0 100644
  2121. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/EnchantResult.java
  2122. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/EnchantResult.java
  2123. @@ -18,7 +18,7 @@ private EnchantResult(int result)
  2124. @Override
  2125. protected final void writeImpl()
  2126. {
  2127. - writeC(0x81);
  2128. + writeC(0x87);
  2129. writeD(_result);
  2130. }
  2131. }
  2132. \ No newline at end of file
  2133. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExConfirmCancelItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExConfirmCancelItem.java
  2134. index 895d2f5f..14e4ca68 100644
  2135. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExConfirmCancelItem.java
  2136. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExConfirmCancelItem.java
  2137. @@ -26,7 +26,7 @@ public ExConfirmCancelItem(ItemInstance item, int price)
  2138. protected void writeImpl()
  2139. {
  2140. writeC(0xfe);
  2141. - writeH(0x56);
  2142. + writeH(0x57);
  2143. writeD(_itemObjId);
  2144. writeD(_itemId);
  2145. writeD(_itemAug1);
  2146. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExConfirmVariationGemstone.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExConfirmVariationGemstone.java
  2147. index a306d689..241f5104 100644
  2148. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExConfirmVariationGemstone.java
  2149. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExConfirmVariationGemstone.java
  2150. @@ -14,9 +14,9 @@ public class ExConfirmVariationGemstone extends L2GameServerPacket
  2151. public ExConfirmVariationGemstone(int gemstoneObjId, int count)
  2152. {
  2153. _gemstoneObjId = gemstoneObjId;
  2154. - _unk1 = 1;
  2155. + _unk1 = 0;
  2156. _gemstoneCount = count;
  2157. - _unk2 = 1;
  2158. + _unk2 = 0;
  2159. _unk3 = 1;
  2160. }
  2161.  
  2162. @@ -24,10 +24,11 @@ public ExConfirmVariationGemstone(int gemstoneObjId, int count)
  2163. protected void writeImpl()
  2164. {
  2165. writeC(0xfe);
  2166. - writeH(0x54);
  2167. + writeH(0x55);
  2168. writeD(_gemstoneObjId);
  2169. + writeD(0x00);
  2170. + writeQ(_gemstoneCount);
  2171. writeD(_unk1);
  2172. - writeD(_gemstoneCount);
  2173. writeD(_unk2);
  2174. writeD(_unk3);
  2175. }
  2176. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExConfirmVariationRefiner.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExConfirmVariationRefiner.java
  2177. index 308cfac9..75f6d3e1 100644
  2178. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExConfirmVariationRefiner.java
  2179. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExConfirmVariationRefiner.java
  2180. @@ -24,11 +24,11 @@ public ExConfirmVariationRefiner(int refinerItemObjId, int lifeStoneId, int gems
  2181. protected void writeImpl()
  2182. {
  2183. writeC(0xfe);
  2184. - writeH(0x53);
  2185. + writeH(0x54);
  2186. writeD(_refinerItemObjId);
  2187. writeD(_lifestoneItemId);
  2188. writeD(_gemstoneItemId);
  2189. - writeD(_gemstoneCount);
  2190. + writeQ(_gemstoneCount);
  2191. writeD(_unk2);
  2192. }
  2193. }
  2194. \ No newline at end of file
  2195. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelAskStart.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelAskStart.java
  2196. index a13e4c85..74cf16e6 100644
  2197. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelAskStart.java
  2198. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelAskStart.java
  2199. @@ -19,7 +19,7 @@ public ExDuelAskStart(String requestor, int partyDuel)
  2200. protected void writeImpl()
  2201. {
  2202. writeC(0xfe);
  2203. - writeH(0x4b);
  2204. + writeH(0x4c);
  2205.  
  2206. writeS(_requestorName);
  2207. writeD(_partyDuel);
  2208. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelEnd.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelEnd.java
  2209. index b205c31c..096c4b16 100644
  2210. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelEnd.java
  2211. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelEnd.java
  2212. @@ -17,7 +17,7 @@ public ExDuelEnd(int unk1)
  2213. protected void writeImpl()
  2214. {
  2215. writeC(0xfe);
  2216. - writeH(0x4e);
  2217. + writeH(0x4f);
  2218.  
  2219. writeD(_unk1);
  2220. }
  2221. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelReady.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelReady.java
  2222. index b80e5dff..7958b431 100644
  2223. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelReady.java
  2224. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelReady.java
  2225. @@ -17,7 +17,7 @@ public ExDuelReady(int unk1)
  2226. protected void writeImpl()
  2227. {
  2228. writeC(0xfe);
  2229. - writeH(0x4c);
  2230. + writeH(0x4d);
  2231.  
  2232. writeD(_unk1);
  2233. }
  2234. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelStart.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelStart.java
  2235. index 3063f085..b3fb0efd 100644
  2236. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelStart.java
  2237. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExDuelStart.java
  2238. @@ -17,7 +17,7 @@ public ExDuelStart(int unk1)
  2239. protected void writeImpl()
  2240. {
  2241. writeC(0xfe);
  2242. - writeH(0x4d);
  2243. + writeH(0x4e);
  2244.  
  2245. writeD(_unk1);
  2246. }
  2247. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExEnchantSkillInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExEnchantSkillInfo.java
  2248. index 1d696e88..e440d4d2 100644
  2249. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExEnchantSkillInfo.java
  2250. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExEnchantSkillInfo.java
  2251. @@ -46,22 +46,29 @@ public void addRequirement(int type, int id, int count, int unk)
  2252. protected void writeImpl()
  2253. {
  2254. writeC(0xfe);
  2255. - writeH(0x18);
  2256. -
  2257. - writeD(_id);
  2258. - writeD(_level);
  2259. - writeD(_spCost);
  2260. - writeQ(_xpCost);
  2261. - writeD(_rate);
  2262. + writeH(0x2a);
  2263.  
  2264. + writeD(0);
  2265. writeD(_reqs.size());
  2266.  
  2267. +
  2268. +
  2269. +
  2270. +
  2271. for (Req temp : _reqs)
  2272. {
  2273. - writeD(temp.type);
  2274. - writeD(temp.id);
  2275. - writeD(temp.count);
  2276. - writeD(temp.unk);
  2277. + writeD(_level);
  2278. + writeD(_rate);
  2279. + writeD(_spCost);
  2280. + writeQ(_xpCost);
  2281. + writeQ(0);
  2282. + writeD(0); // req type?
  2283. + writeD(0); // required itemId
  2284. + writeD(0); // ?
  2285. + // writeD(temp.type);
  2286. + // writeD(temp.id);
  2287. + // writeD(temp.count);
  2288. + // writeD(temp.unk);
  2289. }
  2290. }
  2291. }
  2292. \ No newline at end of file
  2293. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExEnchantSkillList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExEnchantSkillList.java
  2294. index d59dea0a..d0517afb 100644
  2295. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExEnchantSkillList.java
  2296. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExEnchantSkillList.java
  2297. @@ -17,15 +17,19 @@ public ExEnchantSkillList(List<EnchantSkillNode> skills)
  2298. protected void writeImpl()
  2299. {
  2300. writeC(0xfe);
  2301. - writeH(0x17);
  2302. -
  2303. + writeH(0x29);
  2304. + writeD(0x00);
  2305. writeD(_skills.size());
  2306. for (EnchantSkillNode esn : _skills)
  2307. {
  2308. writeD(esn.getId());
  2309. + //int superval = (esn.getValue());
  2310. + //if (superval > 101)
  2311. + //writeD(superval -1);
  2312. + //else
  2313. writeD(esn.getValue());
  2314. - writeD(esn.getSp());
  2315. - writeQ(esn.getExp());
  2316. + //writeD(esn.getSp());
  2317. + //writeQ(esn.getExp());
  2318. }
  2319. }
  2320. }
  2321. \ No newline at end of file
  2322. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingEnd.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingEnd.java
  2323. index fb60f678..2909f598 100644
  2324. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingEnd.java
  2325. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingEnd.java
  2326. @@ -15,7 +15,7 @@ public ExFishingEnd(boolean win, int playerId)
  2327. protected void writeImpl()
  2328. {
  2329. writeC(0xfe);
  2330. - writeH(0x14);
  2331. + writeH(0x1f);
  2332. writeD(_playerId);
  2333. writeC((_win) ? 1 : 0);
  2334. }
  2335. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingHpRegen.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingHpRegen.java
  2336. index 29b7d768..c1165458 100644
  2337. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingHpRegen.java
  2338. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingHpRegen.java
  2339. @@ -27,7 +27,7 @@ public ExFishingHpRegen(Creature character, int time, int fishHP, int HPmode, in
  2340. protected void writeImpl()
  2341. {
  2342. writeC(0xfe);
  2343. - writeH(0x16);
  2344. + writeH(0x28);
  2345.  
  2346. writeD(_activeChar.getObjectId());
  2347. writeD(_time);
  2348. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingStart.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingStart.java
  2349. index dff1b62a..79864807 100644
  2350. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingStart.java
  2351. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingStart.java
  2352. @@ -27,7 +27,7 @@ public ExFishingStart(Creature character, int fishType, Location loc, boolean is
  2353. protected void writeImpl()
  2354. {
  2355. writeC(0xfe);
  2356. - writeH(0x13);
  2357. + writeH(0x1e);
  2358. writeD(_activeChar.getObjectId());
  2359. writeD(_fishType); // fish type
  2360. writeD(_loc.getX()); // x position
  2361. @@ -35,5 +35,7 @@ protected void writeImpl()
  2362. writeD(_loc.getZ()); // z position
  2363. writeC(_isNightLure ? 0x01 : 0x00); // night lure
  2364. writeC(Config.ALT_FISH_CHAMPIONSHIP_ENABLED ? 0x01 : 0x00); // show fish rank result button
  2365. + writeC((_fishType >= 7 && _fishType <= 9) ? 0x01 : 0x00); // 0 = day lure 1 = night lure
  2366. + writeC(0x00);
  2367. }
  2368. }
  2369. \ No newline at end of file
  2370. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingStartCombat.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingStartCombat.java
  2371. index cf97701a..5ad6a618 100644
  2372. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingStartCombat.java
  2373. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExFishingStartCombat.java
  2374. @@ -26,7 +26,7 @@ public ExFishingStartCombat(Creature character, int time, int hp, int mode, int
  2375. protected void writeImpl()
  2376. {
  2377. writeC(0xfe);
  2378. - writeH(0x15);
  2379. + writeH(0x27);
  2380.  
  2381. writeD(_activeChar.getObjectId());
  2382. writeD(_time);
  2383. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExGetBossRecord.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExGetBossRecord.java
  2384. index 794ba6d9..e8c73f4a 100644
  2385. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExGetBossRecord.java
  2386. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExGetBossRecord.java
  2387. @@ -23,7 +23,7 @@ public ExGetBossRecord(int ranking, int totalScore, Map<Integer, Integer> list)
  2388. protected void writeImpl()
  2389. {
  2390. writeC(0xfe);
  2391. - writeH(0x33);
  2392. + writeH(0x34);
  2393. writeD(_ranking);
  2394. writeD(_totalPoints);
  2395. if (_bossRecordInfo == null)
  2396. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExHeroList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExHeroList.java
  2397. index ef5b313d..5ade481a 100644
  2398. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExHeroList.java
  2399. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExHeroList.java
  2400. @@ -23,7 +23,7 @@ public ExHeroList()
  2401. protected void writeImpl()
  2402. {
  2403. writeC(0xfe);
  2404. - writeH(0x23);
  2405. + writeH(0x79);
  2406. writeD(_heroList.size());
  2407.  
  2408. for (StatsSet hero : _heroList)
  2409. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExPutEnchantTargetItemResult.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExPutEnchantTargetItemResult.java
  2410. new file mode 100644
  2411. index 00000000..2ef39ab6
  2412. --- /dev/null
  2413. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExPutEnchantTargetItemResult.java
  2414. @@ -0,0 +1,54 @@
  2415. +/*
  2416. + * This program is free software: you can redistribute it and/or modify it under
  2417. + * the terms of the GNU General Public License as published by the Free Software
  2418. + * Foundation, either version 3 of the License, or (at your option) any later
  2419. + * version.
  2420. + *
  2421. + * This program is distributed in the hope that it will be useful, but WITHOUT
  2422. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  2423. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  2424. + * details.
  2425. + *
  2426. + * You should have received a copy of the GNU General Public License along with
  2427. + * this program. If not, see <http://www.gnu.org/licenses/>.
  2428. + */
  2429. +package com.l2jmega.gameserver.network.serverpackets;
  2430. +
  2431. +/**
  2432. + *
  2433. + * @author nBd
  2434. + */
  2435. +public class ExPutEnchantTargetItemResult extends L2GameServerPacket
  2436. +{
  2437. + private static final String _S__81_EXPUTENCHANTTARGETITEMRESULT = " 81 ExPutEnchantTargetItemResult";
  2438. +
  2439. + private int _result;
  2440. +
  2441. + /**
  2442. + *
  2443. + */
  2444. + public ExPutEnchantTargetItemResult(int result)
  2445. + {
  2446. + _result = result;
  2447. + }
  2448. +
  2449. + /**
  2450. + * @see com.l2jmega.gameserver.network.serverpackets.L2GameServerPacket#getType()
  2451. + */
  2452. + @Override
  2453. + public String getType()
  2454. + {
  2455. + return _S__81_EXPUTENCHANTTARGETITEMRESULT;
  2456. + }
  2457. +
  2458. + /**
  2459. + * @see com.l2jmega.gameserver.network.serverpackets.L2GameServerPacket#writeImpl()
  2460. + */
  2461. + @Override
  2462. + protected void writeImpl()
  2463. + {
  2464. + writeC(0xfe);
  2465. + writeH(0x81);
  2466. + writeD(_result);
  2467. + }
  2468. +}
  2469. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExServerPrimitive.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExServerPrimitive.java
  2470. index f50dff4a..ad40418b 100644
  2471. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExServerPrimitive.java
  2472. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExServerPrimitive.java
  2473. @@ -396,7 +396,7 @@ public void addLine(Color color, Location location, Location location2)
  2474. protected void writeImpl()
  2475. {
  2476. writeC(0xFE);
  2477. - writeH(0x24);
  2478. + writeH(0x11);
  2479. writeS(_name);
  2480. writeD(_x);
  2481. writeD(_y);
  2482. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowAdventurerGuideBook.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowAdventurerGuideBook.java
  2483. index 9f95bbad..053126ad 100644
  2484. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowAdventurerGuideBook.java
  2485. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowAdventurerGuideBook.java
  2486. @@ -16,6 +16,6 @@ private ExShowAdventurerGuideBook()
  2487. protected void writeImpl()
  2488. {
  2489. writeC(0xFE);
  2490. - writeH(0x37);
  2491. + writeH(0x38);
  2492. }
  2493. }
  2494. \ No newline at end of file
  2495. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowCropInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowCropInfo.java
  2496. index 90eeba7d..cbc0600c 100644
  2497. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowCropInfo.java
  2498. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowCropInfo.java
  2499. @@ -25,7 +25,7 @@ public ExShowCropInfo(int manorId, boolean nextPeriod, boolean hideButtons)
  2500. protected void writeImpl()
  2501. {
  2502. writeC(0xFE);
  2503. - writeH(0x1D);
  2504. + writeH(0x24);
  2505. writeC(_hideButtons ? 0x01 : 0x00);
  2506. writeD(_manorId);
  2507. writeD(0);
  2508. @@ -39,9 +39,9 @@ protected void writeImpl()
  2509. for (CropProcure crop : _crops)
  2510. {
  2511. writeD(crop.getId());
  2512. - writeD(crop.getAmount());
  2513. - writeD(crop.getStartAmount());
  2514. - writeD(crop.getPrice());
  2515. + writeQ(crop.getAmount());
  2516. + writeQ(crop.getStartAmount());
  2517. + writeQ(crop.getPrice());
  2518. writeC(crop.getReward());
  2519.  
  2520. final Seed seed = CastleManorManager.getInstance().getSeedByCrop(crop.getId());
  2521. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowCropSetting.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowCropSetting.java
  2522. index e22905cf..bf41e11e 100644
  2523. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowCropSetting.java
  2524. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowCropSetting.java
  2525. @@ -39,7 +39,7 @@ public ExShowCropSetting(int manorId)
  2526. public void writeImpl()
  2527. {
  2528. writeC(0xFE); // Id
  2529. - writeH(0x20); // SubId
  2530. + writeH(0x2b); // SubId
  2531.  
  2532. writeD(_manorId); // manor id
  2533. writeD(_seeds.size()); // size
  2534. @@ -63,28 +63,28 @@ public void writeImpl()
  2535. if (_current.containsKey(s.getCropId()))
  2536. {
  2537. cp = _current.get(s.getCropId());
  2538. - writeD(cp.getStartAmount()); // buy
  2539. - writeD(cp.getPrice()); // price
  2540. + writeQ(cp.getStartAmount()); // buy
  2541. + writeQ(cp.getPrice()); // price
  2542. writeC(cp.getReward()); // reward
  2543. }
  2544. else
  2545. {
  2546. - writeD(0);
  2547. - writeD(0);
  2548. + writeQ(0);
  2549. + writeQ(0);
  2550. writeC(0);
  2551. }
  2552. // Next period
  2553. if (_next.containsKey(s.getCropId()))
  2554. {
  2555. cp = _next.get(s.getCropId());
  2556. - writeD(cp.getStartAmount()); // buy
  2557. - writeD(cp.getPrice()); // price
  2558. + writeQ(cp.getStartAmount()); // buy
  2559. + writeQ(cp.getPrice()); // price
  2560. writeC(cp.getReward()); // reward
  2561. }
  2562. else
  2563. {
  2564. - writeD(0);
  2565. - writeD(0);
  2566. + writeQ(0);
  2567. + writeQ(0);
  2568. writeC(0);
  2569. }
  2570. }
  2571. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowManorDefaultInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowManorDefaultInfo.java
  2572. index 240da3a5..72d48b44 100644
  2573. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowManorDefaultInfo.java
  2574. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowManorDefaultInfo.java
  2575. @@ -20,7 +20,7 @@ public ExShowManorDefaultInfo(boolean hideButtons)
  2576. protected void writeImpl()
  2577. {
  2578. writeC(0xFE);
  2579. - writeH(0x1E);
  2580. + writeH(0x25);
  2581. writeC(_hideButtons ? 0x01 : 0x00);
  2582. writeD(_crops.size());
  2583. for (Seed crop : _crops)
  2584. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowProcureCropDetail.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowProcureCropDetail.java
  2585. index e5b61956..618634d8 100644
  2586. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowProcureCropDetail.java
  2587. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowProcureCropDetail.java
  2588. @@ -30,7 +30,7 @@ public ExShowProcureCropDetail(int cropId)
  2589. public void writeImpl()
  2590. {
  2591. writeC(0xFE);
  2592. - writeH(0x22);
  2593. + writeH(0x78);
  2594.  
  2595. writeD(_cropId);
  2596. writeD(_castleCrops.size());
  2597. @@ -40,8 +40,8 @@ public void writeImpl()
  2598. final CropProcure crop = entry.getValue();
  2599.  
  2600. writeD(entry.getKey());
  2601. - writeD(crop.getAmount());
  2602. - writeD(crop.getPrice());
  2603. + writeQ(crop.getAmount());
  2604. + writeQ(crop.getPrice());
  2605. writeC(crop.getReward());
  2606. }
  2607. }
  2608. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowQuestMark.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowQuestMark.java
  2609. index d5d8a462..eca6633b 100644
  2610. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowQuestMark.java
  2611. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowQuestMark.java
  2612. @@ -16,7 +16,7 @@ public ExShowQuestMark(int questId)
  2613. protected void writeImpl()
  2614. {
  2615. writeC(0xfe);
  2616. - writeH(0x1a);
  2617. + writeH(0x21);
  2618. writeD(_questId);
  2619. }
  2620. }
  2621. \ No newline at end of file
  2622. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExSendManorList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExSendManorList.java
  2623. index efb4b557..e75268e2 100644
  2624. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExSendManorList.java
  2625. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExSendManorList.java
  2626. @@ -29,7 +29,7 @@ private ExSendManorList()
  2627. protected void writeImpl()
  2628. {
  2629. writeC(0xFE);
  2630. - writeH(0x1B);
  2631. + writeH(0x22);
  2632. writeD(_manorList.length);
  2633. for (int i = 0; i < _manorList.length; i++)
  2634. {
  2635.  
  2636. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSeedInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSeedInfo.java
  2637. index e92c3807..63204f04 100644
  2638. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSeedInfo.java
  2639. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSeedInfo.java
  2640. @@ -25,7 +25,7 @@ public ExShowSeedInfo(int manorId, boolean nextPeriod, boolean hideButtons)
  2641. protected void writeImpl()
  2642. {
  2643. writeC(0xFE);
  2644. - writeH(0x1C);
  2645. + writeH(0x23);
  2646. writeC(_hideButtons ? 0x01 : 0x00);
  2647. writeD(_manorId);
  2648. writeD(0);
  2649. @@ -40,9 +40,9 @@ protected void writeImpl()
  2650. for (SeedProduction seed : _seeds)
  2651. {
  2652. writeD(seed.getId()); // Seed id
  2653. - writeD(seed.getAmount()); // Left to buy
  2654. - writeD(seed.getStartAmount()); // Started amount
  2655. - writeD(seed.getPrice()); // Sell Price
  2656. + writeQ(seed.getAmount()); // Left to buy
  2657. + writeQ(seed.getStartAmount()); // Started amount
  2658. + writeQ(seed.getPrice()); // Sell Price
  2659.  
  2660. final Seed s = CastleManorManager.getInstance().getSeed(seed.getId());
  2661. if (s == null)
  2662. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSeedSetting.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSeedSetting.java
  2663. index c92e38e9..fcdbd70d 100644
  2664. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSeedSetting.java
  2665. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSeedSetting.java
  2666. @@ -40,7 +40,7 @@ public ExShowSeedSetting(int manorId)
  2667. public void writeImpl()
  2668. {
  2669. writeC(0xFE);
  2670. - writeH(0x1F);
  2671. + writeH(0x26);
  2672.  
  2673. writeD(_manorId);
  2674. writeD(_seeds.size());
  2675. @@ -64,25 +64,25 @@ public void writeImpl()
  2676. if (_current.containsKey(s.getSeedId()))
  2677. {
  2678. sp = _current.get(s.getSeedId());
  2679. - writeD(sp.getStartAmount()); // sales
  2680. - writeD(sp.getPrice()); // price
  2681. + writeQ(sp.getStartAmount()); // sales
  2682. + writeQ(sp.getPrice()); // price
  2683. }
  2684. else
  2685. {
  2686. - writeD(0);
  2687. - writeD(0);
  2688. + writeQ(0);
  2689. + writeQ(0);
  2690. }
  2691. // Next period
  2692. if (_next.containsKey(s.getSeedId()))
  2693. {
  2694. sp = _next.get(s.getSeedId());
  2695. - writeD(sp.getStartAmount()); // sales
  2696. - writeD(sp.getPrice()); // price
  2697. + writeQ(sp.getStartAmount()); // sales
  2698. + writeQ(sp.getPrice()); // price
  2699. }
  2700. else
  2701. {
  2702. - writeD(0);
  2703. - writeD(0);
  2704. + writeQ(0);
  2705. + writeQ(0);
  2706. }
  2707. }
  2708. }
  2709. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSellCropList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSellCropList.java
  2710. index 764eaf83..efbe87f9 100644
  2711. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSellCropList.java
  2712. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ExShowSellCropList.java
  2713. @@ -39,7 +39,7 @@ public ExShowSellCropList(PcInventory inventory, int manorId)
  2714. public void writeImpl()
  2715. {
  2716. writeC(0xFE);
  2717. - writeH(0x21);
  2718. + writeH(0x2c);
  2719.  
  2720. writeD(_manorId);
  2721. writeD(_cropsItems.size());
  2722. @@ -60,18 +60,18 @@ public void writeImpl()
  2723. {
  2724. final CropProcure crop = _castleCrops.get(item.getItemId());
  2725. writeD(_manorId);
  2726. - writeD(crop.getAmount());
  2727. - writeD(crop.getPrice());
  2728. + writeQ(crop.getAmount());
  2729. + writeQ(crop.getPrice());
  2730. writeC(crop.getReward());
  2731. }
  2732. else
  2733. {
  2734. writeD(0xFFFFFFFF);
  2735. - writeD(0);
  2736. - writeD(0);
  2737. + writeQ(0);
  2738. + writeQ(0);
  2739. writeC(0);
  2740. }
  2741. - writeD(item.getCount());
  2742. + writeQ(item.getCount());
  2743. }
  2744. }
  2745. }
  2746. \ No newline at end of file
  2747. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ItemList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ItemList.java
  2748. index 3cf42e2b..84b0d7f5 100644
  2749. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ItemList.java
  2750. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ItemList.java
  2751. @@ -1,45 +1,88 @@
  2752. package com.l2jmega.gameserver.network.serverpackets;
  2753.  
  2754. +import java.util.HashSet;
  2755. import java.util.Set;
  2756.  
  2757. import com.l2jmega.gameserver.model.actor.instance.Player;
  2758. import com.l2jmega.gameserver.model.item.instance.ItemInstance;
  2759. import com.l2jmega.gameserver.model.item.kind.Item;
  2760.  
  2761. +//1B - packet
  2762. +//00 00 - windows
  2763. +//07 00 - count
  2764. +//01 00 - item typer
  2765. +//B4 A4 00 10 -objid
  2766. +//7B 04 00 00 - ItemID
  2767. +//01 00 00 00 - count
  2768. +//01 00 - itemtype 1
  2769. +//00 00 - custtype
  2770. +//01 00 - is equipped
  2771. +//00 08 00 00 - body part
  2772. +//00 00 -enchant level
  2773. +//00 00 -custtype 2
  2774. +//00 00 00 00 - aug id
  2775. +//FF FF FF FF - shadowtime
  2776. +
  2777. public class ItemList extends L2GameServerPacket
  2778. {
  2779. - private final Set<ItemInstance> _items;
  2780. + private Set<ItemInstance> _items = new HashSet<>();
  2781. private final boolean _showWindow;
  2782. -
  2783. public ItemList(Player cha, boolean showWindow)
  2784. {
  2785. - _items = cha.getInventory().getItems();
  2786. + _items.addAll(cha.getInventory().getItems());
  2787. +
  2788. _showWindow = showWindow;
  2789. }
  2790. -
  2791. +
  2792. @Override
  2793. protected final void writeImpl()
  2794. {
  2795. - writeC(0x1b);
  2796. + writeC(0x11);
  2797. writeH(_showWindow ? 0x01 : 0x00);
  2798. writeH(_items.size());
  2799. -
  2800. +
  2801. for (ItemInstance temp : _items)
  2802. {
  2803. Item item = temp.getItem();
  2804. -
  2805. - writeH(item.getType1());
  2806. +
  2807. + //writeH(item.getType1());
  2808. writeD(temp.getObjectId());
  2809. writeD(temp.getItemId());
  2810. - writeD(temp.getCount());
  2811. + //writeD(0); //writeD(0);writeD(0);writeD(0);
  2812. + //writeD(item.getBodyPart());
  2813. + writeD(0);
  2814. + writeQ(Long.valueOf(temp.getCount()));
  2815. + //writeQ(0);
  2816. writeH(item.getType2());
  2817. writeH(temp.getCustomType1());
  2818. writeH(temp.isEquipped() ? 0x01 : 0x00);
  2819. + //writeD(2048);
  2820. writeD(item.getBodyPart());
  2821. + //writeD(temp.getItem().getBodyPart());
  2822. + //writeD(temp.getItem().getBodyPart());
  2823. writeH(temp.getEnchantLevel());
  2824. writeH(temp.getCustomType2());
  2825. writeD((temp.isAugmented()) ? temp.getAugmentation().getAugmentationId() : 0x00);
  2826. + //writeH((temp.isAugmented()) ? temp.getAugmentation().getAugmentationId() : 0x00);
  2827. writeD(temp.getMana());
  2828. + writeD(0);
  2829. +
  2830. + writeH(0);//elemttpe
  2831. + writeH(0);
  2832. +
  2833. + writeH(0);//elements
  2834. + writeH(0);
  2835. + writeH(0);
  2836. + writeH(0);
  2837. + writeH(0);
  2838. + writeH(0);
  2839. +
  2840. + //writeD(0);
  2841. + writeH(0x00);//enchanteffects
  2842. + writeH(0x00);
  2843. + writeH(0x00);
  2844. +
  2845. + //writeH(0x00); //invblock?
  2846. }
  2847. }
  2848. }
  2849. \ No newline at end of file
  2850. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/MultiSellList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/MultiSellList.java
  2851. index b8b5db07..7882fdeb 100644
  2852. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/MultiSellList.java
  2853. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/MultiSellList.java
  2854. @@ -37,7 +37,8 @@ protected void writeImpl()
  2855. writeD(_list.getId()); // list id
  2856. writeD(1 + (_index / PAGE_SIZE)); // page
  2857. writeD(_finished ? 1 : 0); // finished
  2858. - writeD(PAGE_SIZE); // size of pages
  2859. + writeD(0x28);
  2860. + // writeD(PAGE_SIZE); // size of pages
  2861. writeD(_size); // list lenght
  2862.  
  2863. while (_size-- > 0)
  2864. @@ -45,15 +46,25 @@ protected void writeImpl()
  2865. Entry ent = _list.getEntries().get(_index++);
  2866.  
  2867. writeD(ent.getId());
  2868. - writeD(0x00); // C6
  2869. - writeD(0x00); // C6
  2870. writeC(ent.isStackable() ? 1 : 0);
  2871. + writeH(0x00); // C6
  2872. + writeD(0x00); // C6
  2873. + writeD(0x00); // T1
  2874. + writeH(65534); // T1
  2875. + writeH(0x00); // T1
  2876. + writeH(0x00); // T1
  2877. + writeH(0x00); // T1
  2878. + writeH(0x00); // T1
  2879. + writeH(0x00); // T1
  2880. + writeH(0x00); // T1
  2881. + writeH(0x00); // T1
  2882. writeH(ent.getProducts().size());
  2883. writeH(ent.getIngredients().size());
  2884.  
  2885. for (Ingredient ing : ent.getProducts())
  2886. {
  2887. - writeH(ing.getItemId());
  2888. + //writeH(ing.getItemId());
  2889. + writeD(ing.getItemId());
  2890. if (ing.getTemplate() != null)
  2891. {
  2892. writeD(ing.getTemplate().getBodyPart());
  2893. @@ -64,20 +75,37 @@ protected void writeImpl()
  2894. writeD(0);
  2895. writeH(65535);
  2896. }
  2897. - writeD(ing.getItemCount());
  2898. + writeQ(ing.getItemCount());
  2899. writeH(ing.getEnchantLevel());
  2900. writeD(0x00); // TODO: i.getAugmentId()
  2901. writeD(0x00); // TODO: i.getManaLeft()
  2902. + writeH(0x00);
  2903. + writeH(0x00);
  2904. + writeH(0x00);
  2905. + writeH(0x00);
  2906. + writeH(0x00);
  2907. + writeH(0x00);
  2908. + writeH(0x00);
  2909. + writeH(0x00);
  2910. }
  2911.  
  2912. for (Ingredient ing : ent.getIngredients())
  2913. {
  2914. - writeH(ing.getItemId());
  2915. + //writeH(ing.getItemId());
  2916. + writeD(ing.getItemId());
  2917. writeH(ing.getTemplate() != null ? ing.getTemplate().getType2() : 65535);
  2918. - writeD(ing.getItemCount());
  2919. + writeQ(ing.getItemCount());
  2920. writeH(ing.getEnchantLevel());
  2921. writeD(0x00); // TODO: i.getAugmentId()
  2922. writeD(0x00); // TODO: i.getManaLeft()
  2923. + writeH(0x00);
  2924. + writeH(0x00);
  2925. + writeH(0x00);
  2926. + writeH(0x00);
  2927. + writeH(0x00);
  2928. + writeH(0x00);
  2929. + writeH(0x00);
  2930. + writeH(0x00);
  2931. }
  2932. }
  2933. }
  2934. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetDelete.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetDelete.java
  2935. index ba45f42c..3266ebc4 100644
  2936. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetDelete.java
  2937. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetDelete.java
  2938. @@ -14,7 +14,7 @@ public PetDelete(int summonType, int objId)
  2939. @Override
  2940. protected final void writeImpl()
  2941. {
  2942. - writeC(0xb6);
  2943. + writeC(0xb7);
  2944. writeD(_summonType);
  2945. writeD(_objId);
  2946. }
  2947. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetInfo.java
  2948. index 0c27da73..d3e32795 100644
  2949. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetInfo.java
  2950. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetInfo.java
  2951. @@ -33,7 +33,7 @@ else if (_summon instanceof Servitor)
  2952. @Override
  2953. protected final void writeImpl()
  2954. {
  2955. - writeC(0xb1);
  2956. + writeC(0xb2);
  2957. writeD(_summon.getSummonType());
  2958. writeD(_summon.getObjectId());
  2959. writeD(_summon.getTemplate().getIdTemplate() + 1000000);
  2960. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetInventoryUpdate.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetInventoryUpdate.java
  2961. index 043b721b..91a58764 100644
  2962. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetInventoryUpdate.java
  2963. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetInventoryUpdate.java
  2964. @@ -60,7 +60,7 @@ public void addItems(List<ItemInstance> items)
  2965. @Override
  2966. protected final void writeImpl()
  2967. {
  2968. - writeC(0xb3);
  2969. + writeC(0xb4);
  2970. writeH(_items.size());
  2971.  
  2972. for (ItemInfo temp : _items)
  2973. @@ -68,16 +68,34 @@ protected final void writeImpl()
  2974. Item item = temp.getItem();
  2975.  
  2976. writeH(temp.getChange().ordinal());
  2977. - writeH(item.getType1());
  2978. + //writeH(item.getType1());
  2979. writeD(temp.getObjectId());
  2980. writeD(item.getItemId());
  2981. - writeD(temp.getCount());
  2982. + writeD(0x00);
  2983. + writeQ(temp.getCount());
  2984. writeH(item.getType2());
  2985. writeH(temp.getCustomType1());
  2986. writeH(temp.getEquipped());
  2987. writeD(item.getBodyPart());
  2988. writeH(temp.getEnchant());
  2989. writeH(temp.getCustomType2());
  2990. + writeD(0x00);
  2991. + writeD(0x00);
  2992. + writeD(0x00);
  2993. +
  2994. + writeH(0x00);
  2995. + writeH(0x00);
  2996. +
  2997. + writeH(0x00);
  2998. + writeH(0x00);
  2999. + writeH(0x00);
  3000. + writeH(0x00);
  3001. + writeH(0x00);
  3002. + writeH(0x00);
  3003. +
  3004. + writeH(0x00);
  3005. + writeH(0x00);
  3006. + writeH(0x00);
  3007. }
  3008. }
  3009. }
  3010. \ No newline at end of file
  3011. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetItemList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetItemList.java
  3012. index 055090dd..7381a8da 100644
  3013. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetItemList.java
  3014. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetItemList.java
  3015. @@ -18,7 +18,7 @@ public PetItemList(Pet character)
  3016. @Override
  3017. protected final void writeImpl()
  3018. {
  3019. - writeC(0xB2);
  3020. + writeC(0xB3);
  3021. writeH(_items.size());
  3022.  
  3023. for (ItemInstance temp : _items)
  3024. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetStatusShow.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetStatusShow.java
  3025. index b9b1f8d0..f608c65a 100644
  3026. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetStatusShow.java
  3027. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetStatusShow.java
  3028. @@ -17,7 +17,7 @@ public PetStatusShow(Summon summon)
  3029. @Override
  3030. protected final void writeImpl()
  3031. {
  3032. - writeC(0xB0);
  3033. + writeC(0xB1);
  3034. writeD(_summonType);
  3035. }
  3036. }
  3037. \ No newline at end of file
  3038. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetStatusUpdate.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetStatusUpdate.java
  3039. index b7c906d0..eed18d58 100644
  3040. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetStatusUpdate.java
  3041. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PetStatusUpdate.java
  3042. @@ -32,7 +32,7 @@ else if (_summon instanceof Servitor)
  3043. @Override
  3044. protected final void writeImpl()
  3045. {
  3046. - writeC(0xb5);
  3047. + writeC(0xb6);
  3048. writeD(_summon.getSummonType());
  3049. writeD(_summon.getObjectId());
  3050. writeD(_summon.getX());
  3051. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PledgeStatusChanged.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PledgeStatusChanged.java
  3052. index 098a5c4c..fd94d2f9 100644
  3053. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PledgeStatusChanged.java
  3054. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PledgeStatusChanged.java
  3055. @@ -23,6 +23,12 @@ protected final void writeImpl()
  3056. writeD(_clan.getCrestId());
  3057. writeD(_clan.getAllyId());
  3058. writeD(_clan.getAllyCrestId());
  3059. + //writeD(0);
  3060. + //writeD(_clan.getLevel());
  3061. + // writeD(_clan.getCrestId());
  3062. + // writeD(_clan.getAllyId());
  3063. + // writeD(_clan.getAllyCrestId());
  3064. + //writeD(0);
  3065. writeD(0);
  3066. writeD(0);
  3067. }
  3068. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreListBuy.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreListBuy.java
  3069. index a27d6c49..1c2db0d8 100644
  3070. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreListBuy.java
  3071. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreListBuy.java
  3072. @@ -23,26 +23,46 @@ public PrivateStoreListBuy(Player player, Player storePlayer)
  3073. @Override
  3074. protected final void writeImpl()
  3075. {
  3076. - writeC(0xb8);
  3077. + writeC(0xbe);
  3078. writeD(_storePlayer.getObjectId());
  3079. - writeD(_playerAdena);
  3080. + writeQ(_playerAdena);
  3081. writeD(_items.size());
  3082.  
  3083. for (TradeItem item : _items)
  3084. {
  3085. writeD(item.getObjectId());
  3086. writeD(item.getItem().getItemId());
  3087. + writeD(0x00);
  3088. + //writeD(item.getItem().getBodyPart());
  3089. + writeQ(item.getCount()); // give max possible sell amount
  3090. + writeH(item.getItem().getType2());
  3091. + writeH(0x00);
  3092. + writeH(0x00);
  3093. + writeD(item.getItem().getBodyPart());
  3094. writeH(item.getEnchant());
  3095. - writeD(item.getCount()); // give max possible sell amount
  3096. + writeH(0x00);
  3097.  
  3098. - writeD(item.getItem().getReferencePrice());
  3099. - writeH(0);
  3100. + writeD(0x00);
  3101. + writeD(0x00);
  3102. + writeD(0x00);
  3103.  
  3104. - writeD(item.getItem().getBodyPart());
  3105. - writeH(item.getItem().getType2());
  3106. - writeD(item.getPrice());// buyers price
  3107. + writeH(0x00);
  3108. + writeH(0x00);
  3109. + for (byte i = 0; i < 6; i++)
  3110. + {
  3111. + writeH(0x00);
  3112. + }
  3113.  
  3114. - writeD(item.getCount()); // maximum possible tradecount
  3115. + writeH(0x00);
  3116. + writeH(0x00);
  3117. + writeH(0x00);
  3118. +
  3119. + writeD(item.getObjectId());
  3120. + writeQ(item.getPrice());// buyers price
  3121. + writeQ(item.getItem().getReferencePrice());
  3122. + writeQ(item.getCount()); // maximum possible tradecount
  3123. +
  3124. +
  3125. }
  3126. }
  3127. }
  3128. \ No newline at end of file
  3129. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreListSell.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreListSell.java
  3130. index f4a7d0ef..36a4a701 100644
  3131. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreListSell.java
  3132. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreListSell.java
  3133. @@ -23,24 +23,44 @@ public PrivateStoreListSell(Player player, Player storePlayer)
  3134. @Override
  3135. protected final void writeImpl()
  3136. {
  3137. - writeC(0x9b);
  3138. + writeC(0xa1);
  3139. writeD(_storePlayer.getObjectId());
  3140. writeD(_packageSale ? 1 : 0);
  3141. - writeD(_playerAdena);
  3142. + writeQ(_playerAdena);
  3143. writeD(_items.size());
  3144.  
  3145. for (TradeItem item : _items)
  3146. {
  3147. - writeD(item.getItem().getType2());
  3148. writeD(item.getObjectId());
  3149. writeD(item.getItem().getItemId());
  3150. - writeD(item.getCount());
  3151. + writeD(0x00);
  3152. + //writeD(item.getItem().getBodyPart());
  3153. + writeQ(item.getCount());
  3154. + writeH(item.getItem().getType2());
  3155. writeH(0x00);
  3156. - writeH(item.getEnchant());
  3157. writeH(0x00);
  3158. writeD(item.getItem().getBodyPart());
  3159. - writeD(item.getPrice()); // your price
  3160. - writeD(item.getItem().getReferencePrice()); // store price
  3161. + writeH(item.getEnchant());
  3162. + writeH(0x00);
  3163. +
  3164. + writeD(0x00);
  3165. + writeD(0x00);
  3166. + writeD(0x00);
  3167. +
  3168. + writeH(0x00);
  3169. + writeH(0x00);
  3170. + for (byte i = 0; i < 6; i++)
  3171. + {
  3172. + writeH(0x00);
  3173. + }
  3174. +
  3175. + writeH(0x00);
  3176. + writeH(0x00);
  3177. + writeH(0x00);
  3178. +
  3179. + writeQ(item.getPrice()); // your price
  3180. + writeQ(item.getItem().getReferencePrice()); // store price
  3181. +
  3182. }
  3183. }
  3184. }
  3185. \ No newline at end of file
  3186. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreManageListBuy.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreManageListBuy.java
  3187. index 7c021309..5c81f864 100644
  3188. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreManageListBuy.java
  3189. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreManageListBuy.java
  3190. @@ -17,41 +17,84 @@ public PrivateStoreManageListBuy(Player player)
  3191. {
  3192. _objId = player.getObjectId();
  3193. _playerAdena = player.getAdena();
  3194. - _itemList = player.getInventory().getUniqueItems(false, true);
  3195. + _itemList = player.getInventory().getUniqueItems(false, true, true);
  3196. _buyList = player.getBuyList().getItems();
  3197. }
  3198.  
  3199. @Override
  3200. protected final void writeImpl()
  3201. {
  3202. - writeC(0xb7);
  3203. + writeC(0xbd);
  3204. writeD(_objId);
  3205. - writeD(_playerAdena);
  3206. + writeQ(_playerAdena);
  3207.  
  3208. writeD(_itemList.length); // inventory items for potential buy
  3209. for (ItemInstance item : _itemList)
  3210. {
  3211. + writeD(item.getObjectId());
  3212. writeD(item.getItemId());
  3213. - writeH(item.getEnchantLevel());
  3214. - writeD(item.getCount());
  3215. - writeD(item.getReferencePrice());
  3216. + writeD(0x00);
  3217. + //writeD(item.getItem().getBodyPart());
  3218. + writeQ(item.getCount());
  3219. + writeH(item.getItem().getType2());
  3220. + writeH(0x00);
  3221. writeH(0x00);
  3222. writeD(item.getItem().getBodyPart());
  3223. - writeH(item.getItem().getType2());
  3224. + writeH(item.getEnchantLevel());
  3225. + writeH(0x00);
  3226. +
  3227. + writeD(0x00);
  3228. + writeD(0x00);
  3229. + writeD(0x00);
  3230. +
  3231. + writeH(0x00);
  3232. + writeH(0x00);
  3233. + for (byte i = 0; i < 6; i++)
  3234. + {
  3235. + writeH(0x00);
  3236. + }
  3237. +
  3238. + writeH(0x00);
  3239. + writeH(0x00);
  3240. + writeH(0x00);
  3241. +
  3242. + writeQ(item.getReferencePrice());
  3243. +
  3244. }
  3245.  
  3246. writeD(_buyList.size()); // count for all items already added for buy
  3247. for (TradeItem item : _buyList)
  3248. {
  3249. + writeD(item.getObjectId());
  3250. writeD(item.getItem().getItemId());
  3251. - writeH(item.getEnchant());
  3252. - writeD(item.getCount());
  3253. - writeD(item.getItem().getReferencePrice());
  3254. - writeH(0x00);
  3255. writeD(item.getItem().getBodyPart());
  3256. + writeQ(item.getCount());
  3257. +
  3258. writeH(item.getItem().getType2());
  3259. - writeD(item.getPrice());// your price
  3260. - writeD(item.getItem().getReferencePrice());// fixed store price
  3261. + writeH(0x00);
  3262. + writeH(0x00);
  3263. + writeD(item.getItem().getBodyPart());
  3264. + writeH(item.getEnchant());
  3265. + writeH(0x00);
  3266. +
  3267. + writeD(0x00);
  3268. + writeD(0x00);
  3269. + writeD(0x00);
  3270. +
  3271. + writeH(0x00);
  3272. + writeH(0x00);
  3273. + for (byte i = 0; i < 6; i++)
  3274. + {
  3275. + writeH(0x00);
  3276. + }
  3277. +
  3278. + writeH(0x00);
  3279. + writeH(0x00);
  3280. + writeH(0x00);
  3281. +
  3282. + writeQ(item.getPrice());// your price
  3283. + writeQ(item.getItem().getReferencePrice());// fixed store price
  3284. + writeQ(item.getCount());
  3285. }
  3286. }
  3287. }
  3288. \ No newline at end of file
  3289. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreManageListSell.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreManageListSell.java
  3290. index 592efbb9..5de3c1b8 100644
  3291. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreManageListSell.java
  3292. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreManageListSell.java
  3293. @@ -21,45 +21,86 @@ public PrivateStoreManageListSell(Player player, boolean isPackageSale)
  3294. player.getSellList().updateItems();
  3295.  
  3296. _packageSale = (player.getSellList().isPackaged()) ? true : isPackageSale;
  3297. - _itemList = player.getInventory().getAvailableItems(player.getSellList());
  3298. + _itemList = player.getInventory().getAvailableItems(player.getSellList(), false);
  3299. _sellList = player.getSellList().getItems();
  3300. }
  3301.  
  3302. @Override
  3303. protected final void writeImpl()
  3304. {
  3305. - writeC(0x9a);
  3306. + writeC(0xa0);
  3307. writeD(_objId);
  3308. writeD(_packageSale ? 1 : 0);
  3309. - writeD(_playerAdena);
  3310. + writeQ(_playerAdena);
  3311.  
  3312. writeD(_itemList.length);
  3313. for (TradeItem item : _itemList)
  3314. {
  3315. - writeD(item.getItem().getType2());
  3316. +
  3317. writeD(item.getObjectId());
  3318. writeD(item.getItem().getItemId());
  3319. - writeD(item.getCount());
  3320. + writeD(0x00);
  3321. + //writeD(item.getItem().getBodyPart());
  3322. + writeQ(item.getCount());
  3323. + writeH(item.getItem().getType2());
  3324. writeH(0x00);
  3325. - writeH(item.getEnchant());
  3326. writeH(0x00);
  3327. writeD(item.getItem().getBodyPart());
  3328. - writeD(item.getPrice());
  3329. + writeH(item.getEnchant());
  3330. + writeH(0x00);
  3331. +
  3332. + writeD(0x00);
  3333. + writeD(0x00);
  3334. + writeD(0x00);
  3335. +
  3336. +
  3337. +
  3338. + writeH(0x00);
  3339. + writeH(0x00);
  3340. + for (byte i = 0; i < 6; i++)
  3341. + {
  3342. + writeH(0x00);
  3343. + }
  3344. +
  3345. + writeH(0x00);
  3346. + writeH(0x00);
  3347. + writeH(0x00);
  3348. + writeQ(item.getPrice());
  3349. }
  3350.  
  3351. writeD(_sellList.size());
  3352. for (TradeItem item : _sellList)
  3353. {
  3354. - writeD(item.getItem().getType2());
  3355. +
  3356. writeD(item.getObjectId());
  3357. writeD(item.getItem().getItemId());
  3358. - writeD(item.getCount());
  3359. + writeD(item.getItem().getBodyPart());
  3360. + writeQ(item.getCount());
  3361. + writeH(item.getItem().getType2());
  3362. + writeH(0x00);//cust
  3363. writeH(0x00);
  3364. + writeD(item.getItem().getBodyPart());
  3365. writeH(item.getEnchant());
  3366. writeH(0x00);
  3367. - writeD(item.getItem().getBodyPart());
  3368. - writeD(item.getPrice());
  3369. - writeD(item.getItem().getReferencePrice());
  3370. +
  3371. + writeD(0x00);
  3372. + writeD(0x00);
  3373. + writeD(0x00);
  3374. +
  3375. +
  3376. + writeH(0x00);
  3377. + writeH(0x00);
  3378. + for (byte i = 0; i < 6; i++)
  3379. + {
  3380. + writeH(0x00);
  3381. + }
  3382. +
  3383. + writeH(0x00);
  3384. + writeH(0x00);
  3385. + writeH(0x00);
  3386. +
  3387. + writeQ(item.getPrice());
  3388. + writeQ(item.getItem().getReferencePrice());
  3389. }
  3390. }
  3391. }
  3392. \ No newline at end of file
  3393. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreMsgBuy.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreMsgBuy.java
  3394. index f38b8869..a608deb4 100644
  3395. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreMsgBuy.java
  3396. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreMsgBuy.java
  3397. @@ -17,7 +17,7 @@ public PrivateStoreMsgBuy(Player player)
  3398. @Override
  3399. protected final void writeImpl()
  3400. {
  3401. - writeC(0xb9);
  3402. + writeC(0xbf);
  3403. writeD(_activeChar.getObjectId());
  3404. writeS(_storeMsg);
  3405. }
  3406. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreMsgSell.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreMsgSell.java
  3407. index 0592cd22..79a9c3bf 100644
  3408. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreMsgSell.java
  3409. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/PrivateStoreMsgSell.java
  3410. @@ -17,7 +17,7 @@ public PrivateStoreMsgSell(Player player)
  3411. @Override
  3412. protected final void writeImpl()
  3413. {
  3414. - writeC(0x9c);
  3415. + writeC(0xa2);
  3416. writeD(_activeChar.getObjectId());
  3417. writeS(_storeMsg);
  3418. }
  3419. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeBookItemList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeBookItemList.java
  3420. index 62928806..d2eefff6 100644
  3421. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeBookItemList.java
  3422. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeBookItemList.java
  3423. @@ -21,7 +21,7 @@ public RecipeBookItemList(Player player, boolean isDwarven)
  3424. @Override
  3425. protected final void writeImpl()
  3426. {
  3427. - writeC(0xD6);
  3428. + writeC(0xDc);
  3429.  
  3430. writeD((_isDwarven) ? 0x00 : 0x01);
  3431. writeD(_maxMp);
  3432. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeItemMakeInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeItemMakeInfo.java
  3433. index b4f30b38..2d49a66a 100644
  3434. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeItemMakeInfo.java
  3435. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeItemMakeInfo.java
  3436. @@ -30,7 +30,7 @@ protected final void writeImpl()
  3437. Recipe recipe = RecipeData.getInstance().getRecipeList(_id);
  3438. if (recipe != null)
  3439. {
  3440. - writeC(0xD7);
  3441. + writeC(0xDD);
  3442.  
  3443. writeD(_id);
  3444. writeD((recipe.isDwarven()) ? 0 : 1);
  3445. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopItemInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopItemInfo.java
  3446. index 97a625fb..318788bc 100644
  3447. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopItemInfo.java
  3448. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopItemInfo.java
  3449. @@ -16,7 +16,7 @@ public RecipeShopItemInfo(Player player, int recipeId)
  3450. @Override
  3451. protected final void writeImpl()
  3452. {
  3453. - writeC(0xda);
  3454. + writeC(0xe0);
  3455. writeD(_player.getObjectId());
  3456. writeD(_recipeId);
  3457. writeD((int) _player.getCurrentMp());
  3458. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopManageList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopManageList.java
  3459. index e21e338b..d32e499f 100644
  3460. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopManageList.java
  3461. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopManageList.java
  3462. @@ -41,7 +41,7 @@ public RecipeShopManageList(Player seller, boolean isDwarven)
  3463. @Override
  3464. protected final void writeImpl()
  3465. {
  3466. - writeC(0xd8);
  3467. + writeC(0xde);
  3468. writeD(_seller.getObjectId());
  3469. writeD(_seller.getAdena());
  3470. writeD(_isDwarven ? 0x00 : 0x01);
  3471. @@ -71,7 +71,7 @@ protected final void writeImpl()
  3472. {
  3473. writeD(item.getId());
  3474. writeD(0x00);
  3475. - writeD(item.getValue());
  3476. + writeQ(item.getValue());
  3477. }
  3478. }
  3479. }
  3480. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopMsg.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopMsg.java
  3481. index 82bfefee..65f20ae3 100644
  3482. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopMsg.java
  3483. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopMsg.java
  3484. @@ -14,7 +14,7 @@ public RecipeShopMsg(Player player)
  3485. @Override
  3486. protected final void writeImpl()
  3487. {
  3488. - writeC(0xdb);
  3489. + writeC(0xe1);
  3490. writeD(_activeChar.getObjectId());
  3491. writeS(_activeChar.getCreateList().getStoreName());
  3492. }
  3493. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopSellList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopSellList.java
  3494. index ae36d28e..81e3d850 100644
  3495. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopSellList.java
  3496. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/RecipeShopSellList.java
  3497. @@ -23,11 +23,11 @@ protected final void writeImpl()
  3498. final ManufactureList createList = _manufacturer.getCreateList();
  3499. if (createList != null)
  3500. {
  3501. - writeC(0xd9);
  3502. + writeC(0xdf);
  3503. writeD(_manufacturer.getObjectId());
  3504. writeD((int) _manufacturer.getCurrentMp());
  3505. writeD(_manufacturer.getMaxMp());
  3506. - writeD(_buyer.getAdena());
  3507. + writeQ(_buyer.getAdena());
  3508.  
  3509. final List<ManufactureItem> list = createList.getList();
  3510. writeD(list.size());
  3511. @@ -36,7 +36,7 @@ protected final void writeImpl()
  3512. {
  3513. writeD(item.getId());
  3514. writeD(0x00); // unknown
  3515. - writeD(item.getValue());
  3516. + writeQ(item.getValue());
  3517. }
  3518. }
  3519. }
  3520. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/Ride.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/Ride.java
  3521. index ebb23891..d58f66ae 100644
  3522. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/Ride.java
  3523. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/Ride.java
  3524. @@ -1,35 +1,79 @@
  3525. +/*
  3526. + * This program is free software: you can redistribute it and/or modify it under
  3527. + * the terms of the GNU General Public License as published by the Free Software
  3528. + * Foundation, either version 3 of the License, or (at your option) any later
  3529. + * version.
  3530. + *
  3531. + * This program is distributed in the hope that it will be useful, but WITHOUT
  3532. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  3533. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  3534. + * details.
  3535. + *
  3536. + * You should have received a copy of the GNU General Public License along with
  3537. + * this program. If not, see <http://www.gnu.org/licenses/>.
  3538. + */
  3539. package com.l2jmega.gameserver.network.serverpackets;
  3540.  
  3541. -public class Ride extends L2GameServerPacket
  3542. +import com.l2jmega.gameserver.model.actor.instance.Player;
  3543. +
  3544. +public final class Ride extends L2GameServerPacket
  3545. {
  3546. + private static final String _S__8c_Ride = " 8c Ride";
  3547. public static final int ACTION_MOUNT = 1;
  3548. public static final int ACTION_DISMOUNT = 0;
  3549. -
  3550. private final int _id;
  3551. private final int _bRide;
  3552. - private int _rideType;
  3553. + private final int _rideType;
  3554. private final int _rideClassID;
  3555. + private final int _x, _y, _z;
  3556.  
  3557. - public Ride(int id, int action, int rideClassId)
  3558. + public Ride(Player cha, boolean mount, int rideClassId)
  3559. {
  3560. - _id = id; // charobjectID
  3561. - _bRide = action; // 1 for mount ; 2 for dismount
  3562. + _id = cha.getObjectId();
  3563. + _bRide = mount ? 1 : 0;
  3564. _rideClassID = rideClassId + 1000000; // npcID
  3565.  
  3566. + _x = cha.getX();
  3567. + _y = cha.getY();
  3568. + _z = cha.getZ();
  3569. +
  3570. switch (rideClassId)
  3571. {
  3572. - case 12526:
  3573. - case 12527: // Striders
  3574. - case 12528:
  3575. + case 0: // dismount
  3576. + _rideType = 0;
  3577. + break;
  3578. + case 12526: // Wind
  3579. + case 12527: // Star
  3580. + case 12528: // Twilight
  3581. + case 16038: // red strider of wind
  3582. + case 16039: // red strider of star
  3583. + case 16040: // red strider of dusk
  3584. _rideType = 1;
  3585. break;
  3586. -
  3587. case 12621: // Wyvern
  3588. _rideType = 2;
  3589. break;
  3590. + case 16037: // Great Snow Wolf
  3591. + case 16041: // Fenrir Wolf
  3592. + case 16042: // White Fenrir Wolf
  3593. + _rideType = 3;
  3594. + break;
  3595. + case 13130: // Light Purple Maned Horse
  3596. + case 13146: // Tawny-Maned Lion
  3597. + case 13147: // Steam Sledge
  3598. + _rideType = 4;
  3599. + break;
  3600. + default:
  3601. + throw new IllegalArgumentException("Unsupported mount NpcId: " + rideClassId);
  3602. }
  3603. }
  3604.  
  3605. + @Override
  3606. + public void runImpl()
  3607. + {
  3608. +
  3609. + }
  3610. +
  3611. public int getMountType()
  3612. {
  3613. return _rideType;
  3614. @@ -38,10 +82,22 @@ public int getMountType()
  3615. @Override
  3616. protected final void writeImpl()
  3617. {
  3618. - writeC(0x86);
  3619. + writeC(0x8c);
  3620. writeD(_id);
  3621. writeD(_bRide);
  3622. writeD(_rideType);
  3623. writeD(_rideClassID);
  3624. + writeD(_x);
  3625. + writeD(_y);
  3626. + writeD(_z);
  3627. + }
  3628. +
  3629. + /* (non-Javadoc)
  3630. + * @see com.l2jmega.gameserver.serverpackets.ServerBasePacket#getType()
  3631. + */
  3632. + @Override
  3633. + public String getType()
  3634. + {
  3635. + return _S__8c_Ride;
  3636. }
  3637. -}
  3638. \ No newline at end of file
  3639. +}
  3640. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SSQStatus.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SSQStatus.java
  3641. index 7a503737..99acad12 100644
  3642. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SSQStatus.java
  3643. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SSQStatus.java
  3644. @@ -28,7 +28,7 @@ protected final void writeImpl()
  3645. final int totalDawnMembers = SevenSigns.getInstance().getTotalMembers(CabalType.DAWN);
  3646. final int totalDuskMembers = SevenSigns.getInstance().getTotalMembers(CabalType.DUSK);
  3647.  
  3648. - writeC(0xf5);
  3649. + writeC(0xfb);
  3650.  
  3651. writeC(_page);
  3652. writeC(SevenSigns.getInstance().getCurrentPeriod().ordinal());
  3653. @@ -68,8 +68,8 @@ protected final void writeImpl()
  3654. writeC(SevenSigns.getInstance().getPlayerCabal(_objectId).ordinal());
  3655. writeC(SevenSigns.getInstance().getPlayerSeal(_objectId).ordinal());
  3656.  
  3657. - writeD(SevenSigns.getInstance().getPlayerStoneContrib(_objectId)); // Seal Stones Turned-In
  3658. - writeD(SevenSigns.getInstance().getPlayerAdenaCollect(_objectId)); // Ancient Adena to Collect
  3659. + writeQ(SevenSigns.getInstance().getPlayerStoneContrib(_objectId)); // Seal Stones Turned-In
  3660. + writeQ(SevenSigns.getInstance().getPlayerAdenaCollect(_objectId)); // Ancient Adena to Collect
  3661.  
  3662. double dawnStoneScore = SevenSigns.getInstance().getCurrentStoneScore(CabalType.DAWN);
  3663. int dawnFestivalScore = SevenSigns.getInstance().getCurrentFestivalScore(CabalType.DAWN);
  3664. @@ -103,16 +103,16 @@ protected final void writeImpl()
  3665. }
  3666.  
  3667. /* DUSK */
  3668. - writeD(duskStoneScoreProp); // Seal Stone Score
  3669. - writeD(duskFestivalScore); // Festival Score
  3670. - writeD(duskTotalScore); // Total Score
  3671. + writeQ(duskStoneScoreProp); // Seal Stone Score
  3672. + writeQ(duskFestivalScore); // Festival Score
  3673. + writeQ(duskTotalScore); // Total Score
  3674.  
  3675. writeC(duskPercent); // Dusk %
  3676.  
  3677. /* DAWN */
  3678. - writeD(dawnStoneScoreProp); // Seal Stone Score
  3679. - writeD(dawnFestivalScore); // Festival Score
  3680. - writeD(dawnTotalScore); // Total Score
  3681. + writeQ(dawnStoneScoreProp); // Seal Stone Score
  3682. + writeQ(dawnFestivalScore); // Festival Score
  3683. + writeQ(dawnTotalScore); // Total Score
  3684.  
  3685. writeC(dawnPercent); // Dawn %
  3686. break;
  3687. @@ -133,7 +133,7 @@ protected final void writeImpl()
  3688. int dawnScore = SevenSignsFestival.getInstance().getHighestScore(CabalType.DAWN, festivalId);
  3689.  
  3690. // Dusk Score \\
  3691. - writeD(duskScore);
  3692. + writeQ(duskScore);
  3693.  
  3694. StatsSet highScoreData = SevenSignsFestival.getInstance().getHighestScoreData(CabalType.DUSK, festivalId);
  3695. String[] partyMembers = highScoreData.getString("members").split(",");
  3696. @@ -151,7 +151,7 @@ protected final void writeImpl()
  3697. }
  3698.  
  3699. // Dawn Score \\
  3700. - writeD(dawnScore);
  3701. + writeQ(dawnScore);
  3702.  
  3703. highScoreData = SevenSignsFestival.getInstance().getHighestScoreData(CabalType.DAWN, festivalId);
  3704. partyMembers = highScoreData.getString("members").split(",");
  3705. @@ -239,30 +239,30 @@ protected final void writeImpl()
  3706. {
  3707. case NORMAL:
  3708. writeC(CabalType.NORMAL.ordinal());
  3709. - writeH(SystemMessageId.COMPETITION_TIE_SEAL_NOT_AWARDED.getId());
  3710. + writeD(SystemMessageId.COMPETITION_TIE_SEAL_NOT_AWARDED.getId());
  3711. break;
  3712. case DAWN:
  3713. if (dawnPercent >= 35)
  3714. {
  3715. writeC(CabalType.DAWN.ordinal());
  3716. - writeH(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
  3717. + writeD(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
  3718. }
  3719. else
  3720. {
  3721. writeC(CabalType.NORMAL.ordinal());
  3722. - writeH(SystemMessageId.SEAL_NOT_OWNED_35_LESS_VOTED.getId());
  3723. + writeD(SystemMessageId.SEAL_NOT_OWNED_35_LESS_VOTED.getId());
  3724. }
  3725. break;
  3726. case DUSK:
  3727. if (duskPercent >= 35)
  3728. {
  3729. writeC(CabalType.DUSK.ordinal());
  3730. - writeH(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
  3731. + writeD(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
  3732. }
  3733. else
  3734. {
  3735. writeC(CabalType.NORMAL.ordinal());
  3736. - writeH(SystemMessageId.SEAL_NOT_OWNED_35_LESS_VOTED.getId());
  3737. + writeD(SystemMessageId.SEAL_NOT_OWNED_35_LESS_VOTED.getId());
  3738. }
  3739. break;
  3740. }
  3741. @@ -275,12 +275,12 @@ protected final void writeImpl()
  3742. if (dawnPercent >= 10)
  3743. {
  3744. writeC(CabalType.DAWN.ordinal());
  3745. - writeH(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
  3746. + writeD(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
  3747. }
  3748. else
  3749. {
  3750. writeC(CabalType.NORMAL.ordinal());
  3751. - writeH(SystemMessageId.COMPETITION_TIE_SEAL_NOT_AWARDED.getId());
  3752. + writeD(SystemMessageId.COMPETITION_TIE_SEAL_NOT_AWARDED.getId());
  3753. }
  3754. break;
  3755.  
  3756. @@ -288,12 +288,12 @@ protected final void writeImpl()
  3757. if (dawnPercent >= 10)
  3758. {
  3759. writeC(sealOwner.ordinal());
  3760. - writeH(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
  3761. + writeD(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
  3762. }
  3763. else
  3764. {
  3765. writeC(CabalType.NORMAL.ordinal());
  3766. - writeH(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
  3767. + writeD(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
  3768. }
  3769. break;
  3770.  
  3771. @@ -301,17 +301,17 @@ protected final void writeImpl()
  3772. if (duskPercent >= 35)
  3773. {
  3774. writeC(CabalType.DUSK.ordinal());
  3775. - writeH(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
  3776. + writeD(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
  3777. }
  3778. else if (dawnPercent >= 10)
  3779. {
  3780. writeC(CabalType.DAWN.ordinal());
  3781. - writeH(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
  3782. + writeD(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
  3783. }
  3784. else
  3785. {
  3786. writeC(CabalType.NORMAL.ordinal());
  3787. - writeH(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
  3788. + writeD(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
  3789. }
  3790. break;
  3791. }
  3792. @@ -324,12 +324,12 @@ else if (dawnPercent >= 10)
  3793. if (duskPercent >= 10)
  3794. {
  3795. writeC(CabalType.DUSK.ordinal());
  3796. - writeH(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
  3797. + writeD(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
  3798. }
  3799. else
  3800. {
  3801. writeC(CabalType.NORMAL.ordinal());
  3802. - writeH(SystemMessageId.COMPETITION_TIE_SEAL_NOT_AWARDED.getId());
  3803. + writeD(SystemMessageId.COMPETITION_TIE_SEAL_NOT_AWARDED.getId());
  3804. }
  3805. break;
  3806.  
  3807. @@ -337,17 +337,17 @@ else if (dawnPercent >= 10)
  3808. if (dawnPercent >= 35)
  3809. {
  3810. writeC(CabalType.DAWN.ordinal());
  3811. - writeH(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
  3812. + writeD(SystemMessageId.SEAL_NOT_OWNED_35_MORE_VOTED.getId());
  3813. }
  3814. else if (duskPercent >= 10)
  3815. {
  3816. writeC(sealOwner.ordinal());
  3817. - writeH(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
  3818. + writeD(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
  3819. }
  3820. else
  3821. {
  3822. writeC(CabalType.NORMAL.ordinal());
  3823. - writeH(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
  3824. + writeD(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
  3825. }
  3826. break;
  3827.  
  3828. @@ -355,12 +355,12 @@ else if (duskPercent >= 10)
  3829. if (duskPercent >= 10)
  3830. {
  3831. writeC(sealOwner.ordinal());
  3832. - writeH(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
  3833. + writeD(SystemMessageId.SEAL_OWNED_10_MORE_VOTED.getId());
  3834. }
  3835. else
  3836. {
  3837. writeC(CabalType.NORMAL.ordinal());
  3838. - writeH(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
  3839. + writeD(SystemMessageId.SEAL_OWNED_10_LESS_VOTED.getId());
  3840. }
  3841. break;
  3842. }
  3843. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SellList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SellList.java
  3844. index 1133799b..993cae75 100644
  3845. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SellList.java
  3846. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SellList.java
  3847. @@ -18,24 +18,42 @@ public SellList(int adena, List<ItemInstance> items)
  3848. @Override
  3849. protected final void writeImpl()
  3850. {
  3851. - writeC(0x10);
  3852. - writeD(_money);
  3853. - writeD(0x00);
  3854. + writeC(0xFE);
  3855. + writeH(0xB7);
  3856. + writeD(0x01);
  3857. writeH(_items.size());
  3858.  
  3859. for (ItemInstance item : _items)
  3860. {
  3861. - writeH(item.getItem().getType1());
  3862. - writeD(item.getObjectId());
  3863. - writeD(item.getItemId());
  3864. - writeD(item.getCount());
  3865. - writeH(item.getItem().getType2());
  3866. - writeH(item.getCustomType1());
  3867. - writeD(item.getItem().getBodyPart());
  3868. - writeH(item.getEnchantLevel());
  3869. - writeH(item.getCustomType2());
  3870. - writeH(0x00);
  3871. - writeD(item.getItem().getReferencePrice() / 2);
  3872. + writeD(item.getObjectId());
  3873. + writeD(item.getItemId());
  3874. + writeD(item.getItem().getBodyPart());
  3875. + writeQ((item.getCount() < 0) ? 0 : item.getCount());
  3876. + writeH(item.getItem().getType2());
  3877. + writeH(0x00);
  3878. + writeH(0x00);
  3879. + writeD(item.getItem().getBodyPart());
  3880. + writeH(0x00);
  3881. + writeH(0x00);
  3882. +
  3883. + writeD(0x00);
  3884. + writeD(-1);
  3885. + writeD(-9999);
  3886. +
  3887. + writeH(0x00);
  3888. + writeH(0x00);
  3889. + for (byte i = 0; i < 6; i++)
  3890. + {
  3891. + writeH(0x00);
  3892. + }
  3893. +
  3894. + // Enchant Effects
  3895. + writeH(0x00);
  3896. + writeH(0x00);
  3897. + writeH(0x00);
  3898. + writeQ(item.getItem().getReferencePrice() / 2);
  3899. }
  3900. + writeH(0x00);
  3901. + writeC(0x01);
  3902. }
  3903. }
  3904. \ No newline at end of file
  3905. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SellListProcure.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SellListProcure.java
  3906. index 697786ac..40ca933d 100644
  3907. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SellListProcure.java
  3908. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SellListProcure.java
  3909. @@ -30,8 +30,8 @@ public SellListProcure(Player player, int castleId)
  3910. @Override
  3911. protected final void writeImpl()
  3912. {
  3913. - writeC(0xE9);
  3914. - writeD(_money);
  3915. + writeC(0xEF);
  3916. + writeQ(_money);
  3917. writeD(0x00);
  3918. writeH(_sellList.size());
  3919.  
  3920. @@ -42,10 +42,10 @@ protected final void writeImpl()
  3921. writeH(item.getItem().getType1());
  3922. writeD(item.getObjectId());
  3923. writeD(item.getItemId());
  3924. - writeD(itemEntry.getValue());
  3925. + writeQ(itemEntry.getValue());
  3926. writeH(item.getItem().getType2());
  3927. writeH(0);
  3928. - writeD(0);
  3929. + writeQ(0);
  3930. }
  3931. }
  3932. }
  3933. \ No newline at end of file
  3934. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SendTradeDone.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SendTradeDone.java
  3935. index 79c4ecc9..9d18e4f2 100644
  3936. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SendTradeDone.java
  3937. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SendTradeDone.java
  3938. @@ -12,7 +12,7 @@ public SendTradeDone(int num)
  3939. @Override
  3940. protected final void writeImpl()
  3941. {
  3942. - writeC(0x22);
  3943. + writeC(0x1c);
  3944. writeD(_num);
  3945. }
  3946. }
  3947. \ No newline at end of file
  3948. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SendTradeRequest.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SendTradeRequest.java
  3949. index 1ae4bb5a..ea49b57b 100644
  3950. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SendTradeRequest.java
  3951. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SendTradeRequest.java
  3952. @@ -12,7 +12,7 @@ public SendTradeRequest(int senderID)
  3953. @Override
  3954. protected final void writeImpl()
  3955. {
  3956. - writeC(0x5e);
  3957. + writeC(0x70);
  3958. writeD(_senderID);
  3959. }
  3960. }
  3961. \ No newline at end of file
  3962. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ShopPreviewInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ShopPreviewInfo.java
  3963. index 0135758e..7280892a 100644
  3964. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ShopPreviewInfo.java
  3965. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ShopPreviewInfo.java
  3966. @@ -22,14 +22,18 @@ public ShopPreviewInfo(Map<Integer, Integer> itemlist)
  3967. @Override
  3968. protected final void writeImpl()
  3969. {
  3970. - writeC(0xf0);
  3971. - writeD(Inventory.PAPERDOLL_TOTALSLOTS);
  3972. + writeC(0xf6);
  3973. + writeD(29); //totalslots
  3974. + //writeD(Inventory.PAPERDOLL_TOTALSLOTS);
  3975. // Slots
  3976. + writeD(0x00); //under
  3977. writeD(getFromList(Inventory.PAPERDOLL_REAR)); // unverified
  3978. writeD(getFromList(Inventory.PAPERDOLL_LEAR)); // unverified
  3979. + //writeD(0x00); //lrear
  3980. writeD(getFromList(Inventory.PAPERDOLL_NECK)); // unverified
  3981. writeD(getFromList(Inventory.PAPERDOLL_RFINGER)); // unverified
  3982. writeD(getFromList(Inventory.PAPERDOLL_LFINGER)); // unverified
  3983. + // writeD(0x00); //lrfinger
  3984. writeD(getFromList(Inventory.PAPERDOLL_HEAD)); // unverified
  3985. writeD(getFromList(Inventory.PAPERDOLL_RHAND)); // good
  3986. writeD(getFromList(Inventory.PAPERDOLL_LHAND)); // good
  3987. @@ -38,10 +42,23 @@ protected final void writeImpl()
  3988. writeD(getFromList(Inventory.PAPERDOLL_LEGS)); // good
  3989. writeD(getFromList(Inventory.PAPERDOLL_FEET)); // good
  3990. writeD(getFromList(Inventory.PAPERDOLL_BACK)); // unverified
  3991. + writeD(getFromList(Inventory.PAPERDOLL_RHAND)); //lrhand
  3992. + writeD(0x00); //fullarmor
  3993. writeD(getFromList(Inventory.PAPERDOLL_FACE)); // unverified
  3994. + writeD(0x00); //alldress
  3995. writeD(getFromList(Inventory.PAPERDOLL_HAIR)); // unverified
  3996. writeD(getFromList(Inventory.PAPERDOLL_HAIRALL)); // unverified
  3997. - writeD(getFromList(Inventory.PAPERDOLL_UNDER)); // unverified
  3998. + writeD(0x00); //rbracelet
  3999. + writeD(0x00); //lbracelet
  4000. + writeD(0x00); //decos
  4001. + writeD(0x00);
  4002. + writeD(0x00);
  4003. + writeD(0x00);
  4004. + writeD(0x00);
  4005. + writeD(0x00);
  4006. + writeD(0x00);//belt
  4007. + writeD(0x00);
  4008. + //writeD(getFromList(Inventory.PAPERDOLL_UNDER)); // unverified
  4009. }
  4010.  
  4011. private int getFromList(int key)
  4012. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ShopPreviewList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ShopPreviewList.java
  4013. index d2b83c63..9e003f31 100644
  4014. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ShopPreviewList.java
  4015. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ShopPreviewList.java
  4016. @@ -25,12 +25,12 @@ public ShopPreviewList(NpcBuyList list, int currentMoney, int expertiseIndex)
  4017. @Override
  4018. protected final void writeImpl()
  4019. {
  4020. - writeC(0xef);
  4021. + writeC(0xf5);
  4022. writeC(0xc0); // ?
  4023. writeC(0x13); // ?
  4024. writeC(0x00); // ?
  4025. writeC(0x00); // ?
  4026. - writeD(_money); // current money
  4027. + writeQ(_money); // current money
  4028. writeD(_listId);
  4029.  
  4030. int newlength = 0;
  4031. @@ -49,11 +49,12 @@ protected final void writeImpl()
  4032. writeH(product.getItem().getType2()); // item type2
  4033.  
  4034. if (product.getItem().getType1() != Item.TYPE1_ITEM_QUESTITEM_ADENA)
  4035. + //writeH(product.getItem().getBodyPart()); // slot
  4036. writeH(product.getItem().getBodyPart()); // slot
  4037. else
  4038. writeH(0x00); // slot
  4039.  
  4040. - writeD(Config.WEAR_PRICE);
  4041. + writeQ(Config.WEAR_PRICE);
  4042. }
  4043. }
  4044. }
  4045. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ShortCutInit.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ShortCutInit.java
  4046. index a70c433e..16cde98c 100644
  4047. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ShortCutInit.java
  4048. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/ShortCutInit.java
  4049. @@ -32,51 +32,14 @@ protected final void writeImpl()
  4050. {
  4051. case L2ShortCut.TYPE_ITEM: // 1
  4052. writeD(sc.getId());
  4053. - writeD(sc.getCharacterType());
  4054. - writeD(sc.getSharedReuseGroup());
  4055. -
  4056. - if (sc.getSharedReuseGroup() < 0)
  4057. - {
  4058. - writeD(0x00); // Remaining time
  4059. - writeD(0x00); // Cooldown time
  4060. - }
  4061. - else
  4062. - {
  4063. - final ItemInstance item = _activeChar.getInventory().getItemByObjectId(sc.getId());
  4064. - if (item == null || !item.isEtcItem())
  4065. - {
  4066. - writeD(0x00); // Remaining time
  4067. - writeD(0x00); // Cooldown time
  4068. - }
  4069. - else
  4070. - {
  4071. - final IntIntHolder[] skills = item.getEtcItem().getSkills();
  4072. - if (skills == null)
  4073. - {
  4074. - writeD(0x00); // Remaining time
  4075. - writeD(0x00); // Cooldown time
  4076. - }
  4077. - else
  4078. - {
  4079. - for (IntIntHolder skillInfo : skills)
  4080. - {
  4081. - final L2Skill itemSkill = skillInfo.getSkill();
  4082. - if (_activeChar.getReuseTimeStamp().containsKey(itemSkill.getReuseHashCode()))
  4083. - {
  4084. - writeD((int) (_activeChar.getReuseTimeStamp().get(itemSkill.getReuseHashCode()).getRemaining() / 1000L));
  4085. - writeD((int) (itemSkill.getReuseDelay() / 1000L));
  4086. - }
  4087. - else
  4088. - {
  4089. - writeD(0x00); // Remaining time
  4090. - writeD(0x00); // Cooldown time
  4091. - }
  4092. - }
  4093. - }
  4094. - }
  4095. - }
  4096. -
  4097. - writeD(0x00); // Augmentation
  4098. + writeD(0x01);
  4099. + writeD(-1);
  4100. + writeD(0x00);
  4101. + writeD(0x00);
  4102. + writeH(0x00);
  4103. + writeH(0x00);
  4104. + //writeD(sc.getCharacterType());
  4105. + //writeD(sc.getSharedReuseGroup());
  4106. break;
  4107.  
  4108. case L2ShortCut.TYPE_SKILL: // 2
  4109. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SystemMessage.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SystemMessage.java
  4110. index 5615ae9d..1408fba9 100644
  4111. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SystemMessage.java
  4112. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/SystemMessage.java
  4113. @@ -111,6 +111,11 @@ public final SystemMessage addItemNumber(final int number)
  4114. append(new SMParam(TYPE_ITEM_NUMBER, number));
  4115. return this;
  4116. }
  4117. + public final SystemMessage addItemNumberL(final long number)
  4118. + {
  4119. + append(new SMParam(TYPE_ITEM_NUMBER, number));
  4120. + return this;
  4121. + }
  4122.  
  4123. public final SystemMessage addCharName(final Creature cha)
  4124. {
  4125. @@ -168,7 +173,7 @@ public final SystemMessageId getSystemMessageId()
  4126. @Override
  4127. protected final void writeImpl()
  4128. {
  4129. - writeC(0x64);
  4130. + writeC(0x62);
  4131.  
  4132. writeD(_smId.getId());
  4133. writeD(_paramIndex);
  4134. @@ -186,6 +191,9 @@ protected final void writeImpl()
  4135. break;
  4136.  
  4137. case TYPE_ITEM_NUMBER:
  4138. + writeQ((Integer) param.getObject());
  4139. + break;
  4140. +
  4141. case TYPE_ITEM_NAME:
  4142. case TYPE_CASTLE_NAME:
  4143. case TYPE_NUMBER:
  4144. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeItemUpdate.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeItemUpdate.java
  4145. index c2af70db..2f0c47c0 100644
  4146. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeItemUpdate.java
  4147. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeItemUpdate.java
  4148. @@ -1,22 +1,20 @@
  4149. package com.l2jmega.gameserver.network.serverpackets;
  4150.  
  4151. -import java.util.List;
  4152. import java.util.Set;
  4153.  
  4154. import com.l2jmega.gameserver.model.actor.instance.Player;
  4155. import com.l2jmega.gameserver.model.item.instance.ItemInstance;
  4156. import com.l2jmega.gameserver.model.tradelist.TradeItem;
  4157. -import com.l2jmega.gameserver.model.tradelist.TradeList;
  4158.  
  4159. public class TradeItemUpdate extends L2GameServerPacket
  4160. {
  4161. private final Set<ItemInstance> _items;
  4162. - private final List<TradeItem> _currentTrade;
  4163. + private final TradeItem _item;
  4164.  
  4165. - public TradeItemUpdate(TradeList trade, Player activeChar)
  4166. + public TradeItemUpdate(TradeItem item, Player activeChar)
  4167. {
  4168. _items = activeChar.getInventory().getItems();
  4169. - _currentTrade = trade.getItems();
  4170. + _item = item;
  4171. }
  4172.  
  4173. private int getItemCount(int objectId)
  4174. @@ -31,31 +29,28 @@ private int getItemCount(int objectId)
  4175. @Override
  4176. protected final void writeImpl()
  4177. {
  4178. - writeC(0x74);
  4179. - writeH(_currentTrade.size());
  4180. -
  4181. - for (TradeItem item : _currentTrade)
  4182. + writeC(0x81);
  4183. + writeH(1);
  4184. +
  4185. + int availableCount = getItemCount(_item.getObjectId()) - _item.getCount();
  4186. + boolean stackable = _item.getItem().isStackable();
  4187. +
  4188. + if (availableCount == 0)
  4189. {
  4190. - int availableCount = getItemCount(item.getObjectId()) - item.getCount();
  4191. - boolean stackable = item.getItem().isStackable();
  4192. -
  4193. - if (availableCount == 0)
  4194. - {
  4195. - availableCount = 1;
  4196. - stackable = false;
  4197. - }
  4198. -
  4199. + availableCount = 1;
  4200. + stackable = false;
  4201. + }
  4202. +
  4203. writeH(stackable ? 3 : 2);
  4204. - writeH(item.getItem().getType1());
  4205. - writeD(item.getObjectId());
  4206. - writeD(item.getItem().getItemId());
  4207. - writeD(availableCount);
  4208. - writeH(item.getItem().getType2());
  4209. + writeH(_item.getItem().getType1());
  4210. + writeD(_item.getObjectId());
  4211. + writeD(_item.getItem().getItemId());
  4212. + writeQ(availableCount);
  4213. + writeH(_item.getItem().getType2());
  4214. writeH(0x00);
  4215. - writeD(item.getItem().getBodyPart());
  4216. - writeH(item.getEnchant());
  4217. + writeQ(_item.getItem().getBodyPart());
  4218. + writeH(_item.getEnchant());
  4219. writeH(0x00);
  4220. writeH(0x00);
  4221. - }
  4222. }
  4223. }
  4224. \ No newline at end of file
  4225. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeOtherAdd.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeOtherAdd.java
  4226. index eb4d1550..8dbdff19 100644
  4227. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeOtherAdd.java
  4228. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeOtherAdd.java
  4229. @@ -17,14 +17,14 @@ public TradeOtherAdd(TradeItem item)
  4230. @Override
  4231. protected final void writeImpl()
  4232. {
  4233. - writeC(0x21);
  4234. + writeC(0x1b);
  4235.  
  4236. writeH(1); // item count
  4237.  
  4238. writeH(_item.getItem().getType1()); // item type1
  4239. writeD(_item.getObjectId());
  4240. writeD(_item.getItem().getItemId());
  4241. - writeD(_item.getCount());
  4242. + writeQ(_item.getCount());
  4243. writeH(_item.getItem().getType2()); // item type2
  4244. writeH(0x00); // ?
  4245.  
  4246. @@ -32,5 +32,14 @@ protected final void writeImpl()
  4247. writeH(_item.getEnchant()); // enchant level
  4248. writeH(0x00); // ?
  4249. writeH(0x00);
  4250. + //t1
  4251. + writeH(0x00);
  4252. + writeH(0x00);
  4253. + writeH(0x00);
  4254. + writeH(0x00);
  4255. + writeH(0x00);
  4256. + writeH(0x00);
  4257. + writeH(0x00);
  4258. + writeH(0x00);
  4259. }
  4260. }
  4261. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeOwnAdd.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeOwnAdd.java
  4262. index 7c46dc3e..04ecf3ae 100644
  4263. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeOwnAdd.java
  4264. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeOwnAdd.java
  4265. @@ -14,14 +14,14 @@ public TradeOwnAdd(TradeItem item)
  4266. @Override
  4267. protected final void writeImpl()
  4268. {
  4269. - writeC(0x20);
  4270. + writeC(0x1a);
  4271.  
  4272. writeH(1); // item count
  4273.  
  4274. writeH(_item.getItem().getType1());
  4275. writeD(_item.getObjectId());
  4276. writeD(_item.getItem().getItemId());
  4277. - writeD(_item.getCount());
  4278. + writeQ(_item.getCount());
  4279. writeH(_item.getItem().getType2());
  4280. writeH(0x00); // ?
  4281.  
  4282. @@ -29,5 +29,14 @@ protected final void writeImpl()
  4283. writeH(_item.getEnchant());
  4284. writeH(0x00); // ?
  4285. writeH(0x00);
  4286. + //t1
  4287. + writeH(0x00);
  4288. + writeH(0x00);
  4289. + writeH(0x00);
  4290. + writeH(0x00);
  4291. + writeH(0x00);
  4292. + writeH(0x00);
  4293. + writeH(0x00);
  4294. + writeH(0x00);
  4295. }
  4296. }
  4297. \ No newline at end of file
  4298. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradePressOtherOk.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradePressOtherOk.java
  4299. index b6e3e9da..7dff791c 100644
  4300. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradePressOtherOk.java
  4301. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradePressOtherOk.java
  4302. @@ -11,6 +11,6 @@ private TradePressOtherOk()
  4303. @Override
  4304. protected void writeImpl()
  4305. {
  4306. - writeC(0x7c);
  4307. + writeC(0x82);
  4308. }
  4309. }
  4310. \ No newline at end of file
  4311. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradePressOwnOk.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradePressOwnOk.java
  4312. index 17e34c05..7fde7165 100644
  4313. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradePressOwnOk.java
  4314. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradePressOwnOk.java
  4315. @@ -11,6 +11,6 @@ private TradePressOwnOk()
  4316. @Override
  4317. protected void writeImpl()
  4318. {
  4319. - writeC(0x75);
  4320. + writeC(0x53);
  4321. }
  4322. }
  4323. \ No newline at end of file
  4324. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeStart.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeStart.java
  4325. index 20969d83..3b298099 100644
  4326. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeStart.java
  4327. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/TradeStart.java
  4328. @@ -11,11 +11,12 @@ public class TradeStart extends L2GameServerPacket
  4329. {
  4330. private final Player _activeChar;
  4331. private final ItemInstance[] _itemList;
  4332. + //private long qcount;
  4333.  
  4334. public TradeStart(Player player)
  4335. {
  4336. _activeChar = player;
  4337. - _itemList = player.getInventory().getAvailableItems(true, false);
  4338. + _itemList = player.getInventory().getAvailableItems(true, false, false);
  4339. }
  4340.  
  4341. @Override
  4342. @@ -24,7 +25,7 @@ protected final void writeImpl()
  4343. if (_activeChar.getActiveTradeList() == null || _activeChar.getActiveTradeList().getPartner() == null)
  4344. return;
  4345.  
  4346. - writeC(0x1E);
  4347. + writeC(0x14);
  4348. writeD(_activeChar.getActiveTradeList().getPartner().getObjectId());
  4349. writeH(_itemList.length);
  4350.  
  4351. @@ -35,16 +36,32 @@ protected final void writeImpl()
  4352.  
  4353. Item item = temp.getItem();
  4354.  
  4355. - writeH(item.getType1());
  4356. writeD(temp.getObjectId());
  4357. writeD(temp.getItemId());
  4358. - writeD(temp.getCount());
  4359. + writeD(0x00);
  4360. + //writeD(item.getBodyPart());
  4361. + writeQ(temp.getCount());
  4362. writeH(item.getType2());
  4363. - writeH(temp.getCustomType1());
  4364. + writeH(0x00);
  4365. + writeH(0x00);
  4366. writeD(item.getBodyPart());
  4367. writeH(temp.getEnchantLevel());
  4368. writeH(temp.getCustomType2());
  4369. +
  4370. + writeD(0x00); // Augment
  4371. + writeD(-1); // Mana
  4372. + writeD(-9999); // Time
  4373. + writeH(0x00);
  4374. writeH(0x00);
  4375. + for (byte i = 0; i < 6; i++)
  4376. + {
  4377. + writeH(0x00);
  4378. + }
  4379. + // Enchant Effects
  4380. + writeH(0x00);
  4381. + writeH(0x00);
  4382. + writeH(0x00);
  4383. +
  4384. }
  4385. }
  4386. }
  4387. \ No newline at end of file
  4388. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/WarehouseDepositList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/WarehouseDepositList.java
  4389. index 43395b4c..8eb20763 100644
  4390. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/WarehouseDepositList.java
  4391. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/WarehouseDepositList.java
  4392. @@ -25,7 +25,7 @@ public WarehouseDepositList(Player player, int type)
  4393. _items = new ArrayList<>();
  4394.  
  4395. final boolean isPrivate = _whType == PRIVATE;
  4396. - for (ItemInstance temp : player.getInventory().getAvailableItems(true, isPrivate))
  4397. + for (ItemInstance temp : player.getInventory().getAvailableItems(true, isPrivate, false))
  4398. {
  4399. if (temp != null && temp.isDepositable(isPrivate))
  4400. _items.add(temp);
  4401. @@ -37,7 +37,7 @@ protected final void writeImpl()
  4402. {
  4403. writeC(0x41);
  4404. writeH(_whType);
  4405. - writeD(_playerAdena);
  4406. + writeQ(_playerAdena);
  4407. writeH(_items.size());
  4408.  
  4409. for (ItemInstance temp : _items)
  4410. @@ -47,24 +47,42 @@ protected final void writeImpl()
  4411.  
  4412. Item item = temp.getItem();
  4413.  
  4414. - writeH(item.getType1());
  4415. + //writeH(item.getType1());
  4416. writeD(temp.getObjectId());
  4417. writeD(temp.getItemId());
  4418. - writeD(temp.getCount());
  4419. + writeD(0x00);
  4420. + //writeD(item.getBodyPart());
  4421. + writeQ(temp.getCount());
  4422. writeH(item.getType2());
  4423. writeH(temp.getCustomType1());
  4424. + writeH(0x00);
  4425. writeD(item.getBodyPart());
  4426. writeH(temp.getEnchantLevel());
  4427. writeH(temp.getCustomType2());
  4428. - writeH(0x00);
  4429. - writeD(temp.getObjectId());
  4430. +
  4431. if (temp.isAugmented())
  4432. {
  4433. - writeD(0x0000FFFF & temp.getAugmentation().getAugmentationId());
  4434. - writeD(temp.getAugmentation().getAugmentationId() >> 16);
  4435. + //writeD(0x0000FFFF & temp.getAugmentation().getAugmentationId());
  4436. + //writeD(temp.getAugmentation().getAugmentationId() >> 16);
  4437. + writeD(temp.getAugmentation().getAugmentationId());
  4438. }
  4439. else
  4440. - writeQ(0x00);
  4441. + writeD(0x00);
  4442. +
  4443. + writeD(0x00);
  4444. + writeD(0x00);
  4445. +
  4446. + writeH(0x00);
  4447. + writeH(0x00);
  4448. + for (byte i = 0; i < 6; i++)
  4449. + {
  4450. + writeH(0x00);
  4451. + }
  4452. + // Enchant Effects
  4453. + writeH(0x00);
  4454. + writeH(0x00);
  4455. + writeH(0x00);
  4456. + writeD(temp.getObjectId());
  4457. }
  4458. _items.clear();
  4459. }
  4460. diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/WarehouseWithdrawList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/WarehouseWithdrawList.java
  4461. index 7adc533b..58603dcd 100644
  4462. --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/WarehouseWithdrawList.java
  4463. +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/WarehouseWithdrawList.java
  4464. @@ -32,31 +32,52 @@ protected final void writeImpl()
  4465. {
  4466. writeC(0x42);
  4467. writeH(_whType);
  4468. - writeD(_playerAdena);
  4469. + writeQ(_playerAdena);
  4470. writeH(_items.size());
  4471.  
  4472. for (ItemInstance temp : _items)
  4473. {
  4474. Item item = temp.getItem();
  4475.  
  4476. - writeH(item.getType1());
  4477. + //writeH(item.getType1());
  4478. writeD(temp.getObjectId());
  4479. writeD(temp.getItemId());
  4480. - writeD(temp.getCount());
  4481. + writeD(0x00);
  4482. + //writeD(item.getBodyPart());
  4483. + writeQ(temp.getCount());
  4484. writeH(item.getType2());
  4485. writeH(temp.getCustomType1());
  4486. + writeH(0x00);
  4487. writeD(item.getBodyPart());
  4488. writeH(temp.getEnchantLevel());
  4489. writeH(temp.getCustomType2());
  4490. - writeH(0x00);
  4491. - writeD(temp.getObjectId());
  4492. +
  4493. +
  4494. + //writeD(temp.getObjectId());
  4495. +
  4496. if (temp.isAugmented())
  4497. {
  4498. - writeD(0x0000FFFF & temp.getAugmentation().getAugmentationId());
  4499. - writeD(temp.getAugmentation().getAugmentationId() >> 16);
  4500. + //writeD(0x0000FFFF & temp.getAugmentation().getAugmentationId());
  4501. + //writeD(temp.getAugmentation().getAugmentationId() >> 16);
  4502. + writeD(temp.getAugmentation().getAugmentationId());
  4503. }
  4504. else
  4505. - writeQ(0x00);
  4506. + writeD(0x00);
  4507. +
  4508. + writeD(0x00);
  4509. + writeD(0x00);
  4510. +
  4511. + writeH(0x00);
  4512. + writeH(0x00);
  4513. + for (byte i = 0; i < 6; i++)
  4514. + {
  4515. + writeH(0x00);
  4516. + }
  4517. + // Enchant Effects
  4518. + writeH(0x00);
  4519. + writeH(0x00);
  4520. + writeH(0x00);
  4521. + writeD(temp.getObjectId());
  4522. }
  4523. }
  4524. }
  4525. \ No newline at end of file
Add Comment
Please, Sign In to add comment