- 积分
- 92
- 最后登录
- 2022-11-5
- 阅读权限
- 10
- 积分
- 92
- 回帖
- 6
- 精华
- 0
TA的每日心情 | 开心 2022-1-29 19:53 |
---|
签到天数: 1 天 [LV.1]初来乍到 新人上路

- 枫币
- 84
- 威望
- 0
- 贡献
- 1
- 在线时间
- 9 小时
- 注册时间
- 2020-5-18

|
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();
|
|
该用户从未签到
新人上路
使用道具 举报
2021-12-11 11:56
签到天数: 1 天
[LV.1]初来乍到
新人上路
使用道具 举报