Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 286.01 KB | None | 0 0
  1. /* */ package tools;
  2. /* */
  3. /* */ import client.BuddyList;
  4. /* */ import client.BuddylistEntry;
  5. /* */ import client.EvanSkillPoints;
  6. /* */ import client.IEquip;
  7. /* */ import client.IEquip.ScrollResult;
  8. /* */ import client.IItem;
  9. /* */ import client.ISkill;
  10. /* */ import client.Item;
  11. /* */ import client.MapleBuffStat;
  12. /* */ import client.MapleCharacter;
  13. /* */ import client.MapleCharacter.SkillEntry;
  14. /* */ import client.MapleClient;
  15. /* */ import client.MapleDisease.Disease;
  16. /* */ import client.MapleFamilyEntry;
  17. /* */ import client.MapleInventory;
  18. /* */ import client.MapleInventoryType;
  19. /* */ import client.MapleJob;
  20. /* */ import client.MapleKeyBinding;
  21. /* */ import client.MapleMount;
  22. /* */ import client.MaplePet;
  23. /* */ import client.MapleQuestStatus;
  24. /* */ import client.MapleRing;
  25. /* */ import client.MapleSkinColor;
  26. /* */ import client.MapleStat;
  27. /* */ import client.MonsterBook;
  28. /* */ import client.SkillMacro;
  29. /* */ import client.command.Commands.GMLevel;
  30. /* */ import client.status.MonsterStatus;
  31. /* */ import constants.InventoryConstants;
  32. /* */ import java.awt.Point;
  33. /* */ import java.awt.Rectangle;
  34. /* */ import java.io.PrintStream;
  35. /* */ import java.rmi.RemoteException;
  36. /* */ import java.sql.ResultSet;
  37. /* */ import java.sql.SQLException;
  38. /* */ import java.util.ArrayList;
  39. /* */ import java.util.Collection;
  40. /* */ import java.util.Collections;
  41. /* */ import java.util.Comparator;
  42. /* */ import java.util.HashMap;
  43. /* */ import java.util.Iterator;
  44. /* */ import java.util.LinkedHashMap;
  45. /* */ import java.util.List;
  46. /* */ import java.util.Map;
  47. /* */ import java.util.Map.Entry;
  48. /* */ import java.util.Random;
  49. /* */ import java.util.Set;
  50. /* */ import net.MaplePacket;
  51. /* */ import net.SendPacketOpcode;
  52. /* */ import net.channel.ChannelServer;
  53. /* */ import net.channel.IPlayerStorage;
  54. /* */ import net.channel.handler.AbstractDealDamageHandler.AttackInfo;
  55. /* */ import net.channel.handler.PlayerInteractionHandler.Action;
  56. /* */ import net.channel.handler.SummonDamageHandler.SummonAttackEntry;
  57. /* */ import net.world.MapleParty;
  58. /* */ import net.world.MaplePartyCharacter;
  59. /* */ import net.world.PartyOperation;
  60. /* */ import net.world.PlayerCoolDownValueHolder;
  61. /* */ import net.world.guild.MapleAlliance;
  62. /* */ import net.world.guild.MapleGuild;
  63. /* */ import net.world.guild.MapleGuildCharacter;
  64. /* */ import net.world.guild.MapleGuildSummary;
  65. /* */ import net.world.remote.WorldChannelInterface;
  66. /* */ import server.CashItemInfo;
  67. /* */ import server.DueyPackages;
  68. /* */ import server.MTSItemInfo;
  69. /* */ import server.MapleItemInformationProvider;
  70. /* */ import server.MapleMiniGame;
  71. /* */ import server.MapleTrade;
  72. /* */ import server.life.MapleMonster;
  73. /* */ import server.life.MapleNPC;
  74. /* */ import server.life.MobSkill;
  75. /* */ import server.maps.MapleMap;
  76. /* */ import server.maps.objects.MapleDragon;
  77. /* */ import server.maps.objects.MapleMist;
  78. /* */ import server.maps.objects.MapleReactor;
  79. /* */ import server.maps.objects.MapleSummon;
  80. /* */ import server.maps.objects.PlayerNPCs;
  81. /* */ import server.maps.objects.SummonMovementType;
  82. /* */ import server.movement.LifeMovementFragment;
  83. /* */ import server.quest.MapleQuest;
  84. /* */ import server.shops.HiredMerchant;
  85. /* */ import server.shops.MaplePlayerShop;
  86. /* */ import server.shops.MaplePlayerShopItem;
  87. /* */ import server.shops.MapleShopItem;
  88. /* */ import tools.data.output.LittleEndianWriter;
  89. /* */ import tools.data.output.MaplePacketLittleEndianWriter;
  90. /* */
  91. /* */ public class MaplePacketCreator
  92. /* */ {
  93. /* 106 */ public static final List<Pair<MapleStat, Integer>> EMPTY_STATUPDATE = Collections.emptyList();
  94. /* 107 */ private static final byte[] CHAR_INFO_MAGIC = { -1, -55, -102, 59 };
  95. /* 108 */ private static final byte[] NON_EXPIRE = { 0, -128, 5, -69, 70, -26, 23, 2 };
  96. /* 109 */ private static final String[] title = { "Family Reunion", "Summon Family", "My Drop Rate 1.5x (15 min)", "My EXP 1.5x (15 min)", "Family Bonding (30 min)", "My Drop Rate 2x (15 min)", "My EXP 2x (15 min)", "My Drop Rate 2x (30 min)", "My EXP 2x (30 min)", "My Party Drop Rate 2x (30 min)", "My Party EXP 2x (30 min)" };
  97. /* 110 */ private static final String[] description = { "[Target] Me\n[Effect] Teleport directly to the Family member of your choice.", "[Target] 1 Family member\n[Effect] Summon a Family member of choice to the map you're in.", "[Target] Me\n[Time] 15 min.\n[Effect] Monster drop rate will be increased #c1.5x#.\n* If the Drop Rate event is in progress, this will be nullified.", "[Target] Me\n[Time] 15 min.\n[Effect] EXP earned from hunting will be increased #c1.5x#.\n* If the EXP event is in progress, this will be nullified.", "[Target] At least 6 Family members online that are below me in the Pedigree\n[Time] 30 min.\n[Effect] Monster drop rate and EXP earned will be increased #c2x#. \n* If the EXP event is in progress, this will be nullified.", "[Target] Me\n[Time] 15 min.\n[Effect] Monster drop rate will be increased #c2x#.\n* If the Drop Rate event is in progress, this will be nullified.", "[Target] Me\n[Time] 15 min.\n[Effect] EXP earned from hunting will be increased #c2x#.\n* If the EXP event is in progress, this will be nullified.", "[Target] Me\n[Time] 30 min.\n[Effect] Monster drop rate will be increased #c2x#.\n* If the Drop Rate event is in progress, this will be nullified.", "[Target] Me\n[Time] 30 min.\n[Effect] EXP earned from hunting will be increased #c2x#. \n* If the EXP event is in progress, this will be nullified.", "[Target] My party\n[Time] 30 min.\n[Effect] Monster drop rate will be increased #c2x#.\n* If the Drop Rate event is in progress, this will be nullified.", "[Target] My party\n[Time] 30 min.\n[Effect] EXP earned from hunting will be increased #c2x#.\n* If the EXP event is in progress, this will be nullified." };
  98. /* 111 */ private static final int[] repCost = { 210, 350, 490, 560, 700, 840, 1050, 1400, 1750, 2800, 3500 };
  99. /* */
  100. /* 669 */ private static final byte[] NEXON_IP = { 63, -5, -39, 2 };
  101. /* */
  102. /* */ public static int getItemTimestamp(long realTimestamp)
  103. /* */ {
  104. /* 114 */ return (int)((int)(realTimestamp - 946681229830L) / 60000 * 35.762787000000003D) - 1085019342;
  105. /* */ }
  106. /* */
  107. /* */ private static int getQuestTimestamp(long realTimestamp) {
  108. /* 118 */ return (int)(realTimestamp / 60000L * 0.1396987D) + 27111908;
  109. /* */ }
  110. /* */
  111. /* */ private static long getKoreanTimestamp(long realTimestamp) {
  112. /* 122 */ return realTimestamp * 10000L + 116444592000000000L;
  113. /* */ }
  114. /* */
  115. /* */ private static void addCharStats(MaplePacketLittleEndianWriter mplew, MapleCharacter chr) {
  116. /* 126 */ mplew.writeInt(chr.getId());
  117. /* 127 */ mplew.writeAsciiString(chr.getName());
  118. /* 128 */ mplew.write0(13 - chr.getName().length());
  119. /* 129 */ mplew.write(chr.getGender());
  120. /* 130 */ mplew.write(chr.getSkinColor().getId());
  121. /* 131 */ mplew.writeInt(chr.getFace());
  122. /* 132 */ mplew.writeInt(chr.getHair());
  123. /* 133 */ for (int i = 0; i < chr.getPets().length; i++) {
  124. /* 134 */ if (chr.getPet(i) != null)
  125. /* 135 */ mplew.writeInt(chr.getPetIndex(i));
  126. /* */ else {
  127. /* 137 */ mplew.writeInt(0);
  128. /* */ }
  129. /* 139 */ mplew.writeInt(0);
  130. /* */ }
  131. /* 141 */ mplew.write(chr.getLevel());
  132. /* 142 */ mplew.writeShort(chr.getJob().getId());
  133. /* 143 */ mplew.writeShort(chr.getStr());
  134. /* 144 */ mplew.writeShort(chr.getDex());
  135. /* 145 */ mplew.writeShort(chr.getInt());
  136. /* 146 */ mplew.writeShort(chr.getLuk());
  137. /* 147 */ mplew.writeShort(chr.getHp());
  138. /* 148 */ mplew.writeShort(chr.getMaxHp());
  139. /* 149 */ mplew.writeShort(chr.getMp());
  140. /* 150 */ mplew.writeShort(chr.getMaxMp());
  141. /* 151 */ mplew.writeShort(chr.getRemainingAp());
  142. /* */ EvanSkillPoints esp;
  143. /* */ Iterator i$;
  144. /* 152 */ if ((chr.isEvan()) && (chr.getLevel() >= 10) && (chr.getJob().getId() != 2001)) {
  145. /* 153 */ esp = chr.getEvanSP();
  146. /* 154 */ mplew.write(esp.getSkillPoints().keySet().size());
  147. /* 155 */ for (i$ = esp.getSkillPoints().keySet().iterator(); i$.hasNext(); ) { int i = ((Integer)i$.next()).intValue();
  148. /* 156 */ mplew.write(i == 2200 ? 1 : i - 2208);
  149. /* 157 */ mplew.write(esp.getSkillPoints(i)); }
  150. /* */ }
  151. /* 159 */ else if (chr.getJob().getId() == 2001) {
  152. /* 160 */ mplew.write(0);
  153. /* */ } else {
  154. /* 162 */ mplew.writeShort(chr.getRemainingSp());
  155. /* */ }
  156. /* 164 */ mplew.writeInt(chr.getExp());
  157. /* 165 */ mplew.writeShort(chr.getFame());
  158. /* 166 */ mplew.writeInt(0);
  159. /* 167 */ mplew.writeInt(chr.getMapId());
  160. /* 168 */ mplew.write(chr.getInitialSpawnpoint());
  161. /* 169 */ mplew.writeInt(0);
  162. /* */ }
  163. /* */
  164. /* */ private static void addCharLook(MaplePacketLittleEndianWriter mplew, MapleCharacter chr, boolean mega, boolean add1st) {
  165. /* 173 */ if (add1st) {
  166. /* 174 */ mplew.writeShort(0);
  167. /* */ }
  168. /* 176 */ mplew.write(chr.getGender());
  169. /* 177 */ mplew.write(chr.getSkinColor().getId());
  170. /* 178 */ mplew.writeInt(chr.getFace());
  171. /* 179 */ mplew.write(mega ? 0 : 1);
  172. /* 180 */ mplew.writeInt(chr.getHair());
  173. /* 181 */ addCharEquips(mplew, chr.getInventory(MapleInventoryType.EQUIPPED));
  174. /* 182 */ for (int i = 0; i < 3; i++)
  175. /* 183 */ if (chr.getPet(i) != null)
  176. /* 184 */ mplew.writeInt(chr.getPet(i).getItemId());
  177. /* */ else
  178. /* 186 */ mplew.write0(4);
  179. /* */ }
  180. /* */
  181. /* */ private static void addCharEquips(MaplePacketLittleEndianWriter mplew, MapleInventory equip)
  182. /* */ {
  183. /* 192 */ Map myEquip = new LinkedHashMap();
  184. /* 193 */ Map maskedEquip = new LinkedHashMap();
  185. /* 194 */ for (IItem item : equip.list()) {
  186. /* 195 */ byte pos = (byte)(-item.getPosition());
  187. /* 196 */ if ((pos < 100) && (myEquip.get(Byte.valueOf(pos)) == null)) {
  188. /* 197 */ myEquip.put(Byte.valueOf(pos), Integer.valueOf(item.getItemId()));
  189. /* 198 */ } else if ((pos > 100) && (pos != 111)) {
  190. /* 199 */ pos = (byte)(pos - 100);
  191. /* 200 */ if (myEquip.get(Byte.valueOf(pos)) != null) {
  192. /* 201 */ maskedEquip.put(Byte.valueOf(pos), myEquip.get(Byte.valueOf(pos)));
  193. /* */ }
  194. /* 203 */ myEquip.put(Byte.valueOf(pos), Integer.valueOf(item.getItemId()));
  195. /* 204 */ } else if (myEquip.get(Byte.valueOf(pos)) != null) {
  196. /* 205 */ maskedEquip.put(Byte.valueOf(pos), Integer.valueOf(item.getItemId()));
  197. /* */ }
  198. /* */ }
  199. /* 208 */ for (Map.Entry entry : myEquip.entrySet()) {
  200. /* 209 */ mplew.write(((Byte)entry.getKey()).byteValue());
  201. /* 210 */ mplew.writeInt(((Integer)entry.getValue()).intValue());
  202. /* */ }
  203. /* 212 */ mplew.write(255);
  204. /* 213 */ for (Map.Entry entry : maskedEquip.entrySet()) {
  205. /* 214 */ mplew.write(((Byte)entry.getKey()).byteValue());
  206. /* 215 */ mplew.writeInt(((Integer)entry.getValue()).intValue());
  207. /* */ }
  208. /* 217 */ mplew.write(255);
  209. /* 218 */ IItem cWeapon = equip.getItem(-111);
  210. /* 219 */ mplew.writeInt(cWeapon != null ? cWeapon.getItemId() : 0);
  211. /* */ }
  212. /* */
  213. /* */ private static void addCharEntry(MaplePacketLittleEndianWriter mplew, MapleCharacter chr, boolean viewAll) {
  214. /* 223 */ addCharStats(mplew, chr);
  215. /* 224 */ addCharLook(mplew, chr, false, true);
  216. /* 225 */ if (chr.getJob().getId() % 1000 >= 800) {
  217. /* 226 */ mplew.writeShort(0);
  218. /* 227 */ return;
  219. /* */ }
  220. /* 229 */ if (!viewAll) {
  221. /* 230 */ mplew.write(0);
  222. /* */ }
  223. /* 232 */ mplew.write(1);
  224. /* 233 */ mplew.writeInt(chr.getRank());
  225. /* 234 */ mplew.writeInt(chr.getRankMove());
  226. /* 235 */ mplew.writeInt(chr.getJobRank());
  227. /* 236 */ mplew.writeInt(chr.getJobRankMove());
  228. /* */ }
  229. /* */
  230. /* */ private static void addQuestInfo(MaplePacketLittleEndianWriter mplew, MapleCharacter chr) {
  231. /* 240 */ List started = chr.getStartedQuests();
  232. /* 241 */ mplew.writeShort(started.size());
  233. /* 242 */ for (MapleQuestStatus q : started) {
  234. /* 243 */ mplew.writeShort(q.getQuest().getId());
  235. /* 244 */ mplew.writeMapleAsciiString(q.getQuestRecord().length() > 0 ? q.getQuestRecord() : "10000000000000000000000000");
  236. /* */ }
  237. /* 246 */ List completed = chr.getCompletedQuests();
  238. /* 247 */ mplew.writeShort(completed.size());
  239. /* 248 */ for (MapleQuestStatus q : completed) {
  240. /* 249 */ mplew.writeShort(q.getQuest().getId());
  241. /* 250 */ mplew.writeLong(q.getCompletionTime());
  242. /* */ }
  243. /* */ }
  244. /* */
  245. /* */ public static void addPetInfo(MaplePacketLittleEndianWriter mplew, MaplePet pet) {
  246. /* 255 */ mplew.write(3);
  247. /* 256 */ mplew.writeInt(pet.getItemId());
  248. /* 257 */ mplew.write(1);
  249. /* 258 */ mplew.writeInt(pet.getPetId());
  250. /* 259 */ mplew.writeInt(0);
  251. /* 260 */ mplew.write(NON_EXPIRE);
  252. /* 261 */ String petname = pet.getName();
  253. /* 262 */ if (petname.length() > 13) {
  254. /* 263 */ petname = petname.substring(0, 13);
  255. /* */ }
  256. /* 265 */ mplew.writeAsciiString(petname);
  257. /* 266 */ for (int i = petname.length(); i < 13; i++) {
  258. /* 267 */ mplew.write(0);
  259. /* */ }
  260. /* 269 */ mplew.write(pet.getLevel());
  261. /* 270 */ mplew.writeShort(pet.getCloseness());
  262. /* 271 */ mplew.write(pet.getFullness());
  263. /* 272 */ mplew.writeLong(getKoreanTimestamp(()(System.currentTimeMillis() * 1.2D)));
  264. /* 273 */ mplew.write0(10);
  265. /* */ }
  266. /* */
  267. /* */ private static void addItemInfo(MaplePacketLittleEndianWriter mplew, IItem item) {
  268. /* 277 */ addItemInfo(mplew, item, false, false, false);
  269. /* */ }
  270. /* */
  271. /* */ private static void addItemInfo(MaplePacketLittleEndianWriter mplew, IItem item, boolean zeroPosition, boolean leaveOut)
  272. /* */ {
  273. /* 286 */ addItemInfo(mplew, item, zeroPosition, leaveOut, false);
  274. /* */ }
  275. /* */
  276. /* */ private static void addItemInfo(MaplePacketLittleEndianWriter mplew, IItem item, boolean zeroPosition, boolean leaveOut, boolean trade) {
  277. /* 290 */ IEquip equip = null;
  278. /* 291 */ byte pos = item.getPosition();
  279. /* 292 */ boolean masking = false;
  280. /* 293 */ if (zeroPosition) {
  281. /* 294 */ if (!leaveOut)
  282. /* 295 */ mplew.write(0);
  283. /* */ }
  284. /* 297 */ else if (item.getItemId() == 1812007) {
  285. /* 298 */ mplew.writeShort(46);
  286. /* */ } else {
  287. /* 300 */ if (pos <= -1) {
  288. /* 301 */ pos = (byte)(pos * -1);
  289. /* 302 */ if (pos > 100) {
  290. /* 303 */ masking = true;
  291. /* 304 */ mplew.write(pos - 100);
  292. /* */ } else {
  293. /* 306 */ mplew.write(pos);
  294. /* */ }
  295. /* */ } else {
  296. /* 309 */ mplew.write(pos);
  297. /* */ }
  298. /* 311 */ if ((item.getItemId() / 1000000 == 1) && (!trade)) {
  299. /* 312 */ mplew.write(0);
  300. /* */ }
  301. /* */ }
  302. /* 315 */ if (item.getPetId() > -1) {
  303. /* 316 */ addPetInfo(mplew, MaplePet.loadFromDb(item.getItemId(), item.getPosition(), item.getPetId()));
  304. /* 317 */ return;
  305. /* */ }
  306. /* 319 */ mplew.write(item.getType());
  307. /* 320 */ mplew.writeInt(item.getItemId());
  308. /* 321 */ if (masking) {
  309. /* 322 */ mplew.write(1);
  310. /* 323 */ mplew.writeInt(697642);
  311. /* 324 */ mplew.writeInt(0);
  312. /* */ } else {
  313. /* 326 */ mplew.write(0);
  314. /* */ }
  315. /* 328 */ mplew.write(NON_EXPIRE);
  316. /* 329 */ if (item.getType() == 1) {
  317. /* 330 */ equip = (IEquip)item;
  318. /* 331 */ mplew.write(equip.getUpgradeSlots());
  319. /* 332 */ mplew.write(equip.getLevel());
  320. /* 333 */ mplew.writeShort(equip.getStr());
  321. /* 334 */ mplew.writeShort(equip.getDex());
  322. /* 335 */ mplew.writeShort(equip.getInt());
  323. /* 336 */ mplew.writeShort(equip.getLuk());
  324. /* 337 */ mplew.writeShort(equip.getHp());
  325. /* 338 */ mplew.writeShort(equip.getMp());
  326. /* 339 */ mplew.writeShort(equip.getWatk());
  327. /* 340 */ mplew.writeShort(equip.getMatk());
  328. /* 341 */ mplew.writeShort(equip.getWdef());
  329. /* 342 */ mplew.writeShort(equip.getMdef());
  330. /* 343 */ mplew.writeShort(equip.getAcc());
  331. /* 344 */ mplew.writeShort(equip.getAvoid());
  332. /* 345 */ mplew.writeShort(equip.getHands());
  333. /* 346 */ mplew.writeShort(equip.getSpeed());
  334. /* 347 */ mplew.writeShort(equip.getJump());
  335. /* 348 */ mplew.writeMapleAsciiString(equip.getOwner());
  336. /* 349 */ mplew.writeShort(equip.getFlag());
  337. /* 350 */ if (!masking) {
  338. /* 351 */ mplew.write(0);
  339. /* 352 */ mplew.write(equip.getItemLevel());
  340. /* 353 */ mplew.writeShort(0);
  341. /* 354 */ mplew.writeShort(0);
  342. /* 355 */ mplew.writeInt(-1);
  343. /* 356 */ mplew.writeInt(equip.getVicious());
  344. /* 357 */ mplew.write(equip.getPotential() % 10);
  345. /* 358 */ mplew.write(equip.getStars());
  346. /* 359 */ mplew.writeShort(equip.getPotential1());
  347. /* 360 */ mplew.writeShort(equip.getPotential2());
  348. /* 361 */ mplew.writeShort(equip.getPotential3());
  349. /* 362 */ mplew.writeShort(0);
  350. /* 363 */ mplew.writeShort(0);
  351. /* 364 */ mplew.writeLong(-1L);
  352. /* */ } else {
  353. /* 366 */ mplew.write(HexTool.getByteArrayFromHexString("00 00 00 40 E0 FD", 6));
  354. /* 367 */ mplew.writeInt(-1);
  355. /* 368 */ mplew.write0(16);
  356. /* */ }
  357. /* 370 */ mplew.write(HexTool.getByteArrayFromHexString("00 40 E0 FD 3B 37 4F 01", 8));
  358. /* 371 */ mplew.writeInt(-1);
  359. /* */ } else {
  360. /* 373 */ mplew.writeShort(item.getQuantity());
  361. /* 374 */ mplew.writeMapleAsciiString(item.getOwner());
  362. /* 375 */ mplew.writeShort(item.getFlag());
  363. /* 376 */ if (InventoryConstants.isRechargable(item.getItemId()))
  364. /* 377 */ mplew.write(HexTool.getByteArrayFromHexString("00 34 72 01 00 4F 01 00", 8));
  365. /* */ }
  366. /* */ }
  367. /* */
  368. /* */ private static void addInventoryInfo(MaplePacketLittleEndianWriter mplew, MapleCharacter chr)
  369. /* */ {
  370. /* 384 */ mplew.writeInt(chr.getMeso());
  371. /* 385 */ for (byte i = 1; i <= 5; i = (byte)(i + 1)) {
  372. /* 386 */ mplew.write(chr.getInventory(MapleInventoryType.getByType(i)).getSlotLimit());
  373. /* */ }
  374. /* 388 */ mplew.write(HexTool.getByteArrayFromHexString("00 40 E0 FD 3B 37 4F 01", 8));
  375. /* 389 */ MapleInventory iv = chr.getInventory(MapleInventoryType.EQUIPPED);
  376. /* 390 */ Collection equippedC = iv.list();
  377. /* 391 */ List equipped = new ArrayList(equippedC.size());
  378. /* 392 */ List equippedCash = new ArrayList(equippedC.size());
  379. /* 393 */ for (IItem item : equippedC) {
  380. /* 394 */ if (item.getPosition() <= -100)
  381. /* 395 */ equippedCash.add((Item)item);
  382. /* */ else {
  383. /* 397 */ equipped.add((Item)item);
  384. /* */ }
  385. /* */ }
  386. /* 400 */ Collections.sort(equipped);
  387. /* 401 */ for (Item item : equipped) {
  388. /* 402 */ addItemInfo(mplew, item);
  389. /* */ }
  390. /* 404 */ mplew.writeShort(0);
  391. /* 405 */ for (Item item : equippedCash) {
  392. /* 406 */ addItemInfo(mplew, item);
  393. /* */ }
  394. /* 408 */ mplew.writeShort(0);
  395. /* 409 */ for (IItem item : chr.getInventory(MapleInventoryType.EQUIP).list()) {
  396. /* 410 */ addItemInfo(mplew, item);
  397. /* */ }
  398. /* 412 */ mplew.write0(4);
  399. /* 413 */ for (IItem item : chr.getInventory(MapleInventoryType.USE).list()) {
  400. /* 414 */ addItemInfo(mplew, item);
  401. /* */ }
  402. /* 416 */ mplew.write(0);
  403. /* 417 */ for (IItem item : chr.getInventory(MapleInventoryType.SETUP).list()) {
  404. /* 418 */ addItemInfo(mplew, item);
  405. /* */ }
  406. /* 420 */ mplew.write(0);
  407. /* 421 */ for (IItem item : chr.getInventory(MapleInventoryType.ETC).list()) {
  408. /* 422 */ addItemInfo(mplew, item);
  409. /* */ }
  410. /* 424 */ mplew.write(0);
  411. /* 425 */ for (IItem item : chr.getInventory(MapleInventoryType.CASH).list())
  412. /* 426 */ addItemInfo(mplew, item);
  413. /* */ }
  414. /* */
  415. /* */ private static void addSkillInfo(MaplePacketLittleEndianWriter mplew, MapleCharacter chr)
  416. /* */ {
  417. /* 431 */ mplew.write(0);
  418. /* 432 */ Map skills = chr.getSkills();
  419. /* 433 */ mplew.writeShort(skills.size());
  420. /* 434 */ for (Map.Entry skill : skills.entrySet()) {
  421. /* 435 */ mplew.writeInt(((ISkill)skill.getKey()).getId());
  422. /* 436 */ mplew.writeInt(((MapleCharacter.SkillEntry)skill.getValue()).skillevel);
  423. /* 437 */ mplew.write(NON_EXPIRE);
  424. /* 438 */ if (((ISkill)skill.getKey()).hasMastery()) {
  425. /* 439 */ mplew.writeInt(((MapleCharacter.SkillEntry)skill.getValue()).masterlevel);
  426. /* */ }
  427. /* */ }
  428. /* 442 */ mplew.writeShort(chr.getAllCooldowns().size());
  429. /* 443 */ for (PlayerCoolDownValueHolder cooling : chr.getAllCooldowns()) {
  430. /* 444 */ mplew.writeInt(cooling.skillId);
  431. /* 445 */ mplew.writeShort((int)(cooling.length + cooling.startTime - System.currentTimeMillis()) / 1000);
  432. /* */ }
  433. /* */ }
  434. /* */
  435. /* */ private static void addMonsterBookInfo(MaplePacketLittleEndianWriter mplew, MapleCharacter chr) {
  436. /* 450 */ mplew.writeInt(chr.getMonsterBookCover());
  437. /* 451 */ mplew.write(0);
  438. /* 452 */ Map cards = chr.getMonsterBook().getCards();
  439. /* 453 */ mplew.writeShort(cards.size());
  440. /* 454 */ for (Map.Entry all : cards.entrySet()) {
  441. /* 455 */ mplew.writeShort(((Integer)all.getKey()).intValue() % 10000);
  442. /* 456 */ mplew.write(((Integer)all.getValue()).intValue());
  443. /* */ }
  444. /* */ }
  445. /* */
  446. /* */ public static MaplePacket getHello(short mapleVersion, byte[] sendIv, byte[] recvIv)
  447. /* */ {
  448. /* 470 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(8);
  449. /* 471 */ mplew.writeShort(14);
  450. /* 472 */ mplew.writeShort(mapleVersion);
  451. /* 473 */ mplew.write(1);
  452. /* 474 */ mplew.write(0);
  453. /* 475 */ mplew.write(49);
  454. /* 476 */ mplew.write(recvIv);
  455. /* 477 */ mplew.write(sendIv);
  456. /* 478 */ mplew.write(8);
  457. /* 479 */ return mplew.getPacket();
  458. /* */ }
  459. /* */
  460. /* */ public static MaplePacket getPing()
  461. /* */ {
  462. /* 488 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(2);
  463. /* 489 */ mplew.writeShort(SendPacketOpcode.PING);
  464. /* 490 */ return mplew.getPacket();
  465. /* */ }
  466. /* */
  467. /* */ public static MaplePacket getLoginFailed(int reason)
  468. /* */ {
  469. /* 521 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(8);
  470. /* 522 */ mplew.writeShort(SendPacketOpcode.LOGIN_STATUS);
  471. /* 523 */ mplew.writeInt(reason);
  472. /* 524 */ mplew.writeShort(0);
  473. /* 525 */ return mplew.getPacket();
  474. /* */ }
  475. /* */
  476. /* */ public static MaplePacket getAuthSuccessRequestPin(MapleClient c, String account)
  477. /* */ {
  478. /* 535 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  479. /* 536 */ mplew.writeShort(SendPacketOpcode.LOGIN_STATUS);
  480. /* 537 */ mplew.write0(6);
  481. /* 538 */ mplew.writeInt(0);
  482. /* 539 */ mplew.write(0);
  483. /* 540 */ mplew.write(c.gmLevel() > Commands.GMLevel.PLAYER.getId() ? 1 : 0);
  484. /* 541 */ mplew.write(1);
  485. /* 542 */ mplew.write(1);
  486. /* 543 */ mplew.writeMapleAsciiString(account);
  487. /* 544 */ mplew.write(1);
  488. /* 545 */ mplew.write(0);
  489. /* 546 */ mplew.writeLong(0L);
  490. /* 547 */ mplew.writeLong(0L);
  491. /* 548 */ mplew.writeInt(0);
  492. /* */
  493. /* 553 */ mplew.write(1);
  494. /* 554 */ mplew.write(0);
  495. /* */
  496. /* 556 */ mplew.writeLong(0L);
  497. /* 557 */ mplew.writeLong(0L);
  498. /* 558 */ return mplew.getPacket();
  499. /* */ }
  500. /* */
  501. /* */ public static MaplePacket wrongPIC() {
  502. /* 562 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  503. /* 563 */ mplew.writeShort(SendPacketOpcode.WRONG_PIC);
  504. /* 564 */ mplew.write(20);
  505. /* 565 */ return mplew.getPacket();
  506. /* */ }
  507. /* */
  508. /* */ public static MaplePacket pinOperation(int mode)
  509. /* */ {
  510. /* 582 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  511. /* 583 */ mplew.writeShort(SendPacketOpcode.PIN_OPERATION);
  512. /* 584 */ mplew.write(mode);
  513. /* 585 */ return mplew.getPacket();
  514. /* */ }
  515. /* */
  516. /* */ public static MaplePacket pinRegistered() {
  517. /* 589 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  518. /* 590 */ mplew.writeShort(SendPacketOpcode.PIN_ASSIGNED);
  519. /* 591 */ mplew.write(0);
  520. /* 592 */ return mplew.getPacket();
  521. /* */ }
  522. /* */
  523. /* */ public static MaplePacket getServerList(int serverId, String serverName, Map<Integer, Integer> channelLoad)
  524. /* */ {
  525. /* 604 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  526. /* 605 */ mplew.writeShort(SendPacketOpcode.SERVERLIST);
  527. /* 606 */ mplew.write(serverId);
  528. /* 607 */ mplew.writeMapleAsciiString(serverName);
  529. /* 608 */ mplew.write(0);
  530. /* 609 */ mplew.writeMapleAsciiString("");
  531. /* 610 */ mplew.write(100);
  532. /* 611 */ mplew.write(0);
  533. /* 612 */ mplew.write(100);
  534. /* 613 */ mplew.write(0);
  535. /* 614 */ mplew.write(0);
  536. /* 615 */ int lastChannel = 1;
  537. /* 616 */ Set channels = channelLoad.keySet();
  538. /* 617 */ for (int i = 30; i > 0; i--) {
  539. /* 618 */ if (channels.contains(Integer.valueOf(i))) {
  540. /* 619 */ lastChannel = i;
  541. /* 620 */ break;
  542. /* */ }
  543. /* */ }
  544. /* 623 */ mplew.write(lastChannel);
  545. /* */
  546. /* 625 */ for (int i = 1; i <= lastChannel; i++)
  547. /* */ {
  548. /* */ int load;
  549. /* */ int load;
  550. /* 626 */ if (channels.contains(Integer.valueOf(i)))
  551. /* 627 */ load = ((Integer)channelLoad.get(Integer.valueOf(i))).intValue() * 1200 / 300;
  552. /* */ else {
  553. /* 629 */ load = 300;
  554. /* */ }
  555. /* 631 */ mplew.writeMapleAsciiString(serverName + "-" + i);
  556. /* 632 */ mplew.writeInt(load);
  557. /* 633 */ mplew.write(1);
  558. /* 634 */ mplew.writeShort(i - 1);
  559. /* */ }
  560. /* 636 */ mplew.writeShort(0);
  561. /* 637 */ return mplew.getPacket();
  562. /* */ }
  563. /* */
  564. /* */ public static MaplePacket getEndOfServerList()
  565. /* */ {
  566. /* 646 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  567. /* 647 */ mplew.writeShort(SendPacketOpcode.SERVERLIST);
  568. /* 648 */ mplew.write(255);
  569. /* 649 */ return mplew.getPacket();
  570. /* */ }
  571. /* */
  572. /* */ public static MaplePacket getServerStatus(int status)
  573. /* */ {
  574. /* 664 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(4);
  575. /* 665 */ mplew.writeShort(SendPacketOpcode.SERVERSTATUS);
  576. /* 666 */ mplew.writeShort(status);
  577. /* 667 */ return mplew.getPacket();
  578. /* */ }
  579. /* */
  580. /* */ public static MaplePacket getServerIP(int port, int clientId)
  581. /* */ {
  582. /* 680 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(19);
  583. /* 681 */ mplew.writeShort(SendPacketOpcode.SERVER_IP);
  584. /* 682 */ mplew.writeShort(0);
  585. /* 683 */ mplew.write(NEXON_IP);
  586. /* 684 */ mplew.writeShort(port);
  587. /* 685 */ mplew.writeInt(clientId);
  588. /* 686 */ mplew.write0(5);
  589. /* 687 */ return mplew.getPacket();
  590. /* */ }
  591. /* */
  592. /* */ public static MaplePacket getChannelChange(int port)
  593. /* */ {
  594. /* 698 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(9);
  595. /* 699 */ mplew.writeShort(SendPacketOpcode.CHANGE_CHANNEL);
  596. /* 700 */ mplew.write(1);
  597. /* 701 */ mplew.write(NEXON_IP);
  598. /* 702 */ mplew.writeShort(port);
  599. /* 703 */ return mplew.getPacket();
  600. /* */ }
  601. /* */
  602. /* */ public static MaplePacket getCharList(MapleClient c, int serverId)
  603. /* */ {
  604. /* 714 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  605. /* 715 */ mplew.writeShort(SendPacketOpcode.CHARLIST);
  606. /* 716 */ mplew.write(0);
  607. /* 717 */ List chars = c.loadCharacters(serverId);
  608. /* 718 */ mplew.write((byte)chars.size());
  609. /* 719 */ for (MapleCharacter chr : chars) {
  610. /* 720 */ addCharEntry(mplew, chr, false);
  611. /* */ }
  612. /* */
  613. /* 725 */ mplew.write(1);
  614. /* */
  615. /* 727 */ mplew.writeInt(c.getCharacterSlots());
  616. /* 728 */ mplew.write0(4);
  617. /* 729 */ return mplew.getPacket();
  618. /* */ }
  619. /* */
  620. /* */ public static MaplePacket enableTV() {
  621. /* 733 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  622. /* 734 */ mplew.writeShort(SendPacketOpcode.ENABLE_TV);
  623. /* 735 */ mplew.writeInt(0);
  624. /* 736 */ mplew.write(0);
  625. /* 737 */ return mplew.getPacket();
  626. /* */ }
  627. /* */
  628. /* */ public static MaplePacket removeTV()
  629. /* */ {
  630. /* 746 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(2);
  631. /* 747 */ mplew.writeShort(SendPacketOpcode.REMOVE_TV);
  632. /* 748 */ return mplew.getPacket();
  633. /* */ }
  634. /* */
  635. /* */ public static MaplePacket sendTV(MapleCharacter chr, List<String> messages, int type, MapleCharacter partner)
  636. /* */ {
  637. /* 761 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  638. /* 762 */ mplew.writeShort(SendPacketOpcode.SEND_TV);
  639. /* 763 */ mplew.write(partner != null ? 3 : 1);
  640. /* 764 */ mplew.write(type);
  641. /* 765 */ addCharLook(mplew, chr, false, true);
  642. /* 766 */ mplew.writeMapleAsciiString(chr.getName());
  643. /* 767 */ if (partner != null)
  644. /* 768 */ mplew.writeMapleAsciiString(partner.getName());
  645. /* */ else {
  646. /* 770 */ mplew.writeShort(0);
  647. /* */ }
  648. /* 772 */ for (int i = 0; i < messages.size(); i++) {
  649. /* 773 */ if ((i == 4) && (((String)messages.get(4)).length() > 15))
  650. /* 774 */ mplew.writeMapleAsciiString(((String)messages.get(4)).substring(0, 15));
  651. /* */ else {
  652. /* 776 */ mplew.writeMapleAsciiString((String)messages.get(i));
  653. /* */ }
  654. /* */ }
  655. /* 779 */ mplew.writeInt(1337);
  656. /* 780 */ if (partner != null) {
  657. /* 781 */ addCharLook(mplew, partner, false, true);
  658. /* */ }
  659. /* 783 */ return mplew.getPacket();
  660. /* */ }
  661. /* */
  662. /* */ public static MaplePacket getCharInfo(MapleCharacter chr)
  663. /* */ {
  664. /* 793 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  665. /* 794 */ mplew.writeShort(SendPacketOpcode.WARP_TO_MAP);
  666. /* 795 */ mplew.writeShort(2);
  667. /* 796 */ mplew.writeLong(1L);
  668. /* 797 */ mplew.writeLong(2L);
  669. /* 798 */ mplew.writeInt(chr.getClient().getChannel() - 1);
  670. /* 799 */ mplew.writeInt(0);
  671. /* 800 */ mplew.write(1);
  672. /* 801 */ mplew.write(1);
  673. /* 802 */ mplew.writeShort(0);
  674. /* 803 */ for (int i = 0; i < 3; i++) {
  675. /* 804 */ mplew.writeInt(Randomizer.getInstance().nextInt());
  676. /* */ }
  677. /* 806 */ mplew.writeLong(-1L);
  678. /* 807 */ mplew.write(0);
  679. /* 808 */ addCharStats(mplew, chr);
  680. /* 809 */ mplew.writeShort(chr.isDualBlade() ? 1 : 0);
  681. /* 810 */ mplew.write(chr.getBuddylist().getCapacity());
  682. /* 811 */ if (chr.getLinkedChar() == null) {
  683. /* 812 */ mplew.write(0);
  684. /* */ } else {
  685. /* 814 */ mplew.write(1);
  686. /* 815 */ mplew.writeMapleAsciiString(chr.getLinkedChar());
  687. /* */ }
  688. /* 817 */ addInventoryInfo(mplew, chr);
  689. /* 818 */ addSkillInfo(mplew, chr);
  690. /* 819 */ addQuestInfo(mplew, chr);
  691. /* 820 */ mplew.writeShort(0);
  692. /* 821 */ addRingInfo(mplew, chr);
  693. /* 822 */ addTeleportRockRecord(mplew, chr);
  694. /* 823 */ addMonsterBookInfo(mplew, chr);
  695. /* 824 */ mplew.writeShort(0);
  696. /* 825 */ mplew.writeShort(0);
  697. /* 826 */ mplew.writeShort(0);
  698. /* 827 */ mplew.write0(16);
  699. /* 828 */ mplew.writeLong(getKoreanTimestamp(System.currentTimeMillis()));
  700. /* 829 */ return mplew.getPacket();
  701. /* */ }
  702. /* */
  703. /* */ public static MaplePacket enableActions()
  704. /* */ {
  705. /* 856 */ return updatePlayerStats(EMPTY_STATUPDATE, true);
  706. /* */ }
  707. /* */
  708. /* */ public static MaplePacket updatePlayerStats(List<Pair<MapleStat, Integer>> stats)
  709. /* */ {
  710. /* 866 */ return updatePlayerStats(stats, false);
  711. /* */ }
  712. /* */
  713. /* */ public static MaplePacket updatePlayerStats(List<Pair<MapleStat, Integer>> stats, boolean itemReaction)
  714. /* */ {
  715. /* 877 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  716. /* 878 */ mplew.writeShort(SendPacketOpcode.UPDATE_STATS);
  717. /* 879 */ mplew.write(itemReaction ? 1 : 0);
  718. /* 880 */ int updateMask = 0;
  719. /* 881 */ for (Pair statupdate : stats) {
  720. /* 882 */ updateMask |= ((MapleStat)statupdate.getLeft()).getValue();
  721. /* */ }
  722. /* 884 */ List mystats = stats;
  723. /* 885 */ if (mystats.size() > 1)
  724. /* 886 */ Collections.sort(mystats, new Comparator()
  725. /* */ {
  726. /* */ public int compare(Pair<MapleStat, Integer> o1, Pair<MapleStat, Integer> o2) {
  727. /* 889 */ int val1 = ((MapleStat)o1.getLeft()).getValue();
  728. /* 890 */ int val2 = ((MapleStat)o2.getLeft()).getValue();
  729. /* 891 */ return val1 == val2 ? 0 : val1 < val2 ? -1 : 1;
  730. /* */ }
  731. /* */ });
  732. /* 895 */ mplew.writeInt(updateMask);
  733. /* 896 */ for (Pair statupdate : mystats) {
  734. /* 897 */ if (((MapleStat)statupdate.getLeft()).getValue() >= 1) {
  735. /* 898 */ if (((MapleStat)statupdate.getLeft()).getValue() == 1) {
  736. /* 899 */ mplew.writeShort(((Integer)statupdate.getRight()).shortValue());
  737. /* 900 */ } else if (((MapleStat)statupdate.getLeft()).getValue() <= 4) {
  738. /* 901 */ mplew.writeInt(((Integer)statupdate.getRight()).intValue());
  739. /* 902 */ } else if (((MapleStat)statupdate.getLeft()).getValue() < 32) {
  740. /* 903 */ mplew.write(((Integer)statupdate.getRight()).shortValue());
  741. /* 904 */ } else if (((MapleStat)statupdate.getLeft()).getValue() < 65535) {
  742. /* 905 */ mplew.writeShort(((Integer)statupdate.getRight()).shortValue());
  743. /* 906 */ } else if (((MapleStat)statupdate.getLeft()).getValue() == MapleStat.DRAGON.getValue()) {
  744. /* 907 */ mplew.write(0);
  745. /* 908 */ mplew.write(7);
  746. /* 909 */ mplew.writeShort(1);
  747. /* */ } else {
  748. /* 911 */ mplew.writeInt(((Integer)statupdate.getRight()).intValue());
  749. /* */ }
  750. /* */ }
  751. /* */ }
  752. /* 915 */ mplew.writeInt(0);
  753. /* 916 */ return mplew.getPacket();
  754. /* */ }
  755. /* */
  756. /* */ public static MaplePacket getWarpToMap(MapleMap to, int spawnPoint, MapleCharacter chr)
  757. /* */ {
  758. /* 928 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(26);
  759. /* 929 */ mplew.writeShort(SendPacketOpcode.WARP_TO_MAP);
  760. /* 930 */ mplew.writeShort(2);
  761. /* 931 */ mplew.writeLong(1L);
  762. /* 932 */ mplew.writeLong(2L);
  763. /* 933 */ mplew.writeInt(chr.getClient().getChannel() - 1);
  764. /* 934 */ mplew.writeInt(0);
  765. /* 935 */ mplew.writeShort(2);
  766. /* 936 */ mplew.write(0);
  767. /* 937 */ mplew.writeShort(0);
  768. /* 938 */ mplew.writeInt(to.getId());
  769. /* 939 */ mplew.write(spawnPoint);
  770. /* 940 */ mplew.writeShort(chr.getHp());
  771. /* 941 */ mplew.write(0);
  772. /* 942 */ mplew.writeLong(getKoreanTimestamp(System.currentTimeMillis()));
  773. /* 943 */ return mplew.getPacket();
  774. /* */ }
  775. /* */
  776. /* */ public static MaplePacket spawnPortal(int townId, int targetId, Point pos)
  777. /* */ {
  778. /* 955 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(14);
  779. /* 956 */ mplew.writeShort(SendPacketOpcode.SPAWN_PORTAL);
  780. /* 957 */ mplew.writeInt(townId);
  781. /* 958 */ mplew.writeInt(targetId);
  782. /* 959 */ if (pos != null) {
  783. /* 960 */ mplew.writeShort(pos.x);
  784. /* 961 */ mplew.writeShort(pos.y);
  785. /* */ }
  786. /* 963 */ return mplew.getPacket();
  787. /* */ }
  788. /* */
  789. /* */ public static MaplePacket spawnDoor(int oid, Point pos, boolean town)
  790. /* */ {
  791. /* 975 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(11);
  792. /* 976 */ mplew.writeShort(SendPacketOpcode.SPAWN_DOOR);
  793. /* 977 */ mplew.write(town ? 1 : 0);
  794. /* 978 */ mplew.writeInt(oid);
  795. /* 979 */ mplew.writeShort(pos.x);
  796. /* 980 */ mplew.writeShort(pos.y);
  797. /* 981 */ return mplew.getPacket();
  798. /* */ }
  799. /* */
  800. /* */ public static MaplePacket removeDoor(int oid, boolean town)
  801. /* */ {
  802. /* 992 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(10);
  803. /* 993 */ if (town) {
  804. /* 994 */ mplew.writeShort(SendPacketOpcode.SPAWN_PORTAL);
  805. /* 995 */ mplew.writeInt(999999999);
  806. /* 996 */ mplew.writeInt(999999999);
  807. /* */ } else {
  808. /* 998 */ mplew.writeShort(SendPacketOpcode.REMOVE_DOOR);
  809. /* 999 */ mplew.write(0);
  810. /* 1000 */ mplew.writeInt(oid);
  811. /* */ }
  812. /* 1002 */ return mplew.getPacket();
  813. /* */ }
  814. /* */
  815. /* */ public static MaplePacket spawnSpecialMapObject(MapleSummon summon, int skillLevel, boolean animated, boolean mirroredTarget)
  816. /* */ {
  817. /* 1014 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(25);
  818. /* 1015 */ mplew.writeShort(SendPacketOpcode.SPAWN_SPECIAL_MAPOBJECT);
  819. /* 1016 */ mplew.writeInt(summon.getOwner().getId());
  820. /* 1017 */ mplew.writeInt(summon.getObjectId());
  821. /* 1018 */ mplew.writeInt(summon.getSkill());
  822. /* 1019 */ mplew.write(summon.getOwner().getLevel());
  823. /* 1020 */ mplew.write(skillLevel);
  824. /* 1021 */ mplew.writeShort(summon.getPosition().x);
  825. /* 1022 */ mplew.writeShort(summon.getPosition().y);
  826. /* 1023 */ mplew.write(4);
  827. /* 1024 */ mplew.write(summon.getStance());
  828. /* 1025 */ mplew.write(0);
  829. /* 1026 */ mplew.write(summon.getMovementType().getValue());
  830. /* 1027 */ mplew.write(mirroredTarget ? 0 : 1);
  831. /* 1028 */ mplew.write((animated) || (mirroredTarget) ? 0 : 1);
  832. /* 1029 */ if (!mirroredTarget) {
  833. /* 1030 */ mplew.writeShort(0);
  834. /* */ } else {
  835. /* 1032 */ mplew.write(1);
  836. /* 1033 */ addCharLook(mplew, summon.getOwner(), true, false);
  837. /* */ }
  838. /* 1035 */ return mplew.getPacket();
  839. /* */ }
  840. /* */
  841. /* */ public static MaplePacket removeSpecialMapObject(MapleSummon summon, int code)
  842. /* */ {
  843. /* 1045 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(11);
  844. /* 1046 */ mplew.writeShort(SendPacketOpcode.REMOVE_SPECIAL_MAPOBJECT);
  845. /* 1047 */ mplew.writeInt(summon.getOwner().getId());
  846. /* 1048 */ mplew.writeInt(summon.getObjectId());
  847. /* 1049 */ mplew.write(code);
  848. /* 1050 */ return mplew.getPacket();
  849. /* */ }
  850. /* */
  851. /* */ public static MaplePacket getRelogResponse()
  852. /* */ {
  853. /* 1059 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  854. /* 1060 */ mplew.writeShort(SendPacketOpcode.RELOG_RESPONSE);
  855. /* 1061 */ mplew.write(1);
  856. /* 1062 */ return mplew.getPacket();
  857. /* */ }
  858. /* */
  859. /* */ public static MaplePacket serverMessage(String message)
  860. /* */ {
  861. /* 1072 */ return serverMessage(null, null, 4, 0, message, null, false);
  862. /* */ }
  863. /* */
  864. /* */ public static MaplePacket serverNotice(int type, String message)
  865. /* */ {
  866. /* 1092 */ return serverMessage(null, null, type, 0, message, null, false);
  867. /* */ }
  868. /* */
  869. /* */ public static MaplePacket serverNotice(int type, int channel, String message)
  870. /* */ {
  871. /* 1113 */ return serverMessage(null, null, type, channel, message, null, false);
  872. /* */ }
  873. /* */
  874. /* */ public static MaplePacket serverNotice(int type, int channel, String message, boolean smegaEar) {
  875. /* 1117 */ return serverMessage(null, null, type, channel, message, null, smegaEar);
  876. /* */ }
  877. /* */
  878. /* */ public static MaplePacket itemMegaphone(String msg, boolean whisper, int channel, IItem item) {
  879. /* 1121 */ return serverMessage(null, item, 8, channel, msg, null, whisper);
  880. /* */ }
  881. /* */
  882. /* */ public static MaplePacket allianceInvitationDenied(String name) {
  883. /* 1125 */ return serverMessage(null, null, 9, 0, name, null, false);
  884. /* */ }
  885. /* */
  886. /* */ public static MaplePacket getMultiMegaphone(String[] messages, int channel, boolean showEar) {
  887. /* 1129 */ return serverMessage(null, null, 10, channel, "", messages, showEar);
  888. /* */ }
  889. /* */
  890. /* */ public static MaplePacket gachaponMessage(IItem item, String town, MapleCharacter player)
  891. /* */ {
  892. /* 1140 */ return serverMessage(player, item, 12, 0, town, null, false);
  893. /* */ }
  894. /* */
  895. /* */ public static MaplePacket getCashShopNews(IItem item) {
  896. /* 1144 */ return serverMessage(null, item, 18, 0, "", null, false);
  897. /* */ }
  898. /* */
  899. /* */ private static MaplePacket serverMessage(MapleCharacter player, IItem item, int type, int channel, String message, String[] messages, boolean megaEar)
  900. /* */ {
  901. /* 1166 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  902. /* 1167 */ mplew.writeShort(SendPacketOpcode.SERVERMESSAGE);
  903. /* 1168 */ mplew.write(type);
  904. /* 1169 */ switch (type) {
  905. /* */ case 0:
  906. /* */ case 1:
  907. /* */ case 2:
  908. /* */ case 5:
  909. /* 1174 */ mplew.writeMapleAsciiString(message);
  910. /* 1175 */ break;
  911. /* */ case 3:
  912. /* 1177 */ mplew.writeMapleAsciiString(message);
  913. /* 1178 */ mplew.write(channel - 1);
  914. /* 1179 */ mplew.write(megaEar ? 1 : 0);
  915. /* 1180 */ break;
  916. /* */ case 4:
  917. /* 1182 */ mplew.write(1);
  918. /* 1183 */ mplew.writeMapleAsciiString(message);
  919. /* 1184 */ break;
  920. /* */ case 6:
  921. /* 1186 */ mplew.writeMapleAsciiString(message);
  922. /* 1187 */ mplew.writeInt(0);
  923. /* 1188 */ break;
  924. /* */ case 8:
  925. /* 1190 */ mplew.writeMapleAsciiString(message);
  926. /* 1191 */ mplew.write(channel - 1);
  927. /* 1192 */ mplew.write(megaEar ? 1 : 0);
  928. /* 1193 */ if (item == null)
  929. /* 1194 */ mplew.write(0);
  930. /* */ else {
  931. /* 1196 */ addItemInfo(mplew, item, false, false, true);
  932. /* */ }
  933. /* 1198 */ break;
  934. /* */ case 9:
  935. /* 1200 */ mplew.writeMapleAsciiString(message + " Guild has rejected the Guild Union invitation.");
  936. /* 1201 */ break;
  937. /* */ case 10:
  938. /* 1203 */ if (messages[0] != null) {
  939. /* 1204 */ mplew.writeMapleAsciiString(messages[0]);
  940. /* */ }
  941. /* 1206 */ mplew.write(messages.length);
  942. /* 1207 */ for (int i = 1; i < messages.length; i++) {
  943. /* 1208 */ if (messages[i] != null) {
  944. /* 1209 */ mplew.writeMapleAsciiString(messages[i]);
  945. /* */ }
  946. /* */ }
  947. /* 1212 */ for (int i = 0; i < 10; i++) {
  948. /* 1213 */ mplew.write(channel - 1);
  949. /* */ }
  950. /* 1215 */ mplew.write(megaEar ? 1 : 0);
  951. /* 1216 */ mplew.write(1);
  952. /* 1217 */ break;
  953. /* */ case 12:
  954. /* 1219 */ mplew.writeMapleAsciiString(player.getName() + " : got a(n)");
  955. /* 1220 */ mplew.writeInt(0);
  956. /* 1221 */ mplew.writeMapleAsciiString(message);
  957. /* 1222 */ addItemInfo(mplew, item, true, true, false);
  958. /* 1223 */ break;
  959. /* */ case 18:
  960. /* 1225 */ mplew.writeMapleAsciiString("Check out {#t" + item.getItemId() + "#} in the Cash Shop now!");
  961. /* 1226 */ mplew.writeInt(item.getItemId());
  962. /* */ case 7:
  963. /* */ case 11:
  964. /* */ case 13:
  965. /* */ case 14:
  966. /* */ case 15:
  967. /* */ case 16:
  968. /* 1229 */ case 17: } return mplew.getPacket();
  969. /* */ }
  970. /* */
  971. /* */ public static MaplePacket getAvatarMega(MapleCharacter chr, String medal, int channel, int itemId, List<String> message, boolean ear)
  972. /* */ {
  973. /* 1244 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  974. /* 1245 */ mplew.writeShort(SendPacketOpcode.AVATAR_MEGA);
  975. /* 1246 */ mplew.writeInt(itemId);
  976. /* 1247 */ mplew.writeMapleAsciiString(medal + chr.getName());
  977. /* 1248 */ for (String s : message) {
  978. /* 1249 */ mplew.writeMapleAsciiString(s);
  979. /* */ }
  980. /* 1251 */ mplew.writeInt(channel - 1);
  981. /* 1252 */ mplew.write(ear ? 1 : 0);
  982. /* 1253 */ addCharLook(mplew, chr, true, false);
  983. /* 1254 */ return mplew.getPacket();
  984. /* */ }
  985. /* */
  986. /* */ public static MaplePacket spawnNPC(MapleNPC life) {
  987. /* 1258 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(24);
  988. /* 1259 */ mplew.writeShort(SendPacketOpcode.SPAWN_NPC);
  989. /* 1260 */ mplew.writeInt(life.getObjectId());
  990. /* 1261 */ mplew.writeInt(life.getId());
  991. /* 1262 */ mplew.writeShort(life.getPosition().x);
  992. /* 1263 */ mplew.writeShort(life.getCy());
  993. /* 1264 */ if (life.getF() == 1)
  994. /* 1265 */ mplew.write(0);
  995. /* */ else {
  996. /* 1267 */ mplew.write(1);
  997. /* */ }
  998. /* 1269 */ mplew.writeShort(life.getFh());
  999. /* 1270 */ mplew.writeShort(life.getRx0());
  1000. /* 1271 */ mplew.writeShort(life.getRx1());
  1001. /* 1272 */ mplew.write(1);
  1002. /* 1273 */ return mplew.getPacket();
  1003. /* */ }
  1004. /* */
  1005. /* */ public static MaplePacket spawnNPCRequestController(MapleNPC life, boolean MiniMap)
  1006. /* */ {
  1007. /* 1289 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(23);
  1008. /* 1290 */ mplew.writeShort(SendPacketOpcode.SPAWN_NPC_REQUEST_CONTROLLER);
  1009. /* 1291 */ mplew.write(1);
  1010. /* 1292 */ mplew.writeInt(life.getObjectId());
  1011. /* 1293 */ mplew.writeInt(life.getId());
  1012. /* 1294 */ mplew.writeShort(life.getPosition().x);
  1013. /* 1295 */ mplew.writeShort(life.getCy());
  1014. /* 1296 */ if (life.getF() == 1)
  1015. /* 1297 */ mplew.write(0);
  1016. /* */ else {
  1017. /* 1299 */ mplew.write(1);
  1018. /* */ }
  1019. /* 1301 */ mplew.writeShort(life.getFh());
  1020. /* 1302 */ mplew.writeShort(life.getRx0());
  1021. /* 1303 */ mplew.writeShort(life.getRx1());
  1022. /* 1304 */ mplew.write(MiniMap ? 1 : 0);
  1023. /* 1305 */ return mplew.getPacket();
  1024. /* */ }
  1025. /* */
  1026. /* */ public static MaplePacket spawnMonster(MapleMonster life, boolean newSpawn)
  1027. /* */ {
  1028. /* 1316 */ return spawnMonsterInternal(life, false, newSpawn, false, 0, false);
  1029. /* */ }
  1030. /* */
  1031. /* */ public static MaplePacket spawnMonster(MapleMonster life, boolean newSpawn, int effect)
  1032. /* */ {
  1033. /* 1328 */ return spawnMonsterInternal(life, false, newSpawn, false, effect, false);
  1034. /* */ }
  1035. /* */
  1036. /* */ public static MaplePacket controlMonster(MapleMonster life, boolean newSpawn, boolean aggro)
  1037. /* */ {
  1038. /* 1340 */ return spawnMonsterInternal(life, true, newSpawn, aggro, 0, false);
  1039. /* */ }
  1040. /* */
  1041. /* */ public static MaplePacket makeMonsterInvisible(MapleMonster life)
  1042. /* */ {
  1043. /* 1349 */ return spawnMonsterInternal(life, true, false, false, 0, true);
  1044. /* */ }
  1045. /* */
  1046. /* */ private static MaplePacket spawnMonsterInternal(MapleMonster life, boolean requestController, boolean newSpawn, boolean aggro, int effect, boolean makeInvis)
  1047. /* */ {
  1048. /* 1363 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1049. /* 1364 */ if (makeInvis) {
  1050. /* 1365 */ mplew.writeShort(SendPacketOpcode.SPAWN_MONSTER_CONTROL);
  1051. /* 1366 */ mplew.write(0);
  1052. /* 1367 */ mplew.writeInt(life.getObjectId());
  1053. /* 1368 */ return mplew.getPacket();
  1054. /* */ }
  1055. /* 1370 */ if (requestController) {
  1056. /* 1371 */ mplew.writeShort(SendPacketOpcode.SPAWN_MONSTER_CONTROL);
  1057. /* 1372 */ if (aggro)
  1058. /* 1373 */ mplew.write(2);
  1059. /* */ else
  1060. /* 1375 */ mplew.write(1);
  1061. /* */ }
  1062. /* */ else {
  1063. /* 1378 */ mplew.writeShort(SendPacketOpcode.SPAWN_MONSTER);
  1064. /* */ }
  1065. /* */
  1066. /* 1384 */ spawnAction(mplew, life, effect, true, newSpawn, false, requestController);
  1067. /* 1385 */ return mplew.getPacket();
  1068. /* */ }
  1069. /* */
  1070. /* */ private static void spawnAction(LittleEndianWriter lew, MapleMonster life, int effect, boolean spawn, boolean newSpawn, boolean fake, boolean fr) {
  1071. /* 1389 */ lew.writeInt(life.getObjectId());
  1072. /* 1390 */ lew.write(life.getController() == null ? 5 : 1);
  1073. /* 1391 */ lew.writeInt(life.getId());
  1074. /* 1392 */ lew.write(new byte[15]);
  1075. /* 1393 */ lew.write(136);
  1076. /* 1394 */ lew.write(new byte[6]);
  1077. /* 1395 */ lew.writeShort(life.getPosition().x);
  1078. /* 1396 */ lew.writeShort(life.getPosition().y);
  1079. /* 1397 */ lew.write(life.getStance());
  1080. /* 1398 */ lew.writeShort(0);
  1081. /* 1399 */ lew.writeShort(life.getFh());
  1082. /* 1400 */ if (effect > 0) {
  1083. /* 1401 */ lew.write(effect);
  1084. /* 1402 */ lew.write(0);
  1085. /* 1403 */ lew.writeShort(0);
  1086. /* 1404 */ if (effect == 15) {
  1087. /* 1405 */ lew.write(0);
  1088. /* */ }
  1089. /* */ }
  1090. /* 1408 */ if (spawn) {
  1091. /* 1409 */ if (newSpawn)
  1092. /* 1410 */ lew.writeShort(-2);
  1093. /* */ else {
  1094. /* 1412 */ lew.writeShort(-1);
  1095. /* */ }
  1096. /* 1414 */ lew.writeInt(0);
  1097. /* 1415 */ return;
  1098. /* */ }
  1099. /* 1417 */ if (fr)
  1100. /* 1418 */ lew.writeShort(fake ? -2 : -1);
  1101. /* */ else {
  1102. /* 1420 */ lew.write(-1);
  1103. /* */ }
  1104. /* 1422 */ lew.writeInt(0);
  1105. /* */ }
  1106. /* */
  1107. /* */ public static MaplePacket spawnFakeMonster(MapleMonster life, int effect)
  1108. /* */ {
  1109. /* 1432 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1110. /* 1433 */ mplew.writeShort(SendPacketOpcode.SPAWN_MONSTER_CONTROL);
  1111. /* 1434 */ mplew.write(1);
  1112. /* */
  1113. /* 1439 */ spawnAction(mplew, life, effect, false, false, true, true);
  1114. /* 1440 */ return mplew.getPacket();
  1115. /* */ }
  1116. /* */
  1117. /* */ public static MaplePacket makeMonsterReal(MapleMonster life)
  1118. /* */ {
  1119. /* 1449 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(30);
  1120. /* 1450 */ mplew.writeShort(SendPacketOpcode.SPAWN_MONSTER);
  1121. /* */
  1122. /* 1455 */ spawnAction(mplew, life, 0, false, false, false, true);
  1123. /* 1456 */ return mplew.getPacket();
  1124. /* */ }
  1125. /* */
  1126. /* */ public static MaplePacket stopControllingMonster(int oid)
  1127. /* */ {
  1128. /* 1466 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  1129. /* 1467 */ mplew.writeShort(SendPacketOpcode.SPAWN_MONSTER_CONTROL);
  1130. /* 1468 */ mplew.write(0);
  1131. /* 1469 */ mplew.writeInt(oid);
  1132. /* 1470 */ return mplew.getPacket();
  1133. /* */ }
  1134. /* */
  1135. /* */ public static MaplePacket moveMonsterResponse(int objectid, short moveid, int currentMp, boolean useSkills)
  1136. /* */ {
  1137. /* 1483 */ return moveMonsterResponse(objectid, moveid, currentMp, useSkills, 0, 0);
  1138. /* */ }
  1139. /* */
  1140. /* */ public static MaplePacket moveMonsterResponse(int objectid, short moveid, int currentMp, boolean useSkills, int skillId, int skillLevel)
  1141. /* */ {
  1142. /* 1498 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(13);
  1143. /* 1499 */ mplew.writeShort(SendPacketOpcode.MOVE_MONSTER_RESPONSE);
  1144. /* 1500 */ mplew.writeInt(objectid);
  1145. /* 1501 */ mplew.writeShort(moveid);
  1146. /* 1502 */ mplew.write(useSkills ? 1 : 0);
  1147. /* 1503 */ mplew.writeShort(currentMp);
  1148. /* 1504 */ mplew.write(skillId);
  1149. /* 1505 */ mplew.write(skillLevel);
  1150. /* 1506 */ return mplew.getPacket();
  1151. /* */ }
  1152. /* */
  1153. /* */ public static MaplePacket getChatText(int cidfrom, String text, boolean whiteBG, int show)
  1154. /* */ {
  1155. /* 1519 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1156. /* 1520 */ mplew.writeShort(SendPacketOpcode.CHATTEXT);
  1157. /* 1521 */ mplew.writeInt(cidfrom);
  1158. /* 1522 */ mplew.write(whiteBG ? 1 : 0);
  1159. /* 1523 */ mplew.writeMapleAsciiString(text);
  1160. /* 1524 */ mplew.write(show);
  1161. /* 1525 */ return mplew.getPacket();
  1162. /* */ }
  1163. /* */
  1164. /* */ public static MaplePacket getShowExpGain(int gain, boolean inChat, boolean white, byte party)
  1165. /* */ {
  1166. /* 1547 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1167. /* 1548 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  1168. /* 1549 */ mplew.write(3);
  1169. /* 1550 */ mplew.write(white ? 1 : 0);
  1170. /* 1551 */ mplew.writeInt(gain);
  1171. /* 1552 */ mplew.writeInt(inChat ? 1 : 0);
  1172. /* 1553 */ mplew.writeInt(0);
  1173. /* 1554 */ mplew.write(0);
  1174. /* 1555 */ mplew.write(0);
  1175. /* 1556 */ mplew.write0(18);
  1176. /* 1557 */ mplew.write0(8);
  1177. /* 1558 */ if (inChat) {
  1178. /* 1559 */ mplew.write(0);
  1179. /* */ }
  1180. /* 1561 */ return mplew.getPacket();
  1181. /* */ }
  1182. /* */
  1183. /* */ public static MaplePacket getShowFameGain(int gain)
  1184. /* */ {
  1185. /* 1571 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  1186. /* 1572 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  1187. /* 1573 */ mplew.write(5);
  1188. /* 1574 */ mplew.writeInt(gain);
  1189. /* 1575 */ return mplew.getPacket();
  1190. /* */ }
  1191. /* */
  1192. /* */ public static MaplePacket getShowMesoGain(int gain)
  1193. /* */ {
  1194. /* 1585 */ return getShowMesoGain(gain, false);
  1195. /* */ }
  1196. /* */
  1197. /* */ public static MaplePacket getShowMesoGain(int gain, boolean inChat)
  1198. /* */ {
  1199. /* 1596 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1200. /* 1597 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  1201. /* 1598 */ if (!inChat) {
  1202. /* 1599 */ mplew.write(0);
  1203. /* 1600 */ mplew.write(1);
  1204. /* 1601 */ mplew.write(0);
  1205. /* */ } else {
  1206. /* 1603 */ mplew.write(6);
  1207. /* */ }
  1208. /* 1605 */ mplew.writeInt(gain);
  1209. /* 1606 */ mplew.writeShort(0);
  1210. /* 1607 */ return mplew.getPacket();
  1211. /* */ }
  1212. /* */
  1213. /* */ public static MaplePacket getShowItemGain(int itemId, short quantity)
  1214. /* */ {
  1215. /* 1618 */ return getShowItemGain(itemId, quantity, false);
  1216. /* */ }
  1217. /* */
  1218. /* */ public static MaplePacket getShowItemGain(int itemId, short quantity, boolean inChat)
  1219. /* */ {
  1220. /* 1630 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(20);
  1221. /* 1631 */ if (inChat) {
  1222. /* 1632 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_GAIN_INCHAT);
  1223. /* 1633 */ mplew.write(3);
  1224. /* 1634 */ mplew.write(1);
  1225. /* 1635 */ mplew.writeInt(itemId);
  1226. /* 1636 */ mplew.writeInt(quantity);
  1227. /* */ } else {
  1228. /* 1638 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  1229. /* 1639 */ mplew.writeShort(0);
  1230. /* 1640 */ mplew.writeInt(itemId);
  1231. /* 1641 */ mplew.writeInt(quantity);
  1232. /* 1642 */ mplew.writeInt(0);
  1233. /* 1643 */ mplew.writeInt(0);
  1234. /* */ }
  1235. /* 1645 */ return mplew.getPacket();
  1236. /* */ }
  1237. /* */
  1238. /* */ public static MaplePacket getShowItemGain(List<Pair<Integer, Integer>> itemAmount) {
  1239. /* 1649 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1240. /* 1650 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_GAIN_INCHAT);
  1241. /* 1651 */ mplew.write(3);
  1242. /* 1652 */ mplew.write(itemAmount.size());
  1243. /* 1653 */ for (Pair items : itemAmount) {
  1244. /* 1654 */ mplew.writeInt(((Integer)items.getLeft()).intValue());
  1245. /* 1655 */ mplew.writeInt(((Integer)items.getRight()).intValue());
  1246. /* */ }
  1247. /* 1657 */ return mplew.getPacket();
  1248. /* */ }
  1249. /* */
  1250. /* */ public static MaplePacket killMonster(int oid, boolean animation) {
  1251. /* 1661 */ return killMonster(oid, animation ? 1 : 0, false);
  1252. /* */ }
  1253. /* */
  1254. /* */ public static MaplePacket killMonster(int oid, int animation, boolean stupidversion)
  1255. /* */ {
  1256. /* 1672 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(8);
  1257. /* 1673 */ mplew.writeShort(SendPacketOpcode.KILL_MONSTER);
  1258. /* 1674 */ mplew.writeInt(oid);
  1259. /* 1675 */ mplew.write(animation);
  1260. /* 1676 */ mplew.write(animation);
  1261. /* 1677 */ if (stupidversion) {
  1262. /* 1678 */ mplew.write0(20);
  1263. /* */ }
  1264. /* 1680 */ return mplew.getPacket();
  1265. /* */ }
  1266. /* */
  1267. /* */ public static MaplePacket dropMesoFromMapObject(int amount, int itemoid, int dropperoid, int ownerid, Point dropfrom, Point dropto, byte mod, boolean allowPet)
  1268. /* */ {
  1269. /* 1697 */ return dropItemFromMapObjectInternal(amount, itemoid, dropperoid, ownerid, dropfrom, dropto, mod, true, allowPet, false);
  1270. /* */ }
  1271. /* */
  1272. /* */ public static MaplePacket dropItemFromMapObject(int itemid, int itemoid, int dropperoid, int ownerid, Point dropfrom, Point dropto, byte mod, boolean allowPet)
  1273. /* */ {
  1274. /* 1714 */ return dropItemFromMapObjectInternal(itemid, itemoid, dropperoid, ownerid, dropfrom, dropto, mod, false, allowPet, false);
  1275. /* */ }
  1276. /* */
  1277. /* */ public static MaplePacket dropItemFromMapObjectInternal(int itemid, int itemoid, int dropperoid, int ownerid, Point dropfrom, Point dropto, byte mod, boolean mesos, boolean allowPet, boolean explosive)
  1278. /* */ {
  1279. /* 1732 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1280. /* 1733 */ mplew.writeShort(SendPacketOpcode.DROP_ITEM_FROM_MAPOBJECT);
  1281. /* 1734 */ mplew.write(mod);
  1282. /* 1735 */ mplew.writeInt(itemoid);
  1283. /* 1736 */ mplew.write(mesos ? 1 : 0);
  1284. /* 1737 */ mplew.writeInt(itemid);
  1285. /* 1738 */ mplew.writeInt(ownerid);
  1286. /* 1739 */ mplew.write(explosive ? 3 : 0);
  1287. /* 1740 */ mplew.writeShort(dropto.x);
  1288. /* 1741 */ mplew.writeShort(dropto.y);
  1289. /* 1742 */ mplew.writeInt(ownerid);
  1290. /* 1743 */ if (mod != 2) {
  1291. /* 1744 */ mplew.writeShort(dropfrom.x);
  1292. /* 1745 */ mplew.writeShort(dropfrom.y);
  1293. /* 1746 */ mplew.writeShort(0);
  1294. /* */ }
  1295. /* 1748 */ if (!mesos) {
  1296. /* 1749 */ mplew.write(NON_EXPIRE);
  1297. /* */ }
  1298. /* 1751 */ mplew.write(allowPet ? 1 : 0);
  1299. /* 1752 */ mplew.write(0);
  1300. /* 1753 */ mplew.writeLong(0L);
  1301. /* 1754 */ return mplew.getPacket();
  1302. /* */ }
  1303. /* */
  1304. /* */ public static MaplePacket spawnPlayerMapobject(MapleCharacter chr) {
  1305. /* 1758 */ return spawnPlayerMapobject(chr, true);
  1306. /* */ }
  1307. /* */
  1308. /* */ public static MaplePacket spawnPlayerMapobject(MapleCharacter chr, boolean showGuild)
  1309. /* */ {
  1310. /* 1768 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1311. /* 1769 */ mplew.writeShort(SendPacketOpcode.SPAWN_PLAYER);
  1312. /* 1770 */ mplew.writeInt(chr.getId());
  1313. /* 1771 */ mplew.write(chr.getLevel());
  1314. /* 1772 */ mplew.writeMapleAsciiString(chr.getName());
  1315. /* 1773 */ if ((chr.getGuildId() < 1) || (!showGuild)) {
  1316. /* 1774 */ mplew.write0(8);
  1317. /* */ } else {
  1318. /* 1776 */ MapleGuildSummary gs = chr.getClient().getChannelServer().getGuildSummary(chr.getGuildId());
  1319. /* 1777 */ if (gs != null) {
  1320. /* 1778 */ mplew.writeMapleAsciiString(gs.getName());
  1321. /* 1779 */ mplew.writeShort(gs.getLogoBG());
  1322. /* 1780 */ mplew.write(gs.getLogoBGColor());
  1323. /* 1781 */ mplew.writeShort(gs.getLogo());
  1324. /* 1782 */ mplew.write(gs.getLogoColor());
  1325. /* */ } else {
  1326. /* 1784 */ mplew.write0(8);
  1327. /* */ }
  1328. /* */ }
  1329. /* 1787 */ mplew.write0(2);
  1330. /* 1788 */ mplew.write(248);
  1331. /* 1789 */ mplew.write(3);
  1332. /* 1790 */ mplew.writeInt(0);
  1333. /* 1791 */ long buffmask = 0L;
  1334. /* 1792 */ Integer buffvalue = null;
  1335. /* 1793 */ if ((chr.getBuffedValue(MapleBuffStat.DARKSIGHT) != null) || (chr.isHidden())) {
  1336. /* 1794 */ buffmask |= MapleBuffStat.DARKSIGHT.getValue();
  1337. /* */ }
  1338. /* 1796 */ if (chr.getBuffedValue(MapleBuffStat.COMBO) != null) {
  1339. /* 1797 */ buffmask |= MapleBuffStat.COMBO.getValue();
  1340. /* 1798 */ buffvalue = Integer.valueOf(chr.getBuffedValue(MapleBuffStat.COMBO).intValue());
  1341. /* */ }
  1342. /* 1800 */ if (chr.getBuffedValue(MapleBuffStat.SHADOWPARTNER) != null) {
  1343. /* 1801 */ buffmask |= MapleBuffStat.SHADOWPARTNER.getValue();
  1344. /* */ }
  1345. /* 1803 */ if (chr.getBuffedValue(MapleBuffStat.ENERGY_CHARGE) != null) {
  1346. /* 1804 */ buffmask |= MapleBuffStat.ENERGY_CHARGE.getValue();
  1347. /* */ }
  1348. /* 1806 */ if (chr.getBuffedValue(MapleBuffStat.MORPH) != null) {
  1349. /* 1807 */ buffvalue = Integer.valueOf(chr.getBuffedValue(MapleBuffStat.MORPH).intValue());
  1350. /* 1808 */ mplew.writeInt(2);
  1351. /* */ } else {
  1352. /* 1810 */ mplew.writeInt(0);
  1353. /* */ }
  1354. /* 1812 */ mplew.writeInt((int)(buffmask >> 32 & 0xFFFFFFFF));
  1355. /* 1813 */ if (buffvalue != null) {
  1356. /* 1814 */ if (chr.getBuffedValue(MapleBuffStat.MORPH) != null)
  1357. /* 1815 */ mplew.writeShort(buffvalue.intValue());
  1358. /* */ else {
  1359. /* 1817 */ mplew.write(buffvalue.byteValue());
  1360. /* */ }
  1361. /* */ }
  1362. /* 1820 */ mplew.writeInt((int)(buffmask & 0xFFFFFFFF));
  1363. /* 1821 */ int CHAR_MAGIC_SPAWN = Randomizer.getInstance().nextInt();
  1364. /* 1822 */ mplew.write0(6);
  1365. /* 1823 */ mplew.writeInt(CHAR_MAGIC_SPAWN);
  1366. /* 1824 */ mplew.write0(11);
  1367. /* 1825 */ mplew.writeInt(CHAR_MAGIC_SPAWN);
  1368. /* 1826 */ mplew.write0(11);
  1369. /* 1827 */ mplew.writeInt(CHAR_MAGIC_SPAWN);
  1370. /* 1828 */ mplew.write0(3);
  1371. /* 1829 */ IItem mount = chr.getInventory(MapleInventoryType.EQUIPPED).getItem(-18);
  1372. /* 1830 */ if ((chr.getBuffedValue(MapleBuffStat.MONSTER_RIDING) != null) && (mount != null)) {
  1373. /* 1831 */ mplew.writeInt(mount.getItemId());
  1374. /* 1832 */ mplew.writeInt(1004);
  1375. /* */ } else {
  1376. /* 1834 */ mplew.writeLong(0L);
  1377. /* */ }
  1378. /* 1836 */ mplew.writeInt(CHAR_MAGIC_SPAWN);
  1379. /* 1837 */ mplew.write0(9);
  1380. /* 1838 */ mplew.writeInt(CHAR_MAGIC_SPAWN);
  1381. /* 1839 */ mplew.writeShort(0);
  1382. /* 1840 */ mplew.writeInt(0);
  1383. /* 1841 */ mplew.write0(10);
  1384. /* 1842 */ mplew.writeInt(CHAR_MAGIC_SPAWN);
  1385. /* 1843 */ mplew.write0(13);
  1386. /* 1844 */ mplew.writeInt(CHAR_MAGIC_SPAWN);
  1387. /* 1845 */ mplew.write0(3);
  1388. /* 1846 */ mplew.writeShort(chr.getJob().getId());
  1389. /* 1847 */ addCharLook(mplew, chr, true, false);
  1390. /* 1848 */ mplew.write0(12);
  1391. /* 1849 */ mplew.writeInt(0);
  1392. /* 1850 */ mplew.writeInt(chr.getItemEffect());
  1393. /* 1851 */ mplew.writeInt(chr.getChair());
  1394. /* 1852 */ mplew.writeShort(chr.getPosition().x);
  1395. /* 1853 */ mplew.writeShort(chr.getPosition().y);
  1396. /* 1854 */ mplew.write(chr.getStance());
  1397. /* 1855 */ mplew.writeInt(0);
  1398. /* 1856 */ if (chr.getMount() == null) {
  1399. /* 1857 */ mplew.writeInt(1);
  1400. /* 1858 */ mplew.write0(8);
  1401. /* */ } else {
  1402. /* 1860 */ mplew.writeInt(chr.getMount().getLevel());
  1403. /* 1861 */ mplew.writeInt(chr.getMount().getExp());
  1404. /* 1862 */ mplew.writeInt(chr.getMount().getTiredness());
  1405. /* */ }
  1406. /* 1864 */ mplew.write(0);
  1407. /* 1865 */ if (chr.getChalkboard() != null) {
  1408. /* 1866 */ mplew.write(1);
  1409. /* 1867 */ mplew.writeMapleAsciiString(chr.getChalkboard());
  1410. /* */ } else {
  1411. /* 1869 */ mplew.write(0);
  1412. /* */ }
  1413. /* 1871 */ addRingLook(mplew, chr, true);
  1414. /* 1872 */ addRingLook(mplew, chr, false);
  1415. /* 1873 */ addMarriageRingLook(mplew, chr);
  1416. /* 1874 */ mplew.write0(2);
  1417. /* 1875 */ return mplew.getPacket();
  1418. /* */ }
  1419. /* */
  1420. /* */ public static MaplePacket playerGuildName(MapleCharacter chr) {
  1421. /* 1879 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1422. /* 1880 */ mplew.writeShort(SendPacketOpcode.CHAR_GUILD_NAME);
  1423. /* 1881 */ mplew.writeInt(chr.getId());
  1424. /* 1882 */ MapleGuildSummary gs = chr.getClient().getChannelServer().getGuildSummary(chr.getGuildId());
  1425. /* 1883 */ mplew.writeMapleAsciiString(gs != null ? gs.getName() : "");
  1426. /* 1884 */ return mplew.getPacket();
  1427. /* */ }
  1428. /* */
  1429. /* */ public static MaplePacket playerGuildInfo(MapleCharacter chr) {
  1430. /* 1888 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1431. /* 1889 */ mplew.writeShort(SendPacketOpcode.CHAR_GUILD_INFO);
  1432. /* 1890 */ mplew.writeInt(chr.getId());
  1433. /* 1891 */ MapleGuildSummary gs = chr.getClient().getChannelServer().getGuildSummary(chr.getGuildId());
  1434. /* 1892 */ if (gs == null) {
  1435. /* 1893 */ mplew.write0(6);
  1436. /* */ } else {
  1437. /* 1895 */ mplew.writeShort(gs.getLogoBG());
  1438. /* 1896 */ mplew.write(gs.getLogoBGColor());
  1439. /* 1897 */ mplew.writeShort(gs.getLogo());
  1440. /* 1898 */ mplew.write(gs.getLogoColor());
  1441. /* */ }
  1442. /* 1900 */ return mplew.getPacket();
  1443. /* */ }
  1444. /* */
  1445. /* */ private static void addRingLook(MaplePacketLittleEndianWriter mplew, MapleCharacter chr, boolean crush)
  1446. /* */ {
  1447. /* */ List rings;
  1448. /* */ List rings;
  1449. /* 1905 */ if (crush)
  1450. /* 1906 */ rings = chr.getCrushRings();
  1451. /* */ else {
  1452. /* 1908 */ rings = chr.getFriendshipRings();
  1453. /* */ }
  1454. /* 1910 */ mplew.write(rings.size() > 0 ? 1 : 0);
  1455. /* 1911 */ for (MapleRing ring : rings) {
  1456. /* 1912 */ mplew.writeInt(ring.getRingId());
  1457. /* 1913 */ mplew.writeInt(0);
  1458. /* 1914 */ mplew.writeInt(ring.getCoupleRingId());
  1459. /* 1915 */ mplew.writeInt(0);
  1460. /* 1916 */ mplew.writeInt(ring.getItemId());
  1461. /* */ }
  1462. /* */ }
  1463. /* */
  1464. /* */ private static void addMarriageRingLook(MaplePacketLittleEndianWriter mplew, MapleCharacter chr) {
  1465. /* 1921 */ mplew.write(chr.getMarriageRing() != null ? 1 : 0);
  1466. /* 1922 */ if (chr.getMarriageRing() != null) {
  1467. /* 1923 */ mplew.writeInt(chr.getId());
  1468. /* 1924 */ mplew.writeInt(chr.getMarriageRing().getCoupleId());
  1469. /* 1925 */ mplew.writeInt(chr.getMarriageRing().getRingId());
  1470. /* */ }
  1471. /* */ }
  1472. /* */
  1473. /* */ private static void addAnnounceBox(MaplePacketLittleEndianWriter mplew, MaplePlayerShop shop, int availability)
  1474. /* */ {
  1475. /* 1936 */ mplew.write(4);
  1476. /* 1937 */ mplew.writeInt(shop.getObjectId());
  1477. /* 1938 */ mplew.writeMapleAsciiString(shop.getDescription());
  1478. /* 1939 */ mplew.write(0);
  1479. /* 1940 */ mplew.write(0);
  1480. /* 1941 */ mplew.write(1);
  1481. /* 1942 */ mplew.write(availability);
  1482. /* 1943 */ mplew.write(0);
  1483. /* */ }
  1484. /* */
  1485. /* */ private static void addAnnounceBox(MaplePacketLittleEndianWriter mplew, MapleMiniGame game, int gametype, int type, int ammount, int joinable) {
  1486. /* 1947 */ mplew.write(gametype);
  1487. /* 1948 */ mplew.writeInt(game.getObjectId());
  1488. /* 1949 */ mplew.writeMapleAsciiString(game.getDescription());
  1489. /* 1950 */ mplew.write(0);
  1490. /* 1951 */ mplew.write(type);
  1491. /* 1952 */ mplew.write(ammount);
  1492. /* 1953 */ mplew.write(2);
  1493. /* 1954 */ mplew.write(joinable);
  1494. /* */ }
  1495. /* */
  1496. /* */ public static MaplePacket facialExpression(MapleCharacter from, int expression) {
  1497. /* 1958 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1498. /* 1959 */ mplew.writeShort(SendPacketOpcode.FACIAL_EXPRESSION);
  1499. /* 1960 */ mplew.writeInt(from.getId());
  1500. /* 1961 */ mplew.writeInt(expression);
  1501. /* 1962 */ mplew.writeInt(-1);
  1502. /* 1963 */ mplew.write(0);
  1503. /* 1964 */ return mplew.getPacket();
  1504. /* */ }
  1505. /* */
  1506. /* */ private static void serializeMovementList(LittleEndianWriter lew, List<LifeMovementFragment> moves) {
  1507. /* 1968 */ lew.write(moves.size());
  1508. /* 1969 */ for (LifeMovementFragment move : moves)
  1509. /* 1970 */ move.serialize(lew);
  1510. /* */ }
  1511. /* */
  1512. /* */ public static MaplePacket movePlayer(int cid, List<LifeMovementFragment> moves)
  1513. /* */ {
  1514. /* 1975 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1515. /* 1976 */ mplew.writeShort(SendPacketOpcode.MOVE_PLAYER);
  1516. /* 1977 */ mplew.writeInt(cid);
  1517. /* 1978 */ mplew.writeInt(0);
  1518. /* 1979 */ mplew.writeInt(0);
  1519. /* 1980 */ serializeMovementList(mplew, moves);
  1520. /* 1981 */ return mplew.getPacket();
  1521. /* */ }
  1522. /* */
  1523. /* */ public static MaplePacket moveSummon(int cid, int oid, Point startPos, List<LifeMovementFragment> moves) {
  1524. /* 1985 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1525. /* 1986 */ mplew.writeShort(SendPacketOpcode.MOVE_SUMMON);
  1526. /* 1987 */ mplew.writeInt(cid);
  1527. /* 1988 */ mplew.writeInt(oid);
  1528. /* 1989 */ mplew.writeShort(startPos.x);
  1529. /* 1990 */ mplew.writeShort(startPos.y);
  1530. /* 1991 */ mplew.writeInt(0);
  1531. /* 1992 */ serializeMovementList(mplew, moves);
  1532. /* 1993 */ return mplew.getPacket();
  1533. /* */ }
  1534. /* */
  1535. /* */ public static MaplePacket moveMonster(byte useskill, byte skill, int skill_1, byte skill_2, byte skill_3, byte skill_4, int oid, Point startPos, List<LifeMovementFragment> moves) {
  1536. /* 1997 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1537. /* 1998 */ mplew.writeShort(SendPacketOpcode.MOVE_MONSTER);
  1538. /* 1999 */ mplew.writeInt(oid);
  1539. /* 2000 */ mplew.write(0);
  1540. /* 2001 */ mplew.write(0);
  1541. /* 2002 */ mplew.write(useskill);
  1542. /* 2003 */ mplew.write(skill);
  1543. /* 2004 */ mplew.write(skill_1);
  1544. /* 2005 */ mplew.write(skill_2);
  1545. /* 2006 */ mplew.write(skill_3);
  1546. /* 2007 */ mplew.write(skill_4);
  1547. /* 2008 */ mplew.writeLong(0L);
  1548. /* 2009 */ mplew.writeShort(startPos.x);
  1549. /* 2010 */ mplew.writeShort(startPos.y);
  1550. /* 2011 */ mplew.writeInt(0);
  1551. /* 2012 */ serializeMovementList(mplew, moves);
  1552. /* 2013 */ return mplew.getPacket();
  1553. /* */ }
  1554. /* */
  1555. /* */ public static MaplePacket summonAttack(int cid, int summonSkillId, int newStance, List<SummonDamageHandler.SummonAttackEntry> allDamage, byte animation) {
  1556. /* 2017 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1557. /* 2018 */ mplew.writeShort(SendPacketOpcode.SUMMON_ATTACK);
  1558. /* 2019 */ mplew.writeInt(cid);
  1559. /* 2020 */ mplew.writeInt(summonSkillId);
  1560. /* 2021 */ mplew.write(animation);
  1561. /* 2022 */ mplew.write(newStance);
  1562. /* 2023 */ mplew.write(allDamage.size());
  1563. /* 2024 */ for (SummonDamageHandler.SummonAttackEntry attackEntry : allDamage) {
  1564. /* 2025 */ mplew.writeInt(attackEntry.getMonsterOid());
  1565. /* 2026 */ mplew.write(7);
  1566. /* 2027 */ mplew.writeInt(attackEntry.getDamage());
  1567. /* */ }
  1568. /* 2029 */ return mplew.getPacket();
  1569. /* */ }
  1570. /* */
  1571. /* */ public static MaplePacket closeRangeAttack(AbstractDealDamageHandler.AttackInfo ai, int cid, List<Pair<Integer, List<Integer>>> damage) {
  1572. /* 2033 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1573. /* 2034 */ mplew.writeShort(SendPacketOpcode.CLOSE_RANGE_ATTACK);
  1574. /* 2035 */ addAttackBody(mplew, ai, cid, 0, damage, true);
  1575. /* 2036 */ return mplew.getPacket();
  1576. /* */ }
  1577. /* */
  1578. /* */ public static MaplePacket rangedAttack(AbstractDealDamageHandler.AttackInfo ai, int cid, int projectile, List<Pair<Integer, List<Integer>>> damage, boolean hurricane) {
  1579. /* 2040 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1580. /* 2041 */ mplew.writeShort(SendPacketOpcode.RANGED_ATTACK);
  1581. /* 2042 */ addAttackBody(mplew, ai, cid, projectile, damage, hurricane);
  1582. /* 2043 */ mplew.writeInt(0);
  1583. /* 2044 */ return mplew.getPacket();
  1584. /* */ }
  1585. /* */
  1586. /* */ public static MaplePacket magicAttack(AbstractDealDamageHandler.AttackInfo ai, int cid, List<Pair<Integer, List<Integer>>> damage, int charge) {
  1587. /* 2048 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1588. /* 2049 */ mplew.writeShort(SendPacketOpcode.MAGIC_ATTACK);
  1589. /* 2050 */ addAttackBody(mplew, ai, cid, 0, damage, true);
  1590. /* 2051 */ if (charge != -1) {
  1591. /* 2052 */ mplew.writeInt(charge);
  1592. /* */ }
  1593. /* 2054 */ mplew.writeLong(0L);
  1594. /* 2055 */ return mplew.getPacket();
  1595. /* */ }
  1596. /* */
  1597. /* */ private static void addAttackBody(LittleEndianWriter lew, AbstractDealDamageHandler.AttackInfo ai, int cid, int projectile, List<Pair<Integer, List<Integer>>> damage, boolean stance) {
  1598. /* 2059 */ lew.writeInt(cid);
  1599. /* 2060 */ lew.write(ai.numAttackedAndDamage);
  1600. /* 2061 */ lew.write(91);
  1601. /* 2062 */ if (ai.skill > 0) {
  1602. /* 2063 */ lew.write(255);
  1603. /* 2064 */ lew.writeInt(ai.skill);
  1604. /* */ } else {
  1605. /* 2066 */ lew.write(0);
  1606. /* */ }
  1607. /* 2068 */ lew.write(ai.display);
  1608. /* 2069 */ lew.write(ai.v80thing);
  1609. /* 2070 */ lew.write(ai.stance);
  1610. /* 2071 */ lew.write(ai.speed);
  1611. /* 2072 */ lew.write(10);
  1612. /* 2073 */ lew.writeInt(projectile);
  1613. /* 2074 */ for (Pair oned : damage)
  1614. /* 2075 */ if (oned.getRight() != null) {
  1615. /* 2076 */ lew.writeInt(((Integer)oned.getLeft()).intValue());
  1616. /* 2077 */ lew.write(6);
  1617. /* 2078 */ if (ai.skill == 4211006) {
  1618. /* 2079 */ lew.write(((List)oned.getRight()).size());
  1619. /* */ }
  1620. /* 2081 */ for (Iterator i$ = ((List)oned.getRight()).iterator(); i$.hasNext(); ) { int eachd = ((Integer)i$.next()).intValue();
  1621. /* 2082 */ lew.writeInt(eachd);
  1622. /* */ }
  1623. /* 2084 */ if (ai.skill == 22181001)
  1624. /* 2085 */ lew.write(((List)oned.getRight()).size());
  1625. /* */ }
  1626. /* */ }
  1627. /* */
  1628. /* */ private static int doubleToShortBits(double d)
  1629. /* */ {
  1630. /* 2092 */ return (int)(Double.doubleToLongBits(d) >> 48);
  1631. /* */ }
  1632. /* */
  1633. /* */ public static MaplePacket getNPCShop(MapleClient c, int sid, List<MapleShopItem> items, boolean pitches) {
  1634. /* 2096 */ MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
  1635. /* 2097 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1636. /* 2098 */ mplew.writeShort(SendPacketOpcode.OPEN_NPC_SHOP);
  1637. /* 2099 */ mplew.writeInt(sid);
  1638. /* 2100 */ mplew.writeShort(items.size());
  1639. /* 2101 */ for (MapleShopItem item : items) {
  1640. /* 2102 */ mplew.writeInt(item.getItemId());
  1641. /* 2103 */ mplew.writeInt(pitches ? 0 : item.getPrice());
  1642. /* 2104 */ mplew.writeInt(pitches ? item.getPrice() : 0);
  1643. /* 2105 */ mplew.write0(8);
  1644. /* 2106 */ mplew.writeInt(0);
  1645. /* 2107 */ mplew.write(0);
  1646. /* 2108 */ if (!InventoryConstants.isRechargable(item.getItemId())) {
  1647. /* 2109 */ mplew.writeShort(item.getQuantity());
  1648. /* 2110 */ mplew.writeShort(ii.getSlotMax(c, item.getItemId()));
  1649. /* */ } else {
  1650. /* 2112 */ mplew.writeShort(0);
  1651. /* 2113 */ mplew.writeInt(0);
  1652. /* 2114 */ mplew.writeShort(doubleToShortBits(ii.getPrice(item.getItemId())));
  1653. /* 2115 */ mplew.writeShort(ii.getSlotMax(c, item.getItemId()));
  1654. /* */ }
  1655. /* */ }
  1656. /* 2118 */ return mplew.getPacket();
  1657. /* */ }
  1658. /* */
  1659. /* */ public static MaplePacket confirmShopTransaction(byte code) {
  1660. /* 2122 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1661. /* 2123 */ mplew.writeShort(SendPacketOpcode.CONFIRM_SHOP_TRANSACTION);
  1662. /* 2124 */ mplew.write(code);
  1663. /* 2125 */ return mplew.getPacket();
  1664. /* */ }
  1665. /* */
  1666. /* */ public static MaplePacket addInventorySlot(MapleInventoryType type, IItem item) {
  1667. /* 2129 */ return addInventorySlot(type, item, false);
  1668. /* */ }
  1669. /* */
  1670. /* */ public static MaplePacket addInventorySlot(MapleInventoryType type, IItem item, boolean fromDrop) {
  1671. /* 2133 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1672. /* 2134 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  1673. /* 2135 */ if (fromDrop)
  1674. /* 2136 */ mplew.write(1);
  1675. /* */ else {
  1676. /* 2138 */ mplew.write(0);
  1677. /* */ }
  1678. /* 2140 */ mplew.writeShort(1);
  1679. /* 2141 */ mplew.write(type.getType());
  1680. /* 2142 */ mplew.write(item.getPosition());
  1681. /* 2143 */ addItemInfo(mplew, item, true, false);
  1682. /* 2144 */ return mplew.getPacket();
  1683. /* */ }
  1684. /* */
  1685. /* */ public static MaplePacket updateInventorySlot(MapleInventoryType type, IItem item) {
  1686. /* 2148 */ return updateInventorySlot(type, item, false);
  1687. /* */ }
  1688. /* */
  1689. /* */ public static MaplePacket updateInventorySlot(MapleInventoryType type, IItem item, boolean fromDrop) {
  1690. /* 2152 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1691. /* 2153 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  1692. /* 2154 */ if (fromDrop)
  1693. /* 2155 */ mplew.write(1);
  1694. /* */ else {
  1695. /* 2157 */ mplew.write(0);
  1696. /* */ }
  1697. /* 2159 */ mplew.write(1);
  1698. /* 2160 */ mplew.write(1);
  1699. /* 2161 */ mplew.write(type.getType());
  1700. /* 2162 */ mplew.writeShort(item.getPosition());
  1701. /* 2163 */ mplew.writeShort(item.getQuantity());
  1702. /* 2164 */ return mplew.getPacket();
  1703. /* */ }
  1704. /* */
  1705. /* */ public static MaplePacket moveInventoryItem(MapleInventoryType type, byte src, byte dst) {
  1706. /* 2168 */ return moveInventoryItem(type, src, dst, -1);
  1707. /* */ }
  1708. /* */
  1709. /* */ public static MaplePacket moveInventoryItem(MapleInventoryType type, byte src, byte dst, byte equipIndicator) {
  1710. /* 2172 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1711. /* 2173 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  1712. /* 2174 */ mplew.write(1);
  1713. /* 2175 */ mplew.write(1);
  1714. /* 2176 */ mplew.write(2);
  1715. /* 2177 */ mplew.write(type.getType());
  1716. /* 2178 */ mplew.writeShort(src);
  1717. /* 2179 */ mplew.writeShort(dst);
  1718. /* 2180 */ if (equipIndicator != -1) {
  1719. /* 2181 */ mplew.write(equipIndicator);
  1720. /* */ }
  1721. /* 2183 */ return mplew.getPacket();
  1722. /* */ }
  1723. /* */
  1724. /* */ public static MaplePacket moveAndMergeInventoryItem(MapleInventoryType type, byte src, byte dst, short total) {
  1725. /* 2187 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1726. /* 2188 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  1727. /* 2189 */ mplew.write(1);
  1728. /* 2190 */ mplew.write(2);
  1729. /* 2191 */ mplew.write(3);
  1730. /* 2192 */ mplew.write(type.getType());
  1731. /* 2193 */ mplew.writeShort(src);
  1732. /* 2194 */ mplew.write(1);
  1733. /* 2195 */ mplew.write(type.getType());
  1734. /* 2196 */ mplew.writeShort(dst);
  1735. /* 2197 */ mplew.writeShort(total);
  1736. /* 2198 */ return mplew.getPacket();
  1737. /* */ }
  1738. /* */
  1739. /* */ public static MaplePacket moveAndMergeWithRestInventoryItem(MapleInventoryType type, byte src, byte dst, short srcQ, short dstQ) {
  1740. /* 2202 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1741. /* 2203 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  1742. /* 2204 */ mplew.write(1);
  1743. /* 2205 */ mplew.write(2);
  1744. /* 2206 */ mplew.write(1);
  1745. /* 2207 */ mplew.write(type.getType());
  1746. /* 2208 */ mplew.writeShort(src);
  1747. /* 2209 */ mplew.writeShort(srcQ);
  1748. /* 2210 */ mplew.write(1);
  1749. /* 2211 */ mplew.write(type.getType());
  1750. /* 2212 */ mplew.writeShort(dst);
  1751. /* 2213 */ mplew.writeShort(dstQ);
  1752. /* 2214 */ return mplew.getPacket();
  1753. /* */ }
  1754. /* */
  1755. /* */ public static MaplePacket clearInventoryItem(MapleInventoryType type, byte slot, boolean fromDrop) {
  1756. /* 2218 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1757. /* 2219 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  1758. /* 2220 */ mplew.write(fromDrop ? 1 : 0);
  1759. /* 2221 */ mplew.write(1);
  1760. /* 2222 */ mplew.write(3);
  1761. /* 2223 */ mplew.write(type.getType());
  1762. /* 2224 */ mplew.writeShort(slot);
  1763. /* 2225 */ return mplew.getPacket();
  1764. /* */ }
  1765. /* */
  1766. /* */ public static MaplePacket scrolledItem(IItem scroll, IItem item, boolean destroyed, boolean potential) {
  1767. /* 2229 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1768. /* 2230 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  1769. /* 2231 */ mplew.write(1);
  1770. /* 2232 */ mplew.write(destroyed ? 2 : 3);
  1771. /* 2233 */ mplew.write((scroll.getQuantity() > 0) && (!potential) ? 1 : 3);
  1772. /* 2234 */ mplew.write(MapleInventoryType.USE.getType());
  1773. /* 2235 */ mplew.writeShort(scroll.getPosition());
  1774. /* 2236 */ if ((scroll.getQuantity() > 0) && (!potential)) {
  1775. /* 2237 */ mplew.writeShort(scroll.getQuantity());
  1776. /* */ }
  1777. /* 2239 */ mplew.write(3);
  1778. /* 2240 */ if (!destroyed) {
  1779. /* 2241 */ mplew.write(MapleInventoryType.EQUIP.getType());
  1780. /* 2242 */ mplew.writeShort(item.getPosition());
  1781. /* 2243 */ mplew.write(0);
  1782. /* */ }
  1783. /* 2245 */ mplew.write(MapleInventoryType.EQUIP.getType());
  1784. /* 2246 */ mplew.writeShort(item.getPosition());
  1785. /* 2247 */ if (!destroyed) {
  1786. /* 2248 */ addItemInfo(mplew, item, true, true);
  1787. /* */ }
  1788. /* 2250 */ mplew.write(potential ? 2 : 1);
  1789. /* 2251 */ return mplew.getPacket();
  1790. /* */ }
  1791. /* */
  1792. /* */ public static MaplePacket getScrollEffect(int chr, IEquip.ScrollResult scrollSuccess, boolean legendarySpirit) {
  1793. /* 2255 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1794. /* 2256 */ mplew.writeShort(SendPacketOpcode.SHOW_SCROLL_EFFECT);
  1795. /* 2257 */ mplew.writeInt(chr);
  1796. /* 2258 */ switch (2.$SwitchMap$client$IEquip$ScrollResult[scrollSuccess.ordinal()]) {
  1797. /* */ case 1:
  1798. /* 2260 */ mplew.writeShort(1);
  1799. /* 2261 */ mplew.writeShort(legendarySpirit ? 1 : 0);
  1800. /* 2262 */ break;
  1801. /* */ case 2:
  1802. /* 2264 */ mplew.writeShort(0);
  1803. /* 2265 */ mplew.writeShort(legendarySpirit ? 1 : 0);
  1804. /* 2266 */ break;
  1805. /* */ case 3:
  1806. /* 2268 */ mplew.write(0);
  1807. /* 2269 */ mplew.write(1);
  1808. /* 2270 */ mplew.writeShort(legendarySpirit ? 1 : 0);
  1809. /* */ }
  1810. /* */
  1811. /* 2273 */ return mplew.getPacket();
  1812. /* */ }
  1813. /* */
  1814. /* */ public static MaplePacket removePlayerFromMap(int cid) {
  1815. /* 2277 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1816. /* 2278 */ mplew.writeShort(SendPacketOpcode.REMOVE_PLAYER_FROM_MAP);
  1817. /* 2279 */ mplew.writeInt(cid);
  1818. /* 2280 */ return mplew.getPacket();
  1819. /* */ }
  1820. /* */
  1821. /* */ public static MaplePacket removeItemFromMap(int oid, int animation, int cid)
  1822. /* */ {
  1823. /* 2293 */ return removeItemFromMap(oid, animation, cid, false, 0);
  1824. /* */ }
  1825. /* */
  1826. /* */ public static MaplePacket removeItemFromMap(int oid, int animation, int cid, boolean pet, int slot)
  1827. /* */ {
  1828. /* 2309 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1829. /* 2310 */ mplew.writeShort(SendPacketOpcode.REMOVE_ITEM_FROM_MAP);
  1830. /* 2311 */ mplew.write(animation);
  1831. /* 2312 */ mplew.writeInt(oid);
  1832. /* 2313 */ if (animation >= 2) {
  1833. /* 2314 */ mplew.writeInt(cid);
  1834. /* 2315 */ if (pet) {
  1835. /* 2316 */ mplew.write(slot);
  1836. /* */ }
  1837. /* 2318 */ mplew.writeLong(0L);
  1838. /* */ }
  1839. /* 2320 */ return mplew.getPacket();
  1840. /* */ }
  1841. /* */
  1842. /* */ public static MaplePacket updateCharLook(MapleCharacter chr) {
  1843. /* 2324 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1844. /* 2325 */ mplew.writeShort(SendPacketOpcode.UPDATE_CHAR_LOOK);
  1845. /* 2326 */ mplew.writeInt(chr.getId());
  1846. /* 2327 */ mplew.write(1);
  1847. /* 2328 */ addCharLook(mplew, chr, false, false);
  1848. /* 2329 */ addRingLook(mplew, chr, true);
  1849. /* 2330 */ addRingLook(mplew, chr, false);
  1850. /* 2331 */ addMarriageRingLook(mplew, chr);
  1851. /* 2332 */ mplew.write0(4);
  1852. /* 2333 */ return mplew.getPacket();
  1853. /* */ }
  1854. /* */
  1855. /* */ public static MaplePacket dropInventoryItem(MapleInventoryType type, short src) {
  1856. /* 2337 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1857. /* 2338 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  1858. /* 2339 */ mplew.write(1);
  1859. /* 2340 */ mplew.write(1);
  1860. /* 2341 */ mplew.write(3);
  1861. /* 2342 */ mplew.write(type.getType());
  1862. /* 2343 */ mplew.writeShort(src);
  1863. /* 2344 */ if (src < 0) {
  1864. /* 2345 */ mplew.write(1);
  1865. /* */ }
  1866. /* 2347 */ return mplew.getPacket();
  1867. /* */ }
  1868. /* */
  1869. /* */ public static MaplePacket dropInventoryItemUpdate(MapleInventoryType type, IItem item) {
  1870. /* 2351 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1871. /* 2352 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  1872. /* 2353 */ mplew.write(1);
  1873. /* 2354 */ mplew.write(1);
  1874. /* 2355 */ mplew.write(1);
  1875. /* 2356 */ mplew.write(type.getType());
  1876. /* 2357 */ mplew.writeShort(item.getPosition());
  1877. /* 2358 */ mplew.writeShort(item.getQuantity());
  1878. /* 2359 */ return mplew.getPacket();
  1879. /* */ }
  1880. /* */
  1881. /* */ public static MaplePacket damagePlayer(int skill, int monsteridfrom, int cid, int damage, int fake, int direction, boolean pgmr, int pgmr_1, boolean is_pg, int oid, int pos_x, int pos_y) {
  1882. /* 2363 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1883. /* 2364 */ mplew.writeShort(SendPacketOpcode.DAMAGE_PLAYER);
  1884. /* 2365 */ mplew.writeInt(cid);
  1885. /* 2366 */ mplew.write(skill);
  1886. /* 2367 */ mplew.writeInt(damage);
  1887. /* 2368 */ mplew.writeInt(monsteridfrom);
  1888. /* 2369 */ mplew.write(direction);
  1889. /* 2370 */ if (pgmr) {
  1890. /* 2371 */ mplew.write(pgmr_1);
  1891. /* 2372 */ mplew.write(is_pg ? 1 : 0);
  1892. /* 2373 */ mplew.writeInt(oid);
  1893. /* 2374 */ mplew.write(6);
  1894. /* 2375 */ mplew.writeShort(pos_x);
  1895. /* 2376 */ mplew.writeShort(pos_y);
  1896. /* 2377 */ mplew.write(0);
  1897. /* */ } else {
  1898. /* 2379 */ mplew.writeShort(0);
  1899. /* */ }
  1900. /* 2381 */ mplew.writeInt(damage);
  1901. /* 2382 */ if (fake > 0) {
  1902. /* 2383 */ mplew.writeInt(fake);
  1903. /* */ }
  1904. /* 2385 */ return mplew.getPacket();
  1905. /* */ }
  1906. /* */
  1907. /* */ public static MaplePacket charNameResponse(String charname, boolean nameUsed) {
  1908. /* 2389 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1909. /* 2390 */ mplew.writeShort(SendPacketOpcode.CHAR_NAME_RESPONSE);
  1910. /* 2391 */ mplew.writeMapleAsciiString(charname);
  1911. /* 2392 */ mplew.write(nameUsed ? 1 : 0);
  1912. /* 2393 */ return mplew.getPacket();
  1913. /* */ }
  1914. /* */
  1915. /* */ public static MaplePacket addNewCharEntry(MapleCharacter chr) {
  1916. /* 2397 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1917. /* 2398 */ mplew.writeShort(SendPacketOpcode.ADD_NEW_CHAR_ENTRY);
  1918. /* 2399 */ mplew.write(0);
  1919. /* 2400 */ addCharEntry(mplew, chr, false);
  1920. /* 2401 */ return mplew.getPacket();
  1921. /* */ }
  1922. /* */
  1923. /* */ public static MaplePacket startQuest(MapleCharacter c, short quest)
  1924. /* */ {
  1925. /* 2411 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(16);
  1926. /* 2412 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  1927. /* 2413 */ mplew.write(1);
  1928. /* 2414 */ mplew.writeShort(quest);
  1929. /* 2415 */ mplew.write(1);
  1930. /* 2416 */ mplew.writeInt(0);
  1931. /* 2417 */ mplew.writeInt(0);
  1932. /* 2418 */ mplew.writeShort(0);
  1933. /* 2419 */ return mplew.getPacket();
  1934. /* */ }
  1935. /* */
  1936. /* */ public static MaplePacket deleteCharResponse(int cid, byte state)
  1937. /* */ {
  1938. /* 2430 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  1939. /* 2431 */ mplew.writeShort(SendPacketOpcode.DELETE_CHAR_RESPONSE);
  1940. /* 2432 */ mplew.writeInt(cid);
  1941. /* 2433 */ mplew.write(state);
  1942. /* 2434 */ return mplew.getPacket();
  1943. /* */ }
  1944. /* */
  1945. /* */ public static MaplePacket charInfo(MapleCharacter chr)
  1946. /* */ {
  1947. /* 2444 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  1948. /* 2445 */ mplew.writeShort(SendPacketOpcode.CHAR_INFO);
  1949. /* 2446 */ mplew.writeInt(chr.getId());
  1950. /* 2447 */ mplew.write(chr.getLevel());
  1951. /* 2448 */ mplew.writeShort(chr.getJob().getId());
  1952. /* 2449 */ mplew.writeShort(chr.getFame());
  1953. /* 2450 */ mplew.write(chr.getMarriageRing() != null ? 0 : chr.getMarriageRing().getStatus() == 3 ? 1 : 0);
  1954. /* 2451 */ String guildName = "";
  1955. /* 2452 */ String allianceName = "";
  1956. /* 2453 */ MapleGuildSummary gs = chr.getClient().getChannelServer().getGuildSummary(chr.getGuildId());
  1957. /* 2454 */ if ((chr.getGuildId() > 0) && (gs != null)) {
  1958. /* 2455 */ guildName = gs.getName();
  1959. /* */ try {
  1960. /* 2457 */ MapleAlliance alliance = chr.getClient().getChannelServer().getWorldInterface().getAlliance(gs.getAllianceId());
  1961. /* 2458 */ if (alliance != null)
  1962. /* 2459 */ allianceName = alliance.getName();
  1963. /* */ }
  1964. /* */ catch (RemoteException re) {
  1965. /* 2462 */ re.printStackTrace();
  1966. /* 2463 */ chr.getClient().getChannelServer().reconnectWorld();
  1967. /* */ }
  1968. /* */ }
  1969. /* 2466 */ mplew.writeMapleAsciiString(guildName);
  1970. /* 2467 */ mplew.writeMapleAsciiString(allianceName);
  1971. /* 2468 */ mplew.write(0);
  1972. /* 2469 */ MaplePet[] pets = chr.getPets();
  1973. /* 2470 */ IItem inv = chr.getInventory(MapleInventoryType.EQUIPPED).getItem(-114);
  1974. /* 2471 */ for (int i = 0; i < 3; i++) {
  1975. /* 2472 */ if (pets[i] != null) {
  1976. /* 2473 */ mplew.write(pets[i].getPosition());
  1977. /* 2474 */ mplew.writeInt(pets[i].getItemId());
  1978. /* 2475 */ mplew.writeMapleAsciiString(pets[i].getName());
  1979. /* 2476 */ mplew.write(pets[i].getLevel());
  1980. /* 2477 */ mplew.writeShort(pets[i].getCloseness());
  1981. /* 2478 */ mplew.write(pets[i].getFullness());
  1982. /* 2479 */ mplew.writeShort(0);
  1983. /* 2480 */ mplew.writeInt(inv != null ? inv.getItemId() : 0);
  1984. /* */ }
  1985. /* */ }
  1986. /* 2483 */ mplew.write(0);
  1987. /* 2484 */ if ((chr.getMount() != null) && (chr.getInventory(MapleInventoryType.EQUIPPED).getItem(-18) != null)) {
  1988. /* 2485 */ mplew.write(chr.getMount().getId());
  1989. /* 2486 */ mplew.writeInt(chr.getMount().getLevel());
  1990. /* 2487 */ mplew.writeInt(chr.getMount().getExp());
  1991. /* 2488 */ mplew.writeInt(chr.getMount().getTiredness());
  1992. /* */ } else {
  1993. /* 2490 */ mplew.write(0);
  1994. /* */ }
  1995. /* 2492 */ List wishList = chr.getWishList();
  1996. /* 2493 */ mplew.write(wishList.size());
  1997. /* 2494 */ for (Iterator i$ = wishList.iterator(); i$.hasNext(); ) { int sn = ((Integer)i$.next()).intValue();
  1998. /* 2495 */ mplew.writeInt(sn);
  1999. /* */ }
  2000. /* 2497 */ mplew.writeInt(chr.getMonsterBook().getBookLevel());
  2001. /* 2498 */ mplew.writeInt(chr.getMonsterBook().getNormalCard());
  2002. /* 2499 */ mplew.writeInt(chr.getMonsterBook().getSpecialCard());
  2003. /* 2500 */ mplew.writeInt(chr.getMonsterBook().getTotalCards());
  2004. /* 2501 */ mplew.writeInt(chr.getMonsterBookCover() > 0 ? MapleItemInformationProvider.getInstance().getCardMobId(chr.getMonsterBookCover()) : 0);
  2005. /* 2502 */ IItem i = chr.getInventory(MapleInventoryType.EQUIPPED).getItem(-49);
  2006. /* 2503 */ mplew.writeInt(i == null ? 0 : i.getItemId());
  2007. /* 2504 */ mplew.write0(2);
  2008. /* 2505 */ mplew.writeInt(0);
  2009. /* 2506 */ return mplew.getPacket();
  2010. /* */ }
  2011. /* */
  2012. /* */ public static MaplePacket giveBuff(int buffid, int bufflength, List<Pair<MapleBuffStat, Integer>> statups, boolean mount)
  2013. /* */ {
  2014. /* 2521 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2015. /* 2522 */ mplew.writeShort(SendPacketOpcode.GIVE_BUFF);
  2016. /* 2523 */ writeLongMask(mplew, statups);
  2017. /* 2524 */ for (Pair statup : statups) {
  2018. /* 2525 */ mplew.writeShort(((Integer)statup.getRight()).shortValue());
  2019. /* 2526 */ mplew.writeInt(buffid);
  2020. /* 2527 */ mplew.writeInt(bufflength);
  2021. /* */ }
  2022. /* 2529 */ mplew.writeShort(0);
  2023. /* 2530 */ if (mount)
  2024. /* 2531 */ mplew.writeShort(0);
  2025. /* 2532 */ else if ((buffid == 1211008) || (buffid == 1211007)) {
  2026. /* 2533 */ mplew.writeShort(600);
  2027. /* */ }
  2028. /* 2535 */ mplew.writeShort(0);
  2029. /* 2536 */ mplew.write(0);
  2030. /* 2537 */ mplew.write0(4);
  2031. /* 2538 */ return mplew.getPacket();
  2032. /* */ }
  2033. /* */
  2034. /* */ public static MaplePacket showMonsterRiding(int cid, List<Pair<MapleBuffStat, Integer>> statups, MapleMount mount)
  2035. /* */ {
  2036. /* 2549 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2037. /* 2550 */ mplew.writeShort(SendPacketOpcode.GIVE_FOREIGN_BUFF);
  2038. /* 2551 */ mplew.writeInt(cid);
  2039. /* 2552 */ mplew.writeLong(MapleBuffStat.MONSTER_RIDING.getValue());
  2040. /* 2553 */ mplew.writeLong(0L);
  2041. /* 2554 */ mplew.writeShort(0);
  2042. /* 2555 */ mplew.writeInt(mount.getItemId());
  2043. /* 2556 */ mplew.writeInt(mount.getSkillId());
  2044. /* 2557 */ mplew.write0(7);
  2045. /* 2558 */ return mplew.getPacket();
  2046. /* */ }
  2047. /* */
  2048. /* */ public static MaplePacket forfeitQuest(MapleCharacter c, short quest)
  2049. /* */ {
  2050. /* 2568 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  2051. /* 2569 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  2052. /* 2570 */ mplew.write(1);
  2053. /* 2571 */ mplew.writeShort(quest);
  2054. /* 2572 */ mplew.write(0);
  2055. /* 2573 */ return mplew.getPacket();
  2056. /* */ }
  2057. /* */
  2058. /* */ public static MaplePacket completeQuest(MapleCharacter c, short quest)
  2059. /* */ {
  2060. /* 2583 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2061. /* 2584 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  2062. /* 2585 */ mplew.write(1);
  2063. /* 2586 */ mplew.writeShort(quest);
  2064. /* 2587 */ mplew.write(HexTool.getByteArrayFromHexString("02 60 4C F8 80 8E D9 CA 01"));
  2065. /* 2588 */ return mplew.getPacket();
  2066. /* */ }
  2067. /* */
  2068. /* */ public static MaplePacket forfeitQuest(short quest) {
  2069. /* 2592 */ return updateQuestInfo(0, quest, "");
  2070. /* */ }
  2071. /* */
  2072. /* */ public static MaplePacket completeQuest(short quest) {
  2073. /* 2596 */ return updateQuestInfo(2, quest, "");
  2074. /* */ }
  2075. /* */
  2076. /* */ public static MaplePacket updateQuestInfo(byte mode, short quest, String info) {
  2077. /* 2600 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2078. /* 2601 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  2079. /* 2602 */ mplew.write(1);
  2080. /* 2603 */ mplew.writeShort(quest);
  2081. /* 2604 */ mplew.write(mode);
  2082. /* 2605 */ if (mode == 0) {
  2083. /* 2606 */ mplew.writeMapleAsciiString(info);
  2084. /* 2607 */ mplew.writeLong(0L);
  2085. /* 2608 */ } else if (mode == 1) {
  2086. /* 2609 */ mplew.writeMapleAsciiString(info);
  2087. /* 2610 */ } else if (mode == 2) {
  2088. /* 2611 */ mplew.writeLong(System.currentTimeMillis());
  2089. /* */ }
  2090. /* 2613 */ return mplew.getPacket();
  2091. /* */ }
  2092. /* */
  2093. /* */ public static MaplePacket updateQuestRecordExInfo(short quest, String info) {
  2094. /* 2617 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2095. /* 2618 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  2096. /* 2619 */ mplew.write(11);
  2097. /* 2620 */ mplew.writeShort(quest);
  2098. /* 2621 */ mplew.writeMapleAsciiString(info);
  2099. /* 2622 */ return mplew.getPacket();
  2100. /* */ }
  2101. /* */
  2102. /* */ public static MaplePacket getShowQuestCompletion(int id) {
  2103. /* 2626 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2104. /* 2627 */ mplew.writeShort(SendPacketOpcode.SHOW_QUEST_COMPLETION);
  2105. /* 2628 */ mplew.writeShort(id);
  2106. /* 2629 */ return mplew.getPacket();
  2107. /* */ }
  2108. /* */
  2109. /* */ public static MaplePacket updateQuestInfo(short quest, boolean message, byte progress) {
  2110. /* 2633 */ return updateQuestInfo(quest, message, 0, progress, 0, false);
  2111. /* */ }
  2112. /* */
  2113. /* */ public static MaplePacket updateQuestInfo(short quest, boolean message, int npc, byte progress, int nextquest, boolean start)
  2114. /* */ {
  2115. /* 2647 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2116. /* 2648 */ mplew.writeShort(SendPacketOpcode.UPDATE_QUEST_INFO);
  2117. /* 2649 */ mplew.write(progress);
  2118. /* 2650 */ mplew.writeShort(quest);
  2119. /* 2651 */ if (!message) {
  2120. /* 2652 */ mplew.writeInt(npc);
  2121. /* 2653 */ mplew.writeShort(nextquest);
  2122. /* 2654 */ if (start) {
  2123. /* 2655 */ mplew.writeShort(0);
  2124. /* */ }
  2125. /* */ }
  2126. /* 2658 */ return mplew.getPacket();
  2127. /* */ }
  2128. /* */
  2129. /* */ public static MaplePacket npcAnimation(int oid, String info) {
  2130. /* 2662 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2131. /* 2663 */ mplew.writeShort(SendPacketOpcode.NPC_SPECIAL_ANIMATION);
  2132. /* 2664 */ mplew.writeInt(oid);
  2133. /* 2665 */ mplew.writeMapleAsciiString(info);
  2134. /* 2666 */ return mplew.getPacket();
  2135. /* */ }
  2136. /* */
  2137. /* */ private static void writeLongMask(MaplePacketLittleEndianWriter mplew, List<Pair<MapleBuffStat, Integer>> statups) {
  2138. /* 2670 */ long firstlong = 0L; long secondlong = 0L;
  2139. /* 2671 */ for (Pair statup : statups) {
  2140. /* 2672 */ if (((MapleBuffStat)statup.getLeft()).isFirst())
  2141. /* 2673 */ firstlong |= ((MapleBuffStat)statup.getLeft()).getValue();
  2142. /* */ else {
  2143. /* 2675 */ secondlong |= ((MapleBuffStat)statup.getLeft()).getValue();
  2144. /* */ }
  2145. /* */ }
  2146. /* 2678 */ mplew.writeLong(firstlong);
  2147. /* 2679 */ mplew.writeLong(secondlong);
  2148. /* */ }
  2149. /* */
  2150. /* */ private static void writeLongMaskFromList(MaplePacketLittleEndianWriter mplew, List<MapleBuffStat> statups) {
  2151. /* 2683 */ long firstlong = 0L; long secondlong = 0L;
  2152. /* 2684 */ for (MapleBuffStat statup : statups) {
  2153. /* 2685 */ if (statup.isFirst())
  2154. /* 2686 */ firstlong |= statup.getValue();
  2155. /* */ else {
  2156. /* 2688 */ secondlong |= statup.getValue();
  2157. /* */ }
  2158. /* */ }
  2159. /* 2691 */ mplew.writeLong(firstlong);
  2160. /* 2692 */ mplew.writeLong(secondlong);
  2161. /* */ }
  2162. /* */
  2163. /* */ private static long getLongMaskD(List<Pair<MapleDisease.Disease, Integer>> statups) {
  2164. /* 2696 */ long mask = 0L;
  2165. /* 2697 */ for (Pair statup : statups) {
  2166. /* 2698 */ if (statup.getLeft() != null) {
  2167. /* 2699 */ mask |= ((MapleDisease.Disease)statup.getLeft()).getValue();
  2168. /* */ }
  2169. /* */ }
  2170. /* 2702 */ return mask;
  2171. /* */ }
  2172. /* */
  2173. /* */ public static MaplePacket giveDebuff(List<Pair<MapleDisease.Disease, Integer>> statups, MobSkill skill, boolean forever) {
  2174. /* 2706 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2175. /* 2707 */ mplew.writeShort(SendPacketOpcode.GIVE_BUFF);
  2176. /* 2708 */ long mask = getLongMaskD(statups);
  2177. /* 2709 */ mplew.writeLong(0L);
  2178. /* 2710 */ mplew.writeLong(mask);
  2179. /* 2711 */ for (Pair statup : statups) {
  2180. /* 2712 */ mplew.writeShort(((Integer)statup.getRight()).shortValue());
  2181. /* 2713 */ mplew.writeShort(skill.getSkillId());
  2182. /* 2714 */ mplew.writeShort(skill.getSkillLevel());
  2183. /* 2715 */ if (forever)
  2184. /* 2716 */ mplew.writeInt(2147483647);
  2185. /* */ else {
  2186. /* 2718 */ mplew.writeInt((int)skill.getDuration());
  2187. /* */ }
  2188. /* */ }
  2189. /* 2721 */ mplew.writeShort(0);
  2190. /* 2722 */ mplew.writeShort((short)(int)skill.getEffectDelay());
  2191. /* 2723 */ mplew.write(0);
  2192. /* 2724 */ mplew.write0(4);
  2193. /* 2725 */ return mplew.getPacket();
  2194. /* */ }
  2195. /* */
  2196. /* */ public static MaplePacket giveForeignDebuff(int cid, List<Pair<MapleDisease.Disease, Integer>> statups, MobSkill skill) {
  2197. /* 2729 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2198. /* 2730 */ mplew.writeShort(SendPacketOpcode.GIVE_FOREIGN_BUFF);
  2199. /* 2731 */ mplew.writeInt(cid);
  2200. /* 2732 */ long mask = getLongMaskD(statups);
  2201. /* 2733 */ mplew.writeLong(0L);
  2202. /* 2734 */ mplew.writeLong(mask);
  2203. /* 2735 */ for (int i = 0; i < statups.size(); i++) {
  2204. /* 2736 */ if (((MapleDisease.Disease)((Pair)statups.get(i)).getLeft()).equals(MapleDisease.Disease.POISON)) {
  2205. /* 2737 */ mplew.writeShort(((Integer)((Pair)statups.get(i)).getRight()).intValue());
  2206. /* */ }
  2207. /* 2739 */ mplew.writeShort(skill.getSkillId());
  2208. /* 2740 */ mplew.writeShort(skill.getSkillLevel());
  2209. /* */ }
  2210. /* 2742 */ mplew.writeShort(0);
  2211. /* 2743 */ mplew.writeShort((short)(int)skill.getEffectDelay());
  2212. /* 2744 */ mplew.write0(4);
  2213. /* 2745 */ return mplew.getPacket();
  2214. /* */ }
  2215. /* */
  2216. /* */ public static MaplePacket cancelForeignDebuff(int cid, long mask) {
  2217. /* 2749 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2218. /* 2750 */ mplew.writeShort(SendPacketOpcode.CANCEL_FOREIGN_BUFF);
  2219. /* 2751 */ mplew.writeInt(cid);
  2220. /* 2752 */ mplew.writeLong(0L);
  2221. /* 2753 */ mplew.writeLong(mask);
  2222. /* 2754 */ return mplew.getPacket();
  2223. /* */ }
  2224. /* */
  2225. /* */ public static MaplePacket giveForeignBuff(int cid, List<Pair<MapleBuffStat, Integer>> statups, boolean morph) {
  2226. /* 2758 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2227. /* 2759 */ mplew.writeShort(SendPacketOpcode.GIVE_FOREIGN_BUFF);
  2228. /* 2760 */ mplew.writeInt(cid);
  2229. /* 2761 */ writeLongMask(mplew, statups);
  2230. /* 2762 */ for (Pair statup : statups) {
  2231. /* 2763 */ if (morph)
  2232. /* 2764 */ mplew.writeInt(((Integer)statup.getRight()).intValue());
  2233. /* */ else {
  2234. /* 2766 */ mplew.writeShort(((Integer)statup.getRight()).shortValue());
  2235. /* */ }
  2236. /* */ }
  2237. /* 2769 */ mplew.write(0);
  2238. /* 2770 */ mplew.writeShort(0);
  2239. /* 2771 */ return mplew.getPacket();
  2240. /* */ }
  2241. /* */
  2242. /* */ public static MaplePacket cancelForeignBuff(int cid, List<MapleBuffStat> statups) {
  2243. /* 2775 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2244. /* 2776 */ mplew.writeShort(SendPacketOpcode.CANCEL_FOREIGN_BUFF);
  2245. /* 2777 */ mplew.writeInt(cid);
  2246. /* 2778 */ writeLongMaskFromList(mplew, statups);
  2247. /* 2779 */ return mplew.getPacket();
  2248. /* */ }
  2249. /* */
  2250. /* */ public static MaplePacket cancelBuff(List<MapleBuffStat> statups) {
  2251. /* 2783 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2252. /* 2784 */ mplew.writeShort(SendPacketOpcode.CANCEL_BUFF);
  2253. /* 2785 */ writeLongMaskFromList(mplew, statups);
  2254. /* 2786 */ mplew.write(1);
  2255. /* 2787 */ return mplew.getPacket();
  2256. /* */ }
  2257. /* */
  2258. /* */ public static MaplePacket cancelDebuff(long mask) {
  2259. /* 2791 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2260. /* 2792 */ mplew.writeShort(SendPacketOpcode.CANCEL_BUFF);
  2261. /* 2793 */ mplew.writeLong(0L);
  2262. /* 2794 */ mplew.writeLong(mask);
  2263. /* 2795 */ mplew.write(1);
  2264. /* 2796 */ return mplew.getPacket();
  2265. /* */ }
  2266. /* */
  2267. /* */ public static MaplePacket getPlayerShopChat(MapleCharacter c, String chat, boolean owner) {
  2268. /* 2800 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2269. /* 2801 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2270. /* 2802 */ mplew.write(6);
  2271. /* 2803 */ mplew.write(8);
  2272. /* 2804 */ mplew.write(owner ? 0 : 1);
  2273. /* 2805 */ mplew.writeMapleAsciiString(c.getName() + " : " + chat);
  2274. /* 2806 */ return mplew.getPacket();
  2275. /* */ }
  2276. /* */
  2277. /* */ public static MaplePacket getPlayerShopNewVisitor(MapleCharacter c, int slot) {
  2278. /* 2810 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2279. /* 2811 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2280. /* 2812 */ mplew.write(4);
  2281. /* 2813 */ mplew.write(slot);
  2282. /* 2814 */ addCharLook(mplew, c, true, false);
  2283. /* 2815 */ mplew.writeMapleAsciiString(c.getName());
  2284. /* 2816 */ mplew.writeShort(c.getJob().getId());
  2285. /* 2817 */ return mplew.getPacket();
  2286. /* */ }
  2287. /* */
  2288. /* */ public static MaplePacket getPlayerShopRemoveVisitor(int slot) {
  2289. /* 2821 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2290. /* 2822 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2291. /* 2823 */ mplew.write(PlayerInteractionHandler.Action.EXIT.getCode());
  2292. /* 2824 */ if (slot > 0) {
  2293. /* 2825 */ mplew.writeShort(slot);
  2294. /* */ }
  2295. /* 2827 */ return mplew.getPacket();
  2296. /* */ }
  2297. /* */
  2298. /* */ public static MaplePacket getTradePartnerAdd(MapleCharacter c) {
  2299. /* 2831 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2300. /* 2832 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2301. /* 2833 */ mplew.write(PlayerInteractionHandler.Action.VISIT.getCode());
  2302. /* 2834 */ mplew.write(1);
  2303. /* 2835 */ addCharLook(mplew, c, false, false);
  2304. /* 2836 */ mplew.writeMapleAsciiString(c.getName());
  2305. /* 2837 */ mplew.writeShort(c.getJob().getId());
  2306. /* 2838 */ return mplew.getPacket();
  2307. /* */ }
  2308. /* */
  2309. /* */ public static MaplePacket getTradeInvite(MapleCharacter c) {
  2310. /* 2842 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2311. /* 2843 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2312. /* 2844 */ mplew.write(PlayerInteractionHandler.Action.INVITE.getCode());
  2313. /* 2845 */ mplew.write(3);
  2314. /* 2846 */ mplew.writeMapleAsciiString(c.getName());
  2315. /* 2847 */ mplew.write(HexTool.getByteArrayFromHexString("B7 50 00 00"));
  2316. /* 2848 */ return mplew.getPacket();
  2317. /* */ }
  2318. /* */
  2319. /* */ public static MaplePacket getTradeMesoSet(byte number, int meso) {
  2320. /* 2852 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2321. /* 2853 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2322. /* 2854 */ mplew.write(PlayerInteractionHandler.Action.SET_MESO.getCode());
  2323. /* 2855 */ mplew.write(number);
  2324. /* 2856 */ mplew.writeInt(meso);
  2325. /* 2857 */ return mplew.getPacket();
  2326. /* */ }
  2327. /* */
  2328. /* */ public static MaplePacket getTradeItemAdd(byte number, IItem item) {
  2329. /* 2861 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2330. /* 2862 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2331. /* 2863 */ mplew.write(PlayerInteractionHandler.Action.SET_ITEMS.getCode());
  2332. /* 2864 */ mplew.write(number);
  2333. /* 2865 */ addItemInfo(mplew, item, false, false, true);
  2334. /* 2866 */ return mplew.getPacket();
  2335. /* */ }
  2336. /* */
  2337. /* */ public static MaplePacket getPlayerShopItemUpdate(MaplePlayerShop shop) {
  2338. /* 2870 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2339. /* 2871 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2340. /* 2872 */ mplew.write(PlayerInteractionHandler.Action.UPDATE_MERCHANT.getCode());
  2341. /* 2873 */ mplew.write(shop.getItems().size());
  2342. /* 2874 */ for (MaplePlayerShopItem item : shop.getItems()) {
  2343. /* 2875 */ mplew.writeShort(item.getBundles());
  2344. /* 2876 */ mplew.writeShort(item.getItem().getQuantity());
  2345. /* 2877 */ mplew.writeInt(item.getPrice());
  2346. /* 2878 */ addItemInfo(mplew, item.getItem(), true, true);
  2347. /* */ }
  2348. /* 2880 */ return mplew.getPacket();
  2349. /* */ }
  2350. /* */
  2351. /* */ public static MaplePacket getPlayerShop(MapleClient c, MaplePlayerShop shop, boolean owner)
  2352. /* */ {
  2353. /* 2891 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2354. /* 2892 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2355. /* 2893 */ mplew.write(5);
  2356. /* 2894 */ mplew.write(4);
  2357. /* 2895 */ mplew.write(4);
  2358. /* 2896 */ mplew.write(owner ? 0 : 1);
  2359. /* 2897 */ mplew.write(0);
  2360. /* 2898 */ addCharLook(mplew, shop.getOwner(), true, false);
  2361. /* 2899 */ mplew.writeMapleAsciiString(shop.getOwner().getName());
  2362. /* 2900 */ mplew.writeShort(shop.getOwner().getJob().getId());
  2363. /* 2901 */ if (!owner) {
  2364. /* 2902 */ mplew.write(1);
  2365. /* 2903 */ addCharLook(mplew, c.getPlayer(), true, false);
  2366. /* 2904 */ mplew.writeMapleAsciiString(c.getPlayer().getName());
  2367. /* 2905 */ mplew.writeShort(c.getPlayer().getJob().getId());
  2368. /* */ }
  2369. /* 2907 */ mplew.write(255);
  2370. /* 2908 */ mplew.writeMapleAsciiString(shop.getDescription());
  2371. /* 2909 */ List items = shop.getItems();
  2372. /* 2910 */ mplew.write(16);
  2373. /* 2911 */ mplew.write(items.size());
  2374. /* 2912 */ for (MaplePlayerShopItem item : items) {
  2375. /* 2913 */ mplew.writeShort(item.getBundles());
  2376. /* 2914 */ mplew.writeShort(item.getItem().getQuantity());
  2377. /* 2915 */ mplew.writeInt(item.getPrice());
  2378. /* 2916 */ addItemInfo(mplew, item.getItem(), true, true);
  2379. /* */ }
  2380. /* 2918 */ return mplew.getPacket();
  2381. /* */ }
  2382. /* */
  2383. /* */ public static MaplePacket getTradeStart(MapleClient c, MapleTrade trade, byte number) {
  2384. /* 2922 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2385. /* 2923 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2386. /* 2924 */ mplew.write(5);
  2387. /* 2925 */ mplew.write(3);
  2388. /* 2926 */ mplew.write(2);
  2389. /* 2927 */ mplew.write(number);
  2390. /* 2928 */ if (number == 1) {
  2391. /* 2929 */ mplew.write(0);
  2392. /* 2930 */ addCharLook(mplew, trade.getPartner().getChr(), true, false);
  2393. /* 2931 */ mplew.writeMapleAsciiString(trade.getPartner().getChr().getName());
  2394. /* 2932 */ mplew.writeShort(c.getPlayer().getJob().getId());
  2395. /* */ }
  2396. /* 2934 */ mplew.write(number);
  2397. /* 2935 */ addCharLook(mplew, c.getPlayer(), true, false);
  2398. /* 2936 */ mplew.writeMapleAsciiString(c.getPlayer().getName());
  2399. /* 2937 */ mplew.writeShort(c.getPlayer().getJob().getId());
  2400. /* 2938 */ mplew.write(255);
  2401. /* 2939 */ return mplew.getPacket();
  2402. /* */ }
  2403. /* */
  2404. /* */ public static MaplePacket getTradeConfirmation() {
  2405. /* 2943 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2406. /* 2944 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2407. /* 2945 */ mplew.write(PlayerInteractionHandler.Action.CONFIRM.getCode());
  2408. /* 2946 */ return mplew.getPacket();
  2409. /* */ }
  2410. /* */
  2411. /* */ public static MaplePacket getTradeCompletion(byte number) {
  2412. /* 2950 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2413. /* 2951 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2414. /* 2952 */ mplew.write(PlayerInteractionHandler.Action.EXIT.getCode());
  2415. /* 2953 */ mplew.write(number);
  2416. /* 2954 */ mplew.write(7);
  2417. /* 2955 */ return mplew.getPacket();
  2418. /* */ }
  2419. /* */
  2420. /* */ public static MaplePacket getTradeCancel(byte number) {
  2421. /* 2959 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2422. /* 2960 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  2423. /* 2961 */ mplew.write(PlayerInteractionHandler.Action.EXIT.getCode());
  2424. /* 2962 */ mplew.write(number);
  2425. /* 2963 */ mplew.write(2);
  2426. /* 2964 */ return mplew.getPacket();
  2427. /* */ }
  2428. /* */
  2429. /* */ public static MaplePacket addCharBox(MapleCharacter c, int type) {
  2430. /* 2968 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2431. /* 2969 */ mplew.writeShort(SendPacketOpcode.UPDATE_CHAR_BOX);
  2432. /* 2970 */ mplew.writeInt(c.getId());
  2433. /* 2971 */ addAnnounceBox(mplew, c.getPlayerShop(), type);
  2434. /* 2972 */ return mplew.getPacket();
  2435. /* */ }
  2436. /* */
  2437. /* */ public static MaplePacket removeCharBox(MapleCharacter c) {
  2438. /* 2976 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  2439. /* 2977 */ mplew.writeShort(SendPacketOpcode.UPDATE_CHAR_BOX);
  2440. /* 2978 */ mplew.writeInt(c.getId());
  2441. /* 2979 */ mplew.write(0);
  2442. /* 2980 */ return mplew.getPacket();
  2443. /* */ }
  2444. /* */
  2445. /* */ public static MaplePacket getNPCTalkStyle(int npc, String talk, int[] styles) {
  2446. /* 2984 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2447. /* 2985 */ mplew.writeShort(SendPacketOpcode.NPC_TALK);
  2448. /* 2986 */ mplew.write(4);
  2449. /* 2987 */ mplew.writeInt(npc);
  2450. /* 2988 */ mplew.write(8);
  2451. /* 2989 */ mplew.write(0);
  2452. /* 2990 */ mplew.writeMapleAsciiString(talk);
  2453. /* 2991 */ mplew.write(styles.length);
  2454. /* 2992 */ for (int i = 0; i < styles.length; i++) {
  2455. /* 2993 */ mplew.writeInt(styles[i]);
  2456. /* */ }
  2457. /* 2995 */ return mplew.getPacket();
  2458. /* */ }
  2459. /* */
  2460. /* */ public static MaplePacket getNPCTalkNum(int npc, String talk, int def, int min, int max) {
  2461. /* 2999 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2462. /* 3000 */ mplew.writeShort(SendPacketOpcode.NPC_TALK);
  2463. /* 3001 */ mplew.write(4);
  2464. /* 3002 */ mplew.writeInt(npc);
  2465. /* 3003 */ mplew.writeShort(4);
  2466. /* 3004 */ mplew.writeMapleAsciiString(talk);
  2467. /* 3005 */ mplew.writeInt(def);
  2468. /* 3006 */ mplew.writeInt(min);
  2469. /* 3007 */ mplew.writeInt(max);
  2470. /* 3008 */ return mplew.getPacket();
  2471. /* */ }
  2472. /* */
  2473. /* */ public static MaplePacket getNPCTalkText(int npc, String talk) {
  2474. /* 3012 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2475. /* 3013 */ mplew.writeShort(SendPacketOpcode.NPC_TALK);
  2476. /* 3014 */ mplew.write(4);
  2477. /* 3015 */ mplew.writeInt(npc);
  2478. /* 3016 */ mplew.writeShort(3);
  2479. /* 3017 */ mplew.writeMapleAsciiString(talk);
  2480. /* 3018 */ mplew.write0(12);
  2481. /* 3019 */ return mplew.getPacket();
  2482. /* */ }
  2483. /* */
  2484. /* */ public static MaplePacket showForeignEffect(int cid, int effect) {
  2485. /* 3023 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  2486. /* 3024 */ mplew.writeShort(SendPacketOpcode.SHOW_FOREIGN_EFFECT);
  2487. /* 3025 */ mplew.write(0);
  2488. /* 3026 */ mplew.writeInt(cid);
  2489. /* 3027 */ mplew.write(effect);
  2490. /* 3028 */ return mplew.getPacket();
  2491. /* */ }
  2492. /* */
  2493. /* */ public static MaplePacket showBuffEffect(MapleCharacter player, int cid, int skillid, int effectid) {
  2494. /* 3032 */ return showBuffEffect(player, cid, skillid, effectid, 3);
  2495. /* */ }
  2496. /* */
  2497. /* */ public static MaplePacket showBuffEffect(MapleCharacter player, int cid, int skillid, int effectid, byte direction) {
  2498. /* 3036 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(13);
  2499. /* 3037 */ mplew.writeShort(SendPacketOpcode.SHOW_FOREIGN_EFFECT);
  2500. /* 3038 */ mplew.writeInt(cid);
  2501. /* 3039 */ mplew.write(effectid);
  2502. /* 3040 */ mplew.writeInt(skillid);
  2503. /* 3041 */ mplew.write(2);
  2504. /* 3042 */ mplew.write(player.getSkillLevel(skillid));
  2505. /* 3043 */ mplew.write0(4);
  2506. /* 3044 */ return mplew.getPacket();
  2507. /* */ }
  2508. /* */
  2509. /* */ public static MaplePacket showOwnBuffEffect(int skillid, int effectid) {
  2510. /* 3048 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(9);
  2511. /* 3049 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_GAIN_INCHAT);
  2512. /* 3050 */ mplew.write(effectid);
  2513. /* 3051 */ mplew.writeInt(skillid);
  2514. /* 3052 */ mplew.write(1);
  2515. /* 3053 */ mplew.write(1);
  2516. /* 3054 */ return mplew.getPacket();
  2517. /* */ }
  2518. /* */
  2519. /* */ public static MaplePacket showOwnBerserk(int skilllevel, boolean berserk) {
  2520. /* 3058 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(10);
  2521. /* 3059 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_GAIN_INCHAT);
  2522. /* 3060 */ mplew.write(1);
  2523. /* 3061 */ mplew.writeInt(1320006);
  2524. /* 3062 */ mplew.write(125);
  2525. /* 3063 */ mplew.write(skilllevel);
  2526. /* 3064 */ mplew.write(berserk ? 1 : 0);
  2527. /* 3065 */ return mplew.getPacket();
  2528. /* */ }
  2529. /* */
  2530. /* */ public static MaplePacket showBerserk(int cid, int skilllevel, boolean berserk) {
  2531. /* 3069 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(14);
  2532. /* 3070 */ mplew.writeShort(SendPacketOpcode.SHOW_FOREIGN_EFFECT);
  2533. /* 3071 */ mplew.writeInt(cid);
  2534. /* 3072 */ mplew.write(1);
  2535. /* 3073 */ mplew.writeInt(1320006);
  2536. /* 3074 */ mplew.write(125);
  2537. /* 3075 */ mplew.write(skilllevel);
  2538. /* 3076 */ mplew.write(berserk ? 1 : 0);
  2539. /* 3077 */ return mplew.getPacket();
  2540. /* */ }
  2541. /* */
  2542. /* */ public static MaplePacket updateSkill(int skillid, int level, int masterlevel) {
  2543. /* 3081 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(19);
  2544. /* 3082 */ mplew.writeShort(SendPacketOpcode.UPDATE_SKILLS);
  2545. /* 3083 */ mplew.write(1);
  2546. /* 3084 */ mplew.writeShort(1);
  2547. /* 3085 */ mplew.writeInt(skillid);
  2548. /* 3086 */ mplew.writeInt(level);
  2549. /* 3087 */ mplew.writeInt(masterlevel);
  2550. /* 3088 */ mplew.write(NON_EXPIRE);
  2551. /* 3089 */ mplew.write(1);
  2552. /* 3090 */ return mplew.getPacket();
  2553. /* */ }
  2554. /* */
  2555. /* */ public static MaplePacket updateQuestMobKills(MapleQuestStatus status) {
  2556. /* 3094 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2557. /* 3095 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  2558. /* 3096 */ mplew.write(1);
  2559. /* 3097 */ mplew.writeShort(status.getQuest().getId());
  2560. /* 3098 */ mplew.write(1);
  2561. /* 3099 */ String killStr = "";
  2562. /* 3100 */ for (Iterator i$ = status.getMobKills().values().iterator(); i$.hasNext(); ) { int kills = ((Integer)i$.next()).intValue();
  2563. /* 3101 */ killStr = killStr + MiscTools.getLeftPaddedStr(String.valueOf(kills), '0', 3);
  2564. /* */ }
  2565. /* 3103 */ mplew.writeMapleAsciiString(killStr);
  2566. /* 3104 */ mplew.writeInt(0);
  2567. /* 3105 */ mplew.writeInt(0);
  2568. /* 3106 */ return mplew.getPacket();
  2569. /* */ }
  2570. /* */
  2571. /* */ public static MaplePacket getKeymap(Map<Integer, MapleKeyBinding> keybindings) {
  2572. /* 3110 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(453);
  2573. /* 3111 */ mplew.writeShort(SendPacketOpcode.KEYMAP);
  2574. /* 3112 */ mplew.write(0);
  2575. /* 3113 */ for (int x = 0; x < 90; x++) {
  2576. /* 3114 */ MapleKeyBinding binding = (MapleKeyBinding)keybindings.get(Integer.valueOf(x));
  2577. /* 3115 */ if (binding != null) {
  2578. /* 3116 */ mplew.write(binding.getType());
  2579. /* 3117 */ mplew.writeInt(binding.getAction());
  2580. /* */ } else {
  2581. /* 3119 */ mplew.write(0);
  2582. /* 3120 */ mplew.writeInt(0);
  2583. /* */ }
  2584. /* */ }
  2585. /* 3123 */ return mplew.getPacket();
  2586. /* */ }
  2587. /* */
  2588. /* */ public static MaplePacket resetKeymap()
  2589. /* */ {
  2590. /* 3130 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  2591. /* 3131 */ mplew.writeShort(SendPacketOpcode.KEYMAP);
  2592. /* 3132 */ mplew.write(1);
  2593. /* 3133 */ return mplew.getPacket();
  2594. /* */ }
  2595. /* */
  2596. /* */ public static MaplePacket getWhisper(String sender, int channel, String text) {
  2597. /* 3137 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2598. /* 3138 */ mplew.writeShort(SendPacketOpcode.WHISPER);
  2599. /* 3139 */ mplew.write(18);
  2600. /* 3140 */ mplew.writeMapleAsciiString(sender);
  2601. /* 3141 */ mplew.writeShort(channel - 1);
  2602. /* 3142 */ mplew.writeMapleAsciiString(text);
  2603. /* 3143 */ return mplew.getPacket();
  2604. /* */ }
  2605. /* */
  2606. /* */ public static MaplePacket getWhisperStatus(MapleCharacter receiver) {
  2607. /* 3147 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2608. /* 3148 */ mplew.writeShort(SendPacketOpcode.WHISPER);
  2609. /* 3149 */ mplew.write(34);
  2610. /* 3150 */ mplew.writeMapleAsciiString(receiver.getName());
  2611. /* 3151 */ mplew.write(0);
  2612. /* 3152 */ return mplew.getPacket();
  2613. /* */ }
  2614. /* */
  2615. /* */ public static MaplePacket getWhisperReply(String target, byte reply)
  2616. /* */ {
  2617. /* 3162 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2618. /* 3163 */ mplew.writeShort(SendPacketOpcode.WHISPER);
  2619. /* 3164 */ mplew.write(10);
  2620. /* 3165 */ mplew.writeMapleAsciiString(target);
  2621. /* 3166 */ mplew.write(reply);
  2622. /* 3167 */ return mplew.getPacket();
  2623. /* */ }
  2624. /* */
  2625. /* */ public static MaplePacket getInventoryFull() {
  2626. /* 3171 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  2627. /* 3172 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  2628. /* 3173 */ mplew.write(1);
  2629. /* 3174 */ mplew.write(0);
  2630. /* 3175 */ return mplew.getPacket();
  2631. /* */ }
  2632. /* */
  2633. /* */ public static MaplePacket getShowInventoryFull() {
  2634. /* 3179 */ return getShowInventoryStatus(255);
  2635. /* */ }
  2636. /* */
  2637. /* */ public static MaplePacket showItemUnavailable() {
  2638. /* 3183 */ return getShowInventoryStatus(254);
  2639. /* */ }
  2640. /* */
  2641. /* */ public static MaplePacket getShowInventoryStatus(int mode) {
  2642. /* 3187 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(12);
  2643. /* 3188 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  2644. /* 3189 */ mplew.write(0);
  2645. /* 3190 */ mplew.write(mode);
  2646. /* 3191 */ mplew.writeInt(0);
  2647. /* 3192 */ mplew.writeInt(0);
  2648. /* 3193 */ return mplew.getPacket();
  2649. /* */ }
  2650. /* */
  2651. /* */ public static MaplePacket getStorage(int npcId, byte slots, int meso, Map<MapleInventoryType, List<IItem>> type) {
  2652. /* 3197 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2653. /* 3198 */ mplew.writeShort(SendPacketOpcode.OPEN_STORAGE);
  2654. /* 3199 */ mplew.write(22);
  2655. /* 3200 */ mplew.writeInt(npcId);
  2656. /* 3201 */ mplew.write(slots);
  2657. /* 3202 */ mplew.writeInt(126);
  2658. /* 3203 */ mplew.writeInt(0);
  2659. /* 3204 */ mplew.writeInt(meso);
  2660. /* 3205 */ mplew.write(((List)type.get(MapleInventoryType.EQUIP)).size());
  2661. /* 3206 */ for (IItem item : (List)type.get(MapleInventoryType.EQUIP)) {
  2662. /* 3207 */ addItemInfo(mplew, item, true, true);
  2663. /* */ }
  2664. /* 3209 */ mplew.write(((List)type.get(MapleInventoryType.USE)).size());
  2665. /* 3210 */ for (IItem item : (List)type.get(MapleInventoryType.USE)) {
  2666. /* 3211 */ addItemInfo(mplew, item, true, true);
  2667. /* */ }
  2668. /* 3213 */ mplew.write(((List)type.get(MapleInventoryType.SETUP)).size());
  2669. /* 3214 */ for (IItem item : (List)type.get(MapleInventoryType.SETUP)) {
  2670. /* 3215 */ addItemInfo(mplew, item, true, true);
  2671. /* */ }
  2672. /* 3217 */ mplew.write(((List)type.get(MapleInventoryType.ETC)).size());
  2673. /* 3218 */ for (IItem item : (List)type.get(MapleInventoryType.ETC)) {
  2674. /* 3219 */ addItemInfo(mplew, item, true, true);
  2675. /* */ }
  2676. /* 3221 */ mplew.write(((List)type.get(MapleInventoryType.CASH)).size());
  2677. /* 3222 */ for (IItem item : (List)type.get(MapleInventoryType.CASH)) {
  2678. /* 3223 */ addItemInfo(mplew, item, true, true);
  2679. /* */ }
  2680. /* 3225 */ return mplew.getPacket();
  2681. /* */ }
  2682. /* */
  2683. /* */ public static MaplePacket getStorageFull() {
  2684. /* 3229 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  2685. /* 3230 */ mplew.writeShort(SendPacketOpcode.OPEN_STORAGE);
  2686. /* 3231 */ mplew.write(17);
  2687. /* 3232 */ return mplew.getPacket();
  2688. /* */ }
  2689. /* */
  2690. /* */ public static MaplePacket mesoStorage(byte slots, int meso) {
  2691. /* 3236 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(16);
  2692. /* 3237 */ mplew.writeShort(SendPacketOpcode.OPEN_STORAGE);
  2693. /* 3238 */ mplew.write(19);
  2694. /* 3239 */ mplew.write(slots);
  2695. /* 3240 */ mplew.writeShort(2);
  2696. /* 3241 */ mplew.writeShort(0);
  2697. /* 3242 */ mplew.writeInt(0);
  2698. /* 3243 */ mplew.writeInt(meso);
  2699. /* 3244 */ return mplew.getPacket();
  2700. /* */ }
  2701. /* */
  2702. /* */ public static MaplePacket storeStorage(byte slots, MapleInventoryType type, Collection<IItem> items) {
  2703. /* 3248 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2704. /* 3249 */ mplew.writeShort(SendPacketOpcode.OPEN_STORAGE);
  2705. /* 3250 */ mplew.write(13);
  2706. /* 3251 */ mplew.write(slots);
  2707. /* 3252 */ mplew.writeShort(type.getBitfieldEncoding());
  2708. /* 3253 */ mplew.writeShort(0);
  2709. /* 3254 */ mplew.writeInt(0);
  2710. /* 3255 */ mplew.write(items.size());
  2711. /* 3256 */ for (IItem item : items) {
  2712. /* 3257 */ addItemInfo(mplew, item, true, true);
  2713. /* */ }
  2714. /* 3259 */ return mplew.getPacket();
  2715. /* */ }
  2716. /* */
  2717. /* */ public static MaplePacket takeOutStorage(byte slots, MapleInventoryType type, Collection<IItem> items) {
  2718. /* 3263 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2719. /* 3264 */ mplew.writeShort(SendPacketOpcode.OPEN_STORAGE);
  2720. /* 3265 */ mplew.write(9);
  2721. /* 3266 */ mplew.write(slots);
  2722. /* 3267 */ mplew.writeShort(type.getBitfieldEncoding());
  2723. /* 3268 */ mplew.writeShort(0);
  2724. /* 3269 */ mplew.writeInt(0);
  2725. /* 3270 */ mplew.write(items.size());
  2726. /* 3271 */ for (IItem item : items) {
  2727. /* 3272 */ addItemInfo(mplew, item, true, true);
  2728. /* */ }
  2729. /* 3274 */ return mplew.getPacket();
  2730. /* */ }
  2731. /* */
  2732. /* */ public static MaplePacket showMonsterHP(int oid, int remhppercentage)
  2733. /* */ {
  2734. /* 3284 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  2735. /* 3285 */ mplew.writeShort(SendPacketOpcode.SHOW_MONSTER_HP);
  2736. /* 3286 */ mplew.writeInt(oid);
  2737. /* 3287 */ mplew.write(remhppercentage);
  2738. /* 3288 */ return mplew.getPacket();
  2739. /* */ }
  2740. /* */
  2741. /* */ public static MaplePacket showBossHP(int oid, int currHP, int maxHP, byte tagColor, byte tagBgColor) {
  2742. /* 3292 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(21);
  2743. /* 3293 */ mplew.writeShort(SendPacketOpcode.BOSS_ENV);
  2744. /* 3294 */ mplew.write(5);
  2745. /* 3295 */ mplew.writeInt(oid);
  2746. /* 3296 */ mplew.writeInt(currHP);
  2747. /* 3297 */ mplew.writeInt(maxHP);
  2748. /* 3298 */ mplew.write(tagColor);
  2749. /* 3299 */ mplew.write(tagBgColor);
  2750. /* 3300 */ mplew.writeInt(0);
  2751. /* 3301 */ return mplew.getPacket();
  2752. /* */ }
  2753. /* */
  2754. /* */ public static MaplePacket giveFameResponse(int mode, String charname, int newfame) {
  2755. /* 3305 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2756. /* 3306 */ mplew.writeShort(SendPacketOpcode.FAME_RESPONSE);
  2757. /* 3307 */ mplew.write(0);
  2758. /* 3308 */ mplew.writeMapleAsciiString(charname);
  2759. /* 3309 */ mplew.write(mode);
  2760. /* 3310 */ mplew.writeShort(newfame);
  2761. /* 3311 */ mplew.writeShort(0);
  2762. /* 3312 */ return mplew.getPacket();
  2763. /* */ }
  2764. /* */
  2765. /* */ public static MaplePacket giveFameErrorResponse(int status)
  2766. /* */ {
  2767. /* 3330 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  2768. /* 3331 */ mplew.writeShort(SendPacketOpcode.FAME_RESPONSE);
  2769. /* 3332 */ mplew.write(status);
  2770. /* 3333 */ return mplew.getPacket();
  2771. /* */ }
  2772. /* */
  2773. /* */ public static MaplePacket receiveFame(int mode, String charnameFrom) {
  2774. /* 3337 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2775. /* 3338 */ mplew.writeShort(SendPacketOpcode.FAME_RESPONSE);
  2776. /* 3339 */ mplew.write(5);
  2777. /* 3340 */ mplew.writeMapleAsciiString(charnameFrom);
  2778. /* 3341 */ mplew.write(mode);
  2779. /* 3342 */ return mplew.getPacket();
  2780. /* */ }
  2781. /* */
  2782. /* */ public static MaplePacket partyCreated() {
  2783. /* 3346 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(17);
  2784. /* 3347 */ mplew.writeShort(SendPacketOpcode.PARTY_OPERATION);
  2785. /* 3348 */ mplew.write(8);
  2786. /* 3349 */ mplew.writeShort(139);
  2787. /* 3350 */ mplew.writeShort(1);
  2788. /* 3351 */ mplew.write(CHAR_INFO_MAGIC);
  2789. /* 3352 */ mplew.write(CHAR_INFO_MAGIC);
  2790. /* 3353 */ mplew.writeInt(0);
  2791. /* 3354 */ mplew.writeInt(0);
  2792. /* 3355 */ return mplew.getPacket();
  2793. /* */ }
  2794. /* */
  2795. /* */ public static MaplePacket partyInvite(MapleCharacter from) {
  2796. /* 3359 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2797. /* 3360 */ mplew.writeShort(SendPacketOpcode.PARTY_OPERATION);
  2798. /* 3361 */ mplew.write(4);
  2799. /* 3362 */ mplew.writeInt(from.getParty().getId());
  2800. /* 3363 */ mplew.writeMapleAsciiString(from.getName());
  2801. /* 3364 */ mplew.writeInt(from.getLevel());
  2802. /* 3365 */ mplew.writeInt(from.getJob().getId());
  2803. /* 3366 */ mplew.write(0);
  2804. /* 3367 */ return mplew.getPacket();
  2805. /* */ }
  2806. /* */
  2807. /* */ public static MaplePacket partyStatusMessage(int message)
  2808. /* */ {
  2809. /* 3382 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  2810. /* 3383 */ mplew.writeShort(SendPacketOpcode.PARTY_OPERATION);
  2811. /* 3384 */ mplew.write(message);
  2812. /* 3385 */ return mplew.getPacket();
  2813. /* */ }
  2814. /* */
  2815. /* */ public static MaplePacket partyStatusMessage(int message, String charname)
  2816. /* */ {
  2817. /* 3396 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2818. /* 3397 */ mplew.writeShort(SendPacketOpcode.PARTY_OPERATION);
  2819. /* 3398 */ mplew.write(message);
  2820. /* 3399 */ mplew.writeMapleAsciiString(charname);
  2821. /* 3400 */ return mplew.getPacket();
  2822. /* */ }
  2823. /* */
  2824. /* */ private static void addPartyStatus(int forchannel, MapleParty party, LittleEndianWriter lew, boolean leaving) {
  2825. /* 3404 */ List partymembers = new ArrayList(party.getMembers());
  2826. /* 3405 */ while (partymembers.size() < 6) {
  2827. /* 3406 */ partymembers.add(new MaplePartyCharacter());
  2828. /* */ }
  2829. /* 3408 */ for (MaplePartyCharacter partychar : partymembers) {
  2830. /* 3409 */ lew.writeInt(partychar.getId());
  2831. /* */ }
  2832. /* 3411 */ for (MaplePartyCharacter partychar : partymembers) {
  2833. /* 3412 */ lew.writeAsciiString(MiscTools.getRightPaddedStr(partychar.getName(), '\000', 13));
  2834. /* */ }
  2835. /* 3414 */ for (MaplePartyCharacter partychar : partymembers) {
  2836. /* 3415 */ lew.writeInt(partychar.getJobId());
  2837. /* */ }
  2838. /* 3417 */ for (MaplePartyCharacter partychar : partymembers) {
  2839. /* 3418 */ lew.writeInt(partychar.getLevel());
  2840. /* */ }
  2841. /* 3420 */ for (MaplePartyCharacter partychar : partymembers) {
  2842. /* 3421 */ if (partychar.isOnline())
  2843. /* 3422 */ lew.writeInt(partychar.getChannel() - 1);
  2844. /* */ else {
  2845. /* 3424 */ lew.writeInt(-2);
  2846. /* */ }
  2847. /* */ }
  2848. /* 3427 */ lew.writeInt(party.getLeader().getId());
  2849. /* 3428 */ for (MaplePartyCharacter partychar : partymembers) {
  2850. /* 3429 */ if (partychar.getChannel() == forchannel)
  2851. /* 3430 */ lew.writeInt(partychar.getMapid());
  2852. /* */ else {
  2853. /* 3432 */ lew.writeInt(0);
  2854. /* */ }
  2855. /* */ }
  2856. /* 3435 */ for (MaplePartyCharacter partychar : partymembers)
  2857. /* 3436 */ if ((partychar.getChannel() == forchannel) && (!leaving)) {
  2858. /* 3437 */ lew.writeInt(partychar.getDoorTown());
  2859. /* 3438 */ lew.writeInt(partychar.getDoorTarget());
  2860. /* 3439 */ lew.writeInt(0);
  2861. /* 3440 */ lew.writeInt(partychar.getDoorPosition().x);
  2862. /* 3441 */ lew.writeInt(partychar.getDoorPosition().y);
  2863. /* */ } else {
  2864. /* 3443 */ lew.writeInt(999999999);
  2865. /* 3444 */ lew.writeInt(999999999);
  2866. /* 3445 */ lew.writeInt(0);
  2867. /* 3446 */ lew.writeInt(0);
  2868. /* 3447 */ lew.writeInt(0);
  2869. /* */ }
  2870. /* */ }
  2871. /* */
  2872. /* */ public static MaplePacket updateParty(int forChannel, MapleParty party, PartyOperation op, MaplePartyCharacter target)
  2873. /* */ {
  2874. /* 3453 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2875. /* 3454 */ mplew.writeShort(SendPacketOpcode.PARTY_OPERATION);
  2876. /* 3455 */ switch (2.$SwitchMap$net$world$PartyOperation[op.ordinal()]) {
  2877. /* */ case 1:
  2878. /* */ case 2:
  2879. /* */ case 3:
  2880. /* 3459 */ mplew.write(12);
  2881. /* 3460 */ mplew.writeInt(40546);
  2882. /* 3461 */ mplew.writeInt(target.getId());
  2883. /* 3462 */ if (op == PartyOperation.DISBAND) {
  2884. /* 3463 */ mplew.write(0);
  2885. /* 3464 */ mplew.writeInt(party.getId());
  2886. /* */ } else {
  2887. /* 3466 */ mplew.write(1);
  2888. /* 3467 */ if (op == PartyOperation.EXPEL)
  2889. /* 3468 */ mplew.write(1);
  2890. /* */ else {
  2891. /* 3470 */ mplew.write(0);
  2892. /* */ }
  2893. /* 3472 */ mplew.writeMapleAsciiString(target.getName());
  2894. /* 3473 */ addPartyStatus(forChannel, party, mplew, false);
  2895. /* */ }
  2896. /* 3475 */ break;
  2897. /* */ case 4:
  2898. /* 3477 */ mplew.write(15);
  2899. /* 3478 */ mplew.writeInt(40546);
  2900. /* 3479 */ mplew.writeMapleAsciiString(target.getName());
  2901. /* 3480 */ addPartyStatus(forChannel, party, mplew, false);
  2902. /* 3481 */ break;
  2903. /* */ case 5:
  2904. /* */ case 6:
  2905. /* 3484 */ mplew.write(7);
  2906. /* 3485 */ mplew.writeInt(party.getId());
  2907. /* 3486 */ addPartyStatus(forChannel, party, mplew, false);
  2908. /* 3487 */ break;
  2909. /* */ case 7:
  2910. /* 3489 */ mplew.write(27);
  2911. /* 3490 */ mplew.writeInt(target.getId());
  2912. /* 3491 */ mplew.write(0);
  2913. /* */ }
  2914. /* */
  2915. /* 3494 */ return mplew.getPacket();
  2916. /* */ }
  2917. /* */
  2918. /* */ public static MaplePacket partyPortal(int townId, int targetId, Point position) {
  2919. /* 3498 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(16);
  2920. /* 3499 */ mplew.writeShort(SendPacketOpcode.PARTY_OPERATION);
  2921. /* 3500 */ mplew.writeShort(35);
  2922. /* 3501 */ mplew.writeInt(townId);
  2923. /* 3502 */ mplew.writeInt(targetId);
  2924. /* 3503 */ mplew.writeShort(position.x);
  2925. /* 3504 */ mplew.writeShort(position.y);
  2926. /* 3505 */ return mplew.getPacket();
  2927. /* */ }
  2928. /* */
  2929. /* */ public static MaplePacket updatePartyMemberHP(int cid, int curhp, int maxhp) {
  2930. /* 3509 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(14);
  2931. /* 3510 */ mplew.writeShort(SendPacketOpcode.UPDATE_PARTYMEMBER_HP);
  2932. /* 3511 */ mplew.writeInt(cid);
  2933. /* 3512 */ mplew.writeInt(curhp);
  2934. /* 3513 */ mplew.writeInt(maxhp);
  2935. /* 3514 */ return mplew.getPacket();
  2936. /* */ }
  2937. /* */
  2938. /* */ public static MaplePacket multiChat(String name, String chattext, int mode)
  2939. /* */ {
  2940. /* 3526 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2941. /* 3527 */ mplew.writeShort(SendPacketOpcode.MULTICHAT);
  2942. /* 3528 */ mplew.write(mode);
  2943. /* 3529 */ mplew.writeMapleAsciiString(name);
  2944. /* 3530 */ mplew.writeMapleAsciiString(chattext);
  2945. /* 3531 */ return mplew.getPacket();
  2946. /* */ }
  2947. /* */
  2948. /* */ public static MaplePacket applyMonsterStatus(int oid, Map<MonsterStatus, Integer> stats, int skill, boolean monsterSkill, int delay) {
  2949. /* 3535 */ return applyMonsterStatus(oid, stats, skill, monsterSkill, delay, null);
  2950. /* */ }
  2951. /* */
  2952. /* */ public static MaplePacket applyMonsterStatus(int oid, Map<MonsterStatus, Integer> stats, int skill, boolean monsterSkill, int delay, MobSkill mobskill) {
  2953. /* 3539 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2954. /* 3540 */ mplew.writeShort(SendPacketOpcode.APPLY_MONSTER_STATUS);
  2955. /* 3541 */ mplew.writeInt(oid);
  2956. /* 3542 */ mplew.writeLong(0L);
  2957. /* 3543 */ long mask = 0L;
  2958. /* 3544 */ for (MonsterStatus stat : stats.keySet()) {
  2959. /* 3545 */ mask |= stat.getValue();
  2960. /* */ }
  2961. /* 3547 */ mplew.writeLong(mask);
  2962. /* 3548 */ for (Integer val : stats.values()) {
  2963. /* 3549 */ mplew.writeShort(val.intValue());
  2964. /* 3550 */ if (monsterSkill) {
  2965. /* 3551 */ mplew.writeShort(mobskill.getSkillId());
  2966. /* 3552 */ mplew.writeShort(mobskill.getSkillLevel());
  2967. /* */ } else {
  2968. /* 3554 */ mplew.writeInt(skill);
  2969. /* */ }
  2970. /* 3556 */ mplew.writeShort(0);
  2971. /* */ }
  2972. /* 3558 */ mplew.writeShort(0);
  2973. /* 3559 */ mplew.write(2);
  2974. /* 3560 */ mplew.write(1);
  2975. /* 3561 */ mplew.write0(4);
  2976. /* 3562 */ return mplew.getPacket();
  2977. /* */ }
  2978. /* */
  2979. /* */ public static MaplePacket cancelMonsterStatus(int oid, Map<MonsterStatus, Integer> stats) {
  2980. /* 3566 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  2981. /* 3567 */ mplew.writeShort(SendPacketOpcode.CANCEL_MONSTER_STATUS);
  2982. /* 3568 */ mplew.writeInt(oid);
  2983. /* 3569 */ mplew.writeLong(0L);
  2984. /* 3570 */ long mask = 0L;
  2985. /* 3571 */ for (MonsterStatus stat : stats.keySet()) {
  2986. /* 3572 */ mask |= stat.getValue();
  2987. /* */ }
  2988. /* 3574 */ mplew.writeLong(mask);
  2989. /* 3575 */ mplew.write(1);
  2990. /* 3576 */ mplew.write(0);
  2991. /* 3577 */ mplew.write0(4);
  2992. /* 3578 */ return mplew.getPacket();
  2993. /* */ }
  2994. /* */
  2995. /* */ public static MaplePacket getClock(int time) {
  2996. /* 3582 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  2997. /* 3583 */ mplew.writeShort(SendPacketOpcode.CLOCK);
  2998. /* 3584 */ mplew.write(2);
  2999. /* 3585 */ mplew.writeInt(time);
  3000. /* 3586 */ return mplew.getPacket();
  3001. /* */ }
  3002. /* */
  3003. /* */ public static MaplePacket getClockTime(int hour, int min, int sec) {
  3004. /* 3590 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  3005. /* 3591 */ mplew.writeShort(SendPacketOpcode.CLOCK);
  3006. /* 3592 */ mplew.write(1);
  3007. /* 3593 */ mplew.write(hour);
  3008. /* 3594 */ mplew.write(min);
  3009. /* 3595 */ mplew.write(sec);
  3010. /* 3596 */ return mplew.getPacket();
  3011. /* */ }
  3012. /* */
  3013. /* */ public static MaplePacket spawnMist(int oid, int ownerCid, int skill, int level, MapleMist mist) {
  3014. /* 3600 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3015. /* 3601 */ mplew.writeShort(SendPacketOpcode.SPAWN_MIST);
  3016. /* 3602 */ mplew.writeInt(oid);
  3017. /* 3603 */ mplew.writeInt(mist.getMistType());
  3018. /* 3604 */ mplew.writeInt(ownerCid);
  3019. /* 3605 */ mplew.writeInt(skill);
  3020. /* 3606 */ mplew.write(level);
  3021. /* 3607 */ mplew.writeShort(mist.getSkillDelay());
  3022. /* 3608 */ mplew.writeInt(mist.getBox().x);
  3023. /* 3609 */ mplew.writeInt(mist.getBox().y);
  3024. /* 3610 */ mplew.writeInt(mist.getBox().x + mist.getBox().width);
  3025. /* 3611 */ mplew.writeInt(mist.getBox().y + mist.getBox().height);
  3026. /* 3612 */ mplew.writeInt(0);
  3027. /* 3613 */ return mplew.getPacket();
  3028. /* */ }
  3029. /* */
  3030. /* */ public static MaplePacket removeMist(int oid) {
  3031. /* 3617 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3032. /* 3618 */ mplew.writeShort(SendPacketOpcode.REMOVE_MIST);
  3033. /* 3619 */ mplew.writeInt(oid);
  3034. /* 3620 */ return mplew.getPacket();
  3035. /* */ }
  3036. /* */
  3037. /* */ public static MaplePacket damageSummon(int cid, int summonSkillId, int damage, int unkByte, int monsterIdFrom, byte direction) {
  3038. /* 3624 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3039. /* 3625 */ mplew.writeShort(SendPacketOpcode.DAMAGE_SUMMON);
  3040. /* 3626 */ mplew.writeInt(cid);
  3041. /* 3627 */ mplew.writeInt(summonSkillId);
  3042. /* 3628 */ mplew.write(unkByte);
  3043. /* 3629 */ mplew.writeInt(damage);
  3044. /* 3630 */ mplew.writeInt(monsterIdFrom);
  3045. /* 3631 */ mplew.write(direction);
  3046. /* 3632 */ return mplew.getPacket();
  3047. /* */ }
  3048. /* */
  3049. /* */ public static MaplePacket damageMonster(int oid, int damage) {
  3050. /* 3636 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3051. /* 3637 */ mplew.writeShort(SendPacketOpcode.DAMAGE_MONSTER);
  3052. /* 3638 */ mplew.writeInt(oid);
  3053. /* 3639 */ mplew.write(0);
  3054. /* 3640 */ mplew.writeInt(damage);
  3055. /* 3641 */ mplew.write(0);
  3056. /* 3642 */ mplew.write(0);
  3057. /* 3643 */ mplew.write(0);
  3058. /* 3644 */ return mplew.getPacket();
  3059. /* */ }
  3060. /* */
  3061. /* */ public static MaplePacket healMonster(int oid, int heal) {
  3062. /* 3648 */ return damageMonster(oid, -heal);
  3063. /* */ }
  3064. /* */
  3065. /* */ public static MaplePacket updateBuddylist(Collection<BuddylistEntry> buddylist) {
  3066. /* 3652 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3067. /* 3653 */ mplew.writeShort(SendPacketOpcode.BUDDYLIST);
  3068. /* 3654 */ mplew.write(7);
  3069. /* 3655 */ mplew.write(buddylist.size());
  3070. /* 3656 */ for (BuddylistEntry buddy : buddylist) {
  3071. /* 3657 */ mplew.writeInt(buddy.getCharacterId());
  3072. /* 3658 */ mplew.writeAsciiString(MiscTools.getRightPaddedStr(buddy.getName(), '\000', 13));
  3073. /* 3659 */ if ((buddy.isOnline()) && (buddy.isVisible())) {
  3074. /* 3660 */ mplew.write(0);
  3075. /* 3661 */ mplew.writeInt(buddy.getChannel() - 1);
  3076. /* 3662 */ } else if (!buddy.isOnline()) {
  3077. /* 3663 */ mplew.write(0);
  3078. /* 3664 */ mplew.writeInt(-1);
  3079. /* */ } else {
  3080. /* 3666 */ mplew.write(2);
  3081. /* 3667 */ mplew.writeInt(1528561664);
  3082. /* */ }
  3083. /* 3669 */ mplew.writeAsciiString(MiscTools.getRightPaddedStr(buddy.getGroup(), '\000', 13));
  3084. /* 3670 */ mplew.writeInt(0);
  3085. /* */ }
  3086. /* 3672 */ for (int x = 0; x < buddylist.size(); x++) {
  3087. /* 3673 */ mplew.writeInt(0);
  3088. /* */ }
  3089. /* 3675 */ return mplew.getPacket();
  3090. /* */ }
  3091. /* */
  3092. /* */ public static MaplePacket buddylistMessage(byte message) {
  3093. /* 3679 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  3094. /* 3680 */ mplew.writeShort(SendPacketOpcode.BUDDYLIST);
  3095. /* 3681 */ mplew.write(message);
  3096. /* 3682 */ return mplew.getPacket();
  3097. /* */ }
  3098. /* */
  3099. /* */ public static MaplePacket requestBuddylistAdd(int cidFrom, int cid, String nameFrom, int level, int job) {
  3100. /* 3686 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3101. /* 3687 */ mplew.writeShort(SendPacketOpcode.BUDDYLIST);
  3102. /* 3688 */ mplew.write(9);
  3103. /* 3689 */ mplew.writeInt(cidFrom);
  3104. /* 3690 */ mplew.writeMapleAsciiString(nameFrom);
  3105. /* 3691 */ mplew.writeInt(level);
  3106. /* 3692 */ mplew.writeInt(job);
  3107. /* 3693 */ mplew.writeInt(cidFrom);
  3108. /* 3694 */ mplew.writeAsciiString(MiscTools.getRightPaddedStr(nameFrom, '\000', 11));
  3109. /* 3695 */ mplew.write(0);
  3110. /* 3696 */ mplew.write(130);
  3111. /* 3697 */ mplew.write(1);
  3112. /* 3698 */ mplew.writeInt(16);
  3113. /* 3699 */ mplew.writeNullTerminatedAsciiString("Default Group");
  3114. /* 3700 */ mplew.writeInt(cid);
  3115. /* 3701 */ return mplew.getPacket();
  3116. /* */ }
  3117. /* */
  3118. /* */ public static MaplePacket updateBuddyChannel(int characterid, int channel) {
  3119. /* 3705 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(12);
  3120. /* 3706 */ mplew.writeShort(SendPacketOpcode.BUDDYLIST);
  3121. /* 3707 */ mplew.write(20);
  3122. /* 3708 */ mplew.writeInt(characterid);
  3123. /* 3709 */ mplew.write(0);
  3124. /* 3710 */ mplew.writeInt(channel);
  3125. /* 3711 */ return mplew.getPacket();
  3126. /* */ }
  3127. /* */
  3128. /* */ public static MaplePacket itemEffect(int characterid, int itemid) {
  3129. /* 3715 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(14);
  3130. /* 3716 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_EFFECT);
  3131. /* 3717 */ mplew.writeInt(characterid);
  3132. /* 3718 */ mplew.writeInt(itemid);
  3133. /* 3719 */ mplew.writeInt(0);
  3134. /* 3720 */ return mplew.getPacket();
  3135. /* */ }
  3136. /* */
  3137. /* */ public static MaplePacket updateBuddyCapacity(int capacity) {
  3138. /* 3724 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(4);
  3139. /* 3725 */ mplew.writeShort(SendPacketOpcode.BUDDYLIST);
  3140. /* 3726 */ mplew.write(21);
  3141. /* 3727 */ mplew.write(capacity);
  3142. /* 3728 */ return mplew.getPacket();
  3143. /* */ }
  3144. /* */
  3145. /* */ public static MaplePacket showChair(int characterid, int itemid) {
  3146. /* 3732 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(10);
  3147. /* 3733 */ mplew.writeShort(SendPacketOpcode.SHOW_CHAIR);
  3148. /* 3734 */ mplew.writeInt(characterid);
  3149. /* 3735 */ mplew.writeInt(itemid);
  3150. /* 3736 */ return mplew.getPacket();
  3151. /* */ }
  3152. /* */
  3153. /* */ public static MaplePacket cancelChair(int id) {
  3154. /* 3740 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3155. /* 3741 */ mplew.writeShort(SendPacketOpcode.CANCEL_CHAIR);
  3156. /* 3742 */ if (id == -1) {
  3157. /* 3743 */ mplew.write(0);
  3158. /* */ } else {
  3159. /* 3745 */ mplew.write(1);
  3160. /* 3746 */ mplew.writeShort(id);
  3161. /* */ }
  3162. /* 3748 */ return mplew.getPacket();
  3163. /* */ }
  3164. /* */
  3165. /* */ public static MaplePacket spawnReactor(MapleReactor reactor)
  3166. /* */ {
  3167. /* 3753 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3168. /* 3754 */ Point pos = reactor.getPosition();
  3169. /* 3755 */ mplew.writeShort(SendPacketOpcode.REACTOR_SPAWN);
  3170. /* 3756 */ mplew.writeInt(reactor.getObjectId());
  3171. /* 3757 */ mplew.writeInt(reactor.getId());
  3172. /* 3758 */ mplew.write(reactor.getState());
  3173. /* 3759 */ mplew.writeShort(pos.x);
  3174. /* 3760 */ mplew.writeShort(pos.y);
  3175. /* 3761 */ mplew.write(0);
  3176. /* 3762 */ mplew.writeShort(0);
  3177. /* 3763 */ return mplew.getPacket();
  3178. /* */ }
  3179. /* */
  3180. /* */ public static MaplePacket triggerReactor(MapleReactor reactor, int stance) {
  3181. /* 3767 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3182. /* 3768 */ Point pos = reactor.getPosition();
  3183. /* 3769 */ mplew.writeShort(SendPacketOpcode.REACTOR_HIT);
  3184. /* 3770 */ mplew.writeInt(reactor.getObjectId());
  3185. /* 3771 */ mplew.write(reactor.getState());
  3186. /* 3772 */ mplew.writeShort(pos.x);
  3187. /* 3773 */ mplew.writeShort(pos.y);
  3188. /* 3774 */ mplew.writeShort(stance);
  3189. /* 3775 */ mplew.write(0);
  3190. /* 3776 */ mplew.write(5);
  3191. /* 3777 */ return mplew.getPacket();
  3192. /* */ }
  3193. /* */
  3194. /* */ public static MaplePacket destroyReactor(MapleReactor reactor) {
  3195. /* 3781 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3196. /* 3782 */ Point pos = reactor.getPosition();
  3197. /* 3783 */ mplew.writeShort(SendPacketOpcode.REACTOR_DESTROY);
  3198. /* 3784 */ mplew.writeInt(reactor.getObjectId());
  3199. /* 3785 */ mplew.write(reactor.getState());
  3200. /* 3786 */ mplew.writeShort(pos.x);
  3201. /* 3787 */ mplew.writeShort(pos.y);
  3202. /* 3788 */ return mplew.getPacket();
  3203. /* */ }
  3204. /* */
  3205. /* */ public static MaplePacket musicChange(String song) {
  3206. /* 3792 */ return environmentChange(song, 6);
  3207. /* */ }
  3208. /* */
  3209. /* */ public static MaplePacket showEffect(String effect) {
  3210. /* 3796 */ return environmentChange(effect, 3);
  3211. /* */ }
  3212. /* */
  3213. /* */ public static MaplePacket playSound(String sound) {
  3214. /* 3800 */ return environmentChange(sound, 4);
  3215. /* */ }
  3216. /* */
  3217. /* */ public static MaplePacket environmentChange(String env, int mode) {
  3218. /* 3804 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3219. /* 3805 */ mplew.writeShort(SendPacketOpcode.BOSS_ENV);
  3220. /* 3806 */ mplew.write(mode);
  3221. /* 3807 */ mplew.writeMapleAsciiString(env);
  3222. /* 3808 */ return mplew.getPacket();
  3223. /* */ }
  3224. /* */
  3225. /* */ public static MaplePacket startMapEffect(String msg, int itemid, boolean active) {
  3226. /* 3812 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3227. /* 3813 */ mplew.writeShort(SendPacketOpcode.MAP_EFFECT);
  3228. /* 3814 */ mplew.write(active ? 0 : 1);
  3229. /* 3815 */ mplew.writeInt(itemid);
  3230. /* 3816 */ if (active) {
  3231. /* 3817 */ mplew.writeMapleAsciiString(msg);
  3232. /* */ }
  3233. /* 3819 */ return mplew.getPacket();
  3234. /* */ }
  3235. /* */
  3236. /* */ public static MaplePacket removeMapEffect() {
  3237. /* 3823 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  3238. /* 3824 */ mplew.writeShort(SendPacketOpcode.MAP_EFFECT);
  3239. /* 3825 */ mplew.write(0);
  3240. /* 3826 */ mplew.writeInt(0);
  3241. /* 3827 */ return mplew.getPacket();
  3242. /* */ }
  3243. /* */
  3244. /* */ public static MaplePacket showGuildInfo(MapleCharacter c) {
  3245. /* 3831 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3246. /* 3832 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3247. /* 3833 */ mplew.write(26);
  3248. /* 3834 */ if (c == null) {
  3249. /* 3835 */ mplew.write(0);
  3250. /* 3836 */ return mplew.getPacket();
  3251. /* */ }
  3252. /* 3838 */ MapleGuild g = c.getClient().getChannelServer().getGuild(c.getMGC());
  3253. /* 3839 */ if (g == null) {
  3254. /* 3840 */ mplew.write(0);
  3255. /* 3841 */ return mplew.getPacket();
  3256. /* */ }
  3257. /* 3843 */ c.setGuildRank(c.getGuildRank());
  3258. /* */
  3259. /* 3845 */ mplew.write(1);
  3260. /* 3846 */ mplew.writeInt(g.getId());
  3261. /* 3847 */ mplew.writeMapleAsciiString(g.getName());
  3262. /* 3848 */ for (int i = 1; i <= 5; i++) {
  3263. /* 3849 */ mplew.writeMapleAsciiString(g.getRankTitle(i));
  3264. /* */ }
  3265. /* 3851 */ Collection members = g.getMembers();
  3266. /* 3852 */ mplew.write(members.size());
  3267. /* 3853 */ for (MapleGuildCharacter mgc : members) {
  3268. /* 3854 */ mplew.writeInt(mgc.getId());
  3269. /* */ }
  3270. /* 3856 */ for (MapleGuildCharacter mgc : members) {
  3271. /* 3857 */ mplew.writeAsciiString(MiscTools.getRightPaddedStr(mgc.getName(), '\000', 13));
  3272. /* 3858 */ mplew.writeInt(mgc.getJobId());
  3273. /* 3859 */ mplew.writeInt(mgc.getLevel());
  3274. /* 3860 */ mplew.writeInt(mgc.getGuildRank());
  3275. /* 3861 */ mplew.writeInt(mgc.isOnline() ? 1 : 0);
  3276. /* 3862 */ mplew.writeInt(g.getSignature());
  3277. /* 3863 */ mplew.writeInt(mgc.getAllianceRank());
  3278. /* */ }
  3279. /* 3865 */ mplew.writeInt(g.getCapacity());
  3280. /* 3866 */ mplew.writeShort(g.getLogoBG());
  3281. /* 3867 */ mplew.write(g.getLogoBGColor());
  3282. /* 3868 */ mplew.writeShort(g.getLogo());
  3283. /* 3869 */ mplew.write(g.getLogoColor());
  3284. /* 3870 */ mplew.writeMapleAsciiString(g.getNotice());
  3285. /* 3871 */ mplew.writeInt(g.getGP());
  3286. /* 3872 */ mplew.writeInt(g.getAllianceId());
  3287. /* 3873 */ return mplew.getPacket();
  3288. /* */ }
  3289. /* */
  3290. /* */ public static MaplePacket guildMemberOnline(int gid, int cid, boolean bOnline) {
  3291. /* 3877 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(12);
  3292. /* 3878 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3293. /* 3879 */ mplew.write(61);
  3294. /* 3880 */ mplew.writeInt(gid);
  3295. /* 3881 */ mplew.writeInt(cid);
  3296. /* 3882 */ mplew.write(bOnline ? 1 : 0);
  3297. /* 3883 */ return mplew.getPacket();
  3298. /* */ }
  3299. /* */
  3300. /* */ public static MaplePacket guildInvite(int gid, String charName, int level, int job) {
  3301. /* 3887 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3302. /* 3888 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3303. /* 3889 */ mplew.write(5);
  3304. /* 3890 */ mplew.writeInt(gid);
  3305. /* 3891 */ mplew.writeMapleAsciiString(charName);
  3306. /* 3892 */ mplew.writeInt(level);
  3307. /* 3893 */ mplew.writeInt(job);
  3308. /* 3894 */ return mplew.getPacket();
  3309. /* */ }
  3310. /* */
  3311. /* */ public static MaplePacket denyGuildInvitation(String charname)
  3312. /* */ {
  3313. /* 3904 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3314. /* 3905 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3315. /* 3906 */ mplew.write(55);
  3316. /* 3907 */ mplew.writeMapleAsciiString(charname);
  3317. /* 3908 */ return mplew.getPacket();
  3318. /* */ }
  3319. /* */
  3320. /* */ public static MaplePacket genericGuildMessage(byte code) {
  3321. /* 3912 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  3322. /* 3913 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3323. /* 3914 */ mplew.write(code);
  3324. /* 3915 */ return mplew.getPacket();
  3325. /* */ }
  3326. /* */
  3327. /* */ public static MaplePacket newGuildMember(MapleGuildCharacter mgc) {
  3328. /* 3919 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3329. /* 3920 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3330. /* 3921 */ mplew.write(39);
  3331. /* 3922 */ mplew.writeInt(mgc.getGuildId());
  3332. /* 3923 */ mplew.writeInt(mgc.getId());
  3333. /* 3924 */ mplew.writeAsciiString(MiscTools.getRightPaddedStr(mgc.getName(), '\000', 13));
  3334. /* 3925 */ mplew.writeInt(mgc.getJobId());
  3335. /* 3926 */ mplew.writeInt(mgc.getLevel());
  3336. /* 3927 */ mplew.writeInt(mgc.getGuildRank());
  3337. /* 3928 */ mplew.writeInt(mgc.isOnline() ? 1 : 0);
  3338. /* 3929 */ mplew.writeInt(1);
  3339. /* 3930 */ mplew.writeInt(3);
  3340. /* 3931 */ return mplew.getPacket();
  3341. /* */ }
  3342. /* */
  3343. /* */ public static MaplePacket memberLeft(MapleGuildCharacter mgc, boolean bExpelled)
  3344. /* */ {
  3345. /* 3936 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3346. /* 3937 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3347. /* 3938 */ mplew.write(bExpelled ? 47 : 44);
  3348. /* 3939 */ mplew.writeInt(mgc.getGuildId());
  3349. /* 3940 */ mplew.writeInt(mgc.getId());
  3350. /* 3941 */ mplew.writeMapleAsciiString(mgc.getName());
  3351. /* 3942 */ return mplew.getPacket();
  3352. /* */ }
  3353. /* */
  3354. /* */ public static MaplePacket changeRank(MapleGuildCharacter mgc)
  3355. /* */ {
  3356. /* 3947 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(12);
  3357. /* 3948 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3358. /* 3949 */ mplew.write(64);
  3359. /* 3950 */ mplew.writeInt(mgc.getGuildId());
  3360. /* 3951 */ mplew.writeInt(mgc.getId());
  3361. /* 3952 */ mplew.write(mgc.getGuildRank());
  3362. /* 3953 */ return mplew.getPacket();
  3363. /* */ }
  3364. /* */
  3365. /* */ public static MaplePacket guildNotice(int gid, String notice) {
  3366. /* 3957 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3367. /* 3958 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3368. /* 3959 */ mplew.write(68);
  3369. /* 3960 */ mplew.writeInt(gid);
  3370. /* 3961 */ mplew.writeMapleAsciiString(notice);
  3371. /* 3962 */ return mplew.getPacket();
  3372. /* */ }
  3373. /* */
  3374. /* */ public static MaplePacket guildMemberLevelJobUpdate(MapleGuildCharacter mgc) {
  3375. /* 3966 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3376. /* 3967 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3377. /* 3968 */ mplew.write(60);
  3378. /* 3969 */ mplew.writeInt(mgc.getGuildId());
  3379. /* 3970 */ mplew.writeInt(mgc.getId());
  3380. /* 3971 */ mplew.writeInt(mgc.getLevel());
  3381. /* 3972 */ mplew.writeInt(mgc.getJobId());
  3382. /* 3973 */ return mplew.getPacket();
  3383. /* */ }
  3384. /* */
  3385. /* */ public static MaplePacket rankTitleChange(int gid, String[] ranks) {
  3386. /* 3977 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3387. /* 3978 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3388. /* 3979 */ mplew.write(62);
  3389. /* 3980 */ mplew.writeInt(gid);
  3390. /* 3981 */ for (int i = 0; i < 5; i++) {
  3391. /* 3982 */ mplew.writeMapleAsciiString(ranks[i]);
  3392. /* */ }
  3393. /* 3984 */ return mplew.getPacket();
  3394. /* */ }
  3395. /* */
  3396. /* */ public static MaplePacket guildDisband(int gid) {
  3397. /* 3988 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(8);
  3398. /* 3989 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3399. /* 3990 */ mplew.write(50);
  3400. /* 3991 */ mplew.writeInt(gid);
  3401. /* 3992 */ mplew.write(1);
  3402. /* 3993 */ return mplew.getPacket();
  3403. /* */ }
  3404. /* */
  3405. /* */ public static MaplePacket guildEmblemChange(int gid, short bg, byte bgcolor, short logo, byte logocolor) {
  3406. /* 3997 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3407. /* 3998 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3408. /* 3999 */ mplew.write(66);
  3409. /* 4000 */ mplew.writeInt(gid);
  3410. /* 4001 */ mplew.writeShort(bg);
  3411. /* 4002 */ mplew.write(bgcolor);
  3412. /* 4003 */ mplew.writeShort(logo);
  3413. /* 4004 */ mplew.write(logocolor);
  3414. /* 4005 */ return mplew.getPacket();
  3415. /* */ }
  3416. /* */
  3417. /* */ public static MaplePacket guildCapacityChange(int gid, int capacity) {
  3418. /* 4009 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(8);
  3419. /* 4010 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3420. /* 4011 */ mplew.write(58);
  3421. /* 4012 */ mplew.writeInt(gid);
  3422. /* 4013 */ mplew.write(capacity);
  3423. /* 4014 */ return mplew.getPacket();
  3424. /* */ }
  3425. /* */
  3426. /* */ public static void addThread(MaplePacketLittleEndianWriter mplew, ResultSet rs) throws SQLException {
  3427. /* 4018 */ mplew.writeInt(rs.getInt("localthreadid"));
  3428. /* 4019 */ mplew.writeInt(rs.getInt("postercid"));
  3429. /* 4020 */ mplew.writeMapleAsciiString(rs.getString("name"));
  3430. /* 4021 */ mplew.writeLong(getKoreanTimestamp(rs.getLong("timestamp")));
  3431. /* 4022 */ mplew.writeInt(rs.getInt("icon"));
  3432. /* 4023 */ mplew.writeInt(rs.getInt("replycount"));
  3433. /* */ }
  3434. /* */
  3435. /* */ public static MaplePacket BBSOperation(ResultSet rs, int start, byte mode) throws SQLException {
  3436. /* 4027 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3437. /* 4028 */ mplew.writeShort(SendPacketOpcode.BBS_OPERATION);
  3438. /* 4029 */ mplew.write(mode);
  3439. /* 4030 */ switch (mode) {
  3440. /* */ case 6:
  3441. /* 4032 */ if (!rs.last()) {
  3442. /* 4033 */ mplew.write(0);
  3443. /* 4034 */ mplew.writeInt(0);
  3444. /* 4035 */ mplew.writeInt(0);
  3445. /* 4036 */ return mplew.getPacket();
  3446. /* */ }
  3447. /* 4038 */ int threadCount = rs.getRow();
  3448. /* 4039 */ if (rs.getInt("localthreadid") == 0) {
  3449. /* 4040 */ mplew.write(1);
  3450. /* 4041 */ addThread(mplew, rs);
  3451. /* 4042 */ threadCount--;
  3452. /* */ } else {
  3453. /* 4044 */ mplew.write(0);
  3454. /* */ }
  3455. /* 4046 */ if (!rs.absolute(start + 1)) {
  3456. /* 4047 */ rs.first();
  3457. /* 4048 */ start = 0;
  3458. /* */ }
  3459. /* 4050 */ mplew.writeInt(threadCount);
  3460. /* 4051 */ mplew.writeInt(Math.min(10, threadCount - start));
  3461. /* 4052 */ for (int i = 0; i < Math.min(10, threadCount - start); i++) {
  3462. /* 4053 */ addThread(mplew, rs);
  3463. /* 4054 */ rs.next();
  3464. /* */ }
  3465. /* */ }
  3466. /* */
  3467. /* 4058 */ return mplew.getPacket();
  3468. /* */ }
  3469. /* */
  3470. /* */ public static MaplePacket showThread(int localthreadid, ResultSet threadRS, ResultSet repliesRS) throws SQLException, RuntimeException {
  3471. /* 4062 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3472. /* 4063 */ mplew.writeShort(SendPacketOpcode.BBS_OPERATION);
  3473. /* 4064 */ mplew.write(7);
  3474. /* 4065 */ mplew.writeInt(localthreadid);
  3475. /* 4066 */ mplew.writeInt(threadRS.getInt("postercid"));
  3476. /* 4067 */ mplew.writeLong(getKoreanTimestamp(threadRS.getLong("timestamp")));
  3477. /* 4068 */ mplew.writeMapleAsciiString(threadRS.getString("name"));
  3478. /* 4069 */ mplew.writeMapleAsciiString(threadRS.getString("startpost"));
  3479. /* 4070 */ mplew.writeInt(threadRS.getInt("icon"));
  3480. /* 4071 */ int replyCount = threadRS.getInt("replycount");
  3481. /* 4072 */ mplew.writeInt(replyCount);
  3482. /* */
  3483. /* 4074 */ for (int i = 0; (i < replyCount) && (repliesRS.next()); i++) {
  3484. /* 4075 */ mplew.writeInt(repliesRS.getInt("replyid"));
  3485. /* 4076 */ mplew.writeInt(repliesRS.getInt("postercid"));
  3486. /* 4077 */ mplew.writeLong(getKoreanTimestamp(repliesRS.getLong("timestamp")));
  3487. /* 4078 */ mplew.writeMapleAsciiString(repliesRS.getString("content"));
  3488. /* */ }
  3489. /* 4080 */ if ((i != replyCount) || (repliesRS.next())) {
  3490. /* 4081 */ System.out.println(i + " = i; Reply Count = " + replyCount);
  3491. /* 4082 */ throw new RuntimeException();
  3492. /* */ }
  3493. /* 4084 */ return mplew.getPacket();
  3494. /* */ }
  3495. /* */
  3496. /* */ public static MaplePacket showGuildRanks(int npcid, ResultSet rs) throws SQLException {
  3497. /* 4088 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3498. /* 4089 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3499. /* 4090 */ mplew.write(73);
  3500. /* 4091 */ mplew.writeInt(npcid);
  3501. /* 4092 */ if (!rs.last()) {
  3502. /* 4093 */ mplew.writeInt(0);
  3503. /* 4094 */ return mplew.getPacket();
  3504. /* */ }
  3505. /* 4096 */ mplew.writeInt(rs.getRow());
  3506. /* 4097 */ rs.beforeFirst();
  3507. /* 4098 */ while (rs.next()) {
  3508. /* 4099 */ mplew.writeMapleAsciiString(rs.getString("name"));
  3509. /* 4100 */ mplew.writeInt(rs.getInt("GP"));
  3510. /* 4101 */ mplew.writeInt(rs.getInt("logo"));
  3511. /* 4102 */ mplew.writeInt(rs.getInt("logoColor"));
  3512. /* 4103 */ mplew.writeInt(rs.getInt("logoBG"));
  3513. /* 4104 */ mplew.writeInt(rs.getInt("logoBGColor"));
  3514. /* */ }
  3515. /* 4106 */ return mplew.getPacket();
  3516. /* */ }
  3517. /* */
  3518. /* */ public static MaplePacket updateGP(int gid, int GP) {
  3519. /* 4110 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(11);
  3520. /* 4111 */ mplew.writeShort(SendPacketOpcode.GUILD_OPERATION);
  3521. /* 4112 */ mplew.write(72);
  3522. /* 4113 */ mplew.writeInt(gid);
  3523. /* 4114 */ mplew.writeInt(GP);
  3524. /* 4115 */ return mplew.getPacket();
  3525. /* */ }
  3526. /* */
  3527. /* */ public static MaplePacket skillEffect(MapleCharacter from, int skillId, int level, byte direction, int speed) {
  3528. /* 4119 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3529. /* 4120 */ mplew.writeShort(SendPacketOpcode.SKILL_EFFECT);
  3530. /* 4121 */ mplew.writeInt(from.getId());
  3531. /* 4122 */ mplew.writeInt(skillId);
  3532. /* 4123 */ mplew.write(level);
  3533. /* 4124 */ mplew.write(direction);
  3534. /* 4125 */ mplew.write(speed);
  3535. /* 4126 */ mplew.write0(5);
  3536. /* 4127 */ return mplew.getPacket();
  3537. /* */ }
  3538. /* */
  3539. /* */ public static MaplePacket skillCancel(MapleCharacter from, int skillId) {
  3540. /* 4131 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(10);
  3541. /* 4132 */ mplew.writeShort(SendPacketOpcode.CANCEL_SKILL_EFFECT);
  3542. /* 4133 */ mplew.writeInt(from.getId());
  3543. /* 4134 */ mplew.writeInt(skillId);
  3544. /* 4135 */ return mplew.getPacket();
  3545. /* */ }
  3546. /* */
  3547. /* */ public static MaplePacket showMagnet(int mobid, byte success) {
  3548. /* 4139 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(17);
  3549. /* 4140 */ mplew.writeShort(SendPacketOpcode.SHOW_MAGNET);
  3550. /* 4141 */ mplew.writeInt(mobid);
  3551. /* 4142 */ mplew.write(success);
  3552. /* 4143 */ mplew.write0(10);
  3553. /* 4144 */ return mplew.getPacket();
  3554. /* */ }
  3555. /* */
  3556. /* */ public static MaplePacket sendHint(String hint, int width, int height)
  3557. /* */ {
  3558. /* 4156 */ if (width < 1) {
  3559. /* 4157 */ width = hint.length() * 10;
  3560. /* 4158 */ if (width < 40) {
  3561. /* 4159 */ width = 40;
  3562. /* */ }
  3563. /* */ }
  3564. /* 4162 */ if (height < 5) {
  3565. /* 4163 */ height = 5;
  3566. /* */ }
  3567. /* 4165 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3568. /* 4166 */ mplew.writeShort(SendPacketOpcode.PLAYER_HINT);
  3569. /* 4167 */ mplew.writeMapleAsciiString(hint);
  3570. /* 4168 */ mplew.writeShort(width);
  3571. /* 4169 */ mplew.writeShort(height);
  3572. /* 4170 */ mplew.write(1);
  3573. /* 4171 */ return mplew.getPacket();
  3574. /* */ }
  3575. /* */
  3576. /* */ public static MaplePacket messengerInvite(String from, int messengerid) {
  3577. /* 4175 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3578. /* 4176 */ mplew.writeShort(SendPacketOpcode.MESSENGER);
  3579. /* 4177 */ mplew.write(3);
  3580. /* 4178 */ mplew.writeMapleAsciiString(from);
  3581. /* 4179 */ mplew.write(0);
  3582. /* 4180 */ mplew.writeInt(messengerid);
  3583. /* 4181 */ mplew.write(0);
  3584. /* 4182 */ return mplew.getPacket();
  3585. /* */ }
  3586. /* */
  3587. /* */ public static MaplePacket warpCS(MapleClient c, boolean mts) {
  3588. /* 4186 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3589. /* 4187 */ MapleCharacter chr = c.getPlayer();
  3590. /* 4188 */ mplew.writeShort(mts ? SendPacketOpcode.MTS_OPEN : SendPacketOpcode.CS_OPEN);
  3591. /* 4189 */ mplew.writeLong(-1L);
  3592. /* 4190 */ mplew.write(0);
  3593. /* 4191 */ addCharStats(mplew, chr);
  3594. /* 4192 */ mplew.writeShort(0);
  3595. /* 4193 */ mplew.write(0);
  3596. /* 4194 */ mplew.write(0);
  3597. /* 4195 */ addInventoryInfo(mplew, chr);
  3598. /* 4196 */ mplew.write(0);
  3599. /* 4197 */ mplew.writeShort(0);
  3600. /* 4198 */ mplew.writeShort(0);
  3601. /* 4199 */ mplew.writeShort(0);
  3602. /* 4200 */ mplew.writeShort(0);
  3603. /* 4201 */ mplew.writeShort(0);
  3604. /* 4202 */ mplew.writeShort(0);
  3605. /* 4203 */ mplew.writeShort(0);
  3606. /* 4204 */ mplew.writeShort(0);
  3607. /* 4205 */ for (int i = 0; i < 15; i++) {
  3608. /* 4206 */ mplew.write(CHAR_INFO_MAGIC);
  3609. /* */ }
  3610. /* 4208 */ mplew.writeInt(0);
  3611. /* 4209 */ mplew.write(0);
  3612. /* 4210 */ mplew.writeShort(0);
  3613. /* 4211 */ mplew.writeShort(0);
  3614. /* 4212 */ mplew.writeShort(0);
  3615. /* 4213 */ mplew.writeShort(0);
  3616. /* 4214 */ if (!mts) {
  3617. /* 4215 */ mplew.write(1);
  3618. /* */ }
  3619. /* 4217 */ mplew.writeMapleAsciiString(chr.getClient().getAccountName());
  3620. /* 4218 */ if (mts) {
  3621. /* 4219 */ mplew.write(HexTool.getByteArrayFromHexString("88 13 00 00 07 00 00 00 F4 01 00 00 18 00 00 00 A8 00 00 00 70 AA A7 C5 4E C1 CA 01"));
  3622. /* */ } else {
  3623. /* 4221 */ mplew.write0(127);
  3624. /* 4222 */ for (int i = 1; i <= 8; i++) {
  3625. /* 4223 */ for (int j = 0; j < 2; j++) {
  3626. /* 4224 */ mplew.writeInt(i);
  3627. /* 4225 */ mplew.writeInt(j);
  3628. /* 4226 */ mplew.writeInt(50200004);
  3629. /* 4227 */ mplew.writeInt(i);
  3630. /* 4228 */ mplew.writeInt(j);
  3631. /* 4229 */ mplew.writeInt(50200069);
  3632. /* 4230 */ mplew.writeInt(i);
  3633. /* 4231 */ mplew.writeInt(j);
  3634. /* 4232 */ mplew.writeInt(50200117);
  3635. /* 4233 */ mplew.writeInt(i);
  3636. /* 4234 */ mplew.writeInt(j);
  3637. /* 4235 */ mplew.writeInt(50100008);
  3638. /* 4236 */ mplew.writeInt(i);
  3639. /* 4237 */ mplew.writeInt(j);
  3640. /* 4238 */ mplew.writeInt(50000047);
  3641. /* */ }
  3642. /* */ }
  3643. /* 4241 */ mplew.write0(7);
  3644. /* 4242 */ mplew.writeInt(120);
  3645. /* */ }
  3646. /* 4244 */ return mplew.getPacket();
  3647. /* */ }
  3648. /* */
  3649. /* */ public static MaplePacket sendSpouseChat(String coupleName, String msg, boolean error, boolean isSelf) {
  3650. /* 4248 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3651. /* 4249 */ mplew.writeShort(SendPacketOpcode.SPOUSE_CHAT);
  3652. /* 4250 */ if (isSelf) {
  3653. /* 4251 */ mplew.write(4);
  3654. /* 4252 */ mplew.write(error ? 1 : 0);
  3655. /* */ } else {
  3656. /* 4254 */ mplew.write(5);
  3657. /* 4255 */ mplew.writeMapleAsciiString(coupleName);
  3658. /* 4256 */ mplew.write(16);
  3659. /* */ }
  3660. /* 4258 */ mplew.writeMapleAsciiString(msg);
  3661. /* 4259 */ return mplew.getPacket();
  3662. /* */ }
  3663. /* */
  3664. /* */ public static MaplePacket addMessengerPlayer(String from, MapleCharacter chr, int position, int channel) {
  3665. /* 4263 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3666. /* 4264 */ mplew.writeShort(SendPacketOpcode.MESSENGER);
  3667. /* 4265 */ mplew.write(0);
  3668. /* 4266 */ mplew.write(position);
  3669. /* 4267 */ addCharLook(mplew, chr, true, false);
  3670. /* 4268 */ mplew.writeMapleAsciiString(from);
  3671. /* 4269 */ mplew.write(channel);
  3672. /* 4270 */ mplew.write(1);
  3673. /* 4271 */ return mplew.getPacket();
  3674. /* */ }
  3675. /* */
  3676. /* */ public static MaplePacket removeMessengerPlayer(int position) {
  3677. /* 4275 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3678. /* 4276 */ mplew.writeShort(SendPacketOpcode.MESSENGER);
  3679. /* 4277 */ mplew.write(2);
  3680. /* 4278 */ mplew.write(position);
  3681. /* 4279 */ return mplew.getPacket();
  3682. /* */ }
  3683. /* */
  3684. /* */ public static MaplePacket updateMessengerPlayer(String from, MapleCharacter chr, int position, int channel) {
  3685. /* 4283 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3686. /* 4284 */ mplew.writeShort(SendPacketOpcode.MESSENGER);
  3687. /* 4285 */ mplew.write(7);
  3688. /* 4286 */ mplew.write(position);
  3689. /* 4287 */ addCharLook(mplew, chr, true, false);
  3690. /* 4288 */ mplew.writeMapleAsciiString(from);
  3691. /* 4289 */ mplew.write(channel);
  3692. /* 4290 */ mplew.write(0);
  3693. /* 4291 */ return mplew.getPacket();
  3694. /* */ }
  3695. /* */
  3696. /* */ public static MaplePacket joinMessenger(int position) {
  3697. /* 4295 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3698. /* 4296 */ mplew.writeShort(SendPacketOpcode.MESSENGER);
  3699. /* 4297 */ mplew.write(1);
  3700. /* 4298 */ mplew.write(position);
  3701. /* 4299 */ return mplew.getPacket();
  3702. /* */ }
  3703. /* */
  3704. /* */ public static MaplePacket messengerChat(String text) {
  3705. /* 4303 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3706. /* 4304 */ mplew.writeShort(SendPacketOpcode.MESSENGER);
  3707. /* 4305 */ mplew.write(6);
  3708. /* 4306 */ mplew.writeMapleAsciiString(text);
  3709. /* 4307 */ return mplew.getPacket();
  3710. /* */ }
  3711. /* */
  3712. /* */ public static MaplePacket messengerNote(String text, int mode, int mode2) {
  3713. /* 4311 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3714. /* 4312 */ mplew.writeShort(SendPacketOpcode.MESSENGER);
  3715. /* 4313 */ mplew.write(mode);
  3716. /* 4314 */ mplew.writeMapleAsciiString(text);
  3717. /* 4315 */ mplew.write(mode2);
  3718. /* 4316 */ return mplew.getPacket();
  3719. /* */ }
  3720. /* */
  3721. /* */ public static MaplePacket updatePet(MaplePet pet) {
  3722. /* 4320 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3723. /* 4321 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  3724. /* 4322 */ mplew.write(HexTool.getByteArrayFromHexString("00 02 03 05"));
  3725. /* 4323 */ mplew.write(pet.getPosition());
  3726. /* 4324 */ mplew.writeShort(0);
  3727. /* 4325 */ mplew.write(5);
  3728. /* 4326 */ mplew.write(pet.getPosition());
  3729. /* 4327 */ mplew.write(0);
  3730. /* 4328 */ addPetInfo(mplew, pet);
  3731. /* 4329 */ return mplew.getPacket();
  3732. /* */ }
  3733. /* */
  3734. /* */ public static MaplePacket showPet(MapleCharacter chr, MaplePet pet, boolean remove, boolean hunger) {
  3735. /* 4333 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3736. /* 4334 */ mplew.writeShort(SendPacketOpcode.SPAWN_PET);
  3737. /* 4335 */ mplew.writeInt(chr.getId());
  3738. /* 4336 */ mplew.write(chr.getPetIndex(pet));
  3739. /* 4337 */ if (remove) {
  3740. /* 4338 */ mplew.write(0);
  3741. /* 4339 */ mplew.write(hunger ? 1 : 0);
  3742. /* */ } else {
  3743. /* 4341 */ mplew.write(1);
  3744. /* 4342 */ mplew.write(1);
  3745. /* 4343 */ mplew.writeInt(pet.getItemId());
  3746. /* 4344 */ mplew.writeMapleAsciiString(pet.getName());
  3747. /* 4345 */ mplew.writeInt(pet.getPetId());
  3748. /* 4346 */ mplew.writeInt(0);
  3749. /* 4347 */ mplew.writeShort(pet.getPos().x);
  3750. /* 4348 */ mplew.writeShort(pet.getPos().y);
  3751. /* 4349 */ mplew.write(pet.getStance());
  3752. /* 4350 */ mplew.writeInt(pet.getFh());
  3753. /* */ }
  3754. /* 4352 */ return mplew.getPacket();
  3755. /* */ }
  3756. /* */
  3757. /* */ public static MaplePacket movePet(int cid, int pid, int slot, List<LifeMovementFragment> moves) {
  3758. /* 4356 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3759. /* 4357 */ mplew.writeShort(SendPacketOpcode.MOVE_PET);
  3760. /* 4358 */ mplew.writeInt(cid);
  3761. /* 4359 */ mplew.write(slot);
  3762. /* 4360 */ mplew.writeInt(pid);
  3763. /* 4361 */ mplew.writeInt(0);
  3764. /* 4362 */ serializeMovementList(mplew, moves);
  3765. /* 4363 */ return mplew.getPacket();
  3766. /* */ }
  3767. /* */
  3768. /* */ public static MaplePacket petChat(int cid, int index, int act, String text) {
  3769. /* 4367 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3770. /* 4368 */ mplew.writeShort(SendPacketOpcode.PET_CHAT);
  3771. /* 4369 */ mplew.writeInt(cid);
  3772. /* 4370 */ mplew.write(index);
  3773. /* 4371 */ mplew.write(0);
  3774. /* 4372 */ mplew.write(act);
  3775. /* 4373 */ mplew.writeMapleAsciiString(text);
  3776. /* 4374 */ mplew.write(0);
  3777. /* 4375 */ return mplew.getPacket();
  3778. /* */ }
  3779. /* */
  3780. /* */ public static MaplePacket commandResponse(int cid, int index, int animation, boolean success) {
  3781. /* 4379 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3782. /* 4380 */ mplew.writeShort(SendPacketOpcode.PET_COMMAND);
  3783. /* 4381 */ mplew.writeInt(cid);
  3784. /* 4382 */ mplew.write(index);
  3785. /* 4383 */ mplew.write((animation == 1) && (success) ? 1 : 0);
  3786. /* 4384 */ mplew.write(animation);
  3787. /* 4385 */ mplew.writeShort((animation != 1) && (success) ? 1 : 0);
  3788. /* 4386 */ mplew.writeInt(0);
  3789. /* 4387 */ return mplew.getPacket();
  3790. /* */ }
  3791. /* */
  3792. /* */ public static MaplePacket showOwnPetLevelUp(int index) {
  3793. /* 4391 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3794. /* 4392 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_GAIN_INCHAT);
  3795. /* 4393 */ mplew.write(4);
  3796. /* 4394 */ mplew.write(0);
  3797. /* 4395 */ mplew.write(index);
  3798. /* 4396 */ return mplew.getPacket();
  3799. /* */ }
  3800. /* */
  3801. /* */ public static MaplePacket showPetLevelUp(MapleCharacter chr, int index) {
  3802. /* 4400 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3803. /* 4401 */ mplew.writeShort(SendPacketOpcode.SHOW_FOREIGN_EFFECT);
  3804. /* 4402 */ mplew.writeInt(chr.getId());
  3805. /* 4403 */ mplew.write(4);
  3806. /* 4404 */ mplew.write(0);
  3807. /* 4405 */ mplew.write(index);
  3808. /* 4406 */ return mplew.getPacket();
  3809. /* */ }
  3810. /* */
  3811. /* */ public static MaplePacket changePetName(MapleCharacter chr, String newname, int slot) {
  3812. /* 4410 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3813. /* 4411 */ mplew.writeShort(SendPacketOpcode.PET_NAMECHANGE);
  3814. /* 4412 */ mplew.writeInt(chr.getId());
  3815. /* 4413 */ mplew.write(0);
  3816. /* 4414 */ mplew.writeMapleAsciiString(newname);
  3817. /* 4415 */ mplew.write(0);
  3818. /* 4416 */ return mplew.getPacket();
  3819. /* */ }
  3820. /* */
  3821. /* */ public static MaplePacket petStatUpdate(MapleCharacter chr) {
  3822. /* 4420 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3823. /* 4421 */ mplew.writeShort(SendPacketOpcode.UPDATE_STATS);
  3824. /* 4422 */ int mask = 0;
  3825. /* 4423 */ mask |= MapleStat.PET.getValue();
  3826. /* 4424 */ mplew.write(0);
  3827. /* 4425 */ mplew.writeInt(mask);
  3828. /* 4426 */ MaplePet[] pets = chr.getPets();
  3829. /* 4427 */ for (int i = 0; i < 3; i++) {
  3830. /* 4428 */ if (pets[i] != null) {
  3831. /* 4429 */ mplew.writeInt(pets[i].getPetId());
  3832. /* 4430 */ mplew.writeInt(0);
  3833. /* */ } else {
  3834. /* 4432 */ mplew.writeLong(0L);
  3835. /* */ }
  3836. /* */ }
  3837. /* 4435 */ mplew.write(1);
  3838. /* 4436 */ mplew.write(1);
  3839. /* 4437 */ return mplew.getPacket();
  3840. /* */ }
  3841. /* */
  3842. /* */ public static MaplePacket showForcedEquip() {
  3843. /* 4441 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3844. /* 4442 */ mplew.writeShort(SendPacketOpcode.FORCED_MAP_EQUIP);
  3845. /* 4443 */ return mplew.getPacket();
  3846. /* */ }
  3847. /* */
  3848. /* */ public static MaplePacket summonSkill(int cid, int summonSkillId, int newStance) {
  3849. /* 4447 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3850. /* 4448 */ mplew.writeShort(SendPacketOpcode.SUMMON_SKILL);
  3851. /* 4449 */ mplew.writeInt(cid);
  3852. /* 4450 */ mplew.writeInt(summonSkillId);
  3853. /* 4451 */ mplew.write(newStance);
  3854. /* 4452 */ return mplew.getPacket();
  3855. /* */ }
  3856. /* */
  3857. /* */ public static MaplePacket skillCooldown(int sid, int time) {
  3858. /* 4456 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3859. /* 4457 */ mplew.writeShort(SendPacketOpcode.COOLDOWN);
  3860. /* 4458 */ mplew.writeInt(sid);
  3861. /* 4459 */ mplew.writeShort(time);
  3862. /* 4460 */ return mplew.getPacket();
  3863. /* */ }
  3864. /* */
  3865. /* */ public static MaplePacket skillBookSuccess(MapleCharacter chr, int skillid, int maxlevel, boolean canuse, boolean success) {
  3866. /* 4464 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3867. /* 4465 */ mplew.writeShort(SendPacketOpcode.USE_SKILL_BOOK);
  3868. /* 4466 */ mplew.write(0);
  3869. /* 4467 */ mplew.writeInt(chr.getId());
  3870. /* 4468 */ mplew.write(1);
  3871. /* 4469 */ mplew.writeInt(skillid);
  3872. /* 4470 */ mplew.writeInt(maxlevel);
  3873. /* 4471 */ mplew.write(canuse ? 1 : 0);
  3874. /* 4472 */ mplew.write(success ? 1 : 0);
  3875. /* 4473 */ return mplew.getPacket();
  3876. /* */ }
  3877. /* */
  3878. /* */ public static MaplePacket getMacros(SkillMacro[] macros) {
  3879. /* 4477 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3880. /* 4478 */ mplew.writeShort(SendPacketOpcode.SKILL_MACRO);
  3881. /* 4479 */ mplew.write(5);
  3882. /* 4480 */ for (int i = 0; i < 5; i++) {
  3883. /* 4481 */ SkillMacro macro = macros[i];
  3884. /* 4482 */ if (macro != null) {
  3885. /* 4483 */ mplew.writeMapleAsciiString(macro.getName());
  3886. /* 4484 */ mplew.write(macro.getShout());
  3887. /* 4485 */ mplew.writeInt(macro.getSkill1());
  3888. /* 4486 */ mplew.writeInt(macro.getSkill2());
  3889. /* 4487 */ mplew.writeInt(macro.getSkill3());
  3890. /* */ } else {
  3891. /* 4489 */ mplew.write0(15);
  3892. /* */ }
  3893. /* */ }
  3894. /* 4492 */ return mplew.getPacket();
  3895. /* */ }
  3896. /* */
  3897. /* */ public static MaplePacket getPlayerNPC(PlayerNPCs npc) {
  3898. /* 4496 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3899. /* 4497 */ mplew.writeShort(SendPacketOpcode.PLAYER_NPC);
  3900. /* 4498 */ mplew.write(1);
  3901. /* 4499 */ mplew.writeInt(npc.getId());
  3902. /* 4500 */ mplew.writeMapleAsciiString(npc.getName());
  3903. /* 4501 */ mplew.write(0);
  3904. /* 4502 */ mplew.write(npc.getSkin());
  3905. /* 4503 */ mplew.writeInt(npc.getFace());
  3906. /* 4504 */ mplew.write(0);
  3907. /* 4505 */ mplew.writeInt(npc.getHair());
  3908. /* 4506 */ Map equip = npc.getEquips();
  3909. /* 4507 */ Map myEquip = new LinkedHashMap();
  3910. /* 4508 */ for (Iterator i$ = equip.keySet().iterator(); i$.hasNext(); ) { byte position = ((Byte)i$.next()).byteValue();
  3911. /* 4509 */ byte pos = (byte)(position * -1);
  3912. /* 4510 */ if (pos > 100) {
  3913. /* 4511 */ pos = (byte)(pos - 100);
  3914. /* 4512 */ myEquip.put(Byte.valueOf(pos), equip.get(Byte.valueOf(position)));
  3915. /* */ }
  3916. /* 4514 */ else if (myEquip.get(Byte.valueOf(pos)) == null) {
  3917. /* 4515 */ myEquip.put(Byte.valueOf(pos), equip.get(Byte.valueOf(position)));
  3918. /* */ }
  3919. /* */ }
  3920. /* */
  3921. /* 4519 */ for (Map.Entry entry : myEquip.entrySet()) {
  3922. /* 4520 */ mplew.write(((Byte)entry.getKey()).byteValue());
  3923. /* 4521 */ mplew.writeInt(((Integer)entry.getValue()).intValue());
  3924. /* */ }
  3925. /* 4523 */ mplew.writeShort(-1);
  3926. /* 4524 */ Integer cWeapon = (Integer)equip.get(Byte.valueOf(-111));
  3927. /* 4525 */ if (cWeapon != null)
  3928. /* 4526 */ mplew.writeInt(cWeapon.intValue());
  3929. /* */ else {
  3930. /* 4528 */ mplew.writeInt(0);
  3931. /* */ }
  3932. /* 4530 */ for (int i = 0; i < 12; i++) {
  3933. /* 4531 */ mplew.write(0);
  3934. /* */ }
  3935. /* 4533 */ return mplew.getPacket();
  3936. /* */ }
  3937. /* */
  3938. /* */ public static MaplePacket showAriantScoreboard() {
  3939. /* 4537 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3940. /* 4538 */ mplew.writeShort(SendPacketOpcode.ARIANT_SCOREBOARD);
  3941. /* 4539 */ return mplew.getPacket();
  3942. /* */ }
  3943. /* */
  3944. /* */ public static MaplePacket catchMonster(int monsobid, int itemid, byte success)
  3945. /* */ {
  3946. /* 4559 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3947. /* 4560 */ if (itemid == 2270002)
  3948. /* 4561 */ mplew.writeShort(SendPacketOpcode.CATCH_ARIANT);
  3949. /* */ else {
  3950. /* 4563 */ mplew.writeShort(SendPacketOpcode.CATCH_MOUNT);
  3951. /* */ }
  3952. /* 4565 */ mplew.writeInt(monsobid);
  3953. /* 4566 */ mplew.writeInt(itemid);
  3954. /* 4567 */ mplew.write(success);
  3955. /* 4568 */ return mplew.getPacket();
  3956. /* */ }
  3957. /* */
  3958. /* */ public static MaplePacket showAllCharacter(int chars, int unk) {
  3959. /* 4572 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3960. /* 4573 */ mplew.writeShort(SendPacketOpcode.ALL_CHARLIST);
  3961. /* 4574 */ mplew.write(1);
  3962. /* 4575 */ mplew.writeInt(chars);
  3963. /* 4576 */ mplew.writeInt(unk);
  3964. /* 4577 */ return mplew.getPacket();
  3965. /* */ }
  3966. /* */
  3967. /* */ public static MaplePacket showAllCharacterInfo(int worldid, List<MapleCharacter> chars) {
  3968. /* 4581 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3969. /* 4582 */ mplew.writeShort(SendPacketOpcode.ALL_CHARLIST);
  3970. /* 4583 */ mplew.write(0);
  3971. /* 4584 */ mplew.write(worldid);
  3972. /* 4585 */ mplew.write(chars.size());
  3973. /* 4586 */ for (MapleCharacter chr : chars) {
  3974. /* 4587 */ addCharEntry(mplew, chr, true);
  3975. /* */ }
  3976. /* 4589 */ return mplew.getPacket();
  3977. /* */ }
  3978. /* */
  3979. /* */ public static MaplePacket updateMount(int charid, MapleMount mount, boolean levelup) {
  3980. /* 4593 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3981. /* 4594 */ mplew.writeShort(SendPacketOpcode.UPDATE_MOUNT);
  3982. /* 4595 */ mplew.writeInt(charid);
  3983. /* 4596 */ mplew.writeInt(mount.getLevel());
  3984. /* 4597 */ mplew.writeInt(mount.getExp());
  3985. /* 4598 */ mplew.writeInt(mount.getTiredness());
  3986. /* 4599 */ mplew.write(levelup ? 1 : 0);
  3987. /* 4600 */ return mplew.getPacket();
  3988. /* */ }
  3989. /* */
  3990. /* */ public static MaplePacket getBoatEffect(boolean type) {
  3991. /* 4604 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3992. /* 4605 */ mplew.writeShort(SendPacketOpcode.BOAT_EFFECT);
  3993. /* 4606 */ mplew.writeShort(type ? 1 : 2);
  3994. /* 4607 */ return mplew.getPacket();
  3995. /* */ }
  3996. /* */
  3997. /* */ public static MaplePacket getMiniGame(MapleClient c, MapleMiniGame minigame, boolean owner, int piece) {
  3998. /* 4611 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  3999. /* 4612 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4000. /* 4613 */ mplew.write(5);
  4001. /* 4614 */ mplew.write(1);
  4002. /* 4615 */ mplew.write(2);
  4003. /* 4616 */ mplew.write(owner ? 0 : 1);
  4004. /* 4617 */ mplew.write(0);
  4005. /* 4618 */ addCharLook(mplew, minigame.getOwner(), false, false);
  4006. /* 4619 */ mplew.writeMapleAsciiString(minigame.getOwner().getName());
  4007. /* 4620 */ mplew.writeShort(minigame.getOwner().getJob().getId());
  4008. /* 4621 */ if (minigame.getVisitor() != null) {
  4009. /* 4622 */ MapleCharacter visitor = minigame.getVisitor();
  4010. /* 4623 */ mplew.write(1);
  4011. /* 4624 */ addCharLook(mplew, visitor, false, true);
  4012. /* 4625 */ mplew.writeMapleAsciiString(visitor.getName());
  4013. /* */ }
  4014. /* 4627 */ mplew.write(255);
  4015. /* 4628 */ mplew.write(0);
  4016. /* 4629 */ mplew.writeInt(1);
  4017. /* 4630 */ mplew.writeInt(minigame.getOwner().getMiniGamePoints("wins", true));
  4018. /* 4631 */ mplew.writeInt(minigame.getOwner().getMiniGamePoints("ties", true));
  4019. /* 4632 */ mplew.writeInt(minigame.getOwner().getMiniGamePoints("losses", true));
  4020. /* 4633 */ mplew.writeInt(2000);
  4021. /* 4634 */ if (minigame.getVisitor() != null) {
  4022. /* 4635 */ MapleCharacter visitor = minigame.getVisitor();
  4023. /* 4636 */ mplew.write(1);
  4024. /* 4637 */ mplew.writeInt(1);
  4025. /* 4638 */ mplew.writeInt(visitor.getMiniGamePoints("wins", true));
  4026. /* 4639 */ mplew.writeInt(visitor.getMiniGamePoints("ties", true));
  4027. /* 4640 */ mplew.writeInt(visitor.getMiniGamePoints("losses", true));
  4028. /* 4641 */ mplew.writeInt(2000);
  4029. /* */ }
  4030. /* 4643 */ mplew.write(255);
  4031. /* 4644 */ mplew.writeMapleAsciiString(minigame.getDescription());
  4032. /* 4645 */ mplew.write(piece);
  4033. /* 4646 */ mplew.write(0);
  4034. /* 4647 */ return mplew.getPacket();
  4035. /* */ }
  4036. /* */
  4037. /* */ public static MaplePacket getMiniGameReady(MapleMiniGame game) {
  4038. /* 4651 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  4039. /* 4652 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4040. /* 4653 */ mplew.write(PlayerInteractionHandler.Action.READY.getCode());
  4041. /* 4654 */ return mplew.getPacket();
  4042. /* */ }
  4043. /* */
  4044. /* */ public static MaplePacket getMiniGameUnReady(MapleMiniGame game) {
  4045. /* 4658 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  4046. /* 4659 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4047. /* 4660 */ mplew.write(PlayerInteractionHandler.Action.UN_READY.getCode());
  4048. /* 4661 */ return mplew.getPacket();
  4049. /* */ }
  4050. /* */
  4051. /* */ public static MaplePacket getMiniGameStart(MapleMiniGame game, int loser) {
  4052. /* 4665 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(4);
  4053. /* 4666 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4054. /* 4667 */ mplew.write(PlayerInteractionHandler.Action.START.getCode());
  4055. /* 4668 */ mplew.write(loser);
  4056. /* 4669 */ return mplew.getPacket();
  4057. /* */ }
  4058. /* */
  4059. /* */ public static MaplePacket getMiniGameSkipOwner(MapleMiniGame game) {
  4060. /* 4673 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(4);
  4061. /* 4674 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4062. /* 4675 */ mplew.write(PlayerInteractionHandler.Action.SKIP.getCode());
  4063. /* 4676 */ mplew.write(1);
  4064. /* 4677 */ return mplew.getPacket();
  4065. /* */ }
  4066. /* */
  4067. /* */ public static MaplePacket getMiniGameRequestTie(MapleMiniGame game) {
  4068. /* 4681 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  4069. /* 4682 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4070. /* 4683 */ mplew.write(PlayerInteractionHandler.Action.REQUEST_TIE.getCode());
  4071. /* 4684 */ return mplew.getPacket();
  4072. /* */ }
  4073. /* */
  4074. /* */ public static MaplePacket getMiniGameDenyTie(MapleMiniGame game) {
  4075. /* 4688 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  4076. /* 4689 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4077. /* 4690 */ mplew.write(PlayerInteractionHandler.Action.ANSWER_TIE.getCode());
  4078. /* 4691 */ mplew.write(0);
  4079. /* 4692 */ return mplew.getPacket();
  4080. /* */ }
  4081. /* */
  4082. /* */ public static MaplePacket getMiniGameFull() {
  4083. /* 4696 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(5);
  4084. /* 4697 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4085. /* 4698 */ mplew.writeShort(PlayerInteractionHandler.Action.ROOM.getCode());
  4086. /* 4699 */ mplew.write(2);
  4087. /* 4700 */ return mplew.getPacket();
  4088. /* */ }
  4089. /* */
  4090. /* */ public static MaplePacket getMiniGameSkipVisitor(MapleMiniGame game) {
  4091. /* 4704 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(4);
  4092. /* 4705 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4093. /* 4706 */ mplew.write(PlayerInteractionHandler.Action.SKIP.getCode());
  4094. /* 4707 */ mplew.write(0);
  4095. /* 4708 */ return mplew.getPacket();
  4096. /* */ }
  4097. /* */
  4098. /* */ public static MaplePacket getMiniGameMoveOmok(MapleMiniGame game, int move1, int move2, int move3) {
  4099. /* 4712 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(12);
  4100. /* 4713 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4101. /* 4714 */ mplew.write(PlayerInteractionHandler.Action.MOVE_OMOK.getCode());
  4102. /* 4715 */ mplew.writeInt(move1);
  4103. /* 4716 */ mplew.writeInt(move2);
  4104. /* 4717 */ mplew.write(move3);
  4105. /* 4718 */ return mplew.getPacket();
  4106. /* */ }
  4107. /* */
  4108. /* */ public static MaplePacket getMiniGameNewVisitor(MapleCharacter c, int slot) {
  4109. /* 4722 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4110. /* 4723 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4111. /* 4724 */ mplew.write(PlayerInteractionHandler.Action.VISIT.getCode());
  4112. /* 4725 */ mplew.write(slot);
  4113. /* 4726 */ addCharLook(mplew, c, false, false);
  4114. /* 4727 */ mplew.writeMapleAsciiString(c.getName());
  4115. /* 4728 */ mplew.writeShort(0);
  4116. /* 4729 */ mplew.writeInt(1);
  4117. /* 4730 */ mplew.writeInt(c.getMiniGamePoints("wins", true));
  4118. /* 4731 */ mplew.writeInt(c.getMiniGamePoints("ties", true));
  4119. /* 4732 */ mplew.writeInt(c.getMiniGamePoints("losses", true));
  4120. /* 4733 */ mplew.writeInt(2000);
  4121. /* 4734 */ return mplew.getPacket();
  4122. /* */ }
  4123. /* */
  4124. /* */ public static MaplePacket getMiniGameRemoveVisitor() {
  4125. /* 4738 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  4126. /* 4739 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4127. /* 4740 */ mplew.write(PlayerInteractionHandler.Action.EXIT.getCode());
  4128. /* 4741 */ mplew.writeShort(1);
  4129. /* 4742 */ return mplew.getPacket();
  4130. /* */ }
  4131. /* */
  4132. /* */ private static MaplePacket getMiniGameResult(MapleMiniGame game, int win, int lose, int tie, int result, int forfeit, boolean omok) {
  4133. /* 4746 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4134. /* 4747 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4135. /* 4748 */ mplew.write(PlayerInteractionHandler.Action.GET_RESULT.getCode());
  4136. /* 4749 */ if ((tie == 0) && (forfeit != 1))
  4137. /* 4750 */ mplew.write(0);
  4138. /* 4751 */ else if (tie == 1)
  4139. /* 4752 */ mplew.write(1);
  4140. /* 4753 */ else if (forfeit == 1) {
  4141. /* 4754 */ mplew.write(2);
  4142. /* */ }
  4143. /* 4756 */ mplew.write(0);
  4144. /* 4757 */ mplew.writeInt(1);
  4145. /* 4758 */ mplew.writeInt(game.getOwner().getMiniGamePoints("wins", omok) + win);
  4146. /* 4759 */ mplew.writeInt(game.getOwner().getMiniGamePoints("ties", omok) + tie);
  4147. /* 4760 */ mplew.writeInt(game.getOwner().getMiniGamePoints("losses", omok) + lose);
  4148. /* 4761 */ mplew.writeInt(2000);
  4149. /* 4762 */ mplew.writeInt(1);
  4150. /* 4763 */ mplew.writeInt(game.getVisitor().getMiniGamePoints("wins", omok) + lose);
  4151. /* 4764 */ mplew.writeInt(game.getVisitor().getMiniGamePoints("ties", omok) + tie);
  4152. /* 4765 */ mplew.writeInt(game.getVisitor().getMiniGamePoints("losses", omok) + win);
  4153. /* 4766 */ mplew.writeInt(2000);
  4154. /* 4767 */ game.getOwner().setMiniGamePoints(game.getVisitor(), result, omok);
  4155. /* 4768 */ return mplew.getPacket();
  4156. /* */ }
  4157. /* */
  4158. /* */ public static MaplePacket getMiniGameOwnerWin(MapleMiniGame game) {
  4159. /* 4772 */ return getMiniGameResult(game, 0, 1, 0, 1, 0, true);
  4160. /* */ }
  4161. /* */
  4162. /* */ public static MaplePacket getMiniGameVisitorWin(MapleMiniGame game) {
  4163. /* 4776 */ return getMiniGameResult(game, 1, 0, 0, 2, 0, true);
  4164. /* */ }
  4165. /* */
  4166. /* */ public static MaplePacket getMiniGameTie(MapleMiniGame game) {
  4167. /* 4780 */ return getMiniGameResult(game, 0, 0, 1, 3, 0, true);
  4168. /* */ }
  4169. /* */
  4170. /* */ public static MaplePacket getMiniGameOwnerForfeit(MapleMiniGame game) {
  4171. /* 4784 */ return getMiniGameResult(game, 0, 1, 0, 2, 1, true);
  4172. /* */ }
  4173. /* */
  4174. /* */ public static MaplePacket getMiniGameVisitorForfeit(MapleMiniGame game) {
  4175. /* 4788 */ return getMiniGameResult(game, 1, 0, 0, 1, 1, true);
  4176. /* */ }
  4177. /* */
  4178. /* */ public static MaplePacket getMiniGameClose(byte number) {
  4179. /* 4792 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(5);
  4180. /* 4793 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4181. /* 4794 */ mplew.write(PlayerInteractionHandler.Action.EXIT.getCode());
  4182. /* 4795 */ mplew.write(1);
  4183. /* 4796 */ mplew.write(3);
  4184. /* 4797 */ return mplew.getPacket();
  4185. /* */ }
  4186. /* */
  4187. /* */ public static MaplePacket getMatchCard(MapleClient c, MapleMiniGame minigame, boolean owner, int piece) {
  4188. /* 4801 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4189. /* 4802 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4190. /* 4803 */ mplew.write(5);
  4191. /* 4804 */ mplew.write(2);
  4192. /* 4805 */ mplew.write(2);
  4193. /* 4806 */ mplew.write(owner ? 0 : 1);
  4194. /* 4807 */ mplew.write(0);
  4195. /* 4808 */ addCharLook(mplew, minigame.getOwner(), false, false);
  4196. /* 4809 */ mplew.writeMapleAsciiString(minigame.getOwner().getName());
  4197. /* 4810 */ mplew.writeShort(0);
  4198. /* 4811 */ if (minigame.getVisitor() != null) {
  4199. /* 4812 */ MapleCharacter visitor = minigame.getVisitor();
  4200. /* 4813 */ mplew.write(1);
  4201. /* 4814 */ addCharLook(mplew, visitor, false, false);
  4202. /* 4815 */ mplew.writeMapleAsciiString(visitor.getName());
  4203. /* 4816 */ mplew.writeShort(0);
  4204. /* */ }
  4205. /* 4818 */ mplew.write(255);
  4206. /* 4819 */ mplew.write(0);
  4207. /* 4820 */ mplew.writeInt(2);
  4208. /* 4821 */ mplew.writeInt(minigame.getOwner().getMiniGamePoints("wins", false));
  4209. /* 4822 */ mplew.writeInt(minigame.getOwner().getMiniGamePoints("ties", false));
  4210. /* 4823 */ mplew.writeInt(minigame.getOwner().getMiniGamePoints("losses", false));
  4211. /* 4824 */ mplew.writeInt(2000);
  4212. /* 4825 */ if (minigame.getVisitor() != null) {
  4213. /* 4826 */ MapleCharacter visitor = minigame.getVisitor();
  4214. /* 4827 */ mplew.write(1);
  4215. /* 4828 */ mplew.writeInt(2);
  4216. /* 4829 */ mplew.writeInt(visitor.getMiniGamePoints("wins", false));
  4217. /* 4830 */ mplew.writeInt(visitor.getMiniGamePoints("ties", false));
  4218. /* 4831 */ mplew.writeInt(visitor.getMiniGamePoints("losses", false));
  4219. /* 4832 */ mplew.writeInt(2000);
  4220. /* */ }
  4221. /* 4834 */ mplew.write(255);
  4222. /* 4835 */ mplew.writeMapleAsciiString(minigame.getDescription());
  4223. /* 4836 */ mplew.write(piece);
  4224. /* 4837 */ mplew.write(0);
  4225. /* 4838 */ return mplew.getPacket();
  4226. /* */ }
  4227. /* */
  4228. /* */ public static MaplePacket getMatchCardStart(MapleMiniGame game, int loser) {
  4229. /* 4842 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4230. /* 4843 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4231. /* 4844 */ mplew.write(PlayerInteractionHandler.Action.START.getCode());
  4232. /* 4845 */ mplew.write(loser);
  4233. /* 4846 */ mplew.write(12);
  4234. /* 4847 */ int last = 13;
  4235. /* 4848 */ if (game.getMatchesToWin() > 10)
  4236. /* 4849 */ last = 31;
  4237. /* 4850 */ else if (game.getMatchesToWin() > 6) {
  4238. /* 4851 */ last = 21;
  4239. /* */ }
  4240. /* 4853 */ for (int i = 1; i < last; i++) {
  4241. /* 4854 */ mplew.writeInt(game.getCardId(i));
  4242. /* */ }
  4243. /* 4856 */ return mplew.getPacket();
  4244. /* */ }
  4245. /* */
  4246. /* */ public static MaplePacket getMatchCardNewVisitor(MapleCharacter c, int slot) {
  4247. /* 4860 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4248. /* 4861 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4249. /* 4862 */ mplew.write(PlayerInteractionHandler.Action.VISIT.getCode());
  4250. /* 4863 */ mplew.write(0);
  4251. /* 4864 */ addCharLook(mplew, c, false, false);
  4252. /* 4865 */ mplew.writeMapleAsciiString(c.getName());
  4253. /* 4866 */ mplew.writeShort(0);
  4254. /* 4867 */ mplew.writeInt(1);
  4255. /* 4868 */ mplew.writeInt(c.getMiniGamePoints("wins", false));
  4256. /* 4869 */ mplew.writeInt(c.getMiniGamePoints("ties", false));
  4257. /* 4870 */ mplew.writeInt(c.getMiniGamePoints("losses", false));
  4258. /* 4871 */ mplew.writeInt(2000);
  4259. /* 4872 */ return mplew.getPacket();
  4260. /* */ }
  4261. /* */
  4262. /* */ public static MaplePacket getMatchCardSelect(MapleMiniGame game, int turn, int slot, int firstslot, int type) {
  4263. /* 4876 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  4264. /* 4877 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4265. /* 4878 */ mplew.write(PlayerInteractionHandler.Action.SELECT_CARD.getCode());
  4266. /* 4879 */ mplew.write(0);
  4267. /* 4880 */ if (turn == 1) {
  4268. /* 4881 */ mplew.write(slot);
  4269. /* 4882 */ } else if (turn == 0) {
  4270. /* 4883 */ mplew.write(slot);
  4271. /* 4884 */ mplew.write(firstslot);
  4272. /* 4885 */ mplew.write(type);
  4273. /* */ }
  4274. /* 4887 */ return mplew.getPacket();
  4275. /* */ }
  4276. /* */
  4277. /* */ public static MaplePacket getMatchCardOwnerWin(MapleMiniGame game) {
  4278. /* 4891 */ return getMiniGameResult(game, 1, 0, 0, 1, 0, false);
  4279. /* */ }
  4280. /* */
  4281. /* */ public static MaplePacket getMatchCardVisitorWin(MapleMiniGame game) {
  4282. /* 4895 */ return getMiniGameResult(game, 0, 1, 0, 2, 0, false);
  4283. /* */ }
  4284. /* */
  4285. /* */ public static MaplePacket getMatchCardTie(MapleMiniGame game) {
  4286. /* 4899 */ return getMiniGameResult(game, 0, 0, 1, 3, 0, false);
  4287. /* */ }
  4288. /* */
  4289. /* */ public static MaplePacket addOmokBox(MapleCharacter c, int ammount, int type) {
  4290. /* 4903 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4291. /* 4904 */ mplew.writeShort(SendPacketOpcode.UPDATE_CHAR_BOX);
  4292. /* 4905 */ mplew.writeInt(c.getId());
  4293. /* 4906 */ addAnnounceBox(mplew, c.getMiniGame(), 1, 0, ammount, type);
  4294. /* 4907 */ return mplew.getPacket();
  4295. /* */ }
  4296. /* */
  4297. /* */ public static MaplePacket removeOmokBox(MapleCharacter c) {
  4298. /* 4911 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  4299. /* 4912 */ mplew.writeShort(SendPacketOpcode.UPDATE_CHAR_BOX);
  4300. /* 4913 */ mplew.writeInt(c.getId());
  4301. /* 4914 */ mplew.write(0);
  4302. /* 4915 */ return mplew.getPacket();
  4303. /* */ }
  4304. /* */
  4305. /* */ public static MaplePacket addMatchCardBox(MapleCharacter c, int ammount, int type) {
  4306. /* 4919 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4307. /* 4920 */ mplew.writeShort(SendPacketOpcode.UPDATE_CHAR_BOX);
  4308. /* 4921 */ mplew.writeInt(c.getId());
  4309. /* 4922 */ addAnnounceBox(mplew, c.getMiniGame(), 2, 0, ammount, type);
  4310. /* 4923 */ return mplew.getPacket();
  4311. /* */ }
  4312. /* */
  4313. /* */ public static MaplePacket removeMatchcardBox(MapleCharacter c) {
  4314. /* 4927 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(5);
  4315. /* 4928 */ mplew.writeShort(SendPacketOpcode.UPDATE_CHAR_BOX);
  4316. /* 4929 */ mplew.writeInt(c.getId());
  4317. /* 4930 */ mplew.write(0);
  4318. /* 4931 */ return mplew.getPacket();
  4319. /* */ }
  4320. /* */
  4321. /* */ public static MaplePacket getPlayerShopChat(MapleCharacter c, String chat, byte slot) {
  4322. /* 4935 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4323. /* 4936 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4324. /* 4937 */ mplew.write(PlayerInteractionHandler.Action.CHAT.getCode());
  4325. /* 4938 */ mplew.write(8);
  4326. /* 4939 */ mplew.write(slot);
  4327. /* 4940 */ mplew.writeMapleAsciiString(c.getName() + " : " + chat);
  4328. /* 4941 */ return mplew.getPacket();
  4329. /* */ }
  4330. /* */
  4331. /* */ public static MaplePacket getTradeChat(MapleCharacter c, String chat, boolean owner) {
  4332. /* 4945 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4333. /* 4946 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4334. /* 4947 */ mplew.write(PlayerInteractionHandler.Action.CHAT.getCode());
  4335. /* 4948 */ mplew.write(8);
  4336. /* 4949 */ mplew.write(owner ? 0 : 1);
  4337. /* 4950 */ mplew.writeMapleAsciiString(c.getName() + " : " + chat);
  4338. /* 4951 */ return mplew.getPacket();
  4339. /* */ }
  4340. /* */
  4341. /* */ public static MaplePacket hiredMerchantBox() {
  4342. /* 4955 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  4343. /* 4956 */ mplew.writeShort(SendPacketOpcode.SEND_TITLE_BOX);
  4344. /* 4957 */ mplew.write(7);
  4345. /* 4958 */ return mplew.getPacket();
  4346. /* */ }
  4347. /* */
  4348. /* */ public static MaplePacket getHiredMerchant(MapleCharacter chr, HiredMerchant hm, boolean firstTime) {
  4349. /* 4962 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4350. /* 4963 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4351. /* 4964 */ mplew.write(5);
  4352. /* 4965 */ mplew.write(5);
  4353. /* 4966 */ mplew.write(4);
  4354. /* 4967 */ mplew.write(hm.isOwner(chr) ? 0 : hm.getVisitorSlot(chr));
  4355. /* 4968 */ mplew.write(0);
  4356. /* 4969 */ mplew.writeInt(hm.getItemId());
  4357. /* 4970 */ mplew.writeMapleAsciiString("Hired Merchant");
  4358. /* 4971 */ for (int i = 0; i < 3; i++) {
  4359. /* 4972 */ if (hm.getVisitors()[i] != null) {
  4360. /* 4973 */ mplew.write(i + 1);
  4361. /* 4974 */ addCharLook(mplew, hm.getVisitors()[i], true, false);
  4362. /* 4975 */ mplew.writeMapleAsciiString(hm.getVisitors()[i].getName());
  4363. /* 4976 */ mplew.writeShort(hm.getVisitors()[i].getJob().getId());
  4364. /* */ }
  4365. /* */ }
  4366. /* 4979 */ mplew.write(255);
  4367. /* 4980 */ mplew.writeShort(0);
  4368. /* 4981 */ mplew.writeMapleAsciiString(hm.getOwner());
  4369. /* 4982 */ if (hm.isOwner(chr)) {
  4370. /* 4983 */ mplew.writeInt(0);
  4371. /* 4984 */ mplew.writeInt(firstTime ? 1 : 0);
  4372. /* 4985 */ mplew.write(0);
  4373. /* 4986 */ mplew.write(0);
  4374. /* 4987 */ mplew.writeInt((int)Math.min(hm.getMerchantMesos(), 2147483647L));
  4375. /* */ }
  4376. /* 4989 */ mplew.writeMapleAsciiString(hm.getDescription());
  4377. /* 4990 */ mplew.write(16);
  4378. /* 4991 */ mplew.writeInt((int)Math.min(hm.getMerchantMesos(), 2147483647L));
  4379. /* 4992 */ mplew.write(hm.getItems().size());
  4380. /* 4993 */ if (hm.getItems().isEmpty())
  4381. /* 4994 */ mplew.write(0);
  4382. /* */ else {
  4383. /* 4996 */ for (MaplePlayerShopItem item : hm.getItems()) {
  4384. /* 4997 */ mplew.writeShort(item.getBundles());
  4385. /* 4998 */ mplew.writeShort(item.getItem().getQuantity());
  4386. /* 4999 */ mplew.writeInt(item.getPrice());
  4387. /* 5000 */ addItemInfo(mplew, item.getItem(), true, true);
  4388. /* */ }
  4389. /* */ }
  4390. /* 5003 */ return mplew.getPacket();
  4391. /* */ }
  4392. /* */
  4393. /* */ public static MaplePacket updateHiredMerchant(HiredMerchant hm) {
  4394. /* 5007 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4395. /* 5008 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4396. /* 5009 */ mplew.write(25);
  4397. /* 5010 */ mplew.writeInt((int)Math.min(hm.getMerchantMesos(), 2147483647L));
  4398. /* 5011 */ mplew.write(hm.getItems().size());
  4399. /* 5012 */ for (MaplePlayerShopItem item : hm.getItems()) {
  4400. /* 5013 */ mplew.writeShort(item.getBundles());
  4401. /* 5014 */ mplew.writeShort(item.getItem().getQuantity());
  4402. /* 5015 */ mplew.writeInt(item.getPrice());
  4403. /* 5016 */ addItemInfo(mplew, item.getItem(), true, true);
  4404. /* */ }
  4405. /* 5018 */ return mplew.getPacket();
  4406. /* */ }
  4407. /* */
  4408. /* */ public static MaplePacket hiredMerchantChat(String message, int slot) {
  4409. /* 5022 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4410. /* 5023 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4411. /* 5024 */ mplew.write(PlayerInteractionHandler.Action.CHAT.getCode());
  4412. /* 5025 */ mplew.write(8);
  4413. /* 5026 */ mplew.write(slot);
  4414. /* 5027 */ mplew.writeMapleAsciiString(message);
  4415. /* 5028 */ return mplew.getPacket();
  4416. /* */ }
  4417. /* */
  4418. /* */ public static MaplePacket hiredMerchantVisitorLeave(int slot, boolean owner) {
  4419. /* 5032 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4420. /* 5033 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4421. /* 5034 */ mplew.write(PlayerInteractionHandler.Action.EXIT.getCode());
  4422. /* 5035 */ if (!owner) {
  4423. /* 5036 */ mplew.write(slot);
  4424. /* */ }
  4425. /* 5038 */ mplew.writeInt(0);
  4426. /* 5039 */ return mplew.getPacket();
  4427. /* */ }
  4428. /* */
  4429. /* */ public static MaplePacket hiredMerchantOwnerLeave() {
  4430. /* 5043 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(4);
  4431. /* 5044 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4432. /* 5045 */ mplew.write(42);
  4433. /* 5046 */ mplew.write(0);
  4434. /* 5047 */ return mplew.getPacket();
  4435. /* */ }
  4436. /* */
  4437. /* */ public static MaplePacket hiredMerchantMaintenanceMessage() {
  4438. /* 5051 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(5);
  4439. /* 5052 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4440. /* 5053 */ mplew.write(PlayerInteractionHandler.Action.ROOM.getCode());
  4441. /* 5054 */ mplew.write(0);
  4442. /* 5055 */ mplew.write(18);
  4443. /* 5056 */ return mplew.getPacket();
  4444. /* */ }
  4445. /* */
  4446. /* */ public static MaplePacket hiredMerchantVisitorAdd(MapleCharacter chr, int slot) {
  4447. /* 5060 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4448. /* 5061 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4449. /* 5062 */ mplew.write(PlayerInteractionHandler.Action.VISIT.getCode());
  4450. /* 5063 */ mplew.write(slot);
  4451. /* 5064 */ addCharLook(mplew, chr, false, false);
  4452. /* 5065 */ mplew.writeMapleAsciiString(chr.getName());
  4453. /* 5066 */ mplew.writeShort(0);
  4454. /* 5067 */ return mplew.getPacket();
  4455. /* */ }
  4456. /* */
  4457. /* */ public static MaplePacket spawnHiredMerchant(HiredMerchant hm) {
  4458. /* 5071 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4459. /* 5072 */ mplew.writeShort(SendPacketOpcode.SPAWN_HIRED_MERCHANT);
  4460. /* 5073 */ mplew.writeInt(hm.getOwnerId());
  4461. /* 5074 */ mplew.writeInt(hm.getItemId());
  4462. /* 5075 */ mplew.writeShort((short)(int)hm.getPosition().getX());
  4463. /* 5076 */ mplew.writeShort((short)(int)hm.getPosition().getY());
  4464. /* 5077 */ mplew.writeShort(0);
  4465. /* 5078 */ mplew.writeMapleAsciiString(hm.getOwner());
  4466. /* 5079 */ mplew.write(5);
  4467. /* 5080 */ mplew.writeInt(hm.getObjectId());
  4468. /* 5081 */ mplew.writeMapleAsciiString(hm.getDescription());
  4469. /* 5082 */ mplew.write(hm.getItemId() % 10);
  4470. /* 5083 */ mplew.write(1);
  4471. /* 5084 */ mplew.write(4);
  4472. /* 5085 */ return mplew.getPacket();
  4473. /* */ }
  4474. /* */
  4475. /* */ public static MaplePacket destroyHiredMerchant(int id) {
  4476. /* 5089 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  4477. /* 5090 */ mplew.writeShort(SendPacketOpcode.DESTROY_HIRED_MERCHANT);
  4478. /* 5091 */ mplew.writeInt(id);
  4479. /* 5092 */ return mplew.getPacket();
  4480. /* */ }
  4481. /* */
  4482. /* */ public static MaplePacket leaveHiredMerchant(int slot, int status2) {
  4483. /* 5096 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4484. /* 5097 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  4485. /* 5098 */ mplew.write(PlayerInteractionHandler.Action.EXIT.getCode());
  4486. /* 5099 */ mplew.write(slot);
  4487. /* 5100 */ mplew.write(status2);
  4488. /* 5101 */ return mplew.getPacket();
  4489. /* */ }
  4490. /* */
  4491. /* */ public static MaplePacket spawnPlayerNPC(PlayerNPCs npc) {
  4492. /* 5105 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4493. /* 5106 */ mplew.writeShort(SendPacketOpcode.SPAWN_NPC_REQUEST_CONTROLLER);
  4494. /* 5107 */ mplew.write(1);
  4495. /* 5108 */ mplew.writeInt(npc.getObjectId());
  4496. /* 5109 */ mplew.writeInt(npc.getId());
  4497. /* 5110 */ mplew.writeShort(npc.getPosition().x);
  4498. /* 5111 */ mplew.writeShort(npc.getCY());
  4499. /* 5112 */ mplew.write(1);
  4500. /* 5113 */ mplew.writeShort(npc.getFH());
  4501. /* 5114 */ mplew.writeShort(npc.getRX0());
  4502. /* 5115 */ mplew.writeShort(npc.getRX1());
  4503. /* 5116 */ mplew.write(1);
  4504. /* 5117 */ return mplew.getPacket();
  4505. /* */ }
  4506. /* */
  4507. /* */ public static MaplePacket sendYellowTip(String tip) {
  4508. /* 5121 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4509. /* 5122 */ mplew.writeShort(SendPacketOpcode.YELLOW_TIP);
  4510. /* 5123 */ mplew.write(255);
  4511. /* 5124 */ mplew.writeMapleAsciiString(tip);
  4512. /* 5125 */ mplew.writeShort(0);
  4513. /* 5126 */ return mplew.getPacket();
  4514. /* */ }
  4515. /* */
  4516. /* */ public static MaplePacket givePirateBuff(int buffid, int bufflength, List<Pair<MapleBuffStat, Integer>> statups) {
  4517. /* 5130 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4518. /* 5131 */ mplew.writeShort(SendPacketOpcode.GIVE_BUFF);
  4519. /* 5132 */ writeLongMask(mplew, statups);
  4520. /* 5133 */ mplew.writeShort(0);
  4521. /* 5134 */ for (Pair statup : statups) {
  4522. /* 5135 */ mplew.writeInt(((Integer)statup.getRight()).shortValue());
  4523. /* 5136 */ mplew.writeInt(buffid);
  4524. /* 5137 */ mplew.write0(5);
  4525. /* 5138 */ mplew.writeShort(bufflength);
  4526. /* */ }
  4527. /* 5140 */ mplew.write0(3);
  4528. /* 5141 */ return mplew.getPacket();
  4529. /* */ }
  4530. /* */
  4531. /* */ public static MaplePacket showPirateBuff(int cid, int skillid, int time, List<Pair<MapleBuffStat, Integer>> statups) {
  4532. /* 5145 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4533. /* 5146 */ mplew.writeShort(SendPacketOpcode.GIVE_FOREIGN_BUFF);
  4534. /* 5147 */ mplew.writeInt(cid);
  4535. /* 5148 */ writeLongMask(mplew, statups);
  4536. /* 5149 */ mplew.writeShort(0);
  4537. /* 5150 */ for (Pair statup : statups) {
  4538. /* 5151 */ mplew.writeInt(((Integer)statup.getRight()).intValue());
  4539. /* 5152 */ mplew.writeInt(skillid);
  4540. /* 5153 */ mplew.write0(5);
  4541. /* 5154 */ mplew.writeShort(time);
  4542. /* */ }
  4543. /* 5156 */ mplew.writeShort(0);
  4544. /* 5157 */ return mplew.getPacket();
  4545. /* */ }
  4546. /* */
  4547. /* */ public static MaplePacket giveSpeedInfusion(int buffid, int speed, int bufflength) {
  4548. /* 5161 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4549. /* 5162 */ mplew.writeShort(SendPacketOpcode.GIVE_BUFF);
  4550. /* 5163 */ mplew.writeLong(MapleBuffStat.SPEED_INFUSION.getValue());
  4551. /* 5164 */ mplew.write0(10);
  4552. /* 5165 */ mplew.writeInt(speed);
  4553. /* 5166 */ mplew.writeInt(buffid);
  4554. /* 5167 */ mplew.write0(10);
  4555. /* 5168 */ mplew.writeShort(bufflength);
  4556. /* 5169 */ mplew.writeShort(600);
  4557. /* 5170 */ return mplew.getPacket();
  4558. /* */ }
  4559. /* */
  4560. /* */ public static MaplePacket showSpeedInfusion(int cid, int speed, int time, int skillid) {
  4561. /* 5174 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4562. /* 5175 */ mplew.writeShort(SendPacketOpcode.GIVE_FOREIGN_BUFF);
  4563. /* 5176 */ mplew.writeInt(cid);
  4564. /* 5177 */ mplew.writeLong(MapleBuffStat.SPEED_INFUSION.getValue());
  4565. /* 5178 */ mplew.write0(10);
  4566. /* 5179 */ mplew.writeInt(speed);
  4567. /* 5180 */ mplew.writeInt(skillid);
  4568. /* 5181 */ mplew.write0(10);
  4569. /* 5182 */ mplew.writeShort(time);
  4570. /* 5183 */ mplew.writeShort(600);
  4571. /* 5184 */ return mplew.getPacket();
  4572. /* */ }
  4573. /* */
  4574. /* */ public static MaplePacket sendCSNews(int lastMaskId, int amount, ArrayList<Integer> SNItemsId) {
  4575. /* 5188 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4576. /* 5189 */ mplew.writeShort(SendPacketOpcode.CS_NEWS);
  4577. /* 5190 */ mplew.writeInt(lastMaskId);
  4578. /* 5191 */ mplew.write(lastMaskId - 20100811);
  4579. /* 5192 */ mplew.write(42139);
  4580. /* 5193 */ mplew.write(0);
  4581. /* 5194 */ mplew.writeInt(amount);
  4582. /* 5195 */ for (byte i = 0; i < amount; i = (byte)(i + 1)) {
  4583. /* 5196 */ mplew.writeInt(lastMaskId - (amount - i));
  4584. /* 5197 */ mplew.write(lastMaskId - 20100811 - (amount - i));
  4585. /* 5198 */ mplew.write(42139);
  4586. /* 5199 */ mplew.write(0);
  4587. /* 5200 */ mplew.writeInt(((Integer)SNItemsId.get(i)).intValue());
  4588. /* */ }
  4589. /* 5202 */ return mplew.getPacket();
  4590. /* */ }
  4591. /* */
  4592. /* */ public static MaplePacket sendMTS(List<MTSItemInfo> items, int tab, int type, int page, int pages) {
  4593. /* 5206 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4594. /* 5207 */ mplew.writeShort(SendPacketOpcode.MTS_OPERATION);
  4595. /* 5208 */ mplew.write(21);
  4596. /* 5209 */ mplew.writeInt(pages * 16);
  4597. /* 5210 */ mplew.writeInt(items.size());
  4598. /* 5211 */ mplew.writeInt(tab);
  4599. /* 5212 */ mplew.writeInt(type);
  4600. /* 5213 */ mplew.writeInt(page);
  4601. /* 5214 */ mplew.write(1);
  4602. /* 5215 */ mplew.write(1);
  4603. /* 5216 */ for (int i = 0; i < items.size(); i++) {
  4604. /* 5217 */ MTSItemInfo item = (MTSItemInfo)items.get(i);
  4605. /* 5218 */ addItemInfo(mplew, item.getItem(), true, true);
  4606. /* 5219 */ mplew.writeInt(item.getID());
  4607. /* 5220 */ mplew.writeInt(item.getTaxes());
  4608. /* 5221 */ mplew.writeInt(item.getPrice());
  4609. /* 5222 */ mplew.writeLong(0L);
  4610. /* 5223 */ mplew.writeInt(getQuestTimestamp(item.getEndingDate()));
  4611. /* 5224 */ mplew.writeMapleAsciiString(item.getSeller());
  4612. /* 5225 */ mplew.writeMapleAsciiString(item.getSeller());
  4613. /* 5226 */ for (int j = 0; j < 28; j++) {
  4614. /* 5227 */ mplew.write(0);
  4615. /* */ }
  4616. /* */ }
  4617. /* 5230 */ mplew.write(0);
  4618. /* 5231 */ return mplew.getPacket();
  4619. /* */ }
  4620. /* */
  4621. /* */ public static MaplePacket showNotes(ResultSet notes, int count) throws SQLException {
  4622. /* 5235 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4623. /* 5236 */ mplew.writeShort(SendPacketOpcode.SHOW_NOTES);
  4624. /* 5237 */ mplew.write(2);
  4625. /* 5238 */ mplew.write(count);
  4626. /* 5239 */ for (int i = 0; i < count; i++) {
  4627. /* 5240 */ mplew.writeInt(notes.getInt("id"));
  4628. /* 5241 */ mplew.writeMapleAsciiString(notes.getString("from"));
  4629. /* 5242 */ mplew.writeMapleAsciiString(notes.getString("message"));
  4630. /* 5243 */ mplew.writeLong(getKoreanTimestamp(notes.getLong("timestamp")));
  4631. /* 5244 */ mplew.write(0);
  4632. /* 5245 */ notes.next();
  4633. /* */ }
  4634. /* 5247 */ return mplew.getPacket();
  4635. /* */ }
  4636. /* */
  4637. /* */ public static MaplePacket useChalkboard(MapleCharacter chr, boolean close) {
  4638. /* 5251 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4639. /* 5252 */ mplew.writeShort(SendPacketOpcode.CHALKBOARD);
  4640. /* 5253 */ mplew.writeInt(chr.getId());
  4641. /* 5254 */ if (close) {
  4642. /* 5255 */ mplew.write(0);
  4643. /* */ } else {
  4644. /* 5257 */ mplew.write(1);
  4645. /* 5258 */ mplew.writeMapleAsciiString(chr.getChalkboard());
  4646. /* */ }
  4647. /* 5260 */ return mplew.getPacket();
  4648. /* */ }
  4649. /* */
  4650. /* */ public static MaplePacket refreshTeleportRockMapList(MapleCharacter chr, byte type) {
  4651. /* 5264 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(44);
  4652. /* 5265 */ mplew.writeShort(SendPacketOpcode.TROCK_LOCATIONS);
  4653. /* 5266 */ mplew.write(3);
  4654. /* 5267 */ mplew.write(type);
  4655. /* 5268 */ for (Iterator i$ = chr.getTeleportRockMaps().keySet().iterator(); i$.hasNext(); ) { int map = ((Integer)i$.next()).intValue();
  4656. /* 5269 */ mplew.writeInt(map);
  4657. /* */ }
  4658. /* 5271 */ for (int i = chr.getTeleportRockMaps().size(); i < 10; i++) {
  4659. /* 5272 */ mplew.writeInt(999999999);
  4660. /* */ }
  4661. /* 5274 */ return mplew.getPacket();
  4662. /* */ }
  4663. /* */
  4664. /* */ public static MaplePacket sendWishList(MapleCharacter mc, boolean update) {
  4665. /* 5278 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(43);
  4666. /* 5279 */ mplew.writeShort(SendPacketOpcode.CS_OPERATION);
  4667. /* 5280 */ if (update)
  4668. /* 5281 */ mplew.write(97);
  4669. /* */ else {
  4670. /* 5283 */ mplew.write(79);
  4671. /* */ }
  4672. /* 5285 */ byte i = 10;
  4673. /* 5286 */ for (Iterator i$ = mc.getWishList().iterator(); i$.hasNext(); ) { int sn = ((Integer)i$.next()).intValue();
  4674. /* 5287 */ mplew.writeInt(sn);
  4675. /* 5288 */ i = (byte)(i - 1);
  4676. /* */ }
  4677. /* 5290 */ for (byte j = 0; j < i; j = (byte)(j + 1)) {
  4678. /* 5291 */ mplew.writeInt(0);
  4679. /* */ }
  4680. /* 5293 */ return mplew.getPacket();
  4681. /* */ }
  4682. /* */
  4683. /* */ public static MaplePacket showMTSCash(MapleCharacter p) {
  4684. /* 5297 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(10);
  4685. /* 5298 */ mplew.writeShort(SendPacketOpcode.MTS_OPERATION2);
  4686. /* 5299 */ mplew.writeInt(p.getCSPoints(4));
  4687. /* 5300 */ mplew.writeInt(p.getCSPoints(2));
  4688. /* 5301 */ return mplew.getPacket();
  4689. /* */ }
  4690. /* */
  4691. /* */ public static MaplePacket MTSWantedListingOver(int nx, int items) {
  4692. /* 5305 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(11);
  4693. /* 5306 */ mplew.writeShort(SendPacketOpcode.MTS_OPERATION);
  4694. /* 5307 */ mplew.write(61);
  4695. /* 5308 */ mplew.writeInt(nx);
  4696. /* 5309 */ mplew.writeInt(items);
  4697. /* 5310 */ return mplew.getPacket();
  4698. /* */ }
  4699. /* */
  4700. /* */ public static MaplePacket MTSConfirmSell() {
  4701. /* 5314 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  4702. /* 5315 */ mplew.writeShort(SendPacketOpcode.MTS_OPERATION);
  4703. /* 5316 */ mplew.write(29);
  4704. /* 5317 */ return mplew.getPacket();
  4705. /* */ }
  4706. /* */
  4707. /* */ public static MaplePacket MTSConfirmBuy() {
  4708. /* 5321 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  4709. /* 5322 */ mplew.writeShort(SendPacketOpcode.MTS_OPERATION);
  4710. /* 5323 */ mplew.write(51);
  4711. /* 5324 */ return mplew.getPacket();
  4712. /* */ }
  4713. /* */
  4714. /* */ public static MaplePacket MTSFailBuy() {
  4715. /* 5328 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(4);
  4716. /* 5329 */ mplew.writeShort(SendPacketOpcode.MTS_OPERATION);
  4717. /* 5330 */ mplew.write(52);
  4718. /* 5331 */ mplew.write(66);
  4719. /* 5332 */ return mplew.getPacket();
  4720. /* */ }
  4721. /* */
  4722. /* */ public static MaplePacket MTSConfirmTransfer(int quantity, int pos) {
  4723. /* 5336 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(9);
  4724. /* 5337 */ mplew.writeShort(SendPacketOpcode.MTS_OPERATION);
  4725. /* 5338 */ mplew.write(39);
  4726. /* 5339 */ mplew.writeInt(quantity);
  4727. /* 5340 */ mplew.writeInt(pos);
  4728. /* 5341 */ return mplew.getPacket();
  4729. /* */ }
  4730. /* */
  4731. /* */ public static MaplePacket notYetSoldInv(List<MTSItemInfo> items) {
  4732. /* 5345 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4733. /* 5346 */ mplew.writeShort(SendPacketOpcode.MTS_OPERATION);
  4734. /* 5347 */ mplew.write(35);
  4735. /* 5348 */ mplew.writeInt(items.size());
  4736. /* 5349 */ if (!items.isEmpty()) {
  4737. /* 5350 */ for (MTSItemInfo item : items) {
  4738. /* 5351 */ addItemInfo(mplew, item.getItem(), true, true);
  4739. /* 5352 */ mplew.writeInt(item.getID());
  4740. /* 5353 */ mplew.writeInt(item.getTaxes());
  4741. /* 5354 */ mplew.writeInt(item.getPrice());
  4742. /* 5355 */ mplew.writeLong(0L);
  4743. /* 5356 */ mplew.writeInt(getQuestTimestamp(item.getEndingDate()));
  4744. /* 5357 */ mplew.writeMapleAsciiString(item.getSeller());
  4745. /* 5358 */ mplew.writeMapleAsciiString(item.getSeller());
  4746. /* 5359 */ for (int i = 0; i < 28; i++)
  4747. /* 5360 */ mplew.write(0);
  4748. /* */ }
  4749. /* */ }
  4750. /* */ else {
  4751. /* 5364 */ mplew.writeInt(0);
  4752. /* */ }
  4753. /* 5366 */ return mplew.getPacket();
  4754. /* */ }
  4755. /* */
  4756. /* */ public static MaplePacket transferInventory(List<MTSItemInfo> items) {
  4757. /* 5370 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4758. /* 5371 */ mplew.writeShort(SendPacketOpcode.MTS_OPERATION);
  4759. /* 5372 */ mplew.write(33);
  4760. /* 5373 */ mplew.writeInt(items.size());
  4761. /* 5374 */ if (!items.isEmpty()) {
  4762. /* 5375 */ for (MTSItemInfo item : items) {
  4763. /* 5376 */ addItemInfo(mplew, item.getItem(), true, true);
  4764. /* 5377 */ mplew.writeInt(item.getID());
  4765. /* 5378 */ mplew.writeInt(item.getTaxes());
  4766. /* 5379 */ mplew.writeInt(item.getPrice());
  4767. /* 5380 */ mplew.writeLong(0L);
  4768. /* 5381 */ mplew.writeInt(getQuestTimestamp(item.getEndingDate()));
  4769. /* 5382 */ mplew.writeMapleAsciiString(item.getSeller());
  4770. /* 5383 */ mplew.writeMapleAsciiString(item.getSeller());
  4771. /* 5384 */ for (int i = 0; i < 28; i++) {
  4772. /* 5385 */ mplew.write(0);
  4773. /* */ }
  4774. /* */ }
  4775. /* */ }
  4776. /* 5389 */ mplew.write(208 + items.size());
  4777. /* 5390 */ mplew.write(HexTool.getByteArrayFromHexString("FF FF FF 00", 4));
  4778. /* 5391 */ return mplew.getPacket();
  4779. /* */ }
  4780. /* */
  4781. /* */ public static MaplePacket showNXMapleTokens(MapleCharacter chr) {
  4782. /* 5395 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4783. /* 5396 */ mplew.writeShort(SendPacketOpcode.CS_UPDATE);
  4784. /* 5397 */ for (int i = 1; i < 5; i *= 2) {
  4785. /* 5398 */ mplew.writeInt(chr.getCSPoints(i));
  4786. /* */ }
  4787. /* 5400 */ return mplew.getPacket();
  4788. /* */ }
  4789. /* */
  4790. /* */ public static MaplePacket showBoughtCSItem(MapleClient c, CashItemInfo item) {
  4791. /* 5404 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4792. /* 5405 */ mplew.writeShort(SendPacketOpcode.CS_OPERATION);
  4793. /* 5406 */ mplew.write(99);
  4794. /* 5407 */ addCashItemInformation(mplew, item, c.getAccID());
  4795. /* 5408 */ return mplew.getPacket();
  4796. /* */ }
  4797. /* */
  4798. /* */ public static MaplePacket showBoughtCashPackage(List<CashItemInfo> cashPackage, int accountId) {
  4799. /* 5412 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4800. /* 5413 */ mplew.writeShort(SendPacketOpcode.CS_OPERATION);
  4801. /* 5414 */ mplew.write(151);
  4802. /* 5415 */ mplew.write(cashPackage.size());
  4803. /* 5416 */ for (CashItemInfo item : cashPackage) {
  4804. /* 5417 */ addCashItemInformation(mplew, item, accountId);
  4805. /* */ }
  4806. /* 5419 */ mplew.writeShort(0);
  4807. /* 5420 */ return mplew.getPacket();
  4808. /* */ }
  4809. /* */
  4810. /* */ public static void addCashItemInformation(MaplePacketLittleEndianWriter mplew, CashItemInfo item, int accountId) {
  4811. /* 5424 */ mplew.writeInt(1337);
  4812. /* 5425 */ mplew.writeInt(0);
  4813. /* 5426 */ mplew.writeInt(accountId);
  4814. /* 5427 */ mplew.writeInt(0);
  4815. /* 5428 */ mplew.writeInt(item.getId());
  4816. /* 5429 */ mplew.writeInt(item.getSn());
  4817. /* 5430 */ mplew.writeShort(item.getCount());
  4818. /* 5431 */ mplew.write0(13);
  4819. /* 5432 */ mplew.write(NON_EXPIRE);
  4820. /* 5433 */ mplew.write0(8);
  4821. /* */ }
  4822. /* */
  4823. /* */ public static MaplePacket sendStorageSlotUpdate(int slots) {
  4824. /* 5437 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4825. /* 5438 */ mplew.writeShort(SendPacketOpcode.CS_OPERATION);
  4826. /* 5439 */ mplew.write(85);
  4827. /* 5440 */ mplew.writeShort(slots);
  4828. /* 5441 */ return mplew.getPacket();
  4829. /* */ }
  4830. /* */
  4831. /* */ public static MaplePacket sendCashShopMessage(int error) {
  4832. /* 5445 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4833. /* 5446 */ mplew.writeShort(SendPacketOpcode.CS_OPERATION);
  4834. /* 5447 */ mplew.write(92);
  4835. /* 5448 */ mplew.write(error);
  4836. /* 5449 */ return mplew.getPacket();
  4837. /* */ }
  4838. /* */
  4839. /* */ public static MaplePacket showCouponRedeemedItem(int itemid) {
  4840. /* 5453 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4841. /* 5454 */ mplew.writeShort(SendPacketOpcode.CS_OPERATION);
  4842. /* 5455 */ mplew.writeShort(89);
  4843. /* 5456 */ mplew.writeInt(0);
  4844. /* 5457 */ mplew.writeInt(1);
  4845. /* 5458 */ mplew.writeShort(1);
  4846. /* 5459 */ mplew.writeShort(26);
  4847. /* 5460 */ mplew.writeInt(itemid);
  4848. /* 5461 */ mplew.writeInt(0);
  4849. /* 5462 */ return mplew.getPacket();
  4850. /* */ }
  4851. /* */
  4852. /* */ public static MaplePacket enableCSUse0() {
  4853. /* 5466 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  4854. /* 5467 */ mplew.write(18);
  4855. /* 5468 */ mplew.write0(6);
  4856. /* 5469 */ return mplew.getPacket();
  4857. /* */ }
  4858. /* */
  4859. /* */ public static MaplePacket enableCSUse1() {
  4860. /* 5473 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(9);
  4861. /* 5474 */ mplew.writeShort(SendPacketOpcode.CS_OPERATION);
  4862. /* 5475 */ mplew.write(87);
  4863. /* 5476 */ mplew.writeShort(0);
  4864. /* 5477 */ mplew.writeShort(4);
  4865. /* 5478 */ mplew.writeInt(6);
  4866. /* 5479 */ mplew.writeShort(2);
  4867. /* 5480 */ return mplew.getPacket();
  4868. /* */ }
  4869. /* */
  4870. /* */ public static MaplePacket enableCSUse2() {
  4871. /* 5484 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  4872. /* 5485 */ mplew.writeShort(SendPacketOpcode.CS_OPERATION);
  4873. /* 5486 */ mplew.writeShort(89);
  4874. /* 5487 */ mplew.write0(2);
  4875. /* 5488 */ return mplew.getPacket();
  4876. /* */ }
  4877. /* */
  4878. /* */ public static MaplePacket enableCSUse3() {
  4879. /* 5492 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(43);
  4880. /* 5493 */ mplew.writeShort(SendPacketOpcode.CS_OPERATION);
  4881. /* 5494 */ mplew.write(91);
  4882. /* 5495 */ mplew.write0(40);
  4883. /* 5496 */ return mplew.getPacket();
  4884. /* */ }
  4885. /* */
  4886. /* */ public static MaplePacket getFindReply(String target, int mapid, int MTSmapCSchannel, boolean buddysearch)
  4887. /* */ {
  4888. /* 5511 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4889. /* 5512 */ mplew.writeShort(SendPacketOpcode.WHISPER);
  4890. /* 5513 */ mplew.write(buddysearch ? 72 : 9);
  4891. /* 5514 */ mplew.writeMapleAsciiString(target);
  4892. /* 5515 */ mplew.write(MTSmapCSchannel);
  4893. /* 5516 */ mplew.writeInt(MTSmapCSchannel == 3 ? mapid - 1 : mapid);
  4894. /* 5517 */ if (MTSmapCSchannel == 1) {
  4895. /* 5518 */ mplew.writeInt(0);
  4896. /* 5519 */ mplew.writeInt(0);
  4897. /* */ }
  4898. /* 5521 */ return mplew.getPacket();
  4899. /* */ }
  4900. /* */
  4901. /* */ public static MaplePacket sendAutoHpPot(int itemId) {
  4902. /* 5525 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  4903. /* 5526 */ mplew.writeShort(SendPacketOpcode.AUTO_HP_POT);
  4904. /* 5527 */ mplew.writeInt(itemId);
  4905. /* 5528 */ return mplew.getPacket();
  4906. /* */ }
  4907. /* */
  4908. /* */ public static MaplePacket sendAutoMpPot(int itemId) {
  4909. /* 5532 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  4910. /* 5533 */ mplew.writeShort(SendPacketOpcode.AUTO_MP_POT);
  4911. /* 5534 */ mplew.writeInt(itemId);
  4912. /* 5535 */ return mplew.getPacket();
  4913. /* */ }
  4914. /* */
  4915. /* */ public static MaplePacket showOXQuiz(int questionSet, int questionId, boolean askQuestion) {
  4916. /* 5539 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  4917. /* 5540 */ mplew.writeShort(SendPacketOpcode.OX_QUIZ);
  4918. /* 5541 */ mplew.write(askQuestion ? 1 : 0);
  4919. /* 5542 */ mplew.write(questionSet);
  4920. /* 5543 */ mplew.writeShort(questionId);
  4921. /* 5544 */ return mplew.getPacket();
  4922. /* */ }
  4923. /* */
  4924. /* */ public static MaplePacket updateGender(MapleCharacter chr) {
  4925. /* 5548 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  4926. /* 5549 */ mplew.writeShort(SendPacketOpcode.GENDER);
  4927. /* 5550 */ mplew.write(chr.getGender());
  4928. /* 5551 */ return mplew.getPacket();
  4929. /* */ }
  4930. /* */
  4931. /* */ public static MaplePacket enableReport() {
  4932. /* 5555 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  4933. /* 5556 */ mplew.writeShort(SendPacketOpcode.ENABLE_REPORT);
  4934. /* 5557 */ mplew.write(1);
  4935. /* 5558 */ return mplew.getPacket();
  4936. /* */ }
  4937. /* */
  4938. /* */ public static MaplePacket loadFamily(MapleCharacter player) {
  4939. /* 5562 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4940. /* 5563 */ mplew.writeShort(SendPacketOpcode.LOAD_FAMILY);
  4941. /* 5564 */ mplew.writeInt(11);
  4942. /* 5565 */ for (int i = 0; i < 11; i++) {
  4943. /* 5566 */ mplew.write(i > 4 ? i % 2 + 1 : i);
  4944. /* 5567 */ mplew.writeInt(repCost[i]);
  4945. /* 5568 */ mplew.writeInt(1);
  4946. /* 5569 */ mplew.writeMapleAsciiString(title[i]);
  4947. /* 5570 */ mplew.writeMapleAsciiString(description[i]);
  4948. /* */ }
  4949. /* 5572 */ return mplew.getPacket();
  4950. /* */ }
  4951. /* */
  4952. /* */ public static MaplePacket sendFamilyMessage() {
  4953. /* 5576 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  4954. /* 5577 */ mplew.writeShort(SendPacketOpcode.FAMILY_MESSAGE);
  4955. /* 5578 */ mplew.writeInt(0);
  4956. /* 5579 */ return mplew.getPacket();
  4957. /* */ }
  4958. /* */
  4959. /* */ public static MaplePacket getFamilyInfo(MapleCharacter chr) {
  4960. /* 5583 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4961. /* 5584 */ mplew.writeShort(SendPacketOpcode.OPEN_FAMILY);
  4962. /* 5585 */ mplew.writeInt(chr.getFamily().getReputation());
  4963. /* 5586 */ mplew.writeInt(chr.getFamily().getTotalReputation());
  4964. /* 5587 */ mplew.writeInt(chr.getFamily().getTodaysRep());
  4965. /* 5588 */ mplew.writeShort(chr.getFamily().getTotalJuniors());
  4966. /* 5589 */ mplew.writeShort(2);
  4967. /* 5590 */ mplew.writeShort(0);
  4968. /* 5591 */ mplew.writeInt(chr.getFamilyId());
  4969. /* 5592 */ mplew.writeMapleAsciiString("'s Family");
  4970. /* 5593 */ mplew.writeInt(0);
  4971. /* 5594 */ mplew.writeShort(0);
  4972. /* 5595 */ return mplew.getPacket();
  4973. /* */ }
  4974. /* */
  4975. /* */ public static MaplePacket getStatusMsg(int itemid) {
  4976. /* 5599 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  4977. /* 5600 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  4978. /* 5601 */ mplew.write(8);
  4979. /* 5602 */ mplew.writeInt(itemid);
  4980. /* 5603 */ return mplew.getPacket();
  4981. /* */ }
  4982. /* */
  4983. /* */ public static MaplePacket giveEnergyCharge(int barammount) {
  4984. /* 5607 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4985. /* 5608 */ mplew.writeShort(SendPacketOpcode.GIVE_BUFF);
  4986. /* 5609 */ mplew.writeLong(MapleBuffStat.ENERGY_CHARGE.getValue());
  4987. /* 5610 */ mplew.write0(10);
  4988. /* 5611 */ mplew.writeShort(barammount);
  4989. /* 5612 */ mplew.write0(11);
  4990. /* 5613 */ mplew.writeInt(50);
  4991. /* 5614 */ return mplew.getPacket();
  4992. /* */ }
  4993. /* */
  4994. /* */ public static MaplePacket giveForeignEnergyCharge(int cid, int barammount) {
  4995. /* 5618 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  4996. /* 5619 */ mplew.writeShort(SendPacketOpcode.GIVE_FOREIGN_BUFF);
  4997. /* 5620 */ mplew.writeInt(cid);
  4998. /* 5621 */ mplew.writeLong(MapleBuffStat.ENERGY_CHARGE.getValue());
  4999. /* 5622 */ mplew.write0(10);
  5000. /* 5623 */ mplew.writeShort(barammount);
  5001. /* 5624 */ mplew.write0(11);
  5002. /* 5625 */ mplew.writeInt(50);
  5003. /* 5626 */ return mplew.getPacket();
  5004. /* */ }
  5005. /* */
  5006. /* */ public static MaplePacket addCard(boolean full, int cardid, int level) {
  5007. /* 5630 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(11);
  5008. /* 5631 */ mplew.writeShort(SendPacketOpcode.MONSTERBOOK_ADD);
  5009. /* 5632 */ mplew.write(full ? 0 : 1);
  5010. /* 5633 */ mplew.writeInt(cardid);
  5011. /* 5634 */ mplew.writeInt(level);
  5012. /* 5635 */ return mplew.getPacket();
  5013. /* */ }
  5014. /* */
  5015. /* */ public static MaplePacket showGainCard() {
  5016. /* 5639 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  5017. /* 5640 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_GAIN_INCHAT);
  5018. /* 5641 */ mplew.write(13);
  5019. /* 5642 */ return mplew.getPacket();
  5020. /* */ }
  5021. /* */
  5022. /* */ public static MaplePacket showForeginCardEffect(int id) {
  5023. /* 5646 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  5024. /* 5647 */ mplew.writeShort(SendPacketOpcode.SHOW_FOREIGN_EFFECT);
  5025. /* 5648 */ mplew.writeInt(id);
  5026. /* 5649 */ mplew.write(13);
  5027. /* 5650 */ return mplew.getPacket();
  5028. /* */ }
  5029. /* */
  5030. /* */ public static MaplePacket changeCover(int cardid) {
  5031. /* 5654 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  5032. /* 5655 */ mplew.writeShort(SendPacketOpcode.MONSTER_BOOK_CHANGE_COVER);
  5033. /* 5656 */ mplew.writeInt(cardid);
  5034. /* 5657 */ return mplew.getPacket();
  5035. /* */ }
  5036. /* */
  5037. /* */ public static MaplePacket tutorialIntroLock(boolean enable) {
  5038. /* 5661 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  5039. /* 5662 */ mplew.writeShort(SendPacketOpcode.TUTORIAL_INTRO_LOCK);
  5040. /* 5663 */ mplew.write(enable ? 1 : 0);
  5041. /* 5664 */ return mplew.getPacket();
  5042. /* */ }
  5043. /* */
  5044. /* */ public static MaplePacket tutorialIntroDisableUI(boolean enable) {
  5045. /* 5668 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  5046. /* 5669 */ mplew.writeShort(SendPacketOpcode.TUTORIAL_INTRO_DISABLE_UI);
  5047. /* 5670 */ mplew.write(enable ? 1 : 0);
  5048. /* 5671 */ return mplew.getPacket();
  5049. /* */ }
  5050. /* */
  5051. /* */ public static MaplePacket removeNPC(int objid) {
  5052. /* 5675 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  5053. /* 5676 */ mplew.writeShort(SendPacketOpcode.REMOVE_NPC);
  5054. /* 5677 */ mplew.writeInt(objid);
  5055. /* 5678 */ return mplew.getPacket();
  5056. /* */ }
  5057. /* */
  5058. /* */ public static MaplePacket reportResponse(byte mode, int remainingReports) {
  5059. /* 5682 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5060. /* 5683 */ mplew.writeShort(SendPacketOpcode.REPORT_RESPONSE);
  5061. /* 5684 */ mplew.write(mode);
  5062. /* 5685 */ if (mode == 2) {
  5063. /* 5686 */ mplew.write(1);
  5064. /* 5687 */ mplew.writeInt(remainingReports);
  5065. /* */ }
  5066. /* 5689 */ return mplew.getPacket();
  5067. /* */ }
  5068. /* */
  5069. /* */ public static MaplePacket sendHammerData(int old) {
  5070. /* 5693 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(11);
  5071. /* 5694 */ mplew.writeShort(SendPacketOpcode.VICIOUS_HAMMER);
  5072. /* 5695 */ mplew.write(60);
  5073. /* 5696 */ mplew.writeInt(old);
  5074. /* 5697 */ mplew.writeInt(old + 1);
  5075. /* 5698 */ return mplew.getPacket();
  5076. /* */ }
  5077. /* */
  5078. /* */ public static MaplePacket sendHammerMessage() {
  5079. /* 5702 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5080. /* 5703 */ mplew.writeShort(SendPacketOpcode.VICIOUS_HAMMER);
  5081. /* 5704 */ mplew.write(64);
  5082. /* 5705 */ mplew.writeInt(0);
  5083. /* 5706 */ return mplew.getPacket();
  5084. /* */ }
  5085. /* */
  5086. /* */ public static MaplePacket hammerItem(IItem item) {
  5087. /* 5710 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5088. /* 5711 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  5089. /* 5712 */ mplew.write(0);
  5090. /* 5713 */ mplew.write(2);
  5091. /* 5714 */ mplew.write(3);
  5092. /* 5715 */ mplew.write(1);
  5093. /* 5716 */ mplew.write(item.getPosition());
  5094. /* 5717 */ mplew.writeShort(0);
  5095. /* 5718 */ mplew.write(1);
  5096. /* 5719 */ mplew.write(item.getPosition());
  5097. /* 5720 */ addItemInfo(mplew, item, true, false);
  5098. /* 5721 */ return mplew.getPacket();
  5099. /* */ }
  5100. /* */
  5101. /* */ public static MaplePacket showSpecialEffect(int effect)
  5102. /* */ {
  5103. /* 5735 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  5104. /* 5736 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_GAIN_INCHAT);
  5105. /* 5737 */ mplew.write(effect);
  5106. /* 5738 */ return mplew.getPacket();
  5107. /* */ }
  5108. /* */
  5109. /* */ public static MaplePacket startQuest(short quest) {
  5110. /* 5742 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5111. /* 5743 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  5112. /* 5744 */ mplew.write(1);
  5113. /* 5745 */ mplew.writeShort(quest);
  5114. /* 5746 */ mplew.write(1);
  5115. /* 5747 */ mplew.write0(10);
  5116. /* 5748 */ return mplew.getPacket();
  5117. /* */ }
  5118. /* */
  5119. /* */ public static MaplePacket updateQuestFinish(short quest, int npc, short nextquest) {
  5120. /* 5752 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5121. /* 5753 */ mplew.writeShort(SendPacketOpcode.UPDATE_QUEST_INFO);
  5122. /* 5754 */ mplew.write(8);
  5123. /* 5755 */ mplew.writeShort(quest);
  5124. /* 5756 */ mplew.writeInt(npc);
  5125. /* 5757 */ mplew.writeShort(nextquest);
  5126. /* 5758 */ return mplew.getPacket();
  5127. /* */ }
  5128. /* */
  5129. /* */ public static MaplePacket showQuestExpired(String expire) {
  5130. /* 5762 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5131. /* 5763 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  5132. /* 5764 */ mplew.write(10);
  5133. /* 5765 */ mplew.writeMapleAsciiString(expire);
  5134. /* 5766 */ return mplew.getPacket();
  5135. /* */ }
  5136. /* */
  5137. /* */ public static MaplePacket questError(short quest) {
  5138. /* 5770 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(5);
  5139. /* 5771 */ mplew.writeShort(SendPacketOpcode.UPDATE_QUEST_INFO);
  5140. /* 5772 */ mplew.write(10);
  5141. /* 5773 */ mplew.writeShort(quest);
  5142. /* 5774 */ return mplew.getPacket();
  5143. /* */ }
  5144. /* */
  5145. /* */ public static MaplePacket getGMEffect(int type, int mode, int other)
  5146. /* */ {
  5147. /* 5793 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(4);
  5148. /* 5794 */ mplew.writeShort(SendPacketOpcode.GM_PACKET);
  5149. /* 5795 */ mplew.write(type);
  5150. /* 5796 */ mplew.write(mode);
  5151. /* 5797 */ if (other > 0) {
  5152. /* 5798 */ mplew.writeInt(other);
  5153. /* */ }
  5154. /* 5800 */ return mplew.getPacket();
  5155. /* */ }
  5156. /* */
  5157. /* */ public static MaplePacket MinervaActions(byte mode, MapleClient c, List<HiredMerchant> result, List<MaplePlayerShopItem> itemList, int itemId, int[] hotItems) {
  5158. /* 5804 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5159. /* 5805 */ mplew.writeShort(SendPacketOpcode.OWL_OF_MINERVA);
  5160. /* 5806 */ mplew.write(mode);
  5161. /* */ Iterator i$;
  5162. /* */ HiredMerchant m;
  5163. /* 5807 */ switch (mode) {
  5164. /* */ case 6:
  5165. /* 5809 */ mplew.writeInt(0);
  5166. /* 5810 */ mplew.writeInt(itemId);
  5167. /* 5811 */ mplew.writeInt(result.size());
  5168. /* 5812 */ for (i$ = result.iterator(); i$.hasNext(); ) { m = (HiredMerchant)i$.next();
  5169. /* 5813 */ for (MaplePlayerShopItem item : itemList) {
  5170. /* 5814 */ mplew.writeMapleAsciiString(m.getOwner());
  5171. /* 5815 */ mplew.writeInt(m.getMerchantMapId());
  5172. /* 5816 */ mplew.writeMapleAsciiString(m.getDescription());
  5173. /* 5817 */ mplew.writeInt(item.getItem().getQuantity());
  5174. /* 5818 */ mplew.writeInt(item.getBundles());
  5175. /* 5819 */ mplew.writeInt(item.getPrice());
  5176. /* 5820 */ mplew.writeInt(m.getOwnerId());
  5177. /* 5821 */ mplew.write(m.getFreeSlot() == -1 ? 1 : 0);
  5178. /* 5822 */ MapleCharacter mc = c.getChannelServer().getPlayerStorage().getCharacterById(m.getOwnerId());
  5179. /* 5823 */ if ((mc != null) && (c.getChannel() == mc.getClient().getChannel()))
  5180. /* 5824 */ mplew.write(1);
  5181. /* */ else {
  5182. /* 5826 */ mplew.write(2);
  5183. /* */ }
  5184. /* 5828 */ if (item.getItem().getItemId() / 1000000 == 1) {
  5185. /* 5829 */ addItemInfo(mplew, item.getItem(), true, true);
  5186. /* */ }
  5187. /* */ }
  5188. /* */ }
  5189. /* 5833 */ break;
  5190. /* */ case 7:
  5191. /* 5835 */ mplew.write(hotItems.length);
  5192. /* 5836 */ for (int all : hotItems) {
  5193. /* 5837 */ mplew.writeInt(all);
  5194. /* */ }
  5195. /* */ }
  5196. /* */
  5197. /* 5841 */ return mplew.getPacket();
  5198. /* */ }
  5199. /* */
  5200. /* */ public static MaplePacket sendFamilyInvite(int playerId, String inviter) {
  5201. /* 5845 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5202. /* 5846 */ mplew.writeShort(SendPacketOpcode.FAMILY_INVITE);
  5203. /* 5847 */ mplew.writeInt(playerId);
  5204. /* 5848 */ mplew.writeMapleAsciiString(inviter);
  5205. /* 5849 */ return mplew.getPacket();
  5206. /* */ }
  5207. /* */
  5208. /* */ public static MaplePacket showBoughtCSQuestItem(int itemid) {
  5209. /* 5853 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5210. /* 5854 */ mplew.writeShort(SendPacketOpcode.CS_OPERATION);
  5211. /* 5855 */ mplew.write(141);
  5212. /* 5856 */ mplew.write(HexTool.getByteArrayFromHexString("01 00 00 00 01 00 04 00"));
  5213. /* 5857 */ mplew.writeInt(itemid);
  5214. /* 5858 */ return mplew.getPacket();
  5215. /* */ }
  5216. /* */
  5217. /* */ public static MaplePacket updateEquipSlot(IItem item) {
  5218. /* 5862 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5219. /* 5863 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  5220. /* 5864 */ mplew.write(0);
  5221. /* 5865 */ mplew.write(2);
  5222. /* 5866 */ mplew.write(3);
  5223. /* 5867 */ mplew.write(1);
  5224. /* 5868 */ mplew.writeShort(item.getPosition());
  5225. /* 5869 */ mplew.write(0);
  5226. /* 5870 */ mplew.write(item.getType());
  5227. /* 5871 */ mplew.writeShort(item.getPosition());
  5228. /* 5872 */ addItemInfo(mplew, item, true, true);
  5229. /* 5873 */ mplew.writeMapleAsciiString("");
  5230. /* 5874 */ return mplew.getPacket();
  5231. /* */ }
  5232. /* */
  5233. /* */ private static void getGuildInfo(MaplePacketLittleEndianWriter mplew, MapleGuild guild) {
  5234. /* 5878 */ mplew.writeInt(guild.getId());
  5235. /* 5879 */ mplew.writeMapleAsciiString(guild.getName());
  5236. /* 5880 */ for (int i = 1; i <= 5; i++) {
  5237. /* 5881 */ mplew.writeMapleAsciiString(guild.getRankTitle(i));
  5238. /* */ }
  5239. /* 5883 */ Collection members = guild.getMembers();
  5240. /* 5884 */ mplew.write(members.size());
  5241. /* 5885 */ for (MapleGuildCharacter mgc : members) {
  5242. /* 5886 */ mplew.writeInt(mgc.getId());
  5243. /* */ }
  5244. /* 5888 */ for (MapleGuildCharacter mgc : members) {
  5245. /* 5889 */ mplew.writeAsciiString(MiscTools.getRightPaddedStr(mgc.getName(), '\000', 13));
  5246. /* 5890 */ mplew.writeInt(mgc.getJobId());
  5247. /* 5891 */ mplew.writeInt(mgc.getLevel());
  5248. /* 5892 */ mplew.writeInt(mgc.getGuildRank());
  5249. /* 5893 */ mplew.writeInt(mgc.isOnline() ? 1 : 0);
  5250. /* 5894 */ mplew.writeInt(guild.getSignature());
  5251. /* 5895 */ mplew.writeInt(mgc.getAllianceRank());
  5252. /* */ }
  5253. /* 5897 */ mplew.writeInt(guild.getCapacity());
  5254. /* 5898 */ mplew.writeShort(guild.getLogoBG());
  5255. /* 5899 */ mplew.write(guild.getLogoBGColor());
  5256. /* 5900 */ mplew.writeShort(guild.getLogo());
  5257. /* 5901 */ mplew.write(guild.getLogoColor());
  5258. /* 5902 */ mplew.writeMapleAsciiString(guild.getNotice());
  5259. /* 5903 */ mplew.writeInt(guild.getGP());
  5260. /* 5904 */ mplew.writeInt(guild.getAllianceId());
  5261. /* */ }
  5262. /* */
  5263. /* */ public static MaplePacket allianceCapacityChange(MapleAlliance alliance, int id, int capacity) {
  5264. /* 5908 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5265. /* 5909 */ mplew.writeShort(SendPacketOpcode.ALLIANCE_OPERATION);
  5266. /* 5910 */ mplew.write(23);
  5267. /* 5911 */ mplew.writeInt(id);
  5268. /* 5912 */ mplew.write(capacity);
  5269. /* 5913 */ addAllianceInfo(mplew, alliance);
  5270. /* 5914 */ return mplew.getPacket();
  5271. /* */ }
  5272. /* */
  5273. /* */ private static void addAllianceInfo(MaplePacketLittleEndianWriter mplew, MapleAlliance alliance) {
  5274. /* 5918 */ mplew.writeInt(alliance.getId());
  5275. /* 5919 */ mplew.writeMapleAsciiString(alliance.getName());
  5276. /* 5920 */ for (int i = 1; i <= 5; i++) {
  5277. /* 5921 */ mplew.writeMapleAsciiString(alliance.getRankTitle(i));
  5278. /* */ }
  5279. /* 5923 */ mplew.write(alliance.getGuilds().size());
  5280. /* 5924 */ for (Integer guild : alliance.getGuilds()) {
  5281. /* 5925 */ mplew.writeInt(guild.intValue());
  5282. /* */ }
  5283. /* 5927 */ mplew.writeInt(alliance.getCapacity());
  5284. /* 5928 */ mplew.writeMapleAsciiString(alliance.getNotice());
  5285. /* */ }
  5286. /* */
  5287. /* */ private static void addGuildInfo(MaplePacketLittleEndianWriter mplew, MapleAlliance alliance, MapleClient c, boolean player) {
  5288. /* 5932 */ for (Integer guildd : alliance.getGuilds())
  5289. /* */ try {
  5290. /* 5934 */ getGuildInfo(mplew, c.getChannelServer().getWorldInterface().getGuild(guildd.intValue(), player ? c.getPlayer().getMGC() : null));
  5291. /* */ } catch (RemoteException re) {
  5292. /* 5936 */ c.getChannelServer().reconnectWorld();
  5293. /* */ }
  5294. /* */ }
  5295. /* */
  5296. /* */ public static MaplePacket getAllianceInfo(MapleAlliance alliance)
  5297. /* */ {
  5298. /* 5942 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5299. /* 5943 */ mplew.writeShort(SendPacketOpcode.ALLIANCE_OPERATION);
  5300. /* 5944 */ mplew.write(12);
  5301. /* 5945 */ mplew.write(1);
  5302. /* 5946 */ addAllianceInfo(mplew, alliance);
  5303. /* 5947 */ return mplew.getPacket();
  5304. /* */ }
  5305. /* */
  5306. /* */ public static MaplePacket makeNewAlliance(MapleAlliance alliance, MapleClient c) {
  5307. /* 5951 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5308. /* 5952 */ mplew.writeShort(SendPacketOpcode.ALLIANCE_OPERATION);
  5309. /* 5953 */ mplew.write(15);
  5310. /* 5954 */ addAllianceInfo(mplew, alliance);
  5311. /* 5955 */ addGuildInfo(mplew, alliance, c, true);
  5312. /* 5956 */ return mplew.getPacket();
  5313. /* */ }
  5314. /* */
  5315. /* */ public static MaplePacket getGuildAlliances(MapleAlliance alliance, MapleClient c) {
  5316. /* 5960 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5317. /* 5961 */ mplew.writeShort(SendPacketOpcode.ALLIANCE_OPERATION);
  5318. /* 5962 */ mplew.write(13);
  5319. /* 5963 */ mplew.writeInt(alliance.getGuilds().size());
  5320. /* 5964 */ addGuildInfo(mplew, alliance, c, true);
  5321. /* 5965 */ return mplew.getPacket();
  5322. /* */ }
  5323. /* */
  5324. /* */ public static MaplePacket addGuildToAlliance(MapleAlliance alliance, int newGuild, MapleClient c) {
  5325. /* 5969 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5326. /* 5970 */ mplew.writeShort(SendPacketOpcode.ALLIANCE_OPERATION);
  5327. /* 5971 */ mplew.write(18);
  5328. /* 5972 */ addAllianceInfo(mplew, alliance);
  5329. /* 5973 */ mplew.writeInt(newGuild);
  5330. /* 5974 */ addGuildInfo(mplew, alliance, c, false);
  5331. /* 5975 */ return mplew.getPacket();
  5332. /* */ }
  5333. /* */
  5334. /* */ public static MaplePacket allianceMemberOnline(MapleCharacter mc, boolean online) {
  5335. /* 5979 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5336. /* 5980 */ mplew.writeShort(SendPacketOpcode.ALLIANCE_OPERATION);
  5337. /* 5981 */ mplew.write(14);
  5338. /* 5982 */ mplew.writeInt(mc.getGuild().getAllianceId());
  5339. /* 5983 */ mplew.writeInt(mc.getGuildId());
  5340. /* 5984 */ mplew.writeInt(mc.getId());
  5341. /* 5985 */ mplew.write(online ? 1 : 0);
  5342. /* 5986 */ return mplew.getPacket();
  5343. /* */ }
  5344. /* */
  5345. /* */ public static MaplePacket allianceNotice(int id, String notice) {
  5346. /* 5990 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5347. /* 5991 */ mplew.writeShort(SendPacketOpcode.ALLIANCE_OPERATION);
  5348. /* 5992 */ mplew.write(28);
  5349. /* 5993 */ mplew.writeInt(id);
  5350. /* 5994 */ mplew.writeMapleAsciiString(notice);
  5351. /* 5995 */ return mplew.getPacket();
  5352. /* */ }
  5353. /* */
  5354. /* */ public static MaplePacket changeAllianceRankTitle(int alliance, String[] ranks) {
  5355. /* 5999 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5356. /* 6000 */ mplew.writeShort(SendPacketOpcode.ALLIANCE_OPERATION);
  5357. /* 6001 */ mplew.write(26);
  5358. /* 6002 */ mplew.writeInt(alliance);
  5359. /* 6003 */ for (int i = 0; i < 5; i++) {
  5360. /* 6004 */ mplew.writeMapleAsciiString(ranks[i]);
  5361. /* */ }
  5362. /* 6006 */ return mplew.getPacket();
  5363. /* */ }
  5364. /* */
  5365. /* */ public static MaplePacket updateAllianceJobLevel(MapleCharacter mc) {
  5366. /* 6010 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5367. /* 6011 */ mplew.writeShort(SendPacketOpcode.ALLIANCE_OPERATION);
  5368. /* 6012 */ mplew.write(24);
  5369. /* 6013 */ mplew.writeInt(mc.getGuild().getAllianceId());
  5370. /* 6014 */ mplew.writeInt(mc.getGuildId());
  5371. /* 6015 */ mplew.writeInt(mc.getId());
  5372. /* 6016 */ mplew.writeInt(mc.getLevel());
  5373. /* 6017 */ mplew.writeInt(mc.getJob().getId());
  5374. /* 6018 */ return mplew.getPacket();
  5375. /* */ }
  5376. /* */
  5377. /* */ public static MaplePacket removeGuildFromAlliance(MapleAlliance alliance, int expelledGuild, MapleClient c) {
  5378. /* 6022 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5379. /* 6023 */ mplew.writeShort(SendPacketOpcode.ALLIANCE_OPERATION);
  5380. /* 6024 */ mplew.write(16);
  5381. /* 6025 */ addAllianceInfo(mplew, alliance);
  5382. /* 6026 */ mplew.writeInt(expelledGuild);
  5383. /* 6027 */ addGuildInfo(mplew, alliance, c, false);
  5384. /* 6028 */ mplew.write(1);
  5385. /* 6029 */ return mplew.getPacket();
  5386. /* */ }
  5387. /* */
  5388. /* */ public static MaplePacket disbandAlliance(int alliance) {
  5389. /* 6033 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5390. /* 6034 */ mplew.writeShort(SendPacketOpcode.ALLIANCE_OPERATION);
  5391. /* 6035 */ mplew.write(29);
  5392. /* 6036 */ mplew.writeInt(alliance);
  5393. /* 6037 */ return mplew.getPacket();
  5394. /* */ }
  5395. /* */
  5396. /* */ public static MaplePacket sendMesoLimit() {
  5397. /* 6041 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5398. /* 6042 */ mplew.writeShort(SendPacketOpcode.MESO_LIMIT);
  5399. /* 6043 */ return mplew.getPacket();
  5400. /* */ }
  5401. /* */
  5402. /* */ public static MaplePacket sendEngagementRequest(String name, int charid, boolean answer) {
  5403. /* 6047 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5404. /* 6048 */ mplew.writeShort(SendPacketOpcode.WEDDING_ACTION);
  5405. /* 6049 */ mplew.write(answer ? 1 : 0);
  5406. /* 6050 */ mplew.writeMapleAsciiString(name);
  5407. /* 6051 */ mplew.writeInt(charid);
  5408. /* 6052 */ return mplew.getPacket();
  5409. /* */ }
  5410. /* */
  5411. /* */ public static MaplePacket sendGroomWishlist() {
  5412. /* 6056 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5413. /* 6057 */ mplew.writeShort(SendPacketOpcode.WEDDING_ACTION);
  5414. /* 6058 */ mplew.write(9);
  5415. /* 6059 */ return mplew.getPacket();
  5416. /* */ }
  5417. /* */
  5418. /* */ public static MaplePacket sendFamilyJoinResponse(boolean accepted, String added) {
  5419. /* 6063 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5420. /* 6064 */ mplew.writeShort(SendPacketOpcode.FAMILY_MESSAGE2);
  5421. /* 6065 */ mplew.write(accepted ? 1 : 0);
  5422. /* 6066 */ mplew.writeMapleAsciiString(added);
  5423. /* 6067 */ return mplew.getPacket();
  5424. /* */ }
  5425. /* */
  5426. /* */ public static MaplePacket getSeniorMessage(String name) {
  5427. /* 6071 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5428. /* 6072 */ mplew.writeShort(SendPacketOpcode.FAMILY_SENIOR_MESSAGE);
  5429. /* 6073 */ mplew.writeMapleAsciiString(name);
  5430. /* 6074 */ mplew.writeInt(0);
  5431. /* 6075 */ return mplew.getPacket();
  5432. /* */ }
  5433. /* */
  5434. /* */ public static MaplePacket sendGainRep(int gain, int mode) {
  5435. /* 6079 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(10);
  5436. /* 6080 */ mplew.writeShort(SendPacketOpcode.FAMILY_GAIN_REP);
  5437. /* 6081 */ mplew.writeInt(gain);
  5438. /* 6082 */ mplew.writeShort(0);
  5439. /* 6083 */ return mplew.getPacket();
  5440. /* */ }
  5441. /* */
  5442. /* */ public static MaplePacket removeItemFromDuey(boolean remove, int Package) {
  5443. /* 6087 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5444. /* 6088 */ mplew.writeShort(SendPacketOpcode.DUEY);
  5445. /* 6089 */ mplew.write(23);
  5446. /* 6090 */ mplew.writeInt(Package);
  5447. /* 6091 */ mplew.write(remove ? 3 : 4);
  5448. /* 6092 */ return mplew.getPacket();
  5449. /* */ }
  5450. /* */
  5451. /* */ public static MaplePacket sendDueyMSG(byte operation) {
  5452. /* 6096 */ return sendDuey(operation, null);
  5453. /* */ }
  5454. /* */
  5455. /* */ public static MaplePacket sendDuey(byte operation, List<DueyPackages> packages) {
  5456. /* 6100 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5457. /* 6101 */ mplew.writeShort(SendPacketOpcode.DUEY);
  5458. /* 6102 */ mplew.write(operation);
  5459. /* 6103 */ if (operation == 8) {
  5460. /* 6104 */ mplew.write(0);
  5461. /* 6105 */ mplew.write(packages.size());
  5462. /* 6106 */ for (DueyPackages dp : packages) {
  5463. /* 6107 */ mplew.writeInt(dp.getPackageId());
  5464. /* 6108 */ mplew.writeAsciiString(dp.getSender());
  5465. /* 6109 */ for (int i = dp.getSender().length(); i < 13; i++) {
  5466. /* 6110 */ mplew.write(0);
  5467. /* */ }
  5468. /* 6112 */ mplew.writeInt(dp.getMesos());
  5469. /* 6113 */ mplew.writeLong(getQuestTimestamp(dp.sentTimeInMilliseconds()));
  5470. /* 6114 */ mplew.writeLong(0L);
  5471. /* 6115 */ for (int i = 0; i < 48; i++) {
  5472. /* 6116 */ mplew.writeInt(Randomizer.getInstance().nextInt(2147483647));
  5473. /* */ }
  5474. /* 6118 */ mplew.writeInt(0);
  5475. /* 6119 */ mplew.write(0);
  5476. /* 6120 */ if (dp.getItem() != null) {
  5477. /* 6121 */ mplew.write(1);
  5478. /* 6122 */ addItemInfo(mplew, dp.getItem(), true, true);
  5479. /* */ } else {
  5480. /* 6124 */ mplew.write(0);
  5481. /* */ }
  5482. /* */ }
  5483. /* 6127 */ mplew.write(0);
  5484. /* 6128 */ mplew.write(0);
  5485. /* */ }
  5486. /* 6130 */ return mplew.getPacket();
  5487. /* */ }
  5488. /* */
  5489. /* */ public static MaplePacket giveHomingBeacon(int buffid, int moid) {
  5490. /* 6134 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5491. /* 6135 */ mplew.writeShort(SendPacketOpcode.GIVE_BUFF);
  5492. /* 6136 */ mplew.writeLong(MapleBuffStat.HOMING_BEACON.getValue());
  5493. /* 6137 */ mplew.writeLong(0L);
  5494. /* 6138 */ mplew.writeShort(0);
  5495. /* 6139 */ mplew.writeInt(1);
  5496. /* 6140 */ mplew.writeInt(buffid);
  5497. /* 6141 */ mplew.writeInt(0);
  5498. /* 6142 */ mplew.write(0);
  5499. /* 6143 */ mplew.writeInt(moid);
  5500. /* 6144 */ mplew.writeShort(0);
  5501. /* 6145 */ return mplew.getPacket();
  5502. /* */ }
  5503. /* */
  5504. /* */ public static MaplePacket sendDojoAnimation(byte firstByte, String animation) {
  5505. /* 6149 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5506. /* 6150 */ mplew.writeShort(SendPacketOpcode.BOSS_ENV);
  5507. /* 6151 */ mplew.write(firstByte);
  5508. /* 6152 */ mplew.writeMapleAsciiString(animation);
  5509. /* 6153 */ return mplew.getPacket();
  5510. /* */ }
  5511. /* */
  5512. /* */ public static MaplePacket getDojoInfo(String info) {
  5513. /* 6157 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5514. /* 6158 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  5515. /* 6159 */ mplew.write(11);
  5516. /* 6160 */ mplew.writeShort(1207);
  5517. /* 6161 */ mplew.writeMapleAsciiString(info);
  5518. /* 6162 */ return mplew.getPacket();
  5519. /* */ }
  5520. /* */
  5521. /* */ public static MaplePacket getDojoInfoMessage(String message) {
  5522. /* 6166 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5523. /* 6167 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  5524. /* 6168 */ mplew.write(10);
  5525. /* 6169 */ mplew.writeMapleAsciiString(message);
  5526. /* 6170 */ return mplew.getPacket();
  5527. /* */ }
  5528. /* */
  5529. /* */ public static MaplePacket blockedMessage(int type)
  5530. /* */ {
  5531. /* 6187 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5532. /* 6188 */ mplew.writeShort(SendPacketOpcode.CS_BLOCKED);
  5533. /* 6189 */ mplew.write(type);
  5534. /* 6190 */ return mplew.getPacket();
  5535. /* */ }
  5536. /* */
  5537. /* */ public static MaplePacket trembleEffect(int type, int delay)
  5538. /* */ {
  5539. /* 6200 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5540. /* 6201 */ mplew.writeShort(SendPacketOpcode.BOSS_ENV);
  5541. /* 6202 */ mplew.write(1);
  5542. /* 6203 */ mplew.write(type);
  5543. /* 6204 */ mplew.writeInt(delay);
  5544. /* 6205 */ return mplew.getPacket();
  5545. /* */ }
  5546. /* */
  5547. /* */ public static MaplePacket getEnergy(int level) {
  5548. /* 6209 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5549. /* 6210 */ mplew.writeShort(SendPacketOpcode.ENERGY);
  5550. /* 6211 */ mplew.writeMapleAsciiString("energy");
  5551. /* 6212 */ mplew.writeMapleAsciiString(Integer.toString(level));
  5552. /* 6213 */ return mplew.getPacket();
  5553. /* */ }
  5554. /* */
  5555. /* */ public static MaplePacket dojoWarpUp() {
  5556. /* 6217 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(4);
  5557. /* 6218 */ mplew.writeShort(SendPacketOpcode.DOJO_WARP_UP);
  5558. /* 6219 */ mplew.write(0);
  5559. /* 6220 */ mplew.write(6);
  5560. /* 6221 */ return mplew.getPacket();
  5561. /* */ }
  5562. /* */
  5563. /* */ public static MaplePacket updateItemInSlot(IItem item) {
  5564. /* 6225 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5565. /* 6226 */ mplew.writeShort(SendPacketOpcode.MODIFY_INVENTORY_ITEM);
  5566. /* 6227 */ mplew.write(0);
  5567. /* 6228 */ mplew.write(2);
  5568. /* 6229 */ mplew.write(3);
  5569. /* 6230 */ mplew.write(item.getType());
  5570. /* 6231 */ mplew.write(item.getPosition());
  5571. /* 6232 */ mplew.writeShort(0);
  5572. /* 6233 */ mplew.write(1);
  5573. /* 6234 */ mplew.write(item.getPosition());
  5574. /* 6235 */ addItemInfo(mplew, item, true, false);
  5575. /* 6236 */ return mplew.getPacket();
  5576. /* */ }
  5577. /* */
  5578. /* */ public static MaplePacket itemExpired(int itemid) {
  5579. /* 6240 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  5580. /* 6241 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  5581. /* 6242 */ mplew.write(2);
  5582. /* 6243 */ mplew.writeInt(itemid);
  5583. /* 6244 */ return mplew.getPacket();
  5584. /* */ }
  5585. /* */
  5586. /* */ public static MaplePacket MobDamageMobFriendly(MapleMonster mob, int damage) {
  5587. /* 6248 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5588. /* 6249 */ mplew.writeShort(SendPacketOpcode.DAMAGE_MONSTER);
  5589. /* 6250 */ mplew.writeInt(mob.getObjectId());
  5590. /* 6251 */ mplew.write(1);
  5591. /* 6252 */ mplew.writeInt(damage);
  5592. /* 6253 */ int remainingHp = mob.getHp() - damage;
  5593. /* 6254 */ if (remainingHp <= 0) {
  5594. /* 6255 */ remainingHp = 0;
  5595. /* 6256 */ mob.getMap().removeMapObject(mob);
  5596. /* */ }
  5597. /* 6258 */ mob.setHp(remainingHp);
  5598. /* 6259 */ mplew.writeInt(remainingHp);
  5599. /* 6260 */ mplew.writeInt(mob.getMaxHp());
  5600. /* 6261 */ return mplew.getPacket();
  5601. /* */ }
  5602. /* */
  5603. /* */ public static MaplePacket shopErrorMessage(int error, int type) {
  5604. /* 6265 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(5);
  5605. /* 6266 */ mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);
  5606. /* 6267 */ mplew.write(PlayerInteractionHandler.Action.EXIT.getCode());
  5607. /* 6268 */ mplew.write(type);
  5608. /* 6269 */ mplew.write(error);
  5609. /* 6270 */ return mplew.getPacket();
  5610. /* */ }
  5611. /* */
  5612. /* */ private static void addRingInfo(MaplePacketLittleEndianWriter mplew, MapleCharacter chr) {
  5613. /* 6274 */ mplew.writeShort(chr.getCrushRings().size());
  5614. /* 6275 */ for (MapleRing ring : chr.getCrushRings()) {
  5615. /* 6276 */ mplew.writeInt(ring.getPartnerChrId());
  5616. /* 6277 */ mplew.writeAsciiString(MiscTools.getRightPaddedStr(ring.getCoupleName(), '\000', 13));
  5617. /* 6278 */ mplew.writeInt(ring.getRingId());
  5618. /* 6279 */ mplew.writeInt(0);
  5619. /* 6280 */ mplew.writeInt(ring.getCoupleRingId());
  5620. /* 6281 */ mplew.writeInt(0);
  5621. /* */ }
  5622. /* 6283 */ mplew.writeShort(chr.getFriendshipRings().size());
  5623. /* 6284 */ for (MapleRing ring : chr.getFriendshipRings()) {
  5624. /* 6285 */ mplew.writeInt(ring.getPartnerChrId());
  5625. /* 6286 */ mplew.writeAsciiString(MiscTools.getRightPaddedStr(ring.getCoupleName(), '\000', 13));
  5626. /* 6287 */ mplew.writeInt(ring.getRingId());
  5627. /* 6288 */ mplew.writeInt(0);
  5628. /* 6289 */ mplew.writeInt(ring.getCoupleRingId());
  5629. /* 6290 */ mplew.writeInt(0);
  5630. /* 6291 */ mplew.writeInt(ring.getRingId());
  5631. /* */ }
  5632. /* 6293 */ mplew.writeShort(chr.getMarriageRing() != null ? 1 : 0);
  5633. /* 6294 */ if (chr.getMarriageRing() != null) {
  5634. /* 6295 */ mplew.writeInt(chr.getMarriageRing().getEngageId());
  5635. /* 6296 */ mplew.writeInt(chr.getId());
  5636. /* 6297 */ mplew.writeInt(chr.getCoupleId());
  5637. /* 6298 */ mplew.writeShort(chr.getMarriageRing().getStatus());
  5638. /* 6299 */ mplew.writeInt(chr.getMarriageRing().getRingId());
  5639. /* 6300 */ mplew.writeInt(chr.getMarriageRing().getCoupleRingId());
  5640. /* 6301 */ mplew.writeAsciiString(MiscTools.getRightPaddedStr(chr.getName(), '\000', 13));
  5641. /* 6302 */ mplew.writeAsciiString(MiscTools.getRightPaddedStr(chr.getMarriageRing().getCoupleName(), '\000', 13));
  5642. /* */ }
  5643. /* */ }
  5644. /* */
  5645. /* */ public static MaplePacket finishedSort(int type) {
  5646. /* 6307 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(4);
  5647. /* 6308 */ mplew.writeShort(SendPacketOpcode.FINISH_SORT);
  5648. /* 6309 */ mplew.write(0);
  5649. /* 6310 */ mplew.write(type);
  5650. /* 6311 */ return mplew.getPacket();
  5651. /* */ }
  5652. /* */
  5653. /* */ public static MaplePacket finishedSort2(int type) {
  5654. /* 6315 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(4);
  5655. /* 6316 */ mplew.writeShort(SendPacketOpcode.FINISH_SORT2);
  5656. /* 6317 */ mplew.write(1);
  5657. /* 6318 */ mplew.write(type);
  5658. /* 6319 */ return mplew.getPacket();
  5659. /* */ }
  5660. /* */
  5661. /* */ public static MaplePacket showHPQMoon() {
  5662. /* 6323 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  5663. /* 6324 */ mplew.writeShort(SendPacketOpcode.HPQ_MOON);
  5664. /* 6325 */ mplew.writeInt(-1);
  5665. /* 6326 */ return mplew.getPacket();
  5666. /* */ }
  5667. /* */
  5668. /* */ public static MaplePacket triggerMoon(int oid) {
  5669. /* 6330 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5670. /* 6331 */ mplew.writeShort(SendPacketOpcode.REACTOR_HIT);
  5671. /* 6332 */ mplew.writeInt(oid);
  5672. /* 6333 */ mplew.write(6);
  5673. /* 6334 */ mplew.writeShort(-183);
  5674. /* 6335 */ mplew.writeShort(-433);
  5675. /* 6336 */ mplew.writeShort(0);
  5676. /* 6337 */ mplew.write(-1);
  5677. /* 6338 */ mplew.write(78);
  5678. /* 6339 */ return mplew.getPacket();
  5679. /* */ }
  5680. /* */
  5681. /* */ private static void addTeleportRockRecord(MaplePacketLittleEndianWriter mplew, MapleCharacter chr) {
  5682. /* 6343 */ Map map = chr.getTeleportRockMaps();
  5683. /* 6344 */ ArrayList maps = new ArrayList(5);
  5684. /* 6345 */ ArrayList maps2 = new ArrayList();
  5685. /* 6346 */ for (Iterator i$ = map.keySet().iterator(); i$.hasNext(); ) { int i = ((Integer)i$.next()).intValue();
  5686. /* 6347 */ if (((Integer)map.get(Integer.valueOf(i))).intValue() == 0)
  5687. /* 6348 */ maps.add(Integer.valueOf(i));
  5688. /* */ else {
  5689. /* 6350 */ maps2.add(Integer.valueOf(i));
  5690. /* */ }
  5691. /* */ }
  5692. /* 6353 */ for (Iterator i$ = maps.iterator(); i$.hasNext(); ) { int mapz = ((Integer)i$.next()).intValue();
  5693. /* 6354 */ mplew.writeInt(mapz);
  5694. /* */ }
  5695. /* 6356 */ for (int i = maps.size(); i < 5; i++) {
  5696. /* 6357 */ mplew.writeInt(999999999);
  5697. /* */ }
  5698. /* 6359 */ for (Iterator i$ = maps2.iterator(); i$.hasNext(); ) { int mapz = ((Integer)i$.next()).intValue();
  5699. /* 6360 */ mplew.writeInt(mapz);
  5700. /* */ }
  5701. /* 6362 */ for (int i = maps2.size(); i < 10; i++)
  5702. /* 6363 */ mplew.writeInt(999999999);
  5703. /* */ }
  5704. /* */
  5705. /* */ public static MaplePacket getNPCTalk(int npc, byte msgType, String talk, String endBytes, int speaker)
  5706. /* */ {
  5707. /* 6368 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5708. /* 6369 */ mplew.writeShort(SendPacketOpcode.NPC_TALK);
  5709. /* 6370 */ mplew.write(4);
  5710. /* 6371 */ mplew.writeInt(npc);
  5711. /* 6372 */ mplew.write(msgType);
  5712. /* 6373 */ mplew.write(speaker);
  5713. /* 6374 */ mplew.writeMapleAsciiString(talk);
  5714. /* 6375 */ mplew.write(HexTool.getByteArrayFromHexString(endBytes));
  5715. /* 6376 */ return mplew.getPacket();
  5716. /* */ }
  5717. /* */
  5718. /* */ public static MaplePacket getNPCPlaces(int npc, String talk, int places) {
  5719. /* 6380 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5720. /* 6381 */ mplew.writeShort(SendPacketOpcode.NPC_TALK);
  5721. /* 6382 */ mplew.write(4);
  5722. /* 6383 */ mplew.writeInt(npc);
  5723. /* 6384 */ mplew.write(15);
  5724. /* 6385 */ mplew.write(0);
  5725. /* 6386 */ mplew.writeInt(0);
  5726. /* 6387 */ mplew.writeInt(places);
  5727. /* 6388 */ mplew.writeMapleAsciiString(talk);
  5728. /* 6389 */ return mplew.getPacket();
  5729. /* */ }
  5730. /* */
  5731. /* */ public static MaplePacket showWZEffect(String path, int info) {
  5732. /* 6393 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5733. /* 6394 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_GAIN_INCHAT);
  5734. /* 6395 */ if (info == -1)
  5735. /* 6396 */ mplew.write(18);
  5736. /* */ else {
  5737. /* 6398 */ mplew.write(23);
  5738. /* */ }
  5739. /* 6400 */ mplew.writeMapleAsciiString(path);
  5740. /* 6401 */ if (info > -1) {
  5741. /* 6402 */ mplew.writeInt(info);
  5742. /* */ }
  5743. /* 6404 */ return mplew.getPacket();
  5744. /* */ }
  5745. /* */
  5746. /* */ public static MaplePacket updateIntroState(String mode, int quest) {
  5747. /* 6408 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5748. /* 6409 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  5749. /* 6410 */ mplew.write(11);
  5750. /* 6411 */ mplew.writeShort(quest);
  5751. /* 6412 */ mplew.writeMapleAsciiString(mode);
  5752. /* 6413 */ return mplew.getPacket();
  5753. /* */ }
  5754. /* */
  5755. /* */ public static MaplePacket playWZSound(String path) {
  5756. /* 6417 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5757. /* 6418 */ mplew.writeShort(SendPacketOpcode.BOSS_ENV);
  5758. /* 6419 */ mplew.write(4);
  5759. /* 6420 */ mplew.writeMapleAsciiString(path);
  5760. /* 6421 */ return mplew.getPacket();
  5761. /* */ }
  5762. /* */
  5763. /* */ public static MaplePacket addTutorialStats() {
  5764. /* 6425 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(0);
  5765. /* 6426 */ mplew.writeShort(SendPacketOpcode.UPDATE_TEMP_STATS);
  5766. /* 6427 */ mplew.writeInt(3871);
  5767. /* 6428 */ mplew.writeShort(999);
  5768. /* 6429 */ mplew.writeShort(999);
  5769. /* 6430 */ mplew.writeShort(999);
  5770. /* 6431 */ mplew.writeShort(999);
  5771. /* 6432 */ mplew.writeShort(255);
  5772. /* 6433 */ mplew.writeShort(999);
  5773. /* 6434 */ mplew.writeShort(999);
  5774. /* 6435 */ mplew.write(120);
  5775. /* 6436 */ mplew.write(140);
  5776. /* 6437 */ return mplew.getPacket();
  5777. /* */ }
  5778. /* */
  5779. /* */ public static MaplePacket removeTutorialStats() {
  5780. /* 6441 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(2);
  5781. /* 6442 */ mplew.writeShort(SendPacketOpcode.REMOVE_TEMP_STATS);
  5782. /* 6443 */ return mplew.getPacket();
  5783. /* */ }
  5784. /* */
  5785. /* */ public static MaplePacket spawnTutorialSummon(int type) {
  5786. /* 6447 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  5787. /* 6448 */ mplew.writeShort(SendPacketOpcode.TUTORIAL_SUMMON);
  5788. /* 6449 */ mplew.write(type);
  5789. /* 6450 */ return mplew.getPacket();
  5790. /* */ }
  5791. /* */
  5792. /* */ public static MaplePacket displayGuide(int guide) {
  5793. /* 6454 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(11);
  5794. /* 6455 */ mplew.writeShort(SendPacketOpcode.TUTORIAL_GUIDE);
  5795. /* 6456 */ mplew.write(1);
  5796. /* 6457 */ mplew.writeInt(guide);
  5797. /* 6458 */ mplew.writeInt(10000);
  5798. /* 6459 */ return mplew.getPacket();
  5799. /* */ }
  5800. /* */
  5801. /* */ public static MaplePacket tutorialSpeechBubble(String message) {
  5802. /* 6463 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5803. /* 6464 */ mplew.writeShort(SendPacketOpcode.TUTORIAL_GUIDE);
  5804. /* 6465 */ mplew.write(0);
  5805. /* 6466 */ mplew.writeMapleAsciiString(message);
  5806. /* 6467 */ mplew.writeInt(200);
  5807. /* 6468 */ mplew.writeInt(4000);
  5808. /* 6469 */ return mplew.getPacket();
  5809. /* */ }
  5810. /* */
  5811. /* */ public static MaplePacket showInfo(String message) {
  5812. /* 6473 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5813. /* 6474 */ mplew.writeShort(SendPacketOpcode.SHOW_INFO);
  5814. /* 6475 */ mplew.writeMapleAsciiString(message);
  5815. /* 6476 */ return mplew.getPacket();
  5816. /* */ }
  5817. /* */
  5818. /* */ public static MaplePacket showMapEffect(String path) {
  5819. /* 6480 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5820. /* 6481 */ mplew.writeShort(SendPacketOpcode.MAP_EFFECT);
  5821. /* 6482 */ mplew.write(3);
  5822. /* 6483 */ mplew.writeMapleAsciiString(path);
  5823. /* 6484 */ return mplew.getPacket();
  5824. /* */ }
  5825. /* */
  5826. /* */ public static MaplePacket updateQuest(int quest, String status) {
  5827. /* 6488 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5828. /* 6489 */ mplew.writeShort(SendPacketOpcode.SHOW_STATUS_INFO);
  5829. /* 6490 */ mplew.write(1);
  5830. /* 6491 */ mplew.writeShort(quest);
  5831. /* 6492 */ mplew.write(1);
  5832. /* 6493 */ mplew.writeMapleAsciiString(status);
  5833. /* 6494 */ return mplew.getPacket();
  5834. /* */ }
  5835. /* */
  5836. /* */ public static MaplePacket quickSlot(int[] slots) {
  5837. /* 6498 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5838. /* 6499 */ mplew.writeShort(SendPacketOpcode.QUICK_SLOT_CHANGE);
  5839. /* 6500 */ mplew.write(1);
  5840. /* 6501 */ for (int i : slots) {
  5841. /* 6502 */ mplew.writeInt(i);
  5842. /* */ }
  5843. /* 6504 */ return mplew.getPacket();
  5844. /* */ }
  5845. /* */
  5846. /* */ public static MaplePacket addComboBuff(int combo) {
  5847. /* 6508 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5848. /* 6509 */ mplew.writeShort(SendPacketOpcode.GIVE_BUFF);
  5849. /* 6510 */ mplew.writeLong(MapleBuffStat.ARAN_COMBO.getValue());
  5850. /* 6511 */ mplew.writeLong(0L);
  5851. /* 6512 */ mplew.writeShort(combo);
  5852. /* 6513 */ mplew.writeInt(21000000);
  5853. /* 6514 */ mplew.writeInt(256);
  5854. /* 6515 */ mplew.writeInt(0);
  5855. /* 6516 */ return mplew.getPacket();
  5856. /* */ }
  5857. /* */
  5858. /* */ public static MaplePacket somePetUpdate(int charid, int pos, int petid) {
  5859. /* 6520 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5860. /* 6521 */ mplew.writeShort(169);
  5861. /* 6522 */ mplew.writeInt(charid);
  5862. /* 6523 */ mplew.write(pos);
  5863. /* 6524 */ mplew.writeInt(petid);
  5864. /* 6525 */ mplew.write0(6);
  5865. /* 6526 */ return mplew.getPacket();
  5866. /* */ }
  5867. /* */
  5868. /* */ public static MaplePacket removeTiger() {
  5869. /* 6530 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(2);
  5870. /* 6531 */ mplew.writeShort(SendPacketOpcode.REMOVE_TIGER);
  5871. /* 6532 */ return mplew.getPacket();
  5872. /* */ }
  5873. /* */
  5874. /* */ public static MaplePacket sendOpenTreasure(int itemid) {
  5875. /* 6536 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5876. /* 6537 */ mplew.writeShort(SendPacketOpcode.SILVER_BOX);
  5877. /* 6538 */ mplew.writeInt(itemid);
  5878. /* 6539 */ return mplew.getPacket();
  5879. /* */ }
  5880. /* */
  5881. /* */ public static MaplePacket sendWeddingInvite(String partnerOne, String partnerTwo, short unk)
  5882. /* */ {
  5883. /* 6563 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5884. /* 6564 */ mplew.writeShort(SendPacketOpcode.WEDDING_PROPOSAL);
  5885. /* 6565 */ mplew.write(15);
  5886. /* 6566 */ mplew.writeMapleAsciiString(partnerOne);
  5887. /* 6567 */ mplew.writeMapleAsciiString(partnerTwo);
  5888. /* 6568 */ mplew.writeShort(unk);
  5889. /* 6569 */ return mplew.getPacket();
  5890. /* */ }
  5891. /* */
  5892. /* */ public static MaplePacket sendZakumMessage(int mode, int minutes)
  5893. /* */ {
  5894. /* 6579 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  5895. /* 6580 */ mplew.writeShort(SendPacketOpcode.ZAKUM_SHRINE);
  5896. /* 6581 */ mplew.write(mode);
  5897. /* 6582 */ mplew.writeInt(minutes);
  5898. /* 6583 */ return mplew.getPacket();
  5899. /* */ }
  5900. /* */
  5901. /* */ public static MaplePacket sendHorntailMessage(int mode, int minutes)
  5902. /* */ {
  5903. /* 6593 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  5904. /* 6594 */ mplew.writeShort(SendPacketOpcode.HT_SPAWN);
  5905. /* 6595 */ mplew.write(mode);
  5906. /* 6596 */ mplew.writeInt(minutes);
  5907. /* 6597 */ return mplew.getPacket();
  5908. /* */ }
  5909. /* */
  5910. /* */ public static MaplePacket inventoryToCash(MapleClient c, IItem item) {
  5911. /* 6601 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5912. /* 6602 */ mplew.writeShort(SendPacketOpcode.CS_OPERATION);
  5913. /* 6603 */ mplew.write(120);
  5914. /* 6604 */ mplew.writeInt(0);
  5915. /* 6605 */ mplew.writeInt(0);
  5916. /* 6606 */ mplew.writeInt(c.getAccID());
  5917. /* 6607 */ mplew.writeInt(0);
  5918. /* 6608 */ mplew.writeInt(item.getItemId());
  5919. /* 6609 */ mplew.writeInt(0);
  5920. /* 6610 */ mplew.write(1);
  5921. /* 6611 */ mplew.write0(14);
  5922. /* 6612 */ mplew.writeLong(getKoreanTimestamp(item.getExpiration()));
  5923. /* 6613 */ mplew.writeLong(0L);
  5924. /* 6614 */ return mplew.getPacket();
  5925. /* */ }
  5926. /* */
  5927. /* */ public static MaplePacket cashToInventory(IItem item, int position) {
  5928. /* 6618 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5929. /* 6619 */ mplew.writeShort(SendPacketOpcode.CS_OPERATION);
  5930. /* 6620 */ mplew.write(118);
  5931. /* 6621 */ mplew.writeShort(position);
  5932. /* 6622 */ addItemInfo(mplew, item);
  5933. /* 6623 */ return mplew.getPacket();
  5934. /* */ }
  5935. /* */
  5936. /* */ public static MaplePacket showMCPQMessage(int type)
  5937. /* */ {
  5938. /* 6635 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5939. /* 6636 */ mplew.writeShort(SendPacketOpcode.MONSTER_CARNIVAL_MESSAGE);
  5940. /* 6637 */ mplew.writeShort(type);
  5941. /* 6638 */ return mplew.getPacket();
  5942. /* */ }
  5943. /* */
  5944. /* */ public static MaplePacket playerLeftMCPQ(int team, int spot, String name)
  5945. /* */ {
  5946. /* 6647 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5947. /* 6648 */ mplew.writeShort(SendPacketOpcode.MONSTER_CARNIVAL_PLAYER_LEFT);
  5948. /* 6649 */ mplew.write(spot);
  5949. /* 6650 */ mplew.write(team);
  5950. /* 6651 */ mplew.writeMapleAsciiString(name);
  5951. /* 6652 */ return mplew.getPacket();
  5952. /* */ }
  5953. /* */
  5954. /* */ public static MaplePacket updatePlayerCP(int un, int total) {
  5955. /* 6656 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  5956. /* 6657 */ mplew.writeShort(SendPacketOpcode.MONSTER_CARNIVAL_PLAYER_CP);
  5957. /* 6658 */ mplew.writeShort(un);
  5958. /* 6659 */ mplew.writeShort(total);
  5959. /* 6660 */ return mplew.getPacket();
  5960. /* */ }
  5961. /* */
  5962. /* */ public static MaplePacket updatePartyCP(int team, int un, int total) {
  5963. /* 6664 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5964. /* 6665 */ mplew.writeShort(SendPacketOpcode.MONSTER_CARNIVAL_PARTY_CP);
  5965. /* 6666 */ mplew.write(team);
  5966. /* 6667 */ mplew.writeShort(un);
  5967. /* 6668 */ mplew.writeShort(total);
  5968. /* 6669 */ return mplew.getPacket();
  5969. /* */ }
  5970. /* */
  5971. /* */ public static MaplePacket sendMapMessage(int mode)
  5972. /* */ {
  5973. /* 6682 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  5974. /* 6683 */ mplew.writeShort(SendPacketOpcode.MAP_MESSAGE);
  5975. /* 6684 */ mplew.write(mode);
  5976. /* 6685 */ return mplew.getPacket();
  5977. /* */ }
  5978. /* */
  5979. /* */ public static MaplePacket showAnimationEffect(byte effect) {
  5980. /* 6689 */ return showAnimationEffect(effect, null);
  5981. /* */ }
  5982. /* */
  5983. /* */ public static MaplePacket showAnimationEffect(byte effect, String path) {
  5984. /* 6693 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5985. /* 6694 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_GAIN_INCHAT);
  5986. /* 6695 */ mplew.write(effect);
  5987. /* 6696 */ if (path != null) {
  5988. /* 6697 */ mplew.writeMapleAsciiString(path);
  5989. /* */ }
  5990. /* 6699 */ return mplew.getPacket();
  5991. /* */ }
  5992. /* */
  5993. /* */ public static MaplePacket checkMapleLifeName(String name) {
  5994. /* 6703 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  5995. /* 6704 */ mplew.writeShort(SendPacketOpcode.MAPLE_LIFE);
  5996. /* 6705 */ mplew.writeMapleAsciiString(name);
  5997. /* 6706 */ mplew.write(0);
  5998. /* 6707 */ return mplew.getPacket();
  5999. /* */ }
  6000. /* */
  6001. /* */ public static MaplePacket doMapleLife() {
  6002. /* 6711 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  6003. /* 6712 */ mplew.writeShort(SendPacketOpcode.MAPLE_LIFE_SUBMIT);
  6004. /* 6713 */ mplew.write(54);
  6005. /* 6714 */ mplew.writeInt(0);
  6006. /* 6715 */ return mplew.getPacket();
  6007. /* */ }
  6008. /* */
  6009. /* */ public static MaplePacket showGuideEffect(int id, int duration) {
  6010. /* 6719 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(11);
  6011. /* 6720 */ mplew.writeShort(SendPacketOpcode.TUTORIAL_GUIDE);
  6012. /* 6721 */ mplew.write(1);
  6013. /* 6722 */ mplew.writeInt(id);
  6014. /* 6723 */ mplew.writeInt(duration);
  6015. /* 6724 */ return mplew.getPacket();
  6016. /* */ }
  6017. /* */
  6018. /* */ public static MaplePacket sendMaker() {
  6019. /* 6728 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  6020. /* 6729 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_GAIN_INCHAT);
  6021. /* 6730 */ mplew.write(18);
  6022. /* 6731 */ mplew.write0(4);
  6023. /* 6732 */ return mplew.getPacket();
  6024. /* */ }
  6025. /* */
  6026. /* */ public static MaplePacket sendForeignMaker(int character) {
  6027. /* 6736 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  6028. /* 6737 */ mplew.writeShort(SendPacketOpcode.SHOW_FOREIGN_EFFECT);
  6029. /* 6738 */ mplew.writeInt(character);
  6030. /* 6739 */ mplew.write(18);
  6031. /* 6740 */ mplew.write0(4);
  6032. /* 6741 */ return mplew.getPacket();
  6033. /* */ }
  6034. /* */
  6035. /* */ public static MaplePacket sendVegaScroll(int op)
  6036. /* */ {
  6037. /* 6753 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);
  6038. /* 6754 */ mplew.writeShort(SendPacketOpcode.VEGA_SCROLL);
  6039. /* 6755 */ mplew.write(op);
  6040. /* 6756 */ return mplew.getPacket();
  6041. /* */ }
  6042. /* */
  6043. /* */ public static MaplePacket getDebug(String hex) {
  6044. /* 6760 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  6045. /* 6761 */ mplew.write(HexTool.getByteArrayFromHexString(hex));
  6046. /* 6762 */ return mplew.getPacket();
  6047. /* */ }
  6048. /* */
  6049. /* */ public static MaplePacket sendAranCombo(int combo) {
  6050. /* 6766 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  6051. /* 6767 */ mplew.writeShort(SendPacketOpcode.ARAN_COMBO_COUNTER);
  6052. /* 6768 */ mplew.writeInt(combo);
  6053. /* 6769 */ return mplew.getPacket();
  6054. /* */ }
  6055. /* */
  6056. /* */ public static MaplePacket spawnDragon(MapleDragon dragon) {
  6057. /* 6773 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(19);
  6058. /* 6774 */ mplew.writeShort(SendPacketOpcode.SPAWN_DRAGON);
  6059. /* 6775 */ mplew.writeInt(dragon.getOwner().getId());
  6060. /* 6776 */ mplew.writeInt(dragon.getPosition().x);
  6061. /* 6777 */ mplew.writeInt(dragon.getPosition().y);
  6062. /* 6778 */ mplew.write(dragon.getStance());
  6063. /* 6779 */ mplew.writeShort(0);
  6064. /* 6780 */ mplew.writeShort(dragon.getOwner().getJob().getId());
  6065. /* 6781 */ return mplew.getPacket();
  6066. /* */ }
  6067. /* */
  6068. /* */ public static MaplePacket partyMessage(int op, String message) {
  6069. /* 6785 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  6070. /* 6786 */ mplew.writeShort(SendPacketOpcode.NEW_PARTY_MESSAGE);
  6071. /* 6787 */ mplew.writeShort(op);
  6072. /* 6788 */ mplew.writeMapleAsciiString(message);
  6073. /* 6789 */ return mplew.getPacket();
  6074. /* */ }
  6075. /* */
  6076. /* */ public static MaplePacket moveDragon(int cid, Point startPos, List<LifeMovementFragment> moves) {
  6077. /* 6793 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
  6078. /* 6794 */ mplew.writeShort(SendPacketOpcode.MOVE_DRAGON);
  6079. /* 6795 */ mplew.writeInt(cid);
  6080. /* 6796 */ mplew.writeShort(startPos.x);
  6081. /* 6797 */ mplew.writeShort(startPos.y);
  6082. /* 6798 */ mplew.writeInt(0);
  6083. /* 6799 */ serializeMovementList(mplew, moves);
  6084. /* 6800 */ return mplew.getPacket();
  6085. /* */ }
  6086. /* */
  6087. /* */ public static MaplePacket removeDragon(MapleCharacter owner) {
  6088. /* 6804 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(6);
  6089. /* 6805 */ mplew.writeShort(SendPacketOpcode.REMOVE_DRAGON);
  6090. /* 6806 */ mplew.writeInt(owner.getId());
  6091. /* 6807 */ return mplew.getPacket();
  6092. /* */ }
  6093. /* */
  6094. /* */ public static MaplePacket updateInventorySlots(int slot, byte amount) {
  6095. /* 6811 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(4);
  6096. /* 6812 */ mplew.writeShort(SendPacketOpcode.UPDATE_INVENTORY_SLOTS);
  6097. /* 6813 */ mplew.write(slot);
  6098. /* 6814 */ mplew.write(amount);
  6099. /* 6815 */ return mplew.getPacket();
  6100. /* */ }
  6101. /* */
  6102. /* */ public static MaplePacket updateExtendedSP(EvanSkillPoints esp) {
  6103. /* 6819 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(11);
  6104. /* 6820 */ mplew.writeShort(SendPacketOpcode.UPDATE_STATS);
  6105. /* 6821 */ mplew.write(0);
  6106. /* 6822 */ mplew.write(0);
  6107. /* 6823 */ mplew.write(128);
  6108. /* 6824 */ mplew.writeShort(0);
  6109. /* 6825 */ mplew.write(esp.getSkillPoints().keySet().size());
  6110. /* 6826 */ for (Iterator i$ = esp.getSkillPoints().keySet().iterator(); i$.hasNext(); ) { int i = ((Integer)i$.next()).intValue();
  6111. /* 6827 */ mplew.write(i == 2200 ? 1 : i - 2208);
  6112. /* 6828 */ mplew.write(esp.getSkillPoints(i));
  6113. /* */ }
  6114. /* 6830 */ mplew.write(0);
  6115. /* 6831 */ return mplew.getPacket();
  6116. /* */ }
  6117. /* */
  6118. /* */ public static MaplePacket showMagnifyingEffect(int id, int slot) {
  6119. /* 6835 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(8);
  6120. /* 6836 */ mplew.writeShort(SendPacketOpcode.SHOW_MAGNIFYING_EFFECT);
  6121. /* 6837 */ mplew.writeInt(id);
  6122. /* 6838 */ mplew.writeShort(slot);
  6123. /* 6839 */ return mplew.getPacket();
  6124. /* */ }
  6125. /* */
  6126. /* */ public static MaplePacket showCubeEffect(int id) {
  6127. /* 6843 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(7);
  6128. /* 6844 */ mplew.writeShort(SendPacketOpcode.SHOW_CUBE_EFFECT);
  6129. /* 6845 */ mplew.writeInt(id);
  6130. /* 6846 */ mplew.write(1);
  6131. /* 6847 */ return mplew.getPacket();
  6132. /* */ }
  6133. /* */
  6134. /* */ public static MaplePacket showPotentialffect(int id) {
  6135. /* 6851 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(9);
  6136. /* 6852 */ mplew.writeShort(SendPacketOpcode.SHOW_POTENTIAL_EFFECT);
  6137. /* 6853 */ mplew.writeInt(id);
  6138. /* 6854 */ mplew.write(1);
  6139. /* 6855 */ mplew.writeShort(0);
  6140. /* 6856 */ return mplew.getPacket();
  6141. /* */ }
  6142. /* */
  6143. /* */ public static MaplePacket showMonsterBombEffect(int x, int y, int level) {
  6144. /* 6860 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(23);
  6145. /* 6861 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_GAIN_INCHAT);
  6146. /* 6862 */ mplew.write(5);
  6147. /* 6863 */ mplew.writeInt(4341003);
  6148. /* 6864 */ mplew.writeInt(x);
  6149. /* 6865 */ mplew.writeInt(y);
  6150. /* 6866 */ mplew.writeInt(1);
  6151. /* 6867 */ mplew.writeInt(level);
  6152. /* 6868 */ return mplew.getPacket();
  6153. /* */ }
  6154. /* */
  6155. /* */ public static MaplePacket damageMonster(int skill, int x, int y) {
  6156. /* 6872 */ MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(19);
  6157. /* 6873 */ mplew.writeShort(SendPacketOpcode.SHOW_ITEM_GAIN_INCHAT);
  6158. /* 6874 */ mplew.write(skill);
  6159. /* 6875 */ mplew.writeInt(x);
  6160. /* 6876 */ mplew.writeInt(y);
  6161. /* 6877 */ mplew.writeLong(0L);
  6162. /* 6878 */ return mplew.getPacket();
  6163. /* */ }
  6164. /* */ }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement