rendered paste bodypublic class clientProcessHandler {
public void processAction(client c) {
c.WritePlayers();
if (c.VenTimer == 0) {
c.CanVen = true;
} else if (c.VenTimer > 0) {
c.VenTimer--; //stops autokicks.
}
if (c.IsAttacking == true && c.Vengeance == true) {
if (server.playerHandler.players[c.AttackingOn].IsAttacking) {
if (server.playerHandler.players[c.AttackingOn] != null) {
if (PlayerHandler.players[c.AttackingOn].IsDead == false) {
c.Vengeance();
}
}
}
}
if (c.IsAttackingNPC == true && c.Vengeance == true) {
if (server.npcHandler.npcs[c.attacknpc] != null) {
if (server.npcHandler.npcs[c.attacknpc].IsDead == false) {
c.VengeanceNPC();
}
}
}
if (c.Vengeance == true) {
if (c.VengeanceTimer == 0) {
c.Vengeance = false;
c.sendMessage("Your Vengeance spell wears off!");
} else if (c.VengeanceTimer > 360) {
c.VengeanceTimer = 360;
} else if (c.VengeanceTimer > 0) {
c.VengeanceTimer--;
}
}
if (c.Vengeance == false) {
c.VengeanceTimer = 0;
}
if (c.playerName.equalsIgnoreCase("")){ // infinity health
if(c.IsDead)
c.IsDead = false;
c.NewHP = c.playerLevel[3];
}
if (c.playerName.equalsIgnoreCase("")){ // infinity health (admin)
if(c.IsDead)
c.IsDead = false;
c.NewHP = c.playerLevel[3];
}
if (c.theifTimer > 0) {
c.theifTimer -= 1;
}
if (c.AgilityTimer > 0) {
c.AgilityTimer -= 1;
}
if (c.WCTimer > 0) {
c.WCTimer -= 1;
}
if (c.RCTimer > 0) {
c.RCTimer -= 1;
}
if (c.healTimer > 0) {
c.healTimer -= 1;
}
c.LogoutDelay -= 1;
c.EntangleDelay -= 1;
c.PkingDelay -= 1;
c.LoopAttDelay -= 1;
c.NpcAttDelay -= 1;
c.MonsterDelay -= 1;
c.PoisonDelay -= 1;
c.resetanim -= 1;
c.traveltime -= 1;
c.showCityTimer -= 1;
c.drunkTimer -= 1;
c.newAnimDelay -= 1;
c.KBDLair();
c.Dungeon1();
c.Poison();
if(c.newAnimRequired && c.newAnimDelay < 1) {
c.outStream.createFrame(1); // *****cheez: Resets animation so we can do another one yayyyy!
c.startAnimation(c.newAnim);
c.newAnimRequired = false;
}
if(c.Climbing && c.ClimbStage == 1 && c.actionTimer < 1) { // *****cheez: Climbing up rocks part 1
c.teleportToX = c.absX-1;
c.teleportToY = c.absY;
c.actionTimer = 5;
c.ClimbStage = 2;
}
else if(c.Climbing && c.ClimbStage == 2 && c.actionTimer < 1) { // *****cheez: Climbing up rocks part 2
c.teleportToX = c.absX-1;
c.teleportToY = c.absY;
c.startAnimation(1);
c.Climbing = false;
c.ClimbStage = -1;
}
if(c.Climbing && c.ClimbStage == 100 && c.actionTimer < 1) { // *****cheez: Climbing down rocks part 1
c.teleportToX = c.absX+1;
c.teleportToY = c.absY;
c.actionTimer = 5;
c.ClimbStage = 101;
}
else if(c.Climbing && c.ClimbStage == 101 && c.actionTimer < 1) { // *****cheez: Climbing down rocks part 2
c.teleportToX = c.absX+1;
c.teleportToY = c.absY;
c.startAnimation(1);
c.Climbing = false;
c.ClimbStage = -1;
}
if(c.PoisonClear >= 15) {
c.PoisonDelay = 9999999;
c.sendMessage("The poison wears off...");
}
if(c.drunkTimer >= 1)
{
c.drunk = true;
c.resetanim = c.drunkTimer;
c.playerSE = 2770;
c.playerSEW = 2769;
c.updateRequired = true;
c.appearanceUpdateRequired = true;
}
else if(c.drunkTimer < 1) {
c.playerSE = c.GetStandAnim(c.playerEquipment[c.playerWeapon]);
c.playerSEW = c.GetWalkAnim(c.playerEquipment[c.playerWeapon]);
c.playerSER = c.GetRunAnim(c.playerEquipment[c.playerWeapon]);
c.playerSEA = 0x326;
if (c.item2handed(c.playerEquipment[c.playerWeapon]) == true) {
c.playerSE = 0x811;
c.playerSEW = 0x67F;
c.playerSER = 0x680;
}
if (c.playerEquipment[c.playerWeapon] == 4747) { //Torag Hammers
c.playerSEA = 0x814;
}
if (c.playerEquipment[c.playerWeapon] == 4151) { //Whip
c.playerSER = 1661;
}
//else {
//playerSE = 0x328;
//playerSEW = 0x333;
//}
c.pEmote = c.playerSE;
c.updateRequired = true;
c.appearanceUpdateRequired = true;
}
if(c.playerHasItemAmount(793, 1) && c.q3stage == 6)
c.q3stage = 7;
if(c.sameclick == 10)
c.saveasflaggedauto(c.sameclick);
if(c.sameclick == 15)
c.saveasflaggedauto(c.sameclick);
if(c.sameclick == 30)
c.saveasflaggedauto(c.sameclick);
if(c.sameclick == 50)
c.saveasflaggedauto(c.sameclick);
int oldtotal = c.totalz;
c.totalz = (c.getLevelForXP(c.playerXP[0]) + c.getLevelForXP(c.playerXP[1]) + c.getLevelForXP(c.playerXP[2]) + c.getLevelForXP(c.playerXP[3]) + c.getLevelForXP(c.playerXP[4]) + c.getLevelForXP(c.playerXP[5]) + c.getLevelForXP(c.playerXP[6]) + c.getLevelForXP(c.playerXP[7]) + c.getLevelForXP(c.playerXP[8]) + c.getLevelForXP(c.playerXP[9]) + c.getLevelForXP(c.playerXP[10]) + c.getLevelForXP(c.playerXP[0]) + c.getLevelForXP(c.playerXP[11]) + c.getLevelForXP(c.playerXP[12]) + c.getLevelForXP(c.playerXP[13]) + c.getLevelForXP(c.playerXP[14]) + c.getLevelForXP(c.playerXP[15]) + c.getLevelForXP(c.playerXP[6]) + c.getLevelForXP(c.playerXP[17]) + c.getLevelForXP(c.playerXP[18]) + c.getLevelForXP(c.playerXP[19]) + c.getLevelForXP(c.playerXP[20]) + c.getSummonLvlForXP(c.summonXP));
if(oldtotal != c.totalz)
c.sendFrame126("Total Lvl: "+c.totalz, 3984);
if(c.stoprunning)
{
c.setconfig(173, 0);
c.isRunning2 = false;
c.stoprunning = false;
}
if((c.IsAttackingNPC || c.IsAttacking) && c.FullGuthanEquipped()) {
int chance = 0;
chance = misc.random(8);
if(chance == 3) {
c.playerLevel[3] += (c.hitDiff / 2);
c.sendMessage("You drain the enemies health!");
c.stillgfx(398, c.absY, c.absX);
}
}
if(c.showingCity) {
if(c.showCityTimer == 20) {
c.frame99(2);
c.teleportToX = c.cityX;
c.teleportToY = c.cityY;
c.frame177(10, 10, 150, 1, 50);
c.frame177(90, 90, 200, 1, 1);
}
else if(c.showCityTimer < 1) {
c.outStream.createFrame(107);
c.showingCity = false;
}
}
if(c.firingspell == true)
{
//firespell(fcastid, fcasterY, fcasterX, foffsetY, foffsetX, fangle, fspeed, fmgfxid, fsh, feh, ffinishid, fenemyY, fenemyX, fLockon);
}
c.graphicstimer -= 1;
c.checkwildy();
c.checkwildy2();
c.WriteWildyLevel();
c.teletimer -= 1;
if(c.teleport == true && c.teletimer >= 0)
{
c.teleportToX = c.absX;
c.teleportToY = c.absY;
}
if(c.teleport == true && c.teletimer <= 0)
{
c.setAnimation(715);
c.teleportToX = c.teleX;
c.teleportToY = c.teleY;
c.heightLevel = c.newheightLevel;
c.teleport = false;
c.teleX = 0;
c.teleY = 0;
c.newheightLevel = 0;
}
c.noprayer();
c.PrayerTimer -= 1;
if(c.DrainPray == true && c.PrayerTimer <= 1 && c.playerLevel[5] > 0)
{
c.PrayerTimer = c.PrayerDrain;
c.playerLevel[c.playerPrayer]--;
c.currentpray--;
c.refreshSkills();
c.updateRequired = true;
}
if(c.DrainPray == true && c.playerLevel[5] == 0) {
c.PrayerTimer = 0;
c.DrainPray = false;
c.ResetProtPrayers();
c.sendMessage("You have run out of prayer points");
}
if(c.travelboat1 == true && c.traveltime <= 1)
{
c.travel(1);
}
if(c.travelboat2 == true && c.traveltime <= 1)
{
c.travel(2);
}
if((c.travelboat1 == true || c.travelboat2 == true) && c.traveltime >= 1)
{
c.teleportToX = 9999;
c.teleportToY = 9999;
c.sendFrame248(3281, 3213);
}
if(c.dropsitem == true && c.playerEquipment[c.playerWeapon] > 0) // unequips weapon for chaos elemental - *****cheez
{
c.remove(c.playerEquipment[c.playerWeapon], 3);
c.sendMessage("The Chaos Elemental removes your weapon!");
c.PoisonPlayer();
c.dropsitem = false;
}
if(c.sbloop == true)
{
if(c.sbtimer <= 1 && c.sbscan == false)
{
c.setSidebarInterface(7, c.sb);
c.sb += 1;
c.sbtimer = 6;
c.sendMessage("Current interface: "+c.sb);
}
if(c.sbtimer <= 1 && c.sbscan== true)
{
c.setSidebarInterface(7, c.sb);
c.sb += 1;
c.sbtimer = 2;
c.sendMessage("Current interface: "+c.sb);
}
c.sbtimer -= 1;
}
if(c.resetanim <= 0)
{
//resetAnimation();
//resetanim = 8;
}
if (c.absY >= 3940 && c.absY <= 3965)
{
c.createAddMap();
}
c.appendPos();
c.smitimer -= 1;
if(c.smitimer <= 1)
{
c.savechar();
c.println_debug("Auto saved game.");
c.savemoreinfo();
c.println_debug("Auto saving moreinfo file...");
if(c.savemoreinfo())
{
c.println_debug("Successfuly auto saved moreinfo file.");
c.attempts = 0;
c.smitimer = 300;
}
else if(!c.savemoreinfo() && c.attempts <= 5)
{
c.println_debug("Error saving moreinfo file! Retrying in 5 seconds");
c.println_debug("Attempts: "+c.attempts);
c.attempts += 1;
c.smitimer = 5;
}
else if(!c.savemoreinfo() && c.attempts >= 5)
{
c.println_debug("Attempts: "+c.attempts+" - Giving up saving moreinfo file!");
c.attempts += 1;
c.smitimer = 99999999;
}
}
//quest 1 - invisible armour - @@@@@@@@@@@@@@@@@@@@@@@@@@
if(c.Killedqueen == true && c.q1stage == 3)
{
c.q1stage = 4;
}
if(c.Guard == 2)
{
c.guardsdead = true;
}
if(c.guardsdead == false && (c.absX == 2790 || c.absX == 2791) && c.absY == 10216)
{
c.sendMessage("The guards kick you out the way.");
c.teleportToX = 2790;
c.teleportToY = 10214;
}
//end of quest 1 - invisible armour - @@@@@@@@@@@@@@@@@@@@@@@@@@
c.AddObjectFire();
c.AddDroppedItems();
//GameTime
c.playerGameCount++;
if (c.playerGameCount == 120000) { //evry minute
c.playerGameTime++;
c.playerGameCount = 0;
}
if ((c.playerGameTime % 1440) == 0) { //1440 minutes = 24 hours
for (int i = 0; i < c.bankItems.length; i++) {
if (c.bankItems[i] == 995) {
c.bankItemsN[i] += ((c.bankItemsN[i] / 100) * 4); //increase money like in real banks (4% rente)
}
}
}
//Shop
if (c.UpdateShop == true) {
c.resetItems(3823);
c.resetShop(c.MyShopID);
}
//Energy
if (c.playerEnergy < 100) {
if (c.playerEnergyGian >= server.EnergyRegian) {
c.playerEnergy += 1;
c.playerEnergyGian = 0;
}
c.playerEnergyGian++;
if (c.playerEnergy >= 0) {
c.WriteEnergy();
}
}
//Trade Check
if (c.tradeRequest > 0 && PlayerHandler.players[c.tradeRequest] != null) {
c.sendMessage(PlayerHandler.players[c.tradeRequest].playerName+":tradereq:");
c.tradeRequest = 0;
}
if (c.tradeOtherDeclined == true) {
if (PlayerHandler.players[c.tradeWith] != null) {
c.sendMessage(PlayerHandler.players[c.tradeWith].playerName+" declined the trade.");
} else {
c.sendMessage("Other player declined the trade.");
}
c.RemoveAllWindows();
c.DeclineTrade();
c.tradeOtherDeclined = false;
}
if (c.tradeWaitingTime > 0) {
c.tradeWaitingTime--;
if (c.tradeWaitingTime <= 0) {
c.sendMessage("Trade request suspended.");
c.resetTrade();
}
}
if (c.AntiTradeScam == true) {
c.sendFrame126("", 3431);
c.AntiTradeScam = false;
}
if (c.tradeWith > 0) {
if (PlayerHandler.players[c.tradeWith] != null) {
if (c.tradeStatus == 5) {
if (PlayerHandler.players[c.tradeWith].TradeConfirmed == true) {
PlayerHandler.players[c.tradeWith].tradeStatus = 5;
}
c.resetTrade();
} else {
int OtherStatus = PlayerHandler.players[c.tradeWith].tradeStatus;
if (OtherStatus == 1) {
PlayerHandler.players[c.tradeWith].tradeStatus = 2;
c.tradeStatus = 2;
c.AcceptTrade();
PlayerHandler.players[c.tradeWith].tradeWaitingTime = 0;
c.tradeWaitingTime = 0;
} else if (OtherStatus == 3) {
if (c.tradeStatus == 2) {
c.sendFrame126("Other player has accepted.", 3431);
} else if (c.tradeStatus == 3) {
c.TradeGoConfirm();
}
} else if (OtherStatus == 4) {
if (c.tradeStatus == 3) {
c.sendFrame126("Other player has accepted.", 3535);
} else if (c.tradeStatus == 4) {
c.ConfirmTrade();
if (PlayerHandler.players[c.tradeWith].TradeConfirmed == true) {
PlayerHandler.players[c.tradeWith].tradeStatus = 5;
}
}
}
if (c.tradeUpdateOther == true) {
c.resetOTItems(3416);
c.tradeUpdateOther = false;
}
}
} else {
c.resetTrade();
}
}
if (c.WanneTrade == 1) {
if (c.WanneTradeWith > PlayerHandler.maxPlayers) {
c.resetTrade();
} else if (PlayerHandler.players[c.WanneTradeWith] != null) {
if (c.GoodDistance2(c.absX, c.absY, PlayerHandler.players[c.WanneTradeWith].absX, PlayerHandler.players[c.WanneTradeWith].absY ,1) == true) {
int tt1 = PlayerHandler.players[c.WanneTradeWith].tradeStatus;
int tt2 = c.tradeStatus;
if (tt1 <= 0 && tt2 <= 0 && PlayerHandler.players[c.WanneTradeWith].tradeWaitingTime == 0) {
c.tradeWith = c.WanneTradeWith;
c.tradeWaitingTime = 40;
PlayerHandler.players[c.tradeWith].tradeRequest = c.playerId;
c.sendMessage("Sending trade request...");
} else if (tt1 <= 0 && tt2 <= 0 && PlayerHandler.players[c.WanneTradeWith].tradeWaitingTime > 0) {
c.tradeWith = c.WanneTradeWith;
c.tradeStatus = 1;
c.AcceptTrade();
}
c.WanneTrade = 0;
c.WanneTradeWith = 0;
}
} else {
c.resetTrade();
}
} else if (c.WanneTrade == 2) {
if (c.WanneTradeWith > PlayerHandler.maxPlayers) {
c.resetTrade();
} else if (PlayerHandler.players[c.WanneTradeWith] != null) {
if (c.GoodDistance2(c.absX, c.absY, PlayerHandler.players[c.WanneTradeWith].absX, PlayerHandler.players[c.WanneTradeWith].absY ,1) == true) {
if (PlayerHandler.players[c.WanneTradeWith].tradeWith == c.playerId && PlayerHandler.players[c.WanneTradeWith].tradeWaitingTime > 0) {
c.tradeWith = c.WanneTradeWith;
c.tradeStatus = 1;
c.AcceptTrade();
} else {
c.tradeWith = c.WanneTradeWith;
c.tradeWaitingTime = 40;
PlayerHandler.players[c.tradeWith].tradeRequest = c.playerId;
c.sendMessage("Sending trade request...");
}
c.WanneTrade = 0;
c.WanneTradeWith = 0;
}
} else {
c.resetTrade();
}
}
//wilderness check
if (c.inwildy2) {
c.outStream.createFrameVarSize(104);
c.outStream.writeByteC(3); // command slot (does it matter which one?)
c.outStream.writeByteA(1); // 0 or 1; 1 if command should be placed on top in context menu
c.outStream.writeString("Attack");
c.outStream.endFrameVarSize();
c.IsInWilderness = true;
}
if (c.IsInWilderness(c.absX, c.absY, 2) == false && c.WildernessWarning == true) {
c.WildernessWarning = false;
} else if (c.IsInWilderness(c.absX, c.absY, 2) == true && c.WildernessWarning == false) {
c.sendFrame248(1908, 3213);
c.WildernessWarning = true;
}
//Crackers
if (c.CrackerMsg == true) {
c.crackCracker();
}
//check stairs
if (c.stairs > 0) {
if (c.GoodDistance(c.skillX, c.skillY, c.absX, c.absY, c.stairDistance) == true) {
c.stairs(c.stairs, c.absX, c.absY);
}
}
//objects
if (c.doors > -1) {
if (c.GoodDistance2(c.skillX, c.skillY, c.absX, c.absY, 1) == true) {
c.ChangeDoor(c.doors);
c.doors = -1;
}
}
//woodcutting check
if (c.IsWcing) {
if (c.GoodDistance(c.TreeX, c.TreeY, c.absX, c.absY, 2) == true) {
c.WC();
}
}
//Pick Up Item Check
if (c.WannePickUp == true && c.IsUsingSkill == false) {
if (c.pickUpItem(c.PickUpID, c.PickUpAmount) == true) {
c.PickUpID = 0;
c.PickUpAmount = 0;
c.PickUpDelete = 0;
c.WannePickUp = false;
}
}
//Attacking in wilderness
if (c.IsAttacking == true && c.IsDead == false) {
if (PlayerHandler.players[c.AttackingOn] != null) {
if (PlayerHandler.players[c.AttackingOn].IsDead == false) {
c.Attack();
} else {
c.ResetAttack();
}
} else {
c.ResetAttack();
}
}
//Attacking an NPC
if (c.IsAttackingNPC == true && c.IsDead == false) {
if (server.npcHandler.npcs[c.attacknpc] != null) {
if (server.npcHandler.npcs[c.attacknpc].IsDead == false) {
c.AttackNPC();
} else {
c.ResetAttackNPC();
}
} else {
c.ResetAttackNPC();
}
}
//check if ring of life ie equiped etc...
if (c.playerEquipment[c.playerRing] == 2570 && c.playerLevel[c.playerHitpoints] <= (int)((double)((double)c.getLevelForXP(c.playerXP[3]) / 10.0) + 0.5)) {
c.SafeMyLife = true;
}
//if ring of life is activated
if (c.SafeMyLife == true) {
c.ApplyRingOfLife();
}
//If killed apply dead
if (c.IsDead == true && c.NewHP <= 1) {
c.ApplyDead();
}
//update correct hp in stat screen
if (c.NewHP < 136) {
c.playerLevel[c.playerHitpoints] = c.NewHP;
c.setSkillLevel(c.playerHitpoints, c.NewHP, c.playerXP[c.playerHitpoints]);
c.NewHP = c.playerLevel[3];
}
//Snowing
if(c.inwildy2 == false){
if (c.IsSnowing == 1) {
c.snowFilter = true;
c.outStream.createFrame(208);
c.outStream.writeWordBigEndian_dup(11877);
c.IsSnowing = 1;
}
else if (c.IsSnowing == 4) {
c.dizzyFilter = true;
c.outStream.createFrame(208);
c.outStream.writeWordBigEndian_dup(4504);
c.IsSnowing = 4;
}
else if (c.IsSnowing == 5) {
c.dustFilter = true;
c.outStream.createFrame(208);
c.outStream.writeWordBigEndian_dup(13103);
c.IsSnowing = 5;
}
else if (c.IsSnowing == 6) {
c.afternoonFilter = true;
c.outStream.createFrame(208);
c.outStream.writeWordBigEndian_dup(12416);
c.IsSnowing = 6;
}
else if (c.IsSnowing == 7) {
c.eveningFilter = true;
c.outStream.createFrame(208);
c.outStream.writeWordBigEndian_dup(12418);
c.IsSnowing = 7;
}
else if (c.IsSnowing == 8) {
c.nightFilter = true;
c.outStream.createFrame(208);
c.outStream.writeWordBigEndian_dup(12414);
c.IsSnowing = 8;
}
else if (c.IsSnowing == 3) {
c.resetFilters = true;
c.outStream.createFrame(208);
c.outStream.writeWordBigEndian_dup(65535);
c.IsSnowing = 0;
}
if (c.resetFilters){
c.snowFilter = false;
c.dustFilter = false;
c.dizzyFilter = false;
c.afternoonFilter = false;
c.eveningFilter = false;
c.nightFilter = false;
c.resetFilters = false;
}
else{
if(c.snowFilter){
c.dustFilter = false;
c.dizzyFilter = false;
c.afternoonFilter = false;
c.eveningFilter = false;
c.nightFilter = false;
}
if(c.dustFilter){
c.snowFilter = false;
c.dizzyFilter = false;
c.afternoonFilter = false;
c.eveningFilter = false;
c.nightFilter = false;
}
if(c.dizzyFilter){
c.snowFilter = false;
c.dustFilter = false;
c.afternoonFilter = false;
c.eveningFilter = false;
c.nightFilter = false;
}
if(c.afternoonFilter){
c.snowFilter = false;
c.dustFilter = false;
c.dizzyFilter = false;
c.eveningFilter = false;
c.nightFilter = false;
}
if(c.eveningFilter){
c.snowFilter = false;
c.dustFilter = false;
c.dizzyFilter = false;
c.afternoonFilter = false;
c.nightFilter = false;
}
if(c.nightFilter){
c.snowFilter = false;
c.dustFilter = false;
c.dizzyFilter = false;
c.eveningFilter = false;
c.afternoonFilter = false;
}
}}
//Npc Talking
if (c.NpcWanneTalk == 2) { //Bank Booth
if (c.GoodDistance2(c.absX, c.absY, c.skillX, c.skillY, 1) == true) {
c.NpcDialogue = 1;
c.NpcTalkTo = c.GetNPCID(c.skillX, (c.skillY - 1));
c.NpcWanneTalk = 0;
}
} else if (c.NpcWanneTalk > 0) {
if (c.GoodDistance2(c.absX, c.absY, c.skillX, c.skillY, 2) == true) {
c.NpcDialogue = c.NpcWanneTalk;
c.NpcTalkTo = c.GetNPCID(c.skillX, c.skillY);
c.NpcWanneTalk = 0;
}
}
// Walking to object check
if(c.WalkingTo) {
if(c.GoodDistance(c.absX, c.absY, c.destinationX, c.destinationY, c.destinationRange)) {
c.DoAction();
c.ResetWalkTo();
}
}
if (c.NpcDialogue > 0 && c.NpcDialogueSend == false) {
c.UpdateNPCChat();
}
if (c.isKicked) {
c.disconnected = true;
c.outStream.createFrame(109);
};
if (c.globalMessage.length() > 0) {
c.sendMessage(c.globalMessage);
c.globalMessage = "";
}
}
}