Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (itemType == 505) { // AP/SP reset
- if (itemId > 5050000) {
- int SPTo = slea.readInt();
- int SPFrom = slea.readInt();
- ISkill skillSPTo = SkillFactory.getSkill(SPTo);
- ISkill skillSPFrom = SkillFactory.getSkill(SPFrom);
- byte curLevel = player.getSkillLevel(skillSPTo);
- byte curLevelSPFrom = player.getSkillLevel(skillSPFrom);
- if ((curLevel < skillSPTo.getMaxLevel()) && curLevelSPFrom > 0) {
- player.changeSkillLevel(skillSPFrom, (byte) (curLevelSPFrom - 1), player.getMasterLevel(skillSPFrom), -1);
- player.changeSkillLevel(skillSPTo, (byte) (curLevel + 1), player.getMasterLevel(skillSPTo), -1);
- if (SPFrom == Aran.FULL_SWING) {
- ISkill hidden1 = SkillFactory.getSkill(Aran.HIDDEN_FULL_DOUBLE);
- ISkill hidden2 = SkillFactory.getSkill(Aran.HIDDEN_FULL_TRIPLE);
- player.changeSkillLevel(hidden1, (byte) (curLevelSPFrom - 1), player.getMasterLevel(hidden1), -1);
- player.changeSkillLevel(hidden2, (byte) (curLevelSPFrom - 1), player.getMasterLevel(hidden2), -1);
- } else if (SPFrom == Aran.OVER_SWING) {
- ISkill hidden1 = SkillFactory.getSkill(Aran.HIDDEN_OVER_DOUBLE);
- ISkill hidden2 = SkillFactory.getSkill(Aran.HIDDEN_OVER_TRIPLE);
- player.changeSkillLevel(hidden1, (byte) (curLevelSPFrom - 1), player.getMasterLevel(hidden1), -1);
- player.changeSkillLevel(hidden2, (byte) (curLevelSPFrom - 1), player.getMasterLevel(hidden2), -1);
- }
- }
- } else {
- List<Pair<MapleStat, Integer>> statupdate = new ArrayList<Pair<MapleStat, Integer>>(2);
- int APTo = slea.readInt();
- int APFrom = slea.readInt();
- switch (APFrom) {
- case 64: // str
- if (player.getStr() < 5) {
- return;
- }
- player.addStat(1, -1);
- break;
- case 128: // dex
- if (player.getDex() < 5) {
- return;
- }
- player.addStat(2, -1);
- break;
- case 256: // int
- if (player.getInt() < 5) {
- return;
- }
- player.addStat(3, -1);
- break;
- case 512: // luk
- if (player.getLuk() < 5) {
- return;
- }
- player.addStat(4, -1);
- break;
- case 2048: // HP
- int hplose = 0;
- final int jobid = player.getJob().getId();
- if (jobid == 0 || jobid == 1000 || jobid == 2000 || jobid >= 1200 && jobid <= 1211) { // Beginner
- hplose -= 12;
- } else if (jobid >= 100 && jobid <= 132) { // Warrior
- ISkill improvinghplose = SkillFactory.getSkill(1000001);
- int improvinghploseLevel = c.getPlayer().getSkillLevel(improvinghplose);
- hplose -= 24;
- if (improvinghploseLevel >= 1) {
- hplose -= improvinghplose.getEffect(improvinghploseLevel).getY();
- }
- } else if (jobid >= 200 && jobid <= 232) { // Magician
- hplose -= 10;
- } else if (jobid >= 500 && jobid <= 522) { // Pirate
- ISkill improvinghplose = SkillFactory.getSkill(5100000);
- int improvinghploseLevel = c.getPlayer().getSkillLevel(improvinghplose);
- hplose -= 22;
- if (improvinghploseLevel > 0) {
- hplose -= improvinghplose.getEffect(improvinghploseLevel).getY();
- }
- } else if (jobid >= 1100 && jobid <= 1111) { // Soul Master
- ISkill improvinghplose = SkillFactory.getSkill(11000000);
- int improvinghploseLevel = c.getPlayer().getSkillLevel(improvinghplose);
- hplose -= 27;
- if (improvinghploseLevel >= 1) {
- hplose -= improvinghplose.getEffect(improvinghploseLevel).getY();
- }
- } else if ((jobid >= 1300 && jobid <= 1311) || (jobid >= 1400 && jobid <= 1411)) { // Wind Breaker and Night Walker
- hplose -= 17;
- } else if (jobid >= 300 && jobid <= 322 || jobid >= 400 && jobid <= 422 || jobid >= 2000 && jobid <= 2112) { // Aran
- hplose -= 20;
- } else { // GameMaster
- hplose -= 20;
- }
- player.setHp(player.getHp() + hplose);
- player.setMaxHp(player.getMaxHp() + hplose);
- statupdate.add(new Pair<MapleStat, Integer>(MapleStat.HP, player.getHp()));
- statupdate.add(new Pair<MapleStat, Integer>(MapleStat.MAXHP, player.getMaxHp()));
- break;
- case 8192: // MP
- int mp = player.getMp();
- int level = player.getLevel();
- MapleJob job = player.getJob();
- boolean canWash = true;
- if (job.isA(MapleJob.SPEARMAN) && mp < 4 * level + 156) {
- canWash = false;
- } else if (job.isA(MapleJob.FIGHTER) && mp < 4 * level + 56) {
- canWash = false;
- } else if (job.isA(MapleJob.THIEF) && job.getId() % 100 > 0 && mp < level * 14 - 4) {
- canWash = false;
- } else if (mp < level * 14 + 148) {
- canWash = false;
- }
- if (canWash) {
- int minmp = 0;
- if (job.isA(MapleJob.WARRIOR) || job.isA(MapleJob.DAWNWARRIOR1) || job.isA(MapleJob.ARAN1)) {
- minmp += 4;
- } else if (job.isA(MapleJob.MAGICIAN) || job.isA(MapleJob.BLAZEWIZARD1)) {
- minmp += 36;
- } else if (job.isA(MapleJob.BOWMAN) || job.isA(MapleJob.WINDARCHER1) || job.isA(MapleJob.THIEF) || job.isA(MapleJob.NIGHTWALKER1)) {
- minmp += 12;
- } else if (job.isA(MapleJob.PIRATE) || job.isA(MapleJob.THUNDERBREAKER1)) {
- minmp += 16;
- } else {
- minmp += 8;
- }
- player.setMp(player.getMp() - minmp);
- player.setMaxMp(player.getMaxMp() - minmp);
- statupdate.add(new Pair<MapleStat, Integer>(MapleStat.MP, player.getMp()));
- statupdate.add(new Pair<MapleStat, Integer>(MapleStat.MAXMP, player.getMaxMp()));
- break;
- }
- default:
- c.announce(MaplePacketCreator.updatePlayerStats(MaplePacketCreator.EMPTY_STATUPDATE, true));
- return;
- }
- DistributeAPHandler.addStat(c, APTo);
- c.announce(MaplePacketCreator.updatePlayerStats(statupdate, true));
- }
- remove(c, itemId);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement