To fix the same level up message thing if I am reading that correct then replace your addExp method in Skill.java with this one:
Code:
public void addExp(int skill, int xp) {
if (exp[skill] < MAX_EXP) {
int oldLevel = getLevelForXP(exp[skill] + 1);
exp[skill] += xp;
if (oldLevel < getLevelForXP(exp[skill] + 1)) {
level[skill] = getLevelForXP(exp[skill] + 1);
player.setAppearanceUpdateRequired(true);
for (Player players : World.getPlayers()) {
if (players == null)
continue;
players.getActionSender().sendStillGraphic(199,
player.getPosition(), 0);
}
sendLevelUpMessage(skill);
}
}
refresh(skill);
}
Let me know if that worked.
Explain the other stuff better? I'm confused.