I've been trying to fix this for sometime now. I was adding Dungeoneering and Summoning. After I compiled and ran the serverI get this when I log in.
Code:
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.items.ItemAssistant.updateInventory(ItemAssistant.java:1
01)
at server.model.players.Client.process(Client.java:759)
at server.model.players.PlayerHandler.process(PlayerHandler.java:169)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.players.Client.initialize(Client.java:512)
at server.model.players.PlayerHandler.process(PlayerHandler.java:213)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.items.ItemAssistant.updateInventory(ItemAssistant.java:1
01)
at server.model.players.Client.process(Client.java:759)
at server.model.players.PlayerHandler.process(PlayerHandler.java:169)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.players.Client.initialize(Client.java:512)
at server.model.players.PlayerHandler.process(PlayerHandler.java:213)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.items.ItemAssistant.updateInventory(ItemAssistant.java:1
01)
at server.model.players.Client.process(Client.java:759)
at server.model.players.PlayerHandler.process(PlayerHandler.java:169)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.players.Client.initialize(Client.java:512)
at server.model.players.PlayerHandler.process(PlayerHandler.java:213)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.items.ItemAssistant.updateInventory(ItemAssistant.java:1
01)
at server.model.players.Client.process(Client.java:759)
at server.model.players.PlayerHandler.process(PlayerHandler.java:169)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.players.Client.initialize(Client.java:512)
at server.model.players.PlayerHandler.process(PlayerHandler.java:213)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.items.ItemAssistant.updateInventory(ItemAssistant.java:1
01)
at server.model.players.Client.process(Client.java:759)
at server.model.players.PlayerHandler.process(PlayerHandler.java:169)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.players.Client.initialize(Client.java:512)
at server.model.players.PlayerHandler.process(PlayerHandler.java:213)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.items.ItemAssistant.updateInventory(ItemAssistant.java:1
01)
at server.model.players.Client.process(Client.java:759)
at server.model.players.PlayerHandler.process(PlayerHandler.java:169)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.players.Client.initialize(Client.java:512)
at server.model.players.PlayerHandler.process(PlayerHandler.java:213)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.NullPointerException
at server.model.items.ItemAssistant.resetItems(ItemAssistant.java:111)
at server.model.items.ItemAssistant.updateInventory(ItemAssistant.java:1
01)
at server.model.players.Client.process(Client.java:759)
at server.model.players.PlayerHandler.process(PlayerHandler.java:169)
at server.Server$1.execute(Server.java:165)
at server.task.Task.tick(Task.java:99)
at server.task.TaskScheduler.run(TaskScheduler.java:98)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:47
1)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java
:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
at java.lang.Thread.run(Thread.java:722)
Game saved for player dustey
[DEREGISTERED]: dustey
Heres the methods
Code:
public void resetItems(int WriteFrame) {
synchronized(c) {
if(c.getOutStream() != null && c != null) {
c.getOutStream().createFrameVarSizeWord(53);
c.getOutStream().writeWord(WriteFrame);
c.getOutStream().writeWord(c.playerItems.length);
for (int i = 0; i < c.playerItems.length; i++) {
if(c.playerItemsN[i] > 254) {
c.getOutStream().writeByte(255);
c.getOutStream().writeDWord_v2(c.playerItemsN[i]);
} else {
c.getOutStream().writeByte(c.playerItemsN[i]);
}
c.getOutStream().writeWordBigEndianA(c.playerItems[i]);
}
c.getOutStream().endFrameVarSizeWord();
c.flushOutStream();
}
}
}
Code:
public void initialize() {
handleHighscores();
handleQuestTab();
getPA().sendFrame126("Dicing added", 40007);
getPA().sendFrame126("Players Online: "+PlayerHandler.getPlayerCount()+ " ", 29155); //quest journal title
getPA().sendFrame126("http://www.nelsonscape.smffy.com", 29164); //quest title
getPA().sendFrame126("Your Status:", 663);
getPA().sendFrame126("Combat Level: @yel@" +combatLevel+ " ", 29165);
getPA().sendFrame126("@gre@NP (Nelson Points):", 29166); //quest title
getPA().sendFrame126("@yel@"+pcPoints+" ", 29167);
getPA().sendFrame126("@gre@Black-Marks: ", 29168);
getPA().sendFrame126("@yel@("+BlackMarks+") @red@/@yel@ (4)", 29169);
getDH().sendDialogues(500, npcType);
getPA().sendFrame36(505, 0);
getPA().sendFrame36(506, 0);
getPA().sendFrame36(507, 0);
getPA().sendFrame36(508, 1);
UUID = RS2LoginProtocolDecoder.UUID;
outStream.createFrame(249);
outStream.writeByteA(1); // 1 for members, zero for free
outStream.writeWordBigEndianA(playerId);
for (int j = 0; j < Server.playerHandler.players.length; j++) {
if (j == playerId)
continue;
if (Server.playerHandler.players[j] != null) {
if (Server.playerHandler.players[j].playerName.equalsIgnoreCase(playerName))
disconnected = true;
}
}
if (this.familiarID > 0) {
server.model.players.skills.summoning.Summoning.spawnFamiliar(this, this.familiarID);
this.getPA().refreshBoB();
}
for(int p = 0; p < PRAYER.length; p++) { // reset prayer glows
prayerActive[p] = false;
getPA().sendFrame36(PRAYER_GLOW[p], 0);
}
//getPA().sendCrashFrame();
getPA().handleWeaponStyle();
getPA().handleLoginText();
//accountFlagged = getPA().checkForFlags();
getPA().sendFrame36(108, 0);//resets autocast button
getPA().sendFrame36(172, 1);
getPA().sendFrame107(); // reset screen
getPA().setChatOptions(0, 0, 0); // reset private messaging options
setSidebarInterface(0, 2423);
setSidebarInterface(1, 3917);
setSidebarInterface(2, 638);
setSidebarInterface(3, 3213);
setSidebarInterface(4, 1644);
getPA().logIntoPM();
setSidebarInterface(5, 5608);
setSidebarInterface(7, 18128);
setSidebarInterface(8, 5065);
setSidebarInterface(9, 5715);
setSidebarInterface(10, 2449);
setSidebarInterface(11, 904); // wrench tab
setSidebarInterface(12, 147); // run tab
setSidebarInterface(13, 6299); //music tab 6299 for lowdetail. 962 for highdetail
setSidebarInterface(14, 29265); //acheivement
setSidebarInterface(16, 17011); //acheivement
magicBooks();
if(altarPrayed == 0) {
setSidebarInterface(5, 5608);
} else {
setSidebarInterface(5, 22500);
}
if(slayerTask == 90) {
slayerTask = 459;
}
correctCoordinates();
sendMessage("Welcome to Nelson Scape.");
if(inClanWars()) {
getPA().movePlayer(ClanWarConstants.DEATHX + Misc.random(3), ClanWarConstants.DEATHY + Misc.random(3), 0);
}
//getPA().showInterface(40050);
DuelDupe = 0;
getPA().showOption(4, 0,"Trade With", 3);
getPA().showOption(5, 0,"Follow", 4);
getItems().resetItems(3214);
getItems().sendWeapon(playerEquipment[playerWeapon], getItems().getItemName(playerEquipment[playerWeapon]));
getItems().resetBonus();
getItems().getBonus();
getItems().writeBonus();
getItems().setEquipment(playerEquipment[playerHat],1,playerHat);
getItems().setEquipment(playerEquipment[playerCape],1,playerCape);
getItems().setEquipment(playerEquipment[playerAmulet],1,playerAmulet);
getItems().setEquipment(playerEquipment[playerArrows],playerEquipmentN[playerArrows],playerArrows);
getItems().setEquipment(playerEquipment[playerChest],1,playerChest);
getItems().setEquipment(playerEquipment[playerShield],1,playerShield);
getItems().setEquipment(playerEquipment[playerLegs],1,playerLegs);
getItems().setEquipment(playerEquipment[playerHands],1,playerHands);
getItems().setEquipment(playerEquipment[playerFeet],1,playerFeet);
getItems().setEquipment(playerEquipment[playerRing],1,playerRing);
getItems().setEquipment(playerEquipment[playerWeapon],playerEquipmentN[playerWeapon],playerWeapon);
getCombat().getPlayerAnimIndex(getItems().getItemName(playerEquipment[playerWeapon]).toLowerCase());
getPA().sendFrame126("Special Moves: "+(int)summAmount+"/60", 17040);
getItems().addSpecialBar(playerEquipment[playerWeapon]);
Misc.println("[REGISTERED]: "+playerName+"");
handler.updatePlayer(this, outStream);
handler.updateNPC(this, outStream);
flushOutStream();
getPA().clearClanChat();
getPA().resetFollow();
if (addStarter)
getPA().addStarter();
for (int i = 0; i < 25; i++) {
getPA().setSkillLevel(i, playerLevel[i], playerXP[i]);
getPA().refreshSkill(i);
}
}
Code:
public void process() {
getPA().sendFrame126("Nelson Scape", 4536);
getPA().sendFrame126("Nelson Scape - Deposit Box", 7421);
getPA().sendFrame126("The Bank of Nelson Scape - Bank Pin", 14923);
getPA().sendFrame126(" ", 15107);
getPA().sendFrame126("Set Pin", 15078);
getPA().sendFrame126("Delete Pin", 15082);
getPA().sendFrame126("", 15107);
getPA().sendFrame126("Set Pin", 15078);
getPA().sendFrame126("The Bank of Nelson Scape",5383); //this is the actual title of the player's bank.
getPA().sendFrame126(" ",4439);
Date date = new Date();
getPA().sendFrame126("@gre@Time: " + date.toLocaleString(), 29170);
getPA().sendFrame36(508, 1);
getAchievement().achievementsCompleted();
FetchDice();
if (overloadcounter > 0) {
startAnimation(3170);
dealDamage(10);
handleHitMask(10);
overloadcounter -= 1;
getPA().refreshSkill(3);
}
if(this.inClanWarsLobby()) {
getPA().showOption(3, 1, "Challenge", 1);
}
if(inClanWars()) {
try {
if(this.clanWarId != -1) {
if(getClanWars().wallDown(ClanWarHandler.clanWars[this.clanWarId])) {
getPA().showOption(3, 1, "Attack", 1);
} else {
getPA().showOption(3, 1, "null", 1);
}
getPA().walkableInterface(3500);
getClanWars().updateInterface(this, ClanWarHandler.clanWars[this.clanWarId]);
}
} catch(Exception e){
e.printStackTrace();
}
}
if(expLamp > 0) {
expLamp --;
}
if(System.currentTimeMillis() - specDelay > Config.INCREASE_SSPEC_AMOUNT) {
specDelay = System.currentTimeMillis();
if(summAmount < 60) {
summAmount += 10;
}
if (summAmount > 60) {
summAmount = 60;
}
}
if (specTimer > 0) {
specTimer--;
}
if(specRest > 0) {
specRest --;
}
if(dungRest > 0) {
dungRest --;
}
getPA().totallevelsupdate();
if(clawDelay > 0) {
clawDelay--;
}
if(clawDelay == 1) {
delayedDamage = (clawDamage/4);
delayedDamage2 = (clawDamage/4)+1;
if(clawType == 2) {
getCombat().applyNpcMeleeDamage(clawIndex, 1, clawDamage/4);
}
if(clawType == 1) {
getCombat().applyPlayerMeleeDamage(clawIndex, 1, clawDamage/4);
}
if(clawType == 2) {
getCombat().applyNpcMeleeDamage(clawIndex, 2, (clawDamage/4) + 1);
}
if(clawType == 1) {
getCombat().applyPlayerMeleeDamage(clawIndex, 2, (clawDamage/4) + 1);
}
clawDelay = 0;
specEffect = 0;
previousDamage = 0;
usingClaws = false;
clawType = 0;
}
getItems().updateInventory();
if (smeltTimer > 0 && smeltType > 0) {
smeltTimer--;
} else if (smeltTimer == 0 && smeltType > 0) {
getSmithing().smelt(smeltType);
}
if (System.currentTimeMillis() - lastPoison > 20000 && poisonDamage > 0) {
int damage = poisonDamage/2;
if (damage > 0) {
if (!getHitUpdateRequired()) {
setHitUpdateRequired(true);
setHitDiff(damage);
updateRequired = true;
poisonMask = 1;
} else if (!getHitUpdateRequired2()) {
setHitUpdateRequired2(true);
setHitDiff2(damage);
updateRequired = true;
poisonMask = 2;
}
lastPoison = System.currentTimeMillis();
poisonDamage--;
dealDamage(damage);
} else {
poisonDamage = -1;
sendMessage("You are no longer poisoned.");
}
}
if(System.currentTimeMillis() - duelDelay > 800 && duelCount > 0) {
if(duelCount != 1) {
forcedChat(""+(--duelCount));
duelDelay = System.currentTimeMillis();
} else {
damageTaken = new int[Config.MAX_PLAYERS];
forcedChat("FIGHT!");
duelCount = 0;
}
}
if(System.currentTimeMillis() - specDelay > Config.INCREASE_SPECIAL_AMOUNT) {
specDelay = System.currentTimeMillis();
if(specAmount < 10) {
specAmount += .5;
if (specAmount > 10)
specAmount = 10;
getItems().addSpecialBar(playerEquipment[playerWeapon]);
}
}
if(clickObjectType > 0 && goodDistance(objectX + objectXOffset, objectY + objectYOffset, getX(), getY(), objectDistance)) {
if(clickObjectType == 1) {
getActions().firstClickObject(objectId, objectX, objectY);
}
if(clickObjectType == 2) {
getActions().secondClickObject(objectId, objectX, objectY);
}
if(clickObjectType == 3) {
getActions().thirdClickObject(objectId, objectX, objectY);
}
}
if((clickNpcType > 0) && Server.npcHandler.npcs[npcClickIndex] != null) {
if(goodDistance(getX(), getY(), Server.npcHandler.npcs[npcClickIndex].getX(), Server.npcHandler.npcs[npcClickIndex].getY(), 1)) {
if(clickNpcType == 1) {
turnPlayerTo(Server.npcHandler.npcs[npcClickIndex].getX(), Server.npcHandler.npcs[npcClickIndex].getY());
Server.npcHandler.npcs[npcClickIndex].facePlayer(playerId);
getActions().firstClickNpc(npcType);
}
if(clickNpcType == 2) {
turnPlayerTo(Server.npcHandler.npcs[npcClickIndex].getX(), Server.npcHandler.npcs[npcClickIndex].getY());
Server.npcHandler.npcs[npcClickIndex].facePlayer(playerId);
getActions().secondClickNpc(npcType);
}
if(clickNpcType == 3) {
turnPlayerTo(Server.npcHandler.npcs[npcClickIndex].getX(), Server.npcHandler.npcs[npcClickIndex].getY());
Server.npcHandler.npcs[npcClickIndex].facePlayer(playerId);
getActions().thirdClickNpc(npcType);
}
}
}
if(walkingToItem) {
if(getX() == pItemX && getY() == pItemY || goodDistance(getX(), getY(), pItemX, pItemY,1)) {
walkingToItem = false;
Server.itemHandler.removeGroundItem(this, pItemId, pItemX, pItemY, true);
}
}
if(followId > 0) {
getPA().followPlayer();
} else if (followId2 > 0) {
getPA().followNpc();
}
getCombat().handlePrayerDrain();
if(System.currentTimeMillis() - singleCombatDelay > 3300) {
underAttackBy = 0;
}
if (System.currentTimeMillis() - singleCombatDelay2 > 3300) {
underAttackBy2 = 0;
}
if(System.currentTimeMillis() - restoreStatsDelay > 60000) {
restoreStatsDelay = System.currentTimeMillis();
for (int level = 0; level < playerLevel.length; level++) {
if (playerLevel[level] < getLevelForXP(playerXP[level])) {
if(level != 5) { // prayer doesn't restore
playerLevel[level] += 1;
getPA().setSkillLevel(level, playerLevel[level], playerXP[level]);
getPA().refreshSkill(level);
}
} else if (playerLevel[level] > getLevelForXP(playerXP[level])) {
playerLevel[level] -= 1;
getPA().setSkillLevel(level, playerLevel[level], playerXP[level]);
getPA().refreshSkill(level);
}
}
}
if (arenas() && duelStatus == 0) {
getPA().movePlayer(3362,3263, 0);
poisonDamage = -1;
}
if(System.currentTimeMillis() - teleGrabDelay > 1550 && usingMagic) {
usingMagic = false;
if(Server.itemHandler.itemExists(this, teleGrabItem, teleGrabX, teleGrabY)) {
Server.itemHandler.removeGroundItem(this, teleGrabItem, teleGrabX, teleGrabY, true);
}
}
if(inWild()) {
int modY = absY > 6400 ? absY - 6400 : absY;
wildLevel = (((modY - 3520) / 8) + 1);
getPA().walkableInterface(197);
if(Config.SINGLE_AND_MULTI_ZONES) {
if(inMulti()) {
getPA().sendFrame126("@yel@Level: "+wildLevel, 199);
} else {
getPA().sendFrame126("@yel@Level: "+wildLevel, 199);
}
} else {
getPA().multiWay(-1);
getPA().sendFrame126("@yel@Level: "+wildLevel, 199);
}
getPA().showOption(3, 0, "Attack", 1);
getPA().showOption(3, 0, "Attack", 1);
} else if(inPcBoat()) {
getPA().walkableInterface(21005);
} else if(inPcGame()) {
getPA().walkableInterface(21100);
} else if (inFightCaves()) {
getPA().walkableInterface(21400);
getPA().sendFrame126("Wave: "+waveId+"", 21450);
} else if (inDuelArena()) {
getPA().walkableInterface(201);
if(duelStatus == 5) {
getPA().showOption(3, 0, "Attack", 1);
} else {
getPA().showOption(3, 0, "Challenge", 1);
}
} else if(inBarrows()){
getPA().sendFrame99(2);
getPA().sendFrame126("Kill Count: "+barrowsKillCount, 4536);
getPA().walkableInterface(4535);
} else if (inCwGame || inPits) {
getPA().showOption(3, 0, "Attack", 1);
} else if (getPA().inPitsWait()) {
getPA().showOption(3, 0, "Null", 1);
} else if(inGWD()){
getPA().GWKC();
}else if (!inFightCaves()) {
getPA().sendFrame99(0);
getPA().walkableInterface(-1);
getPA().showOption(3, 0, "Null", 1);
}
if(!hasMultiSign && inMulti()) {
hasMultiSign = true;
getPA().multiWay(1);
}
if(hasMultiSign && !inMulti()) {
hasMultiSign = false;
getPA().multiWay(-1);
}
if(skullTimer > 0) {
skullTimer--;
if(skullTimer == 1) {
isSkulled = false;
attackedPlayers.clear();
headIconPk = -1;
skullTimer = -1;
getPA().requestUpdates();
}
}
if(isDead && respawnTimer == -6) {
getPA().applyDead();
}
if(respawnTimer == 7) {
respawnTimer = -6;
getPA().giveLife();
} else if(respawnTimer == 12) {
respawnTimer--;
startAnimation(0x900);
poisonDamage = -1;
}
if(respawnTimer > -6) {
respawnTimer--;
}
if(freezeTimer > -6) {
freezeTimer--;
if (frozenBy > 0) {
if (Server.playerHandler.players[frozenBy] == null) {
freezeTimer = -1;
frozenBy = -1;
} else if (!goodDistance(absX, absY, Server.playerHandler.players[frozenBy].absX, Server.playerHandler.players[frozenBy].absY, 20)) {
freezeTimer = -1;
frozenBy = -1;
}
}
}
if(hitDelay > 0) {
hitDelay--;
}
if(teleTimer > 0) {
teleTimer--;
if (!isDead) {
if(teleTimer == 1 && newLocation > 0) {
teleTimer = 0;
getPA().changeLocation();
}
if(teleTimer == 5) {
teleTimer--;
getPA().processTeleport();
}
if(teleTimer == 9 && teleGfx > 0) {
teleTimer--;
gfx100(teleGfx);
}
} else {
teleTimer = 0;
}
}
if(hitDelay == 1) {
if(oldNpcIndex > 0) {
getCombat().delayedHit(oldNpcIndex);
}
if(oldPlayerIndex > 0) {
getCombat().playerDelayedHit(oldPlayerIndex);
}
}
if(attackTimer > 0) {
attackTimer--;
}
if(attackTimer == 1){
if(npcIndex > 0 && clickNpcType == 0) {
getCombat().attackNpc(npcIndex);
}
if(playerIndex > 0) {
getCombat().attackPlayer(playerIndex);
}
} else if (attackTimer <= 0 && (npcIndex > 0 || playerIndex > 0)) {
if (npcIndex > 0) {
attackTimer = 0;
getCombat().attackNpc(npcIndex);
} else if (playerIndex > 0) {
attackTimer = 0;
getCombat().attackPlayer(playerIndex);
}
}
timeOutCounter++;
if(inTrade && tradeResetNeeded){
Client o = (Client) Server.playerHandler.players[tradeWith];
if(o != null){
if(o.tradeResetNeeded){
getTradeAndDuel().resetTrade();
o.getTradeAndDuel().resetTrade();
}
}
}
playerhandler process
Code:
public void process() {
//synchronized (PlayerHandler.players) {
long start = System.currentTimeMillis();
updatePlayerNames();
if(kickAllPlayers) {
for(int i = 1; i < Config.MAX_PLAYERS; i++) {
if(players[i] != null) {
players[i].disconnected = true;
}
}
}
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(players[i] == null || !players[i].isActive) continue;
try {
if(players[i].disconnected && (System.currentTimeMillis() - players[i].logoutDelay > 10000 || players[i].properLogout || kickAllPlayers)) {
if(players[i].inTrade) {
Client o = (Client) Server.playerHandler.players[players[i].tradeWith];
if(o != null) {
o.getTradeAndDuel().declineTrade();
}
}
if(players[i].duelStatus == 5) {
Client o = (Client) Server.playerHandler.players[players[i].duelingWith];
if(o != null) {
o.getTradeAndDuel().duelVictory();
}
} else if (players[i].duelStatus <= 4 && players[i].duelStatus >= 1) {
Client o = (Client) Server.playerHandler.players[players[i].duelingWith];
if(o != null) {
o.getTradeAndDuel().declineDuel();
}
}
Client o = (Client) Server.playerHandler.players[i];
if(PlayerSave.saveGame(o)) {
System.out.println("Game saved for player "+players[i].playerName);
} else {
System.out.println("Could not save for "+players[i].playerName);
}
removePlayer(players[i]);
players[i] = null;
continue;
}
players[i].preProcessing();
while(players[i].processQueuedPackets());
players[i].processPackets = 0;
players[i].process();
players[i].postProcessing();
players[i].getNextPlayerMovement();
} catch(Exception e) {
e.printStackTrace();
}
}
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(players[i] == null || !players[i].isActive) continue;
try {
if(players[i].disconnected && (System.currentTimeMillis() - players[i].logoutDelay > 10000 || players[i].properLogout || kickAllPlayers)) {
if(players[i].inTrade) {
Client o = (Client) Server.playerHandler.players[players[i].tradeWith];
if(o != null) {
o.getTradeAndDuel().declineTrade();
}
}
if(players[i].duelStatus == 5) {
Client o1 = (Client) Server.playerHandler.players[players[i].duelingWith];
if(o1 != null) {
o1.getTradeAndDuel().duelVictory();
}
} else if (players[i].duelStatus <= 4 && players[i].duelStatus >= 1) {
Client o1 = (Client) Server.playerHandler.players[players[i].duelingWith];
if(o1 != null) {
o1.getTradeAndDuel().declineDuel();
}
}
Client o1 = (Client) Server.playerHandler.players[i];
if(PlayerSave.saveGame(o1)){
System.out.println("Game saved for player "+players[i].playerName);
} else {
System.out.println("Could not save for "+players[i].playerName);
}
removePlayer(players[i]);
players[i] = null;
} else {
Client o = (Client) Server.playerHandler.players[i];
//if(o.g) {
if(!players[i].initialized) {
players[i].initialize();
players[i].initialized = true;
}
else {
players[i].update();
}
//}
}
} catch(Exception e) {
e.printStackTrace();
}
}
if(updateRunning && !updateAnnounced) {
updateAnnounced = true;
Server.UpdateServer = true;
}
if(updateRunning && (System.currentTimeMillis() - updateStartTime > (updateSeconds*1000))) {
kickAllPlayers = true;
}
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(players[i] == null || !players[i].isActive) continue;
try {
players[i].clearUpdateFlags();
} catch(Exception e) {
e.printStackTrace();
}
}
Server.TIMES[2] = start - System.currentTimeMillis();
//}
}