Problem:
Code:
java.lang.ArrayIndexOutOfBoundsException: 21
at client.saveStats(client.java:1100)
at client.packetProcess(client.java:4041)
at client.packetSending(client.java:4029)
at PlayerHandler.process(PlayerHandler.java:121)
at server.main(server.java:35)
Danz PK Server [fatal] - exception
Game saved for player schtek
ClientHandler: schtek disconnected.
Line: 1100
Code:
public void saveStats() {
int Attacklvl = getLevelForXP(playerXP[0]);
int Strengthlvl = getLevelForXP(playerXP[2]);
int Defencelvl = getLevelForXP(playerXP[1]);
int Hitpointslvl = getLevelForXP(playerXP[3]);
int Prayerlvl = getLevelForXP(playerXP[5]);
int Magiclvl = getLevelForXP(playerXP[6]);
int Rangelvl = getLevelForXP(playerXP[4]);
int Runecraftlvl = getLevelForXP(playerXP[20]);
int Herblorelvl = getLevelForXP(playerXP[15]);
int Agilitylvl = getLevelForXP(playerXP[16]);
int Craftinglvl = getLevelForXP(playerXP[12]);
int Fletchinglvl = getLevelForXP(playerXP[9]);
int Slayerlvl = getLevelForXP(playerXP[18]);
int Mininglvl = getLevelForXP(playerXP[14]);
int Smithinglvl = getLevelForXP(playerXP[13]);
int Fishinglvl = getLevelForXP(playerXP[10]);
int Cookinglvl = getLevelForXP(playerXP[7]);
int Firemakinglvl = getLevelForXP(playerXP[11]);
int Woodcuttinglvl = getLevelForXP(playerXP[8]);
int Farminglvl = getLevelForXP(playerXP[19]);
int Attackxp = playerXP[0];
int Strengthxp = playerXP[2];
int Defencexp = playerXP[1];
int Hitpointsxp = playerXP[3];
int Prayerxp = playerXP[5];
int Magicxp = playerXP[6];
int Rangexp = playerXP[4];
int Runecraftxp = playerXP[20];
int Herblorexp = playerXP[15];
int Agilityxp = playerXP[16];
int Craftingxp = playerXP[12];
int Fletchingxp = playerXP[9];
int Slayerxp = playerXP[18];
int Miningxp = playerXP[14];
int Smithingxp = playerXP[13];
int Fishingxp = playerXP[10];
int Cookingxp = playerXP[7];
int Firemakingxp = playerXP[11];
int Woodcuttingxp = playerXP[8];
int Farmingxp = playerXP[19];
PrintStream MyOutput = null;
try {
MyOutput = new PrintStream(new FileOutputStream("./savedgames/" + playerName + ".dat"));
} catch (IOException e) {
}
if (MyOutput != null) {
for(int i=0;i<25;i++) {
//MyOutput.print(statName[i] + " - " + playerLevel[i] + " - " + playerXP[i] + "\n");
}
MyOutput.close();
} else {
}
}
Line: 4041
Code:
//healing check
if (healing[0] > 0) {
healing();
}
Line: 4029
Code:
if (IsDead == true && NewHP <= 1) {
youdied();
playerLevel[3] = 10;
setSkillLevel(playerHitpoints, 10, playerXP[playerHitpoints]);
}
Line: 121 PlayerHandler:
Code:
while(players[i].packetSending());
players[i].postProcessing();
players[i].getNextPlayerMovement();
Line: 35 server.java:
Code:
playerHandler.process(); // updates all player related stuff