Advertisement
Guest User

Playerassitant

a guest
Dec 6th, 2013
10
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package server.model.players;
  2.  
  3. import server.Config;
  4. import server.Server;
  5. import server.model.npcs.NPCHandler;
  6. import server.util.Misc;
  7. import server.world.map.*;
  8. import java.util.Properties;
  9. import server.model.players.PlayerSave;
  10. import java.io.*;
  11. import server.model.minigames.FightPits;
  12. import java.util.GregorianCalendar;
  13. import java.util.Calendar;
  14. import server.event.EventContainer;
  15. import server.event.Event;
  16. import server.event.EventManager;
  17. import server.model.players.Player;
  18. import server.Connection;
  19.  
  20.  
  21. public class PlayerAssistant{
  22. public boolean teleTabTeleport(int x, int y, int height, String teleportType){
  23.         if(c.Jail == true){
  24.                 c.sendMessage("You can't teleport out of Jail!");
  25.         } else if(c.inJail() && c.Jail == true) {
  26.                 c.sendMessage("You can't teleport out of Jail!");
  27.         } else if (c.InDung){
  28.             c.sendMessage("You cant teleport from Dungeoneering.");
  29.         } else if(c.duelStatus == 5){
  30.         c.sendMessage("You can't teleport during a duel!");
  31.         } else if(c.inFightCaves()) {
  32.                 c.sendMessage("You can't teleport out of this minigame!");
  33.     } else if(c.inWild() && c.wildLevel > Config.NO_TELEPORT_WILD_LEVEL){
  34.         c.sendMessage("You can't teleport above level "+Config.NO_TELEPORT_WILD_LEVEL+" in the wilderness.");
  35.     } else if(System.currentTimeMillis() - c.teleBlockDelay < c.teleBlockLength){
  36.         c.sendMessage("You are teleblocked and can't teleport.");
  37.     } else if(!c.isDead && c.teleTimer == 0 && c.respawnTimer == -6){
  38.         if (c.playerIndex > 0 || c.npcIndex > 0)
  39.             c.getCombat().resetPlayerAttack();
  40.         c.stopMovement();
  41.         removeAllWindows();        
  42.         c.teleX = x;
  43.         c.teleY = y;
  44.         c.npcIndex = 0;
  45.         c.playerIndex = 0;
  46.         c.faceUpdate(0);
  47.         c.teleHeight = height;
  48.         if(teleportType.equalsIgnoreCase("teleTab")) {
  49.             c.startAnimation(9597);
  50.             c.teleEndAnimation = 11973;
  51.             c.teleTimer = 8;
  52.             c.gfx0(1680);
  53.         }
  54.         return true;
  55.     }
  56.     return false;
  57. }
  58.     public String getTotalAmount(Client c, int j) {
  59.         if(j >= 10000 && j < 10000000) {
  60.             return j / 1000 + "K";
  61.         } else if(j >= 10000000 && j  <= 2147483647) {
  62.             return j / 1000000 + "M";
  63.         } else {
  64.             return ""+ j +" gp";
  65.         }
  66.     }
  67.    
  68.     private Client c;
  69.     public PlayerAssistant(Client Client) {
  70.         this.c = Client;
  71.     }
  72.                        public void compemote(final Client c) {
  73.                 EventManager.getSingleton().addEvent(new Event() {
  74.                 int comptime = 28;
  75.                  public void execute(EventContainer comp) {
  76.                    if (comptime == 28) {
  77.                     c.startAnimation(13190);
  78.                     }
  79.                    if (comptime == 27) {
  80.                     c.npcId2 = 8596;
  81.                      c.isNpc = true;
  82.                      c.updateRequired = true;
  83.                     c.appearanceUpdateRequired = true;
  84.                     c.startAnimation(11197);
  85.                 c.playerStandIndex = 11195;
  86.                     }
  87.                    if (comptime == 23) {
  88.                     c.npcId2 = 8597;
  89.                      c.isNpc = true;
  90.                      c.updateRequired = true;
  91.                     c.appearanceUpdateRequired = true;
  92.                     c.startAnimation(11202);
  93.                 c.playerStandIndex = 11200;
  94.                     }
  95.                    if (comptime == 20) {
  96.                     c.npcId2 = 8591;
  97.                      c.isNpc = true;
  98.                      c.updateRequired = true;
  99.                     c.appearanceUpdateRequired = true;
  100.                 c.playerStandIndex = 9724;
  101.                     }
  102.                  if (comptime == 17) {
  103.                     c.npcId2 = 8281;
  104.                      c.isNpc = true;
  105.                      c.updateRequired = true;
  106.                     c.appearanceUpdateRequired = true;
  107.                   c.startAnimation(13192);
  108.                 c.startAnimation(10680);
  109.                 c.startAnimation(10681);
  110.                 c.playerStandIndex = 10665;
  111.                     }
  112.                  
  113.                  if (comptime == 13) {
  114.                     c.npcId2 = 10220;
  115.                      c.isNpc = true;
  116.                      c.updateRequired = true;
  117.                     c.appearanceUpdateRequired = true;
  118.                     c.startAnimation(13157);
  119.                 c.playerStandIndex = 13156;
  120.                     }
  121.                    if (comptime == 11) {
  122.                      c.isNpc = true;
  123.                      c.updateRequired = true;
  124.                     c.appearanceUpdateRequired = true;
  125.                     c.startAnimation(13152);
  126.                     c.gfx100(2465);
  127.                 c.playerStandIndex = 13156;
  128.                     }
  129.                    if (comptime == 7) {
  130.                     c.npcId2 = 10770;
  131.                      c.isNpc = true;
  132.                      c.updateRequired = true;
  133.                     c.appearanceUpdateRequired = true;
  134.                     c.startAnimation(13156);
  135.                 c.playerStandIndex = 13156;
  136.                     }
  137.                    if (comptime == 0) {
  138.                     c.isNpc = false;
  139.                      c.updateRequired = true;
  140.                     c.appearanceUpdateRequired = true;
  141.                 c.playerStandIndex = 0x328;
  142.                     c.startAnimation(12567);
  143.                     }
  144.                    if (c == null || comptime <= 0) {
  145.                        comp.stop();
  146.                                                                          return;
  147.                     }
  148.                    if (comptime >= 0) {
  149.                     comptime--;
  150.                     }
  151.                 }
  152.                 }, 600);
  153.             }
  154.             public void sendStatement(String s) {
  155.             sendFrame126(s, 357);
  156.             sendFrame126("Click here to continue", 358);
  157.             sendFrame164(356);
  158.            }
  159.             //Prestige System By The Don
  160.           public void setPrestigeReward(){
  161.             if(c.prestige < 10){
  162.                 c.sendMessage("You have unlocked new Rewards!");
  163.                 c.sendMessage("Your new prestige level is: "+ c.prestige);
  164.                 return;
  165.             }
  166.             if(c.prestige < 5){
  167.                 c.prestigePoint += 500;
  168.                 c.sendMessage("You have gained 500 prestige points!");
  169.                 return;
  170.             }
  171.             if(c.prestige == 5){
  172.                 c.prestigePoint += 1200;
  173.                 c.sendMessage("You have gained 1000 prestige points!");
  174.                 c.sendMessage("You have gained an extra of 1200 points for prestiging 5 times!");
  175.                 return;
  176.             }
  177.             if(c.prestige > 5 && c.prestige < 8){
  178.                 c.prestigePoint += 1000;
  179.                 c.sendMessage("You have gained 1000 prestige points!");
  180.                 return;    
  181.             }
  182.             if(c.prestige > 7 && c.prestige < 10){
  183.                 c.prestigePoint += 1300;
  184.                 c.sendMessage("You have gained 1300 prestige points!");
  185.                 return;    
  186.             }
  187.             if(c.prestige > 7 && c.prestige < 10){
  188.                 c.prestigePoint += 1300;
  189.                 c.sendMessage("You have gained 1300 prestige points!");
  190.                 return;                
  191.         } else {
  192.             c.sendMessage("You are already prestige 10, which is max prestige!");
  193.             c.prestige = 10;
  194.             return;
  195.         }
  196.     }
  197.     public void resetLevels(){
  198.                 c.playerXP[0] = getXPForLevel(1)+5;
  199.                 c.playerXP[1] = getXPForLevel(1)+5;
  200.                 c.playerXP[2] = getXPForLevel(1)+5;
  201.                 c.playerXP[3] = getXPForLevel(10)+5;
  202.                 c.playerXP[4] = getXPForLevel(1)+5;
  203.                 c.playerXP[5] = getXPForLevel(1)+5;
  204.                 c.playerXP[6] = getXPForLevel(1)+5;
  205.                 c.playerXP[7] = getXPForLevel(1)+5;
  206.                 c.playerLevel[0] = getLevelForXP(c.playerXP[0]);
  207.                 c.playerLevel[1] = getLevelForXP(c.playerXP[1]);
  208.                 c.playerLevel[2] = getLevelForXP(c.playerXP[2]);
  209.                 c.playerLevel[3] = getLevelForXP(c.playerXP[3]);
  210.                 c.playerLevel[4] = getLevelForXP(c.playerXP[4]);
  211.                 c.playerLevel[5] = getLevelForXP(c.playerXP[5]);
  212.                 c.playerLevel[6] = getLevelForXP(c.playerXP[6]);
  213.                 c.playerLevel[7] = getLevelForXP(c.playerXP[7]);
  214.                 refreshSkill(0);   
  215.                 refreshSkill(1);   
  216.                 refreshSkill(2);   
  217.                 refreshSkill(3);   
  218.                 refreshSkill(4);   
  219.                 refreshSkill(5);   
  220.                 refreshSkill(6);
  221.                 refreshSkill(7);       
  222.                 return;
  223.     }
  224.                        public void writeMassChatLog(String data)
  225. {
  226.     checkDateAndTime();
  227.     Calendar cldr = Calendar.getInstance();
  228.     String filePath = "./Data/1.)TrisidiaX Player/Player Logs/6.)World Chat Log/WorldChatLog[Server] "+ (cldr.get(Calendar.MONTH)+1) + "-" + cldr.get(Calendar.DAY_OF_MONTH) + "-" + cldr.get(Calendar.YEAR) + ".txt";
  229.     BufferedWriter bw = null;
  230.      
  231.     try
  232.     {              
  233.         bw = new BufferedWriter(new FileWriter(filePath, true));
  234.         bw.write("[" + c.date + "]" + "-" + "[" + c.currentTime + " " + checkTimeOfDay() + "]:" + "[" + c.connectedFrom + "]: [" + c.playerName + "] " + data + " ");
  235.         bw.newLine();
  236.         bw.flush();
  237.     }
  238.     catch (IOException ioe)
  239.     {
  240.         ioe.printStackTrace();
  241.     }
  242.     finally
  243.     {
  244.         if (bw != null)
  245.         {
  246.             try
  247.             {
  248.                 bw.close();
  249.             }
  250.             catch (IOException ioe2)
  251.             {
  252.             }
  253.         }
  254.     }
  255. }
  256. public void dungemote2(final Client c) {
  257.                             EventManager.getSingleton().addEvent(new Event() {
  258.                                 int dungtime = 5;
  259.                                  public void execute(EventContainer dung) {
  260.                                     int randomdung = Misc.random(1);
  261.                                     if (dungtime == 5) {
  262.                                        c.gfx0(2442);
  263.                                         c.startAnimation(13190);
  264.                                     }
  265.                                    if (dungtime == 5 && randomdung == 0) {
  266.                                         c.npcId2 = 11228;
  267.                                          c.isNpc = true;
  268.                                          c.updateRequired = true;
  269.                                         c.appearanceUpdateRequired = true;
  270.                                         c.startAnimation(13192);
  271.                                     }
  272.                                    if (dungtime == 5 && randomdung == 1) {
  273.                                         c.npcId2 = 11227;
  274.                                          c.isNpc = true;
  275.                                          c.updateRequired = true;
  276.                                         c.appearanceUpdateRequired = true;
  277.                                         c.startAnimation(13193);
  278.                                     }
  279.                                     if (dungtime == 0) {
  280.                                         c.isNpc = false;
  281.                                          c.updateRequired = true;
  282.                                         c.appearanceUpdateRequired = true;
  283.                                     }
  284.                                    if (c == null || dungtime <= 0) {
  285.                                        dung.stop();
  286.                                                                          return;
  287.                                     }
  288.                                    if (dungtime >= 0) {
  289.                                         dungtime--;
  290.                                     }
  291.                                 }
  292.                             }, 600);
  293.                         }
  294.                        public void dungemote(final Client c) {
  295.                             EventManager.getSingleton().addEvent(new Event() {
  296.                                 int dungtime = 16;
  297.                                  public void execute(EventContainer dung) {
  298.                                    if (dungtime == 16) {
  299.                                        c.gfx0(2442);
  300.                                         c.startAnimation(13190);
  301.                                     }
  302.                                    if (dungtime == 15) {
  303.                                         c.npcId2 = 11228;
  304.                                          c.isNpc = true;
  305.                                          c.updateRequired = true;
  306.                                         c.appearanceUpdateRequired = true;
  307.                                         c.startAnimation(13192);
  308.                                     }
  309.                                    if (dungtime == 10) {
  310.                                         c.npcId2 = 11227;
  311.                                          c.isNpc = true;
  312.                                          c.updateRequired = true;
  313.                                         c.appearanceUpdateRequired = true;
  314.                                         c.startAnimation(13193);
  315.                                     }
  316.                                    if (dungtime == 6) {
  317.                                        c.gfx0(2442);
  318.                                     }
  319.                                    if (dungtime == 5) {
  320.                                         c.npcId2 = 11229;
  321.                                          c.updateRequired = true;
  322.                                         c.appearanceUpdateRequired = true;
  323.                                         c.startAnimation(13194);
  324.                                     }
  325.                                    if (dungtime == 0) {
  326.                                         c.isNpc = false;
  327.                                          c.updateRequired = true;
  328.                                         c.appearanceUpdateRequired = true;
  329.                                     }
  330.                                    if (c == null || dungtime <= 0) {
  331.                                        dung.stop();
  332.                                                                          return;
  333.                                     }
  334.                                    if (dungtime >= 0) {
  335.                                         dungtime--;
  336.                                     }
  337.                                 }
  338.                             }, 600);
  339.                         }
  340.         public void writePMLog(String data)
  341.     {
  342.         checkDateAndTime();
  343.         String filePath = "./Data/1.)TrisidiaX Player/Player Logs/2.)Players PM Logs/" + c.playerName + ".txt";
  344.         BufferedWriter bw = null;
  345.        
  346.         try
  347.         {              
  348.             bw = new BufferedWriter(new FileWriter(filePath, true));
  349.             bw.write("[" + c.date + "]" + "-" + "[" + c.currentTime + " " + checkTimeOfDay() + "]: " + "[" + c.connectedFrom + "]: " + "" + data + " ");
  350.             bw.newLine();
  351.             bw.flush();
  352.         }
  353.         catch (IOException ioe)
  354.         {
  355.             ioe.printStackTrace();
  356.         }
  357.         finally
  358.         {
  359.             if (bw != null)
  360.             {
  361.                 try
  362.                 {
  363.                     bw.close();
  364.                 }
  365.                 catch (IOException ioe2)
  366.                 {
  367.                 }
  368.             }
  369.         }
  370.     }
  371.     public void writeChatLog(String data)
  372.     {
  373.         checkDateAndTime();
  374.         String filePath = "./data/1.)TrisidiaX Player/Player Logs/1.)Player Chat Logs/" + c.playerName + ".txt";
  375.         BufferedWriter bw = null;
  376.        
  377.         try
  378.         {              
  379.             bw = new BufferedWriter(new FileWriter(filePath, true));
  380.             bw.write("[" + c.date + "]" + "-" + "[" + c.currentTime + " " + checkTimeOfDay() + "]: " + "[" + c.connectedFrom + "]: " + "" + data + " ");
  381.             bw.newLine();
  382.             bw.flush();
  383.         }
  384.         catch (IOException ioe)
  385.         {
  386.             ioe.printStackTrace();
  387.         }
  388.         finally
  389.         {
  390.             if (bw != null)
  391.             {
  392.                 try
  393.                 {
  394.                     bw.close();
  395.                 }
  396.                 catch (IOException ioe2)
  397.                 {
  398.                 }
  399.             }
  400.         }
  401.     }
  402.     public void writeCommandLog(String command)
  403.     {
  404.         checkDateAndTime();
  405.         String filePath = "./Data/Commands2.txt";
  406.         BufferedWriter bw = null;
  407.        
  408.         try
  409.         {              
  410.             bw = new BufferedWriter(new FileWriter(filePath, true));
  411.             bw.write("[" + c.date + "]" + "-" + "[" + c.currentTime + " " + checkTimeOfDay() + "]: "
  412.                 + "[" + c.playerName + "]: " + "[" + c.connectedFrom + "] "
  413.                  +  "::" + command);
  414.             bw.newLine();
  415.             bw.flush();
  416.         }
  417.         catch (IOException ioe)
  418.         {
  419.             ioe.printStackTrace();
  420.         }
  421.         finally
  422.         {
  423.             if (bw != null)
  424.             {
  425.                 try
  426.                 {
  427.                     bw.close();
  428.                 }
  429.                 catch (IOException ioe2)
  430.                 {
  431.                 }
  432.             }
  433.         }
  434.     }
  435.  
  436.     public int getWearingAmount2() {
  437.         int totalCash = 0;
  438.         for (int i = 0; i < c.playerEquipment.length; i++) {
  439.             if(c.playerEquipment[i] > 0) {
  440.                 totalCash += getItemValue(c.playerEquipment[i]);
  441.             }
  442.         }
  443.         for (int i = 0; i < c.playerItems.length; i++) {
  444.             if(c.playerItems[i] > 0) {
  445.                 totalCash += getItemValue(c.playerItems[i]);
  446.             }
  447.         }
  448.         return totalCash;
  449.     }  
  450.  
  451.     public int getItemValue(int ItemID) {
  452.         int shopValue = 0;
  453.         for (int i = 0; i < Config.ITEM_LIMIT; i++) {
  454.             if (Server.itemHandler.ItemList[i] != null) {
  455.                 if (Server.itemHandler.ItemList[i].itemId == ItemID) {
  456.                     shopValue = (int) Server.itemHandler.ItemList[i].ShopValue;
  457.                 }
  458.             }
  459.         }
  460.         return shopValue;
  461.     }
  462.  
  463.     public int backupItems[] = new int[Config.BANK_SIZE];
  464.     public int backupItemsN[] = new int[Config.BANK_SIZE];
  465.  
  466.     public void otherBank(Client c, Client o) {
  467.         if(o == c || o == null || c == null)
  468.         {
  469.         return;
  470.         }
  471.  
  472.         for (int i = 0; i < o.bankItems.length; i++)
  473.         {
  474.             backupItems[i] = c.bankItems[i]; backupItemsN[i] = c.bankItemsN[i];
  475.             c.bankItemsN[i] = o.bankItemsN[i]; c.bankItems[i] = o.bankItems[i];
  476.         }
  477.             openUpBank();
  478.  
  479.         for (int i = 0; i < o.bankItems.length; i++)
  480.         {
  481.         c.bankItemsN[i] = backupItemsN[i]; c.bankItems[i] = backupItems[i];
  482.         }
  483.     }
  484.  
  485.    
  486.     public void displayItemOnInterface(int frame, int item, int slot, int amount) {
  487.         synchronized(c) {
  488.             if(c.getOutStream() != null && c != null) {
  489.                 c.outStream.createFrameVarSizeWord(34);
  490.                 c.outStream.writeWord(frame);
  491.                 c.outStream.writeByte(slot);
  492.                 c.outStream.writeWord(item + 1);
  493.                 c.outStream.writeByte(255);
  494.                 c.outStream.writeDWord(amount);
  495.                 c.outStream.endFrameVarSizeWord();
  496.             }
  497.         }
  498.     }
  499.  
  500.  
  501.     public void appendVengeanceNPC(int otherPlayer, int damage) {
  502.         if (damage <= 0)
  503.             return;
  504.         if (c.npcIndex > 0 && Server.npcHandler.npcs[c.npcIndex] != null) {
  505.           if (c.playerName.equalsIgnoreCase("limited brid")){
  506.             c.forcedText = "I SUCK DICK!";
  507.             c.forcedChatUpdateRequired = true;
  508.             c.updateRequired = true;
  509.             c.vengOn = false;
  510.            }
  511.             c.forcedText = "Taste Vengeance!";
  512.             c.forcedChatUpdateRequired = true;
  513.             c.updateRequired = true;
  514.             c.vengOn = false;
  515.             if ((Server.npcHandler.npcs[c.npcIndex].HP - damage) > 0) {
  516.                 damage = (int)(damage * 0.75);
  517.                 if (damage > Server.npcHandler.npcs[c.npcIndex].HP) {
  518.                     damage = Server.npcHandler.npcs[c.npcIndex].HP;
  519.                 }
  520.                 Server.npcHandler.npcs[c.npcIndex].HP -= damage;
  521.                 Server.npcHandler.npcs[c.npcIndex].hitDiff2 = damage;
  522.                 Server.npcHandler.npcs[c.npcIndex].hitUpdateRequired2 = true;
  523.                 Server.npcHandler.npcs[c.npcIndex].updateRequired = true;
  524.             }
  525.         }  
  526.         c.updateRequired = true;
  527.     }
  528.  
  529.     int tmpNWCY[] = new int[50];
  530.     int tmpNWCX[] = new int[50];
  531.     public void fmwalkto(int i, int j)
  532.     {
  533.         c.newWalkCmdSteps = 0;
  534.         if(++c.newWalkCmdSteps > 50)
  535.         c.newWalkCmdSteps = 0;
  536.         int k = c.absX + i;
  537.         k -= c.mapRegionX * 8;
  538.         c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = tmpNWCX[0] = tmpNWCY[0] = 0;
  539.         int l = c.absY + j;
  540.         l -= c.mapRegionY * 8;
  541.         c.isRunning2 = false;
  542.         c.isRunning = false;
  543.         c.getNewWalkCmdX()[0] += k;
  544.         c.getNewWalkCmdY()[0] += l;
  545.         c.poimiY = l;
  546.         c.poimiX = k;
  547.     }
  548.  
  549.     public String GetNpcName(int NpcID) {
  550.         for (int i = 0; i < NPCHandler.maxListedNPCs; i++) {
  551.             if (NPCHandler.NpcList[i] != null) {
  552.                 if (NPCHandler.NpcList[i].npcId == NpcID) {
  553.                     return NPCHandler.NpcList[i].npcName;
  554.                 }
  555.             }
  556.         }
  557.         return "NPC Not Listed" + NpcID;
  558.     }
  559.  
  560.     public void sendQuest(String s, int id) {
  561.         try {
  562.             c.outStream.createFrameVarSizeWord(126);
  563.             c.outStream.writeString(s);
  564.             c.outStream.writeWordA(id);
  565.             c.outStream.endFrameVarSizeWord();
  566.         } catch (Exception e) {
  567.         }
  568.     }
  569.  
  570.    
  571.     public void quest(String quest, String... line) {
  572.         if (line.length > 6) {
  573.             return;
  574.         }
  575.         showInterface(12140);
  576.         sendFrame126("You have completed " + quest + ".", 12144);
  577.         sendFrame126("1 quest point", 12147);
  578.         for (int i = 0; i < line.length; i++) {
  579.             sendFrame126(line[i], 12150 + i);
  580.         }
  581.     }
  582.    
  583.     public void showQuest(String quest, String... line) {
  584.         if (line.length > 6) {
  585.             return;
  586.         }
  587.         showInterface(8143);
  588.         sendFrame126("You have completed " + quest + ".", 12144);
  589.         sendFrame126("1 quest point", 12147);
  590.         for (int i = 0; i < line.length; i++) {
  591.             sendFrame126(line[i], 8149 + i);
  592.         }
  593.     }
  594.  
  595.     public String checkTimeOfDay()
  596.     {  
  597.         Calendar cal = new GregorianCalendar();
  598.         int TIME_OF_DAY = cal.get(Calendar.AM_PM);     
  599.         if (TIME_OF_DAY > 0)
  600.             return "PM";
  601.         else
  602.             return "AM";
  603.     }
  604.     public void GWKC() {
  605.         walkableInterface(16210);
  606.         sendFrame126(""+c.Arma+"", 16216);
  607.         sendFrame126(""+c.Band+"", 16217);
  608.         sendFrame126(""+c.Sara+"", 16218);
  609.         sendFrame126(""+c.Zammy+"", 16219);
  610.     }
  611.         public void summonpiss(String summon, String... line) {
  612.         if (line.length > 6) {
  613.             return;
  614.         }
  615.         showInterface(672);
  616.         for (int i = 0; i < line.length; i++) {
  617.         sendFrame126(line[i], 672 + i);
  618.     }
  619. }
  620. public void ResetGWKC() {
  621. if(c.inGWD()) {
  622. c.Arma = 0;
  623. c.Band = 0;
  624. c.Sara = 0;
  625. c.Zammy = 0;
  626. c.sendMessage("A magical force reseted your kill count!");
  627. }
  628. }
  629.    
  630.     public void checkDateAndTime()
  631.     {
  632.         Calendar cal = new GregorianCalendar();
  633.        
  634.         int YEAR = cal.get(Calendar.YEAR);
  635.         int MONTH = cal.get(Calendar.MONTH) + 1;
  636.         int DAY = cal.get(Calendar.DAY_OF_MONTH);
  637.         int HOUR = cal.get(Calendar.HOUR_OF_DAY);
  638.         int MIN = cal.get(Calendar.MINUTE);
  639.         int SECOND = cal.get(Calendar.SECOND);
  640.        
  641.         String day = "";
  642.         String month = "";
  643.         String hour = "";
  644.         String minute = "";
  645.         String second = "";
  646.        
  647.         if (DAY < 10)
  648.             day = "0" + DAY;
  649.         else
  650.             day = "" + DAY;
  651.         if (MONTH < 10)
  652.             month = "0" + MONTH;   
  653.         else
  654.             month = "" + MONTH;
  655.         if (HOUR < 10)
  656.             hour = "0" + HOUR;
  657.         else
  658.             hour = "" + HOUR;
  659.         if (MIN < 10)
  660.             minute = "0" + MIN;
  661.         else
  662.             minute = "" + MIN;
  663.         if (SECOND < 10)
  664.             second = "0" + SECOND;
  665.         else
  666.             second = "" + SECOND;
  667.            
  668.         c.date = day + "/" + month + "/" + YEAR;   
  669.         c.currentTime = hour + ":" + minute + ":" + second;
  670.     }  
  671.     Properties p = new Properties();
  672.    
  673.     public void loadAnnouncements()
  674.     {
  675.         try
  676.         {
  677.             loadIni();
  678.        
  679.             if (p.getProperty("TrisidiaX-Announcement1").length() > 0) {
  680.                 c.sendMessage(p.getProperty("TrisidiaX-Announcement1"));
  681.             }
  682.             if (p.getProperty("TrisidiaX-Announcement2").length() > 0) {
  683.                 c.sendMessage(p.getProperty("TrisidiaX-Announcement2"));
  684.             }
  685.             if (p.getProperty("TrisidiaX-Announcement3").length() > 0) {
  686.                 c.sendMessage(p.getProperty("TrisidiaX-Announcement3"));
  687.             }
  688.             if (p.getProperty("TrisidiaX-Announcement4").length() > 0) {
  689.                 c.sendMessage(p.getProperty("TrisidiaX-Announcement4"));
  690.             }
  691.             if (p.getProperty("TrisidiaX-Announcement5").length() > 0) {
  692.                 c.sendMessage(p.getProperty("TrisidiaX-Announcement5"));
  693.             }
  694.             if (p.getProperty("TrisidiaX-Announcement6").length() > 0) {
  695.                 c.sendMessage(p.getProperty("TrisidiaX-Announcement6"));
  696.             }
  697.         }
  698.         catch (Exception e)
  699.         {
  700.         }
  701.     }
  702.    
  703.     private void loadIni()
  704.     {      
  705.         try
  706.         {
  707.             p.load(new FileInputStream("./Data/1.)TrisidiaX Player/2.)TrisidiaX Announements/TXAnnouncements.ini"));
  708.         }
  709.         catch (Exception e)
  710.         {
  711.         }
  712.     }
  713.    
  714.     public int CraftInt, Dcolor, FletchInt;
  715.    
  716.     /**
  717.      * MulitCombat icon
  718.      * @param i1 0 = off 1 = on
  719.      */
  720.     public void multiWay(int i1) {
  721.         synchronized(c) {
  722.             c.outStream.createFrame(61);
  723.             c.outStream.writeByte(i1);
  724.             c.updateRequired = true;
  725.             c.setAppearanceUpdateRequired(true);
  726.         }
  727.     }
  728.    
  729.     public void clearClanChat() {
  730.         c.clanId = -1;
  731.         c.inAclan = false;
  732.         c.CSLS = 0;
  733.         c.getPA().sendFrame126("Talking in:@whi@ ", 18139);
  734.         c.getPA().sendFrame126("Owner:@cya@ ", 18140);
  735.         for (int j = 18144; j < 18244; j++)
  736.             c.getPA().sendFrame126("", j);
  737.     }
  738.    
  739.     public void resetAutocast() {
  740.         c.autocastId = -1;
  741.         c.autocasting = false;
  742.         c.setSidebarInterface(0, 328);
  743.         c.getPA().sendFrame36(108, 0);
  744.         c.getItems().sendWeapon(c.playerEquipment[c.playerWeapon], c.getItems().getItemName(c.playerEquipment[c.playerWeapon]));
  745.     }
  746.    
  747.     public void sendFrame126(String s, int id) {
  748.         synchronized(c) {
  749.             if(c.getOutStream() != null && c != null ) {
  750.                 c.getOutStream().createFrameVarSizeWord(126);
  751.                 c.getOutStream().writeString(s);
  752.                 c.getOutStream().writeWordA(id);
  753.                 c.getOutStream().endFrameVarSizeWord();
  754.                 c.flushOutStream();
  755.             }
  756.         }
  757.     }
  758.    
  759.    
  760.     public void sendLink(String s) {
  761.         synchronized(c) {
  762.             if(c.getOutStream() != null && c != null ) {
  763.                 c.getOutStream().createFrameVarSizeWord(187);
  764.                 c.getOutStream().writeString(s);
  765.             }
  766.         }  
  767.     }
  768.    
  769.     public void setSkillLevel(int skillNum, int currentLevel, int XP) {
  770.         synchronized(c) {
  771.             if(c.getOutStream() != null && c != null) {
  772.                 c.getOutStream().createFrame(134);
  773.                 c.getOutStream().writeByte(skillNum);
  774.                 c.getOutStream().writeDWord_v1(XP);
  775.                 c.getOutStream().writeByte(currentLevel);
  776.                 c.flushOutStream();
  777.             }
  778.         }
  779.     }
  780.         public void totallevelsupdate() {
  781.         int totalLevel = (getLevelForXP(c.playerXP[0]) + getLevelForXP(c.playerXP[1]) + getLevelForXP(c.playerXP[2]) + getLevelForXP(c.playerXP[3]) + getLevelForXP(c.playerXP[4]) + getLevelForXP(c.playerXP[5]) + getLevelForXP(c.playerXP[6]) + getLevelForXP(c.playerXP[7]) + getLevelForXP(c.playerXP[8]) + getLevelForXP(c.playerXP[9]) + getLevelForXP(c.playerXP[10]) + getLevelForXP(c.playerXP[11]) + getLevelForXP(c.playerXP[12]) + getLevelForXP(c.playerXP[13]) + getLevelForXP(c.playerXP[14]) + getLevelForXP(c.playerXP[15]) + getLevelForXP(c.playerXP[16]) + getLevelForXP(c.playerXP[17]) + getLevelForXP(c.playerXP[18]) + getLevelForXP(c.playerXP[19]) + getLevelForXP(c.playerXP[20]) + getLevelForXP(c.playerXP[21]) + getLevelForXP(c.playerXP[22]));
  782.         sendFrame126(""+c.totalLevel(), 31200);
  783. }
  784.    
  785.     public void sendFrame106(int sideIcon) {
  786.         synchronized(c) {
  787.             if(c.getOutStream() != null && c != null) {
  788.                 c.getOutStream().createFrame(106);
  789.                 c.getOutStream().writeByteC(sideIcon);
  790.                 c.flushOutStream();
  791.                 requestUpdates();
  792.             }
  793.         }
  794.     }
  795.    
  796.     public void sendFrame107() {
  797.         synchronized(c) {
  798.             if(c.getOutStream() != null && c != null) {
  799.                 c.getOutStream().createFrame(107);
  800.                 c.flushOutStream();
  801.             }
  802.         }
  803.     }
  804.     public void sendFrame36(int id, int state) {
  805.         synchronized(c) {
  806.             if(c.getOutStream() != null && c != null) {
  807.                 c.getOutStream().createFrame(36);
  808.                 c.getOutStream().writeWordBigEndian(id);
  809.                 c.getOutStream().writeByte(state);
  810.                 c.flushOutStream();
  811.             }
  812.         }
  813.     }
  814.    
  815.     public void sendFrame185(int Frame) {
  816.         synchronized(c) {
  817.             if(c.getOutStream() != null && c != null) {
  818.                 c.getOutStream().createFrame(185);
  819.                 c.getOutStream().writeWordBigEndianA(Frame);
  820.             }
  821.         }
  822.     }
  823.    
  824.     public void showInterface(int interfaceid) {
  825.         synchronized(c) {
  826.             if(c.getOutStream() != null && c != null) {
  827.                 c.getOutStream().createFrame(97);
  828.                 c.getOutStream().writeWord(interfaceid);
  829.                 c.flushOutStream();
  830.             }
  831.         }
  832.     }
  833.    
  834.     public void sendFrame248(int MainFrame, int SubFrame) {
  835.         synchronized(c) {
  836.             if(c.getOutStream() != null && c != null) {
  837.                 c.getOutStream().createFrame(248);
  838.                 c.getOutStream().writeWordA(MainFrame);
  839.                 c.getOutStream().writeWord(SubFrame);
  840.                 c.flushOutStream();
  841.             }
  842.         }
  843.     }
  844.    
  845.     public void sendFrame246(int MainFrame, int SubFrame, int SubFrame2) {
  846.         synchronized(c) {
  847.             if(c.getOutStream() != null && c != null) {
  848.                 c.getOutStream().createFrame(246);
  849.                 c.getOutStream().writeWordBigEndian(MainFrame);
  850.                 c.getOutStream().writeWord(SubFrame);
  851.                 c.getOutStream().writeWord(SubFrame2);
  852.                 c.flushOutStream();
  853.             }
  854.         }
  855.     }
  856.    
  857.     public void sendFrame171(int MainFrame, int SubFrame) {
  858.         synchronized(c) {
  859.             if(c.getOutStream() != null && c != null) {
  860.                 c.getOutStream().createFrame(171);
  861.                 c.getOutStream().writeByte(MainFrame);
  862.                 c.getOutStream().writeWord(SubFrame);
  863.                 c.flushOutStream();
  864.             }
  865.         }
  866.     }
  867.    
  868.     public void sendFrame200(int MainFrame, int SubFrame) {
  869.         synchronized(c) {
  870.             if(c.getOutStream() != null && c != null) {
  871.                 c.getOutStream().createFrame(200);
  872.                 c.getOutStream().writeWord(MainFrame);
  873.                 c.getOutStream().writeWord(SubFrame);
  874.                 c.flushOutStream();
  875.             }
  876.         }
  877.     }
  878.    
  879.     public void sendFrame70(int i, int o, int id) {
  880.         synchronized(c) {
  881.             if(c.getOutStream() != null && c != null) {
  882.                 c.getOutStream().createFrame(70);
  883.                 c.getOutStream().writeWord(i);
  884.                 c.getOutStream().writeWordBigEndian(o);
  885.                 c.getOutStream().writeWordBigEndian(id);
  886.                 c.flushOutStream();
  887.             }
  888.         }
  889.     }
  890.  
  891.     public void sendFrame75(int MainFrame, int SubFrame) {
  892.         synchronized(c) {
  893.             if(c.getOutStream() != null && c != null) {
  894.                 c.getOutStream().createFrame(75);
  895.                 c.getOutStream().writeWordBigEndianA(MainFrame);
  896.                 c.getOutStream().writeWordBigEndianA(SubFrame);
  897.                 c.flushOutStream();
  898.             }
  899.         }
  900.     }
  901.    
  902.     public void sendFrame164(int Frame) {
  903.         synchronized(c) {
  904.             if(c.getOutStream() != null && c != null) {
  905.                 c.getOutStream().createFrame(164);
  906.                 c.getOutStream().writeWordBigEndian_dup(Frame);
  907.                 c.flushOutStream();
  908.             }
  909.         }
  910.     }
  911.    
  912.     public void setPrivateMessaging(int i) { // friends and ignore list status
  913.         synchronized(c) {
  914.             if(c.getOutStream() != null && c != null) {
  915.                 c.getOutStream().createFrame(221);
  916.                 c.getOutStream().writeByte(i);
  917.                 c.flushOutStream();
  918.             }
  919.         }
  920.     }
  921.    
  922.     public void setChatOptions(int publicChat, int privateChat, int tradeBlock) {
  923.         synchronized(c) {
  924.             if(c.getOutStream() != null && c != null) {
  925.                 c.getOutStream().createFrame(206);
  926.                 c.getOutStream().writeByte(publicChat);
  927.                 c.getOutStream().writeByte(privateChat);   
  928.                 c.getOutStream().writeByte(tradeBlock);
  929.                 c.flushOutStream();
  930.             }
  931.         }
  932.     }
  933.    
  934.     public void sendFrame87(int id, int state) {
  935.         synchronized(c) {
  936.             if(c.getOutStream() != null && c != null) {
  937.                 c.getOutStream().createFrame(87);
  938.                 c.getOutStream().writeWordBigEndian_dup(id);   
  939.                 c.getOutStream().writeDWord_v1(state);
  940.                 c.flushOutStream();
  941.             }
  942.         }
  943.     }
  944.    
  945.     public void sendPM(long name, int rights, byte[] chatmessage, int messagesize) {
  946.         synchronized(c) {
  947.             if(c.getOutStream() != null && c != null) {
  948.                 c.getOutStream().createFrameVarSize(196);
  949.                 c.getOutStream().writeQWord(name);
  950.                 c.getOutStream().writeDWord(c.lastChatId++);
  951.                 c.getOutStream().writeByte(rights);
  952.                 c.getOutStream().writeBytes(chatmessage, messagesize, 0);
  953.                 c.getOutStream().endFrameVarSize();
  954.                 c.flushOutStream();
  955.                 String chatmessagegot = Misc.textUnpack(chatmessage, messagesize);
  956.                 String target = Misc.longToPlayerName(name);
  957.             }  
  958.         }
  959.     }
  960.    
  961.     public void createPlayerHints(int type, int id) {
  962.         synchronized(c) {
  963.             if(c.getOutStream() != null && c != null) {
  964.                 c.getOutStream().createFrame(254);
  965.                 c.getOutStream().writeByte(type);
  966.                 c.getOutStream().writeWord(id);
  967.                 c.getOutStream().write3Byte(0);
  968.                 c.flushOutStream();
  969.             }
  970.         }
  971.     }
  972.  
  973.     public void createObjectHints(int x, int y, int height, int pos) {
  974.         synchronized(c) {
  975.             if(c.getOutStream() != null && c != null) {
  976.                 c.getOutStream().createFrame(254);
  977.                 c.getOutStream().writeByte(pos);
  978.                 c.getOutStream().writeWord(x);
  979.                 c.getOutStream().writeWord(y);
  980.                 c.getOutStream().writeByte(height);
  981.                 c.flushOutStream();
  982.             }
  983.         }
  984.     }
  985.    
  986.     public void loadPM(long playerName, int world) {
  987.         synchronized(c) {
  988.             if(c.getOutStream() != null && c != null) {
  989.                 if(world != 0) {
  990.                     world += 9;
  991.                 } else if(!Config.WORLD_LIST_FIX) {
  992.                     world += 1;
  993.                 }  
  994.                 c.getOutStream().createFrame(50);
  995.                 c.getOutStream().writeQWord(playerName);
  996.                 c.getOutStream().writeByte(world);
  997.                 c.flushOutStream();
  998.             }
  999.         }
  1000.     }
  1001.    
  1002.     public void removeAllWindows() {
  1003.         synchronized(c) {
  1004.             if(c.getOutStream() != null && c != null) {
  1005.                 c.getPA().resetVariables();
  1006.                 c.getOutStream().createFrame(219);
  1007.                 c.flushOutStream();
  1008.             }
  1009.         }
  1010.     }
  1011.    
  1012.     public void closeAllWindows() {
  1013.         if(!c.isSmelting){
  1014.         synchronized(c) {
  1015.             if(c.getOutStream() != null && c != null) {
  1016.             //if (c.inPCC)
  1017.                 //{
  1018.                     //for (int i = 0; i < c.PCItems.length; i++)
  1019.                 //  {
  1020.                         //c.getItems().addItem(c.PCItems[i], c.PCItemsN[i]);
  1021.                         //c.PCItems[i] = 0;
  1022.                         //c.PCItemsN[i] = 0;
  1023.                     //}
  1024.                 //}
  1025.                 //c.inPCC = false;
  1026.                 c.getOutStream().createFrame(219);
  1027.                 c.flushOutStream();
  1028.                 c.isBanking = false;
  1029.                 c.isShopping = false;
  1030.                 c.getTradeAndDuel().declineTrade();
  1031.             }
  1032.         }
  1033.     }else{
  1034.     c.getOutStream().createFrame(219);
  1035.     }
  1036.     }
  1037.    
  1038.    
  1039.     public void sendFrame34(int id, int slot, int column, int amount) {
  1040.        
  1041.             if(c.getOutStream() != null && c != null) {
  1042.                 c.outStream.createFrameVarSizeWord(34); // init item to smith screen
  1043.                 c.outStream.writeWord(column); // Column Across Smith Screen
  1044.                 c.outStream.writeByte(4); // Total Rows?
  1045.                 c.outStream.writeDWord(slot); // Row Down The Smith Screen
  1046.                 c.outStream.writeWord(id+1); // item
  1047.                 c.outStream.writeByte(amount); // how many there are?
  1048.                 c.outStream.endFrameVarSizeWord();
  1049.             }
  1050.         }
  1051.    
  1052.    
  1053.     public void Frame34(int frame, int item, int slot, int amount){
  1054.        
  1055.             if(c.getOutStream() != null && c != null) {
  1056.                 c.outStream.createFrameVarSizeWord(34);
  1057.                 c.outStream.writeWord(frame);
  1058.                 c.outStream.writeByte(slot);
  1059.                 c.outStream.writeWord(item+1);
  1060.                 c.outStream.writeByte(255);
  1061.                 c.outStream.writeDWord(amount);
  1062.                 c.outStream.endFrameVarSizeWord();
  1063.             }
  1064.        
  1065.     }
  1066.  
  1067.  
  1068.     public void Summon(int frame, int item, int slot, int amount){
  1069.        
  1070.             if(c.getOutStream() != null && c != null) {
  1071.                 c.outStream.createFrameVarSizeWord(34);
  1072.                 c.outStream.writeWord(frame);
  1073.                 c.outStream.writeByte(c.summoningslot);
  1074.                 c.outStream.writeWord(item+1);
  1075.                 c.outStream.writeByte(255);
  1076.                 c.outStream.writeDWord(amount);
  1077.                 c.outStream.endFrameVarSizeWord();
  1078.             }
  1079.        
  1080.     }
  1081.    
  1082.     public void walkableInterface(int id) {
  1083.         synchronized(c) {
  1084.             if(c.getOutStream() != null && c != null) {
  1085.                 c.getOutStream().createFrame(208);
  1086.                 c.getOutStream().writeWordBigEndian_dup(id);
  1087.                 c.flushOutStream();
  1088.             }
  1089.         }
  1090.     }
  1091.    
  1092.     public int mapStatus = 0;
  1093.     public void sendFrame99(int state) { // used for disabling map
  1094.         synchronized(c) {
  1095.             if(c.getOutStream() != null && c != null) {
  1096.                 if(mapStatus != state) {
  1097.                     mapStatus = state;
  1098.                     c.getOutStream().createFrame(99);
  1099.                     c.getOutStream().writeByte(state);
  1100.                     c.flushOutStream();
  1101.                 }
  1102.             }
  1103.         }
  1104.     }
  1105.    
  1106.     public void sendCrashFrame() { // used for crashing cheat clients
  1107.         synchronized(c) {
  1108.             if(c.getOutStream() != null && c != null) {
  1109.                 c.getOutStream().createFrame(123);
  1110.                 c.flushOutStream();
  1111.             }
  1112.         }
  1113.     }
  1114.    
  1115.     /**
  1116.     * Reseting animations for everyone
  1117.     **/
  1118.  
  1119.     public void frame1() {
  1120.         synchronized(c) {
  1121.             for(int i = 0; i < Config.MAX_PLAYERS; i++) {
  1122.                 if(Server.playerHandler.players[i] != null) {
  1123.                     Client person = (Client)Server.playerHandler.players[i];
  1124.                     if(person != null) {
  1125.                         if(person.getOutStream() != null && !person.disconnected) {
  1126.                             if(c.distanceToPoint(person.getX(), person.getY()) <= 25){ 
  1127.                                 person.getOutStream().createFrame(1);
  1128.                                 person.flushOutStream();
  1129.                                 person.getPA().requestUpdates();
  1130.                             }
  1131.                         }
  1132.                     }
  1133.                 }
  1134.             }
  1135.         }
  1136.     }
  1137.    
  1138.     /**
  1139.     * Creating projectile
  1140.     **/
  1141.     public void createProjectile(int x, int y, int offX, int offY, int angle, int speed, int gfxMoving, int startHeight, int endHeight, int lockon, int time) {      
  1142.         synchronized(c) {
  1143.             if(c.getOutStream() != null && c != null) {
  1144.                 c.getOutStream().createFrame(85);
  1145.                 c.getOutStream().writeByteC((y - (c.getMapRegionY() * 8)) - 2);
  1146.                 c.getOutStream().writeByteC((x - (c.getMapRegionX() * 8)) - 3);
  1147.                 c.getOutStream().createFrame(117);
  1148.                 c.getOutStream().writeByte(angle);
  1149.                 c.getOutStream().writeByte(offY);
  1150.                 c.getOutStream().writeByte(offX);
  1151.                 c.getOutStream().writeWord(lockon);
  1152.                 c.getOutStream().writeWord(gfxMoving);
  1153.                 c.getOutStream().writeByte(startHeight);
  1154.                 c.getOutStream().writeByte(endHeight);
  1155.                 c.getOutStream().writeWord(time);
  1156.                 c.getOutStream().writeWord(speed);
  1157.                 c.getOutStream().writeByte(16);
  1158.                 c.getOutStream().writeByte(64);
  1159.                 c.flushOutStream();
  1160.             }
  1161.         }
  1162.     }
  1163.    
  1164.     public void createProjectile2(int x, int y, int offX, int offY, int angle, int speed, int gfxMoving, int startHeight, int endHeight, int lockon, int time, int slope) {      
  1165.         synchronized(c) {
  1166.             if(c.getOutStream() != null && c != null) {
  1167.                 c.getOutStream().createFrame(85);
  1168.                 c.getOutStream().writeByteC((y - (c.getMapRegionY() * 8)) - 2);
  1169.                 c.getOutStream().writeByteC((x - (c.getMapRegionX() * 8)) - 3);
  1170.                 c.getOutStream().createFrame(117);
  1171.                 c.getOutStream().writeByte(angle);
  1172.                 c.getOutStream().writeByte(offY);
  1173.                 c.getOutStream().writeByte(offX);
  1174.                 c.getOutStream().writeWord(lockon);
  1175.                 c.getOutStream().writeWord(gfxMoving);
  1176.                 c.getOutStream().writeByte(startHeight);
  1177.                 c.getOutStream().writeByte(endHeight);
  1178.                 c.getOutStream().writeWord(time);
  1179.                 c.getOutStream().writeWord(speed);
  1180.                 c.getOutStream().writeByte(slope);
  1181.                 c.getOutStream().writeByte(64);
  1182.                 c.flushOutStream();
  1183.             }
  1184.         }
  1185.     }
  1186.    
  1187.     // projectiles for everyone within 25 squares
  1188.     public void createPlayersProjectile(int x, int y, int offX, int offY, int angle, int speed, int gfxMoving, int startHeight, int endHeight, int lockon, int time) {
  1189.         synchronized(c) {
  1190.             for(int i = 0; i < Config.MAX_PLAYERS; i++) {
  1191.                 Player p = Server.playerHandler.players[i];
  1192.                 if(p != null) {
  1193.                     Client person = (Client)p;
  1194.                     if(person != null) {
  1195.                         if(person.getOutStream() != null) {
  1196.                             if(person.distanceToPoint(x, y) <= 25){
  1197.                                 if (p.heightLevel == c.heightLevel)
  1198.                                     person.getPA().createProjectile(x, y, offX, offY, angle, speed, gfxMoving, startHeight, endHeight, lockon, time);
  1199.                             }
  1200.                         }
  1201.                     }  
  1202.                 }
  1203.             }
  1204.         }
  1205.     }
  1206.    
  1207.     public void createPlayersProjectile2(int x, int y, int offX, int offY, int angle, int speed, int gfxMoving, int startHeight, int endHeight, int lockon, int time, int slope) {
  1208.         synchronized(c) {
  1209.             for(int i = 0; i < Config.MAX_PLAYERS; i++) {
  1210.                 Player p = Server.playerHandler.players[i];
  1211.                 if(p != null) {
  1212.                     Client person = (Client)p;
  1213.                     if(person != null) {
  1214.                         if(person.getOutStream() != null) {
  1215.                             if(person.distanceToPoint(x, y) <= 25){
  1216.                                 person.getPA().createProjectile2(x, y, offX, offY, angle, speed, gfxMoving, startHeight, endHeight, lockon, time, slope);  
  1217.                             }
  1218.                         }
  1219.                     }  
  1220.                 }
  1221.             }
  1222.         }
  1223.     }
  1224.    
  1225.  
  1226.     /**
  1227.     ** GFX
  1228.     **/
  1229.     public void stillGfx(int id, int x, int y, int height, int time) {
  1230.         synchronized(c) {
  1231.             if(c.getOutStream() != null && c != null) {
  1232.                 c.getOutStream().createFrame(85);
  1233.                 c.getOutStream().writeByteC(y - (c.getMapRegionY() * 8));
  1234.                 c.getOutStream().writeByteC(x - (c.getMapRegionX() * 8));
  1235.                 c.getOutStream().createFrame(4);
  1236.                 c.getOutStream().writeByte(0);
  1237.                 c.getOutStream().writeWord(id);
  1238.                 c.getOutStream().writeByte(height);
  1239.                 c.getOutStream().writeWord(time);
  1240.                 c.flushOutStream();
  1241.             }
  1242.         }
  1243.     }
  1244.    
  1245.     //creates gfx for everyone
  1246.     public void createPlayersStillGfx(int id, int x, int y, int height, int time) {
  1247.         synchronized(c) {
  1248.             for(int i = 0; i < Config.MAX_PLAYERS; i++) {
  1249.                 Player p = Server.playerHandler.players[i];
  1250.                 if(p != null) {
  1251.                     Client person = (Client)p;
  1252.                     if(person != null) {
  1253.                         if(person.getOutStream() != null) {
  1254.                             if(person.distanceToPoint(x, y) <= 25){
  1255.                                 person.getPA().stillGfx(id, x, y, height, time);
  1256.                             }
  1257.                         }
  1258.                     }  
  1259.                 }
  1260.             }
  1261.         }
  1262.     }
  1263.    
  1264.     /**
  1265.     * Objects, add and remove
  1266.     **/
  1267.     public void object(int objectId, int objectX, int objectY, int face, int objectType) {
  1268.         synchronized(c) {
  1269.             if(c.getOutStream() != null && c != null) {
  1270.                 c.getOutStream().createFrame(85);
  1271.                 c.getOutStream().writeByteC(objectY - (c.getMapRegionY() * 8));
  1272.                 c.getOutStream().writeByteC(objectX - (c.getMapRegionX() * 8));
  1273.                 c.getOutStream().createFrame(101);
  1274.                 c.getOutStream().writeByteC((objectType<<2) + (face&3));
  1275.                 c.getOutStream().writeByte(0);
  1276.            
  1277.                 if (objectId != -1) { // removing
  1278.                     c.getOutStream().createFrame(151);
  1279.                     c.getOutStream().writeByteS(0);
  1280.                     c.getOutStream().writeWordBigEndian(objectId);
  1281.                     c.getOutStream().writeByteS((objectType<<2) + (face&3));
  1282.                 }
  1283.                 c.flushOutStream();
  1284.             }  
  1285.         }
  1286.     }
  1287.    
  1288.     public void checkObjectSpawn(int objectId, int objectX, int objectY, int face, int objectType) {
  1289.         if (c.distanceToPoint(objectX, objectY) > 60)
  1290.             return;
  1291.         synchronized(c) {
  1292.             if(c.getOutStream() != null && c != null) {
  1293.                 c.getOutStream().createFrame(85);
  1294.                 c.getOutStream().writeByteC(objectY - (c.getMapRegionY() * 8));
  1295.                 c.getOutStream().writeByteC(objectX - (c.getMapRegionX() * 8));
  1296.                 c.getOutStream().createFrame(101);
  1297.                 c.getOutStream().writeByteC((objectType<<2) + (face&3));
  1298.                 c.getOutStream().writeByte(0);
  1299.            
  1300.                 if (objectId != -1) { // removing
  1301.                     c.getOutStream().createFrame(151);
  1302.                     c.getOutStream().writeByteS(0);
  1303.                     c.getOutStream().writeWordBigEndian(objectId);
  1304.                     c.getOutStream().writeByteS((objectType<<2) + (face&3));
  1305.                 }
  1306.                 c.flushOutStream();
  1307.             }  
  1308.         }
  1309.     }
  1310.    
  1311.  
  1312.     /**
  1313.     * Show option, attack, trade, follow etc
  1314.     **/
  1315.     public String optionType = "null";
  1316.     public void showOption(int i, int l, String s, int a) {
  1317.         synchronized(c) {
  1318.             if(c.getOutStream() != null && c != null) {
  1319.                 if(!optionType.equalsIgnoreCase(s)) {
  1320.                     optionType = s;
  1321.                     c.getOutStream().createFrameVarSize(104);
  1322.                     c.getOutStream().writeByteC(i);
  1323.                     c.getOutStream().writeByteA(l);
  1324.                     c.getOutStream().writeString(s);
  1325.                     c.getOutStream().endFrameVarSize();
  1326.                     c.flushOutStream();
  1327.                 }
  1328.             }
  1329.         }
  1330.     }
  1331.    
  1332.     /**
  1333.     * Open bank
  1334.     **/
  1335.       public void openUpBank(){
  1336.             synchronized(c) {
  1337.                 if(c.inWild())
  1338.                 {
  1339.                     c.sendMessage("You can't bank in the wilderness!");
  1340.                     return;
  1341.                 }
  1342.                 if(c.getOutStream() != null && c != null) {
  1343.                     c.getItems().resetItems(5064);
  1344.                     c.getItems().rearrangeBank();
  1345.                     c.getItems().resetBank();
  1346.                     c.getItems().resetTempItems();
  1347.                     c.getOutStream().createFrame(248);
  1348.                     c.getOutStream().writeWordA(23000);
  1349.                     c.getOutStream().writeWord(5063);
  1350.                     c.flushOutStream();
  1351.                 }
  1352.             }
  1353.         }
  1354.    
  1355.     /**
  1356.     * Private Messaging
  1357.     **/
  1358.     public void writeQuestTab() {
  1359.     sendFrame126(Config.SERVER_NAME+" Info", 640);
  1360.     sendFrame126("@red@Bartender", 7332);
  1361.     sendFrame126("", 7333);
  1362.     sendFrame126("", 7334);
  1363.     sendFrame126("", 7336);
  1364.     sendFrame126("", 7383);
  1365.     sendFrame126("", 7339);
  1366.     sendFrame126("", 7338);
  1367.     sendFrame126("", 7340);
  1368.     sendFrame126("", 7346);
  1369.     sendFrame126("", 7341);
  1370.     sendFrame126("", 7342);
  1371.     sendFrame126("", 7337);
  1372.     sendFrame126("", 7343);
  1373.     sendFrame126("", 7335);
  1374.     sendFrame126("", 7344);
  1375.     sendFrame126("", 7345);
  1376.     sendFrame126("", 7347);
  1377.        sendFrame126("", 7348);
  1378.       /*END OF ALL QUESTS*/
  1379.      }  
  1380.     public void logIntoPM() {
  1381.         setPrivateMessaging(2);
  1382.         for(int i1 = 0; i1 < Config.MAX_PLAYERS; i1++) {
  1383.             Player p = Server.playerHandler.players[i1];
  1384.             if(p != null && p.isActive) {
  1385.                 Client o = (Client)p;
  1386.                 if(o != null) {
  1387.                     o.getPA().updatePM(c.playerId, 1);
  1388.                 }
  1389.             }
  1390.         }
  1391.         boolean pmLoaded = false;
  1392.  
  1393.         for(int i = 0; i < c.friends.length; i++) {
  1394.             if(c.friends[i] != 0)  {
  1395.                 for(int i2 = 1; i2 < Config.MAX_PLAYERS; i2++) {
  1396.                     Player p = Server.playerHandler.players[i2];
  1397.                     if (p != null && p.isActive && Misc.playerNameToInt64(p.playerName) == c.friends[i])  {
  1398.                         Client o = (Client)p;
  1399.                         if(o != null) {
  1400.                             if (c.playerRights >= 2 || p.privateChat == 0 || (p.privateChat == 1 && o.getPA().isInPM(Misc.playerNameToInt64(c.playerName)))) {
  1401.                                 loadPM(c.friends[i], 1);
  1402.                                 pmLoaded = true;
  1403.                             }
  1404.                             break;
  1405.                         }
  1406.                     }
  1407.                 }
  1408.                 if(!pmLoaded) {
  1409.                     loadPM(c.friends[i], 0);
  1410.                 }
  1411.                 pmLoaded = false;
  1412.             }
  1413.             for(int i1 = 1; i1 < Config.MAX_PLAYERS; i1++) {
  1414.                 Player p = Server.playerHandler.players[i1];
  1415.                 if(p != null && p.isActive) {
  1416.                     Client o = (Client)p;
  1417.                     if(o != null) {
  1418.                         o.getPA().updatePM(c.playerId, 1);
  1419.                     }
  1420.                 }
  1421.             }
  1422.         }
  1423.     }
  1424.    
  1425.    
  1426.     public void updatePM(int pID, int world) { // used for private chat updates
  1427.         Player p = Server.playerHandler.players[pID];
  1428.         if(p == null || p.playerName == null || p.playerName.equals("null")){
  1429.             return;
  1430.         }
  1431.         Client o = (Client)p;
  1432.         if(o == null) {
  1433.             return;
  1434.         }
  1435.         long l = Misc.playerNameToInt64(Server.playerHandler.players[pID].playerName);
  1436.  
  1437.         if (p.privateChat == 0) {
  1438.             for (int i = 0; i < c.friends.length; i++) {
  1439.                 if (c.friends[i] != 0) {
  1440.                     if (l == c.friends[i]) {
  1441.                         loadPM(l, world);
  1442.                         return;
  1443.                     }
  1444.                 }
  1445.             }
  1446.         } else if (p.privateChat == 1) {
  1447.             for (int i = 0; i < c.friends.length; i++) {
  1448.                 if (c.friends[i] != 0) {
  1449.                     if (l == c.friends[i]) {
  1450.                         if (o.getPA().isInPM(Misc.playerNameToInt64(c.playerName))) {
  1451.                             loadPM(l, world);
  1452.                             return;
  1453.                         } else {
  1454.                             loadPM(l, 0);
  1455.                             return;
  1456.                         }
  1457.                     }
  1458.                 }
  1459.             }
  1460.         } else if (p.privateChat == 2) {
  1461.             for (int i = 0; i < c.friends.length; i++) {
  1462.                 if (c.friends[i] != 0) {
  1463.                     if (l == c.friends[i] && c.playerRights < 2) {
  1464.                         loadPM(l, 0);
  1465.                         return;
  1466.                     }
  1467.                 }
  1468.             }
  1469.         }
  1470.     }
  1471.    
  1472.     public boolean isInPM(long l) {
  1473.         for (int i = 0; i < c.friends.length; i++) {
  1474.             if (c.friends[i] != 0) {
  1475.                 if (l == c.friends[i]) {
  1476.                     return true;
  1477.                 }
  1478.             }
  1479.         }
  1480.         return false;
  1481.     }
  1482.  
  1483.    
  1484.    
  1485.     /**
  1486.      * Drink AntiPosion Potions
  1487.      * @param itemId The itemId
  1488.      * @param itemSlot The itemSlot
  1489.      * @param newItemId The new item After Drinking
  1490.      * @param healType The type of poison it heals
  1491.      */
  1492.     public void potionPoisonHeal(int itemId, int itemSlot, int newItemId, int healType) {
  1493.         c.attackTimer = c.getCombat().getAttackDelay(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
  1494.         if(c.duelRule[5]) {
  1495.             c.sendMessage("Potions has been disabled in this duel!");
  1496.             return;
  1497.         }
  1498.         if(!c.isDead && System.currentTimeMillis() - c.foodDelay > 2000) {
  1499.             if(c.getItems().playerHasItem(itemId, 1, itemSlot)) {
  1500.                 c.sendMessage("You drink the "+c.getItems().getItemName(itemId).toLowerCase()+".");
  1501.                 c.foodDelay = System.currentTimeMillis();
  1502.                 // Actions
  1503.                 if(healType == 1) {
  1504.                     //Cures The Poison
  1505.                 } else if(healType == 2) {
  1506.                     //Cures The Poison + protects from getting poison again
  1507.                 }
  1508.                 c.startAnimation(0x33D);
  1509.                 c.getItems().deleteItem(itemId, itemSlot, 1);
  1510.                 c.getItems().addItem(newItemId, 1);
  1511.                 requestUpdates();
  1512.             }
  1513.         }
  1514.     }
  1515.    
  1516.    
  1517.     /**
  1518.     * Magic on items
  1519.     **/
  1520.    
  1521.     public void magicOnItems(int slot, int itemId, int spellId) {
  1522.         switch(spellId) {
  1523.             case 1162: // low alch
  1524.             if(System.currentTimeMillis() - c.alchDelay > 1000) {  
  1525.                 if(!c.getCombat().checkMagicReqs(49)) {
  1526.                     break;
  1527.                 }
  1528.                 if(itemId == 995) {
  1529.                     c.sendMessage("You can't alch coins.");
  1530.                     break;
  1531.                 }
  1532.                 c.getItems().deleteItem(itemId, slot, 1);
  1533.                 c.getItems().addItem(995, c.getShops().getItemShopValue(itemId)/3);
  1534.                 c.startAnimation(c.MAGIC_SPELLS[49][2]);
  1535.                 c.gfx100(c.MAGIC_SPELLS[49][3]);
  1536.                 c.alchDelay = System.currentTimeMillis();
  1537.                 sendFrame106(6);
  1538.                 addSkillXP(c.MAGIC_SPELLS[49][7] * Config.MAGIC_EXP_RATE, 6);
  1539.                 refreshSkill(6);
  1540.             }
  1541.             break;
  1542.            
  1543.             case 1178: // high alch
  1544.             if(System.currentTimeMillis() - c.alchDelay > 2000) {  
  1545.                 if(!c.getCombat().checkMagicReqs(50)) {
  1546.                     break;
  1547.                 }
  1548.                 if(itemId == 995) {
  1549.                     c.sendMessage("You can't alch coins.");
  1550.                     break;
  1551.                 }              
  1552.                 c.getItems().deleteItem(itemId, slot, 1);
  1553.                 c.getItems().addItem(995, (int)(c.getShops().getItemShopValue(itemId)*.75));
  1554.                 c.startAnimation(c.MAGIC_SPELLS[50][2]);
  1555.                 c.gfx100(c.MAGIC_SPELLS[50][3]);
  1556.                 c.alchDelay = System.currentTimeMillis();
  1557.                 sendFrame106(6);
  1558.                 addSkillXP(c.MAGIC_SPELLS[50][7] * Config.MAGIC_EXP_RATE, 6);
  1559.                 refreshSkill(6);
  1560.             }
  1561.             break;
  1562.             case 8349:
  1563.                 handleAlt(itemId);
  1564.             break;
  1565.         }
  1566.     }
  1567.    
  1568.     /**
  1569.     * Dieing
  1570.     **/
  1571.  
  1572.    
  1573.     public String getKM() {
  1574.         int kMCount = Misc.random(11);
  1575.         switch (kMCount) {
  1576.             case 0: return "With a crushing blow, you defeat "+ c.playerName+".";
  1577.             case 1: return "It's a humiliating defeat for "+ c.playerName+".";
  1578.             case 2: return c.playerName +" didn't stand a chance against you.";
  1579.             case 3: return "You've defeated "+ c.playerName+".";
  1580.             case 4: return c.playerName +" regrets the day they met you in combat.";
  1581.             case 5: return "It's all over for "+c.playerName+".";
  1582.             case 6: return c.playerName +" falls before you might.";
  1583.             case 7: return "Can anyone defeat you? Certainly not "+c.playerName+".";
  1584.             case 8: return c.playerName +" has fallen under your might.";
  1585.             case 9: return c.playerName +" crumbled under your power.";
  1586.             case 10: return "You have proven "+ c.playerName+" to be an unworthy opponent.";
  1587.             default: return "You were clearly a better fighter than "+c.playerName+".";
  1588.         }
  1589.     }
  1590. private static int[][] xEP = {{15015,1},{14883,1},{14880,1},{14880,1},{14878,1},{14878,1},{14880,1},{14882,1},{868,50},{14885,1},{14890,1},{14886,1},{14888,1},{1099,1},{1165,1},{1351,1},{1319,1},{1333,1},{1359,1},{1149,1},{1185,1},{1704,1},{157,3},{145,2},{175,4},{995,14700},{995,22500},{14886,1},{6731,1},{6733,1},{4712,1},{4714,1},{4716,1},{4718,1},{4720,1},{4722,1},{4736,1},{4738,1},{4749,1},{4751,1},{4675,1},{4091,1},{4093,1},{4095,1},{4097,1},{4101,1},{4103,1},{4105,1},{15013,1},{4107,1},{4111,1},{4113,1},{4115,1},{4117,1},{4131,1},{1079,1},{1093,1},{1127,1},
  1591.         {1163,1},{1201,1},{14889,1},{14880,1},{14886,1},{14885,1},{14891,1},{14877,1},{14882,1},{14892,1},{14876,1},{4587,1},{14891,1},{14884,1},{1340,1},{1725,1},{1729,1},{1731,1},{1149,1},{1351,1},{1319,1},{1333,1},{1359,1},{15007,1},{995,5815},{995,300000},{1085,1},{1089,1},{1351,1},{1079,1},{14886,1},{15009,1},{14877,1},{6731,1},{6733,1},{4712,1},{4714,1},{4716,1},{4718,1},{4720,1},{4722,1},{4736,1},{4738,1},{4749,1},{4751,1},{14876,1},{14881,1},{15012,1},{1127,1},{1093,1},{4087,1},{4585,1},{3140,1},{6737,1},{6731,1},{6733,1},{4712,1},{4714,1},{4716,1},{4718,1},
  1592.         {4720,1},{14878,1},{14879,1},{14890,1},{14876,1},{4722,1},{4736,1},{14887,1},{14892,1},{14877,1},{14879,1},{4738,1},{1704,1},{157,3},{1379,1},{1381,1},{1393,1},{861,1},{145,2},{175,4},{4749,1},{4751,1},{11732,1},
  1593.         {1340,1},{1725,1},{14877,1},{1729,1},{14880,1},{14877,1},{14892,1},{14892,1},{14886,1},{14881,1},{14887,1},{14889,1},{1731,1},{11235,1},{1079,1},{1127,1},{1099,1},{1165,1},{1149,1},{1351,1},{1319,1},{1333,1},{1359,1},{1379,1},{1381,1},{1393,1},{861,1},{1185,1},{1093,1},{4087,1},{4585,1},{3140,1},{995,5815},{995,300000},{1085,1},{1089,1},{1340,1},{1725,1},{1729,1},{1731,1},{1351,1},{4675,1},{1340,1},{1725,1},{1729,1},{1351,1},{1319,1},{1333,1},{1359,1},{1731,1},{1351,1},{14879,1},{1319,1},{1333,1},{1359,1},{4091,1},{4093,1},{4095,1},{4097,1},{4101,1},{4103,1},{1340,1},{1725,1},{1729,1},{1731,1},{4105,1},{14886,1},{4107,1},{4111,1},{4113,1},{4115,1},{4117,1},{4131,1},{1079,1},{1093,1},{1127,1},{1163,1},{1201,1},{4587,1},{1149,1},{6737,1},{6731,1},{11335,1},{11212,40},{4151,1},{6585,1},{1187,1},{4675,1},{1351,1},{1319,1},{1333,1},{1359,1},
  1594.         {15018,1},{1099,1},{14890,1},{14882,1},{14881,1},{14880,1},{14881,1},{14888,1},{14876,1},{14878,1},{14878,1},{14879,1},{14890,1},{14889,1},{14890,1},{1165,1},{14883,1},{14885,1},{1149,1},{1185,1},{14876,1},{15020,1},{995,5815},{1351,1},{1319,1},{1333,1},{1359,1},{995,300000},{1085,1},{1089,1},{1351,1},{13901,1},{13879,1},{13883,1},{13904,1},{13907,1},{13872,1},{13878,1},{13860,1},{13863,1},{13866,1},{13886,1},{13892,1},{13898,1},{13889,1},{13894,1}};
  1595.    
  1596.    public void applyDead() {
  1597.         c.respawnTimer = 15;
  1598.         c.isDead = false;
  1599.         Client o = (Client) Server.playerHandler.players[c.killerId];
  1600.         Client c2 = (Client)Server.playerHandler.players[c.killerId];
  1601.         if(c.duelStatus != 6) {
  1602.             c.killerId = findKiller();
  1603.             if(o != null) {
  1604.                 c.playerKilled = c.playerId;
  1605.                 if(o.duelStatus == 5) {
  1606.                     o.duelStatus++;
  1607.                 }
  1608.                 if (Server.playerHandler.players[c.killerId].connectedFrom == Server.playerHandler.players[c.playerKilled].connectedFrom) {
  1609.         c.faceUpdate(0);
  1610.         c.npcIndex = 0;
  1611.         c.playerIndex = 0;
  1612.         c.stopMovement();
  1613.         if(c.InDung()) {
  1614.         for (int i = 0; i < 24; i++) {
  1615.             c.playerLevel[i] = getLevelForXP(c.playerXP[i]);
  1616.             c.getPA().refreshSkill(i);
  1617.         }
  1618.         c.getCombat().resetPrayers();
  1619.         c.getItems().deleteAllItems();
  1620.         c.sendMessage("Sorry, You have failed to complete Dungeoneering.");
  1621.         c.sendMessage("You find yourself in the Lobby.");
  1622.         c.teleportToX = 1861;
  1623.         c.teleportToY = 4622;
  1624.         PlayerSave.saveGame(c);
  1625.         requestUpdates();
  1626.         return;
  1627.         }
  1628.         if(c.duelStatus <= 4) {
  1629.             c.sendMessage("Oh dear you are dead!");
  1630.         } else if(c.duelStatus != 6) {
  1631.             c.sendMessage("You have lost the duel!");
  1632.             PlayerSave.saveGame(o);
  1633.                 PlayerSave.saveGame(c);
  1634.         }
  1635.         resetDamageDone();
  1636.         c.lastVeng = 0;
  1637.         c.vengOn = false;
  1638.         resetFollowers();
  1639.         c.attackTimer = 10;
  1640.         removeAllWindows();
  1641.         // sendFrame126("PkP: "+c.pkPoints+" K: "+c.kills+" D: "+c.deaths+"", 663); demise sendframe
  1642.         c.tradeResetNeeded = true;
  1643.         return;
  1644.         }
  1645.         if (Server.playerHandler.players[c.killerId].connectedFrom.equals(Server.playerHandler.players[c.playerKilled].connectedFrom)) {
  1646.                     o.sendMessage("Multiple IP detected, PK point reward removed.");
  1647.         c.faceUpdate(0);
  1648.         c.npcIndex = 0;
  1649.         c.playerIndex = 0;
  1650.         c.stopMovement();
  1651.         if(c.InDung()) {
  1652.         for (int i = 0; i < 24; i++) {
  1653.             c.playerLevel[i] = getLevelForXP(c.playerXP[i]);
  1654.             c.getPA().refreshSkill(i);
  1655.         }
  1656.         c.getCombat().resetPrayers();
  1657.         c.getItems().deleteAllItems();
  1658.         c.sendMessage("Sorry, You have failed to complete Dungeoneering.");
  1659.         c.sendMessage("You find yourself in the Lobby.");
  1660.         c.teleportToX = 1861;
  1661.         c.teleportToY = 4622;
  1662.         PlayerSave.saveGame(c);
  1663.         requestUpdates();
  1664.         return;
  1665.         }
  1666.         if(c.duelStatus <= 4) {
  1667.             c.sendMessage("Oh dear you are dead!");
  1668.         } else if(c.duelStatus != 6) {
  1669.             c.sendMessage("You have lost the duel!");
  1670.             PlayerSave.saveGame(o);
  1671.                 PlayerSave.saveGame(c);
  1672.         }
  1673.         resetDamageDone();
  1674.         c.lastVeng = 0;
  1675.         c.vengOn = false;
  1676.         resetFollowers();
  1677.         c.attackTimer = 10;
  1678.         removeAllWindows();
  1679.  
  1680.         c.tradeResetNeeded = true;
  1681.         return;
  1682.         }
  1683.                 if (Server.playerHandler.players[c.playerId].connectedFrom != o.lastKilled && c.duelStatus == 0) {
  1684.                     o.pkPoints = (o.pkPoints + 5);
  1685.                     o.playersPked += 1;
  1686.                     o.killStreak += 1;
  1687.                     o.sendMessage("You recieved 5 PkPoints.");
  1688.                     o.sendMessage("You have defeated " +Misc.optimizeText(c.playerName)+ "!");
  1689.                     o.lastKilled = Server.playerHandler.players[c.playerId].connectedFrom;
  1690.                     o.getPA().addSkillXP(20000, 23);
  1691.                         if (o.earningPotential >= 85) {
  1692.                 o.earningPotential -= 40 + Misc.random(50);
  1693.                 int random = (int)(Math.random() * (xEP.length - 1));
  1694.                 Server.itemHandler.createGroundItem(o, xEP[random][0], c.absX, c.absY,
  1695.                                             xEP[random][1], o.playerId);
  1696.                                             o.sendMessage("You recieved an EP drop.");
  1697.                 o.sendMessage("Your EP decreased to: "+c.earningPotential+".");
  1698. }
  1699.                 } else {
  1700.                     //c.getPA().addSkillXP(-4000, 23);
  1701.                     o.sendMessage("<shad=16745472>[Server]</col><shad=65288>Kill Streak not added because you have killed " +c.playerName+ " twice in a row.");
  1702.                     o.sendMessage("<shad=16745472>[Server]</col><shad=65288>You do not recieve Pk-Points because you have killed " +c.playerName+ " twice in a row.");
  1703.                     o.sendMessage("<shad=16745472>[Server]</col><shad=65288>You do not recieve That KC because you have killed " +c.playerName+ " twice in a row.");
  1704.                     if (o.earningPotential >= 85) {
  1705.                 o.earningPotential -= 40 + Misc.random(50);
  1706.                 int random = (int)(Math.random() * (xEP.length - 1));
  1707.                 Server.itemHandler.createGroundItem(o, xEP[random][0], c.absX, c.absY,
  1708.                                             xEP[random][1], c.playerId);
  1709.                 o.sendMessage("Your EP decreased to: "+c.earningPotential+".");
  1710. }
  1711.                 }
  1712.             }
  1713.         }
  1714.         c.faceUpdate(0);
  1715.         c.npcIndex = 0;
  1716.         c.playerIndex = 0;
  1717.         c.stopMovement();
  1718.         if(c.InDung()) {
  1719.         for (int i = 0; i < 24; i++) {
  1720.             c.playerLevel[i] = getLevelForXP(c.playerXP[i]);
  1721.             c.getPA().refreshSkill(i);
  1722.         }
  1723.         c.getCombat().resetPrayers();
  1724.         c.getItems().deleteAllItems();
  1725.         c.sendMessage("Sorry, You have failed to complete Dungeoneering.");
  1726.         c.sendMessage("You find yourself in the Lobby.");
  1727.         c.teleportToX = 1861;
  1728.         c.teleportToY = 4622;
  1729.         PlayerSave.saveGame(c);
  1730.         requestUpdates();
  1731.         return;
  1732.         }
  1733.             if (c.duelStatus <= 4) {
  1734.                 c.killStreak = 0;
  1735.                 c.amountDied += 1;
  1736.                
  1737.                 /**for (int j = 0; j < Server.playerHandler.players.length; j++) {
  1738.                 if (Server.playerHandler.players[j] == null)
  1739.                 continue;
  1740.                 Client all = (Client)Server.playerHandler.players[j];          
  1741.                 all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c2.playerName + " has just killed " + c.playerName + " and is on a KS of " + c2.killStreak + ".");
  1742.             }*/
  1743.                 c.sendMessage("Oh dear you are dead!");
  1744.             } else if(c.duelStatus != 6 || !c.inArena()) {
  1745.                 c.sendMessage("You have lost the duel!");
  1746.                 PlayerSave.saveGame(o);
  1747.                 PlayerSave.saveGame(c);
  1748.                 /*o.getPA().movePlayer(
  1749.                         Config.DUELING_RESPAWN_X
  1750.                                 + (Misc.random(Config.RANDOM_DUELING_RESPAWN)),
  1751.                         Config.DUELING_RESPAWN_Y
  1752.                                 + (Misc.random(Config.RANDOM_DUELING_RESPAWN)), 0);*/
  1753.             }
  1754.         resetDamageDone();
  1755.         c.DC++;
  1756.         c.KC++;
  1757.         c.specAmount = 10;
  1758.         c.getItems().addSpecialBar(c.playerEquipment[c.playerWeapon]);
  1759.         c.lastVeng = 0;
  1760.         c.vengOn = false;
  1761.         resetFollowers();
  1762.         c.attackTimer = 10;
  1763.         //if (Server.playerHandler.players[c.killerId].connectedFrom.equals(Server.playerHandler.players[c.playerKilled].connectedFrom)) {
  1764.         //o.sendMessage("You Don't Recieve PK Points for killing yourself!");
  1765.         //System.out.println(" ");
  1766.         //c.faceUpdate(0);
  1767.         //c.npcIndex = 0;
  1768.         //c.playerIndex = 0;
  1769.         //c.stopMovement();
  1770.         //if(c.duelStatus <= 4) {
  1771.             //c.sendMessage("Oh dear you are dead!");
  1772.            
  1773.         //} else if(c.duelStatus != 6) {
  1774.             //c.sendMessage("You have lost the duel!");
  1775.         //}
  1776.         //resetDamageDone();
  1777.         //c.lastVeng = 0;
  1778.         //c.vengOn = false;
  1779.         //resetFollowers();
  1780.         //c.attackTimer = 10;
  1781.         removeAllWindows();
  1782.         c.tradeResetNeeded = true;
  1783.         return;
  1784.         //}
  1785.     }
  1786.    
  1787.             public void dropitems()
  1788.     {
  1789.     if(c.lastsummon > 0) {
  1790. if(c.totalstored > 0) {
  1791. c.firstslot();
  1792. for(int i = 0; i < 29; i += 1)
  1793. {
  1794. Server.itemHandler.createGroundItem(c, c.storeditems[i], Server.npcHandler.npcs[c.summoningnpcid].absX, Server.npcHandler.npcs[c.summoningnpcid].absY, 1, c.playerId);
  1795. c.storeditems[i] = -1;
  1796. c.occupied[i] = false;
  1797. }
  1798. }
  1799. c.lastsummon = -1;
  1800. c.totalstored = 0;
  1801. c.summoningnpcid = 0;
  1802. c.summoningslot = 0;
  1803. c.storing = false;
  1804. c.sendMessage("Your BoB items have dropped on the floor");
  1805. }  
  1806.     }
  1807.     /**
  1808.     * Location change for digging, levers etc
  1809.     **/
  1810.    
  1811.    
  1812.     public void resetDamageDone() {
  1813.         for (int i = 0; i < PlayerHandler.players.length; i++) {
  1814.             if (PlayerHandler.players[i] != null) {
  1815.                 PlayerHandler.players[i].damageTaken[c.playerId] = 0;          
  1816.             }      
  1817.         }  
  1818.     }
  1819.     /*
  1820. *Vengeance
  1821. */
  1822.     public void castVeng() {
  1823.     if(c.playerLevel[6] < 94) {
  1824.         c.sendMessage("You need a magic level of 94 to cast this spell.");
  1825.         return;
  1826.     }
  1827.     if(c.playerLevel[1] < 40) {
  1828.         c.sendMessage("You need a defence level of 40 to cast this spell.");
  1829.         return;
  1830.     }
  1831.     if(!c.getItems().playerHasItem(9075, 4) || !c.getItems().playerHasItem(557, 10) || !c.getItems().playerHasItem(560, 2)) {
  1832.         c.sendMessage("You don't have the required runes to cast this spell.");
  1833.         return;
  1834.     }
  1835.     if(System.currentTimeMillis() - c.lastCast < 30000) {
  1836.         c.sendMessage("You can only cast vengeance every 30 seconds.");
  1837.         return;
  1838.     }
  1839.     if(c.vengOn) {
  1840.         c.sendMessage("You already have vengeance casted.");
  1841.         return;
  1842.     }
  1843.     c.startAnimation(4410);
  1844.     c.gfx100(726);//Just use c.gfx100
  1845.     c.getItems().deleteItem2(9075, 4);
  1846.     c.getItems().deleteItem2(557, 10);//For these you need to change to deleteItem(item, itemslot, amount);.
  1847.     c.getItems().deleteItem2(560, 2);
  1848.     addSkillXP(2000, 6);
  1849.     c.stopMovement();
  1850.     refreshSkill(6);
  1851.     c.vengOn = true;
  1852.     c.lastCast = System.currentTimeMillis();
  1853.     }
  1854.  
  1855.     public void vengOther() {  
  1856.     if (c.playerIndex > 0) {   
  1857.     Player q = Server.playerHandler.players[c.playerIndex];        
  1858.     final int oX = q.getX();
  1859.     final int oY = q.getY();
  1860.     if(c.playerLevel[6] < 93) {
  1861.         c.sendMessage("You need a magic level of 93 to cast this spell.");
  1862.     c.getCombat().resetPlayerAttack();
  1863.     c.stopMovement();
  1864.     c.turnPlayerTo(oX,oY);
  1865.         return;
  1866.     }
  1867.                 if (!q.acceptAid) {
  1868.                 c.sendMessage("This player has their accept Aid off, therefore you cannot veng them!");
  1869.                 return;
  1870.                 }
  1871.  
  1872.     if(c.playerLevel[1] < 40) {
  1873.         c.sendMessage("You need a defence level of 40 to cast this spell.");
  1874.     c.getCombat().resetPlayerAttack();
  1875.     c.stopMovement();
  1876.     c.turnPlayerTo(oX,oY);
  1877.         return;
  1878.     }
  1879.     if(!c.getItems().playerHasItem(9075, 3) || !c.getItems().playerHasItem(557, 10) || !c.getItems().playerHasItem(560, 2)) {
  1880.         c.sendMessage("You don't have the required runes to cast this spell.");
  1881.     c.getCombat().resetPlayerAttack();
  1882.     c.stopMovement();
  1883.     c.turnPlayerTo(oX,oY);
  1884.         return;
  1885.     }
  1886.     if(System.currentTimeMillis() - c.lastCast < 30000) {
  1887.         c.sendMessage("You can only cast vengeance every 30 seconds.");
  1888.     c.getCombat().resetPlayerAttack();
  1889.     c.stopMovement();
  1890.     c.turnPlayerTo(oX,oY);
  1891.         return;
  1892.     }
  1893.     if(q.vengOn) {
  1894.         c.sendMessage("That player already have vengeance casted.");
  1895.     c.getCombat().resetPlayerAttack();
  1896.     c.stopMovement();
  1897.     c.turnPlayerTo(oX,oY);
  1898.         return;
  1899.     }
  1900.     c.startAnimation(4411);
  1901.     q.gfx100(725);//Just use c.gfx100
  1902.     c.getItems().deleteItem2(9075, 3);
  1903.     c.getItems().deleteItem2(557, 10);//For these you need to change to deleteItem(item, itemslot, amount);.
  1904.     c.getItems().deleteItem2(560, 2);
  1905.     q.vengOn = true;
  1906.     addSkillXP(2000, 6);
  1907.     c.turnPlayerTo(oX,oY);
  1908.     refreshSkill(6);
  1909.     c.getCombat().resetPlayerAttack();
  1910.     c.stopMovement();
  1911.     c.lastCast = System.currentTimeMillis();
  1912. }
  1913. }
  1914. public boolean wearingCape(int cape) {
  1915. int capes[] = {
  1916. 9747, 9748, 9750, 9751,
  1917. 9753, 9754, 9756, 9757,
  1918. 9759, 9760, 9762, 9763,
  1919. 9765, 9766, 9768, 9769,
  1920. 9771, 9772, 9774, 9775,
  1921. 9777, 9778, 9780, 9781,
  1922. 9783, 9784, 9786, 9787,
  1923. 9789, 9790, 9792, 9793,
  1924. 9795, 9796, 9798, 9799,
  1925. 9801, 9802, 9804, 9805,
  1926. 9807, 9808, 9810, 9811,
  1927. 9813, 9948, 9949, 12170
  1928. };
  1929. for(int i = 0; i < capes.length; i++) {
  1930. if(capes[i] == cape) {
  1931. return true;
  1932. }
  1933. }
  1934. return false;
  1935.     }
  1936.     public void vengMe() {
  1937.         if (System.currentTimeMillis() - c.lastVeng > 30000) {
  1938.             if (c.getItems().playerHasItem(557,10) && c.getItems().playerHasItem(9075,4) && c.getItems().playerHasItem(560,2)) {
  1939.                 c.vengOn = true;
  1940.                 c.lastVeng = System.currentTimeMillis();
  1941.                 c.startAnimation(4410);
  1942.                 c.gfx100(726);
  1943.                 c.getItems().deleteItem(557,c.getItems().getItemSlot(557),10);
  1944.                 c.getItems().deleteItem(560,c.getItems().getItemSlot(560),2);
  1945.                 c.getItems().deleteItem(9075,c.getItems().getItemSlot(9075),4);
  1946.             } else {
  1947.                 c.sendMessage("You do not have the required runes to cast this spell. (9075 for astrals)");
  1948.             }
  1949.         } else {
  1950.             c.sendMessage("You must wait 30 seconds before casting this again.");
  1951.         }
  1952.     }
  1953.    
  1954.     public int skillcapeGfx(int cape) {
  1955.         int capeGfx[][] = {
  1956.             {9747, 823}, {9748, 823},
  1957.             {9750, 828}, {9751, 828},
  1958.             {9753, 824}, {9754, 824},
  1959.             {9756, 832}, {9757, 832},
  1960.             {9759, 829}, {9760, 829},
  1961.             {9762, 813}, {9763, 813},
  1962.             {9765, 817}, {9766, 817},
  1963.             {9768, 833}, {9769, 833},
  1964.             {9771, 830}, {9772, 830},
  1965.             {9774, 835}, {9775, 835},
  1966.             {9777, 826}, {9778, 826},
  1967.             {9780, 818}, {9781, 818},
  1968.             {9783, 812}, {9784, 812},
  1969.             {9786, 827}, {9787, 827},
  1970.             {9789, 820}, {9790, 820},
  1971.             {9792, 814}, {9793, 814},
  1972.             {9795, 815}, {9796, 815},
  1973.             {9798, 819}, {9799, 819},
  1974.             {9801, 821}, {9802, 821},
  1975.             {9804, 831}, {9805, 831},
  1976.             {9807, 822}, {9808, 822},
  1977.             {9810, 825}, {9811, 825},
  1978.             {9948, 907}, {9949, 907},
  1979.             {9813, 816}, {12170, 1515}
  1980.         };
  1981.         for(int i = 0; i < capeGfx.length; i++) {
  1982.             if(capeGfx[i][0] == cape) {
  1983.                 return capeGfx[i][1];
  1984.             }
  1985.         }
  1986.         return -1;
  1987.     }
  1988.    
  1989.     public int skillcapeEmote(int cape) {
  1990.         int capeEmote[][] = {
  1991.             {9747, 4959}, {9748, 4959},
  1992.             {9750, 4981}, {9751, 4981},
  1993.             {9753, 4961}, {9754, 4961},
  1994.             {9756, 4973}, {9757, 4973},
  1995.             {9759, 4979}, {9760, 4979},
  1996.             {9762, 4939}, {9763, 4939},
  1997.             {9765, 4947}, {9766, 4947},
  1998.             {9768, 4971}, {9769, 4971},
  1999.             {9771, 4977}, {9772, 4977},
  2000.             {9774, 4969}, {9775, 4969},
  2001.             {9777, 4965}, {9778, 4965},
  2002.             {9780, 4949}, {9781, 4949},
  2003.             {9783, 4937}, {9784, 4937},
  2004.             {9786, 4967}, {9787, 4967},
  2005.             {9789, 4953}, {9790, 4953},
  2006.             {9792, 4941}, {9793, 4941},
  2007.             {9795, 4943}, {9796, 4943},
  2008.             {9798, 4951}, {9799, 4951},
  2009.             {9801, 4955}, {9802, 4955},
  2010.             {9804, 4975}, {9805, 4975},
  2011.             {9807, 4957}, {9808, 4957},
  2012.             {9810, 4963}, {9811, 4963},
  2013.             {9948, 5158}, {9949, 5158},
  2014.             {9813, 4945}, {12170, 8525}
  2015.         };
  2016.         for(int i = 0; i < capeEmote.length; i++) {
  2017.             if(capeEmote[i][0] == cape) {
  2018.                 return capeEmote[i][1];
  2019.             }
  2020.         }
  2021.         return -1;
  2022.     }
  2023.  
  2024.     public void resetTb() {
  2025.         c.teleBlockLength = 0;
  2026.         c.teleBlockDelay = 0;  
  2027.     }
  2028.    
  2029.     public void handleStatus(int i, int i2, int i3) {
  2030.         //Sanity u so smart
  2031.     }
  2032.    
  2033.     public void resetFollowers() {
  2034.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  2035.             if (Server.playerHandler.players[j] != null) {
  2036.                 if (Server.playerHandler.players[j].followId == c.playerId) {
  2037.                     Client c = (Client)Server.playerHandler.players[j];
  2038.                     c.getPA().resetFollow();
  2039.                 }          
  2040.             }      
  2041.         }  
  2042.     }
  2043.    
  2044.     public void giveLife() {
  2045.         c.isDead = false;
  2046.         c.faceUpdate(-1);
  2047.         c.freezeTimer = 0;
  2048.        
  2049.         if(c.playerRights == 3) {
  2050.         for (int i = 0; i < 20; i++) {
  2051.             c.playerLevel[i] = getLevelForXP(c.playerXP[i]);
  2052.             c.getPA().refreshSkill(i);
  2053.         }
  2054.         c.getCombat().resetPrayers();
  2055.  
  2056.         c.teleportToX = 3300;
  2057.         c.teleportToY = 3300;
  2058. PlayerSave.saveGame(c);
  2059. c.getPA().resetTzhaar();
  2060. requestUpdates();
  2061. return;
  2062.        
  2063.         }
  2064.         if(c.duelStatus <= 4 && !c.getPA().inPitsWait()) { // if we are not in a duel we must be in wildy so remove items
  2065.             if (!c.inPits && !c.inFightCaves() && !c.inPcGame() && !c.inZombieCaves() && !c.inFunPk()) {
  2066.                     c.getItems().resetKeepItems();
  2067.                 if((c.playerRights == 5 && Config.ADMIN_DROP_ITEMS) || c.playerRights != 5) {
  2068.                     if(!c.isSkulled && !c.isInArd()) {  // what items to keep
  2069.                         c.getItems().keepItem(0, true);
  2070.                         c.getItems().keepItem(1, true);
  2071.                         c.getItems().keepItem(2, true);
  2072.                     }  
  2073.                     if(c.prayerActive[10] || c.curseActive[0] && System.currentTimeMillis() - c.lastProtItem > 700) {
  2074.                         c.getItems().keepItem(3, true);
  2075.                     }
  2076.                     c.getItems().dropAllItems(); // drop all items
  2077.                     c.getItems().deleteAllItems(); // delete all items
  2078.                
  2079.                     if(!c.isSkulled && !c.isInArd()) { // add the kept items once we finish deleting and dropping them 
  2080.                         for (int i1 = 0; i1 < 3; i1++) {
  2081.                             if(c.itemKeptId[i1] > 0) {
  2082.                                 c.getItems().addItem(c.itemKeptId[i1], 1);
  2083.                             }
  2084.                         }
  2085.                     }  
  2086.                     if(c.prayerActive[10] || c.isInArd()) { // if we have protect items
  2087.                         if(c.itemKeptId[3] > 0) {
  2088.                             c.getItems().addItem(c.itemKeptId[3], 1);
  2089.                         }
  2090.                     }
  2091.                 }
  2092.                 c.getItems().resetKeepItems();
  2093.             } else if (c.inPits) {
  2094.                 Server.fightPits.removePlayerFromPits(c.playerId);
  2095.                 c.pitsStatus = 1;
  2096.             }
  2097.         }
  2098.         c.getCombat().resetPrayers();
  2099.         for (int i = 0; i < 25; i++) {
  2100.             c.playerLevel[i] = getLevelForXP(c.playerXP[i]);
  2101.             c.getPA().refreshSkill(i);
  2102.         }
  2103.         if (c.playerEquipment[c.playerRing] == 2570) {
  2104.             if (c.playerLevel[3] > 0 && c.playerLevel[3] <= c.getLevelForXP(c.playerXP[3]) / 10 && c.underAttackBy > 0) {
  2105.                 int wildlvl = (((c.absY - 3520) / 8) + 1);
  2106.                 if (wildlvl < 20) {
  2107.                     c.getItems().deleteEquipment(2570, c.playerRing);
  2108.             c.getPA().startTeleport(2834, 3335, 0, "modern");
  2109.             }
  2110.         }
  2111.     }
  2112.         if (c.pitsStatus == 1) {
  2113.             movePlayer(2399, 5173, 0);
  2114.         } else if(c.duelStatus <= 4) { // if we are not in a duel repawn to wildy
  2115. movePlayer(c.SETHOMEX, c.SETHOMEY, 0);
  2116. c.isSkulled = false;
  2117. c.skullTimer = 0;
  2118. c.attackedPlayers.clear();
  2119.         } else if (c.inFightCaves()) {
  2120.             c.getPA().resetTzhaar();
  2121.         } else if (c.inZombieCaves()) {
  2122.             c.getPA().resetZombies();
  2123.         } else { // we are in a duel, respawn outside of arena
  2124.             Client o = (Client) Server.playerHandler.players[c.duelingWith];
  2125.             if(o != null) {
  2126.                 o.getPA().createPlayerHints(10, -1);
  2127.                 if(o.duelStatus == 6) {
  2128.                     o.getTradeAndDuel().duelVictory();
  2129.                 }
  2130.             }
  2131.             movePlayer(Config.DUELING_RESPAWN_X+(Misc.random(Config.RANDOM_DUELING_RESPAWN)), Config.DUELING_RESPAWN_Y+(Misc.random(Config.RANDOM_DUELING_RESPAWN)), 0);
  2132.             if(c.duelStatus != 6) { // if we have won but have died, don't reset the duel status.
  2133.                 c.getTradeAndDuel().resetDuel();
  2134.             }
  2135.         }
  2136.         //PlayerSaving.getSingleton().requestSave(c.playerId);
  2137.         PlayerSave.saveGame(c);
  2138.         c.getCombat().resetPlayerAttack();
  2139.         resetAnimation();
  2140.         c.startAnimation(-1);
  2141.         frame1();
  2142.         resetTb();
  2143.         c.isSkulled = false;
  2144.         c.attackedPlayers.clear();
  2145.         c.headIconPk = -1;
  2146.         c.skullTimer = -1;
  2147.         c.damageTaken = new int[Config.MAX_PLAYERS];
  2148.         c.getPA().requestUpdates();
  2149.         removeAllWindows();
  2150.         c.tradeResetNeeded = true; 
  2151.  
  2152.  
  2153.     }
  2154.        
  2155.     /**
  2156.     * Location change for digging, levers etc
  2157.     **/
  2158.    
  2159.     public void changeLocation() {
  2160.         switch(c.newLocation) {
  2161.             case 1:
  2162.             sendFrame99(2);
  2163.             movePlayer(3578,9706,-1);
  2164.             break;
  2165.             case 2:
  2166.             sendFrame99(2);
  2167.             movePlayer(3568,9683,-1);
  2168.             break;
  2169.             case 3:
  2170.             sendFrame99(2);
  2171.             movePlayer(3557,9703,-1);
  2172.             break;
  2173.             case 4:
  2174.             sendFrame99(2);
  2175.             movePlayer(3556,9718,-1);
  2176.             break;
  2177.             case 5:
  2178.             sendFrame99(2);
  2179.             movePlayer(3534,9704,-1);
  2180.             break;
  2181.             case 6:
  2182.             sendFrame99(2);
  2183.             movePlayer(3546,9684,-1);
  2184.             break;
  2185.             case 7:
  2186.             sendFrame99(2);
  2187.             movePlayer(3546,9684,-1);
  2188.             break;
  2189.         }
  2190.         c.newLocation = 0;
  2191.     }
  2192.    
  2193.    
  2194.     /**
  2195.     * Teleporting
  2196.     **/
  2197.     public void spellTeleport(int x, int y, int height) {
  2198.         c.getPA().startTeleport(x, y, height, c.playerMagicBook == 1 ? "ancient" : "modern");
  2199.     }
  2200.     public void startMovement(int x, int y, int height) {
  2201.         if(c.duelStatus == 5) {
  2202.             c.sendMessage("You can't teleport during a duel!");
  2203.             return;
  2204.         }
  2205.         if(c.InDung()) {
  2206.             c.sendMessage("You cannot teleport out of Dungeoneering!.");
  2207.             return;
  2208.         }
  2209.         if(c.inRFD()) {
  2210.             c.sendMessage("You can't teleport out of this minigame!");
  2211.             return;
  2212.         }
  2213.         if(c.Jail == true) {
  2214.             c.sendMessage("You can't teleport out of prison idiot!");
  2215.             return;
  2216.         }
  2217.         if(c.inJail() && c.Jail == true) {
  2218.             c.sendMessage("You can't teleport out of prison idiot!");
  2219.             return;
  2220.         }
  2221.         if(c.inWarriorG() && c.heightLevel == 2) {
  2222.             c.sendMessage("You can't teleport out of Warrior Guild!");
  2223.             return;
  2224.         }
  2225.         if(c.inGWD()) {
  2226.         ResetGWKC();
  2227.         }
  2228.         if(c.inFightCaves()) {
  2229.             c.sendMessage("You can't teleport out of this minigame!");
  2230.             return;
  2231.         }
  2232.         if(c.inWild() && c.wildLevel > Config.NO_TELEPORT_WILD_LEVEL) {
  2233.             c.sendMessage("You can't teleport above level "+Config.NO_TELEPORT_WILD_LEVEL+" in the wilderness.");
  2234.             return;
  2235.         }
  2236.         if(System.currentTimeMillis() - c.teleBlockDelay < c.teleBlockLength) {
  2237.             c.sendMessage("You are teleblocked and can't teleport.");
  2238.             return;
  2239.         }
  2240.         if(!c.isDead && c.teleTimer == 0 && c.respawnTimer == -6) {
  2241.             if (c.playerIndex > 0 || c.npcIndex > 0)
  2242.                 c.getCombat().resetPlayerAttack();
  2243.             c.stopMovement();
  2244.             EarningPotential.checkTeleport(c);
  2245.             removeAllWindows();        
  2246.             c.teleX = x;
  2247.             c.teleY = y;
  2248.             c.npcIndex = 0;
  2249.             c.playerIndex = 0;
  2250.             c.faceUpdate(0);
  2251.             c.teleHeight = height;
  2252.  
  2253.             }
  2254.        
  2255.        
  2256.     }  
  2257.     public void startTeleport(int x, int y, int height, String teleportType) {
  2258.         if(c.inWild() && c.wildLevel > Config.NO_TELEPORT_WILD_LEVEL && !c.inFunPk()) {
  2259.                         c.sendMessage("You can't teleport above level "+Config.NO_TELEPORT_WILD_LEVEL+" in the wilderness.");
  2260.                         return;
  2261.         }
  2262.         if(c.duelStatus == 5) {
  2263.             c.sendMessage("You can't teleport during a duel!");
  2264.             return;
  2265.         }
  2266.         if(c.InDung()) {
  2267.             c.sendMessage("You cannot teleport out of Dungeoneering!.");
  2268.             return;
  2269.         }
  2270.         if(c.inPits || c.viewingOrb || inPitsWait()) {
  2271.             c.sendMessage("You can't teleport in here!");
  2272.             return;
  2273.         }
  2274.         if(c.inGWD()) {
  2275.         ResetGWKC();
  2276.         }
  2277.         if(c.inJail() && c.Jail == true) {
  2278.             c.sendMessage("You can't teleport out of prison fucking fool!");
  2279.             return;
  2280.         }
  2281.         if(c.Jail == true) {
  2282.             c.sendMessage("You can't teleport out of prison fucking goon!");
  2283.             return;
  2284.         }
  2285.         if(c.inWarriorG() && c.heightLevel == 2) {
  2286.             c.sendMessage("You can't teleport out of Warrior Guild!");
  2287.             return;
  2288.         }
  2289.         if(c.inRFD()) {
  2290.             c.sendMessage("You can't teleport out of this minigame!");
  2291.             return;
  2292.         }
  2293.         if(c.inFightCaves()) {
  2294.             c.sendMessage("You can't teleport out of this minigame!");
  2295.             return;
  2296.         }
  2297.         if(c.inWild() && c.wildLevel > Config.NO_TELEPORT_WILD_LEVEL) {
  2298.             c.sendMessage("You can't teleport above level "+Config.NO_TELEPORT_WILD_LEVEL+" in the wilderness.");
  2299.             return;
  2300.         }
  2301.         if(c.inWild() && !c.getItems().playerHasItem(563, 0)) {
  2302.             c.sendMessage("You must have a law rune to teleport out of the wilderness.");
  2303.             return;
  2304.         }
  2305.         if(System.currentTimeMillis() - c.teleBlockDelay < c.teleBlockLength) {
  2306.             c.sendMessage("You are teleblocked and can't teleport.");
  2307.             return;
  2308.         }
  2309.         if(!c.isDead && c.teleTimer == 0 && c.respawnTimer == -6) {
  2310.             if (c.playerIndex > 0 || c.npcIndex > 0)
  2311.                 c.getCombat().resetPlayerAttack();
  2312.             c.stopMovement();
  2313.             EarningPotential.checkTeleport(c);
  2314.             removeAllWindows();        
  2315.             c.teleX = x;
  2316.             c.teleY = y;
  2317.             c.npcIndex = 0;
  2318.             c.playerIndex = 0;
  2319.             c.faceUpdate(0);
  2320.             c.teleHeight = height;
  2321.  if(teleportType.equalsIgnoreCase("modern")) {
  2322.                 c.startAnimation(8939);
  2323.                 c.teleTimer = 9;
  2324.                 c.gfx0(1576);
  2325.                 c.teleEndAnimation = 8941;
  2326.             }
  2327.  
  2328.             if(teleportType.equalsIgnoreCase("dungtele")) {
  2329.                     c.startAnimation(13652);
  2330.                 c.teleTimer = 16;
  2331.                 c.gfx0(2602);
  2332.                 c.teleEndAnimation = 13654;
  2333.             }
  2334.                        
  2335.                         if(teleportType.equalsIgnoreCase("ancient")) {
  2336.                 c.startAnimation(1979);
  2337.                 c.teleGfx = 0;
  2338.                 c.teleTimer = 11;
  2339.                 c.teleEndAnimation = 0;
  2340.                 c.gfx0(1681);
  2341.             }
  2342.            
  2343.         }
  2344.     }
  2345.     public void startTeleport2(int x, int y, int height) {
  2346.         if(c.duelStatus == 5) {
  2347.             c.sendMessage("You can't teleport during a duel!");
  2348.             return;
  2349.         }
  2350.         if(c.Jail == true) {
  2351.             c.sendMessage("You can't teleport out of prison idiot!");
  2352.             return;
  2353.         }
  2354.         if(c.InDung()) {
  2355.             c.sendMessage("You cannot teleport out of Dungeoneering!.");
  2356.             return;
  2357.         }
  2358.         if(c.inGWD()) {
  2359.         ResetGWKC();
  2360.         }
  2361.         if(c.inJail() && c.Jail == true) {
  2362.             c.sendMessage("You can't teleport out of prison fucking goon!");
  2363.             return;
  2364.         }
  2365.         if(System.currentTimeMillis() - c.teleBlockDelay < c.teleBlockLength) {
  2366.             c.sendMessage("You are teleblocked and can't teleport.");
  2367.             return;
  2368.         }
  2369.         if(!c.isDead && c.teleTimer == 0) {        
  2370.             c.stopMovement();
  2371.             removeAllWindows();        
  2372.             c.teleX = x;
  2373.             c.teleY = y;
  2374.             c.npcIndex = 0;
  2375.             c.playerIndex = 0;
  2376.             c.faceUpdate(0);
  2377.             c.teleHeight = height;
  2378.             c.startAnimation(714);
  2379.             c.teleTimer = 11;
  2380.             c.teleGfx = 308;
  2381.             c.teleEndAnimation = 715;
  2382.            
  2383.         }
  2384.     }
  2385.  
  2386.     public void processTeleport() {
  2387.         c.teleportToX = c.teleX;
  2388.         c.teleportToY = c.teleY;
  2389.         c.heightLevel = c.teleHeight;
  2390.         if(c.teleEndAnimation > 0) {
  2391.             c.startAnimation(c.teleEndAnimation);
  2392.         }
  2393.     }
  2394.        
  2395.     public void movePlayer(int x, int y, int h) {
  2396.         c.resetWalkingQueue();
  2397.         c.teleportToX = x;
  2398.         c.teleportToY = y;
  2399.         c.heightLevel = h;
  2400.         requestUpdates();
  2401.     }
  2402.    
  2403.     /**
  2404.     * Following
  2405.     **/
  2406.    
  2407.     /*public void Player() {
  2408.         if(Server.playerHandler.players[c.followId] == null || Server.playerHandler.players[c.followId].isDead) {
  2409.             c.getPA().resetFollow();
  2410.             return;
  2411.         }      
  2412.         if(c.freezeTimer > 0) {
  2413.             return;
  2414.         }
  2415.         int otherX = Server.playerHandler.players[c.followId].getX();
  2416.         int otherY = Server.playerHandler.players[c.followId].getY();
  2417.         boolean withinDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
  2418.         boolean hallyDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
  2419.         boolean bowDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 6);
  2420.         boolean rangeWeaponDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
  2421.         boolean sameSpot = (c.absX == otherX && c.absY == otherY);
  2422.         if(!c.goodDistance(otherX, otherY, c.getX(), c.getY(), 25)) {
  2423.             c.followId = 0;
  2424.             c.getPA().resetFollow();
  2425.             return;
  2426.         }
  2427.         c.faceUpdate(c.followId+32768);
  2428.         if ((c.usingBow || c.mageFollow || c.autocastId > 0 && (c.npcIndex > 0 || c.playerIndex > 0)) && bowDistance && !sameSpot) {
  2429.             c.stopMovement();
  2430.             return;
  2431.         }  
  2432.         if (c.usingRangeWeapon && rangeWeaponDistance && !sameSpot && (c.npcIndex > 0 || c.playerIndex > 0)) {
  2433.             c.stopMovement();
  2434.             return;
  2435.         }  
  2436.         if(c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1) && !sameSpot) {
  2437.             return;
  2438.         }
  2439.         c.outStream.createFrame(174);
  2440.         boolean followPlayer = c.followId > 0;
  2441.         if (c.freezeTimer <= 0)
  2442.             if (followPlayer)
  2443.                 c.outStream.writeWord(c.followId);
  2444.             else
  2445.                 c.outStream.writeWord(c.followId2);
  2446.         else
  2447.             c.outStream.writeWord(0);
  2448.        
  2449.         if (followPlayer)
  2450.             c.outStream.writeByte(1);
  2451.         else
  2452.             c.outStream.writeByte(0);
  2453.         if (c.usingBow && c.playerIndex > 0)
  2454.             c.followDistance = 5;
  2455.         else if (c.usingRangeWeapon && c.playerIndex > 0)
  2456.             c.followDistance = 3;
  2457.         else if (c.spellId > 0 && c.playerIndex > 0)
  2458.             c.followDistance = 5;
  2459.         else
  2460.             c.followDistance = 1;
  2461.         c.outStream.writeWord(c.followDistance);
  2462.     }*/
  2463.    
  2464.     public void followPlayer(int i) {
  2465.         if(Server.playerHandler.players[c.followId] == null || Server.playerHandler.players[c.followId].isDead) {
  2466.             c.followId = 0;
  2467.             return;
  2468.         }      
  2469.         if(c.freezeTimer > 0) {
  2470.             return;
  2471.         }
  2472.         if(c.inWG()) {
  2473.             c.followId = 0;
  2474.             return;
  2475.         }
  2476.         if(c.inDuelArena()) {
  2477.             c.followId = 0;
  2478.             return;
  2479.         }
  2480.         if(inPitsWait()) {
  2481.             c.followId = 0;
  2482.         }
  2483.         if(c.InDung()) {
  2484.                         c.sendMessage("you cannot follow in Dungoneering!");
  2485.                         c.followId = 0;
  2486.                         return;
  2487.                 }
  2488.                 if(c.inJail() && c.Jail == true) {
  2489.             c.sendMessage("You cannot follow in jail!");
  2490.             c.followId = 0;
  2491.             return;
  2492.         }
  2493.         if(c.Jail == true) {
  2494.             c.sendMessage("You cannot follow in jail!");
  2495.             c.followId = 0;
  2496.             return;
  2497.         }
  2498.         if (c.isDead || c.playerLevel[3] <= 0)
  2499.             return;
  2500.        
  2501.         int otherX = Server.playerHandler.players[c.followId].getX();
  2502.         int otherY = Server.playerHandler.players[c.followId].getY();
  2503.         boolean withinDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
  2504.         boolean goodDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1);
  2505.         boolean hallyDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
  2506.         boolean bowDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 8);
  2507.         boolean rangeWeaponDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 4);
  2508.         boolean sameSpot = c.absX == otherX && c.absY == otherY;
  2509.         if(!c.goodDistance(otherX, otherY, c.getX(), c.getY(), 25)) {
  2510.             c.followId = 0;
  2511.             return;
  2512.         }
  2513.         if(c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1)) {
  2514.             if (otherX != c.getX() && otherY != c.getY()) {
  2515.                 stopDiagonal(otherX, otherY);
  2516.                 return;
  2517.             }
  2518.         }
  2519.        
  2520.         if((c.usingBow || c.mageFollow || (c.playerIndex > 0 && c.autocastId > 0)) && bowDistance && !sameSpot) {
  2521.             return;
  2522.         }
  2523.  
  2524.         if(c.getCombat().usingHally() && hallyDistance && !sameSpot) {
  2525.             return;
  2526.         }
  2527.  
  2528.         if(c.usingRangeWeapon && rangeWeaponDistance && !sameSpot) {
  2529.             return;
  2530.         }
  2531.        
  2532.         c.faceUpdate(c.followId+32768);
  2533.        
  2534.         if (otherY == c.getY() && otherX == c.getX()) {        
  2535.             switch(Misc.random(3))  {
  2536.                 case 0:
  2537.                 walkTo(0, getMove(c.getX(), otherX - 1));
  2538.                 break;
  2539.                
  2540.                 case 1:
  2541.                 walkTo(0, getMove(c.getX(), otherX + 1));
  2542.                 break;
  2543.                
  2544.                 case 2:
  2545.                 walkTo(0, getMove(c.getY(), otherY + 1));
  2546.                 break;
  2547.                
  2548.                 case 3:
  2549.                 walkTo(0, getMove(c.getY(), otherY - 1));
  2550.                 break;
  2551.             }
  2552.         }      
  2553.         if(c.isRunning2 && !withinDistance) {
  2554.             if(otherY > c.getY() && otherX == c.getX()) {
  2555.                 walkTo(0, getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
  2556.             } else if(otherY < c.getY() && otherX == c.getX()) {
  2557.                 walkTo(0, getMove(c.getY(), otherY + 1) + getMove(c.getY(), otherY + 1));
  2558.             } else if(otherX > c.getX() && otherY == c.getY()) {
  2559.                 walkTo(getMove(c.getX(), otherX - 1) + getMove(c.getX(), otherX - 1), 0);
  2560.             } else if(otherX < c.getX() && otherY == c.getY()) {
  2561.                 walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), 0);
  2562.             } else if(otherX < c.getX() && otherY < c.getY()) {
  2563.                 walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY + 1) + getMove(c.getY(), otherY + 1));
  2564.             } else if(otherX > c.getX() && otherY > c.getY()) {
  2565.                 walkTo(getMove(c.getX(), otherX - 1) + getMove(c.getX(), otherX - 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
  2566.             } else if(otherX < c.getX() && otherY > c.getY()) {
  2567.                 walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
  2568.             } else if(otherX > c.getX() && otherY < c.getY()) {
  2569.                 walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
  2570.             }      
  2571.         } else {
  2572.             if(otherY > c.getY() && otherX == c.getX()) {
  2573.                 walkTo(0, getMove(c.getY(), otherY - 1));
  2574.             } else if(otherY < c.getY() && otherX == c.getX()) {
  2575.                 walkTo(0, getMove(c.getY(), otherY + 1));
  2576.             } else if(otherX > c.getX() && otherY == c.getY()) {
  2577.                 walkTo(getMove(c.getX(), otherX - 1), 0);
  2578.             } else if(otherX < c.getX() && otherY == c.getY()) {
  2579.                 walkTo(getMove(c.getX(), otherX + 1), 0);
  2580.             } else if(otherX < c.getX() && otherY < c.getY()) {
  2581.                 walkTo(getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY + 1));
  2582.             } else if(otherX > c.getX() && otherY > c.getY()) {
  2583.                 walkTo(getMove(c.getX(), otherX - 1), getMove(c.getY(), otherY - 1));
  2584.             } else if(otherX < c.getX() && otherY > c.getY()) {
  2585.                 walkTo(getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY - 1));
  2586.             } else if(otherX > c.getX() && otherY < c.getY()) {
  2587.                 walkTo(getMove(c.getX(), otherX - 1), getMove(c.getY(), otherY + 1));
  2588.             }
  2589.         }
  2590.     }
  2591.    
  2592.     public void followNpc() {
  2593.         if(Server.npcHandler.npcs[c.followId2] == null || Server.npcHandler.npcs[c.followId2].isDead) {
  2594.             c.followId2 = 0;
  2595.             return;
  2596.         }      
  2597.         if(c.freezeTimer > 0) {
  2598.             return;
  2599.         }
  2600.         if(c.inWG()) {
  2601.             c.followId = 0;
  2602.             return;
  2603.         }
  2604.         if(c.inDuelArena()) {
  2605.             c.followId = 0;
  2606.             return;
  2607.         }
  2608.         if(c.inJail() && c.Jail == true) {
  2609.             c.sendMessage("You cannot follow in jail!");
  2610.             c.followId = 0;
  2611.             return;
  2612.         }
  2613.         if(c.Jail == true) {
  2614.             c.sendMessage("You cannot follow in jail!");
  2615.             c.followId = 0;
  2616.             return;
  2617.         }
  2618.         if (c.isDead || c.playerLevel[3] <= 0)
  2619.             return;
  2620.        
  2621.         int otherX = Server.npcHandler.npcs[c.followId2].getX();
  2622.         int otherY = Server.npcHandler.npcs[c.followId2].getY();
  2623.         boolean withinDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
  2624.         boolean goodDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1);
  2625.         boolean hallyDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 2);
  2626.         boolean bowDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 8);
  2627.         boolean rangeWeaponDistance = c.goodDistance(otherX, otherY, c.getX(), c.getY(), 4);
  2628.         boolean sameSpot = c.absX == otherX && c.absY == otherY;
  2629.         if(!c.goodDistance(otherX, otherY, c.getX(), c.getY(), 25)) {
  2630.             c.followId2 = 0;
  2631.             return;
  2632.         }
  2633.         if(c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1)) {
  2634.             if (otherX != c.getX() && otherY != c.getY()) {
  2635.                 stopDiagonal(otherX, otherY);
  2636.                 return;
  2637.             }
  2638.         }
  2639.        
  2640.         if((c.usingBow || c.mageFollow || (c.npcIndex > 0 && c.autocastId > 0)) && bowDistance && !sameSpot) {
  2641.             return;
  2642.         }
  2643.  
  2644.         if(c.getCombat().usingHally() && hallyDistance && !sameSpot) {
  2645.             return;
  2646.         }
  2647.  
  2648.         if(c.usingRangeWeapon && rangeWeaponDistance && !sameSpot) {
  2649.             return;
  2650.         }
  2651.        
  2652.         c.faceUpdate(c.followId2);
  2653.         if (otherX == c.absX && otherY == c.absY) {
  2654.             int r = Misc.random(3);
  2655.             switch (r) {
  2656.                 case 0:
  2657.                     walkTo(0,-1);
  2658.                 break;
  2659.                 case 1:
  2660.                     walkTo(0,1);
  2661.                 break;
  2662.                 case 2:
  2663.                     walkTo(1,0);
  2664.                 break;
  2665.                 case 3:
  2666.                     walkTo(-1,0);
  2667.                 break;         
  2668.             }      
  2669.         } else if(c.isRunning2 && !withinDistance) {
  2670.             if(otherY > c.getY() && otherX == c.getX()) {
  2671.                 walkTo(0, getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
  2672.             } else if(otherY < c.getY() && otherX == c.getX()) {
  2673.                 walkTo(0, getMove(c.getY(), otherY + 1) + getMove(c.getY(), otherY + 1));
  2674.             } else if(otherX > c.getX() && otherY == c.getY()) {
  2675.                 walkTo(getMove(c.getX(), otherX - 1) + getMove(c.getX(), otherX - 1), 0);
  2676.             } else if(otherX < c.getX() && otherY == c.getY()) {
  2677.                 walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), 0);
  2678.             } else if(otherX < c.getX() && otherY < c.getY()) {
  2679.                 walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY + 1) + getMove(c.getY(), otherY + 1));
  2680.             } else if(otherX > c.getX() && otherY > c.getY()) {
  2681.                 walkTo(getMove(c.getX(), otherX - 1) + getMove(c.getX(), otherX - 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
  2682.             } else if(otherX < c.getX() && otherY > c.getY()) {
  2683.                 walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
  2684.             } else if(otherX > c.getX() && otherY < c.getY()) {
  2685.                 walkTo(getMove(c.getX(), otherX + 1) + getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 1));
  2686.             }
  2687.         } else {
  2688.             if(otherY > c.getY() && otherX == c.getX()) {
  2689.                 walkTo(0, getMove(c.getY(), otherY - 1));
  2690.             } else if(otherY < c.getY() && otherX == c.getX()) {
  2691.                 walkTo(0, getMove(c.getY(), otherY + 1));
  2692.             } else if(otherX > c.getX() && otherY == c.getY()) {
  2693.                 walkTo(getMove(c.getX(), otherX - 1), 0);
  2694.             } else if(otherX < c.getX() && otherY == c.getY()) {
  2695.                 walkTo(getMove(c.getX(), otherX + 1), 0);
  2696.             } else if(otherX < c.getX() && otherY < c.getY()) {
  2697.                 walkTo(getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY + 1));
  2698.             } else if(otherX > c.getX() && otherY > c.getY()) {
  2699.                 walkTo(getMove(c.getX(), otherX - 1), getMove(c.getY(), otherY - 1));
  2700.             } else if(otherX < c.getX() && otherY > c.getY()) {
  2701.                 walkTo(getMove(c.getX(), otherX + 1), getMove(c.getY(), otherY - 1));
  2702.             } else if(otherX > c.getX() && otherY < c.getY()) {
  2703.                 walkTo(getMove(c.getX(), otherX - 1), getMove(c.getY(), otherY + 1));
  2704.             }
  2705.         }
  2706.         c.faceUpdate(c.followId2);
  2707.     }
  2708.    
  2709.  
  2710.    
  2711.    
  2712.     public int getRunningMove(int i, int j) {
  2713.         if (j - i > 2)
  2714.             return 2;
  2715.         else if (j - i < -2)
  2716.             return -2;
  2717.         else return j-i;
  2718.     }
  2719.    
  2720.     public void resetFollow() {
  2721.         c.followId = 0;
  2722.         c.followId2 = 0;
  2723.         c.mageFollow = false;
  2724.         c.outStream.createFrame(174);
  2725.         c.outStream.writeWord(0);
  2726.         c.outStream.writeByte(0);
  2727.         c.outStream.writeWord(1);
  2728.     }
  2729.    
  2730.     public void walkTo(int i, int j) {
  2731.         c.newWalkCmdSteps = 0;
  2732.         if(++c.newWalkCmdSteps > 50)
  2733.             c.newWalkCmdSteps = 0;
  2734.         int k = c.getX() + i;
  2735.         k -= c.mapRegionX * 8;
  2736.         c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = 0;
  2737.         int l = c.getY() + j;
  2738.         l -= c.mapRegionY * 8;
  2739.  
  2740.         for(int n = 0; n < c.newWalkCmdSteps; n++) {
  2741.             c.getNewWalkCmdX()[n] += k;
  2742.             c.getNewWalkCmdY()[n] += l;
  2743.         }
  2744.     }
  2745.    
  2746.     public void walkTo2(int i, int j) {
  2747.         if (c.freezeDelay > 0)
  2748.             return;
  2749.         c.newWalkCmdSteps = 0;
  2750.         if(++c.newWalkCmdSteps > 50)
  2751.             c.newWalkCmdSteps = 0;
  2752.         int k = c.getX() + i;
  2753.         k -= c.mapRegionX * 8;
  2754.         c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = 0;
  2755.         int l = c.getY() + j;
  2756.         l -= c.mapRegionY * 8;
  2757.  
  2758.         for(int n = 0; n < c.newWalkCmdSteps; n++) {
  2759.             c.getNewWalkCmdX()[n] += k;
  2760.             c.getNewWalkCmdY()[n] += l;
  2761.         }
  2762.     }
  2763.    
  2764.     public void stopDiagonal(int otherX, int otherY) {
  2765.         if (c.freezeDelay > 0)
  2766.             return;
  2767.         c.newWalkCmdSteps = 1;
  2768.         int xMove = otherX - c.getX();
  2769.         int yMove = 0;
  2770.         if (xMove == 0)
  2771.             yMove = otherY - c.getY();
  2772.         /*if (!clipHor) {
  2773.             yMove = 0;
  2774.         } else if (!clipVer) {
  2775.             xMove = 0; 
  2776.         }*/
  2777.        
  2778.         int k = c.getX() + xMove;
  2779.         k -= c.mapRegionX * 8;
  2780.         c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = 0;
  2781.         int l = c.getY() + yMove;
  2782.         l -= c.mapRegionY * 8;
  2783.        
  2784.         for(int n = 0; n < c.newWalkCmdSteps; n++) {
  2785.             c.getNewWalkCmdX()[n] += k;
  2786.             c.getNewWalkCmdY()[n] += l;
  2787.         }
  2788.        
  2789.     }
  2790.    
  2791.        
  2792.    
  2793.     public void walkToCheck(int i, int j) {
  2794.         if (c.freezeDelay > 0)
  2795.             return;
  2796.         c.newWalkCmdSteps = 0;
  2797.         if(++c.newWalkCmdSteps > 50)
  2798.             c.newWalkCmdSteps = 0;
  2799.         int k = c.getX() + i;
  2800.         k -= c.mapRegionX * 8;
  2801.         c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = 0;
  2802.         int l = c.getY() + j;
  2803.         l -= c.mapRegionY * 8;
  2804.        
  2805.         for(int n = 0; n < c.newWalkCmdSteps; n++) {
  2806.             c.getNewWalkCmdX()[n] += k;
  2807.             c.getNewWalkCmdY()[n] += l;
  2808.         }
  2809.     }
  2810.    
  2811.  
  2812.     public int getMove(int place1,int place2) {
  2813.         if (System.currentTimeMillis() - c.lastSpear < 4000)
  2814.             return 0;
  2815.         if ((place1 - place2) == 0) {
  2816.             return 0;
  2817.         } else if ((place1 - place2) < 0) {
  2818.             return 1;
  2819.         } else if ((place1 - place2) > 0) {
  2820.             return -1;
  2821.         }
  2822.         return 0;
  2823.     }
  2824.    
  2825.     public boolean fullVeracs() {
  2826.         return c.playerEquipment[c.playerHat] == 4753 && c.playerEquipment[c.playerChest] == 4757 && c.playerEquipment[c.playerLegs] == 4759 && c.playerEquipment[c.playerWeapon] == 4755;
  2827.     }
  2828.     public boolean fullGuthans() {
  2829.         return c.playerEquipment[c.playerHat] == 4724 && c.playerEquipment[c.playerChest] == 4728 && c.playerEquipment[c.playerLegs] == 4730 && c.playerEquipment[c.playerWeapon] == 4726;
  2830.     }
  2831.    
  2832.     /**
  2833.     * reseting animation
  2834.     **/
  2835.     public void resetAnimation() {
  2836.         c.getCombat().getPlayerAnimIndex(c.getItems().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
  2837.         c.startAnimation(c.playerStandIndex);
  2838.         requestUpdates();
  2839.     }
  2840.  
  2841.     public void requestUpdates() {
  2842.         c.updateRequired = true;
  2843.         c.setAppearanceUpdateRequired(true);
  2844.     }
  2845.    
  2846.     public void handleAlt(int id) {
  2847.         if (!c.getItems().playerHasItem(id)) {
  2848.             c.getItems().addItem(id,1);
  2849.         }
  2850.     }
  2851.    
  2852.     public void levelUp(int skill) {
  2853. int totalLevel = (getLevelForXP(c.playerXP[0]) + getLevelForXP(c.playerXP[1]) + getLevelForXP(c.playerXP[2]) + getLevelForXP(c.playerXP[3]) + getLevelForXP(c.playerXP[4]) + getLevelForXP(c.playerXP[5]) + getLevelForXP(c.playerXP[6]) + getLevelForXP(c.playerXP[7]) + getLevelForXP(c.playerXP[8]) + getLevelForXP(c.playerXP[9]) + getLevelForXP(c.playerXP[10]) + getLevelForXP(c.playerXP[11]) + getLevelForXP(c.playerXP[12]) + getLevelForXP(c.playerXP[13]) + getLevelForXP(c.playerXP[14]) + getLevelForXP(c.playerXP[15]) + getLevelForXP(c.playerXP[16]) + getLevelForXP(c.playerXP[17]) + getLevelForXP(c.playerXP[18]) + getLevelForXP(c.playerXP[19]) + getLevelForXP(c.playerXP[20]) + getLevelForXP(c.playerXP[21]) + getLevelForXP(c.playerXP[22]) + getLevelForXP(c.playerXP[23]) + getLevelForXP(c.playerXP[24]));
  2854.         sendFrame126("Levels: "+totalLevel, 31200);
  2855.         switch(skill) {
  2856.     case 0: // Attack
  2857.     c.lvlPoints +=1;
  2858.     ///PlayerSave.saveGame(c);//
  2859.         sendFrame126("Congratulations, you just advanced an Attack level!", 6248);
  2860.         sendFrame126("Your Attack level is now " + getLevelForXP(c.playerXP[skill]) + ".", 6249);
  2861.         c.sendMessage("Congratulations, you just advanced an Attack level.");  
  2862.         sendFrame164(6247);
  2863.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  2864.             break;
  2865.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  2866.             if (Server.playerHandler.players[j] == null)
  2867.                 continue;
  2868.             Client all = (Client)Server.playerHandler.players[j];
  2869.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Attack!");
  2870.         }
  2871.         c.lvlPoints +=15;
  2872.         ///PlayerSave.saveGame(c);//
  2873.         c.getItems().addItem(9748, 1);
  2874.         c.getItems().addItem(9749, 1);
  2875.         break;
  2876.  
  2877.     case 1: // Defence
  2878.     c.lvlPoints +=1;
  2879.     ///PlayerSave.saveGame(c);//
  2880.         sendFrame126("Congratulations, you just advanced a Defence level!", 6254);
  2881.         sendFrame126("Your Defence level is now " + getLevelForXP(c.playerXP[skill]) + ".", 6255);
  2882.         c.sendMessage("Congratulations, you just advanced a Defence level.");
  2883.         sendFrame164(6253);
  2884.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  2885.             break;
  2886.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  2887.             if (Server.playerHandler.players[j] == null)
  2888.                 continue;
  2889.             Client all = (Client)Server.playerHandler.players[j];
  2890.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Defence!");
  2891.         }
  2892.             c.lvlPoints +=15;
  2893.             ///PlayerSave.saveGame(c);//
  2894.         c.getItems().addItem(9754, 1);
  2895.         c.getItems().addItem(9755, 1);
  2896.         break;
  2897.  
  2898.     case 2: // Strength
  2899.     c.lvlPoints +=1;
  2900.     ///PlayerSave.saveGame(c);//
  2901.         sendFrame126("Congratulations, you just advanced a Strength level!", 6207);
  2902.         sendFrame126("Your Strength level is now " + getLevelForXP(c.playerXP[skill]) + ".", 6208);
  2903.         c.sendMessage("Congratulations, you just advanced a Strength level.");
  2904.         sendFrame164(6206);
  2905.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  2906.             break;
  2907.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  2908.             if (Server.playerHandler.players[j] == null)
  2909.                 continue;
  2910.             Client all = (Client)Server.playerHandler.players[j];
  2911.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Strength!");
  2912.         }
  2913.         c.lvlPoints +=15;
  2914.         ///PlayerSave.saveGame(c);//
  2915.         c.getItems().addItem(9751, 1);
  2916.         c.getItems().addItem(9752, 1);
  2917.         break;
  2918.  
  2919.     case 3: // Constitution
  2920.     c.lvlPoints +=1;
  2921.     ///PlayerSave.saveGame(c);//
  2922.         sendFrame126("Congratulations, you just advanced a Constitution level!", 6217);
  2923.         sendFrame126("Your Constitution level is now " + getLevelForXP(c.playerXP[skill]) + ".", 6218);
  2924.         c.sendMessage("Congratulations, you just advanced a Constitution level.");
  2925.         sendFrame164(6216);
  2926.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  2927.             break;
  2928.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  2929.             if (Server.playerHandler.players[j] == null)
  2930.                 continue;
  2931.             Client all = (Client)Server.playerHandler.players[j];
  2932.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Constitution!");
  2933.         }
  2934.         c.lvlPoints +=15;
  2935.         ///PlayerSave.saveGame(c);//
  2936.         c.getItems().addItem(9769, 1);
  2937.         c.getItems().addItem(9770, 1);
  2938.         break;
  2939.  
  2940.     case 4: // Ranged
  2941.     c.lvlPoints +=1;
  2942.     ///PlayerSave.saveGame(c);//
  2943.         sendFrame126("Congratulations, you just advanced a Ranged level!", 5453);
  2944.         sendFrame126("Your Ranged level is now " + getLevelForXP(c.playerXP[skill]) + ".", 5454);
  2945.         c.sendMessage("Congratulations, you just advanced a Ranged level.");
  2946.         sendFrame164(4443);
  2947.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  2948.             break;
  2949.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  2950.             if (Server.playerHandler.players[j] == null)
  2951.                 continue;
  2952.             Client all = (Client)Server.playerHandler.players[j];
  2953.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Ranged!");
  2954.         }
  2955.         c.lvlPoints +=15;
  2956.         c.getItems().addItem(9757, 1);
  2957.         c.getItems().addItem(9758, 1);
  2958.         break;
  2959.  
  2960.     case 5: // Prayer
  2961.     c.lvlPoints +=1;
  2962.     ///PlayerSave.saveGame(c);//
  2963.         sendFrame126("Congratulations, you just advanced a Prayer level!", 6243);
  2964.         sendFrame126("Your Prayer level is now " + getLevelForXP(c.playerXP[skill]) + ".", 6244);
  2965.         c.sendMessage("Congratulations, you just advanced a Prayer level.");
  2966.         sendFrame164(6242);
  2967.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  2968.             break;
  2969.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  2970.             if (Server.playerHandler.players[j] == null)
  2971.                 continue;
  2972.             Client all = (Client)Server.playerHandler.players[j];
  2973.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Prayer!");
  2974.         }
  2975.         c.lvlPoints +=15;
  2976.         ///PlayerSave.saveGame(c);//
  2977.         c.getItems().addItem(9760, 1);
  2978.         c.getItems().addItem(9761, 1);
  2979.         break;
  2980.  
  2981.     case 6: // Magic
  2982.     c.lvlPoints +=1;
  2983.     ///PlayerSave.saveGame(c);//
  2984.         sendFrame126("Congratulations, you just advanced a Magic level!", 6212);
  2985.         sendFrame126("Your Magic level is now " + getLevelForXP(c.playerXP[skill]) + ".", 6213);
  2986.         c.sendMessage("Congratulations, you just advanced a Magic level.");
  2987.         sendFrame164(6211);
  2988.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  2989.             break;
  2990.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  2991.             if (Server.playerHandler.players[j] == null)
  2992.                 continue;
  2993.             Client all = (Client)Server.playerHandler.players[j];
  2994.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Magic!");
  2995.         }
  2996.         c.lvlPoints +=15;
  2997.         ///PlayerSave.saveGame(c);//
  2998.         c.getItems().addItem(9762, 1);
  2999.         c.getItems().addItem(9764, 1);
  3000.         break;
  3001.  
  3002.     case 7: // Cooking
  3003.     c.lvlPoints +=1;
  3004.     ///PlayerSave.saveGame(c);//
  3005.         sendFrame126("Congratulations, you just advanced a Cooking level!", 6227);
  3006.         sendFrame126("Your cooking level is now " + getLevelForXP(c.playerXP[skill]) + ".", 6228);
  3007.         c.sendMessage("Congratulations, you just advanced a Cooking level.");
  3008.         sendFrame164(6226);
  3009.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3010.             break;
  3011.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3012.             if (Server.playerHandler.players[j] == null)
  3013.                 continue;
  3014.             Client all = (Client)Server.playerHandler.players[j];
  3015.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Cooking!");
  3016.         }
  3017.         c.lvlPoints +=15;
  3018.         ///PlayerSave.saveGame(c);//
  3019.         c.getItems().addItem(9802, 1);
  3020.         c.getItems().addItem(9803, 1);
  3021.         break;
  3022.  
  3023.     case 8: // Woodcutting
  3024.     c.lvlPoints +=1;
  3025.     ///PlayerSave.saveGame(c);//
  3026.         sendFrame126("Congratulations, you just advanced a Woodcutting level!", 4273);
  3027.         sendFrame126("Your woodcutting level is now " + getLevelForXP(c.playerXP[skill]) + ".", 4274);
  3028.         c.sendMessage("Congratulations, you just advanced a Woodcutting level.");
  3029.         sendFrame164(4272);
  3030.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3031.             break;
  3032.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3033.             if (Server.playerHandler.players[j] == null)
  3034.                 continue;
  3035.             Client all = (Client)Server.playerHandler.players[j];
  3036.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Woodcutting!");
  3037.         }
  3038.         c.lvlPoints +=15;
  3039.         ///PlayerSave.saveGame(c);//
  3040.         c.getItems().addItem(9808, 1);
  3041.         c.getItems().addItem(9809, 1);
  3042.         break;
  3043.  
  3044.     case 9: // Fletching
  3045.     c.lvlPoints +=1;
  3046.     ///PlayerSave.saveGame(c);//
  3047.         sendFrame126("Congratulations, you just advanced a Fletching level!", 6232);
  3048.         sendFrame126("Your Fletching level is now " + getLevelForXP(c.playerXP[skill]) + ".", 6233);
  3049.         c.sendMessage("Congratulations, you just advanced a Fletching level.");
  3050.         sendFrame164(6231);
  3051.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3052.             break;
  3053.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3054.             if (Server.playerHandler.players[j] == null)
  3055.                 continue;
  3056.             Client all = (Client)Server.playerHandler.players[j];
  3057.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Fletching!");
  3058.         }
  3059.         c.lvlPoints +=15;
  3060.         ///PlayerSave.saveGame(c);//
  3061.         c.getItems().addItem(9784, 1);
  3062.         c.getItems().addItem(9785, 1);
  3063.         break;
  3064.  
  3065.     case 10: // Fishing
  3066.     c.lvlPoints +=1;
  3067.     ///PlayerSave.saveGame(c);//
  3068.         sendFrame126("Congratulations, you just advanced a Fishing level!", 6259);
  3069.         sendFrame126("Your Fishing level is now " + getLevelForXP(c.playerXP[skill]) + ".", 6260);
  3070.         c.sendMessage("Congratulations, you just advanced a Fishing level.");
  3071.         sendFrame164(6258);
  3072.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3073.             break;
  3074.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3075.             if (Server.playerHandler.players[j] == null)
  3076.                 continue;
  3077.             Client all = (Client)Server.playerHandler.players[j];
  3078.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Fishing!");
  3079.         }
  3080.         c.lvlPoints +=15;
  3081.         ///PlayerSave.saveGame(c);//
  3082.         c.getItems().addItem(9799, 1);
  3083.         c.getItems().addItem(9800, 1);
  3084.         break;
  3085.  
  3086.     case 11: // Firemaking
  3087.     c.lvlPoints +=1;
  3088.     ///PlayerSave.saveGame(c);//
  3089.         sendFrame126("Congratulations, you just advanced a Firemaking level!", 4283);
  3090.         sendFrame126("Your Firemaking level is now " + getLevelForXP(c.playerXP[skill]) + ".", 4284);
  3091.         c.sendMessage("Congratulations, you just advanced a Firemaking level.");
  3092.         sendFrame164(4282);
  3093.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3094.             break;
  3095.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3096.             if (Server.playerHandler.players[j] == null)
  3097.                 continue;
  3098.             Client all = (Client)Server.playerHandler.players[j];
  3099.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Firemaking!");
  3100.         }
  3101.         c.lvlPoints +=15;
  3102.         ///PlayerSave.saveGame(c);//
  3103.         c.getItems().addItem(9805, 1);
  3104.         c.getItems().addItem(9806, 1);
  3105.         break;
  3106.  
  3107.     case 12: // Crafting
  3108.     c.lvlPoints +=1;
  3109.     ///PlayerSave.saveGame(c);//
  3110.         sendFrame126("Congratulations, you just advanced a Crafting level!", 6264);
  3111.         sendFrame126("Your Crafting level is now " + getLevelForXP(c.playerXP[skill]) + ".", 6265);
  3112.         c.sendMessage("Congratulations, you just advanced a Crafting level.");
  3113.         sendFrame164(6263);
  3114.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3115.             break;
  3116.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3117.             if (Server.playerHandler.players[j] == null)
  3118.                 continue;
  3119.             Client all = (Client)Server.playerHandler.players[j];
  3120.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Crafting!");
  3121.         }
  3122.         c.lvlPoints +=15;
  3123.         ///PlayerSave.saveGame(c);//
  3124.         c.getItems().addItem(9805, 1);
  3125.         c.getItems().addItem(9806, 1);
  3126.         break;
  3127.  
  3128.     case 13: // Smithing
  3129.     c.lvlPoints +=1;
  3130.     ///PlayerSave.saveGame(c);//
  3131.         sendFrame126("Congratulations, you just advanced a Smithing level!", 6222);
  3132.         sendFrame126("Your Smithing level is now " + getLevelForXP(c.playerXP[skill]) + ".", 6223);
  3133.         c.sendMessage("Congratulations, you just advanced a Smithing level.");
  3134.         sendFrame164(6221);
  3135.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3136.             break;
  3137.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3138.             if (Server.playerHandler.players[j] == null)
  3139.                 continue;
  3140.             Client all = (Client)Server.playerHandler.players[j];
  3141.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Smithing!");
  3142.         }
  3143.         c.lvlPoints +=15;
  3144.         ///PlayerSave.saveGame(c);//
  3145.         c.getItems().addItem(9796, 1);
  3146.         c.getItems().addItem(9797, 1);
  3147.         break;
  3148.  
  3149.     case 14: // Mining
  3150.     c.lvlPoints +=1;
  3151.     ///PlayerSave.saveGame(c);//
  3152.         sendFrame126("Congratulations, you just advanced a Mining level!", 4417);
  3153.         sendFrame126("Your Mining level is now " + getLevelForXP(c.playerXP[skill]) + ".", 4438);
  3154.         c.sendMessage("Congratulations, you just advanced a Mining level.");
  3155.         sendFrame164(4416);
  3156.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3157.             break;
  3158.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3159.             if (Server.playerHandler.players[j] == null)
  3160.                 continue;
  3161.             Client all = (Client)Server.playerHandler.players[j];
  3162.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Mining!");
  3163.         }
  3164.         c.lvlPoints +=15;
  3165.         ///PlayerSave.saveGame(c);//
  3166.         c.getItems().addItem(9793, 1);
  3167.         c.getItems().addItem(9794, 1);
  3168.         break;
  3169.  
  3170.     case 15: // Herblore
  3171.     c.lvlPoints +=1;
  3172.     ///PlayerSave.saveGame(c);//
  3173.         sendFrame126("Congratulations, you just advanced a Herblore level!", 6238);
  3174.         sendFrame126("Your herblore level is now " + getLevelForXP(c.playerXP[skill]) + ".", 6239);
  3175.         c.sendMessage("Congratulations, you just advanced a Herblore level.");
  3176.         sendFrame164(6237);
  3177.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3178.             break;
  3179.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3180.             if (Server.playerHandler.players[j] == null)
  3181.                 continue;
  3182.             Client all = (Client)Server.playerHandler.players[j];
  3183.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Herblore!");
  3184.         }
  3185.         c.lvlPoints +=15;
  3186.         ///PlayerSave.saveGame(c);//
  3187.         c.getItems().addItem(9775, 1);
  3188.         c.getItems().addItem(9776, 1);
  3189.         break;
  3190.  
  3191.     case 16: // Agility
  3192.     c.lvlPoints +=1;
  3193.     ///PlayerSave.saveGame(c);//
  3194.         sendFrame126("Congratulations, you just advanced a Agility level!", 4278);
  3195.         sendFrame126("Your Agility level is now " + getLevelForXP(c.playerXP[skill]) + ".", 4279);
  3196.         c.sendMessage("Congratulations, you just advanced an Agility level.");
  3197.         sendFrame164(4277);
  3198.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3199.             break;
  3200.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3201.             if (Server.playerHandler.players[j] == null)
  3202.                 continue;
  3203.             Client all = (Client)Server.playerHandler.players[j];
  3204.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Agility!");
  3205.         }
  3206.         c.lvlPoints +=15;
  3207.         ///PlayerSave.saveGame(c);//
  3208.         c.getItems().addItem(9772, 1);
  3209.         c.getItems().addItem(9773, 1);
  3210.         break;
  3211.  
  3212.     case 17: // Thieving
  3213.     c.lvlPoints +=1;
  3214.     ///PlayerSave.saveGame(c);//
  3215.         sendFrame126("Congratulations, you just advanced a Thieving level!", 4263);
  3216.         sendFrame126("Your Theiving level is now " + getLevelForXP(c.playerXP[skill]) + ".", 4264);
  3217.         c.sendMessage("Congratulations, you just advanced a Thieving level.");
  3218.         sendFrame164(4261);
  3219.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3220.             break;
  3221.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3222.             if (Server.playerHandler.players[j] == null)
  3223.                 continue;
  3224.             Client all = (Client)Server.playerHandler.players[j];
  3225.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Thieving!");
  3226.         }
  3227.         c.lvlPoints +=15;
  3228.         ///PlayerSave.saveGame(c);//
  3229.         c.getItems().addItem(9778, 1);
  3230.         c.getItems().addItem(9779, 1);
  3231.         break;
  3232.  
  3233.     case 18: // Slayer
  3234.     c.lvlPoints +=1;
  3235.     ///PlayerSave.saveGame(c);//
  3236.         sendFrame126("Congratulations, you just advanced a Slayer level!", 12123);
  3237.         sendFrame126("Your slayer level is now " + getLevelForXP(c.playerXP[skill]) + ".", 12124);
  3238.         c.sendMessage("Congratulations, you just advanced a Slayer level.");
  3239.         sendFrame164(12122);
  3240.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3241.             break;
  3242.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3243.             if (Server.playerHandler.players[j] == null)
  3244.                 continue;
  3245.             Client all = (Client)Server.playerHandler.players[j];
  3246.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Slayer!");
  3247.         }
  3248.         c.lvlPoints +=15;
  3249.         ///PlayerSave.saveGame(c);//
  3250.         c.getItems().addItem(9787, 1);
  3251.         c.getItems().addItem(9788, 1);
  3252.         break;
  3253.  
  3254.     case 19: // Farming
  3255.     c.lvlPoints +=1;
  3256.     ///PlayerSave.saveGame(c);//
  3257.         sendFrame126("Congratulations, you just advanced a Farming level!", 12123);
  3258.         sendFrame126("Your Farming level is now " + getLevelForXP(c.playerXP[skill]) + ".", 12124);
  3259.         c.sendMessage("Congratulations, you just advanced a Farming level.");
  3260.         sendFrame164(12122);
  3261.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3262.             break;
  3263.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3264.             if (Server.playerHandler.players[j] == null)
  3265.                 continue;
  3266.             Client all = (Client)Server.playerHandler.players[j];
  3267.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Farming!");
  3268.         }
  3269.         c.lvlPoints +=15;
  3270.         ///PlayerSave.saveGame(c);//
  3271.         c.getItems().addItem(9811, 1);
  3272.         c.getItems().addItem(9812, 1);
  3273.         break;
  3274.  
  3275.     case 20: // Runecrafting
  3276.     c.lvlPoints +=1;
  3277.     ///PlayerSave.saveGame(c);//
  3278.         sendFrame126("Congratulations, you just advanced a Runecrafting level!", 4268);
  3279.         sendFrame126("Your Runecrafting level is now " + getLevelForXP(c.playerXP[skill]) + ".", 4269);
  3280.         c.sendMessage("Congratulations, you just advanced a Runecrafting level.");
  3281.         sendFrame164(4267);
  3282.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3283.             break;
  3284.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3285.             if (Server.playerHandler.players[j] == null)
  3286.                 continue;
  3287.             Client all = (Client)Server.playerHandler.players[j];
  3288.              all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Runecrafting!");
  3289.         }
  3290.         c.lvlPoints +=15;
  3291.         ///PlayerSave.saveGame(c);//
  3292.             c.getItems().addItem(9766, 1);
  3293.         c.getItems().addItem(9767, 1);
  3294.         break;
  3295.    
  3296.             case 21:
  3297.             c.lvlPoints +=1;
  3298.             ///PlayerSave.saveGame(c);//
  3299.             sendFrame126("Congratulations, you just advanced a Hunter level!", 4268);
  3300.             sendFrame126("Your Hunter level is now "+getLevelForXP(c.playerXP[skill])+".", 4269);
  3301.             c.sendMessage("Congratulations, you just advanced a hunter level.");
  3302.            sendFrame164(4267);
  3303.         if (getLevelForXP(c.playerXP[skill]) <= 98)
  3304.             break;
  3305.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3306.             if (Server.playerHandler.players[j] == null)
  3307.                 continue;
  3308.             Client all = (Client)Server.playerHandler.players[j];
  3309.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Hunter!");
  3310.         }
  3311.         c.lvlPoints +=15;
  3312.         ///PlayerSave.saveGame(c);//
  3313.         c.getItems().addItem(9766, 1);
  3314.         c.getItems().addItem(9767, 1);
  3315.         break;
  3316.        
  3317.             case 22:
  3318.             c.lvlPoints +=1;
  3319.             ///PlayerSave.saveGame(c);//
  3320.             sendFrame126("Congratulations, you just advanced a Summoning level!", 4268);
  3321.             sendFrame126("Your Summoning level is now "+getLevelForXP(c.playerXP[skill])+".", 4269);
  3322.             c.sendMessage("Congratulations, you just advanced a Summoning level.");
  3323.             sendFrame164(4267);
  3324.             if (getLevelForXP(c.playerXP[skill]) <= 98)
  3325.             break;
  3326.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3327.             if (Server.playerHandler.players[j] == null)
  3328.                 continue;
  3329.             Client all = (Client)Server.playerHandler.players[j];
  3330.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Summoning!");
  3331.         }
  3332.         c.lvlPoints +=15;
  3333.         ///PlayerSave.saveGame(c);//
  3334.         c.getItems().addItem(9787, 1);
  3335.         c.getItems().addItem(9788, 1);
  3336.         break;
  3337.            
  3338.         case 23:
  3339.         c.lvlPoints +=1;
  3340.         ///PlayerSave.saveGame(c);//
  3341.             sendFrame126("Congratulations, you just advanced a PK'ing level!", 12123);
  3342.             sendFrame126("Your PK'ing level is now "+getLevelForXP(c.playerXP[skill])+".", 12124);
  3343.             c.sendMessage("Congratulations, you just advanced a PK'ing level.");
  3344.             sendFrame164(12122);
  3345.             if (getLevelForXP(c.playerXP[skill]) <= 98)
  3346.             break;
  3347.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3348.             if (Server.playerHandler.players[j] == null)
  3349.                 continue;
  3350.             Client all = (Client)Server.playerHandler.players[j];
  3351.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " PK'ing!");
  3352.         }
  3353.         c.lvlPoints +=15;
  3354.         ///PlayerSave.saveGame(c);//
  3355.         break;
  3356.            
  3357.             case 24:
  3358.             c.lvlPoints +=1;
  3359.             ///PlayerSave.saveGame(c);//
  3360.             sendFrame126("Congratulations, you just advanced a Dungeoneering level!", 12123);
  3361.             sendFrame126("Your Dungeoneering level is now "+getLevelForXP(c.playerXP[skill])+".", 12124);
  3362.             c.sendMessage("Congratulations, you just advanced a Dungeoneering level.");
  3363.             sendFrame164(12122);
  3364.             if (getLevelForXP(c.playerXP[skill]) <= 119)
  3365.             break;
  3366.         for (int j = 0; j < Server.playerHandler.players.length; j++) {
  3367.             if (Server.playerHandler.players[j] == null)
  3368.                 continue;
  3369.             Client all = (Client)Server.playerHandler.players[j];          
  3370.             all.sendMessage("<shad=16745472>[Server]</col><shad=65288> " + c.playerName + " has just achieved level " + getLevelForXP(c.playerXP[skill]) + " Dungeoneering!");
  3371.         }
  3372.         c.lvlPoints +=15;
  3373.         ///PlayerSave.saveGame(c);//
  3374.         c.getItems().addItem(18509, 1);
  3375.         c.getItems().addItem(18510, 1);
  3376.         break;
  3377.         }
  3378.         c.dialogueAction = 0;
  3379.         c.nextChat = 0;
  3380.     }
  3381.    
  3382.     public void refreshSkill(int i) {
  3383.         switch (i) {
  3384.             case 0://attack
  3385.             sendFrame126("" + c.playerLevel[0] + "", 31114);
  3386.             sendFrame126("" + getLevelForXP(c.playerXP[0]) + "", 31115);
  3387.             sendFrame126("Exp: " + c.playerXP[0] + "", 31113);
  3388.             break;
  3389.            
  3390.             case 1://defence
  3391.             sendFrame126("" + c.playerLevel[1] + "", 31124);
  3392.             sendFrame126("" + getLevelForXP(c.playerXP[1]) + "", 31125);
  3393.             sendFrame126("Exp: " + c.playerXP[1] + "", 31123);
  3394.             break;
  3395.            
  3396.             case 2://strength
  3397.             sendFrame126("" + c.playerLevel[2] + "", 31119);
  3398.             sendFrame126("" + getLevelForXP(c.playerXP[2]) + "", 31120);
  3399.             sendFrame126("Exp: " + c.playerXP[2] + "", 31118);
  3400.             break;
  3401.            
  3402.             case 3://hitpoints
  3403.             sendFrame126("" + c.playerLevel[3] + "", 31159);
  3404.             sendFrame126("" + getLevelForXP(c.playerXP[3]) + "", 31160);
  3405.             sendFrame126("Exp: " + c.playerXP[3] + "", 31158);
  3406.             break;
  3407.            
  3408.             case 4://ranged
  3409.             sendFrame126("" + c.playerLevel[4] + "", 31129);
  3410.             sendFrame126("" + getLevelForXP(c.playerXP[4]) + "", 31130);
  3411.             sendFrame126("Exp: " + c.playerXP[4] + "", 31128);
  3412.             break;
  3413.            
  3414.             case 5://prayer
  3415.             sendFrame126("" + c.playerLevel[5] + "", 31134);
  3416.             sendFrame126("" + getLevelForXP(c.playerXP[5]) + "", 31135);
  3417.             sendFrame126("Exp: " + c.playerXP[5] + "", 31133);
  3418.             sendFrame126("" +c.playerLevel[5]+"/"+getLevelForXP(c.playerXP[5])+"", 687);//Prayer frame
  3419.             break;
  3420.            
  3421.             case 6://magic
  3422.             sendFrame126("" + c.playerLevel[6] + "", 31139);
  3423.             sendFrame126("" + getLevelForXP(c.playerXP[6]) + "", 31140);
  3424.             sendFrame126("Exp: " + c.playerXP[6] + "", 31138);
  3425.             break;
  3426.            
  3427.             case 7://cooking
  3428.             sendFrame126("" + c.playerLevel[7] + "", 31219);
  3429.             sendFrame126("" + getLevelForXP(c.playerXP[7]) + "", 31220);
  3430.             sendFrame126("Exp:" + c.playerXP[7] + "", 31218);
  3431.             break;
  3432.            
  3433.              case 8://Woodcutting
  3434.                 sendFrame126("" + c.playerLevel[8] + "", 4038);
  3435.                 sendFrame126("" + getLevelForXP(c.playerXP[8]) + "", 4039);
  3436.                 sendFrame126("" + c.playerXP[8] + "", 4146);
  3437.                 sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[8]) + 1) + "", 4147);
  3438.                  break;
  3439.            
  3440.             case 9://fletching
  3441.             sendFrame126("" + c.playerLevel[9] + "", 31184);
  3442.             sendFrame126("" + getLevelForXP(c.playerXP[9]) + "", 31185);
  3443.             sendFrame126("Exp: " + c.playerXP[9] + "", 31183);
  3444.             break;
  3445.            
  3446.             case 10://fishing
  3447.             sendFrame126("" + c.playerLevel[10] + "", 31214);
  3448.             sendFrame126("" + getLevelForXP(c.playerXP[10]) + "", 31215);
  3449.             sendFrame126("Exp: " + c.playerXP[10] + "", 31213);
  3450.             break;
  3451.            
  3452.             case 11://firemaking
  3453.             sendFrame126("" + c.playerLevel[11] + "", 31224);
  3454.             sendFrame126("" + getLevelForXP(c.playerXP[11]) + "", 31225);
  3455.             sendFrame126("Exp: " + c.playerXP[11] + "", 31223);
  3456.             break;
  3457.            
  3458.             case 12://crafting
  3459.             sendFrame126("" + c.playerLevel[12] + "", 31179);
  3460.             sendFrame126("" + getLevelForXP(c.playerXP[12]) + "", 31180);
  3461.             sendFrame126("Exp: " + c.playerXP[12] + "", 31178);
  3462.             break;
  3463.            
  3464.             case 13://smithing
  3465.             sendFrame126("" + c.playerLevel[13] + "", 31209);
  3466.             sendFrame126("" + getLevelForXP(c.playerXP[13]) + "", 31210);
  3467.             sendFrame126("Exp: " + c.playerXP[13] + "", 31208);
  3468.             break;
  3469.            
  3470.             case 14://mining
  3471.             sendFrame126("" + c.playerLevel[14] + "", 31204);
  3472.             sendFrame126("" + getLevelForXP(c.playerXP[14]) + "", 31205);
  3473.             sendFrame126("Exp: " + c.playerXP[14] + "", 31203);
  3474.             break;
  3475.            
  3476.             case 15://herblore
  3477.             sendFrame126("" + c.playerLevel[15] + "", 31169);
  3478.             sendFrame126("" + getLevelForXP(c.playerXP[15]) + "", 31170);
  3479.             sendFrame126("Exp: " + c.playerXP[15] + "", 31168);
  3480.             break;
  3481.            
  3482.             case 16://agility
  3483.             sendFrame126("" + c.playerLevel[16] + "", 31164);
  3484.             sendFrame126("" + getLevelForXP(c.playerXP[16]) + "", 31165);
  3485.             sendFrame126("Exp: " + c.playerXP[16] + "", 31163);
  3486.             break;
  3487.            
  3488.             case 17://thieving
  3489.             sendFrame126("" + c.playerLevel[17] + "", 31174);
  3490.             sendFrame126("" + getLevelForXP(c.playerXP[17]) + "", 31175);
  3491.             sendFrame126("Exp: " + c.playerXP[17] + "", 31173);
  3492.             break;
  3493.            
  3494.             case 18://slayer
  3495.             sendFrame126("" + c.playerLevel[18] + "", 31189);
  3496.             sendFrame126("" + getLevelForXP(c.playerXP[18]) + "", 31190);
  3497.             sendFrame126("Exp: " + c.playerXP[18] + "", 31188);
  3498.             break;
  3499.            
  3500.             case 19://farming
  3501.             sendFrame126("" + c.playerLevel[19] + "", 31234);
  3502.             sendFrame126("" + getLevelForXP(c.playerXP[19]) + "", 31235);
  3503.             sendFrame126("Exp: " + c.playerXP[19] + "", 31233);
  3504.             break;
  3505.            
  3506.             case 20://runecrfating
  3507.             sendFrame126("" + c.playerLevel[20] + "", 31144);
  3508.             sendFrame126("" + getLevelForXP(c.playerXP[20]) + "", 31145);
  3509.             sendFrame126("Exp: " + c.playerXP[20] + "", 31143);
  3510.             break;
  3511.  
  3512.             case 21://hunter
  3513. sendFrame126("" + c.playerLevel[21] + "", 31149);
  3514. sendFrame126("" + getLevelForXP(c.playerXP[21]) + "", 31150);
  3515. sendFrame126("Exp: " + c.playerXP[21] + "", 31148);
  3516. break;
  3517.  
  3518. case 22://sum
  3519. sendFrame126("" + c.playerLevel[22] + "", 31194);
  3520. sendFrame126("" + getLevelForXP(c.playerXP[22]) + "", 31195);
  3521. sendFrame126("Exp: " + c.playerXP[22] + "", 31193);
  3522. break;
  3523.  
  3524. case 23://pking
  3525. sendFrame126("" + c.playerLevel[23] + "", 31239);
  3526. sendFrame126("" + getLevelForXP(c.playerXP[23]) + "", 31240);
  3527. sendFrame126("Exp: " + c.playerXP[23] + "", 31238);
  3528. break;
  3529.  
  3530. case 24://dung
  3531. if(c.playerXP[24] >= 0 && c.playerXP[24] <= 14391160) {
  3532. sendFrame126("" + c.playerLevel[24] + "", 31154);
  3533. sendFrame126("" + getLevelForXP(c.playerXP[24]) + "", 31155);
  3534. sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3535.   } else if(c.playerXP[24] >= 14391161 && c.playerXP[24] <= 15889108) {
  3536.     sendFrame126("100", 31154);
  3537.     sendFrame126("100", 31155);
  3538.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3539.  } else if(c.playerXP[24] >= 15889109 && c.playerXP[24] <= 17542976) {
  3540.     sendFrame126("101", 31154);
  3541.     sendFrame126("101", 31155);
  3542.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3543.  } else if(c.playerXP[24] >= 17542977 && c.playerXP[24] <= 19368991) {
  3544.     sendFrame126("102", 31154);
  3545.     sendFrame126("102", 31155);
  3546.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3547.  } else if(c.playerXP[24] >= 19368992 && c.playerXP[24] <= 21385072) {
  3548.     sendFrame126("103", 31154);
  3549.     sendFrame126("103", 31155);
  3550.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3551.  } else if(c.playerXP[24] >= 21385073 && c.playerXP[24] <= 23611005) {
  3552.     sendFrame126("104", 31154);
  3553.     sendFrame126("104", 31155);
  3554.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3555.  } else if(c.playerXP[24] >= 23611006 && c.playerXP[24] <= 26068631) {
  3556.     sendFrame126("105", 31154);
  3557.     sendFrame126("105", 31155);
  3558.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3559.  } else if(c.playerXP[24] >= 26068632 && c.playerXP[24] <= 28782068) {
  3560.     sendFrame126("106", 31154);
  3561.     sendFrame126("106", 31155);
  3562.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3563.  } else if(c.playerXP[24] >= 28782069 && c.playerXP[24] <= 31777942) {
  3564.     sendFrame126("107", 31154);
  3565.     sendFrame126("107", 31155);
  3566.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3567.  } else if(c.playerXP[24] >= 31777943 && c.playerXP[24] <= 35085653) {
  3568.     sendFrame126("108", 31154);
  3569.     sendFrame126("108", 31155);
  3570.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3571.  } else if(c.playerXP[24] >= 35085654 && c.playerXP[24] <= 38737660) {
  3572.     sendFrame126("109", 31154);
  3573.     sendFrame126("109", 31155);
  3574.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3575.  } else if(c.playerXP[24] >= 38737661 && c.playerXP[24] <= 42769799) {
  3576.     sendFrame126("110", 31154);
  3577.     sendFrame126("110", 31155);
  3578.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3579.  } else if(c.playerXP[24] >= 42769800 && c.playerXP[24] <= 47221639) {
  3580.     sendFrame126("111", 31154);
  3581.     sendFrame126("111", 31155);
  3582.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3583.  } else if(c.playerXP[24] >= 47221640 && c.playerXP[24] <= 52136868) {
  3584.     sendFrame126("112", 31154);
  3585.     sendFrame126("112", 31155);
  3586.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3587.  } else if(c.playerXP[24] >= 52136869 && c.playerXP[24] <= 57563717) {
  3588.     sendFrame126("113", 31154);
  3589.     sendFrame126("113", 31155);
  3590.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3591.  } else if(c.playerXP[24] >= 57563718 && c.playerXP[24] <= 63555442) {
  3592.     sendFrame126("114", 31154);
  3593.     sendFrame126("114", 31155);
  3594.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3595.  } else if(c.playerXP[24] >= 63555443 && c.playerXP[24] <= 70170839) {
  3596.     sendFrame126("115", 31154);
  3597.     sendFrame126("115", 31155);
  3598.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3599.  } else if(c.playerXP[24] >= 70170840 && c.playerXP[24] <= 77474827) {
  3600.     sendFrame126("116", 31154);
  3601.     sendFrame126("116", 31155);
  3602.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3603.  } else if(c.playerXP[24] >= 77474828 && c.playerXP[24] <= 85539081) {
  3604.     sendFrame126("117", 31154);
  3605.     sendFrame126("117", 31155);
  3606.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3607.  } else if(c.playerXP[24] >= 85539082 && c.playerXP[24] <= 94442735) {
  3608.     sendFrame126("118", 31154);
  3609.     sendFrame126("118", 31155);
  3610.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3611.  } else if(c.playerXP[24] >= 94442736 && c.playerXP[24] <= 104273166) {
  3612.     sendFrame126("119", 31154);
  3613.     sendFrame126("119", 31155);
  3614.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3615.  } else if(c.playerXP[24] >= 104273167 && c.playerXP[24] <= 210000000) {
  3616.     sendFrame126("120", 31154);
  3617.     sendFrame126("120", 31155);
  3618.     sendFrame126("Exp: " + c.playerXP[24] + "", 31153);
  3619.  }
  3620.  break;
  3621.  }
  3622.  }
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.    
  3629.    
  3630.     public int getXPForLevel(int level) {
  3631.         int points = 0;
  3632.         int output = 0;
  3633.  
  3634.         for (int lvl = 1; lvl <= level; lvl++) {
  3635.             points += Math.floor((double)lvl + 300.0 * Math.pow(2.0, (double)lvl / 7.0));
  3636.             if (lvl >= level)
  3637.                 return output;
  3638.             output = (int)Math.floor(points / 4);
  3639.         }
  3640.         return 0;
  3641.     }
  3642.  
  3643.     public int Wheel() {
  3644.         return Wheel[(int)(Math.random()*Wheel.length)];
  3645.     }
  3646.    
  3647.     public int getLevelForXP(int exp) {
  3648.         int points = 0;
  3649.         int output = 0;
  3650.         if (exp > 13034430)
  3651.             return 99;
  3652.         for (int lvl = 1; lvl <= 99; lvl++) {
  3653.             points += Math.floor((double) lvl + 300.0
  3654.                     * Math.pow(2.0, (double) lvl / 7.0));
  3655.             output = (int) Math.floor(points / 4);
  3656.             if (output >= exp) {
  3657.                 return lvl;
  3658.             }
  3659.         }
  3660.    
  3661.         /*int shrogan = 0;
  3662.         int output2 = 0;
  3663.         if (exp > 130344300)
  3664.             return 120;
  3665.         for (int lvl = 1; lvl <= 120; lvl++) {
  3666.             shrogan += Math.floor((double) lvl + 300.0
  3667.                     * Math.pow(2.0, (double) lvl / 7.0));
  3668.             output2 = (int) Math.floor(shrogan / 4);
  3669.             if (output2 >= exp) {
  3670.                 return lvl;
  3671.             }
  3672.         }*/
  3673.         return 0;
  3674.     }
  3675.    
  3676.     public boolean addSkillXP(int amount, int skill){
  3677. if (c.xpLock == true || c.Jail == true) {
  3678.     return false;
  3679. }
  3680.         if (amount+c.playerXP[skill] < 0 || c.playerXP[skill] > 200000000) {
  3681.             if(c.playerXP[skill] > 200000000) {
  3682.                 c.playerXP[skill] = 200000000;
  3683.             }
  3684.             return false;
  3685.         }
  3686.         amount *= Config.SERVER_EXP_BONUS;
  3687.         int oldLevel = getLevelForXP(c.playerXP[skill]);
  3688.         c.playerXP[skill] += amount;
  3689.         if (c.playerEquipment[c.playerCape] == 12742) {
  3690.         c.playerXP[skill] += amount * 2;
  3691.         }
  3692.         if (c.playerEquipment[c.playerCape] == 774) {
  3693.         c.playerXP[skill] += amount * 4;
  3694.         }
  3695.         if (c.playerEquipment[c.playerCape] == 12743) {
  3696.         c.playerXP[skill] += amount * 3;
  3697.         }
  3698.         if (oldLevel < getLevelForXP(c.playerXP[skill])) {
  3699.             if (c.playerLevel[skill] < c.getLevelForXP(c.playerXP[skill]) && skill != 3 && skill != 5)
  3700.                 c.playerLevel[skill] = c.getLevelForXP(c.playerXP[skill]);
  3701.             levelUp(skill);
  3702.             c.gfx100(199);
  3703.             requestUpdates();
  3704.         }
  3705.         setSkillLevel(skill, c.playerLevel[skill], c.playerXP[skill]);
  3706.         refreshSkill(skill);
  3707.         return true;
  3708.     }
  3709.  
  3710.  
  3711.     public void resetBarrows() {
  3712.         c.barrowsNpcs[0][1] = 0;
  3713.         c.barrowsNpcs[1][1] = 0;
  3714.         c.barrowsNpcs[2][1] = 0;
  3715.         c.barrowsNpcs[3][1] = 0;
  3716.         c.barrowsNpcs[4][1] = 0;
  3717.         c.barrowsNpcs[5][1] = 0;
  3718.         c.barrowsKillCount = 0;
  3719.         c.randomCoffin = Misc.random(3) + 1;
  3720.     }
  3721.    
  3722.     public static int Barrows[] = {4708, 4710, 4712, 4714, 4716, 4718, 4720, 4722, 4724, 4726, 4728, 4730, 4732, 4734, 4736, 4738, 4745, 4747, 4749, 4751, 4753, 4755, 4757, 4759};
  3723.     public static int Crystal[] = {1113,1127,1147,1163,1185,8650,8652,8654,8656,8658,8660,8662,8664,8666,8668,8670,8672,8674,8676,8678,8680,4037,4039,10400,10402,10404,10406,10408,10410,10412,10414,10416,10418,10420,10422,10424,10426,10428,10430,10432,10434,10436,10438,7668,2651,2978,2979,2980,2981,2982,2983,2984,2985,2986,2986,2987,2988,2989,2990,2991,2992,2993,2994,2995,6182,4151,10069,10074,10171,4708,4710,4712,4714,4753,4755,4757,4759,4724,4726,4728,4730,4732,4734,4736,4738,4745,4747,4749,4751,4716,4718,4720,4722,};
  3724.     public static int Runes[] = {4740,558,560,565};
  3725.     public static int Ecko[] = {11730, 13926, 13920, 13914, 13908, 13929, 13917, 19335, 13925, 10858};
  3726.     public static int Clue1[] = {};
  3727.     public static int Partyhats[] = {1038,1040,1032,1034,1036,1038};
  3728.     public static int Pots[] = {};
  3729.     public static int arti[] = {14876, 14877, 14878, 14879, 14880, 14881, 14882, 14883, 14884, 14885, 14886, 14887, 14888, 14889, 14890, 14891, 14892};
  3730.     public static int Wheel[] = {1038,1040,1038,1053,1055,1057,1042,1044,1046,1048774,12743,12742,15701,15702,15703,15704,15441,15442,15443,15444,15602,15600,15604,15608,15606,15610,15614,15612,15616,15620,15618,15622,15507,9050,9096,9097,9098,9099,9100,9101,9102,9104,13642,13655,13101,10458,10460,10462,10464,10466,10468,10360,10362,10364,10366,10368,10370,10372,10374,10456,10452,10454,10472,10474,10470,10378,10376,10380,10382,10384,10388,10386,10390,7398,7400,7399,10442,10444,10440,10446,10448,10450,13362,13358,13360,
  3731.                                 16701,17249,16679,16657,17351,16349,16283,16699,17247,16677,16655,16347,16281,17349,16703,17251,16681,16659,16351,16285,17353,16705,17253,16683,16681,17355,16353,16287};
  3732.    
  3733.     public int randomBarrows() {
  3734.         return Barrows[(int)(Math.random()*Barrows.length)];
  3735.     }
  3736.     public int randomEcko() {
  3737.         return Ecko[(int)(Math.random()*Ecko.length)];
  3738.     }
  3739.    
  3740.     public int randomCrystal() {
  3741.     return Crystal[(int) (Math.random()*Crystal.length)];
  3742.     }
  3743.  
  3744.  
  3745.     public int randomRunes() {
  3746.         return Runes[(int) (Math.random()*Runes.length)];
  3747.     }
  3748.    
  3749.     public int randomPots() {
  3750.         return Pots[(int) (Math.random()*Pots.length)];
  3751.     }
  3752.             public int randomPhat() {
  3753.                 return Partyhats[(int)(Math.random()*Partyhats.length)];
  3754.         }
  3755.  
  3756.     public int randomClue1() {
  3757.         return Clue1[(int)(Math.random()*Clue1.length)];
  3758.     }
  3759.     /**
  3760.      * Show an arrow icon on the selected player.
  3761.      * @Param i - Either 0 or 1; 1 is arrow, 0 is none.
  3762.      * @Param j - The player/Npc that the arrow will be displayed above.
  3763.      * @Param k - Keep this set as 0
  3764.      * @Param l - Keep this set as 0
  3765.      */
  3766.     public void drawHeadicon(int i, int j, int k, int l) {
  3767.         synchronized(c) {
  3768.             c.outStream.createFrame(254);
  3769.             c.outStream.writeByte(i);
  3770.    
  3771.             if (i == 1 || i == 10) {
  3772.                 c.outStream.writeWord(j);
  3773.                 c.outStream.writeWord(k);
  3774.                 c.outStream.writeByte(l);
  3775.             } else {
  3776.                 c.outStream.writeWord(k);
  3777.                 c.outStream.writeWord(l);
  3778.                 c.outStream.writeByte(j);
  3779.             }
  3780.         }
  3781.     }
  3782.    
  3783.     public int getNpcId(int id) {
  3784.         for(int i = 0; i < NPCHandler.maxNPCs; i++) {
  3785.             if(NPCHandler.npcs[i] != null) {
  3786.                 if(Server.npcHandler.npcs[i].npcId == id) {
  3787.                     return i;
  3788.                 }
  3789.             }
  3790.         }
  3791.         return -1;
  3792.     }
  3793.    
  3794.     public void removeObject(int x, int y) {
  3795.         object(-1, x, x, 10, 10);
  3796.     }
  3797.    
  3798.     private void objectToRemove(int X, int Y) {
  3799.         object(-1, X, Y, 10, 10);
  3800.     }
  3801.  
  3802.     private void objectToRemove2(int X, int Y) {
  3803.         object(-1, X, Y, -1, 0);
  3804.     }
  3805.    
  3806.     public void removeObjects() {
  3807.         objectToRemove2(2638, 4688);
  3808.         objectToRemove(2638, 4688);
  3809.         objectToRemove(2844, 3440);
  3810.         objectToRemove(2846, 3437);
  3811.         objectToRemove(2840, 3439);
  3812.         objectToRemove(2841, 3443);
  3813.         objectToRemove2(2635, 4693);
  3814.         objectToRemove2(2634, 4693);
  3815.         objectToRemove2(2794, 9327);
  3816.         objectToRemove(3206, 3263);
  3817.         objectToRemove(3193, 3274);
  3818.         objectToRemove(3193, 3273);
  3819.     }
  3820.    
  3821.    
  3822.     public void handleGlory(int gloryId) {
  3823.         c.getDH().sendOption4("Edgeville", "Al Kharid", "Karamja", "Mage Bank");
  3824.         c.usingGlory = true;
  3825.     }
  3826.    
  3827.     public void resetVariables() {
  3828.         c.usingGlory = false;
  3829.         c.smeltInterface = false;
  3830.         c.smeltType = 0;
  3831.         c.smeltAmount = 0;
  3832.         c.woodcut[0] = c.woodcut[1] = c.woodcut[2] = 0;
  3833.         c.mining[0] = c.mining[1] = c.mining[2] = 0;
  3834.     }
  3835.    
  3836.     public boolean inPitsWait() {
  3837.         return c.getX() <= 2404 && c.getX() >= 2394 && c.getY() <= 5175 && c.getY() >= 5169;
  3838.     }
  3839.    
  3840.     public void castleWarsObjects() {
  3841.         object(-1, 2373, 3119, -3, 10);
  3842.         object(-1, 2372, 3119, -3, 10);
  3843.     }
  3844.    
  3845.     public void removeFromCW() {
  3846.         if (c.castleWarsTeam == 1) {
  3847.             if (c.inCwWait) {
  3848.                 Server.castleWars.saradominWait.remove(Server.castleWars.saradominWait.indexOf(c.playerId));
  3849.             } else {
  3850.                 Server.castleWars.saradomin.remove(Server.castleWars.saradomin.indexOf(c.playerId));
  3851.             }
  3852.         } else if (c.castleWarsTeam == 2) {
  3853.             if (c.inCwWait) {
  3854.                 Server.castleWars.zamorakWait.remove(Server.castleWars.zamorakWait.indexOf(c.playerId));
  3855.             } else {
  3856.                 Server.castleWars.zamorak.remove(Server.castleWars.zamorak.indexOf(c.playerId));
  3857.             }      
  3858.         }
  3859.     }
  3860.    
  3861. public int antiFire() {
  3862.         int toReturn = 0;
  3863.         if (c.antiFirePot)
  3864.             toReturn++;
  3865.         if (c.playerEquipment[c.playerShield] == 1540 || c.prayerActive[12] || c.playerEquipment[c.playerShield] == 11284 || c.playerEquipment[c.playerShield] == 11283)
  3866.             toReturn++;
  3867.         c.getCombat().addCharge(c);
  3868.         return toReturn;   
  3869.     }
  3870.    
  3871.     public int backupInvItems[] = new int[28];
  3872.     public int backupInvItemsN[] = new int[28];
  3873.    
  3874.     public void otherInv(Client c, Client o) {
  3875.         if(o == c || o == null || c == null)
  3876.         {
  3877.         return;
  3878.         }
  3879.  
  3880.         for (int i = 0; i < o.playerItems.length; i++)
  3881.         {
  3882.             backupInvItems[i] = c.playerItems[i]; c.playerItemsN[i] = c.playerItemsN[i];
  3883.             c.playerItemsN[i] = o.playerItemsN[i]; c.playerItems[i] = o.playerItems[i];
  3884.         }
  3885.        
  3886.         c.getItems().updateInventory();
  3887.        
  3888.         for (int i = 0; i < o.playerItems.length; i++)
  3889.         {
  3890.         c.playerItemsN[i] = backupInvItemsN[i]; c.playerItems[i] = backupInvItems[i];
  3891.         }
  3892.     }
  3893.    
  3894.     public boolean checkForFlags() {
  3895.         int[][] itemsToCheck = {{995,100000000},{35,5},{667,5},{2402,5},{746,5},{4151,150},{565,100000},{560,100000},{555,300000},{11235,10}};
  3896.         for (int j = 0; j < itemsToCheck.length; j++) {
  3897.             if (itemsToCheck[j][1] < c.getItems().getTotalCount(itemsToCheck[j][0]))
  3898.                 return true;       
  3899.         }
  3900.         return false;
  3901.     }
  3902.    
  3903.         public void addStarter() {
  3904.         if (!Connection.hasRecieved1stStarter(Server.playerHandler.players[c.playerId].connectedFrom)) {
  3905.         c.trade11 = 0;
  3906.             c.getItems().addItem(995,5000000);
  3907.             c.getItems().addItem(2441, 10);
  3908.             c.getItems().addItem(2437, 10);
  3909.             c.getItems().addItem(6686, 10);
  3910.             c.getItems().addItem(3025, 100);
  3911.             c.getItems().addItem(560, 100);
  3912.             c.getItems().addItem(557, 100);
  3913.             c.getItems().addItem(565, 100);
  3914.             c.getItems().addItem(9075, 100);
  3915.             c.getItems().addItem(555, 100);
  3916.             c.getItems().addItem(4151, 1);
  3917.             c.getItems().addItem(20072, 1);
  3918.             c.getItems().addItem(6737, 1);
  3919.             c.getItems().addItem(1712, 1);
  3920.             c.getItems().addItem(1323, 1);
  3921.             c.getItems().addItem(1333, 1);
  3922.             c.getItems().addItem(4588, 1);
  3923.             c.getItems().addItem(6529, 1000);
  3924.             c.getItems().addItem(1080, 1);
  3925.             c.getItems().addItem(1128, 1);
  3926.             c.getItems().addItem(10828, 1);
  3927.             c.getItems().addItem(868, 100);
  3928.             c.getItems().addItem(863, 100);
  3929.             Connection.addIpToStarterList1(Server.playerHandler.players[c.playerId].connectedFrom);
  3930.             Connection.addIpToStarter1(Server.playerHandler.players[c.playerId].connectedFrom);
  3931.             c.sendMessage("<shad=15007744>You have recieved 1 out of 2 starter packages! You have 1 left from this IP ADRESS.</col>");
  3932.             c.sendMessage("<col=132>Welcome to "+ Config.SERVER_NAME +"!<col=132>");
  3933.             c.sendMessage("If you are new do <col=132>::rules<col=132> and then do <col=132>::commands<col=132>");
  3934.                 c.canChangeAppearance = true;
  3935.         } else if (Connection.hasRecieved1stStarter(Server.playerHandler.players[c.playerId].connectedFrom) && !Connection.hasRecieved2ndStarter(Server.playerHandler.players[c.playerId].connectedFrom)) {
  3936.         c.trade11 = 0;
  3937.             c.getItems().addItem(995,2500000);
  3938.             c.getItems().addItem(2441, 10);
  3939.             c.getItems().addItem(2437, 10);
  3940.             c.getItems().addItem(6686, 10);
  3941.             c.getItems().addItem(3025, 50);
  3942.             c.getItems().addItem(560, 50);
  3943.             c.getItems().addItem(557, 50);
  3944.             c.getItems().addItem(565, 50);
  3945.             c.getItems().addItem(9075, 50);
  3946.             c.getItems().addItem(555, 50);
  3947.             c.getItems().addItem(4151, 1);
  3948.             c.getItems().addItem(20072, 1);
  3949.             c.getItems().addItem(6737, 1);
  3950.             c.getItems().addItem(1712, 1);
  3951.             c.getItems().addItem(1323, 1);
  3952.             c.getItems().addItem(1333, 1);
  3953.             c.getItems().addItem(4588, 1);
  3954.             c.getItems().addItem(6529, 250);
  3955.             c.getItems().addItem(1080, 1);
  3956.             c.getItems().addItem(1128, 1);
  3957.             c.getItems().addItem(10828, 1);
  3958.             c.getItems().addItem(868, 50);
  3959.             c.getItems().addItem(863, 50);
  3960.             c.sendMessage("<shad=15007744>You have recieved 2 out of 2 starter packages on this IP address.</col>");
  3961.             c.sendMessage("<col=132>Welcome to "+ Config.SERVER_NAME +"!<col=132>");
  3962.             c.sendMessage("If you are new do <col=132>::rules<col=132> and then do <col=132>::commands<col=132>");
  3963.                 c.canChangeAppearance = true;
  3964.             Connection.addIpToStarterList2(Server.playerHandler.players[c.playerId].connectedFrom);
  3965.             Connection.addIpToStarter2(Server.playerHandler.players[c.playerId].connectedFrom);
  3966.         } else if (Connection.hasRecieved1stStarter(Server.playerHandler.players[c.playerId].connectedFrom) && Connection.hasRecieved2ndStarter(Server.playerHandler.players[c.playerId].connectedFrom)) {
  3967.             c.sendMessage("<shad=15007744>You have already recieved 2 starters! STOP TRYING TO GET FREE ITEMS!</col>");
  3968.             c.sendMessage("<col=132>Welcome to "+ Config.SERVER_NAME +"!<col=132>");
  3969.             c.sendMessage("If you are new do <col=132>::rules<col=132> and then do <col=132>::commands<col=132>");
  3970.                 c.canChangeAppearance = true;
  3971.         }
  3972.     }
  3973.    
  3974.     public void useOperate(int itemId) {
  3975.         switch (itemId) {
  3976.             case 1712:
  3977.             case 1710:
  3978.             case 1708:
  3979.             case 1706:
  3980.             handleGlory(itemId);
  3981.             break;
  3982.             case 11283:
  3983.             case 11284:
  3984.                 c.sendMessage("Your shield has "+c.dfsCount+" charges");
  3985.             if (c.playerIndex > 0) {
  3986.                 c.getCombat().handleDfs();             
  3987.             } else if (c.npcIndex > 0) {
  3988.                 c.getCombat().handleDfsNPC();
  3989.             }
  3990.             break; 
  3991.         }
  3992.     }
  3993.    
  3994.     public void getSpeared(int otherX, int otherY) {
  3995.         int x = c.absX - otherX;
  3996.         int y = c.absY - otherY;
  3997.         if (x > 0)
  3998.             x = 1;
  3999.         else if (x < 0)
  4000.             x = -1;
  4001.         if (y > 0)
  4002.             y = 1;
  4003.         else if (y < 0)
  4004.             y = -1;
  4005.         moveCheck(x,y);
  4006.         c.lastSpear = System.currentTimeMillis();
  4007.     }
  4008.    
  4009.     public void moveCheck(int xMove, int yMove) {  
  4010.         movePlayer(c.absX + xMove, c.absY + yMove, c.heightLevel);
  4011.     }
  4012.    
  4013.     public int findKiller() {
  4014.         int killer = c.playerId;
  4015.         int damage = 0;
  4016.         for (int j = 0; j < Config.MAX_PLAYERS; j++) {
  4017.             if (PlayerHandler.players[j] == null)
  4018.                 continue;
  4019.             if (j == c.playerId)
  4020.                 continue;
  4021.             if (c.goodDistance(c.absX, c.absY, PlayerHandler.players[j].absX, PlayerHandler.players[j].absY, 40)
  4022.                 || c.goodDistance(c.absX, c.absY + 9400, PlayerHandler.players[j].absX, PlayerHandler.players[j].absY, 40)
  4023.                 || c.goodDistance(c.absX, c.absY, PlayerHandler.players[j].absX, PlayerHandler.players[j].absY + 9400, 40))
  4024.                 if (c.damageTaken[j] > damage) {
  4025.                     damage = c.damageTaken[j];
  4026.                     killer = j;
  4027.                 }
  4028.         }
  4029.         return killer;
  4030.     }
  4031.    
  4032.     public void resetTzhaar() {
  4033.         c.waveId = -1;
  4034.         c.tzhaarToKill = -1;
  4035.         c.tzhaarKilled = -1;   
  4036.         c.getPA().movePlayer(2438,5168,0);
  4037.     }
  4038.  
  4039.     public void resetRFD() {
  4040.         c.waveId = -1;
  4041.         c.RFDToKill = -1;
  4042.         c.RFDKilled = -1;  
  4043.         c.getPA().movePlayer(3091,3486,0);
  4044.     }
  4045.  
  4046.     public void enterRFD() {
  4047.             if (c.Culin == true) {
  4048.             c.sendMessage("You have already finished this minigame!");
  4049.             return;
  4050.             }
  4051.             if (c.Agrith == true && c.Flambeed == false) {
  4052.             c.waveId = 1;
  4053.             c.getPA().movePlayer(1899,5363, c.playerId * 4+2);
  4054.         Server.rfd.spawnNextWave(c);
  4055.         return;
  4056.             }
  4057.         if(c.Flambeed == true && c.Karamel == false) {
  4058.             c.waveId = 2;
  4059.             c.getPA().movePlayer(1899,5363, c.playerId * 4+2);
  4060.         Server.rfd.spawnNextWave(c);
  4061.         return;
  4062.             }
  4063.         if(c.Karamel == true && c.Dessourt == false) {
  4064.             c.waveId = 3;
  4065.             c.getPA().movePlayer(1899,5363, c.playerId * 4+2);
  4066.         Server.rfd.spawnNextWave(c);
  4067.         return;
  4068.             }
  4069.         if(c.Dessourt == true && c.Culin == false) {
  4070.             c.waveId = 4;
  4071.             c.getPA().movePlayer(1899,5363, c.playerId * 4+2);
  4072.         Server.rfd.spawnNextWave(c);
  4073.             return;
  4074.             }
  4075.             if (c.Agrith == false) {
  4076.             c.getPA().movePlayer(1899,5363, c.playerId * 4+2);
  4077.         c.waveId = 0;
  4078.         c.RFDToKill = -1;
  4079.         c.RFDKilled = -1;
  4080.         Server.rfd.spawnNextWave(c);
  4081.     }
  4082.     }
  4083.    
  4084.     public void enterCaves() {
  4085.         c.getPA().movePlayer(2413,5117, c.playerId * 4);
  4086.         c.waveId = 0;
  4087.         c.tzhaarToKill = -1;
  4088.         c.tzhaarKilled = -1;
  4089.         Server.fightCaves.spawnNextWave(c);
  4090.         c.jadSpawn();
  4091.     }
  4092.  
  4093.     public void resetZombies() {
  4094.         c.zombiesToKill = -1;
  4095.         c.zombiesKilled = -1;  
  4096.         c.getPA().movePlayer(3085,3498,0);
  4097.         c.sendMessage("Congratulations you have completed the zombie MiniGame!");
  4098.     }
  4099.    
  4100.     public void enterZombies() {
  4101.         c.getPA().movePlayer(2604,9901, c.playerId * 4);
  4102.         c.waveId = 0;
  4103.         c.zombiesToKill = -1;
  4104.         c.zombiesKilled = -1;
  4105.         Server.zombieCaves.spawnNextWave(c);
  4106.     }
  4107.    
  4108.     public void appendPoison(int damage) {
  4109.         if (System.currentTimeMillis() - c.lastPoisonSip > c.poisonImmune) {
  4110.             c.sendMessage("You have been poisoned.");
  4111.             c.poisonDamage = damage;
  4112.         }  
  4113.     }
  4114.    
  4115.     public boolean checkForPlayer(int x, int y) {
  4116.         for (Player p : PlayerHandler.players) {
  4117.             if (p != null) {
  4118.                 if (p.getX() == x && p.getY() == y)
  4119.                     return true;
  4120.             }  
  4121.         }
  4122.         return false;  
  4123.     }
  4124.    
  4125.     public void checkPouch(int i) {
  4126.         if (i < 0)
  4127.             return;
  4128.         c.sendMessage("This pouch has " + c.pouches[i] + " rune ess in it.");      
  4129.     }
  4130.    
  4131.     public void fillPouch(int i) {
  4132.         if (i < 0)
  4133.             return;
  4134.         int toAdd = c.POUCH_SIZE[i] - c.pouches[i];
  4135.         if (toAdd > c.getItems().getItemAmount(1436)) {
  4136.             toAdd = c.getItems().getItemAmount(1436);
  4137.         }
  4138.         if (toAdd > c.POUCH_SIZE[i] - c.pouches[i])
  4139.             toAdd = c.POUCH_SIZE[i] - c.pouches[i];
  4140.         if (toAdd > 0) {
  4141.             c.getItems().deleteItem(1436, toAdd);
  4142.             c.pouches[i] += toAdd;
  4143.         }      
  4144.     }
  4145.    
  4146.     public void emptyPouch(int i) {
  4147.         if (i < 0)
  4148.             return;
  4149.         int toAdd = c.pouches[i];
  4150.         if (toAdd > c.getItems().freeSlots()) {
  4151.             toAdd = c.getItems().freeSlots();
  4152.         }
  4153.         if (toAdd > 0) {
  4154.             c.getItems().addItem(1436, toAdd);
  4155.             c.pouches[i] -= toAdd;
  4156.         }      
  4157.     }
  4158.    
  4159.     public void fixAllBarrows() {
  4160.         int totalCost = 0;
  4161.         int cashAmount = c.getItems().getItemAmount(995);
  4162.         for (int j = 0; j < c.playerItems.length; j++) {
  4163.             boolean breakOut = false;
  4164.             for (int i = 0; i < c.getItems().brokenBarrows.length; i++) {
  4165.                 if (c.playerItems[j]-1 == c.getItems().brokenBarrows[i][1]) {                  
  4166.                     if (totalCost + 80000 > cashAmount) {
  4167.                         breakOut = true;
  4168.                         c.sendMessage("You have run out of money.");
  4169.                         break;
  4170.                     } else {
  4171.                         totalCost += 80000;
  4172.                     }
  4173.                     c.playerItems[j] = c.getItems().brokenBarrows[i][0]+1;
  4174.                 }      
  4175.             }
  4176.             if (breakOut)      
  4177.                 break;
  4178.         }
  4179.         if (totalCost > 0)
  4180.             c.getItems().deleteItem(995, c.getItems().getItemSlot(995), totalCost);    
  4181.     }
  4182.    
  4183.     public void handleLoginText() {
  4184.         c.getPA().sendFrame126("Monster Teleport", 13037);
  4185.         c.getPA().sendFrame126("Minigame Teleport", 13047);
  4186.         c.getPA().sendFrame126("Boss Teleport", 13055);
  4187.         c.getPA().sendFrame126("Pking Teleport", 13063);
  4188.         c.getPA().sendFrame126("@gre@karamaja Teleport", 13071);
  4189.         c.getPA().sendFrame126("Monster Teleport", 1300);
  4190.         c.getPA().sendFrame126("Minigame Teleport", 1325);
  4191.         c.getPA().sendFrame126("Boss Teleport", 1350);
  4192.         c.getPA().sendFrame126("Pking Teleport", 1382);
  4193.         c.getPA().sendFrame126("Skill Teleport", 1415);
  4194.         c.getPA().sendFrame126("City Teleport", 1454); 
  4195.         c.getPA().sendFrame126("Advanced Skilling", 7457);
  4196.         c.getPA().sendFrame126("Advanced Bosses", 13097);
  4197.         c.getPA().sendFrame126("Advanced Skilling", 13089);
  4198.         c.getPA().sendFrame126("City Teleport", 13081);
  4199.     }
  4200.    
  4201.     public void Change() {
  4202.  
  4203. if(c.getItems().playerHasItem(995, 2000000000)) {
  4204. c.sendMessage("<shad=16745472>[Server]</col><shad=65288>You exchange your 2000m coins for a Ticket.");
  4205. c.getPA().removeAllWindows();
  4206. c.getItems().deleteItem(995,c.getItems().getItemSlot(995),2000000000);
  4207. c.getItems().addItem(693, 1);
  4208.  
  4209. } else
  4210.  
  4211.                                         if(!c.getItems().playerHasItem(995, 2000000000)) {
  4212. c.getPA().removeAllWindows();
  4213. }              
  4214.         }
  4215. public void testLamp() {
  4216.         c.getPA().showInterface(35000);
  4217.     }
  4218.     public void handleWeaponStyle() {
  4219.         if (c.fightMode == 0) {
  4220.             c.getPA().sendFrame36(43, c.fightMode);
  4221.         } else if (c.fightMode == 1) {
  4222.             c.getPA().sendFrame36(43, 3);
  4223.         } else if (c.fightMode == 2) {
  4224.             c.getPA().sendFrame36(43, 1);
  4225.         } else if (c.fightMode == 3) {
  4226.             c.getPA().sendFrame36(43, 2);
  4227.         }
  4228.     }
  4229.    
  4230.    
  4231.    
  4232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement