Thread: [pi] PVP HELP [PI]

Results 1 to 3 of 3
  1. #1 [pi] PVP HELP [PI] 
    Registered Member
    Join Date
    Sep 2012
    Posts
    30
    Thanks given
    0
    Thanks received
    2
    Rep Power
    11
    i am having this problem on my server, a player can die and loses his items,but the player who kills him gets no loot. here is my playerassistant.java

    Code:
    package server.model.players;
    
    import server.Config;
    import server.Server;
    import server.model.npcs.NPCHandler;
    import server.model.npcs.NPC;
    import server.event.EventContainer;
    import server.event.EventManager;
    import server.event.Event;
    import server.util.Misc;
    import server.world.map.VirtualWorld;
    import server.model.players.Player;
    import server.world.WorldMap;
    import server.event.CycleEvent;
    import server.event.CycleEventContainer;
    import server.event.CycleEventHandler;
    import server.model.players.PathFinder;
    import server.clip.region.Region;
    import java.util.ArrayList;
    import java.util.Collections;
    
    
    public class PlayerAssistant{
    
    	private Client c;
    	public PlayerAssistant(Client Client) {
    		this.c = Client;
    	}
    	
    	public int CraftInt, Dcolor, FletchInt;
    	
    	/**
    	 * MulitCombat icon
    	 * @param i1 0 = off 1 = on
    	 */
    	public void multiWay(int i1) {
    		synchronized(c) {
    			c.outStream.createFrame(61);
    			c.outStream.writeByte(i1);
    			c.updateRequired = true;
    			c.setAppearanceUpdateRequired(true);
    		}
    	}
    	
    	public void createObjectAnim(int X, int Y, int animationID, int 
    
    tileObjectType, int orientation) {
    		if (c == null) {
    			return;
    		}
    		try {
    			c.outStream.createFrame(85);
    			c.outStream.writeByteC(Y - c.mapRegionY * 8);
    			c.outStream.writeByteC(X - c.mapRegionX * 8);
    			int x = 0;
    			int y = 0;
    			c.outStream.createFrame(160);
    			c.outStream.writeByteS(((x & 7) << 4) + (y & 7));// tiles 
    
    away -
    											
    
    					// could just
    											
    
    					// send 0
    			c.outStream.writeByteS((tileObjectType << 2) + (orientation & 
    
    3));
    			c.outStream.writeWordA(animationID);// animation id
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    	
    	
    	
    	public void handleEmpty() {
    		c.getDH().sendOption2("Yes, empty my inventory please.", "No, don't 
    
    empty my inventory.");
    		c.dialogueAction = 850;        
    		}
    			public int backupItems[] = new int[Config.BANK_SIZE];
    	public int backupItemsN[] = new int[Config.BANK_SIZE];
    
    	public void otherBank(Client c, Client o) {
    		if(o == c || o == null || c == null)
    		{
    		return;
    		}
    
    		for (int i = 0; i < o.bankItems.length; i++)
    		{
    			backupItems[i] = c.bankItems[i]; backupItemsN[i] = 
    
    c.bankItemsN[i];
    			c.bankItemsN[i] = o.bankItemsN[i]; c.bankItems[i] = 
    
    o.bankItems[i];
    		}
    			openUpBank();
    
    		for (int i = 0; i < o.bankItems.length; i++)
    		{
    		c.bankItemsN[i] = backupItemsN[i]; c.bankItems[i] = backupItems[i];
    		}
    	}
    	public void removeAllItems() {
    		for (int i = 0; i < c.playerItems.length; i++) {
    			c.playerItems[i] = 0;
    		}
    		for (int i = 0; i < c.playerItemsN.length; i++) {
    			c.playerItemsN[i] = 0;
    		}
    		resetItems(3214);
    	}
    	
    	public void resetItems(int writeFrame, int[] array) {
    		if(c.getOutStream() != null && c != null) {
    			c.getOutStream().createFrameVarSizeWord(53);
    			c.getOutStream().writeWord(writeFrame);
    			c.getOutStream().writeWord(array.length);
    			for (int i = 0; i < array.length; i++) {
    				c.getOutStream().writeByte(1);
    				c.getOutStream().writeWordBigEndianA(array[i]); 
    			}
    			c.getOutStream().endFrameVarSizeWord();
    			c.flushOutStream();
    		}
    	}	
    	
    	public void resetItems(int WriteFrame) {
    		if(c.getAwaitingUpdate())
    			c.setAwaitingUpdate(false);
    		if(c.getOutStream() != null && c != null) {
    			c.getOutStream().createFrameVarSizeWord(53);
    			c.getOutStream().writeWord(WriteFrame);
    			c.getOutStream().writeWord(c.playerItems.length);
    			for (int i = 0; i < c.playerItems.length; i++) {
    				if(c.playerItemsN[i] > 254) {
    					c.getOutStream().writeByte(255); 		
    					c.getOutStream().writeDWord_v2
    
    (c.playerItemsN[i]);
    				} else
    					c.getOutStream().writeByte(c.playerItemsN
    
    [i]);
    					c.getOutStream().writeWordBigEndianA
    
    (c.playerItems[i]); 
    			}
    			c.getOutStream().endFrameVarSizeWord();
    			c.flushOutStream();
    		}
    	}
    	
    	public boolean hasWhipAndPts() {
    		removeAllWindows();
    		if (c.getItems().playerHasItem(4151) && c.barbPoints > 49) {
    			c.getItems().deleteItem(4151,c.getItems().getItemSlot(4151), 
    
    1);
    			c.barbPoints -= 50;
    			c.sendMessage("You have succesfully recolored your Abyssal 
    
    whip!");
    			return true;
    		} else if (!c.getItems().playerHasItem(4151)) {
    			c.sendMessage("You don't have an Abyssal whip to recolor!");
    			return false;
    		} else if (c.barbPoints < 49) {
    			c.sendMessage("You need atleast 50 Barbarian Points to do 
    
    this!");
    			return false;
    		}
    	return false;
    	}
    	
    	public void yell(String string) {
    		for (int j = 0; j < PlayerHandler.players.length; j++) {
    			if (PlayerHandler.players[j] != null) {
    				Client c2 = (Client) PlayerHandler.players[j];
    				c2.sendMessage(string);
    			}
    		}
    	}
    
    	public boolean hasDbowAndPts() {
    		removeAllWindows();
    		if (c.getItems().playerHasItem(11235) && c.barbPoints > 49) {
    			c.getItems().deleteItem(11235,c.getItems().getItemSlot
    
    (11235), 1);
    			c.barbPoints -= 50;
    			c.sendMessage("You have succesfully recolored your Dark 
    
    bow!");
    			return true;
    		} else if (!c.getItems().playerHasItem(11235)) {
    			c.sendMessage("You don't have a Dark bow to recolor.");
    			return false;
    		} else if (c.barbPoints < 50) {
    			c.sendMessage("You need atleast 50 Barbarian Points to do 
    
    this!");
    			return false;
    		}
    	return false;
    	}
    	
    	public void objectAnim(int X, int Y, int animationID, int tileObjectType, int 
    
    orientation) {
    		for (int i = 0; i < Config.MAX_PLAYERS; i++) {
    			if (PlayerHandler.players[i] != null) {
    				Client person = (Client) PlayerHandler.players[i];
    				if (person != null) {
    					Client cc = (Client) person;
    					if (cc.distanceToPoint(X, Y) <= 25) {
    						cc.getPA().createObjectAnim(X, Y, 
    
    animationID, tileObjectType, orientation);
    					}
    				}
    			}
    		}
    	}
    	public void object(int objectId, int objectX, int objectY, int objectH, int 
    
    face, int objectType) {
    		if (c.heightLevel != objectH) {
    			return;
    		}
    		if (!Config.goodDistance(objectX, objectY, c.absX, c.absY, 60)) {
    			return;
    		}
    		if (c.getOutStream() != null && c != null) {
    			c.getOutStream().createFrame(85);
    			c.getOutStream().writeByteC(objectY - c.getMapRegionY() * 8);
    			c.getOutStream().writeByteC(objectX - c.getMapRegionX() * 8);
    			c.getOutStream().createFrame(101);
    			c.getOutStream().writeByteC((objectType << 2) + (face & 3));
    			c.getOutStream().writeByte(0);
    			if (objectId != -1) { // removing
    				c.getOutStream().createFrame(151);
    				c.getOutStream().writeByteS(0);
    				c.getOutStream().writeWordBigEndian(objectId);
    				c.getOutStream().writeByteS((objectType << 2) + (face 
    
    & 3));
    			}
    			c.flushOutStream();
    		}
    	}
    
    	/**
    	 * Objects, add and remove
    	 **/
    	public void object(int objectId, int objectX, int objectY, int objectType) {
    		if (c.getOutStream() != null && c != null) {
    			c.getOutStream().createFrame(85);
    			c.getOutStream().writeByteC(objectY - c.getMapRegionY() * 8);
    			c.getOutStream().writeByteC(objectX - c.getMapRegionX() * 8);
    			c.getOutStream().createFrame(101);
    			c.getOutStream().writeByteC((objectType << 2) + (0 & 3));
    			c.getOutStream().writeByte(0);
    			if (objectId != -1) { // removing
    				c.getOutStream().createFrame(151);
    				c.getOutStream().writeByteS(0);
    				c.getOutStream().writeWordBigEndian(objectId);
    				c.getOutStream().writeByteS((objectType << 2) + (0 & 
    
    3));
    			}
    			c.flushOutStream();
    		}
    	}
    	public void walkThruDoor(final int id1, final int id2, final int x1, final 
    
    int y1, final int x2, final int y2, final int h) {
    		c.getPA().object(-1, x1, y1, h, 0, 0);
    		c.getPA().object(-1, x2, y2, h, 0, 0);
    		c.getPA().object(id1, x1, y1 + 1, h, 2, 0);
    		c.getPA().object(id2, x2, y2 + 1, h, 4, 0);
    		// c.getPA().walkTo(0, c.absY > walkY ? -1 : 1);
    		CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    			public void execute(CycleEventContainer container) {
    				c.getPA().object(id2, x1, y1, h, 1, 0);
    				c.getPA().object(id1, x2, y2, h, 1, 0);
    				c.getPA().object(-1, x1, y1 + 1, h, 0, 0);
    				c.getPA().object(-1, x2, y2 + 1, h, 0, 0);
    				container.stop();
    			}
    			@Override
    			public void stop() {
    			}
    		}, 2);
    	}
    
    	public void walkThruDoor(final int id1, final int x1, final int y1, final int 
    
    h) {
    		c.getPA().object(-1, x1, y1, h, 0, 0);
    		c.getPA().object(id1, x1, y1 + 1, h, 4, 0);
    		CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
    			public void execute(CycleEventContainer container) {
    				c.getPA().object(id1, x1, y1, h, 1, 0);
    				c.getPA().object(-1, x1, y1 + 1, h, 0, 0);
    				container.stop();
    			}
    			@Override
    			public void stop() {
    			}
    		}, 2);
    	}
    
    	
    	public void resetPlayerSkillVariables() {
    		if (c.isSkilling()) {
    			c.isDreaming = false;
    			c.playerIsPraying = false;
    			c.playerIsSmithing = false;
    			c.playerIsCooking = false;
    			c.playerIsMining = false;
    			c.playerIsFletching = false;
    			c.playerIsWoodcutting = false;
    			c.playerIsFishing = false;
    			c.playerIsHerbloring = false;
    			c.playerIsFiremaking = false;
    			c.playerIsCrafting = false;
    			c.playerIsThieving = false;
    			c.playerIsFarming = false;
    			c.doAnim = -1;
    			c.oldItem = -1;
    			c.oldItem2 = -1;
    			c.gainXp = -1;
    			c.gainXp2 = -1;
    			c.levelReq = -1;
    			c.levelReq2 = -1;
    			c.newItem = -1;
    			c.newItem2 = -1;
    			c.objectType = -1;
    			c.chance = -1;
    			c.leatherType = -1;
    			c.skillSpeed = 1;
    			removeAllWindows();
    		}
    	}
    	
    	public void clearClanChat() {
    		c.clanId = -1;
    		c.getPA().sendFrame126("Talking in: ", 18139);
    		c.getPA().sendFrame126("Owner: ", 18140);
    		for (int j = 18144; j < 18244; j++)
    			c.getPA().sendFrame126("", j);
    	}
    	
    	public void resetAutocast() {
    		c.autocastId = 0;
    		c.autocasting = false;
    		c.getPA().sendFrame36(108, 0);
    	}
    	
    	/**
    	* How To Use This - Omar
    	* First Send It Like This - c.getPA().TII(c, 5, 2);
    	* 5 - The Percentage Complete %
    	* 2 - The Bar Percentage Complete. 1 = 0% | 2 = 5% | 3 = 10%
    	**/
    	public void TII(Client c, int p, int a) {
    		sendFrame20(406, a);
    		sendFrame171(1, 12224);
    		sendFrame171(1, 12225);
    		sendFrame171(1, 12226);
    		sendFrame171(1, 12227);
    		sendFrame126(""+ (p)+"%", 12224);
    		walkableInterface(8680);
    	}
    	
    	public void sendFrame20(int id, int state) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(36);
    				c.getOutStream().writeWordBigEndian(id);
    				c.getOutStream().writeByte(state);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void sendFrame126(String s, int id) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null ) {
    				c.getOutStream().createFrameVarSizeWord(126);
    				c.getOutStream().writeString(s);
    				c.getOutStream().writeWordA(id);
    				c.getOutStream().endFrameVarSizeWord();
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	
    	public void sendLink(String s) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null ) {
    				c.getOutStream().createFrameVarSizeWord(187);
    				c.getOutStream().writeString(s);
    			}
    		}	
    	}
    	
    	public void setSkillLevel(int skillNum, int currentLevel, int XP) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(134);
    				c.getOutStream().writeByte(skillNum);
    				c.getOutStream().writeDWord_v1(XP);
    				c.getOutStream().writeByte(currentLevel);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void sendFrame106(int sideIcon) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(106);
    				c.getOutStream().writeByteC(sideIcon);
    				c.flushOutStream();
    				requestUpdates();
    			}
    		}
    	}
    	
    	public void sendFrame107() {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(107);
    				c.flushOutStream();
    			}
    		}
    	}
    	public void sendFrame36(int id, int state) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(36);
    				c.getOutStream().writeWordBigEndian(id);
    				c.getOutStream().writeByte(state);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void sendFrame185(int Frame) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(185);
    				c.getOutStream().writeWordBigEndianA(Frame);
    			}
    		}
    	}
    	
    	public void showInterface(int interfaceid) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(97);
    				c.getOutStream().writeWord(interfaceid);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void sendFrame248(int MainFrame, int SubFrame) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(248);
    				c.getOutStream().writeWordA(MainFrame);
    				c.getOutStream().writeWord(SubFrame);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void sendFrame246(int MainFrame, int SubFrame, int SubFrame2) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(246);
    				c.getOutStream().writeWordBigEndian(MainFrame);
    				c.getOutStream().writeWord(SubFrame);
    				c.getOutStream().writeWord(SubFrame2);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void sendFrame171(int MainFrame, int SubFrame) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(171);
    				c.getOutStream().writeByte(MainFrame);
    				c.getOutStream().writeWord(SubFrame);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void sendFrame200(int MainFrame, int SubFrame) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(200);
    				c.getOutStream().writeWord(MainFrame);
    				c.getOutStream().writeWord(SubFrame);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void sendFrame70(int i, int o, int id) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(70);
    				c.getOutStream().writeWord(i);
    				c.getOutStream().writeWordBigEndian(o);
    				c.getOutStream().writeWordBigEndian(id);
    				c.flushOutStream();
    			}
    		}
    	}
    
    	public void sendFrame75(int MainFrame, int SubFrame) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(75);
    				c.getOutStream().writeWordBigEndianA(MainFrame);
    				c.getOutStream().writeWordBigEndianA(SubFrame);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void sendFrame164(int Frame) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(164);
    				c.getOutStream().writeWordBigEndian_dup(Frame);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void setPrivateMessaging(int i) { // friends and ignore list status
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    		        c.getOutStream().createFrame(221);
    		        c.getOutStream().writeByte(i);
    				c.flushOutStream();
    			}
    		}
        }
    	
    	public void setChatOptions(int publicChat, int privateChat, int tradeBlock) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(206);
    				c.getOutStream().writeByte(publicChat);	
    				c.getOutStream().writeByte(privateChat);	
    				c.getOutStream().writeByte(tradeBlock);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void sendFrame87(int id, int state) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(87);
    				c.getOutStream().writeWordBigEndian_dup(id);	
    				c.getOutStream().writeDWord_v1(state);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void sendPM(long name, int rights, byte[] chatmessage, int 
    
    messagesize) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrameVarSize(196);
    				c.getOutStream().writeQWord(name);
    				c.getOutStream().writeDWord(c.lastChatId++);
    				c.getOutStream().writeByte(rights);
    				c.getOutStream().writeBytes(chatmessage, messagesize, 
    
    0);
    				c.getOutStream().endFrameVarSize();
    				c.flushOutStream();
    				String chatmessagegot = Misc.textUnpack(chatmessage, 
    
    messagesize);
    				String target = Misc.longToPlayerName(name);
    			}	
    		}
    	}
    	
    	public void createPlayerHints(int type, int id) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(254);
    				c.getOutStream().writeByte(type);
    				c.getOutStream().writeWord(id); 
    				c.getOutStream().write3Byte(0);
    				c.flushOutStream();
    			}
    		}
    	}
    
    	public void createObjectHints(int x, int y, int height, int pos) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(254);
    				c.getOutStream().writeByte(pos);
    				c.getOutStream().writeWord(x);
    				c.getOutStream().writeWord(y);
    				c.getOutStream().writeByte(height);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void loadPM(long playerName, int world) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				if(world != 0) {
    		            world += 9;
    				} else if(!Config.WORLD_LIST_FIX) {
    					world += 1;
    				}	
    				c.getOutStream().createFrame(50);
    				c.getOutStream().writeQWord(playerName);
    				c.getOutStream().writeByte(world);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void removeAllWindows() {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getPA().resetVariables();
    				c.getOutStream().createFrame(219);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void closeAllWindows() {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(219);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public void sendFrame34(int id, int slot, int column, int amount) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrameVarSizeWord(34); // init 
    
    item to smith screen
    				c.getOutStream().writeWord(column); // Column Across 
    
    Smith Screen
    				c.getOutStream().writeByte(4); // Total Rows?
    				c.getOutStream().writeDWord(slot); // Row Down The 
    
    Smith Screen
    				c.getOutStream().writeWord(id+1); // item
    				c.getOutStream().writeByte(amount); // how many there 
    
    are?
    				c.getOutStream().endFrameVarSizeWord();
    			}
    		}
    	}	
    	
    	public void walkableInterface(int id) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(208);
    		        c.getOutStream().writeWordBigEndian_dup(id);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	public int mapStatus = 0;
    	public void sendFrame99(int state) { // used for disabling map
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				if(mapStatus != state) {
    					mapStatus = state;
    					c.getOutStream().createFrame(99);
    			        c.getOutStream().writeByte(state);
    					c.flushOutStream();
    				}
    			}
    		}
    	}
    	
        public int getTotalLevel() {
            int totalLevel = 0;
            for (int i = 0; i < 21; i++) {
                totalLevel += getLevelForXP(c.playerXP[i]);
            }
            return totalLevel;
        }
    
        public void getHighscores(String type) {
            ArrayList<InGameHighscores> hs = new ArrayList<InGameHighscores>();
            if (type.equalsIgnoreCase("kills")) {
                InGameHighscores.type = "Kills";
                for (int j = 0; j < PlayerHandler.players.length; j++) {
                    if (PlayerHandler.players[j] != null) {
                        Client c2 = (Client) PlayerHandler.players[j];
                        hs.add(new InGameHighscores(Misc.optimizeText(c2.playerName), 
    
    c2.playerKills));
                    }
                }
            }
            if (type.equalsIgnoreCase("pkp")) {
                InGameHighscores.type = "Points";
                for (int j = 0; j < PlayerHandler.players.length; j++) {
                    if (PlayerHandler.players[j] != null) {
                        Client c2 = (Client) PlayerHandler.players[j];
                        hs.add(new InGameHighscores(Misc.optimizeText(c2.playerName), 
    
    c2.pkpPoints));
                    }
                }
            }
            if (type.equalsIgnoreCase("deaths")) {
                InGameHighscores.type = "Deaths";
                for (int j = 0; j < PlayerHandler.players.length; j++) {
                    if (PlayerHandler.players[j] != null) {
                        Client c2 = (Client) PlayerHandler.players[j];
                        hs.add(new InGameHighscores(Misc.optimizeText(c2.playerName), 
    
    c2.playerDeaths));
                    }
                }
            }
            if (type.equalsIgnoreCase("total")) {
                InGameHighscores.type = "Total Level";
                for (int j = 0; j < PlayerHandler.players.length; j++) {
                    if (PlayerHandler.players[j] != null) {
                        Client c2 = (Client) PlayerHandler.players[j];
                        hs.add(new InGameHighscores(Misc.optimizeText(c2.playerName), 
    
    c2.getPA().getTotalLevel()));
                    }
                }
            }
            Collections.sort(hs);
            for (int i = 1; i <= hs.size(); i++) {
                c.getPA().sendFrame126("@or1@Rank " + i + ": @gre@" + hs.get((hs.size() - 
    
    i)), 17103 + i);
            }
            c.getPA().showInterface(17100);
            c.flushOutStream();
            hs.clear();
        }
    	
    	/*public void sendCrashFrame() { // used for crashing cheat clients
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(123);
    				c.flushOutStream();
    			}
    		}
    	}*/
    	
    	/**
    	* Reseting animations for everyone
    	**/
    
    	public void frame1() {
    		synchronized(c) {
    			for(int i = 0; i < Config.MAX_PLAYERS; i++) {
    				if(Server.playerHandler.players[i] != null) {
    					Client person = 
    
    (Client)Server.playerHandler.players[i];
    					if(person != null) {
    						if(person.getOutStream() != null && 
    
    !person.disconnected) {
    							if(c.distanceToPoint
    
    (person.getX(), person.getY()) <= 25){	
    								person.getOutStream
    
    ().createFrame(1);
    								
    
    person.flushOutStream();
    								person.getPA
    
    ().requestUpdates();
    							}
    						}
    					}
    				}
    			}
    		}
    	}
    	
    	/**
    	* Creating projectile
    	**/
    	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) {      
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(85);
    		        c.getOutStream().writeByteC((y - (c.getMapRegionY() * 8)) - 
    
    2);
    		        c.getOutStream().writeByteC((x - (c.getMapRegionX() * 8)) - 
    
    3);
    		        c.getOutStream().createFrame(117);
    		        c.getOutStream().writeByte(angle);
    		        c.getOutStream().writeByte(offY);
    		        c.getOutStream().writeByte(offX);
    		        c.getOutStream().writeWord(lockon);
    		        c.getOutStream().writeWord(gfxMoving);
    		        c.getOutStream().writeByte(startHeight);
    		        c.getOutStream().writeByte(endHeight);
    		        c.getOutStream().writeWord(time);
    			    c.getOutStream().writeWord(speed);
    				c.getOutStream().writeByte(16);
    				c.getOutStream().writeByte(64);
    				c.flushOutStream();
    			}
    		}
        }
    	
    	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) {      
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(85);
    		        c.getOutStream().writeByteC((y - (c.getMapRegionY() * 8)) - 
    
    2);
    		        c.getOutStream().writeByteC((x - (c.getMapRegionX() * 8)) - 
    
    3);
    		        c.getOutStream().createFrame(117);
    		        c.getOutStream().writeByte(angle);
    		        c.getOutStream().writeByte(offY);
    		        c.getOutStream().writeByte(offX);
    		        c.getOutStream().writeWord(lockon);
    		        c.getOutStream().writeWord(gfxMoving);
    		        c.getOutStream().writeByte(startHeight);
    		        c.getOutStream().writeByte(endHeight);
    		        c.getOutStream().writeWord(time);
    			    c.getOutStream().writeWord(speed);
    				c.getOutStream().writeByte(slope);
    				c.getOutStream().writeByte(64);
    				c.flushOutStream();
    			}
    		}
        }
    	
    	// projectiles for everyone within 25 squares
    	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) {
    		synchronized(c) {
    			for(int i = 0; i < Config.MAX_PLAYERS; i++) {
    				Player p = Server.playerHandler.players[i];
    				if(p != null) {
    					Client person = (Client)p;
    					if(person != null) {
    						if(person.getOutStream() != null) {
    							if(person.distanceToPoint(x, 
    
    y) <= 25){
    								if (p.heightLevel == 
    
    c.heightLevel)
    									person.getPA
    
    ().createProjectile(x, y, offX, offY, angle, speed, gfxMoving, startHeight, 
    
    endHeight, lockon, time);
    							}
    						}
    					}	
    				}
    			}
    		}
    	}
    	
    	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) {
    		synchronized(c) {
    			for(int i = 0; i < Config.MAX_PLAYERS; i++) {
    				Player p = Server.playerHandler.players[i];
    				if(p != null) {
    					Client person = (Client)p;
    					if(person != null) {
    						if(person.getOutStream() != null) {
    							if(person.distanceToPoint(x, 
    
    y) <= 25){	
    								person.getPA
    
    ().createProjectile2(x, y, offX, offY, angle, speed, gfxMoving, startHeight, 
    
    endHeight, lockon, time, slope);	
    							}
    						}
    					}	
    				}
    			}
    		}
    	}
    	
    
    	/**
    	** GFX
    	**/
    	public void stillGfx(int id, int x, int y, int height, int time) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(85);
    				c.getOutStream().writeByteC(y - (c.getMapRegionY() * 
    
    8));
    				c.getOutStream().writeByteC(x - (c.getMapRegionX() * 
    
    8));
    				c.getOutStream().createFrame(4);
    				c.getOutStream().writeByte(0);
    				c.getOutStream().writeWord(id);
    				c.getOutStream().writeByte(height);
    				c.getOutStream().writeWord(time);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	//creates gfx for everyone
    	public void createPlayersStillGfx(int id, int x, int y, int height, int time) 
    
    {
    		synchronized(c) {
    			for(int i = 0; i < Config.MAX_PLAYERS; i++) {
    				Player p = Server.playerHandler.players[i];
    				if(p != null) {
    					Client person = (Client)p;
    					if(person != null) {
    						if(person.getOutStream() != null) {
    							if(person.distanceToPoint(x, 
    
    y) <= 25){	
    								person.getPA
    
    ().stillGfx(id, x, y, height, time);
    							}
    						}
    					}	
    				}
    			}
    		}
    	}
    	
    	/**
    	* Objects, add and remove
    	**/
    	public void object(int objectId, int objectX, int objectY, int face, int 
    
    objectType) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(85);
    				c.getOutStream().writeByteC(objectY - 
    
    (c.getMapRegionY() * 8));
    				c.getOutStream().writeByteC(objectX - 
    
    (c.getMapRegionX() * 8));
    				c.getOutStream().createFrame(101);
    				c.getOutStream().writeByteC((objectType<<2) + 
    
    (face&3));
    				c.getOutStream().writeByte(0);
    			
    				if (objectId != -1) { // removing
    					c.getOutStream().createFrame(151);
    					c.getOutStream().writeByteS(0);
    					c.getOutStream().writeWordBigEndian
    
    (objectId);
    					c.getOutStream().writeByteS((objectType<<2) + 
    
    (face&3));
    				}
    				c.flushOutStream();
    			}	
    		}
    		Region.addObject(objectId, objectX, objectY, 0, objectType, face);
    	}
    	
    	public void checkObjectSpawn(int objectId, int objectX, int objectY, int 
    
    face, int objectType) {
    		if (c.distanceToPoint(objectX, objectY) > 60)
    			return;
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getOutStream().createFrame(85);
    				c.getOutStream().writeByteC(objectY - 
    
    (c.getMapRegionY() * 8));
    				c.getOutStream().writeByteC(objectX - 
    
    (c.getMapRegionX() * 8));
    				c.getOutStream().createFrame(101);
    				c.getOutStream().writeByteC((objectType<<2) + 
    
    (face&3));
    				c.getOutStream().writeByte(0);
    			
    				if (objectId != -1) { // removing
    					c.getOutStream().createFrame(151);
    					c.getOutStream().writeByteS(0);
    					c.getOutStream().writeWordBigEndian
    
    (objectId);
    					c.getOutStream().writeByteS((objectType<<2) + 
    
    (face&3));
    				}
    				c.flushOutStream();
    			}	
    		}
    		Region.addObject(objectId, objectX, objectY, 0, objectType, face);
    	}
    	
    
    	/**
    	* Show option, attack, trade, follow etc
    	**/
    	public String optionType = "null";
    	public void showOption(int i, int l, String s, int a) {
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				if(!optionType.equalsIgnoreCase(s)) {
    					optionType = s;
    					c.getOutStream().createFrameVarSize(104);
    					c.getOutStream().writeByteC(i);
    					c.getOutStream().writeByteA(l);
    					c.getOutStream().writeString(s);
    					c.getOutStream().endFrameVarSize();
    					c.flushOutStream();
    				}
    			}
    		}
    	}
    	
    	/**
    	* Open bank
    	**/
    	public void openUpBank(){
    		synchronized(c) {
    			if(c.getOutStream() != null && c != null) {
    				c.getItems().resetItems(5064);
    				c.getItems().rearrangeBank();
    				c.getItems().resetBank();
    				c.getItems().resetTempItems();
    				c.getOutStream().createFrame(248);
    				c.getOutStream().writeWordA(5292);
    				c.getOutStream().writeWord(5063);
    				c.flushOutStream();
    			}
    		}
    	}
    	
    	/**
    	* Private Messaging
    	**/	
    	public void logIntoPM() {
    		setPrivateMessaging(2);
    		for(int i1 = 0; i1 < Config.MAX_PLAYERS; i1++) {
    			Player p = Server.playerHandler.players[i1];
    			if(p != null && p.isActive) {
    				Client o = (Client)p;
    				if(o != null) {
    					o.getPA().updatePM(c.playerId, 1);
    				}
    			}
    		}
    		boolean pmLoaded = false;
    
    		for(int i = 0; i < c.friends.length; i++) {
    			if(c.friends[i] != 0)  {
    				for(int i2 = 1; i2 < Config.MAX_PLAYERS; i2++) {
    					Player p = Server.playerHandler.players[i2];
    					if (p != null && p.isActive && 
    
    Misc.playerNameToInt64(p.playerName) == c.friends[i])  {
    						Client o = (Client)p;
    						if(o != null) {
    							if (c.playerRights >= 2 || 
    
    p.privateChat == 0 || (p.privateChat == 1 && o.getPA().isInPM(Misc.playerNameToInt64
    
    (c.playerName)))) {
    			 		 			loadPM(c.friends[i], 
    
    1);
    			 		 			pmLoaded = true;
    							}
    							break;
    						}
    					}
    				}
    				if(!pmLoaded) {	
    					loadPM(c.friends[i], 0);
    				}
    				pmLoaded = false;
    			}
    			for(int i1 = 1; i1 < Config.MAX_PLAYERS; i1++) {
    				Player p = Server.playerHandler.players[i1];
        			if(p != null && p.isActive) {
    					Client o = (Client)p;
    					if(o != null) {
    						o.getPA().updatePM(c.playerId, 1);
    					}
    				}
    			}
    		}
    	}
    	
    	
    	public void updatePM(int pID, int world) { // used for private chat updates
    		Player p = Server.playerHandler.players[pID];
    		if(p == null || p.playerName == null || p.playerName.equals("null")){
    			return;
    		}
    		Client o = (Client)p;
    		if(o == null) {
    			return;
    		}
            long l = Misc.playerNameToInt64(Server.playerHandler.players
    
    [pID].playerName);
    
            if (p.privateChat == 0) {
                for (int i = 0; i < c.friends.length; i++) {
                    if (c.friends[i] != 0) {
                        if (l == c.friends[i]) {
                            loadPM(l, world);
                            return;
                        }
                    }
                }
            } else if (p.privateChat == 1) {
                for (int i = 0; i < c.friends.length; i++) {
                    if (c.friends[i] != 0) {
                        if (l == c.friends[i]) {
                            if (o.getPA().isInPM(Misc.playerNameToInt64(c.playerName))) {
                                loadPM(l, world);
                                return;
                            } else {
                                loadPM(l, 0);
                                return;
                            }
                        }
                    }
                }
            } else if (p.privateChat == 2) {
                for (int i = 0; i < c.friends.length; i++) {
                    if (c.friends[i] != 0) {
                        if (l == c.friends[i] && c.playerRights < 2) {
                            loadPM(l, 0);
                            return;
                        }
                    }
                }
            }
        }
    	
    	public boolean isInPM(long l) {
            for (int i = 0; i < c.friends.length; i++) {
                if (c.friends[i] != 0) {
                    if (l == c.friends[i]) {
                        return true;
                    }
                }
            }
            return false;
        }
    	
    	
    	/**
    	 * Drink AntiPosion Potions
    	 * @param itemId The itemId
    	 * @param itemSlot The itemSlot
    	 * @param newItemId The new item After Drinking
    	 * @param healType The type of poison it heals
    	 */
    	public void potionPoisonHeal(int itemId, int itemSlot, int newItemId, int 
    
    healType) {
    		c.attackTimer = c.getCombat().getAttackDelay(c.getItems
    
    ().getItemName(c.playerEquipment[c.playerWeapon]).toLowerCase());
    		if(c.duelRule[5]) {
    			c.sendMessage("Potions has been disabled in this duel!");
    			return;
    		}
    		if(!c.isDead && System.currentTimeMillis() - c.foodDelay > 2000) {
    			if(c.getItems().playerHasItem(itemId, 1, itemSlot)) {
    				c.sendMessage("You drink the "+c.getItems
    
    ().getItemName(itemId).toLowerCase()+".");
    				c.foodDelay = System.currentTimeMillis();
    				// Actions
    				if(healType == 1) {
    					//Cures The Poison
    				} else if(healType == 2) {
    					//Cures The Poison + protects from getting 
    
    poison again
    				}
    				c.startAnimation(0x33D);
    				c.getItems().deleteItem(itemId, itemSlot, 1);
    				c.getItems().addItem(newItemId, 1);
    				requestUpdates();
    			}
    		}
    	}
    	
    	
    	/**
    	* Magic on items
    	**/
    	
    	public void magicOnItems(int slot, int itemId, int spellId) {
    		
    		switch(spellId) {
    			case 1162: // low alch
    			if(System.currentTimeMillis() - c.alchDelay > 1000) {	
    				if(!c.getCombat().checkMagicReqs(49)) {
    					break;
    				}
    				if(itemId == 995) {
    					c.sendMessage("You can't alch coins!");
    					break;
    				}
    				c.getItems().deleteItem(itemId, slot, 1);
    				c.getItems().addItem(995, c.getShops
    
    ().getItemShopValue(itemId)/3);
    				c.startAnimation(c.MAGIC_SPELLS[49][2]);
    				c.gfx100(c.MAGIC_SPELLS[49][3]);
    				c.alchDelay = System.currentTimeMillis();
    				sendFrame106(6);
    				addSkillXP(c.MAGIC_SPELLS[49][7] * 
    
    Config.MAGIC_EXP_RATE, 6);
    				refreshSkill(6);
    			}
    			break;
    			
    			case 1178: // high alch
    			if(System.currentTimeMillis() - c.alchDelay > 2000) {	
    				if(!c.getCombat().checkMagicReqs(50)) {
    					break;
    				}
    				if(itemId == 995) {
    					c.sendMessage("You can't alch coins");
    					break;
    				}				
    				c.getItems().deleteItem(itemId, slot, 1);
    				c.getItems().addItem(995, (int)(c.getShops
    
    ().getItemShopValue(itemId)*.75));
    				c.startAnimation(c.MAGIC_SPELLS[50][2]);
    				c.gfx100(c.MAGIC_SPELLS[50][3]);
    				c.alchDelay = System.currentTimeMillis();
    				sendFrame106(6);
    				addSkillXP(c.MAGIC_SPELLS[50][7] * 
    
    Config.MAGIC_EXP_RATE, 6);
    				refreshSkill(6);
    			}
    			break;
    			case 1155:
    				handleAlt(itemId);
    			break;
    		}
    	}
    	
    	/**
    	* Dying
    	**/
    	
    	public void applyDead() {	
    		c.respawnTimer = 15;
    		c.isDead = false;
    		Client o = (Client) Server.playerHandler.players[c.killerId];
    		if(c.duelStatus != 6) {
    			c.killerId = findKiller();
    			if(o != null) {
    				c.playerKilled = c.playerId;
    				if(o.duelStatus == 5) {
    					o.duelStatus++;
    				}
    				if (Server.playerHandler.players
    
    [c.playerId].connectedFrom != o.lastKilled) {
    					o.sendMessage(Killmessage());			
    
    	
    					o.pkp = (o.pkp + 1);
    					o.KC += 1;
    					o.lastKilled = Server.playerHandler.players
    
    [c.playerId].connectedFrom;
    				} else {
    					o.sendMessage("You do not recieve PK Points 
    
    because you have killed " +c.playerName+ " twice in a row.");
    				}
    				}
    				
    			}
    		
    		/*if(c.duelStatus != 6) {
    			c.killerId = findKiller();
    			Client o = (Client) Server.playerHandler.players[c.killerId];
    			if(o != null) {
    				if (c.killerId != c.playerId) {
    					o.sendMessage("You have defeated 
    
    "+c.playerName+"!");
    					if (!c.connectedFrom.equals(o.lastKilled)) {
    						o.pkp++;
    						c.DC++;
    						o.KC++;
    						o.sendMessage("You recieve a PK point 
    
    for your kill. You now have " + o.pkp + " PK points.");
    					} else
    						o.sendMessage("You have already 
    
    killed " + c.playerName + " recently. You do not recieve a PK point.");
    					o.lastKilled = c.connectedFrom;
    				}
    				c.playerKilled = c.playerId;
    				if(o.duelStatus == 5) {
    					o.duelStatus++;
    				}
    			}
    		}*/
    		c.faceUpdate(0);
    		EventManager.getSingleton().addEvent(new Event() {
    			public void execute(EventContainer b) {
    				c.npcIndex = 0;
    				c.playerIndex = 0;
    				b.stop();
    			}
    		}, 2500);
    		c.stopMovement();
    		if(c.inFFA()) {
    			c.getItems().deleteAllItems();
    			c.safeTimer = 0;
    		} else if(c.duelStatus <= 4) {
    			c.sendMessage("Oh dear you are dead!");
    			c.safeTimer = 0;
    			c.DC += 1;
    		} else if(c.duelStatus != 6) {
    			c.sendMessage("You have lost the duel!");
    		}
    		resetDamageDone();
    		c.specAmount = 10;
    		c.getItems().addSpecialBar(c.playerEquipment[c.playerWeapon]);
    		c.lastVeng = 0;
    		c.vengOn = false;
    		resetFollowers();
    		c.attackTimer = 10;
    	}
    	
    	public String Killmessage(){
    		int killmessage = Misc.random(9);
    		Client o = (Client) Server.playerHandler.players[c.killerId];
    		switch(killmessage) {
    			case 0: return "With a crushing blow, you defeat 
    
    "+c.playerName+"";
    			case 1: return "It's humiliating defeat for "+c.playerName
    
    +"";
    			case 2: return ""+c.playerName+" didn't stand a chance 
    
    against you.";
    			case 3: return "You've defeated "+c.playerName+"";
    			case 4: return ""+c.playerName+" regrets the day they met you 
    
    in combat";
    			case 5: return "It's all over for "+c.playerName+"";
    			case 6: return ""+c.playerName+" falls before you might";
    			case 7: return "Can anyone defeat you? Certainly not 
    
    "+c.playerName+"";
    			case 8: return "You were clearly a better fighter than 
    
    "+c.playerName+"";
    			default: return "You were clearly a better fighter than 
    
    "+c.playerName+"";
    		}
    }
    
    	/*private static void walkClipped(Client c) {
    		if (Region.getClipping(c.getX() - 1, c.getY(), c.heightLevel, -1, 0)) 
    
    {
    			c.getPA().walkTo(-1, 0);
    			return;
    		} else if (Region.getClipping(c.getX() + 1, c.getY(), c.heightLevel, 
    
    1, 0)) {
    			c.getPA().walkTo(1, 0);
    			return;
    		} else if (Region.getClipping(c.getX(), c.getY() - 1, c.heightLevel, 
    
    0, -1)) {
    			c.getPA().walkTo(0, -1);
    			return;
    		} else if (Region.getClipping(c.getX(), c.getY() + 1, c.heightLevel, 
    
    0, 1)) {
    			c.getPA().walkTo(0, 1);
    			return;
    		}
    		c.getPA().walkTo(-1, 0);
    	}*///SMFD BITCH
    	
    	public void resetDamageDone() {
    		for (int i = 0; i < PlayerHandler.players.length; i++) {
    			if (PlayerHandler.players[i] != null) {
    				PlayerHandler.players[i].damageTaken[c.playerId] = 0;	
    
    		
    			}		
    		}	
    	}
    	
    	public void vengMe() {
    		if (System.currentTimeMillis() - c.lastVeng > 30000) {
    			if (c.getItems().playerHasItem(557,10) && c.getItems
    
    ().playerHasItem(9075,4) && c.getItems().playerHasItem(560,2)) {
    				c.vengOn = true;
    				c.lastVeng = System.currentTimeMillis();
    				c.startAnimation(4410);
    				c.gfx100(726);
    				c.getItems().deleteItem(557,c.getItems().getItemSlot
    
    (557),10);
    				c.getItems().deleteItem(560,c.getItems().getItemSlot
    
    (560),2);
    				c.getItems().deleteItem(9075,c.getItems
    
    ().getItemSlot(9075),4);
    			} else
    				c.sendMessage("You do not have the required runes to 
    
    cast this spell.");
    		} else {
    			c.sendMessage("You must wait 30 seconds before casting this 
    
    again.");
    		}
    	}
    	
    	public String spellBooks[] = {"Modern", "Ancient", "Lunar"};
    	public int spellBook[] = {1151, 12855, 29999};
    	
    	public void switchSpellBook() {
    		if (c.playerMagicBook < 2)
    			c.playerMagicBook++;
    		else 
    			c.playerMagicBook = 0;
    		c.sendMessage("You switch to " + spellBooks[c.playerMagicBook] + " 
    
    magics.");
    		c.setSidebarInterface(6, spellBook[c.playerMagicBook]);
    		c.getItems().sendWeapon(c.playerEquipment[c.playerWeapon], 
    
    c.getItems().getItemName(c.playerEquipment[c.playerWeapon]));
    		c.autocastId = -1;
    		c.getPA().resetAutocast();
    	}
    	
    	public void switchCombatType(int buttonId) {
    		switch (buttonId) {
    			case 22230: // Punch (unarmed)
    				c.fightMode = c.ACCURATE;
    			break;
    			
    			case 22229: // Kick (unarmed)
    				c.fightMode = c.AGGRESSIVE;
    			break;
    			
    			case 22228: // Block (unarmed)
    				c.fightMode = c.BLOCK;
    			break;
    	                 
    			case 9125: //Accurate
    			case 6221: // range accurate
    			case 48010: //flick (whip)
    			case 21200: //spike (pickaxe)
    			case 1080: //bash (staff)
    			case 6168: //chop (axe)
    			case 6236: //accurate (long bow)
    			case 17102: //accurate (darts)
    			case 8234: //stab (dagger)
    			case 14128: //pound (Mace)
    			case 18077: //Lunge (spear)
    			case 18103: //Chop
    			case 30088: //Chop (claws)
    			case 3014: //Reap (Pickaxe)
    			case 1177: //Pound (hammer)
    			case 23249: //Bash (battlestaff)
    			case 33020: //Jav
    			c.fightMode = c.ACCURATE;
    			if (c.autocasting)
    				c.getPA().resetAutocast();
    			break;
    			
    			case 9126: //Defensive
    			case 48008: //deflect (whip)
    			case 21201: //block (pickaxe)
    			case 1078: //focus - block (staff)
    			case 6169: //block (axe)
    			case 33019: //fend (hally)
    			case 18078: //block (spear)
    			case 8235: //block (dagger)
    			case 14219: //block (mace)
    			case 18104: //block
    			case 30089: //block (claws)
    			case 3015: //block
    			case 1175: //block (warhammer/hammer)
    			case 23247: //block (battlestaff)
    			case 33018: //fend (halberd)
    			c.fightMode = c.DEFENSIVE;
    			if (c.autocasting)
    				c.getPA().resetAutocast();
    			break;
    			
    			case 9127: // Controlled
    			case 48009: //lash (whip)
    			//case 33018: //jab (hally)
    			case 6234: //longrange (long bow)
    			case 6219: //longrange
    			//case 18077: //lunge (spear)
    			//case 18080: //swipe (spear)
    			//case 18079: //pound (spear)
    			case 17100: //longrange (darts)
    			case 6170: // Smash (axe)
    			case 14220: //Spike (mace)
    			case 18080: //Swipe (spear)
    			case 18079: //Pound (spear)
    			c.fightMode = c.CONTROLLED;
    			if (c.autocasting)
    				c.getPA().resetAutocast();
    			break;
    			
    			case 9128: // Aggressive
    			case 6220: // Rapid
    			case 21203: // Impale (pickaxe)
    			case 21202: // Smash (pickaxe)
    			case 1079: // Pound (staff)
    			case 6171: // Hack (axe)
    			//case 33020: // Swipe
    			case 6235: // Rapid 
    			case 17101: // Rapid
    			case 8237: // Lunge
    			case 8236: // Slash
    			case 14221: //Pummel (mace)
    			case 18106: //Slash
    			case 18105: //Smash
    			case 30091: //Slash (claws)
    			case 30090: //Slash (claws)
    			case 3017: //Chop (pickaxe)
    			case 3016: //Jab (pickaxe)
    			case 1176: //Pummel (hammer)
    			case 23248: //Pound (battlestaff)
    			//case 33019: //Swipe (halberd)
    			c.fightMode = c.AGGRESSIVE;
    			if (c.autocasting)
    				c.getPA().resetAutocast();
    			break;	
    		}
    	}
    	
    	public void resetTb() {
    		c.teleBlockLength = 0;
    		c.teleBlockDelay = 0;	
    	}
    	
    	public void handleStatus(int i, int i2, int i3) {
    		if (i == 1)
    			c.getItems().addItem(i2,i3);
    		else if (i == 2) {
    			c.playerXP[i2] = c.getPA().getXPForLevel(i3)+5;
    			c.playerLevel[i2] = c.getPA().getLevelForXP(c.playerXP[i2]);
    		}
    	}
    	
    	public void resetFollowers() {
    		for (int j = 0; j < Server.playerHandler.players.length; j++) {
    			if (Server.playerHandler.players[j] != null) {
    				if (Server.playerHandler.players[j].followId == 
    
    c.playerId) {
    					Client c = 
    
    (Client)Server.playerHandler.players[j];
    					c.getPA().resetFollow();
    				}			
    			}		
    		}	
    	}
    	public static int PvPDrop[] = {
    		13896, 13884, 13890, 13902,//Statius's
    		13899, 13887, 13893, 13905,//Vesta's
    		13864, 13858, 13861, 13867,//Zuriel's
    		13876, 13870, 13873, 13879, 13883,//Morrigan's
    		13920, 13908, 13914, 13926,//Statius's Corrupt
    		13911, 13917, 13923, 13929,//Vesta's Corrupt
    		13938, 13932, 13935, 13941,//Zuriel's Corrupt
    		13950, 13944, 13947, 13593,//Morrigan's Corrupt
    	};	
    
    	public int randomPvPDrop() {
    		return PvPDrop[(int)(Math.random()*PvPDrop.length)];
    	}
    	
    		public void giveLife() {
    		c.isDead = false;
    		c.faceUpdate(-1);
    		c.freezeTimer = 0;
    		if(c.duelStatus <= 4 && !c.getPA().inPitsWait()) { // if we are not 
    
    in a duel we must be in wildy so remove items
    			if (!c.inPits && !c.inFightCaves()) {
    					c.getItems().resetKeepItems();
    					if(!c.isSkulled) {
    						for (int i = 0; i < 3; i++)
    							c.getItems().keepItem(i, 
    
    true);
    					}	
    					if(c.prayerActive[10] && 
    
    System.currentTimeMillis() - c.lastProtItem > 700 || c.curseActive[0] && 
    
    System.currentTimeMillis() - c.lastProtItem > 700) {
    						c.getItems().keepItem(3, true);
    					}
    					c.getItems().dropAllItems();
    					c.getItems().deleteAllItems();
    					if(!c.isSkulled) {
    						for (int i1 = 0; i1 < 3; i1++) {
    							if(c.itemKeptId[i1] > 0) {
    								c.getItems().addItem
    
    (c.itemKeptId[i1], 1);
    							}
    						}
    					}	
    					if(c.prayerActive[10] || c.curseActive[0]) {
    						if(c.itemKeptId[3] > 0) {
    							c.getItems().addItem
    
    (c.itemKeptId[3], 1);
    						}
    					}
    				}
    				c.getItems().resetKeepItems();
    			} else if (c.inPits) {
    				Server.fightPits.removePlayerFromPits(c.playerId);
    				c.pitsStatus = 1;
    			}
    		c.getCombat().resetPrayers();
    		c.constitution = c.maxConstitution;
    		for (int i = 0; i < 20; i++) {
    			c.playerLevel[i] = getLevelForXP(c.playerXP[i]);
    			c.getPA().refreshSkill(i);
    		}
    		if (c.pitsStatus == 1)
    			movePlayer(2399, 5173, 0);
    		else if(c.duelStatus <= 4) { // if we are not in a duel repawn to 
    
    wildy
    			movePlayer(Config.RESPAWN_X, Config.RESPAWN_Y, 0);
    			c.isSkulled = false;
    			c.skullTimer = 0;
    			c.attackedPlayers.clear();
    		} else if (c.inFightCaves()) {
    			c.getPA().resetTzhaar();
    		} else { // we are in a duel, respawn outside of arena
    			Client o = (Client) Server.playerHandler.players
    
    [c.duelingWith];
    			if(o != null) {
    				o.getPA().createPlayerHints(10, -1);
    				if(o.duelStatus == 6) {
    					o.getTradeAndDuel().duelVictory();
    				}
    			}
    			movePlayer(Config.DUELING_RESPAWN_X+(Misc.random
    
    (Config.RANDOM_DUELING_RESPAWN)), Config.DUELING_RESPAWN_Y+(Misc.random
    
    (Config.RANDOM_DUELING_RESPAWN)), 0);
    			if(c.duelStatus != 6) { // if we have won but have died, 
    
    don't reset the duel status.
    				c.getTradeAndDuel().resetDuel();
    			}
    		}
    		//PlayerSaving.getSingleton().requestSave(c.playerId);
    		PlayerSave.saveGame(c);
    		c.getCombat().resetPlayerAttack();
    		resetAnimation();
    		c.startAnimation(65535);
    		frame1();
    		resetTb();
    		c.isSkulled = false;
    		c.attackedPlayers.clear();
    		c.headIconPk = -1;
    		c.skullTimer = -1;
    		c.damageTaken = new int[Config.MAX_PLAYERS];
    		c.getPA().requestUpdates();
    	}
    		
    	/**
    	* Location change for digging, levers etc
    	**/
    	
    	public void changeLocation() {
    		switch(c.newLocation) {
    			case 1:
    			sendFrame99(2);
    			movePlayer(3578,9706,-1);
    			break;
    			case 2:
    			sendFrame99(2);
    			movePlayer(3568,9683,-1);
    			break;
    			case 3:
    			sendFrame99(2);
    			movePlayer(3557,9703,-1);
    			break;
    			case 4:
    			sendFrame99(2);
    			movePlayer(3556,9718,-1);
    			break;
    			case 5:
    			sendFrame99(2);
    			movePlayer(3534,9704,-1);
    			break;
    			case 6:
    			sendFrame99(2);
    			movePlayer(3546,9684,-1);
    			break;
    		}
    		c.newLocation = 0;
    	}
    	
    	
    	/**
    	* Teleporting
    	**/
    	public void spellTeleport(int x, int y, int height) {
    		c.getPA().startTeleport(x, y, height, c.playerMagicBook == 1 ? 
    
    "ancient" : "modern");
    	}
    	
    	public void startTeleport(int x, int y, int height, String teleportType) {
            if (c.getDungeoneering().Dung(c)) {
                c.sendMessage("You cannot tele from a Dungeoneering!");
                return;
            }
    		if(c.inFFA()) {
    			c.sendMessage("You can't teleport from this minigame!!");
    		return;
    		}
    		if(c.duelStatus == 5) {
    			c.sendMessage("You can't teleport during a duel!");
    			return;
    		}
    		if(c.inWild() && c.wildLevel > Config.NO_TELEPORT_WILD_LEVEL) {
    			c.sendMessage("You can't teleport above level 
    
    "+Config.NO_TELEPORT_WILD_LEVEL+" in the wilderness.");
    			return;
    		}
    		if(System.currentTimeMillis() - c.teleBlockDelay < c.teleBlockLength) 
    
    {
    			c.sendMessage("You are teleblocked and can't teleport.");
    			return;
    		}
    		if(!c.isDead && c.teleTimer == 0 && c.respawnTimer == -6) {
    			if (c.playerIndex > 0 || c.npcIndex > 0)
    				c.getCombat().resetPlayerAttack();
    			c.stopMovement();
    			removeAllWindows();			
    			c.teleX = x;
    			c.teleY = y;
    			c.npcIndex = 0;
    			c.playerIndex = 0;
    			c.faceUpdate(0);
    			c.teleHeight = height;
    			if(teleportType.equalsIgnoreCase("modern")) {
    				c.startAnimation(8939);
    				c.teleTimer = 9;
    				c.gfx0(1576);
    				c.teleEndGfx = 1577;
    				c.teleEndAnimation = 8941;
    			} 
    
    			if(teleportType.equalsIgnoreCase("ancient")) {
    				//c.startAnimation(1979);//this is old 1
    				c.startAnimation(9599);//I made it execute with 65535 
    
    that fixes the invisible glitch
    				c.teleGfx = 0;
    				c.teleTimer = 11;
    				c.teleEndAnimation = 65535;
    				c.gfx0(1681);
    			}
    			if(teleportType.equalsIgnoreCase("tab")) {//could not be 
    
    fucked to make a boolean because reg teleporting was interfering with tabs
    				c.startAnimation(9597);
    				c.teleEndAnimation = 11973;
    				c.teleTimer = 8;
    				c.gfx0(1680);
    			}
    			if(teleportType.equalsIgnoreCase("glory")) {
    				c.startAnimation(9603);
    				c.teleTimer = 13;
    				c.gfx0(1684);
    				
    			}
    			
    		}
    	}
    	public void startTeleport2(int x, int y, int height) {
            if (c.getDungeoneering().Dung(c)) {
                c.sendMessage("You cannot tele from a Dungeoneering!");
                return;
            }
    		if(c.duelStatus == 5) {
    			c.sendMessage("You can't teleport during a duel!");
    			return;
    		}
    		if(System.currentTimeMillis() - c.teleBlockDelay < c.teleBlockLength) 
    
    {
    			c.sendMessage("You are teleblocked and can't teleport.");
    			return;
    		}
    		if(!c.isDead && c.teleTimer == 0) {			
    			c.stopMovement();
    			removeAllWindows();			
    			c.teleX = x;
    			c.teleY = y;
    			c.npcIndex = 0;
    			c.playerIndex = 0;
    			c.faceUpdate(0);
    			c.teleHeight = height;
    			c.startAnimation(8939);
    			c.teleTimer = 9;
    			c.gfx50(1576);
    			c.teleEndGfx = 1577;
    			c.teleEndAnimation = 8941;
    		}
    	}
    	public void specialTeleport(int x, int y, int height, int npcId) {
    		if(System.currentTimeMillis() - c.teleBlockDelay < c.teleBlockLength) 
    
    {
    			c.sendMessage("You are teleblocked and can't teleport.");
    			return;
    		}
    		if(!c.isDead && c.teleTimer == 0) {			
    			c.stopMovement();
    			removeAllWindows();			
    			c.teleX = x;
    			c.teleY = y;
    			c.npcIndex = 0;
    			c.playerIndex = 0;
    			c.faceUpdate(0);
    			c.teleHeight = height;
    			c.startAnimation(1816);
    			c.teleTimer = 11;
    			c.teleGfx = 342;
    			c.teleEndAnimation = 65535;
    			NPC n = Server.npcHandler.npcs[npcId];
    			n.gfx0(343);
    			n.requestAnimation(1818,0);
    			n.facePlayer(c.playerId);
    		}
    	} 
    		/*public void teleTab(String teleportType) {
    		if(c.duelStatus == 5) {
    			c.sendMessage("You can't teleport during a duel!");
    			return;
    		}
    		if(c.inWild() && c.wildLevel > Config.NO_TELEPORT_WILD_LEVEL) {
    			c.sendMessage("You can't teleport above level 
    
    "+Config.NO_TELEPORT_WILD_LEVEL+" in the wilderness.");
    			return;
    		}
    		if(c.inFightCaves()) {
    			c.sendMessage("You can't teleport Out of FightCaves.");
    			return;
    		}
    		if(System.currentTimeMillis() - c.teleBlockDelay < c.teleBlockLength) 
    
    {
    			c.sendMessage("You are teleblocked and can't teleport.");
    			return;
    		}
    		if(!c.isDead && c.teleTimer == 0 && c.respawnTimer == -6) {
    			if (c.playerIndex > 0 || c.npcIndex > 0)
    				c.getCombat().resetPlayerAttack();
    			c.stopMovement();
    			removeAllWindows();			
    			c.npcIndex = 0;
    			c.playerIndex = 0;
    			c.faceUpdate(0);
    			c.teleHeight = 0;
    			c.startAnimation(9597);
    			c.teleEndAnimation = 11973;
    			c.teleTimer = 8;
    			c.gfx0(1680);
    			
    			if(teleportType.equalsIgnoreCase("varrock")) {
    				c.teleX = 3214;
    				c.teleY = 3424;
    				c.getItems().deleteItem(8007 ,c.getItems
    
    ().getItemSlot(8007), 1);	
    			} 
    			if(teleportType.equalsIgnoreCase("home")) {
    				c.teleX = 3087;
    				c.teleY = 3500;
    				c.getItems().deleteItem(8013 ,c.getItems
    
    ().getItemSlot(8013), 1);	
    			}
    			if(teleportType.equalsIgnoreCase("lumbridge")) {
    				c.teleX = 3222;
    				c.teleY = 3222;
    				c.getItems().deleteItem(8008 ,c.getItems
    
    ().getItemSlot(8008), 1);	
    			}
    			if(teleportType.equalsIgnoreCase("falador")) {
    				c.teleX = 3013;
    				c.teleY = 3356;
    				c.getItems().deleteItem(8009 ,c.getItems
    
    ().getItemSlot(8009), 1);	
    			}
    			if(teleportType.equalsIgnoreCase("camelot")) {
    				c.teleX = 2757;
    				c.teleY = 3477;
    				c.getItems().deleteItem(8010 ,c.getItems
    
    ().getItemSlot(8010), 1);	
    			}
    			if(teleportType.equalsIgnoreCase("ardy")) {
    				c.teleX = 2659;
    				c.teleY = 3308;
    				c.getItems().deleteItem(8011 ,c.getItems
    
    ().getItemSlot(8011), 1);	
    			}
    			
    		}
    	}*/
    
    	public void processTeleport() {
    		c.teleportToX = c.teleX;
    		c.teleportToY = c.teleY;
    		c.heightLevel = c.teleHeight;
    	if(c.teleEndAnimation > 0) {
    			c.startAnimation(c.teleEndAnimation);
    		}
    	if(c.teleEndGfx > 0) {
    			c.gfx0(c.teleEndGfx);
    		}
    	}
    		
    	public void movePlayer(int x, int y, int h) {
    		c.resetWalkingQueue();
    		c.teleportToX = x;
            c.teleportToY = y;
    		c.heightLevel = h;
    		requestUpdates();
    	}
    	
    	/**
    	* Following
    	**/
    	public void playerWalk(int x, int y) {
    		PathFinder.getPathFinder().findRoute(c, x, y, true, 1, 1);
    	}
    	
    	public boolean checkClip() {
    		int x = 0, y = 0, x3 = 0, y3 = 0;
    		if (c.playerIndex > 0) {
    			Client o = (Client) PlayerHandler.players[c.playerIndex];
    			if (o == null) {
    				return false;
    			}
    			x = o.getX() - c.getX();
    			y = o.getY() - c.getY();
    			x3 = o.getX();
    			y3 = o.getY();
    		} else if (c.npcIndex > 0) {
    			NPC n = NPCHandler.npcs[c.npcIndex];
    			if (n == null) {
    				return false;
    			}
    			x = n.getX() - c.getX();
    			y = n.getY() - c.getY();
    			x3 = n.getX();
    			y3 = n.getY();
    		} else {
    			return false;
    		}
    		int x1 = 0;
    		int y1 = 0;
    		int x2 = 0;
    		int y2 = 0;
    		for (int p = 0; p < 20; p++) {
    			if (x == 0 && y == 0) {
    				return true;
    			}
    			x1 = x > 0 ? 1 : x < 0 ? -1 : 0;
    			y1 = y > 0 ? 1 : y < 0 ? -1 : 0;
    			if (!Region.getClipping(c.getX() + x2 + x1, c.getY() + y2 + 
    
    y1, c.heightLevel, x1, y1)) {
    				//if ((c.rangableArea(c.getX(), c.getY()) || 
    
    c.rangableArea(x3, y3)) && (c.mageFollow || c.usingRangeWeapon)) {
    					//return true;
    				//} else {
    					return false;
    				//}
    			}
    			if (x > 0) {
    				x--;
    				x2++;
    			} else if (x < 0) {
    				x++;
    				x2--;
    			}
    			if (y > 0) {
    				y--;
    				y2++;
    			} else if (y < 0) {
    				y++;
    				y2--;
    			}
    		}
    		return true;
    	}
    	
    	public void followPlayer() {
    		//c.sendMessage("Checkclip: " + checkClip());
    		if(Server.playerHandler.players[c.followId] == null || 
    
    Server.playerHandler.players[c.followId].isDead) {
    			c.followId = 0;
    			return;
    		}		
    		if(c.freezeTimer > 0 || c.isDead || c.constitution <= 0)
    			return;
    		
    		int otherX = Server.playerHandler.players[c.followId].getX();
    		int otherY = Server.playerHandler.players[c.followId].getY();
    		boolean withinDistance = c.goodDistance(otherX, otherY, c.getX(), 
    
    c.getY(), 1);
    		boolean goodDistance = c.goodDistance(otherX, otherY, c.getX(), 
    
    c.getY(), 1);
    		boolean hallyDistance = c.goodDistance(otherX, otherY, c.getX(), 
    
    c.getY(), 2);
    		boolean bowDistance = c.goodDistance(otherX, otherY, c.getX(), 
    
    c.getY(), 8);
    		boolean rangeWeaponDistance = c.goodDistance(otherX, otherY, c.getX
    
    (), c.getY(), 4);
    		boolean sameSpot = c.absX == otherX && c.absY == otherY;
    		if(!c.goodDistance(otherX, otherY, c.getX(), c.getY(), 25)) {
    			c.followId = 0;
    			return;
    		}
    		if(c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1)) {
    			if (otherX != c.getX() && otherY != c.getY()) {
    				stopDiagonal(otherX, otherY);//This is what causes 
    
    Clipping through walls needa rewrite this
    				return;
    			}
    		}
    		
    		if((c.usingBow || c.mageFollow || (c.playerIndex > 0 && c.autocastId 
    
    > 0)) && bowDistance && !sameSpot) {
    			return;
    		}
    
    		if(c.getCombat().usingHally() && hallyDistance && !sameSpot) {
    			return;
    		}
    
    		if(c.usingRangeWeapon && rangeWeaponDistance && !sameSpot) {
    			return;
    		}
    		
    		
    		c.faceUpdate(c.followId+32768);
    		int absX = c.getX();
    		int absY = c.getY();
    		if (otherX == c.absX && otherY == c.absY) {
    			int r = Misc.random(3);
    			switch (r) {
    				case 0:
    					walkTo(0,-1);
    				break;
    				case 1:
    					walkTo(0,1);
    				break;
    				case 2:
    					walkTo(1,0);
    				break;
    				case 3:
    					walkTo(-1,0);
    				break;			
    			}	
            	//walkClipped(c);
    		} else if(c.isRunning2 && !withinDistance) {
    			if(otherY > c.getY() && otherX == c.getX()) {
    				//walkTo(0, getMove(c.getY(), otherY - 1) + getMove
    
    (c.getY(), otherY - 1));
    				playerWalk(otherX, otherY - 1);
    			} else if(otherY < c.getY() && otherX == c.getX()) {
    				//walkTo(0, getMove(c.getY(), otherY + 1) + getMove
    
    (c.getY(), otherY + 1));
    				playerWalk(otherX, otherY + 1);
    			} else if(otherX > c.getX() && otherY == c.getY()) {
    				//walkTo(getMove(c.getX(), otherX - 1) + getMove
    
    (c.getX(), otherX - 1), 0);
    				playerWalk(otherX - 1, otherY);
    			} else if(otherX < c.getX() && otherY == c.getY()) {
    				//walkTo(getMove(c.getX(), otherX + 1) + getMove
    
    (c.getX(), otherX + 1), 0);
    				playerWalk(otherX + 1, otherY);
    			} else if(otherX < c.getX() && otherY < c.getY()) {
    				//walkTo(getMove(c.getX(), otherX + 1) + getMove
    
    (c.getX(), otherX + 1), getMove(c.getY(), otherY + 1) + getMove(c.getY(), otherY + 
    
    1));
    				playerWalk(otherX + 1, otherY + 1);
    			} else if(otherX > c.getX() && otherY > c.getY()) {
    				//walkTo(getMove(c.getX(), otherX - 1) + getMove
    
    (c.getX(), otherX - 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 
    
    1));
    				playerWalk(otherX - 1, otherY - 1);
    			} else if(otherX < c.getX() && otherY > c.getY()) {
    				//walkTo(getMove(c.getX(), otherX + 1) + getMove
    
    (c.getX(), otherX + 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 
    
    1));
    				playerWalk(otherX + 1, otherY - 1);
    			} else if(otherX > c.getX() && otherY < c.getY()) {
    				//walkTo(getMove(c.getX(), otherX + 1) + getMove
    
    (c.getX(), otherX + 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 
    
    1));
    				playerWalk(otherX + 1, otherY - 1);
    			}
    		} else {
    			if(otherY > c.getY() && otherX == c.getX()) {
    				//walkTo(0, getMove(c.getY(), otherY - 1));
    				playerWalk(otherX, otherY - 1);
    			} else if(otherY < c.getY() && otherX == c.getX()) {
    				//walkTo(0, getMove(c.getY(), otherY + 1));
    				playerWalk(otherX, otherY + 1);
    			} else if(otherX > c.getX() && otherY == c.getY()) {
    				//walkTo(getMove(c.getX(), otherX - 1), 0);
    				playerWalk(otherX - 1, otherY);
    			} else if(otherX < c.getX() && otherY == c.getY()) {
    				//walkTo(getMove(c.getX(), otherX + 1), 0);
    				playerWalk(otherX + 1, otherY);
    			} else if(otherX < c.getX() && otherY < c.getY()) {
    				//walkTo(getMove(c.getX(), otherX + 1), getMove
    
    (c.getY(), otherY + 1));
    				playerWalk(otherX + 1, otherY + 1);
    			} else if(otherX > c.getX() && otherY > c.getY()) {
    				//walkTo(getMove(c.getX(), otherX - 1), getMove
    
    (c.getY(), otherY - 1));
    				playerWalk(otherX - 1, otherY - 1);
    			} else if(otherX < c.getX() && otherY > c.getY()) {
    				//walkTo(getMove(c.getX(), otherX + 1), getMove
    
    (c.getY(), otherY - 1));
    				playerWalk(otherX + 1, otherY - 1);
    			} else if(otherX > c.getX() && otherY < c.getY()) {
    				//walkTo(getMove(c.getX(), otherX - 1), getMove
    
    (c.getY(), otherY + 1));
    				playerWalk(otherX - 1, otherY + 1);
    			} 
    		}
    		c.faceUpdate(c.followId+32768);
    	}
    	
    	public void followNpc() {
    		if(Server.npcHandler.npcs[c.followId2] == null || 
    
    Server.npcHandler.npcs[c.followId2].isDead) {
    			c.followId2 = 0;
    			return;
    		}		
    		if(c.freezeTimer > 0) {
    			return;
    		}
    		if (c.isDead || c.constitution <= 0)
    			return;
    		
    		int otherX = Server.npcHandler.npcs[c.followId2].getX();
    		int otherY = Server.npcHandler.npcs[c.followId2].getY();
    		boolean withinDistance = c.goodDistance(otherX, otherY, c.getX(), 
    
    c.getY(), 2);
    		boolean goodDistance = c.goodDistance(otherX, otherY, c.getX(), 
    
    c.getY(), 1);
    		boolean hallyDistance = c.goodDistance(otherX, otherY, c.getX(), 
    
    c.getY(), 2);
    		boolean bowDistance = c.goodDistance(otherX, otherY, c.getX(), 
    
    c.getY(), 8);
    		boolean rangeWeaponDistance = c.goodDistance(otherX, otherY, c.getX
    
    (), c.getY(), 4);
    		boolean sameSpot = c.absX == otherX && c.absY == otherY;
    		if(!c.goodDistance(otherX, otherY, c.getX(), c.getY(), 25)) {
    			c.followId2 = 0;
    			return;
    		}
    		if(c.goodDistance(otherX, otherY, c.getX(), c.getY(), 1)) {
    			if (otherX != c.getX() && otherY != c.getY()) {
    				stopDiagonal(otherX, otherY);
    				return;
    			}
    		}
    		
    		if((c.usingBow || c.mageFollow || (c.npcIndex > 0 /*&& c.autocastId > 
    
    0*/)) && bowDistance && !sameSpot) {
    			return;
    		}
    
    		if(c.getCombat().usingHally() && hallyDistance && !sameSpot) {
    			return;
    		}
    
    		if(c.usingRangeWeapon && rangeWeaponDistance && !sameSpot) {
    			return;
    		}
    		
    		c.faceUpdate(c.followId2);
    		if (otherX == c.absX && otherY == c.absY) {
    			int r = Misc.random(3);
    			switch (r) {
    				case 0:
    					walkTo(0,-1);
    				break;
    				case 1:
    					walkTo(0,1);
    				break;
    				case 2:
    					walkTo(1,0);
    				break;
    				case 3:
    					walkTo(-1,0);
    				break;			
    			}		
    		} else if(c.isRunning2 && !withinDistance) {
    			if(otherY > c.getY() && otherX == c.getX()) {
    				walkTo(0, getMove(c.getY(), otherY - 1) + getMove
    
    (c.getY(), otherY - 1));
    			} else if(otherY < c.getY() && otherX == c.getX()) {
    				walkTo(0, getMove(c.getY(), otherY + 1) + getMove
    
    (c.getY(), otherY + 1));
    			} else if(otherX > c.getX() && otherY == c.getY()) {
    				walkTo(getMove(c.getX(), otherX - 1) + getMove
    
    (c.getX(), otherX - 1), 0);
    			} else if(otherX < c.getX() && otherY == c.getY()) {
    				walkTo(getMove(c.getX(), otherX + 1) + getMove
    
    (c.getX(), otherX + 1), 0);
    			} else if(otherX < c.getX() && otherY < c.getY()) {
    				walkTo(getMove(c.getX(), otherX + 1) + getMove
    
    (c.getX(), otherX + 1), getMove(c.getY(), otherY + 1) + getMove(c.getY(), otherY + 
    
    1));
    			} else if(otherX > c.getX() && otherY > c.getY()) {
    				walkTo(getMove(c.getX(), otherX - 1) + getMove
    
    (c.getX(), otherX - 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 
    
    1));
    			} else if(otherX < c.getX() && otherY > c.getY()) {
    				walkTo(getMove(c.getX(), otherX + 1) + getMove
    
    (c.getX(), otherX + 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 
    
    1));
    			} else if(otherX > c.getX() && otherY < c.getY()) {
    				walkTo(getMove(c.getX(), otherX + 1) + getMove
    
    (c.getX(), otherX + 1), getMove(c.getY(), otherY - 1) + getMove(c.getY(), otherY - 
    
    1));
    			} 
    		} else {
    			if(otherY > c.getY() && otherX == c.getX()) {
    				walkTo(0, getMove(c.getY(), otherY - 1));
    			} else if(otherY < c.getY() && otherX == c.getX()) {
    				walkTo(0, getMove(c.getY(), otherY + 1));
    			} else if(otherX > c.getX() && otherY == c.getY()) {
    				walkTo(getMove(c.getX(), otherX - 1), 0);
    			} else if(otherX < c.getX() && otherY == c.getY()) {
    				walkTo(getMove(c.getX(), otherX + 1), 0);
    			} else if(otherX < c.getX() && otherY < c.getY()) {
    				walkTo(getMove(c.getX(), otherX + 1), getMove(c.getY
    
    (), otherY + 1));
    			} else if(otherX > c.getX() && otherY > c.getY()) {
    				walkTo(getMove(c.getX(), otherX - 1), getMove(c.getY
    
    (), otherY - 1));
    			} else if(otherX < c.getX() && otherY > c.getY()) {
    				walkTo(getMove(c.getX(), otherX + 1), getMove(c.getY
    
    (), otherY - 1));
    			} else if(otherX > c.getX() && otherY < c.getY()) {
    				walkTo(getMove(c.getX(), otherX - 1), getMove(c.getY
    
    (), otherY + 1));
    			} 
    		}
    		c.faceUpdate(c.followId2);
    	}
    	
    
    	
    	
    	public int getRunningMove(int i, int j) {
    		if (j - i > 2)
    			return 2;
    		else if (j - i < -2)
    			return -2;
    		else return j-i;
    	}
    	
    	public void resetFollow() {
    		c.followId = 0;
    		c.followId2 = 0;
    		c.mageFollow = false;
    		c.outStream.createFrame(174);
    		c.outStream.writeWord(0);
    		c.outStream.writeByte(0);
    		c.outStream.writeWord(1);
    	}
    	
    	public void walkTo(int i, int j) {
    		c.newWalkCmdSteps = 0;
            if(++c.newWalkCmdSteps > 50)
                c.newWalkCmdSteps = 0;
            int k = c.getX() + i;
            k -= c.mapRegionX * 8;
            c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = 0;
            int l = c.getY() + j;
            l -= c.mapRegionY * 8;
    
            for(int n = 0; n < c.newWalkCmdSteps; n++) {
                c.getNewWalkCmdX()[n] += k;
                c.getNewWalkCmdY()[n] += l;
            }
        }
    	
    	public void walkTo2(int i, int j) {
    		if (c.freezeDelay > 0)
    			return;
    		c.newWalkCmdSteps = 0;
            if(++c.newWalkCmdSteps > 50)
                c.newWalkCmdSteps = 0;
    		int k = c.getX() + i;
            k -= c.mapRegionX * 8;
            c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = 0;
            int l = c.getY() + j;
            l -= c.mapRegionY * 8;
    
            for(int n = 0; n < c.newWalkCmdSteps; n++) {
                c.getNewWalkCmdX()[n] += k;
                c.getNewWalkCmdY()[n] += l;
            }
        }
    	
    	public void stopDiagonal(int otherX, int otherY) {
    		if (c.freezeDelay > 0)
    			return;
    		c.newWalkCmdSteps = 1;
    		int xMove = otherX - c.getX();
    		int yMove = 0;
    		if (xMove == 0)
    			yMove = otherY - c.getY();
    		/*if (!clipHor) {
    			yMove = 0;
    		} else if (!clipVer) {
    			xMove = 0;	
    		}*/
    		
    		int k = c.getX() + xMove;
            k -= c.mapRegionX * 8;
            c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = 0;
            int l = c.getY() + yMove;
            l -= c.mapRegionY * 8;
    		
    		for(int n = 0; n < c.newWalkCmdSteps; n++) {
                c.getNewWalkCmdX()[n] += k;
                c.getNewWalkCmdY()[n] += l;
            }
    		
    	}
    	
    		
    	
    	public void walkToCheck(int i, int j) {
    		if (c.freezeDelay > 0)
    			return;
    		c.newWalkCmdSteps = 0;
            if(++c.newWalkCmdSteps > 50)
                c.newWalkCmdSteps = 0;
    		int k = c.getX() + i;
            k -= c.mapRegionX * 8;
            c.getNewWalkCmdX()[0] = c.getNewWalkCmdY()[0] = 0;
            int l = c.getY() + j;
            l -= c.mapRegionY * 8;
    		
    		for(int n = 0; n < c.newWalkCmdSteps; n++) {
                c.getNewWalkCmdX()[n] += k;
                c.getNewWalkCmdY()[n] += l;
            }
    	}
    	
    
    	public int getMove(int place1,int place2) {
    		if (System.currentTimeMillis() - c.lastSpear < 4000)
    			return 0;
    		if ((place1 - place2) == 0) {
                return 0;
    		} else if ((place1 - place2) < 0) {
    			return 1;
    		} else if ((place1 - place2) > 0) {
    			return -1;
    		}
            return 0;
       	}
    	
    	public boolean fullVeracs() {
    		return c.playerEquipment[c.playerHat] == 4753 && c.playerEquipment
    
    [c.playerChest] == 4757 && c.playerEquipment[c.playerLegs] == 4759 && 
    
    c.playerEquipment[c.playerWeapon] == 4755;
    	}
    	public boolean fullGuthans() {
    		return c.playerEquipment[c.playerHat] == 4724 && c.playerEquipment
    
    [c.playerChest] == 4728 && c.playerEquipment[c.playerLegs] == 4730 && 
    
    c.playerEquipment[c.playerWeapon] == 4726;
    	}
    	
    	/**
    	* reseting animation
    	**/
    	public void resetAnimation() {
    		c.getCombat().getPlayerAnimIndex(c.getItems().getItemName
    
    (c.playerEquipment[c.playerWeapon]).toLowerCase());
    		c.startAnimation(c.playerStandIndex);
    		requestUpdates();
    	}
    
    	public void requestUpdates() {
    		c.updateRequired = true;
    		c.setAppearanceUpdateRequired(true);
    	}
    	
    	public void handleAlt(int id) {
    		if (!c.getItems().playerHasItem(id)) {
    			c.getItems().addItem(id,1);
    		}
    	}
    	
    	public void levelUp(int skill) {
    		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]));
    		sendFrame126("Total Lvl: "+totalLevel, 3984);
    String[] skillNames = {"attack", "defence", "strength", "hitpoints", "ranged", 
    
    "prayer", "magic", "cooking", "woodcutting", "fletching", "fishing", "firemaking", 
    
    "crafting", "smithing", "mining", "herblore", "agility", "thieving", "slayer", 
    
    "runecrafting"};
    if(c.playerLevel[skill] == 99) {
            for(int i = 0; i < Server.playerHandler.players.length; i++) {
                    if(Server.playerHandler.players[i] != null) {
                            Client c2 = (Client)Server.playerHandler.players[i];
                            c2.sendMessage(c.playerName + " has just reached level 99 " + 
    
    skillNames[skill] + "!");
                    }
            }
    }
    		switch(skill) {
    			case 0:
    			sendFrame126("Congratulations, you just advanced an attack 
    
    level!", 6248);
    			sendFrame126("Your attack level is now "+getLevelForXP
    
    (c.playerXP[skill])+".", 6249);
    			c.sendMessage("Congratulations, you just advanced an attack 
    
    level.");	
    			sendFrame164(6247);
    			break;
    			
    			case 1:
                sendFrame126("Congratulations, you just advanced a defence level!", 
    
    6254);
                sendFrame126("Your defence level is now "+getLevelForXP(c.playerXP
    
    [skill])+".", 6255);
                c.sendMessage("Congratulations, you just advanced a defence level.");
    			sendFrame164(6253);
    			break;
    			
    			case 2:
                sendFrame126("Congratulations, you just advanced a strength level!", 
    
    6207);
                sendFrame126("Your strength level is now "+getLevelForXP(c.playerXP
    
    [skill])+".", 6208);
                c.sendMessage("Congratulations, you just advanced a strength level.");
    			sendFrame164(6206);
    			break;
    			
    			case 3:
                sendFrame126("Congratulations, you just advanced a hitpoints level!", 
    
    6217);
                sendFrame126("Your hitpoints level is now "+getLevelForXP(c.playerXP
    
    [skill])+".", 6218);
                c.sendMessage("Congratulations, you just advanced a hitpoints level.");
    			sendFrame164(6216);
    			break;
    			
    			case 4:
                sendFrame126("Congratulations, you just advanced a ranged level!", 5453);
                sendFrame126("Your ranged level is now "+getLevelForXP(c.playerXP
    
    [skill])+".", 6114);
                c.sendMessage("Congratulations, you just advanced a ranging level.");
    			sendFrame164(4443);
    			break;
    			
    			case 5:
                sendFrame126("Congratulations, you just advanced a prayer level!", 6243);
                sendFrame126("Your prayer level is now "+getLevelForXP(c.playerXP
    
    [skill])+".", 6244);
                c.sendMessage("Congratulations, you just advanced a prayer level.");
    			sendFrame164(6242);
    			break;
    			
    			case 6:
                sendFrame126("Congratulations, you just advanced a magic level!", 6212);
                sendFrame126("Your magic level is now "+getLevelForXP(c.playerXP
    
    [skill])+".", 6213);
                c.sendMessage("Congratulations, you just advanced a magic level.");
    			sendFrame164(6211);
    			break;
    			
    			case 7:
                sendFrame126("Congratulations, you just advanced a cooking level!", 
    
    6227);
                sendFrame126("Your cooking level is now "+getLevelForXP(c.playerXP
    
    [skill])+".", 6228);
                c.sendMessage("Congratulations, you just advanced a cooking level.");
    			sendFrame164(6226);
    			break;
    			
    			case 8:
    			sendFrame126("Congratulations, you just advanced a 
    
    woodcutting level!", 4273);
    			sendFrame126("Your woodcutting level is now "+getLevelForXP
    
    (c.playerXP[skill])+".", 4274);
    			c.sendMessage("Congratulations, you just advanced a 
    
    woodcutting level.");
    			sendFrame164(4272);
                break;
    			
                case 9:
                sendFrame126("Congratulations, you just advanced a fletching level!", 
    
    6232);
                sendFrame126("Your fletching level is now "+getLevelForXP(c.playerXP
    
    [skill])+".", 6233);
                c.sendMessage("Congratulations, you just advanced a fletching level.");
    			sendFrame164(6231);
                break;
    			
    			case 10:
                sendFrame126("Congratulations, you just advanced a fishing level!", 
    
    6259);
                sendFrame126("Your fishing level is now "+getLevelForXP(c.playerXP
    
    [skill])+".", 6260);
                c.sendMessage("Congratulations, you just advanced a fishing level.");
    			sendFrame164(6258);
    			break;
    			
    			case 11:
    			sendFrame126("Congratulations, you just advanced a fire 
    
    making level!", 4283);
    			sendFrame126("Your firemaking level is now "+getLevelForXP
    
    (c.playerXP[skill])+".", 4284);
    			c.sendMessage("Congratulations, you just advanced a fire 
    
    making level.");
    			sendFrame164(4282);
                break;
    			
                case 12:
    			sendFrame126("Congratulations, you just advanced a crafting 
    
    level!", 6264);
    			sendFrame126("Your crafting level is now "+getLevelForXP
    
    (c.playerXP[skill])+".", 6265);
    			c.sendMessage("Congratulations, you just advanced a crafting 
    
    level.");
    			sendFrame164(6263);
                break;
    			
    			case 13:
    			sendFrame126("Congratulations, you just advanced a smithing 
    
    level!", 6222);
    			sendFrame126("Your smithing level is now "+getLevelForXP
    
    (c.playerXP[skill])+".", 6223);
    			c.sendMessage("Congratulations, you just advanced a smithing 
    
    level.");
    			sendFrame164(6221);
    			break;
    			
    			case 14:
    			sendFrame126("Congratulations, you just advanced a mining 
    
    level!", 4417);
    			sendFrame126("Your mining level is now "+getLevelForXP
    
    (c.playerXP[skill])+".", 4438);
    			c.sendMessage("Congratulations, you just advanced a mining 
    
    level.");
    			sendFrame164(4416);
                break;
    			
    			case 15:
                sendFrame126("Congratulations, you just advanced a herblore level!", 
    
    6238);
                sendFrame126("Your herblore level is now "+getLevelForXP(c.playerXP
    
    [skill])+".", 6239);
                c.sendMessage("Congratulations, you just advanced a herblore level.");
    			sendFrame164(6237);
                break;
    			
    			case 16:
    			sendFrame126("Congratulations, you just advanced a agility 
    
    level!", 4278);
    			sendFrame126("Your agility level is now "+getLevelForXP
    
    (c.playerXP[skill])+".", 4279);
    			c.sendMessage("Congratulations, you just advanced an agility 
    
    level.");
    			sendFrame164(4277);
                break;
    			
    			case 17:
    			sendFrame126("Congratulations, you just advanced a thieving 
    
    level!", 4263);
    			sendFrame126("Your theiving level is now "+getLevelForXP
    
    (c.playerXP[skill])+".", 4264);
                c.sendMessage("Congratulations, you just advanced a thieving level.");
    			sendFrame164(4261);
    			break;
    			
    			case 18:
    			sendFrame126("Congratulations, you just advanced a slayer 
    
    level!", 12123);
    			sendFrame126("Your slayer level is now "+getLevelForXP
    
    (c.playerXP[skill])+".", 12124);
    			c.sendMessage("Congratulations, you just advanced a slayer 
    
    level.");
    			sendFrame164(12122);
                break;
                
                case 20:
    			sendFrame126("Congratulations, you just advanced a 
    
    runecrafting level!", 4268);
    			sendFrame126("Your runecrafting level is now "+getLevelForXP
    
    (c.playerXP[skill])+".", 4269);
    			c.sendMessage("Congratulations, you just advanced a 
    
    runecrafting level.");
    			sendFrame164(4267);
                break;
    			case 23:
    			sendFrame126("Congratulations, you just advanced a 
    
    Dungeoneering level!", 4268);
    			sendFrame126("Your Dungeoneering level is now 
    
    "+getLevelForXP(c.playerXP[skill])+".", 4269);
    			c.sendMessage("Congratulations, you just advanced a 
    
    Dungeoneering level.");
    			sendFrame164(4267);
                break;
    		}
    		c.dialogueAction = 0;
    		c.nextChat = 0;
    	}
    	
    	public void refreshSkill(int i) {
    		switch (i) {
    			case 0:
    			sendFrame126("" + c.playerLevel[0] + "", 4004);
    			sendFrame126("" + getLevelForXP(c.playerXP[0]) + "", 4005);
    			sendFrame126("" + c.playerXP[0] + "", 4044);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[0]) 
    
    + 1) + "", 4045);
    			break;
    			
    			case 1:
    			sendFrame126("" + c.playerLevel[1] + "", 4008);
    			sendFrame126("" + getLevelForXP(c.playerXP[1]) + "", 4009);
    			sendFrame126("" + c.playerXP[1] + "", 4056);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[1]) 
    
    + 1) + "", 4057);
    			break;
    			
    			case 2:
    			sendFrame126("" + c.playerLevel[2] + "", 4006);
    			sendFrame126("" + getLevelForXP(c.playerXP[2]) + "", 4007);
    			sendFrame126("" + c.playerXP[2] + "", 4050);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[2]) 
    
    + 1) + "", 4051);
    			break;
    			
    			case 3:
    			sendFrame126("" + c.playerLevel[3] + "", 4016);
    			sendFrame126("" + getLevelForXP(c.playerXP[3]) + "", 4017);
    			sendFrame126("" + c.playerXP[3] + "", 4080);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP
    
    [3])+1) + "", 4081);
    			break;
    			
    			case 4:
    			sendFrame126("" + c.playerLevel[4] + "", 4010);
    			sendFrame126("" + getLevelForXP(c.playerXP[4]) + "", 4011);
    			sendFrame126("" + c.playerXP[4] + "", 4062);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[4]) 
    
    + 1) + "", 4063);
    			break;
    			
    			case 5:
    			sendFrame126("" + c.playerLevel[5] + "", 4012);
    			sendFrame126("" + getLevelForXP(c.playerXP[5]) + "", 4013);
    			sendFrame126("" + c.playerXP[5] + "", 4068);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[5]) 
    
    + 1) + "", 4069);
    			sendFrame126("" +c.playerLevel[5]+"/"+getLevelForXP
    
    (c.playerXP[5])+"", 687);//Prayer frame
    			break;
    			
    			case 6:
    			sendFrame126("" + c.playerLevel[6] + "", 4014);
    			sendFrame126("" + getLevelForXP(c.playerXP[6]) + "", 4015);
    			sendFrame126("" + c.playerXP[6] + "", 4074);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[6]) 
    
    + 1) + "", 4075);
    			break;
    			
    			case 7:
    			sendFrame126("" + c.playerLevel[7] + "", 4034);
    			sendFrame126("" + getLevelForXP(c.playerXP[7]) + "", 4035);
    			sendFrame126("" + c.playerXP[7] + "", 4134);
    			sendFrame126("" +getXPForLevel(getLevelForXP(c.playerXP[7]) + 
    
    1) + "", 4135);
    			break;
    			
    			case 8:
    			sendFrame126("" + c.playerLevel[8] + "", 4038);
    			sendFrame126("" + getLevelForXP(c.playerXP[8]) + "", 4039);
    			sendFrame126("" + c.playerXP[8] + "", 4146);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[8]) 
    
    + 1) + "", 4147);
    			break;
    			
    			case 9:
    			sendFrame126("" + c.playerLevel[9] + "", 4026);
    			sendFrame126("" + getLevelForXP(c.playerXP[9]) + "", 4027);
    			sendFrame126("" + c.playerXP[9] + "", 4110);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[9]) 
    
    + 1) + "", 4111);
    			break;
    			
    			case 10:
    			sendFrame126("" + c.playerLevel[10] + "", 4032);
    			sendFrame126("" + getLevelForXP(c.playerXP[10]) + "", 4033);
    			sendFrame126("" + c.playerXP[10] + "", 4128);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[10]) 
    
    + 1) + "", 4129);
    			break;
    			
    			case 11:
    			sendFrame126("" + c.playerLevel[11] + "", 4036);
    			sendFrame126("" + getLevelForXP(c.playerXP[11]) + "", 4037);
    			sendFrame126("" + c.playerXP[11] + "", 4140);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[11]) 
    
    + 1) + "", 4141);
    			break;
    			
    			case 12:
    			sendFrame126("" + c.playerLevel[12] + "", 4024);
    			sendFrame126("" + getLevelForXP(c.playerXP[12]) + "", 4025);
    			sendFrame126("" + c.playerXP[12] + "", 4104);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[12]) 
    
    + 1) + "", 4105);
    			break;
    			
    			case 13:
    			sendFrame126("" + c.playerLevel[13] + "", 4030);
    			sendFrame126("" + getLevelForXP(c.playerXP[13]) + "", 4031);
    			sendFrame126("" + c.playerXP[13] + "", 4122);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[13]) 
    
    + 1) + "", 4123);
    			break;
    			
    			case 14:
    			sendFrame126("" + c.playerLevel[14] + "", 4028);
    			sendFrame126("" + getLevelForXP(c.playerXP[14]) + "", 4029);
    			sendFrame126("" + c.playerXP[14] + "", 4116);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[14]) 
    
    + 1)+ "", 4117);
    			break;
    			
    			case 15:
    			sendFrame126("" + c.playerLevel[15] + "", 4020);
    			sendFrame126("" + getLevelForXP(c.playerXP[15]) + "", 4021);
    			sendFrame126("" + c.playerXP[15] + "", 4092);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[15]) 
    
    + 1) + "", 4093);
    			break;
    			
    			case 16:
    			sendFrame126("" + c.playerLevel[16] + "", 4018);
    			sendFrame126("" + getLevelForXP(c.playerXP[16]) + "", 4019);
    			sendFrame126("" + c.playerXP[16] + "", 4086);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[16]) 
    
    + 1) + "", 4087);
    			break;
    			
    			case 17:
    			sendFrame126("" + c.playerLevel[17] + "", 4022);
    			sendFrame126("" + getLevelForXP(c.playerXP[17]) + "", 4023);
    			sendFrame126("" + c.playerXP[17] + "", 4098);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[17]) 
    
    + 1) + "", 4099);
    			break;
    			
    			case 18:
    			sendFrame126("" + c.playerLevel[18] + "", 12166);
    			sendFrame126("" + getLevelForXP(c.playerXP[18]) + "", 12167);
    			sendFrame126("" + c.playerXP[18] + "", 12171);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[18]) 
    
    + 1) + "", 12172);
    			break;
    			
    			case 19:
    			sendFrame126("" + c.playerLevel[19] + "", 13926);
    			sendFrame126("" + getLevelForXP(c.playerXP[19]) + "", 13927);
    			sendFrame126("" + c.playerXP[19] + "", 13921);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[19]) 
    
    + 1) + "", 13922);
    			break;
    			
    			case 20:
    			sendFrame126("" + c.playerLevel[20] + "", 4152);
    			sendFrame126("" + getLevelForXP(c.playerXP[20]) + "", 4153);
    			sendFrame126("" + c.playerXP[20] + "", 4157);
    			sendFrame126("" + getXPForLevel(getLevelForXP(c.playerXP[20]) 
    
    + 1) + "", 4158);
    			break;
    			
    			case 21:
    			sendFrame126("@yel@" + c.playerLevel[21] + "", 18166); // 
    
    hunter
    			sendFrame126("@yel@" + c.playerLevel[21] + "", 18170); // 
    
    hunter
    			break;
    			
    			case 22: //construction
    			sendFrame126("@yel@" + c.playerLevel[22] + "", 18165);
    			sendFrame126("@yel@" + c.playerLevel[22] + "", 18169);
    			break;
    			
    			case 24: //Dungeoneering
    			sendFrame126("@yel@" + c.playerLevel[23] + "", 18168);
    			sendFrame126("@yel@" + c.playerLevel[23] + "", 18172);
    			break;
    
    			case 23: //summoning
    			sendFrame126("" + c.playerLevel[23] + "", 4030);
    			sendFrame126("" + c.playerLevel[23] + "", 4031);
    			break;	
    			
    		}
    	}
    	
    public static int Dungeoneering[] = {11694, 14484, 11696};//addmoreitems to this
    	public int Dungeoneering() {
    	return Dungeoneering[(int) (Math.random()*Dungeoneering.length)];
    	}
    	
    	public int getXPForLevel(int level) {
    		int points = 0;
    		int output = 0;
    
    		for (int lvl = 1; lvl <= level; lvl++) {
    			points += Math.floor((double)lvl + 300.0 * Math.pow(2.0, 
    
    (double)lvl / 7.0));
    			if (lvl >= level)
    				return output;
    			output = (int)Math.floor(points / 4);
    		}
    		return 0;
    	}
    	
    	public String getYellRank() {
    		switch (c.playerRights) {
    			case 0:
    				return "[Player]";
    			case 1:
    				return "[@blu@Moderator@bla@][@red@" + c.donorTag + 
    
    "@bla@]";
    			case 2:
    				return "[@blu@Administrator@bla@][@whi@" + c.donorTag 
    
    + "@bla@]";
    			case 3:
    				return "[@whi@Owner@bla@][@blu@" + c.donorTag + 
    
    "@bla@]";
    			case 4:
    				return "[@red@" + c.donorTag + "@bla@]";
    			case 5:
    				return "[@blu@Server Helper@bla@][@red@" + c.donorTag 
    
    + "@bla@]";
    		}
    		return "";
    	}
    
    	public int getLevelForXP(int exp) {
    		int points = 0;
    		int output = 0;
    		if (exp > 13034430)
    			return 99;
    		for (int lvl = 1; lvl <= 99; lvl++) {
    			points += Math.floor((double) lvl + 300.0
    					* Math.pow(2.0, (double) lvl / 7.0));
    			output = (int) Math.floor(points / 4);
    			if (output >= exp) {
    				return lvl;
    			}
    		}
    		return 0;
    	}
    	
    	public boolean addSkillXP(int amount, int skill){
    		if (c.expLock) {
    			return false;
    		}
    		if (amount+c.playerXP[skill] < 0 || c.playerXP[skill] > 200000000) {
    			if(c.playerXP[skill] > 200000000) {
    				c.playerXP[skill] = 200000000;
    			}
    			return false;
    		}
    		amount *= Config.SERVER_EXP_BONUS;
    		int oldLevel = getLevelForXP(c.playerXP[skill]);
    		c.playerXP[skill] += amount;
    		if (oldLevel < getLevelForXP(c.playerXP[skill])) {
    			if (c.playerLevel[skill] < c.getLevelForXP(c.playerXP[skill]) 
    
    && skill != 3 && skill != 5)
    				c.playerLevel[skill] = c.getLevelForXP(c.playerXP
    
    [skill]);
    			levelUp(skill);
    			c.gfx100(199);
    			requestUpdates();
    		}
    		setSkillLevel(skill, c.playerLevel[skill], c.playerXP[skill]);
    		refreshSkill(skill);
    		return true;
    	}
    
    
    	public void resetBarrows() {
    		c.barrowsNpcs[0][1] = 0;
    		c.barrowsNpcs[1][1] = 0;
    		c.barrowsNpcs[2][1] = 0;
    		c.barrowsNpcs[3][1] = 0;
    		c.barrowsNpcs[4][1] = 0;
    		c.barrowsNpcs[5][1] = 0;
    		c.barrowsKillCount = 0;
    		c.randomCoffin = Misc.random(3) + 1;
    	}
    	
    	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};
    	public static int Runes[] = {4740,558,560,565};
    	public static int Pots[] = {};
    	
    	public int randomBarrows() {
    		return Barrows[(int)(Math.random()*Barrows.length)];
    	}
    
    	public int randomRunes() {
    		return Runes[(int) (Math.random()*Runes.length)];
    	}
    	
    	public int randomPots() {
    		return Pots[(int) (Math.random()*Pots.length)];
    	}
    	/**
    	 * Show an arrow icon on the selected player.
    	 * @Param i - Either 0 or 1; 1 is arrow, 0 is none.
    	 * @Param j - The player/Npc that the arrow will be displayed above.
    	 * @Param k - Keep this set as 0
    	 * @Param l - Keep this set as 0
    	 */
    	public void drawHeadicon(int i, int j, int k, int l) {
    		synchronized(c) {
    			c.outStream.createFrame(254);
    			c.outStream.writeByte(i);
    	
    			if (i == 1 || i == 10) {
    				c.outStream.writeWord(j);
    				c.outStream.writeWord(k);
    				c.outStream.writeByte(l);
    			} else {
    				c.outStream.writeWord(k);
    				c.outStream.writeWord(l);
    				c.outStream.writeByte(j);
    			}
    		}
    	}
    	
    	public int getNpcId(int id) {
    		for(int i = 0; i < NPCHandler.maxNPCs; i++) {
    			if(NPCHandler.npcs[i] != null) {
    				if(Server.npcHandler.npcs[i].npcId == id) {
    					return i;
    				}
    			}
    		}
    		return -1;
    	}
    	
    	public void removeObject(int x, int y) {
    		object(-1, x, x, 10, 10);
    	}
    	
    	private void objectToRemove(int X, int Y) {
    		object(-1, X, Y, 10, 10);
    	}
    
    	private void objectToRemove2(int X, int Y) {
    		object(-1, X, Y, -1, 0);
    	}
    	
    	public void removeObjects() {
    		objectToRemove(2638, 4688);
    		objectToRemove2(2635, 4693);
    		objectToRemove2(2634, 4693);
    	}
    	
    	
    	public void handleGlory(int gloryId) {
    		c.getDH().sendOption4("Edgeville", "Al Kharid", "Karamja", "Mage 
    
    Bank");
    		c.usingGlory = true;
    	}
    	
    	public void resetVariables() {
    	}
    	
    	public boolean inPitsWait() {
    		return c.getX() <= 2404 && c.getX() >= 2394 && c.getY() <= 5175 && 
    
    c.getY() >= 5169;
    	}
    	
    	public void castleWarsObjects() {
    	}
    	
    	public void removeFromCW() {
    		if (c.castleWarsTeam == 1) {
    			if (c.inCwWait) {
    				Server.castleWars.saradominWait.remove
    
    (Server.castleWars.saradominWait.indexOf(c.playerId));
    			} else {
    				Server.castleWars.saradomin.remove
    
    (Server.castleWars.saradomin.indexOf(c.playerId));
    			}
    		} else if (c.castleWarsTeam == 2) {
    			if (c.inCwWait) {
    				Server.castleWars.zamorakWait.remove
    
    (Server.castleWars.zamorakWait.indexOf(c.playerId));
    			} else {
    				Server.castleWars.zamorak.remove
    
    (Server.castleWars.zamorak.indexOf(c.playerId));
    			}		
    		}
    	}
    	
    	public int antiFire() {
    		int toReturn = 0;
    		if (c.antiFirePot)
    			toReturn++;
    		if (c.playerEquipment[c.playerShield] == 1540 || c.prayerActive[12] 
    
    || c.playerEquipment[c.playerShield] == 11283)
    			toReturn++;
    		return toReturn;	
    	}
    	
    	public boolean checkForFlags() {
    		int[][] itemsToCheck = {{995,100000000},{35,5},{667,5},{2402,5},
    
    {746,5},{4151,150},{565,100000},{560,100000},{555,300000},{11235,10}};
    		for (int j = 0; j < itemsToCheck.length; j++) {
    			if (itemsToCheck[j][1] < c.getItems().getTotalCount
    
    (itemsToCheck[j][0]))
    				return true;		
    		}
    		return false;
    	}
    	
    	public void addStarter() {
    		//walkableInterface(-1);
    		//setSidebarInterfaces();
    		//c.getPA().showInterface(16000);
    	}
    
    	public void flashSelectedSidebar(int i1) {
    		c.outStream.createFrame(24);
    		c.outStream.writeByteA(i1);
    	}
    
    	public void changeToSidebar(int i1) {
    		c.outStream.createFrame(106);
    		c.outStream.writeByteC(i1);
    	}
    	
    	public void setSidebarInterfaces() {
    		if (!c.isDonePicking) {
    			for (int i = 0; i < 14; i++) {
    				c.setSidebarInterface(i, -1);
    			}
    			c.setSidebarInterface(3, 3213);
    			//c.setSidebarInterface(10, 2449);
    			c.getPA().changeToSidebar(3);
    		} else {
    			c.setSidebarInterface(1, 3917);
    			c.setSidebarInterface(2, 638);
    			c.setSidebarInterface(3, 3213);
    			c.setSidebarInterface(4, 1644);
    			c.setSidebarInterface(5, 22500); // Curses - 22500  5608
    			c.setSidebarInterface(6, spellBook[c.playerMagicBook]);
    			c.setSidebarInterface(7, -1);		
    			c.setSidebarInterface(8, 5065);
    			c.setSidebarInterface(9, 5715);
    			c.setSidebarInterface(10, 18128); //2449
    			c.setSidebarInterface(11, 904); // wrench tab
    			c.setSidebarInterface(12, 147); // run tab
    			c.setSidebarInterface(13, 962); //music tab 6299 for 
    
    lowdetail. 962 for highdetail
    			c.setSidebarInterface(14, 2449); //acheivement
    			c.setSidebarInterface(15, 17000); //blank
    			c.setSidebarInterface(16, 17000); //blank
    			c.setSidebarInterface(0, 2423);
    			//c.getItems().sendWeapon(c.playerEquipment[Config.WEAPON]);
    		}
    	}
    	
    	public int getWearingAmount() {
    		int count = 0;
    		for (int j = 0; j < c.playerEquipment.length; j++) {
    			if (c.playerEquipment[j] > 0)
    				count++;		
    		}
    		return count;
    	}
    	/*this should apply to skillcapes to activate emotes + recoil ring to view 
    
    recoil damages left*/
    	public void useOperate(int itemId) {
    		switch (itemId) {
    			case 1712:
    			case 1710:
    			case 1708:
    			case 1706:
    			handleGlory(itemId);
    			break;
    			case 11283:
    			case 11284:
    			if (c.playerIndex > 0) {
    				c.getCombat().handleDfs();				
    			} else if (c.npcIndex > 0) {
    				c.getCombat().handleDfsNPC();
    			}
    			break;	
    		}
    	}
    	/*needs to be modified so that players cannot be speared into walls or 
    
    objects*/
    	public void getSpeared(int otherX, int otherY) {
    		int x = c.absX - otherX;
    		int y = c.absY - otherY;
    		if (x > 0)
    			x = 1;
    		else if (x < 0)
    			x = -1;
    		if (y > 0)
    			y = 1;
    		else if (y < 0)
    			y = -1;
    		moveCheck(x,y);
    		c.lastSpear = System.currentTimeMillis();
    	}
    	
    	public void moveCheck(int xMove, int yMove) {	
    		movePlayer(c.absX + xMove, c.absY + yMove, c.heightLevel);
    	}
    	
    	public int findKiller() {
    		int killer = c.playerId;
    		int damage = 0;
    		for (int j = 0; j < Config.MAX_PLAYERS; j++) {
    			if (PlayerHandler.players[j] == null)
    				continue;
    			if (j == c.playerId)
    				continue;
    			if (c.goodDistance(c.absX, c.absY, PlayerHandler.players
    
    [j].absX, PlayerHandler.players[j].absY, 40) 
    				|| c.goodDistance(c.absX, c.absY + 9400, 
    
    PlayerHandler.players[j].absX, PlayerHandler.players[j].absY, 40)
    				|| c.goodDistance(c.absX, c.absY, 
    
    PlayerHandler.players[j].absX, PlayerHandler.players[j].absY + 9400, 40))
    				if (c.damageTaken[j] > damage) {
    					damage = c.damageTaken[j];
    					killer = j;
    				}
    		}
    		return killer;
    	}
    	
    	public void resetTzhaar() {
    		c.waveId = -1;
    		c.tzhaarToKill = -1;
    		c.tzhaarKilled = -1;	
    		c.getPA().movePlayer(2438,5168,0);
    	}
    	
    	public void FFAChamber() {
    		c.getPA().movePlayer(2438,5168,0);
    		c.sendMessage("Click on the gates to begin!");
    	}
    	
    	public void enterFFA() {
    		c.getPA().movePlayer(2438,5168,0);
    		c.sendMessage("@red@Objective: @bla@Kill as many players as possible 
    
    without dieing!");
    	}
    
    	public void enterCaves() {
    		c.getPA().movePlayer(2413,5117, c.playerId * 4);
    		c.waveId = 0;
    		c.tzhaarToKill = -1;
    		c.tzhaarKilled = -1;
    		Server.fightCaves.spawnNextWave(c);
    		c.jadSpawn();
    	}
    	/*Made by Omar. CheapFix much? ;3*/
    	public void enterPits() {
    		Server.fightPits.updateWaitRoom();
    		c.getPA().movePlayer(2399, 5175, 0);
    	}
    	/*this was commented out in combatassistant due to poison hitmarks not 
    
    appearing*/
    	public void appendPoison(int damage) {
    		if (System.currentTimeMillis() - c.lastPoisonSip > c.poisonImmune) {
    			c.sendMessage("You have been poisoned!");
    			c.poisonDamage = damage;
    		}	
    	}
    	
    	public boolean checkForPlayer(int x, int y) {
    		for (Player p : PlayerHandler.players) {
    			if (p != null) {
    				if (p.getX() == x && p.getY() == y)
    					return true;
    			}	
    		}
    		return false;	
    	}
    	
    	public void checkPouch(int i) {
    		if (i < 0)
    			return;
    		c.sendMessage("This pouch has " + c.pouches[i] + " rune ess in it.");	
    
    	
    	}
    	
    	public void fillPouch(int i) {
    		if (i < 0)
    			return;
    		int toAdd = c.POUCH_SIZE[i] - c.pouches[i];
    		if (toAdd > c.getItems().getItemAmount(1436)) {
    			toAdd = c.getItems().getItemAmount(1436);
    		}
    		if (toAdd > c.POUCH_SIZE[i] - c.pouches[i])
    			toAdd = c.POUCH_SIZE[i] - c.pouches[i];
    		if (toAdd > 0) {
    			c.getItems().deleteItem(1436, toAdd);
    			c.pouches[i] += toAdd;
    		}		
    	}
    	
    	public void emptyPouch(int i) {
    		if (i < 0)
    			return;
    		int toAdd = c.pouches[i];
    		if (toAdd > c.getItems().freeSlots()) {
    			toAdd = c.getItems().freeSlots();
    		}
    		if (toAdd > 0) {
    			c.getItems().addItem(1436, toAdd);
    			c.pouches[i] -= toAdd;
    		}		
    	}
    	/*this needs fixing because when barrows is fixed the items appear broken 
    
    still unless you logout or wield an item*/
    	public void fixAllBarrows() {
    		int totalCost = 0;
    		int cashAmount = c.getItems().getItemAmount(995);
    		for (int j = 0; j < c.playerItems.length; j++) {
    			boolean breakOut = false;
    			for (int i = 0; i < c.getItems().brokenBarrows.length; i++) {
    				if (c.playerItems[j]-1 == c.getItems().brokenBarrows
    
    [i][1]) {	
    					c.playerItems[j] = c.getItems
    
    ().brokenBarrows[i][0]+1;
    				}		
    			}
    			if (breakOut)		
    				break;
    		}	
    	}
    	
    	public void handleLoginText() {
    		/** Bank Text - Omar **/
    		c.getPA().sendFrame126("The Bank of Vistex - Deposit Box", 7421);
    		c.getPA().sendFrame126("The Bank of Vistex", 5383);
    		/** Logout Text - Omar **/
    		c.getPA().sendFrame126("When you are ready to leave", 2450);
    		c.getPA().sendFrame126("Vistex, use the", 2451);
    		c.getPA().sendFrame126("button below to logout safely.", 2452);
    		/** Log in Text - Omar **/
    		c.getPA().sendFrame126("Welcome to Vistex - Character Design", 3649);
    		c.getPA().sendFrame126("Welcome to Vistex", 15259);	
    		c.getPA().sendFrame126("Welcome to Vistex", 15259);	
    	}
    	
    	public void destroyInterface(int itemId) {
    		String itemName = c.getItems().getItemName(itemId);
    		String[][] info = {{"Are you sure you want to destroy this item?", 
    
    "14174"}, {"Yes.", "14175"}, {"No.", "14176"}, {"", "14177"}, {"Once You Drop 
    
    "+itemName+"", "14182"}, 
    							{"You Will Not Be Able To Get 
    
    it Back.", "14183"}, {itemName, "14184"}};//make some kind of c.getItemInfo
    		sendFrame34(itemId, 0, 14171, 1);
    		for (int i = 0; i < info.length; i++)
    			sendFrame126(info[i][0], Integer.parseInt(info[i][1]));
    		c.destroyItem = itemId;
    		sendFrame164(14170);
    	}
    	
    	public void destroyItem(int itemId) {
    		String itemName = c.getItems().getItemName(itemId);
    		c.getItems().deleteItem(itemId, 1);
    		c.sendMessage("Your " + itemName + " vanishes as you drop it on the 
    
    ground.");
    		c.destroyItem = 0;
    	}
    	
    	public void handleWeaponStyle() {
    		if (c.fightMode == 0) {
    			c.getPA().sendFrame36(43, c.fightMode);
    		} else if (c.fightMode == 1) {
    			c.getPA().sendFrame36(43, 3);
    		} else if (c.fightMode == 2) {
    			c.getPA().sendFrame36(43, 1);
    		} else if (c.fightMode == 3) {
    			c.getPA().sendFrame36(43, 2);
    		}
    	}
    	
    	public boolean dialogueAction(int i) {
    		return c.dialogueAction == i;
    	}
    		
    }
    Reply With Quote  
     

  2. #2  
    Registered Member
    Join Date
    Sep 2012
    Posts
    30
    Thanks given
    0
    Thanks received
    2
    Rep Power
    11
    Bump
    Reply With Quote  
     

  3. #3  
    Donator
    Darkness's Avatar
    Join Date
    Nov 2012
    Age
    26
    Posts
    876
    Thanks given
    121
    Thanks received
    75
    Rep Power
    47
    Your applyDead is really unclean well i don't get the order so you can either use mine or take up a few pieces

    public void applyDead() {

    Code:
    	public void applyDead() {
    		c.respawnTimer = 15;
    		c.isDead = false;
    		Client o = (Client) PlayerHandler.players[c.killerId];
    		if(c.duelStatus != 6) {
    			c.killerId = findKiller();
    			if(o != null) {
    				c.playerKilled = c.playerId;
    				if(o.duelStatus == 5) {
    					o.duelStatus++;
    				}
    				if (PlayerHandler.players[c.playerId].connectedFrom != o.lastKilled) {					
    					if (c.inWild() && !c.inFunPk()) {
    
    						o.pkPoints = (o.pkPoints + 1);
    						o.sendMessage("You have defeated "+Misc.optimizeText(c.playerName)+"!");
    						o.sendMessage("and received 1 Ppk Points!");					
    						o.KC += 1;
    						c.DC += 1;
    					}
    					o.lastKilled = PlayerHandler.players[c.playerId].connectedFrom;
    				} else {
    					o.sendMessage("You do not recieve pk points because you have killed " +c.playerName+ " twice in a row.");
    					o.KC += 1; 
    					c.DC += 1;
    				}
    			}
    		}
    		c.faceUpdate(0);
    		closeAllWindows();
    		c.npcIndex = 0;
    		c.playerIndex = 0;
    		c.stopMovement();
    		if(c.duelStatus <= 4) {
    			c.sendMessage("Oh dear you are dead!");
    		} else if(c.duelStatus != 6) {
    			c.sendMessage("You have lost the duel!");
    		}
    		resetDamageDone();
    		c.specAmount = 10;
    		c.getItems().addSpecialBar(c.playerEquipment[c.playerWeapon]);
    		c.lastVeng = 0;
    		c.vengOn = false;
    		resetFollowers();
    		c.attackTimer = 10;
    
    		try {
    			if (PlayerHandler.players[c.killerId].connectedFrom.equals(PlayerHandler.players[c.playerKilled].connectedFrom)) {
    				o.sendMessage("Oh wait. You Don't Recieve PK Points for killing yourself!");
    			}
    		} catch(Exception e){ }
    		c.faceUpdate(0);
    		c.npcIndex = 0;
    		c.playerIndex = 0;
    		c.stopMovement();
    		if(c.duelStatus <= 4) {
    			c.sendMessage("Oh dear you are dead!");
    		} else if(c.duelStatus != 6) {
    			c.sendMessage("You have lost the duel!");
    		}
    		resetDamageDone();
    		c.lastVeng = 0;
    		c.vengOn = false;
    		resetFollowers();
    		c.attackTimer = 10;
    		removeAllWindows();
    		c.tradeResetNeeded = true;
    		return;
    	}
    Pkp is disabled in my server in funpk with this line ( you can edit )
    Code:
    				if (PlayerHandler.players[c.playerId].connectedFrom != o.lastKilled) {					
    					if (c.inWild() && !c.inFunPk()) {

    You don't get pkp for pvm deaths nor you are able to farm, you might need to add imports, post any error , or just wait until someone edits up your codes for you, but I think mines works good enough, I edited already for your values
    Attached image
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. [PI] Client Help[PI]
    By oblivion-rs in forum Help
    Replies: 1
    Last Post: 08-28-2010, 03:48 AM
  2. [$5][PI]Hiscores Help[PI][$5]
    By Cal_Short in forum Help
    Replies: 10
    Last Post: 08-26-2010, 12:44 PM
  3. [PI] Command help. [PI]
    By Ross in forum Help
    Replies: 0
    Last Post: 07-27-2010, 07:11 PM
  4. [PI]Some Help[PI]
    By PrataKosong in forum Help
    Replies: 11
    Last Post: 07-14-2010, 01:24 PM
  5. [PI]Need help[PI]
    By polarx1 in forum Help
    Replies: 0
    Last Post: 06-17-2010, 02:22 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •