예제 #1
0
    @Override
    public int execute(MapleClient c, String[] splitted) {
      if (splitted.length < 2) {
        c.getPlayer().dropMessage(5, "Invalid number entered.");
        return 0;
      }
      int change;
      try {
        change = Integer.parseInt(splitted[1]);
      } catch (NumberFormatException nfe) {
        c.getPlayer().dropMessage(5, "Invalid number entered.");
        return 0;
      }
      int hpUsed = 0;
      int mpUsed = 0;
      //   if (stat == MapleStat.MAXHP) {
      //        hpUsed = change;
      //       short job = c.getPlayer().getJob();
      //       change *= GameConstants.getHpApByJob(job);
      //   }
      if (stat == MapleStat.MAXMP) {
        mpUsed = change;
        short job = c.getPlayer().getJob();
        if (GameConstants.isDemonSlayer(job)
            || GameConstants.isAngelicBuster(job)
            || GameConstants.isDemonAvenger(job)) {
          c.getPlayer().dropMessage(5, "You cannot raise MP.");
          return 0;
        }
        change *= GameConstants.getMpApByJob(job);
      }

      if (change <= 0) {
        c.getPlayer().dropMessage(5, "You don't have enough AP Resets that.");
        return 0;
      }
      if (c.getPlayer().getRemainingAp() < change) {
        c.getPlayer().dropMessage(5, "You don't have enough AP for that.");
        return 0;
      }
      if (getStat(c.getPlayer()) + change > statLim
          && stat != MapleStat.MAXHP
          && stat != MapleStat.MAXMP) {
        c.getPlayer().dropMessage(5, "The stat limit is " + statLim + ".");
        return 0;
      }
      if (getStat(c.getPlayer()) + change > hpMpLim
          && (stat == MapleStat.MAXHP || stat == MapleStat.MAXMP)) {
        c.getPlayer().dropMessage(5, "The stat limit is " + hpMpLim + ".");
        return 0;
      }
      setStat(c.getPlayer(), getStat(c.getPlayer()), change);
      c.getPlayer().setRemainingAp((short) (c.getPlayer().getRemainingAp() - change));
      c.getPlayer().setHpApUsed((short) (c.getPlayer().getHpApUsed() + hpUsed));
      c.getPlayer().setHpApUsed((short) (c.getPlayer().getHpApUsed() + mpUsed));
      c.getPlayer().updateSingleStat(MapleStat.AVAILABLEAP, c.getPlayer().getRemainingAp());
      if (stat == MapleStat.MAXHP) {
        c.getPlayer()
            .dropMessage(
                5,
                StringUtil.makeEnumHumanReadable(stat.name())
                    + " has been raised by "
                    + change * 30
                    + ".");
        c.getPlayer().fakeRelog();
      } else
        c.getPlayer()
            .dropMessage(
                5,
                StringUtil.makeEnumHumanReadable(stat.name())
                    + " has been raised by "
                    + change
                    + ".");
      return 1;
    }