Advertisement
Guest User

client class

a guest
Dec 6th, 2013
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  package server.model.players;
  2.  
  3. import java.util.LinkedList;
  4. import java.util.Queue;
  5. import java.util.concurrent.Future;
  6. import java.net.URL;
  7. import java.net.MalformedURLException;
  8. import java.io.InputStreamReader;
  9. import java.io.BufferedReader;
  10. import java.io.IOException;
  11. import org.apache.mina.common.IoSession;
  12. import server.Config;
  13. import server.Server;
  14. import java.net.URL;
  15. import server.model.npcs.*;
  16. import java.net.MalformedURLException;
  17. import java.io.InputStreamReader;
  18. import java.io.BufferedReader;
  19. import java.io.IOException;
  20. import server.model.items.ItemAssistant;
  21. import server.model.shops.ShopAssistant;
  22. import server.net.HostList;
  23. import server.net.Packet;
  24. import server.net.StaticPacketBuilder;
  25. import server.util.Misc;
  26. import server.model.npcs.NPC;
  27.  
  28. import server.model.players.skills.Summoning;
  29. import server.util.Stream;
  30. import server.util.MadTurnipConnection;
  31. import server.model.players.skills.*;
  32. import server.event.EventManager;
  33. import server.event.Event;
  34. import server.model.players.PlayerSave;
  35. import server.model.players.PlayerHandler;
  36. import server.model.players.skills.Crafting;
  37. import server.event.EventContainer;
  38. import server.model.minigames.WarriorsGuild;
  39. import server.model.minigames.Gambling;
  40.  
  41. public class Client extends Player {
  42. Crafting crafting = new Crafting(this);
  43. public Crafting getCrafting() {
  44. return crafting;
  45. }
  46. public void resetRanks() {
  47.  for (int i = 0; i < 10; i++) {
  48.  ranks[i] = 0;
  49.  rankPpl[i] = "";
  50.  }
  51.  }
  52.  public void highscores() {
  53.  getPA().sendFrame126(""+ Config.SERVER_NAME +" Top 10 Players", 6399);
  54.  for(int i = 0; i < 10; i++) {
  55.  if(ranks[i] > 0) {
  56.  getPA().sendFrame126("Rank "+(i+1)+": "+rankPpl[i]+ "- Total Level: " +ranks[i], 6402+i);
  57.  }
  58.  }
  59.  getPA().showInterface(6308);
  60.  flushOutStream();
  61.  resetRanks();
  62.  }
  63.  public int playerRank = 0;
  64.  public static int[] ranks = new int[11];
  65.  public static String[] rankPpl = new String[11];
  66.     public byte buffer[] = null;
  67.  public int cannonTimer = 0;
  68.     public int s;
  69.     public Stream inStream = null, outStream = null;
  70.     private IoSession session;
  71.     public static PlayerSave save;
  72.     public static Client cliento2;
  73.         public int totalstored;
  74.     public int currentDamage = 0;
  75.     public int followPlayer;
  76.     public int ZombiesToKill;
  77.     public int ZombiesKilled;
  78.     public int RoundId;
  79.     public int npcslot;
  80.     public int summoningnpcid;
  81.         public int timer;
  82.     private TradeLog tradeLog = new TradeLog(this);
  83.     private ItemAssistant itemAssistant = new ItemAssistant(this);
  84.     private ShopAssistant shopAssistant = new ShopAssistant(this);
  85.     private TradeAndDuel tradeAndDuel = new TradeAndDuel(this);
  86.     private PlayerAssistant playerAssistant = new PlayerAssistant(this);
  87.     private CombatAssistant combatAssistant = new CombatAssistant(this);
  88.     private ActionHandler actionHandler = new ActionHandler(this);
  89.     private PlayerKilling playerKilling = new PlayerKilling(this);
  90.     private DialogueHandler dialogueHandler = new DialogueHandler(this);
  91.     private Potions potion = new Potions(this);
  92.     private Queue<Packet> queuedPackets = new LinkedList<Packet>();
  93.     private WarriorsGuild warriorsGuild = new WarriorsGuild();
  94.     private PotionMixing potionMixing = new PotionMixing(this);
  95.     private Food food = new Food(this);
  96.     private Gambling gamble = new Gambling(this);
  97.     /**
  98.      * Skill instances
  99.      */
  100.     private Slayer slayer = new Slayer(this);
  101.     private Runecrafting runecrafting = new Runecrafting(this);
  102.     private Woodcutting woodcutting = new Woodcutting(this);
  103.     private Mining mine = new Mining(this);
  104.     public Agility ag = new Agility(this);
  105.     private Cooking cooking = new Cooking(this);
  106.     private Fishing fish = new Fishing(this);
  107.     private Smithing smith = new Smithing(this);
  108.     private Prayer prayer = new Prayer(this);
  109.     private Curse curse = new Curse(this);
  110.     private SmithingInterface smithInt = new SmithingInterface(this);
  111.     private Farming farming = new Farming(this);
  112.     private Thieving thieving = new Thieving(this);
  113.     private Firemaking firemaking = new Firemaking(this);
  114.     private Herblore herblore = new Herblore(this);
  115.     public Summoning Summoning = new Summoning(this);
  116.     private int somejunk;
  117.     public int lowMemoryVersion = 0;
  118.     public int timeOutCounter = 0;
  119.         public int dungRest = 0;
  120.     public int returnCode = 2;
  121.     public int clawDamage;
  122.     public int clawIndex;
  123.     public int clawType = 0;
  124.     private Future<?> currentTask;
  125.     public boolean officialClient = true;
  126.     public boolean isSmelting = false;
  127.     public boolean slayerHelmEffect;
  128.     public boolean basket = false;
  129.     public long lastRefresh = 0;
  130.     public boolean slayerHelmetEffect;
  131.     public String lastKilled = "";
  132.  
  133.     private final String[] randomMessages = {
  134.         "pie", "kebab", "chocolate", "bagel", "triangle",
  135.         "square", "bread"
  136.     };
  137.    
  138.     private final int[][] responseButtons = {
  139.         { 63013, 0 }, { 63014, 1 }, { 63015, 2 }, { 63009, 3 },
  140.         { 63010, 4 }, { 63011, 5 }, { 63012, 6 }
  141.     };
  142.    
  143.     public void executeRandom() {
  144.         getPA().sendFrame126("", 16131);
  145.         getPA().showInterface(16135);
  146.         foodType = Misc.random(6);
  147.         getPA().sendFrame126("Please select the " + randomMessages[foodType] + " for a cash reward!", 16145);
  148.     }
  149.    
  150.     public void checkResponse(int button) {
  151.         for (int i = 0; i < responseButtons.length; i ++) {
  152.             if (responseButtons[i][0] == button) {
  153.                 if (responseButtons[i][1] == foodType) {
  154.                     sendMessage("Congratulations! You've completed the random event.");
  155.                     getPA().closeAllWindows();
  156.                     getItems().addItem(995, Misc.random(2000));
  157.                     return;
  158.                 }
  159.                
  160.                 /**
  161.                  * You can add other things here, such as a teleport or something.
  162.                  * This is where it fails and they click the wrong food type.
  163.                  */
  164.                 sendMessage("Please select the " + randomMessages[foodType] + " to continue");
  165.             }
  166.         }
  167.     }
  168.    
  169.     public int foodType = -1;
  170.     public long lastRandom;
  171.     public void walk(int EndX, int EndY, int Emote) {
  172.      walkToEmote(Emote);
  173.     getPA().walkTo2(EndX, EndY);
  174. }
  175.         public void walkToEmote(int id) {
  176.                 isRunning2 = false;
  177.         playerWalkIndex = id;
  178.                 getPA().requestUpdates(); //this was needed to make the agility work
  179.     }
  180.  
  181.     public void stopEmote() {
  182.         playerWalkIndex = 0x333;
  183.                 agilityEmote = false;
  184.                 getPA().requestUpdates(); //this was needed to make the agility work
  185.     }
  186.         public void obsticle(int Emote, int Req, int newX, int newY, final int agilityTimer, int amtEXP, String message) {
  187.                 if (playerLevel[16] >= Req) {
  188.                         agilityEmote = true;
  189.                         walk(newX, newY, Emote);
  190.                         sendMessage(message);
  191.                         getPA().addSkillXP(amtEXP, playerAgility);
  192.                         EventManager.getSingleton().addEvent(new Event() {
  193.                                 public void execute(EventContainer c) {
  194.                                         stopEmote();
  195.                                         c.stop();
  196.                                 }
  197.                         }, agilityTimer);
  198.                 } else {
  199.                 sendMessage("You Need " + Req + " Agility To Do This Obsticle");
  200.                 }      
  201.         }      
  202.  
  203.         public void agilityDelay(int Emote, final int X, final int Y, final int H, int Req, int amtEXP, String message) {
  204.                 if (playerLevel[16] >= Req) {
  205.                         sendMessage(message);
  206.                         startAnimation(Emote);
  207.                         agilityEmote = true;
  208.                         getPA().addSkillXP(amtEXP, playerAgility);
  209.                         EventManager.getSingleton().addEvent(new Event() {
  210.                                 public void execute(EventContainer c) {
  211.                                         getPA().movePlayer(X, Y, H);
  212.                                         agilityEmote = false;
  213.                                         c.stop();
  214.                                 }
  215.                         }, 1000);
  216.                 } else {
  217.                         sendMessage("You Need " + Req + " Agility To Do This Obsticle");
  218.                 }
  219.         }
  220.            
  221.         public void applyFollowing()
  222.     {
  223.         if (follow2 > 0)
  224.         {
  225.             //Client p = Server.playerHandler.client[followId];
  226.             Client p = (Client) Server.playerHandler.players[follow2];    
  227.             if (p != null)
  228.             {
  229.                 if (isDead)
  230.                 {
  231.                     follow(0, 3, 1);
  232.                     return;
  233.                 }
  234.                 if (!goodDistance(p.absX, p.absY, absX, absY, 25))
  235.                 {
  236.                     follow(0, 3, 1);
  237.                     return;
  238.                 }
  239.             }
  240.             else if (p == null)
  241.             {
  242.                 follow(0, 3, 1);
  243.             }
  244.         }
  245.         else if (follow2 > 0)
  246.         {
  247.             //Server.npcHandler.npcs.NPC npc = Server.npcHandler.npcs[followId2];
  248.             if (Server.npcHandler.npcs[followId2] != null)
  249.             {
  250.                 if (Server.npcHandler.npcs[followId2].isDead)
  251.                 {
  252.                     follow(0, 3, 1);
  253.                     return;
  254.                 }
  255.                 if (!goodDistance(Server.npcHandler.npcs[followId2].absX, Server.npcHandler.npcs[followId2].absY, absX, absY, 25))
  256.                 {
  257.                     follow(0, 3, 1);
  258.                     return;
  259.                 }
  260.             }
  261.             else if (Server.npcHandler.npcs[followId2] == null)
  262.             {
  263.                 follow(0, 3, 1);
  264.             }
  265.         }
  266.     }
  267.  
  268.     public int followDistance = 0;
  269.  
  270.         public void follow(int slot, int type, int distance)
  271.     {
  272.         if (slot > 0 && slot == follow2 && type == 1 && follow2 > 0 && followDistance != distance && (/*usingOtherRangeWeapons || */usingBow || usingMagic))
  273.                     return;
  274.         else if (slot > 0 && slot == followId2 && type == 0 && followId2 > 0 && followDistance >= distance && distance != 1)
  275.                     return;
  276.         //else if (type == 3 && followId2 == 0 && follow2 == 0)
  277.                     //return;
  278.         outStream.createFrame(174);
  279.         if (freezeTimer > 0) {
  280.             outStream.writeWord(0);
  281.         } else {
  282.             outStream.writeWord(slot);
  283.             if (type == 0) {
  284.                 follow2 = 0;
  285.                 followId2 = slot;
  286.                 faceUpdate(followId2);
  287.             } else if (type == 1) {
  288.                 followId2 = 0;
  289.                 follow2 = slot;
  290.                 faceUpdate(32768 + follow2);
  291.             } else if (type == 3) {
  292.                 followId2 = 0;
  293.                 follow2 = 0;
  294.                 followDistance = 0;
  295.                 faceUpdate(65535);
  296.             }
  297.             followDistance = distance;
  298.         }
  299.         outStream.writeByte(type);
  300.         outStream.writeWord(distance);
  301.     }
  302.     public Client(IoSession s, int _playerId) {
  303.         super(_playerId);
  304.         this.session = s;
  305.         synchronized(this) {
  306.             outStream = new Stream(new byte[Config.BUFFER_SIZE]);
  307.             outStream.currentOffset = 0;
  308.         }
  309.         inStream = new Stream(new byte[Config.BUFFER_SIZE]);
  310.         inStream.currentOffset = 0;
  311.         buffer = new byte[Config.BUFFER_SIZE];
  312.     }
  313.     public void frame1() // cancels all player and npc emotes within area!
  314.     {
  315.         for (Player p : PlayerHandler.players) {
  316.             if (p != null) {
  317.                 Client c = (Client) p;
  318.                 c.outStream.createFrame(1);
  319.             }
  320.         }
  321.         updateRequired = true;
  322.         appearanceUpdateRequired = true;
  323.     }
  324.         public Client getClient(String name) {
  325.         name = name.toLowerCase();
  326.         for(int i = 0; i < Config.MAX_PLAYERS; i++) {
  327.             if(validClient(i)) {
  328.                 Client client = getClient(i);
  329.                 if(client.playerName.toLowerCase().equalsIgnoreCase(name)) {
  330.                     return client;
  331.                 }
  332.             }
  333.         }
  334.         return null;
  335.     }
  336.     public Client getClient(int id) {
  337.         return (Client) Server.playerHandler.players[id];
  338.     }
  339.     public boolean validClient(int id) {
  340.         if (id < 0 || id > Config.MAX_PLAYERS) {
  341.             return false;
  342.         }
  343.         return validClient(getClient(id));
  344.     }
  345.     public boolean validClient(String name) {
  346.         return validClient(getClient(name));
  347.     }
  348.     public boolean validClient(Client client) {
  349.         return (client != null && !client.disconnected);
  350.     }
  351.     public boolean validNpc(int index) {
  352.         if (index < 0 || index >= Config.MAX_NPCS) {
  353.             return false;
  354.         }
  355.         NPC n = getNpc(index);
  356.         if (n != null) {
  357.             return true;
  358.         }
  359.         return false;
  360.     }
  361.     public NPC getNpc(int index) {
  362.         return ((NPC) Server.npcHandler.npcs[index]);
  363.     }
  364.     public void yell(String s) {
  365.         for (int i = 0; i < Config.MAX_PLAYERS; i++) {
  366.             if (validClient(i)) {
  367.                 getClient(i).sendMessage(s);
  368.             }
  369.         }
  370.     }
  371.    
  372.     public void degradeVls() {
  373. if(playerEquipment[playerWeapon] == 13901 && vlsLeft < 1){
  374. playerEquipment[playerWeapon] = -1;
  375. playerEquipmentN[playerWeapon] = 0;
  376. getItems().wearItem(-1, 1, 3);
  377. sendMessage("Your Vesta longsword crumbles to dust!");
  378. vlsLeft = 1000;
  379. }
  380. }
  381. public void degradeVSpear() {
  382. if(playerEquipment[playerWeapon] == 13907 && vSpearLeft < 1){
  383. playerEquipment[playerWeapon] = -1;
  384. playerEquipmentN[playerWeapon] = 0;
  385. getItems().wearItem(-1, 1, 3);
  386. sendMessage("Your Vesta spear crumbles to dust!");
  387. vSpearLeft = 1000;
  388. }
  389. }
  390. public void degradeStat() {
  391. if(playerEquipment[playerWeapon] == 13904 && statLeft < 1){
  392. playerEquipment[playerWeapon] = -1;
  393. playerEquipmentN[playerWeapon] = 0;
  394. getItems().wearItem(-1, 1, 3);
  395. sendMessage("Your Statius warhammer crumbles to dust!");
  396. statLeft = 1000;
  397. }
  398. }
  399. public void degradeVTop() {//vesta top
  400. if(playerEquipment[playerChest] == 13889 && vTopLeft < 1){
  401. playerEquipment[playerChest] = -1;
  402. playerEquipmentN[playerChest] = 0;
  403. getItems().wearItem(-1, 1, playerChest);
  404. sendMessage("Your Vesta chainbody crumbles to dust!");
  405. vTopLeft = 1000;
  406. }
  407. }
  408. public void degradeVLegs() {//vesta legs
  409. if(playerEquipment[playerLegs] == 13895 && vLegsLeft < 1){
  410. playerEquipment[playerLegs] = -1;
  411. playerEquipmentN[playerLegs] = 0;
  412. getItems().wearItem(-1, 1, playerLegs);
  413. sendMessage("Your Vesta plateskirt crumbles to dust!");
  414. vLegsLeft = 1000;
  415. }
  416. }
  417. public void degradeSTop() {//statius top
  418. if(playerEquipment[playerChest] == 13886 && sTopLeft < 1){
  419. playerEquipment[playerChest] = -1;
  420. playerEquipmentN[playerChest] = 0;
  421. getItems().wearItem(-1, 1, playerChest);
  422. sendMessage("Your Statius platebody crumbles to dust!");
  423. sTopLeft = 1000;
  424. }
  425. }
  426. public void degradeSLegs() {//statius legs
  427. if(playerEquipment[playerLegs] == 13892 && sLegsLeft < 1){
  428. playerEquipment[playerLegs] = -1;
  429. playerEquipmentN[playerLegs] = 0;
  430. getItems().wearItem(-1, 1, playerLegs);
  431. sendMessage("Your Statius platelegs crumbles to dust!");
  432. sLegsLeft = 1000;
  433. }
  434. }
  435. public void degradeSHelm() {//statius helm
  436. if(playerEquipment[playerHat] == 13898 && sHelmLeft < 1){
  437. playerEquipment[playerHat] = -1;
  438. playerEquipmentN[playerHat] = 0;
  439. getItems().wearItem(-1, 1, playerHat);
  440. sendMessage("Your Statius full helm crumbles to dust!");
  441. sHelmLeft = 1000;
  442. }
  443. }
  444. public void degradeZHood() {//zuriel hood
  445. if(playerEquipment[playerHat] == 13866 && zHoodLeft < 1){
  446. playerEquipment[playerHat] = -1;
  447. playerEquipmentN[playerHat] = 0;
  448. getItems().wearItem(-1, 1, playerHat);
  449. sendMessage("Your Zuriel hood crumbles to dust!");
  450. zHoodLeft = 1000;
  451. }
  452. }
  453. public void degradeZTop() {//zuriel top
  454. if(playerEquipment[playerChest] == 13860 && zTopLeft < 1){
  455. playerEquipment[playerChest] = -1;
  456. playerEquipmentN[playerChest] = 0;
  457. getItems().wearItem(-1, 1, playerChest);
  458. sendMessage("Your Zuriel robe top crumbles to dust!");
  459. zTopLeft = 1000;
  460. }
  461. }
  462. public void degradeZBottom() {//zuriel hood
  463. if(playerEquipment[playerLegs] == 13863 && zBottomLeft < 1){
  464. playerEquipment[playerLegs] = -1;
  465. playerEquipmentN[playerLegs] = 0;
  466. getItems().wearItem(-1, 1, playerLegs);
  467. sendMessage("Your Zuriel robe bottom crumbles to dust!");
  468. zBottomLeft = 1000;
  469. }
  470. }
  471. public void degradeZStaff() {//zuriel staff
  472. if(playerEquipment[playerWeapon] == 13870 && zStaffLeft < 1){
  473. playerEquipment[playerWeapon] = -1;
  474. playerEquipmentN[playerWeapon] = 0;
  475. getItems().wearItem(-1, 1, 3);
  476. sendMessage("Your Zuriel staff crumbles to dust!");
  477. zStaffLeft = 1000;
  478. }
  479. }
  480. public void degradeMBody() {//morrigans body
  481. if(playerEquipment[playerChest] == 13872 && mBodyLeft < 1){
  482. playerEquipment[playerChest] = -1;
  483. playerEquipmentN[playerChest] = 0;
  484. getItems().wearItem(-1, 1, playerChest);
  485. sendMessage("Your Morrigans leather body crumbles to dust!");
  486. mBodyLeft = 1000;
  487. }
  488. }
  489. public void degradeMChaps() {//morrigans chaps
  490. if(playerEquipment[playerLegs] == 13875 && mChapsLeft < 1){
  491. playerEquipment[playerLegs] = -1;
  492. playerEquipmentN[playerLegs] = 0;
  493. getItems().wearItem(-1, 1, playerLegs);
  494. sendMessage("Your Morrigans chaps crumbles to dust!");
  495. mChapsLeft = 1000;
  496. }
  497. }
  498.    
  499.    
  500.     public int maxstore = 0;
  501.  
  502.     public void storesummon(int npcType) {
  503.         switch (npcType) {
  504.  
  505.         case 6807:
  506.  
  507.             if (lastsummon > 0) {
  508.                 for (int i = 0; i < Server.npcHandler.maxNPCs; i++) {
  509.                     if (Server.npcHandler.npcs[i] != null) {
  510.                         if (Server.npcHandler.npcs[i].summon == true) {
  511.                             if (Server.npcHandler.npcs[i].spawnedBy == getId()
  512.                                     && Server.npcHandler.npcs[i].npcId == npcslot) {
  513.                                 sendMessage("You are now storing items inside your npc");
  514.                                 Summoning().store();
  515.                             }
  516.                         }
  517.                     }
  518.                 }
  519.  
  520.             }
  521.             break;
  522.  
  523.         }
  524.     }
  525.  
  526.     public void firstslot() {
  527.         for (summoningslot = 0; occupied[summoningslot] == true; summoningslot += 1) {
  528.  
  529.         }
  530.     }
  531.  
  532.     public int summoningslot = 0;
  533.  
  534.     public int storeditems[] = new int[29];
  535.  
  536.     public boolean picking = false;
  537.  
  538.     public int amount[] = new int[29];
  539.     public boolean occupied[] = new boolean[29];
  540.  
  541.     public boolean storing = false;
  542.  
  543.    
  544.     public int attackingplayer;
  545.     public int lastsummon;
  546.     public boolean summon;
  547.    
  548.    
  549.         public void jadSpawn() {
  550.             //getPA().movePlayer(absX, absY, playerId * 4);
  551.             getDH().sendDialogues(41, 2618);
  552.             EventManager.getSingleton().addEvent(new Event() {
  553.                 public void execute(EventContainer c) {
  554.                     Server.fightCaves.spawnNextWave((Client)Server.playerHandler.players[playerId]);
  555.                     c.stop();
  556.                 }
  557.                 }, 10000);
  558.     }
  559.         /*  public void handCannonDestory() {
  560.         cannonTimer = 0;
  561.         int chance = playerLevel[playerFiremaking] * 5 + 25;
  562.         if(specGfx)
  563.             chance/=2;
  564.         if(Misc.random(chance) == 1)
  565.             EventManager.getSingleton().addEvent(new Event() {
  566.             public void execute(EventContainer c) {
  567.             if(cannonTimer <= 0) {
  568.                 gfx0(2140);
  569.                 playerEquipment[playerWeapon] = -1;
  570.                 sendMessage("Your hand cannon explodes!");
  571.                 int damage = Misc.random(15) + 1;
  572.                 setHitDiff(damage);
  573.                 setHitUpdateRequired(true);
  574.                 dealDamage(Misc.random(15) + 1);
  575.                 updateRequired = true;
  576.                 getItems().sendWeapon(playerEquipment[playerWeapon], getItems().getItemName(playerEquipment[playerWeapon]));
  577.                 getCombat().getPlayerAnimIndex(getItems().getItemName(playerEquipment[playerWeapon]).toLowerCase());
  578.                 getItems().resetBonus();
  579.                 getItems().getBonus();
  580.                 getItems().writeBonus();
  581.                 getPA().requestUpdates();getOutStream().createFrame(34);
  582.                 getOutStream().writeWord(6);
  583.                 getOutStream().writeWord(1688);
  584.                 getOutStream().writeByte(playerWeapon);
  585.                 getOutStream().writeWord(0);
  586.                 getOutStream().writeByte(0);
  587.                 updateRequired = true;
  588.                 setAppearanceUpdateRequired(true);
  589.                 c.stop();
  590.                 } else {
  591.                     cannonTimer--;
  592.                 }
  593.             }
  594.         }, 500);
  595.     }*/
  596.  
  597.     public boolean specGfx = false;
  598.     public void handCannonSpec() {
  599.         cannonTimer = 0;
  600.         EventManager.getSingleton().addEvent(new Event() {
  601.             public void execute(EventContainer c) {
  602.                 cannonTimer--;
  603.                 if(cannonTimer == 0) {
  604.                     gfx0(2141);
  605.                     specGfx = true;
  606.                 }
  607.                 if(cannonTimer == 1) {
  608.                     if (playerIndex > 0)
  609.                         getCombat().fireProjectilePlayer();
  610.                     else if (npcIndex > 0)
  611.                         getCombat().fireProjectileNpc();   
  612.                     c.stop();
  613.                 }
  614.             }
  615.         }, 25);
  616.     }
  617.    
  618.         public void clearQInterface() {
  619.         for(int iD = 29172; iD <= 29264;iD++){
  620.             getPA().sendFrame126("", iD);
  621.         }
  622.         getPA().sendFrame126("@whi@"+ Config.SERVER_NAME +": "+PlayerHandler.getPlayerCount()+" @whi@Online", 29155); //Tab Title
  623.         //getPA().sendFrame126("Time Played:", 663);
  624.        
  625.         getPA().sendFrame126("@whi@Owners @gre@Co-Owner", 29161); //1st section title
  626.             getPA().sendFrame126("@whi@"+ Config.OWNER +" @gre@"+ Config.CO_OWNER +"", 29162); //1rd section content
  627.        
  628.         getPA().sendFrame126("@whi@"+ Config.SERVER_NAME +" Website:", 29163); //2nd section title
  629.        
  630.     }
  631.  
  632.  public int specRestore = 0;
  633.  public int antiqueSelect = 0;
  634. public int lampused = 0;
  635. public int lampxp = 0;
  636.  
  637. public int totalLevel() {
  638.     int total = 0;
  639.     for(int i = 0; i <= 20; i++) {
  640.         total += getPA().getLevelForXP(playerXP[i]);
  641.     }
  642.     return total;
  643. }
  644. public int getCombatLevel() {
  645.         int mag = (int) ((getLevelForXP(playerXP[6])) * 1.5);
  646.         int ran = (int) ((getLevelForXP(playerXP[4])) * 1.5);
  647.         int attstr = (int) ((double) (getLevelForXP(playerXP[0])) + (double) (getLevelForXP(playerXP[2])));
  648.             if (ran > attstr) {
  649.                 combatLevel = (int) (((getLevelForXP(playerXP[1])) * 0.25)
  650.                         + ((getLevelForXP(playerXP[3])) * 0.25)
  651.                         + ((getLevelForXP(playerXP[5])) * 0.125)
  652.                         + ((getLevelForXP(playerXP[4])) * 0.4875)
  653.                         + ((getLevelForXP(playerXP[22])) * 0.121212));
  654.             } else if (mag > attstr) {
  655.                 combatLevel = (int) (((getLevelForXP(playerXP[1])) * 0.25)
  656.                         + ((getLevelForXP(playerXP[3])) * 0.25)
  657.                         + ((getLevelForXP(playerXP[5])) * 0.125)
  658.                         + ((getLevelForXP(playerXP[6])) * 0.4875)
  659.                         + ((getLevelForXP(playerXP[22])) * 0.121212));
  660.             } else {
  661.                 combatLevel = (int) (((getLevelForXP(playerXP[1])) * 0.25)
  662.                         + ((getLevelForXP(playerXP[3])) * 0.25)
  663.                         + ((getLevelForXP(playerXP[5])) * 0.125)
  664.                         + ((getLevelForXP(playerXP[0])) * 0.325)
  665.                         + ((getLevelForXP(playerXP[2])) * 0.325)
  666.                         + ((getLevelForXP(playerXP[22])) * 0.121212));
  667.             }
  668.         return combatLevel;
  669.     }
  670.    
  671. public void HighAndLow(){
  672.     if (combatLevel < 15){
  673.             int Low = 3;
  674.             int High = combatLevel + 12;
  675.                 getPA().sendFrame126("@gre@"+Low+"@yel@ - @red@"+High+"", 199);
  676.  
  677.                         }
  678.     if (combatLevel > 15 && combatLevel < 114){
  679.             int Low = combatLevel - 12;
  680.             int High = combatLevel + 12;
  681.                 getPA().sendFrame126("@gre@"+Low+"@yel@ - @red@"+High+"", 199);
  682.  
  683.                         }
  684.     if (combatLevel > 114){
  685.             int Low = combatLevel - 12;
  686.             int High = 138;
  687.                 getPA().sendFrame126("@gre@"+Low+"@yel@ - @red@"+High+"", 199);
  688.  
  689.                         }
  690.                         }
  691.  
  692.  
  693.  
  694.     public void flushOutStream() { 
  695.         if(disconnected || outStream.currentOffset == 0) return;
  696.         synchronized(this) {   
  697.             StaticPacketBuilder out = new StaticPacketBuilder().setBare(true);
  698.             byte[] temp = new byte[outStream.currentOffset];
  699.             System.arraycopy(outStream.buffer, 0, temp, 0, temp.length);
  700.             out.addBytes(temp);
  701.             session.write(out.toPacket());
  702.             outStream.currentOffset = 0;
  703.         }
  704.        }
  705.    
  706.     public void sendClan(String name, String message, String clan, int rights) {
  707.         outStream.createFrameVarSizeWord(217);
  708.         outStream.writeString(name);
  709.         outStream.writeString(message);
  710.         outStream.writeString(clan);
  711.         outStream.writeWord(rights);
  712.         outStream.endFrameVarSize();
  713.     }
  714.    
  715.     public static final int PACKET_SIZES[] = {
  716.         0, 0, 0, 1, -1, 0, 0, 0, 0, 0, //0
  717.         0, 0, 0, 0, 8, 0, 6, 2, 2, 0,  //10
  718.         0, 2, 0, 6, 0, 12, 0, 0, 0, 0, //20
  719.         0, 0, 0, 0, 0, 8, 4, 0, 0, 2,  //30
  720.         2, 6, 0, 6, 0, -1, 0, 0, 0, 0, //40
  721.         0, 0, 0, 12, 0, 0, 0, 8, 8, 12, //50
  722.         8, 8, 0, 0, 0, 0, 0, 0, 0, 0,  //60
  723.         6, 0, 2, 2, 8, 6, 0, -1, 0, 6, //70
  724.         0, 0, 0, 0, 0, 1, 4, 6, 0, 0,  //80
  725.         0, 0, 0, 0, 0, 3, 0, 0, -1, 0, //90
  726.         0, 13, 0, -1, 0, 0, 0, 0, 0, 0,//100
  727.         0, 0, 0, 0, 0, 0, 0, 6, 0, 0,  //110
  728.         1, 0, 6, 0, 0, 0, -1, 0, 2, 6, //120
  729.         0, 4, 6, 8, 0, 6, 0, 0, 0, 2,  //130
  730.         0, 0, 0, 0, 0, 6, 0, 0, 0, 0,  //140
  731.         0, 0, 1, 2, 0, 2, 6, 0, 0, 0,  //150
  732.         0, 0, 0, 0, -1, -1, 0, 0, 0, 0,//160
  733.         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  //170
  734.         0, 8, 0, 3, 0, 2, 0, 0, 8, 1,  //180
  735.         0, 0, 12, 0, 0, 0, 0, 0, 0, 0, //190
  736.         2, 0, 0, 0, 0, 0, 0, 0, 4, 0,  //200
  737.         4, 0, 0, 0, 7, 8, 0, 0, 10, 0, //210
  738.         0, 0, 0, 0, 0, 0, -1, 0, 6, 0, //220
  739.         1, 0, 0, 0, 6, 0, 6, 8, 1, 0,  //230
  740.         0, 4, 0, 0, 0, 0, -1, 0, -1, 4,//240
  741.         0, 0, 6, 6, 0, 0, 0            //250
  742.     };
  743.  
  744.     public void destruct() {
  745.         synchronized (this) {
  746.                PlayerSave.saveGame(this);
  747.                 if(disconnected == true) {
  748.                    saveCharacter = true;
  749.                 }
  750.         if(disconnected == true){
  751.          getTradeAndDuel().declineTrade();
  752.  }
  753.         if(session == null)
  754.             return;
  755.         Server.panel.removeEntity(playerName);
  756.         PlayerSave.saveGame(this);
  757.         if (clanId >= 0)
  758.             Server.clanChat.leaveClan(playerId, clanId);
  759.         getPA().removeFromCW();
  760.         if (inPits) {
  761.         Server.fightPits.removePlayerFromPits(playerId);
  762.         }
  763.         Misc.println("[DEREGISTERED]: "+playerName+"  from IP: " +connectedFrom+ "");
  764.         PlayerSave.saveGame(this);
  765.                 saveCharacter = true;
  766.         HostList.getHostList().remove(session);
  767.         disconnected = true;
  768.         session.close();
  769.         session = null;
  770.         inStream = null;
  771.         outStream = null;
  772.         isActive = false;
  773.         buffer = null;
  774.         super.destruct();
  775.     }
  776. }
  777.    
  778.         public void mymessage() {
  779.         EventManager.getSingleton().addEvent(new Event() {
  780.             public void execute(EventContainer c) {
  781.                 int r3 = 0;
  782.                 r3 = Misc.random(6);
  783.                 if (r3 == 0) {
  784.                     sendMessage(""+ Config.NEWS_ONE +"");
  785.                 } else if (r3 == 3) {
  786.                     sendMessage(""+ Config.NEWS_TWO +"");
  787.                 } else if (r3 == 4) {
  788.                     sendMessage(""+ Config.NEWS_THREE +"");
  789.                 } else if (r3 == 5) {
  790.                     sendMessage(""+ Config.NEWS_FOUR +"");
  791.                 }
  792.             }
  793.         }, 160000); //milisecondsservermessage
  794.     };
  795.    
  796.     /**public void AutoSaveGame() {
  797.         EventManager.getSingleton().addEvent(new Event() {
  798.             public void execute(EventContainer c) {
  799.                 int r3 = 0;
  800.                 r3 = Misc.random(6);
  801.                 if (r3 == 0) {
  802.                     SaveGame();
  803.                 } else if (r3 == 3) {
  804.                     SaveGame();
  805.                 } else if (r3 == 4) {
  806.                     SaveGame();
  807.                 } else if (r3 == 5) {
  808.                     SaveGame();
  809.                 }
  810.             }
  811.         }, 9000); ///Server Auto Save
  812.     };*/
  813.    
  814.     public void sendMessage(String s) {
  815.         synchronized (this) {
  816.             if(getOutStream() != null) {
  817.                 outStream.createFrameVarSize(253);
  818.                 outStream.writeString(s);
  819.                 outStream.endFrameVarSize();
  820.             }
  821.         }
  822.     }
  823.    
  824.     public void sendDelayedMessage(String s,int secsUntilDisplay) {
  825.         synchronized (this) {
  826.             if(getOutStream() != null) {
  827.                 outStream.createFrameVarSize(253);
  828.                 outStream.writeString(s);
  829.                 outStream.endFrameVarSize();
  830.             }
  831.         }
  832.     }
  833.     public String[] qCS = { "Attack", "Strength", "Defence", "Ranged", "Prayer", "Magic", "Runecrafting"
  834.                          , "Hitpoint", "Agility", "Herblore", "Thieving", "Crafting", "Fletching", "Slayer"
  835.                          , "Mining", "Smithing", "Fishing", "Cooking", "Firemaking", "Woodcutting", "Farming"
  836.                     };
  837.    
  838.     public int[][] qCAB = { {33206, 0},
  839.                             {33209, 2},
  840.                             {33212, 1},
  841.                             {33215, 4},
  842.                             {33218, 5},
  843.                             {33221, 6},
  844.                             {33224, 20},
  845.                             {33207, 3},
  846.                             {33210, 16},
  847.                             {33213, 15},
  848.                             {33216, 17},
  849.                             {33219, 12},
  850.                             {33222, 9},
  851.                             {47130, 18},
  852.                             {33208, 14},
  853.                             {33211, 13},
  854.                             {33214, 10},
  855.                             {33217, 7},
  856.                             {33220, 11},
  857.                             {33223, 8},
  858.                             {54104, 19}
  859.                  };
  860. public String qC = "[Quick Chat] ";
  861.     public void setSidebarInterface(int menuId, int form) {
  862.         synchronized (this) {
  863.             if(getOutStream() != null) {
  864.                 outStream.createFrame(71);
  865.                 outStream.writeWord(form);
  866.                 outStream.writeByteA(menuId);
  867.             }
  868.         }
  869.     }  
  870. public void CatchimpNpc(String npcName, int Net, int npcId, int itemId, int AmtExp, int Req, int playerId) {
  871. npcName = Server.npcHandler.getNpcListName(npcId);
  872.     if (System.currentTimeMillis() - foodDelay >= 1500) { //anti spamm
  873.         if (playerLevel[21] >= Req) { //first we check if he's high enough to catch
  874.             if (playerEquipment[playerWeapon] == 10010 || playerEquipment[playerWeapon] == 11259) { //player got net?
  875.                 if (playerLevel[21] + Misc.random(10) >= Misc.random(20) + Req) { //catch chance
  876.                 if (Misc.random(1000) == 1) {
  877.                 sendMessage("You caught a GIGANTIC Impling and gained triple Experience!"); //looks like player got a net
  878.                 getItems().addItem(722, 1); //itemid is different so its defined in the method
  879.                 startAnimation(6999); //this always stays 6999, no need to change this
  880.                 getPA().addSkillXP(AmtExp*3, 21); //AmtExp is different so its defined in the method
  881.                 } else {
  882.                 sendMessage("You Catched an Impling!"); //looks like player got a net
  883.                 getItems().addItem(itemId, 1); //itemid is different so its defined in the method
  884.                 startAnimation(6999); //this always stays 6999, no need to change this
  885.                 getPA().addSkillXP(AmtExp, 21); //AmtExp is different so its defined in the method
  886.                 }
  887.                 } else {
  888.                 sendMessage("You Failed To Catch The Impling");
  889.                 startAnimation(6999);
  890.                 }
  891.             } else { //player got net?
  892.             sendMessage("You need to wear a butterfly net!"); //looks like he doesn't
  893.             return;
  894.             }  
  895.         } else {
  896.         sendMessage("You need atleast "+ Req +" Hunter To catch that Impling!");
  897.         return;
  898.         }
  899.         foodDelay = System.currentTimeMillis();// we use food timer but it really doesn't mather, this is just used for anti-spamm :)
  900.     }
  901. }          
  902.  
  903.  
  904. public void CatchHunterNpc(String npcName, int Net, int npcId, int itemId, int AmtExp, int Req, int playerId) {
  905. npcName = Server.npcHandler.getNpcListName(npcId);
  906.     if (System.currentTimeMillis() - foodDelay >= 1500) { //anti spamm
  907.         if (playerLevel[21] >= Req) { //first we check if he's high enough to catch
  908.             if (playerEquipment[playerWeapon] == 10010 || playerEquipment[playerWeapon] == 11259) { //player got net?
  909.                 if (playerLevel[21] + Misc.random(10) >= Misc.random(20) + Req) { //catch chance
  910.                 if (Misc.random(1000) == 1) {
  911.                 sendMessage("You caught a GIGANTIC butterfly and gained triple Experience!"); //looks like player got a net
  912.                 getItems().addItem(722, 1); //itemid is different so its defined in the method
  913.                 startAnimation(6999); //this always stays 6999, no need to change this
  914.                 getPA().addSkillXP(AmtExp*3, 21); //AmtExp is different so its defined in the method
  915.                 } else {
  916.                 sendMessage("You Caught a Butterfly!"); //looks like player got a net
  917.                 getItems().addItem(itemId, 1); //itemid is different so its defined in the method
  918.                 startAnimation(6999); //this always stays 6999, no need to change this
  919.                 getPA().addSkillXP(AmtExp, 21); //AmtExp is different so its defined in the method
  920.                 }
  921.                 } else {
  922.                 sendMessage("You Failed To Catch The Butterfly");
  923.                 startAnimation(6999);
  924.                 }
  925.             } else { //player got net?
  926.             sendMessage("You need to wear a butterfly net!"); //looks like he doesn't
  927.             return;
  928.             }  
  929.         } else {
  930.         sendMessage("You need atleast "+ Req +" Hunter To catch that Butterfly!");
  931.         return;
  932.         }
  933.         foodDelay = System.currentTimeMillis();// we use food timer but it really doesn't mather, this is just used for anti-spamm :)
  934.     }
  935. }
  936.         public boolean checkVotes(String playerName) {
  937.                 try {
  938.                         String urlString = "elysian-galaxy.comze.com"+playerName;
  939.                         urlString = urlString.replaceAll(" ", "%20");
  940.                         URL url = new URL(urlString);
  941.                         BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
  942.                         String results = reader.readLine();
  943.                         if(results.length() > 0) {
  944.                                 if(results.equals("user needs reward..."))
  945.                                         return true;
  946.                                 else
  947.                                         return false;
  948.                         }
  949.                 } catch (MalformedURLException e) {
  950.                         System.out.println("Malformed URL Exception in checkVotes(String playerName)");
  951.                 } catch (IOException e) {
  952.                         System.out.println("IO Exception in checkVotes(String playerName)");
  953.                 }
  954.                 return false;
  955.         }
  956.     public void initialize() {
  957.        
  958. recordLogin = System.currentTimeMillis();
  959.         updateRequired = true;
  960.         String staffNames[] = { ""+Config.OWNER+"", ""+Config.CO_OWNER+"", ""+Config.HEAD_ADMIN+"", ""+Config.ADMIN+"", ""+Config.HEAD_MOD+"", ""+Config.MOD1+"", ""+Config.MOD2+"", ""+Config.MOD3+"", ""+Config.MOD4+"" };
  961.       updateRequired = true;      
  962.         //Staff Spot 1 Online/Offline
  963.         for(int i=0, i2=28000; i < staffNames.length; i++, i2+=2){
  964.             getPA().sendFrame126(staffNames[i], i2);
  965.             getPA().sendFrame126( ((PlayerHandler.isPlayerOn(staffNames[i]))? "@gre@World 1" : "@red@Offline") , i2 + 1);
  966.             updateRequired = true;
  967.         }
  968.         mymessage();
  969.         ///AutoSaveGame();
  970.     if(MoneyCash > 99999 && MoneyCash <= 999999) {
  971.                 getPA().sendFrame126(""+MoneyCash/1000+"K", 8134);
  972.                 } else if(MoneyCash > 999999 && MoneyCash <= 2147483647) {
  973.                         getPA().sendFrame126(""+MoneyCash/1000000+"M", 8134);
  974.                 } else {
  975.                         getPA().sendFrame126(""+MoneyCash+"", 8134);
  976.                 }
  977.                getPA().sendFrame126(""+MoneyCash+"", 8135);
  978.        
  979.         synchronized (this) {
  980. Server.panel.addEntity(playerName);
  981.        
  982.  
  983.         sendMessage("Alert##Enjoy the Release of Project-E!");
  984.                 outStream.createFrame(249);
  985.             outStream.writeByteA(1);        // 1 for members, zero for free
  986.             outStream.writeWordBigEndianA(playerId);
  987.             for (int j = 0; j < Server.playerHandler.players.length; j++) {
  988.                 if (j == playerId)
  989.                     continue;
  990.                 if (Server.playerHandler.players[j] != null) {
  991.                     if (Server.playerHandler.players[j].playerName.equalsIgnoreCase(playerName))
  992.                         disconnected = true;
  993.                 }
  994.             }
  995. getPA().sendFrame126(""+ Config.SERVER_NAME +" Top 10", 6399);
  996. getPA().sendFrame126("Close Window", 6401);
  997.  getPA().sendFrame126(" ", 6402);
  998.  getPA().sendFrame126(" ", 6403);
  999.  getPA().sendFrame126(" ", 6404);
  1000.  
  1001. getPA().sendFrame126(" ", 6405);
  1002.  getPA().sendFrame126(""+ Config.SERVER_NAME +"", 640);
  1003.  getPA().sendFrame126(" ", 6406);
  1004.  getPA().sendFrame126(" ", 6407);
  1005.  getPA().sendFrame126(" ", 6408);
  1006.  getPA().sendFrame126(" ", 6409);
  1007.  getPA().sendFrame126(" ", 6410);
  1008.  getPA().sendFrame126(" ", 6411);
  1009.  getPA().sendFrame126(" ", 8578);
  1010.  getPA().sendFrame126(" ", 8579);
  1011.  getPA().sendFrame126(" ", 8580);
  1012.  getPA().sendFrame126(" ", 8581);
  1013.  getPA().sendFrame126(" ", 8582);
  1014.  getPA().sendFrame126(" ", 8583);
  1015.  getPA().sendFrame126(" ", 8584);
  1016.  getPA().sendFrame126(" ", 8585);
  1017.  getPA().sendFrame126(" ", 8586);
  1018.  getPA().sendFrame126(" ", 8587);
  1019.  getPA().sendFrame126(" ", 8588);
  1020.  getPA().sendFrame126(" ", 8589);
  1021.  getPA().sendFrame126(" ", 8590);
  1022.  getPA().sendFrame126(" ", 8591);
  1023.  getPA().sendFrame126(" ", 8592);
  1024.  getPA().sendFrame126(" ", 8593);
  1025.  getPA().sendFrame126(" ", 8594);
  1026.  getPA().sendFrame126(" ", 8595);
  1027.  getPA().sendFrame126(" ", 8596);
  1028.  getPA().sendFrame126(" ", 8597);
  1029.  getPA().sendFrame126(" ", 8598);
  1030.  getPA().sendFrame126(" ", 8599);
  1031.  getPA().sendFrame126(" ", 8600);
  1032.  getPA().sendFrame126(" ", 8601);
  1033.  getPA().sendFrame126(" ", 8602);
  1034.  getPA().sendFrame126(" ", 8603);
  1035.  getPA().sendFrame126(" ", 8604);
  1036.  getPA().sendFrame126(" ", 8605);
  1037.  getPA().sendFrame126(" ", 8606);
  1038.  getPA().sendFrame126(" ", 8607);
  1039.  getPA().sendFrame126(" ", 8608);
  1040.  getPA().sendFrame126(" ", 8609);
  1041.  getPA().sendFrame126(" ", 8610);
  1042.  getPA().sendFrame126(" ", 8611);
  1043.  getPA().sendFrame126(" ", 8612);
  1044.  getPA().sendFrame126(" ", 8613);
  1045.  getPA().sendFrame126(" ", 8614);
  1046.  getPA().sendFrame126(" ", 8615);
  1047.  getPA().sendFrame126(" ", 8616);
  1048.  getPA().sendFrame126(" ", 8617);
  1049.             for (int i = 0; i < 25; i++) {
  1050.                 getPA().setSkillLevel(i, playerLevel[i], playerXP[i]);
  1051.                 getPA().refreshSkill(i);
  1052.             }
  1053.             for(int p = 0; p < PRAYER.length; p++) { // reset prayer glows
  1054.                 prayerActive[p] = false;
  1055.                 getPA().sendFrame36(PRAYER_GLOW[p], 0);
  1056.             }
  1057.             for(int p = 0; p < CURSE.length; p++) { // reset prayer glows
  1058.                 curseActive[p] = false;
  1059.                 getPA().sendFrame36(CURSE_GLOW[p], 0); 
  1060.             }
  1061.                 getPA().sendCrashFrame();
  1062.             if (!finishedTut) {    
  1063.             getDH().sendDialogues(850, -1);
  1064.             }
  1065.             getPA().handleWeaponStyle();
  1066.             getPA().handleLoginText();
  1067.             accountFlagged = getPA().checkForFlags();
  1068.             //getPA().sendFrame36(43, fightMode-1);
  1069.                 getPA().sendFrame36(505, 0);
  1070.                 getPA().sendFrame36(506, 0);
  1071.                 getPA().sendFrame36(507, 0);
  1072.                 getPA().sendFrame36(508, 1);
  1073.                 getPA().sendFrame36(166,4);
  1074.             getPA().sendFrame36(108, 0);//resets autocast button
  1075.             getPA().sendFrame36(172, 1);
  1076.             getPA().sendFrame36(287, 1);
  1077.             getPA().sendFrame107(); // reset screen
  1078.                 getPA().setChatOptions(0, 0, 0); // reset private messaging options
  1079.             /**
  1080.             *Interfaces For Tabs Start Here.
  1081.             **/
  1082.             getPA().totallevelsupdate();
  1083.             if(playerMagicBook == 0) {
  1084.                 setSidebarInterface(6, 1151); //modern
  1085.             }
  1086.             if(playerMagicBook == 1){
  1087.                 setSidebarInterface(6, 12855); // ancient
  1088.             }
  1089.             if(playerMagicBook == 2){
  1090.                 setSidebarInterface(6, 16640);///MAGIC
  1091.             }
  1092.             if(altarPrayed == 0) {
  1093.             setSidebarInterface(5, 5608);///MAGIC
  1094.                 } else {
  1095.             setSidebarInterface(5, 22500); ///MAGIC
  1096.             }
  1097.             correctCoordinates();
  1098.             setSidebarInterface(0, 2423);///Combat
  1099.             setSidebarInterface(1, 7101);///Level Tab
  1100.             setSidebarInterface(2, 638);///Quest Options
  1101.             setSidebarInterface(3, 3213);///Inventory
  1102.             setSidebarInterface(4, 1644);///Equpitment
  1103.             setSidebarInterface(5, 5608);///Magic
  1104.             setSidebarInterface(7, 18128);///Clan Chat
  1105.             setSidebarInterface(8, 5065);///Friends List
  1106.         ///setSidebarInterface(15, 24500);///Game Options
  1107.             setSidebarInterface(9, 24500);///Ingore Tab / ///Game Options
  1108.             setSidebarInterface(10, 2449);///Logout Button
  1109.             setSidebarInterface(11, 904); ///wrench tab
  1110.             setSidebarInterface(12, 147); ///Emote TAB
  1111.             setSidebarInterface(13, 962); ///music tab 6299 for lowdetail. 962 for highdetail
  1112.             setSidebarInterface(14, 24999); ///Staff List.
  1113.         ///setSidebarInterface(14, 4445); ///Game Options with brightness.
  1114.         ///setSidebarInterface(15, 24500);///Game Options
  1115.         ///setSidebarInterface(15, 9583);///blank
  1116.             setSidebarInterface(15, 48700);//SOF TAB
  1117.             setSidebarInterface(16, 17011); ///summon
  1118.             /**
  1119.             *Interfaces for Tabs ends here.
  1120.             **/
  1121.             getPA().sendFrame126(""+Wheel+" ", 48508);
  1122.             getPA().sendFrame126("      "+playersPked+" ", 48512);
  1123.             getPA().sendFrame126("@gre@ "+playersPked+" ", 21886);
  1124.             getPA().sendFrame126("@gre@ 0", 23886);
  1125.                 clearQInterface();
  1126.     if(lastsummon > 0) {
  1127.                 Summoning().SummonNewNPC(lastsummon);
  1128.                 }
  1129. /*if(totalstored > 0) {
  1130.             Server.itemHandler.createGroundItem(storeditems[int storeditems], getX(), getY(), 1, getId());
  1131.             storeditems[int storeditems] = -1;
  1132.             }*/
  1133.             if(xpLock == true) {
  1134.             sendMessage("<shad=15695415>Your XP is </shad><col=255>locked</col>, <shad=15695415>Didnt mean to lock it? Unlick it under the Equipt Tab!</shad>");
  1135.             }
  1136.             if(inWarriorG() && heightLevel == 2) {
  1137.             getPA().movePlayer(2846, 3540, 2);
  1138.             }
  1139.             //MadTurnipConnection.addDonateItems(this,playerName);
  1140.             getPA().loadAnnouncements();
  1141.             getPA().showOption(4, 0,"Follow", 4);
  1142.             getPA().showOption(5, 0,"Trade With", 3);
  1143.             safeTimer = 0;
  1144.             getItems().resetItems(3214);
  1145.             getItems().sendWeapon(playerEquipment[playerWeapon], getItems().getItemName(playerEquipment[playerWeapon]));
  1146.             getItems().resetBonus();
  1147.             getItems().getBonus();
  1148.             getPA().sendFrame126("Combat Level: "+getCombatLevel()+"", 3983);
  1149.             getItems().writeBonus();
  1150.             getItems().setEquipment(playerEquipment[playerHat],1,playerHat);
  1151.             getItems().setEquipment(playerEquipment[playerCape],1,playerCape);
  1152.             getItems().setEquipment(playerEquipment[playerAmulet],1,playerAmulet);
  1153.             getItems().setEquipment(playerEquipment[playerArrows],playerEquipmentN[playerArrows],playerArrows);
  1154.             getItems().setEquipment(playerEquipment[playerChest],1,playerChest);
  1155.             getItems().setEquipment(playerEquipment[playerShield],1,playerShield);
  1156.             getItems().setEquipment(playerEquipment[playerLegs],1,playerLegs);
  1157.             getItems().setEquipment(playerEquipment[playerHands],1,playerHands);
  1158.             getItems().setEquipment(playerEquipment[playerFeet],1,playerFeet);
  1159.             getItems().setEquipment(playerEquipment[playerRing],1,playerRing);
  1160.             getItems().setEquipment(playerEquipment[playerWeapon],playerEquipmentN[playerWeapon],playerWeapon);
  1161.             getCombat().getPlayerAnimIndex(getItems().getItemName(playerEquipment[playerWeapon]).toLowerCase());
  1162.             getPA().logIntoPM();
  1163.             getItems().addSpecialBar(playerEquipment[playerWeapon]);
  1164.             saveTimer = Config.SAVE_TIMER;
  1165.             saveCharacter = true;
  1166.             Misc.println("[REGISTERED]: "+playerName+"  from IP: " +connectedFrom+ "");
  1167.             int size = playerListSize;
  1168.             handler.updatePlayer(this, outStream);
  1169.             handler.updateNPC(this, outStream);
  1170.             flushOutStream();
  1171.             getPA().clearClanChat();
  1172.             if (addStarter)
  1173.                 getPA().addStarter();
  1174.  
  1175.                     if(playerName.equalsIgnoreCase(""+ Config.OWNER +"")) {
  1176.     for (int j = 0; j < Server.playerHandler.players.length; j++) {
  1177.         if (Server.playerHandler.players[j] != null) {
  1178.             Client c2 = (Client)Server.playerHandler.players[j];
  1179.             getDH().sendDialogues(28, npcType);
  1180.             c2.sendMessage("<col=63487><shad=4980991><img=3> [Main-Owner] <img=3> "+ Config.OWNER +" has just logged in.");
  1181.         }
  1182.     }
  1183. }
  1184.     if(playerName.equalsIgnoreCase(""+ Config.CO_OWNER +"")) {
  1185.     for (int j = 0; j < Server.playerHandler.players.length; j++) {
  1186.         if (Server.playerHandler.players[j] != null) {
  1187.             Client c2 = (Client)Server.playerHandler.players[j];
  1188.             getDH().sendDialogues(28, npcType);
  1189.             c2.sendMessage("<col=16777215><shad=14024897><img=3> [Co-Owner] <img=3> "+ Config.CO_OWNER +" has just logged in.");
  1190.         }
  1191.     }
  1192. }
  1193.         if (playerRights == 0 && (npcKills >= 1000)) {
  1194.     for (int j = 0; j < Server.playerHandler.players.length; j++) {
  1195.         if (Server.playerHandler.players[j] != null) {
  1196.             Client c2 = (Client)Server.playerHandler.players[j];
  1197.             getDH().sendDialogues(28, npcType);
  1198.             c2.sendMessage("<shad=7534554>[Member] " +playerName+ " has just logged in.");
  1199.         }
  1200.     }
  1201. }
  1202.         if (playerRights == 0 && (npcKills <= 1000)) {
  1203.     for (int j = 0; j < Server.playerHandler.players.length; j++) {
  1204.         if (Server.playerHandler.players[j] != null) {
  1205.             getDH().sendDialogues(28, npcType);
  1206.         }
  1207.     }
  1208. }
  1209. if (playerRights == 1) {
  1210.     for (int j = 0; j < Server.playerHandler.players.length; j++) {
  1211.         if (Server.playerHandler.players[j] != null) {
  1212.             Client c2 = (Client)Server.playerHandler.players[j];
  1213.             getDH().sendDialogues(28, npcType);
  1214.             c2.sendMessage("<col=16777215><shad=58879><img=1> [Moderator] <img=1> " +playerName+ " has just logged in.");
  1215.         }
  1216.     }
  1217. }                  
  1218.         if (playerRights == 8) {
  1219. for (int j = 0; j < Server.playerHandler.players.length; j++) {
  1220.         if (Server.playerHandler.players[j] != null) {
  1221.             Client c2 = (Client)Server.playerHandler.players[j];
  1222.             getDH().sendDialogues(28, npcType);
  1223.             c2.sendMessage("<col=16515072><shad=16712669><img=8> [Graphics Team] <img=8> " +playerName+ " has just logged in.");
  1224.         }
  1225.     }
  1226. }
  1227. if (playerRights == 5) {
  1228. for (int j = 0; j < Server.playerHandler.players.length; j++) {
  1229.         if (Server.playerHandler.players[j] != null) {
  1230.             Client c2 = (Client)Server.playerHandler.players[j];
  1231.             getDH().sendDialogues(28, npcType);
  1232.             c2.sendMessage("<col=16777215><shad=16711705><img=5> [Administrator] <img=5> " +playerName+ " has just logged in.");
  1233.         }
  1234.     }
  1235. }
  1236.         if (playerRights == 4) {
  1237.     for (int j = 0; j < Server.playerHandler.players.length; j++) {
  1238.         if (Server.playerHandler.players[j] != null) {
  1239.             Client c2 = (Client)Server.playerHandler.players[j];
  1240.             getDH().sendDialogues(28, npcType);
  1241.             c2.sendMessage("<col=16515072><shad=5766915><img=4> [Donator] <img=4> " +playerName+ " has just logged in.");
  1242.         }
  1243.     }
  1244. }
  1245. if (playerRights == 6) {
  1246.     for (int j = 0; j < Server.playerHandler.players.length; j++) {
  1247.         if (Server.playerHandler.players[j] != null) {
  1248.             Client c2 = (Client)Server.playerHandler.players[j];
  1249.             getDH().sendDialogues(28, npcType);
  1250.             c2.sendMessage("<col=16515072><shad=262025><img=6> [Super Donator] <img=6> " +playerName+ " has just logged in.");
  1251.         }
  1252.     }
  1253. }
  1254. if (playerRights == 7) {
  1255.     for (int j = 0; j < Server.playerHandler.players.length; j++) {
  1256.         if (Server.playerHandler.players[j] != null) {
  1257.             Client c2 = (Client)Server.playerHandler.players[j];
  1258.             getDH().sendDialogues(28, npcType);
  1259.             c2.sendMessage("<col=16515072><shad=65297><img=7> [Extreme Donator] <img=7> " +playerName+ " has just logged in.");
  1260.         }
  1261.     }
  1262. }
  1263.  
  1264.     if (autoRet == 1)
  1265.                 getPA().sendFrame36(172, 1);
  1266.             else
  1267.                 getPA().sendFrame36(172, 0);
  1268.         }
  1269.         if (acceptAid) {
  1270.         acceptAid = false;
  1271.         getPA().sendFrame36(503, 0);
  1272.         getPA().sendFrame36(427, 0);
  1273.  
  1274.         } else
  1275.        
  1276.         acceptAid = true;
  1277.         getPA().sendFrame36(503, 1);
  1278.         getPA().sendFrame36(427, 1);
  1279.     }
  1280.    
  1281.  
  1282.  
  1283.     public void update() {
  1284.         synchronized (this) {
  1285.             handler.updatePlayer(this, outStream);
  1286.             handler.updateNPC(this, outStream);
  1287.             flushOutStream();
  1288.         }
  1289.     }
  1290.    
  1291.     public boolean wearingArmor() {
  1292.     if(playerEquipment[playerHat] > 0)
  1293.         return true;
  1294.     else if (playerEquipment[playerChest] > 0)
  1295.         return true;
  1296.     else if(playerEquipment[playerLegs] > 0)
  1297.         return true;
  1298.     else if(playerEquipment[playerFeet] > 0)
  1299.         return true;
  1300.     else if(playerEquipment[playerWeapon] > 0)
  1301.         return true;
  1302.     else if(playerEquipment[playerCape] > 0)
  1303.         return true;
  1304.     else if(playerEquipment[playerArrows] > 0)
  1305.         return true;
  1306.     else if(playerEquipment[playerAmulet] > 0)
  1307.         return true;
  1308.     else if(playerEquipment[playerHands] > 0)
  1309.         return true;
  1310.     else if(playerEquipment[playerShield] > 0)
  1311.         return true;
  1312.     else if(playerEquipment[playerRing] > 0)
  1313.         return true;
  1314.     else
  1315.         return false;
  1316. }
  1317.  
  1318.  
  1319.    
  1320.     public void logout() {
  1321.     pTime += System.currentTimeMillis() - recordLogin;
  1322.         synchronized (this) {
  1323.             if(System.currentTimeMillis() - logoutDelay > 10000) {
  1324.                 outStream.createFrame(109);
  1325.                 properLogout = true;
  1326.                 PlayerSave.saveGame(this);
  1327.             if (lastsummon > 0) {
  1328.                 for (int i = 0; i < Server.npcHandler.maxNPCs; i++) {
  1329.                     if (Server.npcHandler.npcs[i] != null) {
  1330.                         if (Server.npcHandler.npcs[i].summon == true) {
  1331.                             if (Server.npcHandler.npcs[i].spawnedBy == getId()) {
  1332.                                 Server.npcHandler.npcs[i].isDead = true;
  1333.                                 Server.npcHandler.npcs[i].applyDead = true;
  1334.                                 Server.npcHandler.npcs[i].summon = false;
  1335.                             }
  1336.                         }
  1337.                     }
  1338.                 }
  1339.             }
  1340.                 saveCharacter = true;
  1341.             } else {
  1342.                 sendMessage("You must wait a few seconds from being out of combat before you can do this.");
  1343.             }
  1344.         }
  1345.     }
  1346.     public void SaveGame() {
  1347.         synchronized (this) {
  1348.                 PlayerSave.saveGame(this);
  1349.         }
  1350.     }
  1351.     public int packetSize = 0, packetType = -1;
  1352.     public long saveGameDelay;
  1353.  
  1354. public long appendPlayTime(){
  1355.         return (System.currentTimeMillis() - recordLogin) + pTime;
  1356.     }
  1357.     public long totalPlaytime(){
  1358.         return (appendPlayTime() / 1000);
  1359.     }
  1360. public String getPlaytime(){
  1361.             long DAY = (totalPlaytime() / 86400);
  1362.             long HR = (totalPlaytime() / 3600) - (DAY * 24);
  1363.             long MIN = (totalPlaytime() / 60) - (DAY * 1440) - (HR * 60);
  1364.             return ("@gre@Days:@cya@"+DAY+" @gre@Hours:@cya@"+HR+" @gre@Minutes:@cya@"+MIN+"");
  1365.         }
  1366. public String getSmallPlaytime(){
  1367.             long DAY = (totalPlaytime() / 86400);
  1368.             long HR = (totalPlaytime() / 3600) - (DAY * 24);
  1369.             long MIN = (totalPlaytime() / 60) - (DAY * 1440) - (HR * 60);
  1370.             long SEC = totalPlaytime() - (DAY * 86400) - (HR * 3600) - (MIN * 60);
  1371.             return ("Day:"+DAY+"/Hr:"+HR+"/Min:"+MIN+"/Sec:"+SEC);
  1372.         }
  1373.        
  1374.     public void process() {
  1375.    
  1376.     /**applyFollowing();
  1377.  
  1378. if(followId > 0) {
  1379.  
  1380. getPA().followPlayer();
  1381.  
  1382. } else if (followId2 > 0) {
  1383.  
  1384. getPA().followNpc();
  1385.  
  1386. }*/
  1387.  int totalz = (getLevelForXP(playerXP[0]) + getLevelForXP(playerXP[1]) + getLevelForXP(playerXP[2]) + getLevelForXP(playerXP[3]) + getLevelForXP(playerXP[4]) + getLevelForXP(playerXP[5]) + getLevelForXP(playerXP[6]) + getLevelForXP(playerXP[7]) + getLevelForXP(playerXP[8]) + getLevelForXP(playerXP[9]) + getLevelForXP(playerXP[10]) + getLevelForXP(playerXP[11]) + getLevelForXP(playerXP[12]) + getLevelForXP(playerXP[13]) + getLevelForXP(playerXP[14]) + getLevelForXP(playerXP[15]) + getLevelForXP(playerXP[16]) + getLevelForXP(playerXP[17]) + getLevelForXP(playerXP[18]) + getLevelForXP(playerXP[19]) + getLevelForXP(playerXP[20]));;
  1388. for (int d = 0; d <= 10; d++) {
  1389. if (totalz >= ranks[d]) {
  1390. if (d == 0) {
  1391. if (d == 0) {
  1392. playerRank = d+1;
  1393. ranks[d] = totalz;
  1394. rankPpl[d] = playerName;
  1395. }else if (d < 10){
  1396. if (totalz < ranks[d-1]) {
  1397. playerRank = d+1;
  1398. ranks[d] = totalz;
  1399. rankPpl[d] = playerName;
  1400. }
  1401. }else{
  1402. if (totalz < ranks[d-1]) {
  1403. playerRank = 0;
  1404. }
  1405. }
  1406. }
  1407. }
  1408. }
  1409.  
  1410.        
  1411.     if(dungRest > 0) {
  1412.             dungRest --;
  1413.         }
  1414.     if(lastRefresh == 0 || (System.currentTimeMillis() - lastRefresh >= 60000)){
  1415.         lastRefresh = System.currentTimeMillis();
  1416.         getPA().sendFrame126("Time Played", 663);
  1417.     }
  1418.     getPA().sendFrame126(""+dungPoints+"", 18071);
  1419.     FetchDice();
  1420.     for (int d = 0; d <= 10; d++) {
  1421.         if (totalz >= ranks[d]) {
  1422.             if (d == 0) {
  1423.             if (d == 0) {
  1424.                 playerRank = d+1;
  1425.                 ranks[d] = totalz;
  1426.                 rankPpl[d] = playerName;
  1427.             }else if (d < 10){
  1428.                 if (totalz < ranks[d-1]) {
  1429.                     playerRank = d+1;
  1430.                     ranks[d] = totalz;
  1431.                     rankPpl[d] = playerName;
  1432.                 }
  1433.             }else{
  1434.                 if (totalz < ranks[d-1]) {
  1435.                     playerRank = 0;
  1436.                 }
  1437.             }
  1438.         }
  1439.     }
  1440. }
  1441.        
  1442.    
  1443.     if(inWild()) {
  1444.                         safeTimer = 10;
  1445.                 }
  1446.                  if(safeTimer > 0 && !inWild()) {
  1447.                        safeTimer--;
  1448.                 }
  1449. /**
  1450.             *Staff Tab
  1451.             **/
  1452.             ///getPA().sendFrame126(""+Config.OWNER+"", 28000);
  1453.             ///getPA().sendFrame126("@Gre@World 1", 28001);
  1454.             getPA().sendFrame126("@gre@Staff Title", 17228);
  1455.             getPA().sendFrame126("M-Owner", 17229);
  1456.             getPA().sendFrame126("[Main]", 17230);
  1457.             getPA().sendFrame126("C-Owner", 17231);
  1458.             getPA().sendFrame126("[Co]", 17232);
  1459.             getPA().sendFrame126("H-Admin", 17233);
  1460.             getPA().sendFrame126("[Head-A]", 17234);
  1461.             getPA().sendFrame126("Admin", 17235);
  1462.             getPA().sendFrame126("[Admin]", 17236);
  1463.             getPA().sendFrame126("H-Mod", 17237);
  1464.             getPA().sendFrame126("[Head-M]", 17238);
  1465.             getPA().sendFrame126("Mod", 17239);
  1466.             getPA().sendFrame126("[Mod]", 17240);
  1467.             getPA().sendFrame126("Donator", 17241);
  1468.             getPA().sendFrame126("[Donator]", 17242);
  1469.             getPA().sendFrame126("Graphics", 17243);
  1470.             getPA().sendFrame126("[G-Team]", 17244);
  1471.             /**
  1472.             *Achievement Tab
  1473.             **/
  1474.             getPA().sendFrame126("@or1@"+Config.SERVER_NAME+" Staff:", 29295);
  1475.             getPA().sendFrame126("@whi@Main Owner: @gre@"+ Config.OWNER +"", 29296);
  1476.             getPA().sendFrame126("@whi@Co Owner: @gre@"+ Config.CO_OWNER +"", 29297);
  1477.             getPA().sendFrame126("@whi@Head Admin: @gre@"+ Config.HEAD_ADMIN +"", 29298);
  1478.             getPA().sendFrame126("@whi@Admin: @gre@"+ Config.ADMIN +"", 29299);
  1479.             getPA().sendFrame126("@whi@Head Mod: @gre@"+ Config.HEAD_MOD +"", 29300);
  1480.             getPA().sendFrame126("@whi@Mod 1: @gre@ "+ Config.MOD1 +"", 29301);
  1481.             getPA().sendFrame126("@whi@Mod 2: @gre@"+ Config.MOD2 +"", 29302);
  1482.             getPA().sendFrame126("@whi@Mod 3: @gre@ "+ Config.MOD3 +"", 29303);
  1483.             getPA().sendFrame126("@whi@Mod 4: @gre@ "+ Config.MOD4 +"", 29304);
  1484.             getPA().sendFrame126("@whi@Graphics Team: @gre@"+ Config.GRAPHICS_TEAM +"", 29305);
  1485.             getPA().sendFrame126("@gre@--------------------------------------", 29306);
  1486.             getPA().sendFrame126("@or1@Donaotr Options:", 29307);
  1487.              if (isDonator >= 1)
  1488.              getPA().sendFrame126("@gre@Donator Chest Points: @cya@ " +donatorChest+ " ", 29308);
  1489.              if (isDonator >= 1)
  1490.              getPA().sendFrame126("@gre@Spins Left: @cya@"+Wheel+" ", 29309);
  1491.              if (isDonator >= 1)
  1492.              getPA().sendFrame126("@gre@Donator Points: @cya@ " +donorPoints+ " ", 29310);
  1493.              if (isDonator >= 1)
  1494.              getPA().sendFrame126("@gre@Refil your Special Attack", 29311);
  1495.               if (isDonator >= 1)
  1496.              getPA().sendFrame126("Donator Player Title", 29312);
  1497.             /**
  1498.             *Queat Tab Starts Here
  1499.             **/
  1500.             getPA().sendFrame126("@gre@"+ Config.SERVER_NAME +": @whi@" + PlayerHandler.getPlayerCount() + " @Cya@Online", 29155);
  1501.             getPA().sendFrame126("@cya@"+ Config.FORUMS +"", 29164);
  1502.             getPA().sendFrame126("" + getPlaytime() + "", 29165);
  1503.             ///Staff List Ends Here
  1504.             getPA().sendFrame126("@gre@--------------------------------------", 29166);
  1505.             getPA().sendFrame126("@or1@Project-E Options:", 29167);
  1506.             getPA().sendFrame126("@gre@Level Points: @cya@ " + lvlPoints + "", 29168);
  1507.             getPA().sendFrame126("@gre@Vote Points: @cya@"+votePoints+"", 29169);
  1508.             getPA().sendFrame126("@gre@Zombie Points: @cya@ " +pfPoints+" ", 29170);
  1509.             getPA().sendFrame126("@gre@Dung Points: @cya@" +dungPoints+" ", 29171);
  1510.             getPA().sendFrame126("@gre@Pk Points: @cya@"+pkPoints+"  ", 29172);
  1511.             getPA().sendFrame126("@gre@You voted @cya@" + voteAmount + " @gre@times", 29173);
  1512.             getPA().sendFrame126("@gre@KillStreak: @cya@" + killStreak + " ", 29174);
  1513.             getPA().sendFrame126("@gre@You killed @cya@" + npcKills + " @gre@Npcs", 29175);
  1514.             getPA().sendFrame126("@gre@---------------------------------------", 29176);
  1515.             getPA().sendFrame126("@or1@Player Options:", 29177);
  1516.             getPA().sendFrame126("@cya@Playername: @whi@"+ Misc.optimizeText(playerName) +" " , 29178);
  1517.             if (playerName.equalsIgnoreCase("poopskootlew"))
  1518.             getPA().sendFrame126("@cya@Rank: @whi@Server Dicer", 29179);
  1519.             else if (playerName.equalsIgnoreCase("Gimpy"))
  1520.             getPA().sendFrame126("@cya@Rank: @whi@Main-Owner", 29179);
  1521.             else if (playerRights == 4)
  1522.             getPA().sendFrame126("@cya@Rank: @whi@Donator", 29179);
  1523.             else if (playerRights == 3)
  1524.             getPA().sendFrame126("@cya@Rank: @whi@Owner", 29179);
  1525.             else if (playerRights == 5)
  1526.             getPA().sendFrame126("@cya@Rank: @whi@Admin", 29179);
  1527.             else if (playerRights == 1)
  1528.             getPA().sendFrame126("@cya@Rank: @whi@Mod", 29179);
  1529.             else if (playerRights == 0)
  1530.             getPA().sendFrame126("@cya@Rank: @whi@Player", 29179);
  1531.             getPA().sendFrame126("@cya@Save Game ", 29180);
  1532.             getPA().sendFrame126("@cya@Items kept on death ", 29181);
  1533.             getPA().sendFrame126("@cya@Combat Level: @whi@" +combatLevel+ " ", 29182);
  1534.             if (npcKills >= 1000)
  1535.             getPA().sendFrame126("@whi@[Member]Members Title", 29183);
  1536.             getPA().sendFrame126("", 29184);
  1537.             getPA().sendFrame126("@cya@Player Kills: @whi@" +playersPked+" ", 29185);
  1538.             getPA().sendFrame126("@cya@Player Deaths: @whi@" +amountDied+"", 29186);
  1539.             getPA().sendFrame126("@cya@Exp Lock Status: @whi@"+xpLock+" ", 29187);
  1540.             getPA().sendFrame126("@or1@-----------------------------------------------", 29188);
  1541.             getPA().sendFrame126("@gre@Slayer Options:", 29189);
  1542.             getPA().sendFrame126("@gre@Slayer Points: @cya@" + SPoints + "", 29190);
  1543.             getPA().sendFrame126("@gre@Slayer Task: @cya@"+Server.npcHandler.getNpcListName(slayerTask)+" ", 29191);
  1544.             getPA().sendFrame126("    @cya@ Amount: @cya@"+taskAmount+" ", 29192);
  1545.             /**
  1546.             *Quest Tab Options End Here
  1547.             **/
  1548.             ///c.getDH().sendDialogues(28, npcType);
  1549.             getPA().sendFrame126("   Welcome To Project-E", 15257);
  1550.             getPA().sendFrame126("@bla@You last logged in from Ip: @red@" +connectedFrom+ " @bla@Withe the username: @red@"+playerName+"", 15258);     
  1551.             getPA().sendFrame126("Vote4cash comming soon", 15259);
  1552.             getPA().sendFrame126("@gre@ Type ::forums and register!", 15260);
  1553.             getPA().sendFrame126("@gre@Staff will @red@NEVER @gre@ask for your Password.", 15261);
  1554.             if (npcKills >= 1000)
  1555.             getPA().sendFrame126("Player Status: @cya@ Member", 15262);
  1556.             if (npcKills <= 999)
  1557.             getPA().sendFrame126("Player Status: @cya@ Guest", 15262);
  1558.             getPA().sendFrame126("CLICK HERE TO PLAY", 15263);
  1559.             getPA().sendFrame126("Character Username: @gre@"+playerName+" @Gre@[@red@"+combatLevel+"@gre@] Level.", 15270);
  1560.            
  1561.             getPA().sendFrame126("@gre@KC: ", 11005);
  1562.             getPA().sendFrame126("@red@DC: ", 11006);
  1563.             getPA().sendFrame126("@yel@Level: ", 11007);
  1564.             getPA().sendFrame126("@gre@"+playersPked+"", 11008);
  1565.             getPA().sendFrame126("@red@"+amountDied+"", 11009);
  1566.             /**
  1567.             *Option Tab Options Starts Here
  1568.             **/
  1569.             /**getPA().sendFrame126("Project-Elysian", 29266);
  1570.             getPA().sendFrame126("Project-E Staff List:", 29295);
  1571.             getPA().sendFrame126("Main Owner: "+ Config.OWNER +"", 29296);
  1572.             getPA().sendFrame126("Co-Owner: "+ Config.CO_OWNER +"", 29297);
  1573.             getPA().sendFrame126("Admin: "+ Config.ADMIN +"", 29298);
  1574.             getPA().sendFrame126("Head Mod: "+ Config.HEAD_MOD +"", 29299);
  1575.             getPA().sendFrame126("Mod: "+ Config.MOD +"", 29300);
  1576.             getPA().sendFrame126("Project-E Points:", 29302);
  1577.             getPA().sendFrame126("@cya@Donator Points: @blu@ " +donorPoints+ " ", 29303);
  1578.             getPA().sendFrame126("@whi@Spins Left: @cya@"+Wheel+" ", 29304);
  1579.             getPA().sendFrame126("@whi@Level Points: @cya@ " + lvlPoints + " ", 29305);
  1580.             getPA().sendFrame126("@cya@PFPoints: @blu@ " +pfPoints+" ", 29306);
  1581.             getPA().sendFrame126("@cya@Dung Points: @blu@" +dungPoints+" ", 29307);
  1582.             getPA().sendFrame126("@cya@"+ Config.SERVER_NAME +" points: @blu@"+pkPoints+"  ", 29308);
  1583.             getPA().sendFrame126("@whi@KillStreak: @cya@" + killStreak + " ", 29309);
  1584.             /**
  1585.             *Option Tab Options End Here
  1586.             **/
  1587.            
  1588.             /**Client all = (Client)Server.playerHandler.players[i];
  1589.             if (killStreak == 2) {
  1590.                     getItems().addItem(995,2000000);   
  1591.                     }*/
  1592.             if (getItems().updateInventory)
  1593.             getItems().updateInventory();
  1594.  
  1595.             if (SpeDelay > 0) {
  1596.             startAnimation(3170);//if loading 602 (3170)
  1597.             dealDamage(10);
  1598.             handleHitMask(10);
  1599.             SpeDelay -= 1;
  1600.             getPA().refreshSkill(3);   
  1601.         }
  1602.        
  1603.        
  1604.  
  1605.         if(trade11 > 0) {
  1606.             trade11--;
  1607.         }
  1608.                 if(vestaDelay > 0) {
  1609.                    vestaDelay--;
  1610.                 }
  1611.         if(gwdelay > 0) {
  1612.             gwdelay--;
  1613.         }
  1614.         if(summonSpec > 0) {
  1615.             summonSpec--;
  1616.         }
  1617.         if(clawDelay > 0) {
  1618.             clawDelay--;
  1619.         }
  1620.         if(clawDelay == 1) {
  1621.             delayedDamage = clawDamage/4;
  1622.             delayedDamage2 = (clawDamage/4)+1;
  1623.             if(clawType == 2) {
  1624.                 getCombat().applyNpcMeleeDamage(clawIndex, 1, clawDamage/4);
  1625.             }
  1626.             if(clawType == 1) {
  1627.                 getCombat().applyPlayerMeleeDamage(clawIndex, 1, clawDamage/4);
  1628.             }
  1629.             if(clawType == 2) {
  1630.                 getCombat().applyNpcMeleeDamage(clawIndex, 2, (clawDamage/4) + 1);
  1631.             }
  1632.             if(clawType == 1) {
  1633.                 getCombat().applyPlayerMeleeDamage(clawIndex, 2, (clawDamage/4) + 1);
  1634.             }
  1635.             clawDelay = 0;
  1636.             specEffect = 0;
  1637.             previousDamage = 0;
  1638.             usingClaws = false;
  1639.             clawType = 0;
  1640.         }
  1641.  
  1642.         //Timer for the wuddi cutti.
  1643.           if (wcTimer > 0) {
  1644.             wcTimer--;
  1645.         } else if (wcTimer == 0 && woodcut[0] > 0) {
  1646.             getWoodcutting().cutWood();
  1647.         } else if (miningTimer > 0 && mining[0] > 0) {
  1648.             miningTimer--;
  1649.         } else if (miningTimer == 0 && mining[0] > 0) {
  1650.             getMining().mineOre();
  1651.         } else  if (smeltTimer > 0 && smeltType > 0) {
  1652.             smeltTimer--;
  1653.         } else if (smeltTimer == 0 && smeltType > 0) {
  1654.             getSmithing().smelt(smeltType);
  1655.             getSmithing().smelt(smeltType);
  1656.         }
  1657.  
  1658.  
  1659.         if(System.currentTimeMillis() - saveGameDelay > Config.SAVE_TIMER && !disconnected) {
  1660.             saveCharacter = true;
  1661.             saveGameDelay = System.currentTimeMillis();
  1662.         }
  1663.    
  1664.        
  1665.         if (System.currentTimeMillis() - lastPoison > 20000 && poisonDamage > 0) {
  1666.             int damage = poisonDamage/2;
  1667.             if (damage > 0) {
  1668.                 if (!getHitUpdateRequired()) {
  1669.                     setHitUpdateRequired(true);
  1670.                     setHitDiff(damage);
  1671.                     updateRequired = true;
  1672.                     poisonMask = 1;
  1673.                 } else if (!getHitUpdateRequired2()) {
  1674.                     setHitUpdateRequired2(true);
  1675.                     setHitDiff2(damage);
  1676.                     updateRequired = true;
  1677.                     poisonMask = 2;
  1678.                 }
  1679.                 lastPoison = System.currentTimeMillis();
  1680.                 poisonDamage--;
  1681.                 dealDamage(damage);
  1682.             } else {
  1683.                 poisonDamage = -1;
  1684.                 sendMessage("You are no longer poisoned.");
  1685.             }  
  1686.         }
  1687.  
  1688.        
  1689.        
  1690.         if(System.currentTimeMillis() - duelDelay > 800 && duelCount > 0) {
  1691.             if(duelCount != 1) {
  1692.                 forcedChat(""+(--duelCount));
  1693.                 duelDelay = System.currentTimeMillis();
  1694.             } else {
  1695.                 damageTaken = new int[Config.MAX_PLAYERS];
  1696.                 forcedChat("FIGHT!");
  1697.                 duelCount = 0;
  1698.             }
  1699.         }
  1700.    
  1701.         if(System.currentTimeMillis() - specDelay > Config.INCREASE_SPECIAL_AMOUNT_WITH_RING && playerEquipment[playerRing] == 19669) {
  1702.             specDelay = System.currentTimeMillis();
  1703.                 if(specAmount < 10) {
  1704.                     specAmount += .5;
  1705.                 if (specAmount > 10)
  1706.                     specAmount = 10;
  1707.                 getItems().addSpecialBar(playerEquipment[playerWeapon]);
  1708.             }
  1709.         } else if(System.currentTimeMillis() - specDelay > Config.INCREASE_SPECIAL_AMOUNT) {
  1710.             specDelay = System.currentTimeMillis();
  1711.                 if(specAmount < 10) {
  1712.                     specAmount += .5;
  1713.                 if (specAmount > 10)
  1714.                     specAmount = 10;
  1715.                 getItems().addSpecialBar(playerEquipment[playerWeapon]);
  1716.             }
  1717.         }
  1718.        
  1719.         if(clickObjectType > 0 && goodDistance(objectX + objectXOffset, objectY + objectYOffset, getX(), getY(), objectDistance)) {
  1720.             if(clickObjectType == 1) {
  1721.                 getActions().firstClickObject(objectId, objectX, objectY);
  1722.             }
  1723.             if(clickObjectType == 2) {
  1724.                 getActions().secondClickObject(objectId, objectX, objectY);
  1725.             }
  1726.             if(clickObjectType == 3) {
  1727.                 getActions().thirdClickObject(objectId, objectX, objectY);
  1728.             }
  1729.         }
  1730.        
  1731.         if((clickNpcType > 0) && Server.npcHandler.npcs[npcClickIndex] != null) {          
  1732.             if(goodDistance(getX(), getY(), Server.npcHandler.npcs[npcClickIndex].getX(), Server.npcHandler.npcs[npcClickIndex].getY(), 1)) {
  1733.                 if(clickNpcType == 1) {
  1734.                     turnPlayerTo(Server.npcHandler.npcs[npcClickIndex].getX(), Server.npcHandler.npcs[npcClickIndex].getY());
  1735.                     Server.npcHandler.npcs[npcClickIndex].facePlayer(playerId);
  1736.                     getActions().firstClickNpc(npcType);
  1737.                 }
  1738.                 if(clickNpcType == 2) {
  1739.                     turnPlayerTo(Server.npcHandler.npcs[npcClickIndex].getX(), Server.npcHandler.npcs[npcClickIndex].getY());
  1740.                     Server.npcHandler.npcs[npcClickIndex].facePlayer(playerId);
  1741.                     getActions().secondClickNpc(npcType);
  1742.                 }
  1743.                 if(clickNpcType == 3) {
  1744.                     turnPlayerTo(Server.npcHandler.npcs[npcClickIndex].getX(), Server.npcHandler.npcs[npcClickIndex].getY());
  1745.                     Server.npcHandler.npcs[npcClickIndex].facePlayer(playerId);
  1746.                     getActions().thirdClickNpc(npcType);
  1747.                 }
  1748.             }
  1749.         }
  1750.        
  1751.         if(walkingToItem) {
  1752.             if(getX() == pItemX && getY() == pItemY || goodDistance(getX(), getY(), pItemX, pItemY,1)) {
  1753.                 walkingToItem = false;
  1754.                 Server.itemHandler.removeGroundItem(this, pItemId, pItemX, pItemY, true);
  1755.             }
  1756.         }
  1757.        
  1758.         if(followId > 0) {
  1759.             getPA().followPlayer(playerIndex);
  1760.         } else if (followId2 > 0) {
  1761.             getPA().followNpc();
  1762.         }
  1763.         getFishing().FishingProcess();
  1764.         if (easyMode || mediumMode)
  1765.         getCombat().handlePrayerDrain();
  1766.        
  1767.         if(System.currentTimeMillis() - singleCombatDelay >  3300) {
  1768.             underAttackBy = 0;
  1769.         }
  1770.         if (System.currentTimeMillis() - singleCombatDelay2 > 3300) {
  1771.             underAttackBy2 = 0;
  1772.         }
  1773.        
  1774.     if(System.currentTimeMillis() - restoreStatsDelay > 60000) {
  1775.     restoreStatsDelay = System.currentTimeMillis();
  1776.     for (int level = 0; level < playerLevel.length; level++) {
  1777.         if (playerLevel[level] < getLevelForXP(playerXP[level])) {
  1778.             if(level != 5 && level != 3) { // prayer doesn't restore
  1779.                 playerLevel[level] += 1;
  1780.                 getPA().setSkillLevel(level, playerLevel[level], playerXP[level]);
  1781.                 getPA().refreshSkill(level);
  1782.             }
  1783.         } else if (playerLevel[level] > getLevelForXP(playerXP[level])) {
  1784.             if(level != 5 && level != 3) { // prayer doesn't restore
  1785.                 playerLevel[level] -= 1;
  1786.                 getPA().setSkillLevel(level, playerLevel[level], playerXP[level]);
  1787.                 getPA().refreshSkill(level);
  1788.             }
  1789.         }
  1790.     }
  1791.     if (playerLevel[3] > calculateMaxLifePoints()) {
  1792.         playerLevel[3] -= 1;
  1793.         getPA().setSkillLevel(3, playerLevel[3], playerXP[3]);
  1794.         getPA().refreshSkill(3);
  1795.     } else if (playerLevel[3] < calculateMaxLifePoints()) {
  1796.         playerLevel[3] += 1;
  1797.         getPA().setSkillLevel(3, playerLevel[3], playerXP[3]);
  1798.         getPA().refreshSkill(3);
  1799.     }
  1800. }
  1801.  
  1802.         if(System.currentTimeMillis() - teleGrabDelay >  1550 && usingMagic) {
  1803.             usingMagic = false;
  1804.             if(Server.itemHandler.itemExists(teleGrabItem, teleGrabX, teleGrabY)) {
  1805.                 Server.itemHandler.removeGroundItem(this, teleGrabItem, teleGrabX, teleGrabY, true);
  1806.             }
  1807.         }
  1808.         if(inWild() && !isInPbox() && !isInArd() && !isInFala() && !inFunPk()) {
  1809.             int modY = absY > 6400 ?  absY - 6400 : absY;
  1810.             wildLevel = (((modY - 3520) / 8) + 1);
  1811.             EarningPotential.checkPotential(this);
  1812.             getPA().walkableInterface(11021);
  1813.             if(Config.SINGLE_AND_MULTI_ZONES) {
  1814.                 if(inMulti()) {
  1815.                     getPA().sendFrame126("@yel@"+wildLevel, 11010);
  1816.                 } else {
  1817.                     getPA().sendFrame126("@yel@"+wildLevel, 11010);
  1818.                 }
  1819.             } else {
  1820.                 getPA().multiWay(-1);
  1821.                 getPA().sendFrame126("@yal@"+wildLevel, 11010);
  1822.             }
  1823.             getPA().showOption(3, 0, "Attack", 1);
  1824.             } else if (!inWild() && !inDuelArena() && safeTimer <= 0 && !inGWD() && !inPcBoat() && !inPcGame()){ //this makes it so attack option is visible on wild and challenge in duel =)
  1825.         getPA().showOption(3, 0, "@or1@Browse Goods", 1);
  1826. getPA().walkableInterface(-1);
  1827.         } else if (!inWild() && safeTimer > 0){
  1828.             getPA().walkableInterface(11021);
  1829.             wildLevel = (60);
  1830.             getPA().showOption(3, 0, "Attack", 1);
  1831.             getPA().sendFrame126("@or1@"+safeTimer, 11010);
  1832.             getPA().sendFrame126("@gre@SafeZone", 11007);
  1833. } else if(safeZone()) {
  1834.             getPA().walkableInterface(11021);
  1835.             getPA().sendFrame126("@gre@SafeZone", 11010);
  1836. } else if(inPcBoat()) {
  1837.     getPA().walkableInterface(21005);
  1838. } else if(!inWild() && !inPcBoat() && !inPcGame() && snowOn == 0) {
  1839.                 getPA().walkableInterface(11021);
  1840. } else if(inFunPk()) {
  1841.                         getPA().walkableInterface(11021);
  1842.                         getPA().sendFrame126("@gre@FunPk", 11010);
  1843.                         getPA().showOption(3, 0, "Attack", 1);
  1844.                         wildLevel = 55;
  1845. } else if(inPcGame()) {
  1846.     getPA().walkableInterface(21100);
  1847.         } else if (inDuelArena()) {
  1848.             getPA().walkableInterface(11021);
  1849.             getPA().sendFrame126("@gre@Duel Arena", 11010);
  1850.             if(duelStatus == 5) {
  1851.                 getPA().showOption(3, 0, "Attack", 1);
  1852.                 getPA().sendFrame126("@gre@Duel Arena", 11010);
  1853.             } else {
  1854.                 getPA().showOption(3, 0, "Challenge", 1);
  1855.                 getPA().sendFrame126("@gre@Duel Arena", 11010);
  1856.             }
  1857. /**} else if (nHome()) {
  1858. getPA().walkableInterface(11021);
  1859. */
  1860. } else if (inFunPk()) {
  1861.             getPA().walkableInterface(11021);
  1862.             getPA().sendFrame126("@gre@FunPk", 11010);
  1863.             getPA().showOption(3, 0, "Attack", 1);
  1864.  
  1865.          getPA().showOption(3, 0, "Attack", 1);
  1866.         } else if(inBarrows()){
  1867.             getPA().sendFrame99(2);
  1868.             getPA().sendFrame126("Kill Count: "+barrowsKillCount, 4536);
  1869.             getPA().walkableInterface(4535);
  1870.  
  1871.         } else if (InDung()){
  1872.                 getPA().sendFrame126("@gre@Dungeoneering", 11010);
  1873.                
  1874.         } else if(inGWD()){
  1875.                 getPA().GWKC();
  1876.  
  1877.  
  1878.         } else if(safeZone()){
  1879.             getPA().walkableInterface(11021);
  1880.             getPA().showOption(3, 0, "Attack", 1);
  1881.             if(Config.SINGLE_AND_MULTI_ZONES) {
  1882.                 if(inMulti()) {
  1883.                     getPA().sendFrame126("@gre@SafeZone", 11010);
  1884.                 } else {
  1885.                     getPA().sendFrame126("@gre@SafeZone", 11010);
  1886.                 }
  1887.             } else {
  1888.                 getPA().multiWay(-1);
  1889.                     getPA().sendFrame126("@gre@SafeZone", 11010);
  1890.                         }
  1891.        
  1892.  
  1893.         } else if(isInFala()){
  1894.             int modY = absY > 6400 ?  absY - 6400 : absY;
  1895.             wildLevel = 12;
  1896.             getPA().walkableInterface(11021);
  1897.             getPA().showOption(3, 0, "Attack", 1);
  1898.             if(Config.SINGLE_AND_MULTI_ZONES) {
  1899.                 if(inMulti()) {
  1900.                 HighAndLow();
  1901.                     } else {
  1902.                     HighAndLow();
  1903.                 }
  1904.                 }
  1905.         } else if(isInPbox()){
  1906.             int modY = absY > 6400 ?  absY - 6400 : absY;
  1907.             wildLevel = 12;
  1908.             getPA().walkableInterface(11021);
  1909.             getPA().showOption(3, 0, "Attack", 1);
  1910.             if(Config.SINGLE_AND_MULTI_ZONES) {
  1911.                 if(inMulti()) {
  1912.                 HighAndLow();
  1913.                     } else {
  1914.                     HighAndLow();
  1915.                 }
  1916.                 }
  1917.         } else if(isInArd()){
  1918.             int modY = absY > 6400 ?  absY - 6400 : absY;
  1919.             wildLevel = 12;
  1920.             getPA().walkableInterface(11021);
  1921.             getPA().showOption(3, 0, "Attack", 1);
  1922.             if(Config.SINGLE_AND_MULTI_ZONES) {
  1923.                 if(inMulti()) {
  1924.                 HighAndLow();
  1925.                     } else {
  1926.                     HighAndLow();
  1927.                 }
  1928.             } else {
  1929.                 getPA().multiWay(-1);
  1930.             HighAndLow();}
  1931.             getPA().showOption(3, 0, "Attack", 1);
  1932.         } else if (inCwGame || inPits) {
  1933.             getPA().showOption(3, 0, "Attack", 1);     
  1934.         } else if (getPA().inPitsWait()) {
  1935.             getPA().showOption(3, 0, "Loading...", 1);
  1936.         }else if (!inCwWait) {
  1937.             getPA().sendFrame99(0);
  1938.             getPA().walkableInterface(-1);
  1939.             getPA().showOption(3, 0, "Loading...", 1);
  1940.         }
  1941.        
  1942.         if(!hasMultiSign && inMulti()) {
  1943.             hasMultiSign = true;
  1944.             getPA().multiWay(1);
  1945.         }
  1946.        
  1947.         if(hasMultiSign && !inMulti()) {
  1948.             hasMultiSign = false;
  1949.             getPA().multiWay(-1);
  1950.         }
  1951.  
  1952.         if(skullTimer > 0) {
  1953.             skullTimer--;
  1954.             if(skullTimer == 1) {
  1955.                 isSkulled = false;
  1956.                 attackedPlayers.clear();
  1957.                 headIconPk = -1;
  1958.                 skullTimer = -1;
  1959.                 getPA().requestUpdates();
  1960.             }  
  1961.         }
  1962.        
  1963.         if(isDead && respawnTimer == -6) {
  1964.             getPA().applyDead();
  1965.         }
  1966.         if(specRestore > 0) {
  1967.                         specRestore --;
  1968.                 }
  1969.  
  1970.        
  1971.         if(respawnTimer == 7) {
  1972.             respawnTimer = -6;
  1973.             getPA().giveLife();
  1974.         } else if(respawnTimer == 12) {
  1975.             respawnTimer--;
  1976.             startAnimation(836);
  1977.             poisonDamage = -1;
  1978.         }  
  1979.        
  1980.         if(respawnTimer > -6) {
  1981.             respawnTimer--;
  1982.         }
  1983.         if(freezeTimer > -6) {
  1984.             freezeTimer--;
  1985.             if (frozenBy > 0) {
  1986.                 if (Server.playerHandler.players[frozenBy] == null) {
  1987.                     freezeTimer = -1;
  1988.                     frozenBy = -1;
  1989.                 } else if (!goodDistance(absX, absY, Server.playerHandler.players[frozenBy].absX, Server.playerHandler.players[frozenBy].absY, 20)) {
  1990.                     freezeTimer = -1;
  1991.                     frozenBy = -1;
  1992.                 }
  1993.             }
  1994.         }
  1995.        
  1996.         if(hitDelay > 0) {
  1997.             hitDelay--;
  1998.         }
  1999.        
  2000.         if(teleTimer > 0) {
  2001.             teleTimer--;
  2002.             if (!isDead) {
  2003.                 if(teleTimer == 1 && newLocation > 0) {
  2004.                     teleTimer = 0;
  2005.                     getPA().changeLocation();
  2006.                 }
  2007.                 if(teleTimer == 5) {
  2008.                     teleTimer--;
  2009.                     getPA().processTeleport();
  2010.                 }
  2011.                 if(teleTimer == 9 && teleGfx > 0) {
  2012.                     teleTimer--;
  2013.                     gfx100(teleGfx);
  2014.                 }
  2015.             } else {
  2016.                 teleTimer = 0;
  2017.             }
  2018.         }  
  2019.  
  2020.         if(hitDelay == 1) {
  2021.             if(oldNpcIndex > 0) {
  2022.                 getCombat().delayedHit(oldNpcIndex);
  2023.             }
  2024.             if(oldPlayerIndex > 0) {
  2025.                 getCombat().playerDelayedHit(oldPlayerIndex);              
  2026.             }      
  2027.         }
  2028.        
  2029.         if(attackTimer > 0) {
  2030.             attackTimer--;
  2031.         }
  2032.        
  2033.         if(attackTimer == 1){
  2034.             if(npcIndex > 0 && clickNpcType == 0) {
  2035.                 getCombat().attackNpc(npcIndex);
  2036.             }
  2037.             if(playerIndex > 0) {
  2038.                 getCombat().attackPlayer(playerIndex);
  2039.             }
  2040.         } else if (attackTimer <= 0 && (npcIndex > 0 || playerIndex > 0)) {
  2041.             if (npcIndex > 0) {
  2042.                 attackTimer = 0;
  2043.                 getCombat().attackNpc(npcIndex);
  2044.             } else if (playerIndex > 0) {
  2045.                 attackTimer = 0;
  2046.                 getCombat().attackPlayer(playerIndex);
  2047.             }
  2048.         }
  2049.        
  2050.         if(timeOutCounter > Config.TIMEOUT) {
  2051.             disconnected = true;
  2052.         }
  2053.        
  2054.         timeOutCounter++;
  2055.        
  2056.         if(inTrade && tradeResetNeeded){
  2057.             Client o = (Client) Server.playerHandler.players[tradeWith];
  2058.             if(o != null){
  2059.                 if(o.tradeResetNeeded){
  2060.                     getTradeAndDuel().resetTrade();
  2061.                     o.getTradeAndDuel().resetTrade();
  2062.                 }
  2063.             }
  2064.         }
  2065.     }
  2066.    
  2067.     public void setCurrentTask(Future<?> task) {
  2068.         currentTask = task;
  2069.     }
  2070.  
  2071.     public Future<?> getCurrentTask() {
  2072.         return currentTask;
  2073.     }
  2074.    
  2075.             @SuppressWarnings("null")
  2076.     public void WalkTo(int x, int y) {
  2077.         newWalkCmdSteps = (Math.abs((x+y)));
  2078.         if (newWalkCmdSteps % 1 != 0) newWalkCmdSteps /= 1;
  2079.         if (++newWalkCmdSteps > walkingQueueSize) {
  2080.             println("Warning: WalkTo command contains too many steps (" + newWalkCmdSteps + ").");
  2081.             newWalkCmdSteps = 0;
  2082.         }
  2083.         int firstStepX = absX;
  2084.         firstStepX -= mapRegionX*8;
  2085.  
  2086.         for (int i = 1; i < newWalkCmdSteps; i++) {
  2087.             newWalkCmdX[i] = x;
  2088.             newWalkCmdY[i] = y;
  2089.         }
  2090.         newWalkCmdX[0] = newWalkCmdY[0];
  2091.         int firstStepY = absY;
  2092.         firstStepY -= mapRegionY*8;
  2093.         newWalkCmdIsRunning = ((inStream.readSignedByteC() == 1));
  2094.         for (int q = 0; q < newWalkCmdSteps; q++) {
  2095.             newWalkCmdX[q] += firstStepX;
  2096.             newWalkCmdY[q] += firstStepY;
  2097.         }
  2098.     }
  2099.     public void FetchDice()
  2100.     {
  2101.         int rnd;
  2102.         String Message = "";
  2103.         if (cDice == 0 || (System.currentTimeMillis() - diceDelay <= 1000)) {
  2104.             return;
  2105.         }
  2106.         switch (cDice) {
  2107.         //Dice
  2108.             case 15096: rnd = Misc.random(19)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on a twenty-sided die."); break;
  2109.             case 15094: rnd = Misc.random(11)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on a twelve-sided die."); break;
  2110.             case 15092: rnd = Misc.random(9)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on a ten-sided die."); break;
  2111.             case 15090: rnd = Misc.random(7)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on an eight-sided die."); break;
  2112.             case 15100: rnd = Misc.random(3)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on a four-sided die."); break;
  2113.             case 15086: rnd = Misc.random(5)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on a six-sided die."); break;
  2114.             case 15088: rnd = Misc.random(11)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on two six-sided dice."); break;
  2115.             case 15098: rnd = Misc.random(99)+1; Message = ("rolled <col=16711680>"+ rnd +"</col> on the percentile dice."); break;
  2116.         }
  2117.         sendMessage("You " + Message);
  2118.             if (clanDice){
  2119.                 if (clanId >= 0) {
  2120.                     Server.clanChat.messageToClan("Clan Chat channel-mate <col=16711680>"+playerName+"</col> "+Message, clanId);
  2121.                 }
  2122.             }
  2123.         cDice = 0;
  2124.     }
  2125.  
  2126.     public void useDice(int itemId, boolean clan){
  2127.             if (System.currentTimeMillis() - diceDelay >= 3000) {
  2128.                 sendMessage("Rolling...");
  2129.                 startAnimation(11900);
  2130.                 diceDelay = System.currentTimeMillis();
  2131.                 cDice = itemId;
  2132.                 clanDice = clan;
  2133.             switch (itemId) {
  2134.                 //Gfx's
  2135.                 case 15086: gfx0(2072); break;
  2136.                 case 15088: gfx0(2074); break;
  2137.                 case 15090: gfx0(2071); break;
  2138.                 case 15092: gfx0(2070); break;
  2139.                 case 15094: gfx0(2073); break;
  2140.                 case 15096: gfx0(2068); break;
  2141.                 case 15098: gfx0(2075); break;
  2142.                 case 15100: gfx0(2069); break;
  2143.             }
  2144.         }
  2145.  
  2146.     }
  2147. public void fmwalkto(int i, int j)
  2148.     {
  2149.         newWalkCmdSteps = 0;
  2150.         if(++newWalkCmdSteps > 50)
  2151.             newWalkCmdSteps = 0;
  2152.         int k = absX + i;
  2153.         k -= mapRegionX * 8;
  2154.         newWalkCmdX[0] = newWalkCmdY[0] = tmpNWCX[0] = tmpNWCY[0] = 0;
  2155.         int l = absY + j;
  2156.         l -= mapRegionY * 8;
  2157.     isRunning2 = false;
  2158.     isRunning = false;
  2159.         //for(this.i = 0; this.i < newWalkCmdSteps; this.i++)
  2160.        //{
  2161.             newWalkCmdX[0] += k;
  2162.             newWalkCmdY[0] += l;
  2163.         //}
  2164.     //lastWalk = System.currentTimeMillis();
  2165.     //walkDelay = 1;
  2166.         poimiY = l;
  2167.         poimiX = k;
  2168.     }
  2169.     public int tmpNWCY[] = new int[walkingQueueSize];
  2170.     public int tmpNWCX[] = new int[walkingQueueSize];
  2171.    
  2172.     public synchronized Stream getInStream() {
  2173.         return inStream;
  2174.     }
  2175.    
  2176.     public synchronized int getPacketType() {
  2177.         return packetType;
  2178.     }
  2179.    
  2180.     public synchronized int getPacketSize() {
  2181.         return packetSize;
  2182.     }
  2183.    
  2184.     public synchronized Stream getOutStream() {
  2185.         return outStream;
  2186.     }
  2187.    
  2188.     public ItemAssistant getItems() {
  2189.         return itemAssistant;
  2190.     }
  2191.        
  2192.     public PlayerAssistant getPA() {
  2193.         return playerAssistant;
  2194.     }
  2195.    
  2196.     public DialogueHandler getDH() {
  2197.         return dialogueHandler;
  2198.     }
  2199.    
  2200.     public TradeLog getTradeLog() {
  2201.         return tradeLog;
  2202.     }
  2203.  
  2204.     public WarriorsGuild getWarriorsGuild() {
  2205.         return warriorsGuild;
  2206.     }
  2207.  
  2208.     public ShopAssistant getShops() {
  2209.         return shopAssistant;
  2210.     }
  2211.    
  2212.     public TradeAndDuel getTradeAndDuel() {
  2213.         return tradeAndDuel;
  2214.     }
  2215.    
  2216.     public CombatAssistant getCombat() {
  2217.         return combatAssistant;
  2218.     }
  2219.    
  2220.     public ActionHandler getActions() {
  2221.         return actionHandler;
  2222.     }
  2223.  
  2224.     public PlayerKilling getKill() {
  2225.         return playerKilling;
  2226.     }
  2227.    
  2228.     public IoSession getSession() {
  2229.         return session;
  2230.     }
  2231.    
  2232.     public Potions getPotions() {
  2233.         return potion;
  2234.     }
  2235.    
  2236.     public PotionMixing getPotMixing() {
  2237.         return potionMixing;
  2238.     }
  2239.    
  2240.     public Food getFood() {
  2241.         return food;
  2242.     }
  2243.    
  2244.     /**
  2245.      * Skill Constructors
  2246.      */
  2247.     public Slayer getSlayer() {
  2248.         return slayer;
  2249.     }
  2250.    
  2251.     public Runecrafting getRunecrafting() {
  2252.         return runecrafting;
  2253.     }
  2254.    
  2255.     public Woodcutting getWoodcutting() {
  2256.         return woodcutting;
  2257.     }
  2258.         public Summoning Summoning() {
  2259.         return Summoning;
  2260.     }
  2261.     public Mining getMining() {
  2262.         return mine;
  2263.     }
  2264.    
  2265.     public Cooking getCooking() {
  2266.         return cooking;
  2267.     }
  2268.  
  2269.     public Gambling getGamble() {
  2270.         return gamble; 
  2271.     }  
  2272.    
  2273.     public Agility getAgil() {
  2274.         return ag;
  2275.     }
  2276.    
  2277.     public Fishing getFishing() {
  2278.         return fish;
  2279.     }
  2280.    
  2281.     public Smithing getSmithing() {
  2282.         return smith;
  2283.     }
  2284.    
  2285.     public Farming getFarming() {
  2286.         return farming;
  2287.     }
  2288.    
  2289.     public Thieving getThieving() {
  2290.         return thieving;
  2291.     }
  2292.    
  2293.     public Herblore getHerblore() {
  2294.         return herblore;
  2295.     }
  2296.    
  2297.     public Firemaking getFiremaking() {
  2298.         return firemaking;
  2299.     }
  2300.    
  2301.     public SmithingInterface getSmithingInt() {
  2302.         return smithInt;
  2303.     }
  2304.    
  2305.     public Prayer getPrayer() {
  2306.         return prayer;
  2307.     }
  2308.  
  2309.     public Curse getCurse() {
  2310.         return curse;
  2311.     }
  2312.  
  2313.  
  2314. /**
  2315. * Gets the prospecting class.
  2316. * @return The prospecting class.
  2317. */
  2318. public Prospecting getProspecting() {
  2319.         return prospecting;
  2320.     }
  2321.    
  2322.    
  2323.     /**
  2324.      * End of Skill Constructors
  2325.      */
  2326.  
  2327.      /**
  2328.      * Second skill instances.
  2329.      */
  2330.     private Prospecting prospecting = new Prospecting();
  2331.    
  2332.     public void queueMessage(Packet arg1) {
  2333.         synchronized(queuedPackets) {
  2334.             //if (arg1.getId() != 41)
  2335.                 queuedPackets.add(arg1);
  2336.             //else
  2337.                 //processPacket(arg1);
  2338.         }
  2339.     }
  2340.    
  2341.     public synchronized boolean processQueuedPackets() {
  2342.         Packet p = null;
  2343.         synchronized(queuedPackets) {
  2344.             p = queuedPackets.poll();
  2345.         }
  2346.         if(p == null) {
  2347.             return false;
  2348.         }
  2349.         inStream.currentOffset = 0;
  2350.         packetType = p.getId();
  2351.         packetSize = p.getLength();
  2352.         inStream.buffer = p.getData();
  2353.         if(packetType > 0) {
  2354.             //sendMessage("PacketType: " + packetType);
  2355.             PacketHandler.processPacket(this, packetType, packetSize);
  2356.             processPackets++;
  2357.         }
  2358.         timeOutCounter = 0;
  2359.         if(processPackets > Config.MAX_PROCESS_PACKETS) {
  2360.             return false;
  2361.         }
  2362.         return true;
  2363.         }
  2364.    
  2365.     public synchronized boolean processPacket(Packet p) {
  2366.         synchronized (this) {
  2367.             if(p == null) {
  2368.                 return false;
  2369.             }
  2370.             inStream.currentOffset = 0;
  2371.             packetType = p.getId();
  2372.             packetSize = p.getLength();
  2373.             inStream.buffer = p.getData();
  2374.             if(packetType > 0) {
  2375.                 //sendMessage("PacketType: " + packetType);
  2376.                 PacketHandler.processPacket(this, packetType, packetSize);
  2377.             }
  2378.             timeOutCounter = 0;
  2379.             return true;
  2380.         }
  2381.     }
  2382.  
  2383.  
  2384.    
  2385.     public void correctCoordinates() {
  2386.         if (inPcGame()) {
  2387.             getPA().movePlayer(2657, 2639, 0);
  2388.         }
  2389.         if (inFightCaves()) {
  2390.             getPA().movePlayer(absX, absY, playerId * 4);
  2391.             sendMessage("Your wave will start in 10 seconds.");
  2392.             EventManager.getSingleton().addEvent(new Event() {
  2393.                 public void execute(EventContainer c) {
  2394.                     Server.fightCaves.spawnNextWave((Client)Server.playerHandler.players[playerId]);
  2395.                     c.stop();
  2396.                 }
  2397.                 }, 10000);
  2398.        
  2399.         }
  2400.  
  2401.         if (inZombieCaves()) {
  2402.             getPA().movePlayer(absX, absY, playerId * 4);
  2403.             sendMessage("Your Zombie Rampage wave will begin in 5 seconds...");
  2404.             EventManager.getSingleton().addEvent(new Event() {
  2405.                 //@Override
  2406.                 public void execute(EventContainer c) {
  2407.                     Server.zombieCaves.spawnNextWave((Client) Server.playerHandler.players[playerId]);
  2408.                     c.stop();
  2409.                 }
  2410.  
  2411.                 //@Override
  2412.                 public void stop() {
  2413.                     // ANYTHING YOU WANT TO DO WHEN THE EVENT STOPS, YOU CAN
  2414.                     // LEAVE IT EMPTY
  2415.                 }
  2416.             }, 5000);
  2417.  
  2418.         }
  2419.        
  2420.         if (inRFD()) {
  2421.             getPA().movePlayer(1899,5363, playerId * 4+2);
  2422.             sendMessage("Your wave will start in 10 seconds.");
  2423.             EventManager.getSingleton().addEvent(new Event() {
  2424.                 public void execute(EventContainer c) {
  2425.                     Server.rfd.spawnNextWave((Client)Server.playerHandler.players[playerId]);
  2426.                     c.stop();
  2427.                 }
  2428.                 }, 10000);
  2429.        
  2430.         }
  2431.    
  2432.     }
  2433.    
  2434. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement