查看: 1407|回复: 2

[待解决] 求助源码修改等级上限

  • TA的每日心情
    开心
    2022-1-29 19:53
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人上路

    枫币
    84
    威望
    0
    贡献
    1
    在线时间
    9 小时
    注册时间
    2020-5-18
    QQ
    发表于 2022-1-27 15:04:28 | 显示全部楼层 |阅读模式
    1.游戏中到了199级后就没法升级了 ,经验卡在了99.982.下面是源码,没找到修改的地方

    求大佬指点!levelUp()方法

    if (GameConstants.isKOC(job)) {
                if (level <= 70) {
                    remainingAp += 6;
                } else {
                    remainingAp += 5;
                }
            } else {
                remainingAp += 5;
            }
            int maxhp = stats.getMaxHp();
            int maxmp = stats.getMaxMp();

            if (job == 0 || job == 1000 || job == 2000 || job == 2001 || job == 3000) { // Beginner
                maxhp += Randomizer.rand(12, 16);
                maxmp += Randomizer.rand(10, 12);
            } else if (job >= 100 && job <= 132) { // Warrior
                final ISkill improvingMaxHP = SkillFactory.getSkill(1000001);
                final int slevel = getSkillLevel(improvingMaxHP);
                if (slevel > 0) {
                    maxhp += improvingMaxHP.getEffect(slevel).getX();
                }
                maxhp += Randomizer.rand(24, 28);
                maxmp += Randomizer.rand(4, 6);
            } else if (job >= 200 && job <= 232) { // Magician
                final ISkill improvingMaxMP = SkillFactory.getSkill(2000001);
                final int slevel = getSkillLevel(improvingMaxMP);
                if (slevel > 0) {
                    maxmp += improvingMaxMP.getEffect(slevel).getX() * 2;
                }
                maxhp += Randomizer.rand(10, 14);
                maxmp += Randomizer.rand(22, 24);
            } else if (job >= 3200 && job <= 3212) { //battle mages get their own little neat thing
                maxhp += Randomizer.rand(20, 24);
                maxmp += Randomizer.rand(42, 44);
            } else if ((job >= 300 && job <= 322) || (job >= 400 && job <= 434) || (job >= 1300 && job <= 1311) || (job >= 1400 && job <= 1411) || (job >= 3300 && job <= 3312)) { // Bowman, Thief, Wind Breaker and Night Walker
                maxhp += Randomizer.rand(20, 24);
                maxmp += Randomizer.rand(14, 16);
            } else if ((job >= 500 && job <= 522) || (job >= 3500 && job <= 3512)) { // Pirate
                final ISkill improvingMaxHP = SkillFactory.getSkill(5100000);
                final int slevel = getSkillLevel(improvingMaxHP);
                if (slevel > 0) {
                    maxhp += improvingMaxHP.getEffect(slevel).getX();
                }
                maxhp += Randomizer.rand(22, 26);
                maxmp += Randomizer.rand(18, 22);
            } else if (job >= 1100 && job <= 1111) { // Soul Master
                final ISkill improvingMaxHP = SkillFactory.getSkill(11000000);
                final int slevel = getSkillLevel(improvingMaxHP);
                if (slevel > 0) {
                    maxhp += improvingMaxHP.getEffect(slevel).getX();
                }
                maxhp += Randomizer.rand(24, 28);
                maxmp += Randomizer.rand(4, 6);
            } else if (job >= 1200 && job <= 1211) { // Flame Wizard
                final ISkill improvingMaxMP = SkillFactory.getSkill(12000000);
                final int slevel = getSkillLevel(improvingMaxMP);
                if (slevel > 0) {
                    maxmp += improvingMaxMP.getEffect(slevel).getX() * 2;
                }
                maxhp += Randomizer.rand(10, 14);
                maxmp += Randomizer.rand(22, 24);
            } else if (job >= 1500 && job <= 1512) { // Pirate
                final ISkill improvingMaxHP = SkillFactory.getSkill(15100000);
                final int slevel = getSkillLevel(improvingMaxHP);
                if (slevel > 0) {
                    maxhp += improvingMaxHP.getEffect(slevel).getX();
                }
                maxhp += Randomizer.rand(22, 26);
                maxmp += Randomizer.rand(18, 22);
            } else if (job >= 2100 && job <= 2112) { // Aran
                maxhp += Randomizer.rand(50, 52);
                maxmp += Randomizer.rand(4, 6);
            } else if (job >= 2200 && job <= 2218) { // Evan
                maxhp += Randomizer.rand(12, 16);
                maxmp += Randomizer.rand(50, 52);
            } else { // GameMaster
                maxhp += Randomizer.rand(50, 100);
                maxmp += Randomizer.rand(50, 100);
            }
            maxmp += stats.getTotalInt() / 10;


            while (exp > GameConstants.getExpNeededForLevel(level)) {
                exp -= GameConstants.getExpNeededForLevel(level);
                level += 1;
                int level = getLevel();
            }

            // 成就系統
            /*
             * if (level == 30) { finishAchievement(2); } if (level == 70) {
             * finishAchievement(3); } if (level == 120) { finishAchievement(4); }
             * if (level == 200) { finishAchievement(5); }
             */
            if (!isGM()) {
                if (level == 10 || level == 30 || level == 70 || level == 120 || level == 200) {
                    final StringBuilder sb = new StringBuilder("[恭喜] ");
                    final IItem medal = getInventory(MapleInventoryType.EQUIPPED).getItem((byte) -26);
                    if (medal != null) { // Medal
                        sb.append("<");
                        sb.append(MapleItemInformationProvider.getInstance().getName(medal.getItemId()));
                        sb.append("> ");
                    }
                    sb.append(getName());
                    sb.append(" 达到了 " + level + " 级,让我们一起恭喜他/她吧!");
                    World.Broadcast.broadcastMessage(MaplePacketCreator.serverNotice(6, sb.toString()).getBytes());
                }
            }
            // maxhp = (short) Math.min(30000, Math.abs(maxhp));
            //maxmp = (short) Math.min(30000, Math.abs(maxmp));

            maxhp = Math.min(30000, maxhp);
            maxmp = Math.min(30000, maxmp);
            final List<Pair<MapleStat, Integer>> statup = new ArrayList<Pair<MapleStat, Integer>>(8);

            statup.add(new Pair(MapleStat.AVAILABLEAP, Integer.valueOf(this.remainingAp)));
            statup.add(new Pair<MapleStat, Integer>(MapleStat.MAXHP, maxhp));
            statup.add(new Pair<MapleStat, Integer>(MapleStat.MAXMP, maxmp));
            statup.add(new Pair<MapleStat, Integer>(MapleStat.HP, maxhp));
            statup.add(new Pair<MapleStat, Integer>(MapleStat.MP, maxmp));
            statup.add(new Pair<MapleStat, Integer>(MapleStat.EXP, exp));
            statup.add(new Pair<MapleStat, Integer>(MapleStat.LEVEL, (int) level));

            if (isGM() || (job != 0 && job != 1000 && job != 2000 && job != 2001 && job != 3000)) { // Not Beginner, Nobless and Legend
                remainingSp[GameConstants.getSkillBook(this.job)] += 3;
                client.getSession().write(MaplePacketCreator.updateSp(this, false));
            } else if (level <= 10) {
                stats.setStr((short) (stats.getStr() + remainingAp));
                remainingAp = 0;

                statup.add(new Pair<MapleStat, Integer>(MapleStat.STR, (int) stats.getStr()));
            }

            statup.add(new Pair<MapleStat, Integer>(MapleStat.AVAILABLEAP, (int) remainingAp));

            stats.setMaxHp((short) maxhp);
            stats.setMaxMp((short) maxmp);
            stats.setHp((short) maxhp);
            stats.setMp((short) maxmp);
            client.getSession().write(MaplePacketCreator.updatePlayerStats(statup, getJob()));
            map.broadcastMessage(this, MaplePacketCreator.showForeignEffect(getId(), 0), false);
            stats.recalcLocalStats();
            silentPartyUpdate();
            guildUpdate();
            familyUpdate();

    该用户从未签到

    新人上路

    枫币
    77
    威望
    0
    贡献
    0
    在线时间
    8 小时
    注册时间
    2020-9-2
    QQ
    发表于 2022-1-27 23:30:58 | 显示全部楼层
    顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶- -
  • TA的每日心情
    开心
    2021-12-11 11:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人上路

    枫币
    93
    威望
    0
    贡献
    1
    在线时间
    6 小时
    注册时间
    2021-12-11
    发表于 2022-2-26 00:37:21 | 显示全部楼层
    改也不是改这里啊
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    枫叶物语即使倒闭也绝对不会变质
    Copyright © 2001-2013 Discuz Team. Powered by Discuz! X3.5 |网站地图 | 本站已运行: