Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.07 KB | None | 0 0
  1. if (itemType == 505) { // AP/SP reset
  2. if (itemId > 5050000) {
  3. int SPTo = slea.readInt();
  4. int SPFrom = slea.readInt();
  5. ISkill skillSPTo = SkillFactory.getSkill(SPTo);
  6. ISkill skillSPFrom = SkillFactory.getSkill(SPFrom);
  7. byte curLevel = player.getSkillLevel(skillSPTo);
  8. byte curLevelSPFrom = player.getSkillLevel(skillSPFrom);
  9. if ((curLevel < skillSPTo.getMaxLevel()) && curLevelSPFrom > 0) {
  10. player.changeSkillLevel(skillSPFrom, (byte) (curLevelSPFrom - 1), player.getMasterLevel(skillSPFrom), -1);
  11. player.changeSkillLevel(skillSPTo, (byte) (curLevel + 1), player.getMasterLevel(skillSPTo), -1);
  12. if (SPFrom == Aran.FULL_SWING) {
  13. ISkill hidden1 = SkillFactory.getSkill(Aran.HIDDEN_FULL_DOUBLE);
  14. ISkill hidden2 = SkillFactory.getSkill(Aran.HIDDEN_FULL_TRIPLE);
  15. player.changeSkillLevel(hidden1, (byte) (curLevelSPFrom - 1), player.getMasterLevel(hidden1), -1);
  16. player.changeSkillLevel(hidden2, (byte) (curLevelSPFrom - 1), player.getMasterLevel(hidden2), -1);
  17. } else if (SPFrom == Aran.OVER_SWING) {
  18. ISkill hidden1 = SkillFactory.getSkill(Aran.HIDDEN_OVER_DOUBLE);
  19. ISkill hidden2 = SkillFactory.getSkill(Aran.HIDDEN_OVER_TRIPLE);
  20. player.changeSkillLevel(hidden1, (byte) (curLevelSPFrom - 1), player.getMasterLevel(hidden1), -1);
  21. player.changeSkillLevel(hidden2, (byte) (curLevelSPFrom - 1), player.getMasterLevel(hidden2), -1);
  22. }
  23. }
  24. } else {
  25. List<Pair<MapleStat, Integer>> statupdate = new ArrayList<Pair<MapleStat, Integer>>(2);
  26. int APTo = slea.readInt();
  27. int APFrom = slea.readInt();
  28. switch (APFrom) {
  29. case 64: // str
  30. if (player.getStr() < 5) {
  31. return;
  32. }
  33. player.addStat(1, -1);
  34. break;
  35. case 128: // dex
  36. if (player.getDex() < 5) {
  37. return;
  38. }
  39. player.addStat(2, -1);
  40. break;
  41. case 256: // int
  42. if (player.getInt() < 5) {
  43. return;
  44. }
  45. player.addStat(3, -1);
  46. break;
  47. case 512: // luk
  48. if (player.getLuk() < 5) {
  49. return;
  50. }
  51. player.addStat(4, -1);
  52. break;
  53. case 2048: // HP
  54. int hplose = 0;
  55. final int jobid = player.getJob().getId();
  56. if (jobid == 0 || jobid == 1000 || jobid == 2000 || jobid >= 1200 && jobid <= 1211) { // Beginner
  57. hplose -= 12;
  58. } else if (jobid >= 100 && jobid <= 132) { // Warrior
  59. ISkill improvinghplose = SkillFactory.getSkill(1000001);
  60. int improvinghploseLevel = c.getPlayer().getSkillLevel(improvinghplose);
  61. hplose -= 24;
  62. if (improvinghploseLevel >= 1) {
  63. hplose -= improvinghplose.getEffect(improvinghploseLevel).getY();
  64. }
  65. } else if (jobid >= 200 && jobid <= 232) { // Magician
  66. hplose -= 10;
  67. } else if (jobid >= 500 && jobid <= 522) { // Pirate
  68. ISkill improvinghplose = SkillFactory.getSkill(5100000);
  69. int improvinghploseLevel = c.getPlayer().getSkillLevel(improvinghplose);
  70. hplose -= 22;
  71. if (improvinghploseLevel > 0) {
  72. hplose -= improvinghplose.getEffect(improvinghploseLevel).getY();
  73. }
  74. } else if (jobid >= 1100 && jobid <= 1111) { // Soul Master
  75. ISkill improvinghplose = SkillFactory.getSkill(11000000);
  76. int improvinghploseLevel = c.getPlayer().getSkillLevel(improvinghplose);
  77. hplose -= 27;
  78. if (improvinghploseLevel >= 1) {
  79. hplose -= improvinghplose.getEffect(improvinghploseLevel).getY();
  80. }
  81. } else if ((jobid >= 1300 && jobid <= 1311) || (jobid >= 1400 && jobid <= 1411)) { // Wind Breaker and Night Walker
  82. hplose -= 17;
  83. } else if (jobid >= 300 && jobid <= 322 || jobid >= 400 && jobid <= 422 || jobid >= 2000 && jobid <= 2112) { // Aran
  84. hplose -= 20;
  85. } else { // GameMaster
  86. hplose -= 20;
  87. }
  88. player.setHp(player.getHp() + hplose);
  89. player.setMaxHp(player.getMaxHp() + hplose);
  90. statupdate.add(new Pair<MapleStat, Integer>(MapleStat.HP, player.getHp()));
  91. statupdate.add(new Pair<MapleStat, Integer>(MapleStat.MAXHP, player.getMaxHp()));
  92. break;
  93. case 8192: // MP
  94. int mp = player.getMp();
  95. int level = player.getLevel();
  96. MapleJob job = player.getJob();
  97. boolean canWash = true;
  98. if (job.isA(MapleJob.SPEARMAN) && mp < 4 * level + 156) {
  99. canWash = false;
  100. } else if (job.isA(MapleJob.FIGHTER) && mp < 4 * level + 56) {
  101. canWash = false;
  102. } else if (job.isA(MapleJob.THIEF) && job.getId() % 100 > 0 && mp < level * 14 - 4) {
  103. canWash = false;
  104. } else if (mp < level * 14 + 148) {
  105. canWash = false;
  106. }
  107. if (canWash) {
  108. int minmp = 0;
  109. if (job.isA(MapleJob.WARRIOR) || job.isA(MapleJob.DAWNWARRIOR1) || job.isA(MapleJob.ARAN1)) {
  110. minmp += 4;
  111. } else if (job.isA(MapleJob.MAGICIAN) || job.isA(MapleJob.BLAZEWIZARD1)) {
  112. minmp += 36;
  113. } else if (job.isA(MapleJob.BOWMAN) || job.isA(MapleJob.WINDARCHER1) || job.isA(MapleJob.THIEF) || job.isA(MapleJob.NIGHTWALKER1)) {
  114. minmp += 12;
  115. } else if (job.isA(MapleJob.PIRATE) || job.isA(MapleJob.THUNDERBREAKER1)) {
  116. minmp += 16;
  117. } else {
  118. minmp += 8;
  119. }
  120.  
  121. player.setMp(player.getMp() - minmp);
  122. player.setMaxMp(player.getMaxMp() - minmp);
  123. statupdate.add(new Pair<MapleStat, Integer>(MapleStat.MP, player.getMp()));
  124. statupdate.add(new Pair<MapleStat, Integer>(MapleStat.MAXMP, player.getMaxMp()));
  125. break;
  126. }
  127. default:
  128. c.announce(MaplePacketCreator.updatePlayerStats(MaplePacketCreator.EMPTY_STATUPDATE, true));
  129. return;
  130. }
  131. DistributeAPHandler.addStat(c, APTo);
  132. c.announce(MaplePacketCreator.updatePlayerStats(statupdate, true));
  133. }
  134. remove(c, itemId);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement