Code:
public void process() {
if(followId > 0) {
getPA().followPlayer();
} else if (followId2 > 0) {
getPA().followNpc();
}
if (System.currentTimeMillis() - lastPoison > 20000 && poisonDamage > 0) {
int damage = poisonDamage/2;
if (damage > 0) {
sendMessage("The poison damages you");
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() - specDelay > Config.INCREASE_SPECIAL_AMOUNT) {
specDelay = System.currentTimeMillis();
if(specAmount < 10) {
specAmount += .5;
if (specAmount > 10)
specAmount = 10;
getItems().addSpecialBar(playerEquipment[playerWeapon]);
}
}
getCombat().handlePrayerDrain();
if(System.currentTimeMillis() - singleCombatDelay > 9900) {
underAttackBy = 0;
}
if (System.currentTimeMillis() - singleCombatDelay2 > 9900) {
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 (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);
} 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 (!inCwWait) {
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(hitDelay > 0) {
hitDelay--;
}
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);
}
}
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 (PlayerHandler.players[frozenBy] == null) {
freezeTimer = -1;
frozenBy = -1;
} else if (!goodDistance(absX, absY, PlayerHandler.players[frozenBy].absX, PlayerHandler.players[frozenBy].absY, 20)) {
freezeTimer = -1;
frozenBy = -1;
}
}
}
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;
}
}
}
Inside the TradeAndDuel Class find the following and underneath it add the section of code
Code:
CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() {
public void execute(CycleEventContainer container) {
if(c.inTrade && c.tradeResetNeeded){
Client o = (Client) PlayerHandler.players[c.tradeWith];
if(o != null){
if(o.tradeResetNeeded){
c.getTradeAndDuel().resetTrade();
o.getTradeAndDuel().resetTrade();
container.stop();
} else {
container.stop();
}
} else {
container.stop();
}
} else {
container.stop();
}
}
@Override
public void stop() {
c.tradeResetNeeded = false;
}
}, 1);