public boolean process()throws NullPointerException{
if (fishTimer != 0){
fishTimer--;
}
if (tradeTimer != 0){
tradeTimer--;
}
if (disconnectedDelay == 1){
disconnected = true;
}
if(inGame){
PcPanel2();
}
if(inPcBoat()){
PcPanel1();
}
if(isInWilderness == false) {
outStream.createFrameVarSize(104);
outStream.writeByteC(3);
outStream.writeByteA(0);
outStream.writeString("null");
outStream.endFrameVarSize();
}
if(isInWilderness(absX, absY, 1)) {
outStream.createFrameVarSize(104);
outStream.writeByteC(3);
outStream.writeByteA(0);
outStream.writeString("Attack");
outStream.endFrameVarSize();
}
if(clawspec !=0)dclawhit();
if (System.currentTimeMillis() - lastSave > 120000 && !inTrade){
savegame(false);
// sM("Your profile has been automatically saved");
lastSave = System.currentTimeMillis();
}
if (System.currentTimeMillis() - lastBookSwitch > 30000 && switchingBook) {
setSidebarInterface(6, 18787);
lastBookSwitch = System.currentTimeMillis();
switchingBook = false;
}
if (System.currentTimeMillis() - offTimer > 6000){
hitID = 0;
}
if(System.currentTimeMillis() - lastSkull >= 1200000 && isSkulled){
turnOffHead();
updateRequired = true;
appearanceUpdateRequired = true;
isSkulled = false;
}
if (disconnectedDelay > 0) {
disconnectedDelay--;
}
if (spellHitTimer > 0) {
spellHitTimer -= 1;
}
if(poisoned && System.currentTimeMillis() - poisonDelay > 15000){
poisonDmg = true;
applyPoisonToMe();
poisonDmg = false;
poisonDelay = System.currentTimeMillis();
}
if(System.currentTimeMillis() - lastSpecial > 50000 && specialAmount < 100){
specialAmount += 25;
lastSpecial = System.currentTimeMillis();
specAttack();
}
if (hasMultiSign && !multiCombat())
{
frame61(-1);
hasMultiSign = false;
}
if (isInWilderness(absX, absY, 1))
{
if (!hasWildySign)
{
hasWildySign = true;
outStream.createFrame(208);
outStream.writeWordBigEndian_dup(197);
sendQuest("", 199);
}
int level = ((absY - 3520) / 8) + 1;
if(isinsafewild()){level = 20;}
if (level != wildyLevel)
{
if(isinsafewild()){
sendQuest("@whi@SAFE AREA", 199);}
else{
wildyLevel = level;
sendQuest("Level: " + wildyLevel, 199);}
}
}
if (System.currentTimeMillis() - statIncrease > 120000) {
for (int i1 = 0; i1 < playerLevel.length; i1++) {
if (playerLevel[i1] < getLevelForXP(playerXP[i1])) {
playerLevel[i1] += 1;
setSkillLevel(i1, playerLevel[i1], playerXP[i1]);
NewHP = playerLevel[3];
refreshSkills();
} else if (playerLevel[i1] > getLevelForXP(playerXP[i1])) {
playerLevel[i1] -= 1;
setSkillLevel(i1, playerLevel[i1], playerXP[i1]);
NewHP = playerLevel[3];
refreshSkills();
}
}
statIncrease = System.currentTimeMillis();
}
if(PlayerHandler.getPlayerID(playerName) != playerId){
disconnected = true;
}
if (inCombat) {
long current = System.currentTimeMillis();
if(current - lastCombat >= 10000) {
inCombat = false;
}
}
if (currentHealth < 1) {
deathStage = 1;
}
if(hitDiff > 0){
sendQuest("" + currentHealth, 4016);
}
if (NpcDialogue > 0 && NpcDialogueSend == false) {
UpdateNPCChat();
}
if(inGame && PlayerHandler.pcGameTimer == 1){
inGame = false;
resetpc();
toX = 2657;
toY = 2639;
playerLevel[0] = getLevelForXP(playerXP[0]);
playerLevel[1] = getLevelForXP(playerXP[1]);
playerLevel[2] = getLevelForXP(playerXP[2]);
playerLevel[4] = getLevelForXP(playerXP[4]);
playerLevel[5] = getLevelForXP(playerXP[5]);
playerLevel[6] = getLevelForXP(playerXP[6]);
sM("You failed to defeat pest control, better luck next time!");
ResetAttackNPC();
refreshSkills();
}
if(inPcBoat() && PlayerHandler.pcWaitTimer == 1 && !inGame){
inGame = true;
resetpc();
toX = 2658 + misc.random(1);
toY = 2611 + misc.random(3);
server.npcHandler.spawnANPC(3777, 2628, 2591,0);
server.npcHandler.spawnANPC(3778, 2680, 2588,0);
server.npcHandler.spawnANPC(3779, 2669, 2570,0);
server.npcHandler.spawnANPC(3780, 2645, 2569,0);
PlayerHandler.portal1 = 0;
PlayerHandler.portal2 = 0;
PlayerHandler.portal3 = 0;
PlayerHandler.portal4 = 0;
ResetAttackNPC();
}
if (inPcIsland() || inPcGame() || inPcBoat() || inPcWater()) {
followID = 0;
}
if (isinsafewild()) {
followID = 0;
}
if (inAgility()) {
followID = 0;
}
if(PlayerHandler.portal1 == 1 && PlayerHandler.portal2 == 1 && PlayerHandler.portal3 == 1 && PlayerHandler.portal4 == 1 && inGame){
inGame = false;
resetpc();
pcPoints += 2;
toX = 2657;
toY = 2639;
playerLevel[0] = getLevelForXP(playerXP[0]);
playerLevel[1] = getLevelForXP(playerXP[1]);
playerLevel[2] = getLevelForXP(playerXP[2]);
playerLevel[4] = getLevelForXP(playerXP[4]);
playerLevel[5] = getLevelForXP(playerXP[5]);
playerLevel[6] = getLevelForXP(playerXP[6]);
sM("You have defeated pest control! You now have "+pcPoints+" points!");
ResetAttackNPC();
refreshSkills();
PlayerHandler.pcWaitTimer = 50;
}
if (followID > 0) {
followDirection();
}
if (followID2 > 0) {
followDirection2();
}
if (tStage == 1 && tTime == 0) {
setAnimation(1979);
lowGFX(392, 0);
updateRequired = true;
appearanceUpdateRequired = true;
tTime = System.currentTimeMillis();
tStage = 2;
}
if (tStage == 2 && System.currentTimeMillis()-tTime >= 10) {
toX = tX;
toY = tY;
heightLevel = tH;
updateRequired = true;
appearanceUpdateRequired = true;
tStage = 0;
tTime = 0;
resetAnimation();
resetfollowers();
closeInterface();
}
if (tStage == 3 && tTime2 == 0) {
setAnimation(714);
updateRequired = true;
appearanceUpdateRequired = true;
tTime2 = System.currentTimeMillis();
tStage = 4;
}
if (tStage == 4 && System.currentTimeMillis()-tTime2 >= 10) {
specGFX(308);
tStage = 5;
}
if (tStage == 5 && System.currentTimeMillis()-tTime2 >= 10) {
setAnimation(715);
toX = tX;
toY = tY;
heightLevel = tH;
updateRequired = true;
appearanceUpdateRequired = true;
tStage = 0;
tTime = 0;
resetAnimation();
resetfollowers();
closeInterface();
}
/** Full magic spell system for process() starts here * */
if (spellHitTimer == 0) {
if (castSpell) {
castSpell = false;
if (isSpellNPC && (spellNpcIndex != -1)) {
appendHitToNpc(spellNpcIndex, spellHit, isStillSpell);
} else if (!isSpellNPC && (spellPlayerIndex != -1)) {
appendHitToPlayer(spellPlayerIndex, spellHit, isStillSpell);
}
}
spellHitTimer = -1; // FIXED: Why call this over and over?
// -bakatool
}
/** Full magic spell system for process() ends here * */
if (WaveDelay > 0) {
WaveDelay -= 1;
}
if(System.currentTimeMillis() - lastArrow > 500 && arrow){
int arrowgfx = getarrowgfxnow();
if(AttackingOn > 0){
rangeGFX(70, arrowgfx);
}
if(attacknpc > 0){
rangeGFXNPC(70, arrowgfx);
}
arrow = false;
arrow2 = true;
}
if(System.currentTimeMillis() - lastArrow > 1500 && arrow2){
lastArrow = System.currentTimeMillis();
arrow2 = false;
if(AttackingOn > 0 && isInWilderness(absX, absY, 1) == true && getClient(AttackingOn).isInWilderness(getClient(At tackingOn).absX, getClient(AttackingOn).absY, 1) == true){
client AttackingOn2 = (client) server.playerHandler.players[AttackingOn];
if(AttackingOn2 != null){
hitDiff = misc.random(maxRangeHit());
PlayerHandler.players[AttackingOn].hitDiff = hitDiff;
PlayerHandler.players[AttackingOn].updateRequired = true;
PlayerHandler.players[AttackingOn].appearanceUpdateRequired = true;
PlayerHandler.players[AttackingOn].hitUpdateRequired = true;
PlayerHandler.players[AttackingOn].dealDamage(hitDiff);
PlayerHandler.players[AttackingOn].offTimer = System.currentTimeMillis();
PlayerHandler.players[AttackingOn].hitID = playerId;
PlayerHandler.players[AttackingOn].KilledBy[playerId] += hitDiff;
}
}
if(attacknpc > 0){
server.npcHandler.npcs[attacknpc].hitDiff = npcRangeDamage();
server.npcHandler.npcs[attacknpc].updateRequired = true;
server.npcHandler.npcs[attacknpc].hitUpdateRequired = true;
server.npcHandler.npcs[attacknpc].hit = true;
}
}
if(apickupid > 0)
scanPickup();
if(WaveDelay <= 0 && TzWave != -1 && IsInFightCave())
{
heightLevel = getHeightForTzhaar();
WaveDelay = 0x3b9ac9ff;
SpawnNewWave();
}
if ((IsAttackingNPC) && DDS2Damg == true && System.currentTimeMillis() - lastDds > ddsInterval) {
SpecDamgNPC(playerMaxHit + 8);
DDS2Damg = false;
}
if (IsAttacking == true && DDS2Damg == true && System.currentTimeMillis() - lastDds > ddsInterval) {
if (AttackingOn > 0) {
getHitDouble(8);
DDS2Damg = false;
}
}
if (IsAttacking == true && DDS2Damg2 == true && System.currentTimeMillis() - lastDds > ddsInterval) {
if (AttackingOn > 0) {
if(playerEquipment[playerWeapon] == 4827){
getHit2();
DDS2Damg2 = false;
}
if(playerEquipment[playerWeapon] == 861){
getHit2();
DDS2Damg2 = false;
}
}
}
if (IsAttackingNPC == true && DDS2Damg2 == true && System.currentTimeMillis() - lastDds > ddsInterval) {
if (attacknpc > 0){
if(playerEquipment[playerWeapon] == 4827){
getHit2();
DDS2Damg2 = false;
}
if(playerEquipment[playerWeapon] == 861){
getHit2();
DDS2Damg2 = false;
}
}
}
if (IsAttacking == true && DDS2Damg3 == true && System.currentTimeMillis() - lastDds > ddsInterval) {
getHit2();
DDS2Damg3 = false;
}
if(playerLevel[5] < 0){
playerLevel[5] = 0;
sendQuest("" + playerLevel[5] + "", 4012);
sendFrame126("Prayer: "+playerLevel[5]+"/"+getLevelForXP(playerXP[5])+"", 687);
}
if(checkPrayOn() && playerLevel[5] < 1){
playerLevel[5] = 0;
prayOff();
}
if(checkPrayOn() && System.currentTimeMillis() - lastPray > prayInterval){
prayInterval = checkPrayStat();
lastPray = System.currentTimeMillis();
prayerDrain();
sendQuest("" + playerLevel[5] + "", 4012);
sendFrame126("Prayer: "+playerLevel[5]+"/"+getLevelForXP(playerXP[5])+"", 687);
}
if (originalS > 0) {
wear(originalS, playerShield);
}
if (inTrade && tradeResetNeeded) {
client o = getClient(trade_reqId);
if (o.tradeResetNeeded) {
resetTrade();
o.resetTrade();
}
}
// Shop
if (UpdateShop == true) {
resetItems(3823);
resetShop(MyShopID);
}
// check banking
if (WanneBank > 0) {
if (GoodDistance(skillX, skillY, absX, absY, WanneBank) == true) {
openUpBank();
WanneBank = 0;
}
}
// check stairs
if (stairs > 0) {
if (GoodDistance(skillX, skillY, absX, absY, stairDistance) == true) {
stairs(stairs, absX, absY);
}
}
// check shopping
if (WanneShop > 0) {
if (GoodDistance(skillX, skillY, absX, absY, 1) == true) {
openUpShop(WanneShop);
WanneShop = 0;
}
}
// woodcutting check
if (woodcutting[0] > 0) {
if (GoodDistance(skillX, skillY, absX, absY, woodcutting[5]) == true) {
closeInterface();
woodcutting();
}
}
// Attacking in wilderness
//long thisTime = System.currentTimeMillis();
if ((IsAttacking == true) && (deathStage == 0)
&& (System.currentTimeMillis() - lastAction > actionInterval)) {
if (PlayerHandler.players[AttackingOn] != null) {
if (PlayerHandler.players[AttackingOn].currentHealth > 0) {
Attack();
} else {
//ResetAttack();
// if(duelStatus == 3)
// DuelVictory(p.absX, p.absY);
}
} else {
ResetAttack();
}
}
// Attacking an NPC
if ((IsAttackingNPC == true) && (deathStage == 0) && System.currentTimeMillis() - lastAction > actionInterval) {
if (server.npcHandler.npcs[attacknpc] != null) {
if ((server.npcHandler.npcs[attacknpc].IsDead == false)
&& (server.npcHandler.npcs[attacknpc].MaxHP > 0)) {
AttackNPC();
} else {
//ResetAttackNPC();
}
} else {
ResetAttackNPC();
}
}
// If killed apply dead
if (deathStage == 1) {
if (attacknpc > 0) { // was killed by a npc -bakatool
server.npcHandler.ResetAttackPlayer(attacknpc);
}
ResetAttack();
ResetAttackNPC();
deathStage = 2;
poisoned = false;
poisonDmg = false;
fighting = false;
hits = 0;
startAnimation(0x900);
updateRequired = true;
appearanceUpdateRequired = true;
deathTimer = System.currentTimeMillis();
currentHealth = playerLevel[playerHitpoints];
playerLevel[0] = getLevelForXP(playerXP[0]);
playerLevel[1] = getLevelForXP(playerXP[1]);
playerLevel[2] = getLevelForXP(playerXP[2]);
playerLevel[4] = getLevelForXP(playerXP[4]);
playerLevel[5] = getLevelForXP(playerXP[5]);
playerLevel[6] = getLevelForXP(playerXP[6]);
sendFrame126("Prayer: "+playerLevel[5]+"/"+getLevelForXP(playerXP[5])+"", 687);
resetfollowers();
refreshSkills();
killMyNPCs();
resetKnight();
skulledBy = "";
}
if (deathStage == 2 && !IsInFightCave() && System.currentTimeMillis() - deathTimer >= 100) {
if (isInWilderness(absX, absY, 1) == true){
client killerz = (client) server.playerHandler.players[KillerId];
killerz.pvpdrop(playerName, playerId);
killerz.ResetAttack();
if(isinsafewild() == false){
killmessage();
killerz.rating += 1;
if(killerz != null)
if(playerRights < 1)
if(tradeTimer == 0)
youdied();}
if(isinsafewild()){
if(killerz != null) {killerz.addItem(995,10000);
killerz.sM("You have been rewarded 10k for downing that bitch "+playerName+"!");}}
}
}
if (deathStage == 2 && System.currentTimeMillis() - deathTimer >= 100 && IsInFightCave()) {
toX = 2439;
toY = 5169;
AtkPray = 0;
StrPrayer = 0;
DefPray = 0;
RangePray = 0;
MagePray = 0;
PrayHeal = false;
ProtItem = false;
ProtMage = false;
ProtRange = false;
ProtMelee = false;
Redemption = false;
Retribution = false;
Smite = false;
Chivalry = false;
Piety = false;
isSkulled = false;
lastSkull = 0;
headIcon = 0;
turnpray();
heightLevel = 0;
currentHealth = playerLevel[playerHitpoints];
deathStage = 0;
resetAnimation();
frame1();
prayOn = false;
AntiTeleDelay = 0;
EntangleDelay = 0;
specialAmount = 100;
sM("Oh dear you have died!");
resetOtherAtk();
}
if (deathStage == 2 && System.currentTimeMillis() - deathTimer >= 100 && !IsInFightCave()) {
if(isinsafewild()){toX = 3303;
toY = 3123;}
else{
toX = 3097;
toY = 3471;}
AtkPray = 0;
StrPrayer = 0;
DefPray = 0;
RangePray = 0;
MagePray = 0;
PrayHeal = false;
ProtItem = false;
ProtMage = false;
ProtRange = false;
ProtMelee = false;
Redemption = false;
Retribution = false;
Smite = false;
Chivalry = false;
Piety = false;
isSkulled = false;
lastSkull = 0;
headIcon = 0;
turnpray();
heightLevel = 0;
currentHealth = playerLevel[playerHitpoints];
deathStage = 0;
resetAnimation();
frame1();
prayOn = false;
AntiTeleDelay = 0;
EntangleDelay = 0;
specialAmount = 100;
sM("Oh dear you have died!");
resetOtherAtk();
if (destruct)
{
absX = 3210;
absY = 3432;
}
savegame(false);
}
// mining check
if (mining[0] > 0) {
if (GoodDistance(skillX, skillY, absX, absY, 1) == true) {
mining();
}
}
if (shafting
&& (System.currentTimeMillis() - lastAction >= 1500)) {
lastAction = System.currentTimeMillis();
shaft();
} else if (fletching
&& (System.currentTimeMillis() - lastAction >= 1900)) {
lastAction = System.currentTimeMillis();
fletchBow();
} else if (spinning
&& (System.currentTimeMillis() - lastAction >= 1900)) {
lastAction = System.currentTimeMillis();
spin();
} else if (cookingOn
&& (System.currentTimeMillis() - lastAction >= 1900)) {
lastAction = System.currentTimeMillis();
cookFish();
} else if (crafting
&& (System.currentTimeMillis() - lastAction >= 1500)) {
lastAction = System.currentTimeMillis();
craft();
} else if (fishing && (System.currentTimeMillis() - lastAction >= 3000)) {
lastAction = System.currentTimeMillis();
fish(fishId);
} else if (essMine && (System.currentTimeMillis() - lastAction >= 3000) && freeSlots() != 0) {
lastAction = System.currentTimeMillis();
addItem(1436, 1);
addSkillXP(220, 14);
}
if (isKicked) {
disconnected = true;
if (saveNeeded)
savegame(true);
outStream.createFrame(109);
}
return false;
}
public boolean packetProcess() throws NullPointerException
{
if (disconnected || destruct) {
return false;
}
try {
/*if (timeOutCounter++ > 20) {
misc.println("Disconnected "+playerName+", Data transfer timeout.");
disconnected = true;
return false;
}*/
if(in == null) return false;
int avail = in.available();
if(avail == 0) return false;
if(packetType == -1) {
packetType = in.read() & 0xff;
if(inStreamDecryption != null)
packetType = packetType - inStreamDecryption.getNextKey() & 0xff;
packetSize = packetSizes[packetType];
avail--;
}
if(packetSize == -1) {
if(avail > 0) {
packetSize = in.read() & 0xff;
avail--;
}
else return false;
}
if(avail < packetSize) return false;
fillInStream(packetSize);
timeOutCounter = 0;
parseIncomingPackets();
packetType = -1;
} catch(java.lang.Exception __ex) {
misc.println("Exception encountered while parsing incoming packets from "+playerName+".");
__ex.printStackTrace();
disconnected = true;
}
return true;
}